Claims
- 1. A system for resequencing received data packets comprising:
first means (265) for temporarily storing each received data packet at an allocated packet buffer location; second means (440) for storing the packet sequence number, the source identifier and the priority level of each stored data packet; and means (270) coupled to the first storing means and the second storing means for determining for each sequence of data packets among the plurality of sequences the order of the data packets to be output from the at least one egress adapter.
- 2. The system of claim 1 wherein the first storing means (265) comprise a free buffer list (370) to allocate a free packet buffer location (ID) to each received data packet (360).
- 3. The system of claim 1 or 2 wherein the determination means comprise a Content Addressable Memory CAM (410) wherein each entry (435) is having an identification field (430) to contain a packet buffer identifier (ID) to identify the packet buffer location allocated to each received data packet, and a search field (420) to contain the source identifier (422), the (422), the priority level (424) and the packet sequence number (426) of each stored data packet.
- 4. The system of claim 1 wherein the second means comprises:
a plurality of source-priority registers (450) to contain each, a packet sequence number (PSN) and a packet buffer identifier (ID) of a previously stored data packet; and a plurality of valid-bit latches (455) respectively associated to the plurality of source-priority registers to set an active/not active status to indicate that the corresponding stored data packet is the next one in sequence.
- 5. The system of claim 4 wherein the number of source-priority registers and associated valid-bit latches is equal to the number of pairs of ingress adapters and priority levels.
- 6. The system of claim 4 or 5 wherein each of the plurality of source-priority registers further comprise counting means (WPC) to count for each sequence of data packets the number of data packets stored within said storing means waiting for being output from the at least one egress adapter.
- 7. The system of claims 1 or 2 further comprising scheduling means (280) coupled to the determination means for selecting one sequence of data packets from which a data packet is to be output from the at least one egress adapter.
- 8. The system of claim 7 wherein the scheduling means are coupled to the plurality of valid-bit latches to select one valid-bit latch among the valid-bit latches having their valid bit active.
- 9. The system of claims 1 or 2 wherein the received data packets comprise unicast and multicast data packets.
- 10. The system of claim 9 wherein each of the plurality of ingress adapters comprise means (210) for numbering the unicast data packets according to the priority level and to the at least one egress adapter of each unicast data packet.
- 11. The system of claim 10 wherein each of the plurality of ingress adapters further comprises means (205) for load balancing over a plurality of independent switching planes the numbered data packets.
- 12. The system of claim 11 wherein each of.the plurality of ingress adapters further comprises means (220) for scheduling the switching of the unicast and multicast data packets over the plurality of independent switching planes.
- 13. The system of claim 7 wherein the at least one egress adapter further comprises means (275) for numbering the multicast data packets according to the priority level of each multicast data packet and to the independent switching plane each multicast data packet has been switched through.
- 14. A method for resequencing received data packets comprising for each received data packet:
a) allocating a packet buffer location to the received data packet and temporarily storing said received data packet at said allocated packet buffer location; extracting the source identifier and the priority level of the stored data packet to point to a corresponding source-priority register that contains a packet sequence number (PSN) and a packet buffer location identifier (ID) of a previously received data packet, the source-priority register being associated to a valid-bit latch that indicates an active/not active status; and checking the status of the valid-bit latch and comparing the packet sequence number of the received data packet with the packet sequence number contained within the pointed source-priority register to determine if the received data packet is to be output as the next data packet of the corresponding sequence of data packets.
- 15. The method of claim 14 wherein the checking step (510) further comprises:
(512) if the status is not active: (518) updating the pointed source-priority register with the packet sequence number and the packet buffer location identifier of the received data packet, only if the packet sequence number of the received data packet is the next in sequence; and setting the status of the valid-bit latch to active; otherwise, (514) if the status is active: (524) writing in a Content Addressable Memory, the source identifier, the priority level and the packet sequence number of the received data packet, the write address being identified by the packet buffer location allocated to the received data packet.
- 16. The method of claim 14 or 15 further comprising incrementing a ‘waiting packet’ counter.
- 17. The method of claims 14 or 15 further comprising the (600) scheduling the output of the received data packet from the at least one egress adapter.
- 18. The method of claim 17 further comprising the step (602) of decrementing the ‘waiting packet’ counter after transmitting the received data packet.
- 19. The method of claim 17 or 18 further comprising:
(604) searching the Content Addressable Memory for the next packet sequence number; and (606) if the search match: updating (608) the source-priority register with the founded next packet sequence number and the corresponding packet buffer location identifier; keeping the status of the valid-bit latch to active; and (610) invalidating the searched CAM entry; otherwise, (612) if the search does not match, resetting (614) the status of the valid-bit latch of the pointed source-priority register.
- 20. The method of claim 19 further comprising after the resetting starting a timer.
- 21. A system comprising:
a buffer in which received data packets are temporarily stored; a controller programmed to use the source identifier and the priority level of the stored data packet to select a corresponding source-priority register that contains a packet sequence number (PSN) and a packet buffer location identifier (ID) of a previously received data packet, the source-priority register being associated with a valid-bit latch that indicates an active/not active status; and said controller programmed to check the status of the valid-bit latch and comparing the packet sequence number of the received data packet with the packet sequence number contained within the pointed source-priority register to determine if the received data packet is to be output as the next data packet in the corresponding sequence of data packets.
- 22. A computer program product comprising:
a computer readable medium containing computer readable code including a first instruction module for accessing a buffer in which received data packets are temporarily stored and to extract the source identifier and the priority level of the stored data packet to select a corresponding source-priority register that contains a packet sequence number (PSN) and a packet buffer location identifier (ID) of a previously received data packet, the source-priority register being associated to a valid-bit latch that indicates an active/not active status; and a second instruction module to check the status of the valid-bit latch and comparing the packet sequence number of the received data packet with the packet sequence number contained within the pointed source-priority register to determine if the received data packet is to be output as the next data packet of the corresponding sequence of data packets.
- 23. A method comprising:
a) providing a buffer in which packets exiting a device is temporarily stored; b) providing at least one source priority register identifying at least one packet by at least Source Priority (S1, P1−n,), Packet Serial No. (PSN) and location of packet in said buffer (ID); c) providing at least one validity latch whose setting indicates status of said at least one packet; and d) scheduling a packet for transmission based upon state of the validity latch.
- 24. The method of claim 23 including repeating d) so long as another packet having a packet serial number in-sequence with a last scheduled packet is found in the buffer.
Priority Claims (1)
Number |
Date |
Country |
Kind |
02368136.4 |
Dec 2002 |
EP |
|
CROSS REFERENCE TO RELATED PATENT APPLICATIONS
[0001] The present invention is related to the following patent applications which are incorporated herein by reference:
[0002] Ser. No. ______ (Attorney Docket No. FR920020046US1) entitled “Packet Unstopper System for a Parallel Packet Switch”, filed ______;
[0003] Ser. No. ______ (Attorney Docket No. FR920020049US1) entitled “System and Method for Sequencing Data Packets on a Per-Flow Basis”, filed ______;
[0004] Ser. No. ______ (Attorney Docket No. FR920020052US1) entitled “Method and System for Resequencing Data Packets Switched Through a Parallel Packet Switch”, filed ______.