Claims
- 1. A system for scheduling transmission of asynchronous transfer mode cells, comprising:
a first processor connected to at least one port, wherein the first processor performs port management functions, low level cell handling and cell switching; and a second processor operatively connected to the first processor through a shared memory, the second processor performing cell traffic shaping and scheduling operations, wherein ATM cells are passed between the second processor and the first processor in an ordered, timed cell stream for transmission on the at least one port.
- 2. The system of claim 1, wherein the second processor further comprises:
a shaping engine for receiving locally originated ATM cell traffic and switched ATM cell traffic received at a port, wherein the shaping engine operates to schedule the delivery of the locally originated and switched ATM cell traffic to the first processor in an ordered, timed cell stream for transmission on the at least one port.
- 3. The system of claim 2, wherein the second processor further comprises an ATM driver for receiving the locally originated ATM cell traffic and passing it to the shaping engine for scheduling.
- 4. The system of claim 2, wherein locally originated ATM cell traffic includes ATM cells generated by the second processor and data packets bridged or routed from other network interfaces.
- 5. The system of claim 2, further comprising:
a first interface between the first processor and the second processor across which switched ATM cell traffic received at the at least one port is transmitted to the shaping engine for scheduling; and a second interface between the second processor and the first processor across which the ordered, timed cell stream is transmitted from the shaping engine to the first processor for transmission on the at least one port.
- 6. The system of claim 5, wherein the first interface comprises a memory structure stored on the shared memory for storing the switched ATM cell traffic received at the at least one port.
- 7. The system of claim 6, wherein the memory structure is a first-in-first-out memory structure.
- 8. The system of claim 8, wherein the second interface comprises a memory structure stored on the shared memory for storing the ordered, timed cell stream.
- 9. The system of claim 8, wherein the memory structure is a first-in-first-out memory structure, wherein ATM cell traffic is added to the a first-in-first-out memory structure upon receipt of a cell at a previously inactive port.
- 10. The system of claim 5, wherein the first processor outputs multicast cell traffic to the shaping engine across the first interface.
- 11. The system of claim 2, further comprising a port activation interface between the second processor and the first processor across which port activation requests are transmitted which result in the transmission of ATM cells from the at least one port.
- 12. The system of claim 2, wherein the shaping engine further comprises:
means for utilizing a timing ring stored in the shared memory, wherein
- 13. A method for scheduling transmission of asynchronous transfer mode cells, comprising the steps of:
maintaining a timing ring in a memory structure operatively connected to a traffic shaping engine and an output port, wherein the timing ring is a circular collection of time slots relating to cell transmission at the output port, each time slot having a list of flow structures and a list of latent queues corresponding to supported traffic priorities; receiving an ATM cell into the traffic shaping engine; rotating a ring pointer for the timing ring by one slot to a current time slot; removing the list of flows associated within the current time slot for each supported priority and adding the list of flows to the end of the time slot's latent queue, respectively; extracting a flow from the latent queue corresponding to the next-in-line, non-empty flow having the highest-priority; determining whether the identified flow still has data to transmit; forgetting the identified flow if it is determined that the identified flow has no data to transmit; and placing an address associated with the identified flow into a first-in-first-out memory structure operatively connected to the output port, resulting in transmission of the ATM cell from the output port.
- 14. The method of claim 13, wherein the supported traffic priorities include at least CBR, rt-VBR, nrt-VBR, and UBR.
- 15. The method of claim 13, further comprising the steps of:
recording the transmission of the ATM cell in a bitmap memory structure, wherein bit positions in the bitmap memory structure correspond to port numbers; calculating an ideal transmission time for the next cell from the flow; identifying the time slot in the timing ring corresponding to the calculated ideal transmission time; determining whether another flow has already requested the identified time slot; reinserting the flow in the identified slot if it is determined that another flow has not already requested the identified time slot; and adding the flow to the front of the latent queue for the identified slot if it is determined that another flow has already requested the identified time slot.
- 16. The method of claim 15, wherein the step of calculating an ideal transmission time for the next cell from the flow is performed by a scheduling handler routine belonging to the flow.
- 17. A computer readable medium incorporating instructions for scheduling transmission of asynchronous transfer mode cells, the instructions comprising:
one or more instructions for maintaining a timing ring in a memory structure operatively connected to a traffic shaping engine and an output port, wherein the timing ring is a circular collection of time slots relating to cell transmission at the output port, each time slot having a list of flow structures and a list of latent queues corresponding to supported traffic priorities; one or more instructions for receiving an ATM cell into the traffic shaping engine; one or more instructions for rotating a ring pointer for the timing ring by one slot to a current time slot; one or more instructions for removing the list of flows associated within the current time slot for each supported priority and adding the list of flows to the end of the time slot's latent queue, respectively; one or more instructions for extracting a flow from the latent queue corresponding to the next-in-line, non-empty flow having the highest-priority; one or more instructions for determining whether the identified flow still has data to transmit; one or more instructions for forgetting the identified flow if it is determined that the identified flow has no data to transmit; and one or more instructions for placing an address associated with the identified flow into a first-in-first-out memory structure operatively connected to the output port, resulting in transmission of the ATM cell from the output port.
- 18. The computer readable medium of claim 17, wherein the supported traffic priorities include at least CBR, rt-VBR, nrt-VBR, and UBR.
- 19. The computer readable medium of claim 17, the instructions further comprising:
one or more instructions for recording the transmission of the ATM cell in a bitmap memory structure, wherein bit positions in the bitmap memory structure correspond to port numbers; one or more instructions for calculating an ideal transmission time for the next cell from the flow; one or more instructions for identifying the time slot in the timing ring corresponding to the calculated ideal transmission time; one or more instructions for determining whether another flow has already requested the identified time slot; one or more instructions for reinserting the flow in the identified slot if it is determined that another flow has not already requested the identified time slot; and one or more instructions for adding the flow to the front of the latent queue for the identified slot if it is determined that another flow has already requested the identified time slot.
- 20. The computer readable medium of claim 19, wherein the one or more instructions for calculating an ideal transmission time for the next cell from the flow are performed by a scheduling handler routine belonging to the flow.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. provisional patent application Serial No. 60/284,168 filed Apr. 17, 2001, the disclosure of which is incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60284168 |
Apr 2001 |
US |