Claims
- 1. A switching device operatively connected to a transport medium, to a fabric switching network including a plurality of switch ports; the switching device comprising:
(a) an aggregator comprising a demultiplexer and an external switch port operatively coupled to the transport medium; wherein the demultiplexer receives an ingress data stream comprising a plurality of protocol data units at the external switch port, and generates a plurality of intermediate data streams; (b) a plurality of intermediate ports operatively coupled to the aggregator for receiving the plurality of intermediate data streams; and (c) a plurality of classification devices, operatively coupled to the plurality of intermediate ports and fabric switching network, for distributing each protocol data unit to the fabric switching network in the direction of an egress switch port.
- 2. The switching device of claim 1, wherein the classification devices comprise flow resolution logic, queue manager, and internal port; wherein each protocol data unit is distributed to the fabric switching network in the direction of an egress switch port.
- 3. The switching device of claim 1, wherein the switching device further comprising:
(a) an egress processor for transmitting protocol data units received from the fabric switching network to the plurality of intermediate ports; and (b) a multiplexer for generating an egress data stream from the protocol data units received from the plurality of intermediate ports.
- 4. The switching device of claim 1, wherein the number of classification devices is given by K, and the number of intermediate ports given by N; wherein N is greater than or equal to K.
- 5. The switching device of claim 4, wherein the N intermediate ports operably connect the aggregator to the K classification devices such that a subset of the N physical wiring connections associated with the demultiplexer are operably connected to K classification devices; said subset of the N physical wiring connections receiving relatively more traffic as a result of the load imbalance resulting from the aggregator load balancing algorithm; whereby the load imbalance associated with the aggregator load balancing algorithm is substantially balanced amongst the classification devices.
- 6. The switching device of claim 2, wherein the queue manager causes the protocol data units received from the aggregator to be buffered in queue memory in a plurality of queues associated with an egress switch port, each queue being designated by a queue identification.
- 7. The switching device of claim 6, wherein the switching device further includes a memory device, operably connected to the queue manager, for retaining a look-up table that maps each queue identification to one of a plurality of egress switch ports.
- 8. The switching device of claim 7, wherein at least one egress switch port is associated with an egress switching device including a plurality of intermediate ports.
- 9. The switching device of claim 8, wherein the look-up table further includes at least one queue identification for each of the intermediate ports of the egress switching device.
- 10. The switching device of claim 9, wherein the queue identifications that map to intermediate ports of the egress switching device are consecutively ordered between 1 and J, where J equal the number of intermediate ports of the egress switching device.
- 11. The switching device of claim 9, wherein the queue identifications that map to the intermediate ports of the egress switching device are consecutively ordered, for each classification device; and the ordering of the queue identifications include a predetermined offset from classification device to classification device, of the ingress switching device.
- 12. The ingress switching device of claim 9, wherein the queue identifications that map to the intermediate ports of the egress switching device are given by the sum of a base queue identification and a queue identification offset, the offset given by (J modulo (j+m), where J is the total number of intermediate ports of the egress switching device, j is an index representing the jth intermediate ports and ranges from zero to J−1, and m is an index representing the mth classification device of the ingress switching device.
- 13. The switching device of claim 9, wherein the queue identifications used within each classification device are generated by the flow resolution logic.
- 14. The switching device of claim 13, wherein the flow resolution logic generates effective queue identifications that are associated with the intermediate ports of an egress switching device from said queue identification associated with an intermediate port of said egress switching device and a queue identification offset.
- 15. The switching device of claim 8, wherein the queue identification of a frame is generated by means of a second load balancing function.
- 16. The switching device of claim 6, wherein the memory device is a re-writable memory device operably coupled to a program manager that dynamically updates the look-up table in order to balance the load between the intermediate ports of an egress switching device.
- 17. The switching device of claim 16, wherein load is balanced by re-assigning egress data forwarded to over-utilized intermediate ports of an egress switching device to under-utilized intermediate ports of the same egress switching device.
- 18. The switching device of claim 17, wherein the program manager, operatively coupled to the plurality of classification devices of one or more egress switching devices, acquires traffic statistics necessary to monitor the load across the intermediate ports of one or more egress switching devices.
- 19. A system of switches operatively coupled to transport media for transmitting and receiving data streams, said system of switches comprising:
(a) a fabric switching network; (b) a plurality of switching devices, each comprising:
(i) an aggregator comprising:
(a) an external switch port operatively coupled to the fabric switching network; (b) a demultiplexer, operatively coupled to the external switch port, for generating a plurality of intermediate data streams from an ingress data stream comprising a plurality of protocol data units; and (c) a multiplexer, operatively coupled to the external switch port; (ii) a plurality of intermediate ports operatively coupled to the aggregator; and (iii) a plurality of classification devices, each classification device comprising:
(a) an ingress processor, operatively coupled to the plurality of intermediate ports, comprising flow resolution logic and a queue manager; and (b) an egress processor, operatively coupled to the fabric switching network, for receiving an egress data stream; (c) a program manager, operatively coupled to each switching device, for acquiring flow statistics across intermediate ports; wherein the intermediate ports to which protocol data units are directed are dynamically assign in order to substantially balance load imbalance between the intermediate ports of each switching device.
- 20. The system of switch of claim 19, wherein the plurality of classification devices further include a memory device for retaining a table associating one or more queue identifications.
- 21. The system of switches of claim 20, wherein the memory device is a re-writable memory device adapted to have the table modified by the program manager.
- 22. The system of switches of claim 21, wherein the program manager includes processing means for dynamically modifying the table associated with one or more classification devices by re-assigning the port numbers corresponding to the intermediate ports of an egress switching device to redistribute protocol data units from over-utilized intermediate ports to under-utilized intermediate ports.
- 23. The system of switches of claim 22, wherein the queue identifications associated with switch ports are generated from a queue identification corresponding to either:
(a) an external port of an egress switch or router; or (b) a intermediate port of an egress switching device.
- 24. The system of switches of claim 23, wherein the queue identification is generated, at least in part, from a second load balancing function that uses addressing bits from the protocol data units.
- 25. The system of switches of claim 24, wherein the queue identifications associated with intermediate ports of an egress switching device are generated from a base queue identification and a queue identification offset.
- 26. The system of switches of claim 25, wherein the base queue identification associated with an egress switching device corresponds to an intermediate port; and the queue identification offset is generated from a second load balancing function that uses addressing bits from the protocol data units.
- 27. The system of switches of claim 19, wherein the plurality of intermediate ports operably couple the physical wiring connections of the aggregator to the classification devices so as to compensate for load imbalance, whereby load imbalance characteristic of the load balancing algorithm is substantially reduced.
- 28. The system of switches of claim 27, wherein the K physical wiring connections of the aggregator are operably coupled to K classification devices; the K physical wiring connections being characterized by higher than average traffic due to the imperfect character of the load balancing algorithm.
- 29. The system of switches of claim 19, wherein the flow resolution logic of the classification devices generate a queue identification for each protocol data unit; the queue identification mapping to an external port or an intermediate port.
- 30. The system of switches of claim 29, wherein the plurality of classification devices of a first ingress switching device use a common group of queue identifications to map egress intermediate data streams to the intermediate ports of a first egress switching device.
- 31. The system of switches of claim 30, wherein the queue identifications maintained by the classification devices of the first ingress switching device corresponding to the intermediate ports of the first egress switching device are consecutively ordered from intermediate port to intermediate port, for each of the classification devices.
- 32. The ingress switching device of claim 30, wherein the queue identifications maintained by the classification devices of the first ingress switching device corresponding to the intermediate ports of the first egress switching device are consecutively ordered from intermediate port to intermediate port, for each of the classification devices; the ordering of the queue identifications include a predetermined offset from classification device to classification device of the first ingress switching device.
- 33. A method of processing an ingress data stream at wire speed with a switching device comprising a plurality of classification devices operating at less than wire speed; the method comprising the steps of:
(a) receiving an ingress data stream at an external port; (b) demultiplexing the data stream into a plurality of intermediate ingress data streams; (c) parsing the plurality of intermediate ingress data streams into a plurality of protocol data units; (d) processing each protocol data unit for purposes of either switching or routing the protocol data unit; and (e) outputting protocol data units to an internal port.
- 34. The method of claim 33, wherein the step of outputting comprises the step of transmitting some protocol data units to a switching device, comprising the steps of:
(a) selecting which of a plurality of intermediate ports of an egress switching device to forward the protocol data unit; (b) tagging the protocol data unit to indicate the selected intermediate port; (c) buffering the processed protocol data unit in queue memory; and (d) transmitting the protocol data unit to an internal port operatively coupled to the fabric switching network.
- 35. The method of claim 34, wherein the step of outputting further comprises the step of transmitting some protocol data units to a switch, router, or switch router, comprising the steps of:
(a) determining which external port of one or more external port to forward the protocol data unit; (b) buffering the processed protocol data unit in queue memory; and (c) forwarding the protocol data unit to an internal port operatively coupled to the fabric switching network.
- 36. The method of claim 37, wherein the step of determining which of a plurality of intermediate ports of an egress switching device to forward the protocol data units further includes the step of retrieving the intermediate port from a queue identification-to-port table retained in a memory device.
- 37. The method of claim 36, wherein the method further includes the step of dynamically updating the queue identification-to-port table to minimize load imbalance between the intermediate ports of an egress switching device.
- 38. The method of claim 37, wherein the step of dynamically updating the queue identification-to-port table includes re-assigning traffic from over-subscribed intermediate ports of an egress switching device to under-subscribed intermediate ports of the said egress switching device.
- 39. The method of claim 42, wherein the step of transmitting at least one protocol data unit to an egress switching device further includes the steps of:
(a) looking up a base queue identification for each protocol data unit; (b) computing a queue identification offset; and (c) generating an effective queue identification from the base queue identification and queue identification offset.
- 40. The method of claim 39, wherein the step of computing a queue identification offset includes the step of computing the offset based upon a load balancing function.
- 41. The method of claim 40, wherein the load balancing function is a hash function that operates on a select number of address bits.
- 42. A switching device operatively connected to a transport medium, to a fabric switching network including a plurality of switch ports; the switching device comprising:
(a) an aggregator comprising a demultiplexer and an external switch port operatively coupled to the transport medium; wherein the demultiplexer receives an ingress data stream comprising a plurality of protocol data units at the external switch port, and generates a plurality of intermediate data streams; (b) a plurality of intermediate ports, operatively coupled to the aggregator, for receiving the plurality of intermediate data streams; and (c) a plurality of ingress packet processing resources, operatively coupled to the plurality of intermediate ports and fabric switching network, for processing protocol data unit distributed to the fabric switching network.
- 43. The switching device of claim 1, wherein the ingress packet processing resource is selected from the group consisting of: traffic classifier, rate policer, accounting device, editing device, and address look up device.
- 44. The switching device of claim 1, wherein the switching device further comprising:
(a) an egress processor for transmitting protocol data units received from the fabric switching network to the plurality of intermediate ports; and (b) a multiplexer for generating an egress data stream from the protocol data units received from the plurality of intermediate ports.
- 45. A method of processing an ingress data stream at wire speed with a device comprising a plurality of ingress packet processing resources operating at less than wire speed; the method comprising the steps of:
(a) receiving an ingress data stream from an external port operative coupled to a transport medium; (b) demultiplexing the data stream into a plurality of intermediate ingress data streams; (c) parsing the plurality of intermediate ingress data streams into a plurality of protocol data units; (d) processing each protocol data unit in accordance with the ingress packet processing resources; and (e) outputting protocol data units to an internal port.
- 46. The method of claim 45, wherein the ingress packet processing resource is selected from the group consisting of: traffic classifier, rate policer, accounting device, editing device, and address look up device.
- 47. The method of claim 46, wherein the internal port is operatively coupled to a fabric switching network.
- 48. The method of claim 47, wherein the method of processing further comprising the steps of:
(a) receiving protocol data units from the internal port operatively coupled to the fabric switching network; (b) transmitting protocol data units received from the fabric switching network to the plurality of intermediate ports to form intermediate egress data streams; (c) multiplexing the intermediate egress data streams received from the plurality of intermediate ports; and (d) outputting an egress data stream.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims the benefit of U.S. provisional application 60/352,983, filed Jan. 28, 2002, the contents of which is hereby incorporated herein by reference for all purposes.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60352983 |
Jan 2002 |
US |