Claims
- 1. A method of arbitration at a switching fabric, comprising:
receiving cells from an ingress, wherein each of the cells has an associated traffic class of a plurality of traffic classes; generating a request at a traffic profiler; performing a multi-stage arbitration, including:
performing a first stage arbitration to modify the request according to which traffic classes of the plurality of traffic classes are represented by cells received from the ingress that have the traffic classes; and performing a second stage arbitration using the modified request to select a cell of the cells received from the ingress as winner of the multi-stage arbitration; and forwarding the cell to an egress.
- 2. The method of claim 1, said generating further comprising:
generating the request without using feedback from the multi-stage arbitration.
- 3. The method of claim 1, wherein said plurality of traffic classes have associated priorities, said performing said first stage arbitration further comprising:
determining a threshold above which cells are forwarded on a strict priority basis; and modifying the request to match a highest priority traffic class at or above the threshold that is represented by cells received from the ingress.
- 4. The method of claim 3, said performing said first stage arbitration further comprising:
using a per-priority round-robin value to ensure fairness after forwarding cells on a strict priority basis.
- 5. The method of claim 1, further comprising:
configuring the first stage arbitration using software.
- 6. The method of claim 1, said performing said second stage arbitration further comprising:
using the modified request to select the cell as winner of the multi-stage arbitration in accordance with an arbitration algorithm.
- 7. The method of claim 6, said performing said second stage arbitration further comprising:
using the modified request to select the cell as winner of the multi-stage arbitration if the cell matches the modified request.
- 8. The method of claim 6, said performing said second stage arbitration further comprising:
using the modified request to select the cell as winner of the multi-stage arbitration if the traffic class of the cell matches the modified request.
- 9. The method of claim 1, further comprising:
configuring the second stage arbitration using software.
- 10. The method of claim 1, said generating further comprising:
generating additional requests in subsequent steps in accordance with a repeat field of the request.
- 11. A method of traffic profiling, comprising:
configuring a traffic profile table to include an entry for each of a plurality of traffic classes; associating subsets of entries in the traffic profile table with respective channels, without adjusting the subsets of entries to account for traffic passing through the respective channels; traversing the subsets of entries for each of the respective channels; and generating traffic profile requests for each of the respective channels using the entries.
- 12. The method of claim 11, further comprising:
repeating traffic profile requests for each of the channels according to a repeat value associated with the entries.
- 13. A traffic forwarding system having one or more channels of entry (COE) and one or more exit channels, comprising:
a receive module configured to receive traffic on COE, wherein the received traffic includes cells with associated traffic classes; a fabric buffer module configured to enqueue cells received by the receive module according to the associated traffic classes and the COE; a traffic profiler module configured to generate a request for a cell with a specified traffic class, the traffic profiler including:
a traffic profile table with entries having fields associated with traffic classes; and a request generator configured to generate requests using one or more of the fields of the entries; a multi-stage arbitration engine configured to receive the request from the traffic profiler module, including:
a first stage arbiter, configured to arbitrate between traffic classes of the cells received at the receive module and modify the request accordingly; and a second stage arbiter, configured to arbitrate between the cells received at the receive module using the modified request; and a transmit module configured to forward cells that win arbitration at the multi-stage arbitration engine on one of one or more exit channels.
- 14. The system of claim 13, said traffic profile table further comprising:
entries having fields associated with COE, wherein the traffic profiler module is further configured to generate the request for the cell with a specified channel of entry.
- 15. The system of claim 13, said request generator further configured to:
use a plurality of sets of pointers configured to traverse the traffic profile table.
- 16. The system of claim 15, said plurality of sets of pointers further comprising:
one set of pointers for each exit channel.
- 17. The system of claim 15, said sets of pointers further comprising:
a start pointer configured to identify a start of a range of table entries; an end pointer configured to identify an end to the range of table entries; and a current pointer configured to traverse the range of table entries from the start to the end.
- 18. The system of claim 13, further comprising:
a plurality of multi-stage arbitration engines, including the multi-stage arbitration engine, independently associated with each exit channel.
- 19. The system of claim 13, said first stage arbiter further configured to:
receive the request, receive a plurality of traffic class flags associated with a respective plurality of traffic classes, wherein a traffic class flag is indicative of whether the cells have the associated traffic class of the traffic class flag; arbitrate between traffic classes of the cells according to arbitration parameters; and modify the request in accordance with the arbitration.
- 20. The system of claim 19, said second stage arbiter further configured to:
receive the modified request from the first stage arbiter; and arbitrate between the cells according to the modified traffic profile request and arbitration parameters.
- 21. An arbitration engine configured to arbitrate between one or more cells enqueued at a switching fabric, comprising:
a first stage arbiter, configured to:
receive a traffic profile request; receive a plurality of traffic class flags associated with a respective plurality of traffic classes, wherein a traffic class flag is indicative of whether one or more cells enqueued at a switching fabric have the associated traffic class of the traffic class flag; arbitrate between traffic classes, for which one or more cells are enqueued, according to arbitration parameters; and modify the traffic profile request in accordance with the arbitration; and a second stage arbiter, configured to:
receive the modified traffic profile request from the first stage arbiter; and arbitrate between the enqueued cells according to the modified traffic profile request and arbitration parameters.
- 22. A traffic profiler configured to generate a traffic profile request, comprising:
a traffic profile table, including a plurality of entries, wherein each entry has a plurality of fields including a traffic class field; a plurality of sets of pointers that identify the entries, wherein each of the plurality of sets of pointers includes a start pointer and an end pointer that point to a start and end entry of a range of entries, and a current pointer that traverses the range of entries; and a request generator configured to generate requests for traffic classes using the entries identified by the current pointers.
- 23. The traffic profiler of claim 22, said entries further comprising:
a repeat field, wherein the request generator is configured to repeat requests according to the repeat field.
CROSS REFERENCE TO RELATED APPLICATION
[0001] This application is entitled to the benefit of provisional Patent Application Serial No. 60/385,991, filed Jun. 4, 2002.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60385991 |
Jun 2002 |
US |