The present invention relates to high speed switching of data packets in general and, is more particularly concerned with a method and a system to adapt the load balancing of the incoming traffic over the planes of a parallel packet switch (PPS) on the basis of the monitoring of requests and acknowledgments exchanged between ingress port adapters and arrays of collapsed virtual output queues (cVOQ) situated within the plane switch cores.
To design and implement a high capacity packet-switch typically, having throughputs ranging from a few hundreds giga (109) to multi tera (1012) bits per second and aggregating traffic from/to OC-768c or 40 Gbps ports, a practical architecture often considered to overcome the technology limitations that prevent from reaching directly this level of performance, is a parallel packet switch (PPS) architecture. As sketched in
The above scheme is also very attractive because of its inherent capability to support redundancy. By placing more planes than what is strictly necessary thus, five in the example of
Thus, if PPS is really attractive to permit the implementation of very high-performance switches, with an architecture which is intrinsically redundant, a key requirement of carrier-class switches which need to operate 24-hour a day and 7-day a week, it remains that this is only achievable if load balancing (130) in each IA can actually performed accordingly. Especially, IA's must indeed be able to detect that a switching plane does not operate properly so as it can all be skipped. And, ideally, load balancing should be able to detect that a single port is not functioning properly in order that only traffic destined for it be not load balanced through the corresponding (partially) defective plane thus, fully taking advantage of a graceful mode of degradation since only one port on one plane would need to be skipped in that case while the rest of the switch continues to operate adequately.
Finally, load balancing should better be self-adaptive too so as it can dynamically react to the actual behavior of the switching planes. Although all IA's load balancing functions will attempt to evenly spread the traffic over all available planes and ports, hot spots may occasionally occur for a while in certain planes due to the nature of the traffic. Adaptive load balancing can take care of this by dynamically loading more the planes that are not congested.
It is then the purpose of the present invention to disclose a method and a system which enable a self adaptation of IA load balancing for all the situations mentioned above namely, to skip a complete switching plane if found defective or just one or a few ports of it, if a plane is only partially defective.
Also, self adaptation must occur if a plane, or ports of a plane, are detected as being temporarily congested in which case load balancing must tend to avoid loading more the congested plane and ports while congestion is in effect.
Thus, it is a broad object of the invention to remedy the shortcomings of the prior art as described here above.
It is another object of the invention to provide a system and a method for dynamically evaluating the relative level of occupancy of the individual switching planes of a parallel packet switch.
It is a further object of the invention to provide a system and a method for dynamically adapting load balancing by analyzing in real time the actual behaving of the switching planes, without having to increase the exchanged of flow control information.
The accomplishment of these and other related objects is achieved by a method in an ingress port-adapter (IA) for dynamically evaluating the relative level of occupancy of the individual switching planes of a parallel packet switch, wherein a request is transmitted from said IA to one of said individual switching planes each time a data packet is received in said IA, said data packet being temporarily stored in said IA, and wherein an acknowledgment is returned from said one of said individual switching planes to said IA when said data packet can be processed, said method comprising the steps of:
computing, for each individual plane, the number of data packets waiting to be processed;
determining the range of data packets waiting to be processed among all individual switching planes; and,
comparing said range of data packets waiting to be processed with at least one predetermined threshold,
signaling each at least one predetermined threshold exceeded.
The invention assumes that PPS switching planes are of the kind shown in
Whichever type of switch core is actually used the invention rests on the assumption that there is a means of evaluating the occupancy of the switch core, as viewed from each IA, for the particular traffic it received. Here, this is simply done by monitoring the requests versus the returned acknowledgments. Hence, if there is a persistent or growing deficit of acknowledgments as compared to the forwarded requests this is indicative that the plane is getting congested. This is further discussed in next figure.
Eventually, counters (315) must return to zero when all packets have been forwarded which is indicative of the fact that they all have been indeed processed. However, on a steady state traffic, the up/down counters normally indicate a deficit of acknowledgments since there are always some requests waiting in switch core to be acknowledged or traveling back to the source (320). Similarly, if switch planes are some distance apart thus connected through cables to the port adapters, as shown in
If above implicitly assumes there is one up/down counter (315) per plane in order to count the overall number of requests load balanced per plane, nothing prevents from having a counter dedicated to each output port (340) though. This permits to obtain a finer monitoring of the hardware resources down to a per link and per plane basis. Hence, if the counter associated to a port of a particular plane starts to shift up while the others (the equivalent ones on the other planes) stay balanced the problem can be pinpointed to a particular link that ingress load balancer must start to skip enabling an automatic graceful mode of degradation. This should be reported to a central control point in order to schedule a maintenance or raise some form of alert.
Similarly, if all the counters for a particular destination (output port) start to shift together this clearly means that the whole egress adapter i.e., (150) in
Table of
Therefore, each counter (400) reflects the current difference between the forwarded requests (402) minus the returned acknowledgments (404). For a full continuous utilization of the resource associated to the counter this latter normally reaches a steady-state count of RTT packets (406) since one acknowledgment is coming back, after RTT packet-times, for each forwarded requests. Hence, at establishment of the traffic, value of the counter normally grows (430) and stabilizes (435) to RTT when resource is fully utilized. Obviously, any intermediate value (440) up to RTT, is likely to be observed over time since, resource may not be actually fully utilized and traffic is generally expected to fluctuate between zero and full utilization of the resource until it may returned eventually to zero (450) when no longer utilized.
However, if resource is malfunctioning, or is prevented from operating at nominal speed, counter value is going to shift up eventually beyond RTT (445) because requests must still be issued for processing new arriving packets, received from an upward situated source of traffic, while there is no, or less than nominal, return of acknowledgments. Therefore, the up shifting of a counter resource may be as well the result of an action taken by a downward device to flow-control its upwards situated counterpart. Networks, where switch fabrics are utilized, indeed need to implement a flow-control mechanism to avoid congestion and to pace the flows of traffic. This takes generally the form of a backpressure type of signal (475) issued by a downward device (470) to its upward source(s) of traffic here a switch according to the invention (460). If congestion lasts, this latter must in turn, issue back-pressure signals (465) to the actual upward source(s) of traffic such as (480). Hence, the chief reason for which an up/down counter monitoring a resource may shift up beyond RTT is the result of actions taken by the network flow-control mechanism when a downward situated device cannot accept more traffic or at a pace lower than nominal. Then, counter (400) has associated thresholds (406) that can be used to determine when back-pressure signal (465) must be propagated.
Therefore, it must be clear that a counter such as (400) cannot be taken alone to decide if the particular resource it monitors is malfunctioning or not. Depending on the actual level of utilization of a network and of a switch fabric such as (460), the prime reason for which up/down counters may shift up beyond their normal RTT value is more likely due to network flow-control attempting to pace the flows of traffic especially, when traffic reaches, or is close to, full utilization of a set of available resources. Hence, groups of counters must rather be compared to decide if an individual resource, part of a group, is indeed malfunctioning.
At this point it is important to notice that RTT must be expressed in packet-time units of the corresponding resource to which a particular up/down counter is associated. In the type of switch fabric considered by the invention traffic is essentially load balanced on many parallel hardware resources so as to be able to reach the expected level of performance and/or to provide for redundancy. As an example, a switch fabric having ports specified at 40 Gbps actually, having to operate at 80 Gbps in order to deliver a speedup factor of two to take care of protocol overheads (e.g., encapsulation and segmentation and reassembly) and to absorb bursts of traffic may require 4 planes with 20-Gbps ports. In turn, implementing a 20-Gbps port will require the actual use of 8 high-speed serial links at 2.5 Gbps effective data rate. Hence, a typical 64-byte (i.e.: 512-bit) packet time when expressed in Ns (10−9 second) is only 512/80=6.4 Ns for a 80-Gbps port. However, packets are actually load balanced over four planes in this example. For an individual port plane, packet duration is four times higher i.e.: 512/20=25.6 Ns. And for an individual link at 2.5 Gbps, over which packets are finally load balanced so as to allow redundancy and graceful degradation down to a link, packet duration becomes 512/2.5=205 Ns. Hence, for a counter associated to a link, the rate at which packet are forwarded and received is, at full speed, of one per 205 Ns in this particular example. RTT must then be expressed in this unit of time for a counter watching a single link.
Up/down counters of the invention are assumed to belong to a group (510). Such a group is e.g., the group (310) of four counters shown in
Therefore, this is the comparison of the counters (520) rather than their individual values that permit to decide when a resource does no longer operate as expected.
An alert (530) can thus be issued to a control device when the result of the counters comparison (520) shows that one of them (518) is grossly or significantly behaving differently. Depending on a particular application, values beyond which an alert must be triggered can have to be set differently. Also, alert can be issued only after a significant period of time in order not to trigger any false alert. Setting of the thresholds, and integration times to trigger an alert, can therefore be very different from one application of the invention to another. Especially, threshold setting can be carried out in many ways. In its simplest form it can be an absolute range of waiting packets i.e., the observed difference between the minimum and maximum number of packets waiting in individual planes (535), which must not be normally exceeded. It can be as well a dynamic threshold expressed e.g., as a relative proportion of the total number of waiting packets in the switching planes or any other criterion applicable to a particular implementation of the invention that allows to pinpoint on the misbehaving of a particular switching resource.
Finally, when counters are all overall balanced (545) the smaller differences between their values can be further analyzed so as to feed back the information to the ingress adapters which can better adapt load balancing (540). As an example, statistical behaving of individual counters can be evaluated and their average values and/or standard deviations measured and compared from which decisions can be derived to better adapt load balancing over the switching planes. Clearly, if it can be determined that a counter has an average value which is always, or statistically significantly below the others then load balancing should attempt to load more the corresponding plane in proportion of the observed difference.
Above are just examples of what can be achieved with the up/down counters according to the invention. Those skilled in the art will recognize that many other applications can be considered beyond their utilization to monitor the resources of a switch fabric so as to implement all forms of active and passive redundancy or to adapt dynamically load balancing in a PPS like structure.
Number | Date | Country | Kind |
---|---|---|---|
03 36809 | Sep 2003 | EP | regional |
Number | Name | Date | Kind |
---|---|---|---|
4712216 | Glaise | Dec 1987 | A |
4931985 | Glaise et al. | Jun 1990 | A |
4961193 | Debord et al. | Oct 1990 | A |
5043937 | Glaise et al. | Aug 1991 | A |
5355372 | Sengupta et al. | Oct 1994 | A |
5359709 | Blanc et al. | Oct 1994 | A |
5459740 | Glaise | Oct 1995 | A |
5539756 | Glaise et al. | Jul 1996 | A |
5694407 | Glaise | Dec 1997 | A |
5761735 | Huon et al. | Jun 1998 | A |
5818815 | Carpentier et al. | Oct 1998 | A |
6014767 | Glaise | Jan 2000 | A |
6055235 | Blanc et al. | Apr 2000 | A |
6097725 | Glaise et al. | Aug 2000 | A |
6101187 | Cukier et al. | Aug 2000 | A |
6108334 | Blanc et al. | Aug 2000 | A |
6125114 | Blanc et al. | Sep 2000 | A |
6189124 | Glaise | Feb 2001 | B1 |
6317433 | Galand et al. | Nov 2001 | B1 |
6324164 | Luijten et al. | Nov 2001 | B1 |
6343081 | Blanc et al. | Jan 2002 | B1 |
6370610 | Glaise et al. | Apr 2002 | B1 |
6411599 | Blanc et al. | Jun 2002 | B1 |
6421660 | Glaise | Jul 2002 | B1 |
6424632 | Poret et al. | Jul 2002 | B1 |
6452900 | Blanc et al. | Sep 2002 | B1 |
6522269 | Blanc et al. | Feb 2003 | B2 |
6584124 | Glaise et al. | Jun 2003 | B1 |
6606300 | Blanc et al. | Aug 2003 | B1 |
6661786 | Abbiate et al. | Dec 2003 | B1 |
6667955 | Blanc et al. | Dec 2003 | B1 |
6728251 | Blanc et al. | Apr 2004 | B1 |
6757246 | Alasti et al. | Jun 2004 | B2 |
6760303 | Brouwer | Jul 2004 | B1 |
6824393 | Debord et al. | Nov 2004 | B2 |
7142555 | Wang | Nov 2006 | B2 |
20010036157 | Blanc et al. | Nov 2001 | A1 |
20020006110 | Brezzo et al. | Jan 2002 | A1 |
20020024455 | Abbiate et al. | Feb 2002 | A1 |
20020075871 | Blanc et al. | Jun 2002 | A1 |
20020144208 | Gallezot et al. | Oct 2002 | A1 |
20020182899 | Debord et al. | Dec 2002 | A1 |
20030048787 | Glaise et al. | Mar 2003 | A1 |
20030099250 | Blanc et al. | May 2003 | A1 |
20030118044 | Blanc et al. | Jun 2003 | A1 |
20030120992 | Glaise et al. | Jun 2003 | A1 |
20030182615 | Gallezot et al. | Sep 2003 | A1 |
20040103362 | Glaise et al. | May 2004 | A1 |
20040105384 | Gallezot et al. | Jun 2004 | A1 |
20040128094 | Blanc et al. | Jul 2004 | A1 |
20040136451 | Blanc et al. | Jul 2004 | A1 |
20040141504 | Blanc et al. | Jul 2004 | A1 |
20040141505 | Le Maut et al. | Jul 2004 | A1 |
20040141510 | Blanc et al. | Jul 2004 | A1 |
20040143593 | Le Maut et al. | Jul 2004 | A1 |
20040193997 | Gallezot et al. | Sep 2004 | A1 |
Number | Date | Country | |
---|---|---|---|
20050063301 A1 | Mar 2005 | US |