Claims
- 1. A method for performing offline fabric diagnostics, comprising:
removing a switching fabric from a switching fabric configuration; generating a diagnostic cell; transmitting the diagnostic cell across the switching fabric from an ingress; receiving the diagnostic cell at an egress; determining that the diagnostic cell was correctly received; and adding the switching fabric to the switching fabric configuration, wherein the switching fabric configuration identifies online switching fabrics.
- 2. The method of claim 1, further comprising:
flushing the switching fabric; and enabling switching fabrics according to the switching fabric configuration.
- 3. The method of claim 1, wherein said removing further comprises:
selecting a switching fabric for offline diagnostics; and altering an active fabric mask associated with the switching fabric configuration.
- 4. The method of claim 1, wherein the diagnostic cell includes test data, said determining further comprising:
determining that a previous diagnostic cell was not skipped; and determining that test data associated with the diagnostic cell was received correctly.
- 5. A method for disabling defective paths from a multi-channel traffic switching system while the system is in-use, comprising:
setting a heartbeat interval; generating periodically according to the interval a heartbeat cell at an ingress of an ingress-to-egress channel; sending the heartbeat cell on the channel; determining whether the heartbeat cell arrived at an egress of the ingress-to-egress channel according to the interval; signaling that a path of the channel is defective if the heartbeat cell did not arrive across the path according to the interval; and disabling the path if the path is defective.
- 6. The method of claim 5, further comprising:
including information in the heartbeat cell indicating which paths the ingress considers to be active; and using the information to update the egress so that the ingress and the egress agree about which paths are active.
- 7. The method of claim 5, further comprising:
setting a timer at the ingress to facilitate said generating periodically.
- 8. The method of claim 5, further comprising:
keeping a heartbeat count indicative of a number of heartbeat cells generated at the ingress; associating the heartbeat count with heartbeat cells when the heartbeat cells are generated; logging receipt of the heartbeat cells at the egress; and discarding the received heartbeat cells.
- 9. The method of claim 5, said generating further comprising:
associating the heartbeat cell with only one priority of a plurality of priorities, wherein the channel includes a plurality of distinct priority-based sub-paths configured to carry traffic of the distinct priorities.
- 10. The method of claim 5, said determining further comprising:
taking into account slippage when determining whether the heartbeat cell arrived according to the interval.
- 11. A method for adding switching fabrics to and removing switching fabrics from a multi-switching fabric cell traffic forwarding system, comprising:
changing a switching fabric configuration from a first configuration to a second configuration, wherein the first configuration and the second configuration identify active switching fabrics; suspending transmission of cells from an ingress configured to transmit the cells across switching fabrics identified in the first configuration; enabling switching fabrics identified in the second configuration; and seamlessly resuming transmission of cells across the enabled switching fabrics.
- 12. The method of claim 11, further comprising:
receiving the cells at the ingress; striping the cells across the switching fabrics identified in the first configuration; waiting for the switching fabrics to become empty after said suspending transmission; and flushing the switching fabrics.
- 13. The method of claim 12, further comprising determining that the switching fabrics have not become empty after a period of time and ending the waiting.
- 14. The method of claim 11, further comprising:
sending an active switching fabric mask (AFM) to each egress across the enabled switching fabrics; and modifying a striping reassembly pattern of each egress to correspond to the AFM cell.
- 15. The method of claim 11, wherein a new switching fabric is to be added, further comprising:
detecting a new switching fabric; and initiating automatically said changing the switching fabric configuration, wherein the second configuration includes the new switching fabric.
- 16. The method of claim 11, wherein an old switching fabric is to be removed, further comprising:
detecting an old switching fabric; and initiating automatically said changing the switching fabric configuration, wherein the second configuration omits the defective switching fabric.
- 17. A method for initializing a system after an ingress, switching fabric, or egress is brought online or reset, comprising:
bringing one or more paths of an ingress-to-egress channel online; setting a switching fabric configuration to identify switching fabrics of the channel; enabling the switching fabrics identified in the switching fabric configuration; synchronizing the switching fabrics with the ingress; synchronizing the egress with the ingress; and striping cells across the switching fabrics from the ingress to the egress.
- 18. The method of claim 17, further comprising:
sending an active switching fabric mask (AFM) cell to the egress; modifying a data striping reassembly pattern at the egress to correspond to the AFM; and reassembling the cells striped across the switching fabrics according to the data striping reassembly pattern.
- 19. The method of claim 17, further comprising requesting that the ingress perform synchronization.
- 20. A method for clearing a switching fabric in a multi-path traffic forwarding system, comprising:
detecting one or more stuck paths in a switching fabric; and flushing the one or more stuck paths selectively in response to the detecting, wherein the flushing targets the one or more paths so as to limit impact to other system resources.
- 21. A method for error detection and correction in a traffic forwarding system, comprising:
maintaining online one or more switching fabrics of an ingress-to-egress channel; synchronizing an ingress with the one or more switching fabrics; and synchronizing an egress with the ingress.
- 22. The method of claim 21, further comprising:
programming a rate of synchronization; and generating one or more synchronization (synch) cells at the ingress, in turn for each of the switching fabrics and each egress, according to the rate of synchronization; and sending the one or more sync cells across the switching fabrics.
- 23. The method of claim 21, further comprising:
generating a sync request cell at the egress; sending the sync request to the ingress; and receiving the sync request cell at the ingress, wherein said synchronizing is in accordance with the sync request cell.
- 24. The method of claim 23, wherein the egress is a first egress and the ingress is a first ingress, further comprising:
sending the sync request cell from the first egress associated with the first ingress across the switching fabrics to a second ingress; forwarding the sync request cell to a second egress associated with the second ingress; and sending the sync request cell from the second egress across the switching fabrics to the first ingress.
- 25. The method of claim 21, wherein said synchronizing said ingress with said switching fabrics further comprises:
determining that a tail pointer position at one of the active switching fabrics and a tail pointer position indicator at the ingress disagree; setting the tail pointer position to agree with the tail pointer position indicator; and generating an interrupt.
- 26. The method of claim 21, wherein said synchronizing said egress with said ingress further comprises:
generating a synchronization (synch) cell at the ingress; sending the sync cell to the egress; matching a column field associated with the sync cell against an expected column position of a next data cell to arrive at the egress; determining that a mismatch has occurred; flushing an egress queue; updating the expected column position according to the sync cell; generating a sync request cell; sending the sync request cell; and waiting for the sync request cell to arrive.
- 27. The method of claim 21, further comprising:
determining that sync cells do not form a contiguous pattern at the egress; and detecting an error according to said determining.
- 28. A method for error detection in a traffic forwarding system, comprising:
including a row identifier in cells sent to unicast egress queues; sending a set of cells across a plurality of switching fabrics, wherein each cell of the set of cells is sent across a respective switching fabric; incrementing the row identifier; receiving the set of cells at the egress; enqueuing each cell of the cells in respective columns of a reassembly queue set in respective rows of the respective columns; matching the row identifier of each cell with the respective rows; and performing error correction if a mismatch is found.
- 29. The method of claim 28, wherein the cells include data cells and test cells.
- 30. The method of claim 28, wherein the performing error correction further comprises:
ignoring received cells until synchronizing the egress with the ingress; flushing the egress; generating a synchronization request at the egress; sending the synchronization request to the ingress; and synchronizing the egress with the ingress.
- 31. The method of claim 30, wherein said synchronizing further comprises:
generating a synchronization (synch) cell at the ingress; sending the sync cell to the egress; matching a column field associated with the sync cell against an expected column position of a next data cell to arrive at the egress; determining that a mismatch has occurred; flushing an egress queue; updating the expected column position according to the sync cell; generating a sync request cell; sending the sync request cell; and waiting for the sync request cell to arrive.
- 32. A traffic switching system configured to perform offline fabric diagnostics, comprising:
a plurality of switching fabrics; an ingress module, coupled to the plurality of switching fabrics, including:
an ingress diagnostics module configured to:
remove a switching fabric of the plurality of switching fabrics from a switching fabric configuration, wherein the switching fabric configuration identifies online switching fabrics; and generate a diagnostic cell; a transmission module configured to:
transmit the diagnostic cell across the switching fabric; and transmit data cells across the online switching fabrics identified in the switching fabric configuration; an egress module, coupled to the switching fabrics, including:
a receive module configured to receive cells, including the diagnostic cell and the data cells, from the switching fabrics; a packet constructor configured to reassemble packets from cells received across the switching fabrics according to the switching fabric configuration; and an egress diagnostics module configured to:
determine that the diagnostic cell was correctly received; and include the switching fabric in the switching fabric configuration.
- 33. The system of claim 32, wherein the ingress diagnostics module is further configured to generate flush cells to flush the switching fabrics.
- 34. The system of claim 32, wherein the diagnostic cell is a second diagnostic cell of a diagnostic cell sequence, and wherein the egress diagnostics module is further configured to:
determine that a first diagnostic cell of the diagnostic cell sequence was received; and determine that test data associated with the second diagnostic cell was received correctly.
- 35. A multi-channel traffic switching system configured to disable defective paths of an ingress-to-egress channel, comprising:
a plurality of switching fabrics; an ingress module, coupled to the switching fabrics, including:
an ingress diagnostics module configured to:
periodically generate heartbeat cells; and disable defective paths of an ingress-to-egress channel; and a transmit module configured to send the heartbeat cells from the ingress across the switching fabrics; an egress module, coupled to the switching fabrics, including:
a receive module configured to receive the heartbeat cell from the switching fabrics; and an egress diagnostics module configured to:
determine whether each heartbeat cell arrived in accordance with a predetermined interval; and signal that a path of the ingress-to-egress channel is defective if a heartbeat cell did not arrive in accordance with the predetermined interval.
- 36. The system of claim 35, wherein said ingress diagnostics module is further configured to:
keep a heartbeat count indicative of a number of heartbeat cells generated; and associate the heartbeat count with heartbeat cells when the heartbeat cells are generated.
- 37. The system of claim 35, wherein said egress diagnostics module is further configured to:
log receipt of the heartbeat cells; use heartbeat cell information to update the egress module so that the ingress module and the egress module agree about which paths are active; and discard the received heartbeat cells.
- 38. The system of claim 35, wherein said egress diagnostics module is further configured to:
take into account slippage when determining whether each heartbeat cell arrived in accordance with the interval.
- 39. The system of claim 35, wherein said egress diagnostics module is further configured to:
send an interrupt when a defective ingress-to-egress path is detected.
- 40. A multi-channel traffic forwarding system with multiple replaceable switching fabrics, comprising:
an ingress module, including:
an ingress receive module configured to receive packets to be transmitted across a plurality of switching fabrics; an ingress diagnostics module configured to:
suspend the transmission of data cells when an active switching fabric configuration changes from a first configuration to a second configuration, wherein a data cell includes a packet or a portion of a packet; generate an active switching fabric mask (AFM) cell indicative of the second configuration; and resume the transmission of the data cells; and an ingress transmit module configured to send cells, including the AFM cell and the data cells across the switching fabrics according to the active switching fabric configuration; and an egress module, including:
an egress receive module configured to receive the test cells and the data cells from the switching fabrics; a packet constructor configured to use the data cells to reassemble the packets according to a data striping reassembly pattern; and an egress diagnostics module configured to modify the data striping reassembly pattern according to the second configuration.
- 41. The system of claim 40, wherein said ingress diagnostics module is further configured to:
wait for the one or more switching fabrics to become empty; determine that the one or more switching fabrics have not become empty after a predetermined period of time; end the waiting; and generate a switching fabric flush cell that is used to flush one or more of the switching fabrics.
- 42. The system of claim 40, wherein:
said ingress diagnostics module is further configured to generate a plurality of AFM cells, including said AFM cell; and said ingress transmit module is further configured to send the AFM cells to a plurality of egresses across the switching fabrics.
- 43. The system of claim 40, said ingress diagnostics module further configured to:
detect a new switching fabric, wherein the AFM cell includes the new switching fabric in the second configuration.
- 44. The system of claim 40, said ingress diagnostics module further configured to:
detect a defective switching fabric, wherein the AFM cell omits the defective switching fabric from the second configuration.
- 45. A multi-channel traffic forwarding system with replaceable switching fabrics, comprising:
a plurality of switching fabric modules, wherein a switching fabric of the switching fabrics includes:
a switching fabric receive module configured to receive a synchronization (synch) cell from an ingress module; a fabric diagnostics module configured to synchronize the switching fabric according to the sync cell; and a switching fabric transmit module configured to forward the sync cell to an egress module; said ingress module, coupled to the switching fabric modules, including:
an ingress diagnostics module configured to:
determine to initialize a path of an ingress-to-egress channel; set a switching fabric configuration to identify one or more of the switching fabrics as active switching fabrics for the path; and generate the sync cell; and an ingress transmit module configured to send the sync cell to the switching fabric; and said egress module, coupled to the switching fabric modules, including:
an egress receive module configured to receive cells, including the sync cell; and an egress diagnostics module configured to synchronize the egress according to the sync cell.
- 46. The system of claim 45, wherein said ingress diagnostics module is further configured to:
generate a switching fabric flush cell that is used to flush one or more of the switching fabrics.
- 47. The system of claim 45, wherein:
said ingress diagnostics module is further configured to generate a plurality of AFM cells, wherein each of the AFM cells includes the switching fabric configuration; said ingress transmit module is further configured to stripe the AFM cells across the active switching fabrics to the egress module; and said egress diagnostics module is further configured to update a data striping reassembly sequence according to the switching fabric configuration.
- 48. A multi-path traffic switching system configured to clear a stuck path, comprising:
a plurality of switching fabrics configured to forward traffic from a plurality of ingresses to a plurality of egresses along one or more paths; and a diagnostics module configured to:
detect a stuck path; and selectively flush the stuck path, wherein the selective flush limits impact to other system resources.
- 49. The system of claim 48, said diagnostics module further comprising:
an ingress diagnostics module configured to:
generate one or more diagnostic cells; receive a request to flush the stuck path; and generate a flush cell that causes the stuck path to be flushed; and an egress diagnostics module configured to:
receive the one or more diagnostic cells; use the one or more diagnostic cells to determine the path is stuck; and generate the request to flush the stuck path.
- 50. A system for error detection and correction in a traffic forwarding system, comprising:
an ingress module, including:
an ingress diagnostics module configured to generate one or more synchronization (synch) cells; an ingress transmission module configured to send cell traffic, including the one or more sync cells, from the ingress across a subset of a plurality of switching fabrics; and an egress module, including:
an egress receive module configured to receive the cell traffic, including the sync cells, from the subset of switching fabrics; egress reassembly queues configured to reassemble the cell traffic into packets; and an egress diagnostics module configured to use the sync cells to determine whether the egress reassembly queues are working properly.
- 51. The system of claim 50, said ingress diagnostics module further comprising:
a timer configured to facilitate the generation of the one or more sync cells in turn for each of a plurality of egresses and switching fabrics at a programmable rate.
- 52. The system of claim 50, said egress diagnostics module further configured to:
match a column field associated with the sync cell against a column position associated with an egress queue, wherein the column position is a queue location at which a next data cell to arrive should be enqueued; determine that a mismatch has occurred; flush the egress queue; and update the column position according to the sync cell.
- 53. The system of claim 50, wherein:
said ingress module further includes:
an ingress receive module configured to receive a sync request cell from the egress, wherein the ingress diagnostics module is configured to generate sync cells according to the sync request cell; said egress diagnostics module is further configured to:
generate a sync request cell associated with an ingress-to-egress path.
- 54. The system of claim 53, wherein the egress module is a first egress and the ingress module is a first ingress, further comprising:
a second ingress, including:
a second ingress receive module configured to receive the sync request cell from the first egress; and a second ingress transmit module configured to forward the sync request cell to a second egress across one or more of the switching fabrics; and a second egress, including:
a second egress receive module configured to receive the sync request cell from the second ingress; and a second egress transmit module configured to send the sync request cell from the second egress to the first ingress.
- 55. The system of claim 53, wherein said egress diagnostics module is further configured to wait until another sync cell arrives in response to the sync request cell, wherein waiting includes ignoring new data.
- 56. The system of claim 50, wherein said egress diagnostics module is further configured to differentiate between a plurality of sync cells.
- 57. The system of claim 50, further comprising:
said ingress module, including memory configured to contain a tail pointer position value indicative of an expected next queue position at a switching fabric of the switching fabrics, wherein the ingress diagnostics module is further configured to include the tail pointer position value in a sync cell of the one or more sync cells; a switching fabric of said switching fabrics, including:
a queue including a tail pointer; and a fabric diagnostics module configured to:
determine that the position of the tail pointer and the tail pointer position value included in the sync cell disagree; and set the tail pointer to agree with the tail pointer position value.
- 58. The system of claim 57, wherein said fabric diagnostics module is further configured to send an interrupt when the tail pointer and the tail pointer position value disagree.
- 59. The system of claim 50, wherein said egress diagnostics module is further configured to detect missing cells.
- 60. The system of claim 50, wherein said egress diagnostics module is further configured to:
determine that cells at the egress do not form a contiguous pattern; and detect an error according to the determination.
- 61. A system for error detection in a cell-based traffic forwarding system, comprising:
an ingress module, including:
an ingress receive module configured to receive cell traffic; an ingress diagnostics module configured to:
include a row identifier in unicast cells, wherein the unicast cells are obtained from the cell traffic; and increment the row identifier; and an ingress transmit module configured to send a set of the unicast cells across a subset of a plurality of switching fabrics, wherein each unicast cell of the set of unicast cells is sent across a respective switching fabric; an egress, including:
an egress receive module configured to:
receive the set of unicast cells; and enqueue the set of unicast cells in respective columns of a reassembly queue set (RQS) according to the respective switching fabric across which the unicast cell was sent from the ingress, wherein the respective columns correspond to respective queues of the RQS, and wherein the position of each unicast cell in the columns corresponds to a respective row; a plurality of reassembly queue sets, including the RQS; and an egress diagnostics module configured to:
match the row identifier of each unicast cell with the respective row in the respective column of the RQS; and perform error correction if a mismatch is found.
- 62. The system of claim 61, wherein the ingress diagnostics module is further configured to:
generate one or more diagnostic cells; include a row identifier in the diagnostic cells; and increment the row identifier, wherein the ingress transmit module is further configured to send the diagnostic cells across the subset of the plurality of switching fabrics, wherein each diagnostic cell is sent across a respective switching fabric.
- 63. The system of claim 62, wherein:
said egress receive module is further configured to:
receive the diagnostic cells; and enqueue the diagnostic cells in respective columns of the RQS according to the respective switching fabric across which each of the diagnostic cells were sent from the ingress, wherein the respective columns correspond to respective queues of the RQS, and wherein the position of each diagnostic cell in the columns corresponds to a respective row; and said egress diagnostics module is further configured to match the row identifier of each diagnostic cell with the respective row in the respective column of the RQS.
CROSS REFERENCE TO RELATED APPLICATION
[0001] This application is entitled to the benefit of provisional Patent Application Serial No. 60/385,863, filed Jun. 4, 2002. This application incorporates by reference co-pending patent application serial number (TBD), filed herewith, entitled “OPTIMAL LOAD BALANCING ACROSS MULTIPLE SWITCHING FABRICS” and bearing attorney docket number RSTN-085.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60385863 |
Jun 2002 |
US |