Epoch-based packet switching
First Claim
1. A method of switching data packets through a router core serving multiple core ingress ports and multiple core egress ports, comprising:
- queueing data packets at each ingress port in a set of egress queues, each queue in the set assigned to hold data packets having a corresponding core egress port assignment;
communicating egress queue status information, for each ingress port, to a central scheduler;
creating, based on the communicated egress queue status, a core ingress port-to-core egress port mapping for an upcoming epoch;
at the beginning of the epoch, reconfiguring the router core according to the core ingress port-to-core egress port mapping;
during the epoch, at each core ingress port that is part of the port mapping, supplying a group of packets to the router core, the group of packets selected from at least one egress queue having the same egress port assignment as that contained in the port mapping for that core ingress port; and
for each group of supplied packets for a given epoch, switching that group of packets through the router core as a unit.
15 Assignments
0 Petitions
Accused Products
Abstract
A high-speed router and method for operation of the core of such a router are disclosed. A switch fabric serves a plurality of ingress and egress ports. Packets are sorted into queues at each ingress port, each queue corresponding to one of the egress ports. Queue status information for each ingress port is communicated to a central scheduler. The scheduler reconfigures the switch fabric to a new port mapping once per epoch, where an epoch is long enough to allow each ingress port to transmit a large plurality of queued packets. The scheduler also sends port mapping information to the ingress ports, so that those ports can match one of their queues with the egress port mapping for each epoch. The switch fabric can achieve extremely high throughput since it doesn'"'"'t recognize and switch packets per se, but deals with large multi-packet blocks that can be efficiently scheduled by the central scheduler.
102 Citations
23 Claims
-
1. A method of switching data packets through a router core serving multiple core ingress ports and multiple core egress ports, comprising:
-
queueing data packets at each ingress port in a set of egress queues, each queue in the set assigned to hold data packets having a corresponding core egress port assignment; communicating egress queue status information, for each ingress port, to a central scheduler; creating, based on the communicated egress queue status, a core ingress port-to-core egress port mapping for an upcoming epoch; at the beginning of the epoch, reconfiguring the router core according to the core ingress port-to-core egress port mapping; during the epoch, at each core ingress port that is part of the port mapping, supplying a group of packets to the router core, the group of packets selected from at least one egress queue having the same egress port assignment as that contained in the port mapping for that core ingress port; and for each group of supplied packets for a given epoch, switching that group of packets through the router core as a unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A packet routing device comprising:
-
a switch fabric having a plurality of input ports and a plurality of output ports, the switch fabric capable of reconfiguration on an epoch-by-epoch basis to switch data according to an input port-to-output port mapping specified for each epoch; a plurality of router core egress ports, each paired with a corresponding switch fabric output port and capable of receiving data from that switch fabric output port; a plurality of router core ingress ports, each paired with a corresponding switch fabric input port and capable of transmitting data to that switch fabric input port; associated with each router core ingress port, a queue memory capable of supporting, for each of the router core egress ports, at least one corresponding egress-port-specific packet queue; and associated with each router core ingress port, means for directing multiple data packets from a selected egress-port-specific packet queue to the switch fabric during an epoch when the switch fabric is configured to switch data from that ingress port to the egress port associated with the selected egress-port-specific packet queue. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A packet routing device comprising:
-
a switch fabric having a plurality of input ports and a plurality of output ports, the switch fabric switching data according to a current input-port-to-output-port mapping; a scheduler to create switch fabric input-port-to-output-port mappings for epochs, each epoch having a length sufficient to allow a large plurality of maximum-transfer-unit packets to pass from a switch fabric input port to its mapped output port; a set of packet queues associated with each input port, each set of packet queues having at least one queue corresponding to each output port; means associated with each input port for sorting incoming packets into the associated set of packet queues, according to each packet'"'"'s corresponding output port; and means associated with each input port for directing multiple packets from a selected packet queue to the switch fabric during an epoch when the switch fabric is configured to switch data from that input port to the output port associated with the selected packet queue.
-
Specification