A method to resequence packets includes sequentially allocating in each source ingress adapter a packet rank to each packet received within each source ingress adapter. In each destination egress adapter, each ranked data packet is stored at a respective buffer address of an egress buffer. The respective buffer addresses of data packets received by a same source ingress adapter with a same priority level and switched through a same switching plane are linked in a same linked-list. The respective buffer addresses are preferably linked by their order of use in the egress buffer, and thus each linked-list is having a head list pointing to the oldest buffer address. The linked-lists are sorted into subsets including those linked-lists linking the respective buffer addresses of data packets received by a same source ingress adapter with a same priority level. For each subset of linked-lists, the packet ranks of the data packets stored at the buffer address pointed by the head lists of each linked-list of each subset are compared to determine the next data packet to be put in a sequence.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for re-sequencing packets comprising: a) in each ingress port-adapter ( 200 ), inserting a packet rank (PR) into each packet ( 210 ) to be switched through a parallel packet switch ( 250 ); b) switching the ranked packets through the parallel packet switch; and in each egress port-adapter ( 260 ): c) reading out ( 600 ) the switched packets from the parallel packet switch; d) storing ( 605 ) the switched packets read out from the parallel packet switch into an egress buffer ( 265 ); e) selecting the oldest packet ( 403 ) of each of sets of packets stored in the egress port-adapter, each set being comprised of packets coming from the same switching plane and the same ingress port-adapter, wherein selecting the oldest packet comprises: e1) forming a plurality of linked lists ( 310 ) of egress buffer addresses, each linked list containing the egress buffer addresses of the packets switched through a same said switching plane and coming from the same ingress port-adapter; and e2) selecting the oldest address of each of the linked lists; f) selecting the oldest packet ( 420 ) of the oldest packets selected in e) and which come from the same ingress port-adapter, according to the value of their packet ranks, for each ingress port-adapter, thereby providing a subset of older packets, each subset corresponding to an ingress port adapter; g) validating the content of each subset ( 1030 ); and h) selecting the packet to exit the egress port-adapter among the subsets validated in g).
2. The method according to claim 1 further comprising associating to each linked list a valid condition which is made active when the linked list is active.
3. The method according to claim 1 further comprising: e3) associating to each packet a packet identifier representative of a regular, idle or exception status; and e4) associating to each linked list a wildcard condition which is made active whenever at least one of the valid conditions associated to the linked lists sharing a same said source, is active, and an idle packet is read out from the parallel packet switch.
4. The method according to claim 1 wherein g) comprises validating a subset of older packets originated from a same ingress port-adapter when either one of the valid condition or corresponding wildcard condition is valid for all switching planes.
5. The method according to claim 1 further comprising: i) forwarding the packet selected in h); and j) resetting a set of wildcard conditions associated to the same ingress adapter as the forwarded packet.
6. The method according to claim 1 further comprising: k) incrementing a waiting packet counter (WPC) each time a packet is received by the egress adapter from the same ingress adapter; and each time a packet is forwarded: l) decrementing the waiting packet counter associated to the same ingress adapter as the forwarded packet; and m) resetting the corresponding valid condition and setting the value of the packet rank of the oldest packet addressed by a corresponding linked list to its maximum, if the value of the associated waiting counter is null.
7. A method for re-sequencing packets carrying a priority which have been switched through the parallel packet switch comprising: a) in each ingress port-adapter, inserting a packet rank into each packet to be switched through the parallel packet switch; b) switching the ranked packets through the parallel packet switch; and in each egress port-adapter: c) reading out the switched packets from the parallel packet switch; d) storing the switched packets read out from the parallel packet switch into an egress buffer; e) selecting the oldest packet of each sets of packets stored in the egress port-adapter, each set being comprised of packets coming from the same switching plane, the same ingress port-adapter with the same priority wherein selecting the oldest packet comprises: e1) forming a plurality of linked lists of egress buffer addresses, each linked list containing the egress buffer addresses of the packets switched through a same said switching plane, from a same ingress port-adapter at a same said priority; and e2) selecting the oldest address of each of the linked lists; f) selecting the oldest packet of the oldest packets selected in e) and which come from the same ingress port-adapter with the same priority, according to the value of their packet ranks, for each ingress port-adapter and each priority, thereby providing a subset of older packets, each subset corresponding to an ingress port-adapter and a priority; g) validating the content of each subset; and h) selecting the packet to exit the egress port-adapter among the subsets validated in g).
8. The method according to claim 7 further comprising associating to each linked list a valid condition which is made active when the linked list is active.
9. The method according to claim 8 further comprising: i) associating to each packet a packet identifier representative of a regular, idle or exception status; and j) associating to each linked list a wildcard condition which is made active whenever at least one of the valid conditions associated to the linked list sharing a same said source and a same said priority, is active, and an idle packet is read out from the parallel switch or a regular packet having a priority lower than the one associated to the wildcard latch, is read out from the parallel packet switch.
10. The method according to claim 9 wherein g) further comprising validating a subset of older packets originated from a same ingress port-adapter with same priority when either one of the valid condition or corresponding wildcard condition is valid for all switching planes.
11. The method according to claim 9 further comprising: k) forwarding the packet selected in h) of claim 7 ; and l) resetting the set of-wildcard conditions associated to the same ingress adapter and same priority as the forwarded packet.
12. The method according to claim 8 further comprising: m) incrementing a waiting packet counter (WPC) each time a packet is received by the egress adapter from the same ingress adapter with the same priority; and each time a packet is forwarded: n) decrementing the waiting packet counter associated to the same ingress adapter and same priority as the forwarded packet; and o) resetting the corresponding valid condition and setting the value of the packet rank of the oldest packet addressed by the corresponding linked list to its maximum, if the value of the associated waiting counter is null.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
November 26, 2003
July 22, 2008
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.