Claims
- 1. In a system for switching a plurality of data packets, a method comprising the steps of:
(a) queuing the plurality of data packets into a plurality of data queues, wherein each of the plurality of data queues corresponds to a value of at least one attribute and wherein each of the plurality of data packets is associated with the at least one attribute; (b) forming a vector list, wherein each vector is chosen from a set of vectors, each vector save one corresponding to one of the plurality of data queues, the remaining vector value is a null-vector indicating that none of the plurality of data packets is sent into a switching fabric during a corresponding time slot; (c) assigning different assignment numbers to each member of the vector list; (d) shuffling the different assignment numbers among members of the vector list; (e) selecting a vector from the vector list in accordance with a numerical ordering of the different assignment numbers; and (f) transferring into the switching fabric one of the plurality of data packets from a data queue corresponding to the vector.
- 2. The method of claim 1, further comprising the step of:
(g) receiving the plurality of data packets at an input port before step (a).
- 3. The method of claim 1, further comprising the steps of:
(g) receiving a serial data stream before step (a); and (h) converting the serial data stream into the plurality of data packets in response to step (g).
- 4. The method of claim 1, further comprising the step of:
(g) generating the plurality of data packets before step (a).
- 5. The method of claim 1, wherein the at least one attribute is chosen from the group consisting of a contention point, a quality of service (QoS), a network that receives a data packet from the system, a higher layer protocol that is being utilized, an address of a destination of the data packet, a port of the destination of the data packet, an address of a source of the data packet, a port of the source of the data packet, a conversion mechanism applied to the data packet, a formation mechanism applied to the data packet, an adaptation mechanism applied to the data packet, and a routing of the data packet.
- 6. The method of claim 5, wherein the address of the destination and the address of the source comply with an Internet Protocol (IP).
- 7. The method of claim 5, wherein the adaptation mechanism supports an Asynchronous Transfer Mode (ATM) adaptation layer (AAL).
- 8. The method of claim 5, wherein a feature of the routing is chosen from the group consisting of a MultiProtocol Label Switching (MPLS) label, a MPLS experimental (EXP) field, an ATM virtual circuit, and an ATM virtual path.
- 9. The method of claim 5, wherein a mechanism of supporting the QoS is selected from the group consisting of a differentiated service (DiffServ) codepoint and an integrated service (IntServ) class.
- 10. In a system for switching a plurality of packets, a method comprising the steps of:
(a) queuing the plurality of data packets into a plurality of data queues, wherein each of the plurality of data queues corresponds to a value of at least one attribute and wherein each of the plurality of data packets is associated with the at least one attribute; (b) forming a vector list, wherein each vector is chosen from a set of vectors, each vector save one corresponding to one of the plurality of data queues, the remaining vector value is a null-vector indicating that none of the plurality of packets is sent into a switching fabric during a corresponding time slot; (c) assigning different assignment numbers to each member of the vector list; (d) assigning different assignment numbers to each member of a timeslot list, wherein each member of the timeslot list corresponds to an assigned timeslot for transporting one of the plurality of data packets; (e) defining a one-to-one correspondence between the different assignment numbers in the vector list and the different assignment numbers in the timeslot list; (f) selecting a vector from the vector list comprising:
(i) accessing a member of the timeslot list in accordance with a next timeslot for transport to the switching fabric; (ii) determining an assignment number associated with the member of the timeslot list; and (iii) obtaining a vector from a member of the vector list, wherein the assignment number associated with the member of the timeslot list maps to an assignment number associated with the member of the vector list in accordance with the one-to-one correspondence; and (g) transferring into the switching fabric the one of the plurality of packets from a data queue corresponding to the vector.
- 11. The method of claim 10, further comprising the step of:
(g) receiving the plurality of data packets at an input port before step (a).
- 12. The method of claim 1, further comprising the steps of:
(g) receiving a serial data stream before step (a); and (h) converting the serial data stream into the plurality of data packets in response to step (g).
- 13. The method of claim 1, further comprising the step of:
(g) generating the plurality of data packets before step (a).
- 14. In a system for switching a plurality of data packets, a method comprising the steps of:
(a) queuing the plurality of data packets into a plurality of data queues, wherein each of the plurality of data queues corresponds to a value of at least one attribute and wherein each of the plurality of data packets is associated with the at least one attribute; (b) forming a vector list, wherein each vector is chosen from a set of vectors, each vector save one corresponding to one of the plurality of data queues, the remaining vector value is a null-vector indicating that none of the plurality of data packets is sent into a switching fabric during a corresponding time slot; (c) assigning different assignment numbers to each member of the vector list; (d) associating second assignment numbers to the different assignment numbers, wherein an ordering of the second assignment numbers is a shuffling of an ordering of the different assignment numbers; (e) selecting a vector from the vector list in accordance with the ordering of the second assignment numbers; and (f) transferring into the switching fabric one of the plurality of data packets from a data queue corresponding to the vector.
- 15. A computer-readable medium containing instructions for controlling a computer system to switch a plurality of data packets, by:
queuing the plurality of data packets into a plurality of data queues, wherein each of the plurality of data queues corresponds to a value of at least one attribute and wherein each of the plurality of data packets is associated with the at least one attribute; forming a vector list, wherein each vector is chosen from a set of vectors, each vector save one corresponding to one of the plurality of data queues, the remaining vector value is a null-vector indicating that none of the plurality of data packets is sent into a switching fabric during a corresponding time slot; assigning different assignment numbers to each member of the vector list; shuffling the different assignment numbers among members of the vector list; selecting a vector from the list in accordance with a numerical ordering of the different assignment numbers; and transferring into the switching fabric one of the plurality of data packets from a data queue corresponding to the vector.
- 16. The computer-readable medium of claim 15, further containing instructions for controlling the computer system to switch the plurality of data packets, by:
receiving the plurality of data packets at an input port before queuing the plurality of data packets.
- 17. The computer-readable medium of claim 15, further containing instructions for controlling the computer system to switch the plurality of data packets, by:
receiving a serial data stream before queuing the plurality of data packets; and converting the serial data stream into the plurality of data packets in response to receiving the serial data stream.
- 18. The computer-readable medium of claim 15, further containing instructions for controlling the computer system to switch the plurality of data packets, by:
generating the plurality of data packets before queuing the plurality of data packets.
- 19. A computer data signal embodied in a transmission medium, comprising:
a packet-inputting source code segment comprising inputting a plurality of data packets from an input buffer and storing the plurality of data packets into a plurality of data queues, wherein each of the plurality of data queues corresponds to a value of at least one attribute and wherein each of the plurality of data packets is associated with the at least one attribute; a vector allocation source code segment comprising choosing a vector from a vector list and associating the vector with a member of the vector list, wherein each vector is chosen from a set of vectors, each vector save one corresponding to one of the plurality of data queues, the remaining vector value is a null-vector indicating that none of the plurality of data packets is sent into a switching fabric during a corresponding time slot; an assignment source code segment comprising assigning different assignment numbers to each member of the vector list and shuffling the different assignment numbers among members of the vector list; and a packet-outputting source code segment comprising selecting the vector from the vector list in accordance with a numerical ordering of the different assignment numbers and transferring into the switching fabric one of the plurality of data packets from a data queue corresponding to the vector.
- 20. A computer data signal embodied in a transmission medium, comprising:
a packet-inputting source code segment comprising inputting a plurality of data packets from an input buffer and storing the plurality of data packets into a plurality of data queues, wherein each of the plurality of data queues corresponds to a value of at least one attribute and wherein each of the plurality of data packets is associated with the at least one attribute; a vector allocation source code segment comprising choosing a vector from a vector list and associating the vector with a member of the vector list, wherein each vector is chosen from a set of vectors, each vector save one corresponding to one of the plurality of data queues, the remaining vector value is a null-vector indicating that none of the plurality of data packets is sent into a switching fabric during a corresponding time slot; an assignment source code segment comprising:
assigning different assignment numbers to each member of the vector list; assigning different assignment numbers to each member of a timeslot list, wherein each member of the timeslot list corresponds to an assigned timeslot for transporting one of the plurality of data packets; defining a one-to-one correspondence between the different assignment numbers in the vector list and the different assignment numbers in the timeslot list; accessing a member of the timeslot list in accordance with a next timeslot for transport to the switching fabric; determining an assignment number associated with the member of the timeslot list; and obtaining a vector from a member of the vector list, wherein the assignment number associated with the member of the timeslot list maps to an assignment number associated with the member of the vector list in accordance with the one-to-one correspondence; and a packet-outputting source code segment comprising transferring into the switching fabric the one of the plurality of packets from a data queue corresponding to the vector.
Parent Case Info
[0001] This is a continuation application of U.S. Ser. No. 09/802,389 filed Mar. 9, 2001. The parent application claims priority under 35 U.S.C. §119(e) to provisional application serial No. 60/188,396, filed Mar. 10, 2000, the entire writing and content of both applications are incorporated by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60188396 |
Mar 2000 |
US |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09802389 |
Mar 2001 |
US |
Child |
10021612 |
Dec 2001 |
US |