Method and apparatus for high speed packet switching using train packet queuing and providing high scalability
First Claim
1. A method of routing data packets through a switch fabric, each data packet having a corresponding switch processing parameter (SPP), said method comprising the steps of:
- a) receiving a plurality of data packets;
b) queuing a plurality of data packets into a plurality of data packet queues according to their corresponding SPPs such that data packets sharing a common corresponding SPP are commonly-queued;
c) creating train packets from commonly-queued data packets, each train packet comprising a payload and a header, wherein the train packet creating step includes encapsulating a plurality of commonly-queued data packets within the payload of at least one train packet and encapsulating the SPP corresponding to each data packet encapsulated in the train packet payload within the train packet header; and
d) routing each train packet through the switch fabric as specified by its encapsulated SPP.
7 Assignments
0 Petitions
Accused Products
Abstract
Disclosed herein is a system architecture capable of processing fixed length and/or variable length data packets. Under the method of the invention, incoming data packets are queued together according to their corresponding switch processing parameters (SPPs), and then the commonly-queued data packets are processed through a switch fabric as a single unit. In one aspect of the invention, the commonly-queued data packets are processed by the switch fabric as a single train packet. In another aspect of the invention, the commonly-queued data packets are sliced into a set of subtrain packets. A switch fabric then processes the set of subtrain packets in parallel using a plurality of switch planes. Both aspects of the invention can be implemented with a plurality of packet formatters and deformatters linked to a switch fabric in various configurations, including multi-path and hierarchical switching systems. a multichannel switching system.
95 Citations
57 Claims
-
1. A method of routing data packets through a switch fabric, each data packet having a corresponding switch processing parameter (SPP), said method comprising the steps of:
-
a) receiving a plurality of data packets;
b) queuing a plurality of data packets into a plurality of data packet queues according to their corresponding SPPs such that data packets sharing a common corresponding SPP are commonly-queued;
c) creating train packets from commonly-queued data packets, each train packet comprising a payload and a header, wherein the train packet creating step includes encapsulating a plurality of commonly-queued data packets within the payload of at least one train packet and encapsulating the SPP corresponding to each data packet encapsulated in the train packet payload within the train packet header; and
d) routing each train packet through the switch fabric as specified by its encapsulated SPP. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of routing data packets through a switch fabric having a plurality of switch planes, each data packet having a corresponding switch processing parameter (SPP), said method comprising the steps of:
-
a) receiving a plurality of data packets;
b) queuing a plurality of data packets into a plurality of data packet queues according to their corresponding SPPs such that data packets sharing a common corresponding SPP are queued within the same data packet queue;
c) creating train packets from commonly-queued data packets, each train packet comprising a payload and a header, wherein the train packet creating step includes encapsulating a plurality of commonly-queued data packets within the payload of at least one train packet and encapsulating the common SPP corresponding to each data packet encapsulated in the train packet payload within the train packet header;
d) for each train packet, creating a set of N subtrain packets, each subtrain packet comprising a subtrain payload and a subtrain header, wherein the step of creating a subtrain packet set includes creating the subtrain payloads by slicing each train packet payload into N slices, wherein each slice comprises a subtrain payload, and encapsulating within each subtrain header the SPP encapsulated within the train packet header of the train packet from which the set of subtrain packets was sliced;
e) routing each subtrain packet within a set of subtrain packets through a different switch plane within the switch fabric as specified by its encapsulated SPP. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 49, 50, 51)
-
-
19. A switch for routing data packets between a plurality of switch inputs and a plurality of switch outputs, each of said data packets having a corresponding switch processing parameter (SPP), said switch comprising:
-
a) a plurality of packet formatters for queuing together data packets sharing a common corresponding SPP, creating train packets from the commonly-queued data packets, and providing the train packets to a switch fabric, wherein each train packet comprises a payload and a header, wherein the payload of at least one train packet includes a plurality of commonly-queued data packets, and wherein the header of each train packet includes the common SPP corresponding to each data packet included in the payload of that train packet;
b) the switch fabric having a plurality of switch fabric inputs for receiving train packets provided by the packet formatters and a plurality of switch fabric outputs for outputting routed train packets, wherein the switch fabric is configured to route each received train packet to a switch fabric output according to the SPP included in the header of each train packet; and
c) a plurality of packet deformatters for receiving routed train packets outputted from the switch fabric, extracting data packets from the payloads of the received routed train packets, and outputting the extracted data packets.
-
-
28. A switch for routing a plurality of data packets between a plurality of switch inputs and a plurality of switch outputs, each of said data packets having a corresponding switch processing parameter (SPP), said switch comprising:
-
a) a plurality of packet formatters, each of said packet formatters configured to (1) queue data packets according to their corresponding SPPs such that data packets sharing a common corresponding SPP are commonly-queued, (2) create subtrain packet sets from the commonly-queued data packets, each subtrain packet set comprising a plurality N of subtrain packets, each subtrain packet comprising a subtrain payload and a subtrain header, wherein the subtrain payloads of the subtrain packets in at least one subtrain packet set encapsulate a plurality of commonly-queued data packets in the aggregate, and wherein the subtrain header of each subtrain packet in each subtrain packet set includes the SPP shared by each data packet encapsulated in the aggregated subtrain payload of that subtrain packet set, and (3) for each subtrain packet set, output the subtrain packets included in that subtrain packet set in parallel;
b) a switch fabric for routing subtrain packet sets received from the packet formatters, said switch fabric comprising a plurality N of switch planes, each switch plane having a plurality of switch plane inputs for receiving subtrain packets from the packet formatters and a plurality of switch plane outputs for outputting subtrain packets, wherein each switch plane is configured to (1) receive a subtrain packet from each subtrain packet set, and (2) route each received subtrain packet to a switch plane output according to the SPP included in its subtrain header; and
c) a plurality of packet deformatters, each packet deformatter configured to (1) receive routed subtrain packet sets from the switch fabric, and (2) extract from the received subtrain packet sets the data packets encapsulated therein.
-
-
38. A device for formatting data packets, said device comprising:
-
a) an input for receiving a plurality of data packets, each of said data packets having a corresponding switch processing parameter (SPP);
b) a packet queuer connected to said input, said packet queuer comprising a plurality of waiting buffers for queuing data packets therein and a controller configured to (1) queue each data packet in an appropriate waiting buffer according to its SPP such that data packets sharing a common SPP are commonly-queued, and (2) create train packets from the commonly-queued data packets, each train packet having a payload and a header, wherein the payload of at least one train packet is comprised of a plurality of commonly-queued data packets, and wherein the header of each train packet includes the SPP correponding to each data packet within the payload of that train packet.
-
-
47. A device for deformatting train packets, each train packet comprising a payload portion and a header portion, the payload portion having a plurality of data packets sharing a common corresponding switch processing parameter (SPP) encapsulated therein, the header portion including boundary information for the data packets encapsulated in the payload portion, said device comprising:
-
an input for receiving train packets; and
a packet restorer connected to said input, wherein said packet restorer is configured to extract from each received train packet the data packets encapsulated therein according to the boundary information included in the header of the train packet.
-
-
48. A device for deformatting sets of N subtrain packets, each subtrain packet having a subtrain payload and a subtrain header, each subtrain payload comprising a portion of a train packet payload, wherein each subtrain packet set has an aggregate subtrain payload comprising an entire train packet payload, wherein at least one train packet payload comprises a plurality of data packets sharing a common switch processing parameter (SPP), and wherein each subtrain header includes slicing information for the subtrain packet set and boundary information for the data packets encapsulated within the train packet payload, said device comprising:
-
a) a plurality N of inputs for receiving subtrain packets in parallel;
b) a packet merger for reassembling the train packet payload from the aggregate subtrain payload of each set of received subtrain packets according to the slicing information included within the subtrain header of each subtrain packet in the subtrain packet set; and
c) a packet restorer connected to said packet merger, wherein said packet restorer is configured to extract from each recassembled train packet the data packets encapsulated therein according to the boundary information included in the subtrain headers.
-
-
52. A multi-path switching system for routing data packets, each data packet having a corresponding switch processing parameter (SPP), said multi-path switching system comprising:
-
a plurality of packet queuers for creating train packets from data packets sharing a common SPP, each train packet having a payload and a header, wherein the payload of at least one train packet comprises a plurality of data packets sharing a common SPP, and wherein header of each train packet includes the SPP corresponding to each data packet comprising the payload of that train packet;
a plurality of traffic distributors for receiving train packets from the packet queuers and distributing each received train packet to at least one of a plurality of paths according to a predetermined set of distribution criteria;
each path comprising a switch fabric for routing train packets according to their SPPs; and
a plurality of packet deformatters for receiving train packets routed by the switch fabrics and deformatting each routed train packet by extracting data packets from each train packet payload.
-
-
53. A multi-path switching system for routing data packets, each data packet having a corresponding switch processing parameter (SPP), said multi-path switching system comprising:
-
a plurality of packet queuers for creating train packets from data packets sharing a common SPP, each train packet having a payload and a header, wherein the payload of at least one train packet comprises a plurality of data packets sharing a common SPP, and wherein header of each train packet includes the SPP corresponding to each data packet comprising the payload of that train packet;
a plurality of traffic distributors for receiving train packets from the packet queuers and distributing each received train packet to at least one of a plurality of paths according to a predetermined set of distribution criteria;
wherein at least one of said paths comprises a slicing unit for receiving train packets from the traffic distributors and slicing each received train packet into a set of N subtrain packets, and a switch fabric having a plurality N of switch planes, each switch plane for routing a different subtrain packet within a subtrain packet set; and
wherein said switch fabric within said at least one path comprising said slicing unit is linked to a plurality of packet deformatters for receiving subtrain packets, reassembling the train packets from which the subtrain packets were sliced, and extracting data packets from the reassembled train packets.
-
-
54. A device for routing data packets, each data packet having a corresponding switch processing parameter (SPP), said device comprising:
-
a) means for receiving a plurality of data packets;
b) means for queuing said received data packets into a plurality of data packet queues according to their corresponding SPPs such that data packets sharing a common corresponding SPP are commonly-queued;
c) means for creating train packets from commonly-queued data packets, each train packet comprising a payload and a header, wherein the creating means is configured to (1) encapsultate a plurality of commonly-queued data packets within the payload of at least one train packet and (2) encapsulate the SPP corresponding to each data packet encapsulated in the train packet payload within the train packet header, wherein said creating means is in circuit with said queuing means; and
d) means for routing each train packet as specified by its encapsulated SPP, wherein said routing means is in circuit with said creating means.
-
-
55. A device for routing data packets, each data packet having a corresponding switch processing parameter (SPP), said device comprising:
-
a) means for receiving a plurality of data packets;
b) means for queuing said received data packets into a plurality of data packet queues according to their corresponding SPPs such that data packets sharing a common corresponding SPP are queued within the same data packet queue;
c) means for creating train packets from commonly-queued data packets, each train packet comprising a payload and a header, wherein the train packet creating means is configured to (1) encapsulate a plurality of commonly-queued data packets within the payload of at least one train packet and (2) encapsulate the common SPP corresponding to each data packet encapsulated in the train packet payload within the train packet header, wherein said train packet creating means is in circuit with said queuing means;
d) means for creating a set of N subtrain packets from each train packet created by the train packet creating means, each subtrain packet comprising a subtrain payload and a subtrain header, wherein said subtrain packet set creating means is configured to (1) create subtrain payloads by slicing each train packet payload into N slices, wherein each slice comprises a subtrain payload, and (2) encapsulate within each subtrain header the SPP encapsulated within the train packet header of the train packet from which the set of subtrain packets was sliced;
e) means for routing each subtrain packet within a set of subtrain packets through a different switch plane within the routing means as specified by its encapsulated SPP.
-
-
56. A switch for routing data packets between a plurality of switch inputs and a plurality of switch outputs, said switch comprising:
-
a) a plurality of first level SPP mappers for determining a corresponding first level SPP for each data packet and attaching said determined first level SPP thereto;
b) a plurality of first level packet formatters for queuing together data packets sharing a common corresponding first level SPP, creating first level train packets from the commonly-queued data packets, wherein each first level train packet comprises a payload and a header, wherein the payload of at least one first level train packet includes a plurality of commonly-queued data packets, and wherein the header of each first level train packet includes the common first level SPP corresponding to each data packet included in the payload of that first level train packet;
c) a plurality of second level SPP mappers for determining a corresponding second level SPP for each first level train packet and attaching said determined second level SPP thereto;
d) a plurality of second level packet formatters for queuing together first level train packets sharing a common corresponding second level SPP, creating second level train packets from the commonly-queued data packets, wherein each second level train packet comprises a payload and a header, wherein the payload of at least one second level train packet includes a plurality of commonly-queued first level train packets, and wherein the header of each second level train packet includes the common second level SPP corresponding to each first level train packet included in the payload of that second level train packet;
e) a plurality of multiplexors, each multiplexor linking a plurality of first level packet formatters to a second level packet formatter;
f) a switch fabric having a plurality of switch fabric inputs for receiving second level train packets from the second level packet formatters and a plurality of switch fabric outputs for outputting routed second level train packets, wherein the switch fabric is configured to route each received second level train packet to a switch fabric output according to the second level SPP included in the header of each second level train packet;
g) a plurality of second level packet deformatters for receiving routed second level train packets outputted from the switch fabric, extracting first level train packets from the payloads of the received routed second level train packets, and outputting the extracted first level train packets;
h) a plurality of first level packet deformatters for receiving extracted first level train packets outputted from the second level packet deformatters, extracting data packets from the payloads of the received extracted first level train packets, and outputting the extracted data packets; and
i) a plurality of demultiplexors, each demultiplexor linking a second level packet deformatter with a plurality of first level packet deformatters.
-
-
57. A switch for routing data packets between a plurality of switch inputs and a plurality of switch outputs, said switch comprising:
-
a) a plurality of first level SPP mappers for determining a corresponding first level SPP for each data packet and attaching said determined first level SPP thereto;
b) a plurality of first level packet formatters for queuing together data packets sharing a common corresponding first level SPP, creating first level train packets from the commonly-queued data packets, wherein each first level train packet comprises a payload and a header, wherein the payload of at least one first level train packet includes a plurality of commonly-queued data packets, and wherein the header of each first level train packet includes the common first level SPP corresponding to each data packet included in the payload of that first level train packet;
c) a plurality of second level SPP mappers for determining a corresponding second level SPP for each first level train packet and attaching said determined second level SPP thereto;
d) a plurality of second level packet formatters, each of said second level packet formatters configured to (1) queue first level train packets according to their corresponding second level SPPs such that first level train packets sharing a common corresponding second level SPP are commonly-queued, (2) create subtrain packet sets from the commonly-queued first level train packets, each subtrain packet set comprising a plurality N of subtrain packets, each subtrain packet comprising a subtrain payload and a subtrain header, wherein the subtrain payloads of the subtrain packets in at least one subtrain packet set encapsulate a plurality of commonly-queued first level train packets in the aggregate, and wherein the subtrain header of each subtrain packet in each subtrain packet set includes the second level SPP shared by each first level train packet encapsulated in the aggregated subtrain payload of that subtrain packet set, and (3) for each subtrain packet set, outputting the subtrain packets included in that subtrain packet set in parallel;
e) a plurality of multiplexors, each multiplexor linking a plurality of first level packet formatters to a second level packet formatter;
f) a switch fabric for routing subtrain packet sets received from the second level packet formatters, said switch fabric comprising a plurality N of switch planes, each switch plane having a plurality of switch plane inputs for receiving subtrain packets from the second level packet formatters and a plurality of switch plane outputs for outputting subtrain packets, wherein each switch plane is configured to (1) receive a subtrain packet from each subtrain packet set, and (2) route each received subtrain packet to a switch plane output according to the second level SPP included in its subtrain header; and
g) a plurality of second level packet deformatters, each second level packet deformatter configured to (1) receive routed subtrain packet sets from the switch fabric, (2) extract from the received subtrain packet sets the first level train packets encapsulated therein, and (3) output each extracted first level train packet;
h) a plurality of first level packet deformatters for receiving extracted first level train packets outputted from the second level packet deformatters, extracting data packets from the payloads of the received extracted first level train packets, and outputting the extracted data packets; and
i) a plurality of demultiplexors, each demultiplexor linking a second level packet deformatter with a plurality of first level packet deformatters.
-
Specification