Technique for managing heavy signaling traffic that is directed to a particular signaling control unit

A method is described that involves sending a positive imposter response as a consequence of a status request message having been received. The status request message refers to a network connection. The status request message was sent to the networking system to ask the networking system to inquire into the status of the network connection.

FIELD OF INVENTION

The field of invention relates generally to networking; and, more specifically to a technique for managing heavy signaling traffic that is directed to a particular signaling control unit.

BACKGROUND

A complex network typically has built into its functionality the ability to maintain and control the connections that it supports. For example, when a user effectively asks to send information to a particular destination (e.g., through the sending of a “connection request” to the network), a network should be able to intelligently inquire as to whether or not sufficient resources exist within the network to transport the information; and, if so, establish the connection so that the information can be transported. Moreover, the network should also be able to monitor the status of the connection (and, on a larger scale, the network itself) so that if an event arises that causes the connection to be interrupted—the network can take appropriate action(s) (e.g., re-route the connection, teardown the connection and ask the user to resend the information, etc.).

The equipment that forms the nodes of the network (e.g., the routers and/or switches that accept customer traffic from various copper and/or fiber optic lines and re-direct the customer traffic onto copper and/or fiber optic lines) are typically constructed with specific functional capabilities that allow these intelligent tasks to be performed. Typically, each network node is designed to have a “signaling control unit” that is responsible for processing connection setup/teardown procedures as well as connection maintenance procedures. Often, although not a strict requirement, the signaling control unit is also responsible for the execution of a routing algorithm that allows its corresponding node to “figure out” (in light of the network's overall topography/configuration (or changes thereto)) where received traffic is to be forwarded.

The signaling control units of the various node are designed to send “signaling” messages to one another so that the network as a whole can successfully perform these connection and network related configuration and maintenance tasks. A problem may arise, however, if a certain type of event (or chain of events) causes a “flood” of these messages to be sent to a particular signaling control unit (e.g., the signaling control unit of a specific node within the network) in a short amount of time. Specifically, if the magnitude of the incoming flood of messages exceeds a signaling control unit's capacity for handling these messages, the signaling control unit is likely to fail in the performance of its connection and/or network management related services.

FIG. 1illustrates one type of event where a “flood” of signaling messages are sent to a particular signaling control unit. According to the example ofFIG. 1, network node1011is communicatively coupled to nodes1012through101Nthrough networking lines1022through102N−1, respectively. According to the simple example ofFIG. 1, the “primary” signaling control function1051of node1011includes, amongst its various tasks and responsibilities, a smaller sub-function that may be referred to as the Received Status Request Function106. A status request is a type of signaling message that asks (the node to which the message was sent) for a report (for the node that sent the message) as to the status of a particular connection. The status request includes an embedded entry that identifies the particular connection to which the status request pertains.

Under normal operating conditions, the Received Status Request Function106is responsible for handling every status request that node1011is expected to respond to. Note that the Received Status Request Function106includes a queue107and a status request engine (SRE)108. As a status request can be sent to node1011from any of nodes1012through101N, queue107is responsible for gathering and queuing each received status request regardless of its sending source (a feature thatFIG. 1attempts to capture through input flow115). Whenever the status request engine108is able to handle a “next” status request, a “next” status request is removed from the queue107and is processed by the status request engine108.

The processing of a status request as performed by the status request engine108entails: 1) inquiring, internally within node1011, into the status of the connection to which the status request referred (a process flow thatFIG. 1attempts to capture through the “Connection OK?” request flow109); and, 2) once an understanding of the status of the connection at issue is gained, initiating the formation of a signaling message (that is to be sent to the node that sent the status request) that reports the status of the connection from the perspective of node1011(a process flow thatFIG. 1attempts to capture through response flow110).

Note that node1011is implemented with redundant signaling control functions1051and1052. In a typical implementation, control function1051is implemented with a first electronic card and control function1052is implemented with a second electronic card. Under normal operating conditions, one of the control functions (e.g., signaling control function1051) is deemed “primary” and the other control function (e.g.,1052) is deemed “inactive” or “on standby”. Redundant signaling control functions are used because of the importance of signaling to a working network. Here, if the “primary” control function1051suffers a significant failure (e.g., if a semiconductor chip used to implement the primary control function1051stops working), node1011is designed to automatically “switchover” to control function1052for the implementation of its signaling control tasks. That is, upon a significant failure by primary control function1051, control function1052is converted from being a secondary/standby control function to the primary control function of node1011.

Because the switchover to a new primary control function (and/or the failure of the elder control function) may cause temporary disruption to the signaling tasks of node1011, node1011broadcasts to its neighboring nodes1012through101Nthat it has undergone a “switchover” to a new primary control function. The broadcast is illustrated inFIG. 1by the sending of N−1 signaling messages1031through103N−1to each of nodes1012through101N, respectively. According to various signaling control implementations, the receipt of a signaling message that indicates a node has undergone a control function switchover causes a recipient of such a signaling message to send a status inquiry, to the node that underwent a control function switchover, for each connection that is carried by both the recipient of the signaling message and the sender of the signaling message.

According to the example ofFIG. 1, this causes a “flood’ of status request messages (represented collectively by status request message trains1041through104N−1) to be sent to node1011, as a status request message for each connection carried by node1011and nodes1012through101Ncollectively is sent from nodes1012through101Ncollectively to node1011. As a consequence, in many instances, the queue of control function1052that is equivalent to queue107of control function1051(not shown inFIG. 1) is not designed with a depth that is sufficient to queue all of the incoming status request messages; and/or, the status request engine of control function1052does not have the processing power to process the flood of status request messages within a reasonable amount of time.

According to various signaling control function implementations, if a response to a status inquiry is not received within a specific amount of time, the sending node of the status inquiry message is designed to teardown the connection on the assumption that the connection has already been dropped (on the assumption that the node that failed to respond to the status inquiry message is no longer supporting the connection). In the example ofFIG. 1, the failure of control function1052to adequately handle the flood of incoming status inquiries should cause nodes1012through101Nto begin to drop those connections whose corresponding status request messages were not responded to or were not responded to on time. Note that, in such a situation, these connections are apt to be dropped inadvertently. That is, the connections themselves are fully operational (i.e., were not catastrophically affected by the switchover event) and therefore should not be dropped; and, it is merely the shortcoming in the capacity of the Received Status Request Function of control function1052to handle the flood of status requests that has caused these properly functioning connections to be dropped.

DETAILED DESCRIPTION

FIG. 2shows a functional architecture that prevents a flood of incoming status request messages from reaching the primary queue207that services the service request engine (SRE)208. As a consequence, the Received Status Request Function206is saved from being overloaded in the face of a sudden flood of service request messages. The functional architecture ofFIG. 2can be viewed as having two states: 1) normal; and, 2) active offload. In the normal state, the current number of received service request messages yet to be responded to is deemed to be within the processing capacity of the Received Status Request Function206; and, as such, the Received Status Request Function206is not provided with any active help. In the active offload state, the current number of received or anticipated service request messages yet to be responded to is deemed to be beyond the processing capacity of the Received Status Request Function206; and, as such, the Received Status Request Function206is provided with active help.

FIG. 3ashows a methodology that helps describe the functional tasks that are performed in either of the two states. More precisely, sequence302describes the processing that is entertained during the normal state; and, sequence303describes the processing that is entertained during the active offload state. Whether the processing of service request messages is to be entertained in the normal state or the active offload state depends upon whether or not a specific, looked for “trigger” event has arisen301. If a trigger event that is worthy of helping the Received Status Request Function206is deemed to have arisen301; then, the active offload state is entered and sequence303is executed. If such a trigger event is deemed to have not arisen; then, sequence302is executed within the normal state.

Referring toFIGS. 2 and 3a, execution within the normal state simply means that received status request messages are queued302into the primary queue207of the Received Status Request Function206. As a consequence, whenever the status request engine208is able to handle a “next” status request, a “next” status request is removed from the queue207and is processed by the status request engine208. In an embodiment, the processing of a status request (as performed by the status request engine208) entails: 1) inquiring into, within the node where the Received Status Request Function206resides, the status of the connection to which the status request referred (a process flow thatFIG. 2attempts to capture through the “Connection OK?” request flow209b); and, 2) once an understanding of the status of the connection at issue is gained, initiating the formation of a signaling message (that is to be sent to the node that sent the status request) that reports the status of the connection from the perspective of the node where the Received Status Request Function206resides (a process flow thatFIG. 2attempts to capture through response flow210).

As such, the operation of the Received Status Request Engine206is largely the same as that described in the Background. Note that, ifFIG. 2is viewed as a hardware implementation, during the normal state, received status request messages that are received at input211are directed by multiplexer216along input215to the primary queue207. Here, the event detection and state control function201is responsible for controlling the channel select of multiplexer216(so that, during the normal state, received status request messages that are presented at input211are directed to primary queue207rather than reserve queue203). As can be distilled from its name, the event detection and state control function201is capable of detecting a trigger event that is sufficient to cause entry from the normal state into the active offload state (e.g., the event detection and state control function201is able to detect or predict a flooding of status request messages); and, likewise, is also capable of causing entry from the active offload state into the normal state (e.g., in light of a prior flood of status request messages being suitably abated).

Upon detection of a trigger event worthy of entry into the active offload state, a positive imposter response is sent for each subsequently received status request message303while in the active offload state. Here, a positive imposter response is a formal response to a received status request message that: 1) indicates that the connection to which the received status request message was directed is properly working; and, 2) was not verified for correctness (i.e., no inquiry was actually made into the true status of the connection to which the received status request message was directed). The former quality corresponds to the response being “positive”; the later quality corresponds to the response being an “imposter”. Thus, in an embodiment, a positive imposter response corresponds to a signaling message that is sent back to the node that originally sent the received status request message and that indicates that the connection at issue is working properly, where, in fact, the true status of the connection at issue was not actually looked into.

The sending of a positive imposter response for each status request message that is received during the active offload state should have the opposite effect from that described in the Background. That is, whereas, under prior art implementations, a flooding of status request messages tends to result in a large number of properly working connections being inadvertently dropped (as described in the Background), the automatic sending of positive imposter responses for each of the status request messages received under flooded circumstances should result in a large number of properly working connections being maintained rather than inadvertently dropped. Here, recalling that the original sending node of a status request message is configured to automatically tear down a connection if a positive response is not timely received—the automatic sending of a positive imposter response should effectively prevent a properly working connection from being torn down (because the automatic sending of the response should cause the response to be timely received; and, because the response indicates that the connection at issue is working properly).

Referring toFIG. 2, the event detection and state control function201, upon recognition that a trigger condition for entering the active offload state has been reached (e.g., through detection of signaling control function card “switchover” at input205), changes the channel select input to multiplexer216so that received status request messages are entered into the reserve queue203. For each status request message that is entered into the reserve queue203, the imposter status request response function202identifies the address of the node that sent the status request message and the connection to which the status request message was directed. As a consequence of gaining this information the imposter response function202performs a pair of acts for each message that is queued into the reserve queue203.

Firstly, as discussed above, for each status request message that was queued into the reserve queue203, the imposter status request response function202initiates the sending of a positive imposter response (noting that a response is sent to the address of the node that originated a request and also references the connection that the request was directed to). Secondly, at an appropriate later time, the imposter status request function202initiates an inquiry into the true status of each connection that a positive imposter response was sent on behalf of303. Here, process flow212is drawn to indicate the former act and process flow209b1is drawn to indicate the later act.

By inquiring, at a later time, into the actual status of each connection for whom a positive imposter response was sent, a network node that receives a sudden flood of status request messages is able to actually work through these request messages at a slower overall rate than what is necessary to ensure that the connections to which they pertain are not torn down by the nodes that initially sent the status request messages. As such, working connections are not inadvertently dropped; and, the flooded node is able to actually process the messages at a rate that is consistent within its own capacity limits.FIG. 3bshows an embodiment of a methodology that may be executed by the flooded node in response to the later inquiry that is initiated by the imposter status request response function202.

According to the methodology ofFIG. 3b, if a connection for whom a positive imposter response was sent is properly working304; then, nothing is done306(i.e., no signaling messages are sent). In this case, the previously sent positive imposter response provided correct information to the node that originated the status request message (i.e., that the referenced connection is working). As such, no corrective action or update is needed. If the connection is not working properly, the flooded node initiates a teardown of the connection305(if a teardown sequence for the connection has not already started). Here, the tearing down of a connection typically involves the sending of another type of signaling message to the node that originated the status request message (e.g., a signaling message that indicates the connection at issue is to be torn down or is being torn down).

As such, regardless of the outcome of the inquiry304into the true status of the connection—a formal response to the status request message (as would normally be provided via flow210from the status request engine208) is not needed. Note that the flooded node may initiate a teardown of a non-working connection (e.g., including the sending of a signaling message that causes the node that sent the status request message to recognize that the connection is to be torn down) independently of and prior to the inquiry304that is initiated by the imposter status request response function202. If so, the flooded node can effectively ignore the inquiry304that is initiated by the imposter status request response function202. If not, the inquiry304that is initiated by the imposter status request response function202can be used by the flooded node to initiate the teardown of the connection; or, “mark” the connection for teardown at a later time.

Here, a few additional comments regarding the imposter status request function202are in order. Firstly, the amount of time that is expended before a later inquiry is made into the true status of a connection for whom an imposter response was sent may vary from embodiment to embodiment. Some embodiments may be designed so as to have a “fixed” time between: 1) the arrival of a status request message within the active offload state; and, 2) the time that the imposter status request function202initiates the inquiry304into the true status of the connection to which the received status request message referred. Other embodiments may have varied times between the pair of events described just above, on a request message by request message basis. For example, by being designed to recognize when the resources that check into the status of a connection are available, the imposter status request function202may initiate an inquiry only when such resources are available.

Moreover, the precise nature by which the later inquiry is made by the imposter status request function202may also vary from embodiment to embodiment. Here, it is important to recognize that the architecture ofFIG. 2is a functional architecture that is drawn to help the reader understand basic operational features. Thus, even though hardware implementations that strictly conform to the depiction ofFIG. 2are possible, it is altogether foreseeable that other implementations may be developed. For example, each of the “functions”206,201,202may be developed as software routines rather than hardware circuitry. Other implementations where any or each of the functions206,201,202are implemented in hardware (e.g., with logic circuitry) or a combination of hardware and software are also possible.

Note also that, for convenience,FIG. 2draws the appropriately timed later inquiry flow209b1as being a component of the service request engine output209b(in order to suggest that the hardware and/or software resources responsible for checking into the status of a connection (not shown inFIG. 2) may receive such a request from either entity202,208). Although possible, no strict “connection” between the operation of the service request engine208and the operation of the imposter status request function202is required. Note also that the reserve queue203indicates that status request messages may be flushed once the imposter status request function recognizes that a positive imposter response is to be sent for (and that a later inquiry is to be made into the status of) the connection to which the status request message referred. Here, the imposter status request function202may be designed so as to have some form of access to a data keeping resource that allows a record of those connections for which a later inquiry304is needed to be kept track of.

A few additional comments are also in order with respect to the nature of the trigger events that cause the active offload state to be entered. As already discussed, one such event is a “switchover” to a new signaling control function card. The ability to detect this event is suggested inFIG. 2by input205to the event detection and state control function201. Another suitable event is the recognition that the primary queue207is beginning to “fill up”. In order to implement such a trigger condition, a queue threshold220may be pre-configured such that, when the state of the primary queue207reaches the threshold220, the event detection and state control function201recognizes that a trigger state has been reached; and, as a consequence, the active offload state is automatically entered. Here, any number of events could cause the threshold to be reached (e.g., a larger node, as part of its internal maintenance routine, suddenly sends a status request connection for each of its connections; the service request engine208becomes less effective because processing resources have been devoted elsewhere, etc.).

Note also that, referring toFIG. 3a, entry into the active offload state is maintained until the flood of status request messages is deemed to have been sufficiently abated (i.e., the answer to inquiry301is “yes” until the flood appears to be over). In one embodiment, once the active offload state is entered, the flood is deemed to be abated after a specific amount of time has passed. That is, the active offload state is maintained for a set amount of time after the active offload state is entered; then, upon expiration of this time period, the normal state is entered. This effectively corresponds to answering “yes” to inquiry301until expiration of the time period; and then, upon expiration of the time period, answering “no” to inquiry301until the next trigger event arises. For events that are triggered by the reaching of a threshold within the primary queue207, rather than using a specific time period, the normal state may be returned to once the state of the primary queue falls to a second, lower threshold level.

FIG. 4shows an embodiment of a networking system401that can be used as a node within a network. The networking system ofFIG. 4includes a plurality of line interface cards4221through422M(LICs). Each LIC typically interfaces to at least one ingress networking line (e.g., a copper or fiber optic line upon which networking data units are received) and to at least one egress networking line (e.g., a copper or fiber optic line upon which networking data units are transmitted). For simplicity, the ingress and egress lines for each of LICs4221through422Mare drawn as bi-directional merged networking lines4231through423M, respectively. The networking system also includes a switching fabric421that switches networking data units (e.g., packets, cells, frames, etc.) toward their appropriate ingress and egress networking lines.

That is, for example, a networking data unit that is received at LIC4221and that is associated with a connection that “connects” to a node that communicates to node401through LIC422Mwill be directed: 1) from LIC4221to switching fabric421over link4241; 2) through switching fabric421from link4241to link424M; and, 3) from link424Mto LIC422Mfor transmission over the appropriate egress networking line. As such, links4221through422Mare used to transport ingress/egress traffic to/from the switching fabric421and their corresponding LICs4221through422M. In alternate embodiments links4241through424Mmay be replaced with a bus. Working networks not only carry customer data (in the form of networking data units that are switched by the switching fabric421) but also carry signaling messages (as described in the background). Here, signaling control function cards4051,4052implement the signaling function of the node401(noting that one of cards4051,4052may be the primary card while the other is the secondary card).

According to the approach ofFIG. 4, a Received Status Request Function420(which corresponds to the Received Status Request Function206ofFIG. 2) is implemented on each of cards4051,4052. By contrast, the imposter status request function4021is distributed across each of LICs4221through422M. As a consequence, in the normal state, service request messages are sent from the particular LICs that they are received at and forwarded to the primary signaling control card; but, in the active offload state, service request messages are effectively intercepted by the LICs that they are received at. As a consequence, while in the active offload state, service request messages are not sent to the signaling control card. This, in turn, corresponds to the protection provided to the Received Status Request Function during the active offload state (i.e., the Received Status Request Function is not inundated with status request messages).

Moreover, the LICs4221through422Mthemselves are responsible for generating the positive imposter responses. The event detection and state control function has not been drawn inFIG. 4because, in an embodiment where the LICs4221through422Mtake over a portion of the active offload state function (as described just above), the event detection and state control function could be distributed across the LICs4221through422M; or, could be centralized onto the signaling control cards. Note that service request messages pass over links4151through415Mto the signaling control card during the normal state; and, delayed inquiries into the status of the connection that has already had a positive imposter response sent on its behalf are initiated over links4091through409M. Each of links4091through409Mand/or4151through415Mmay be implemented as either point-to-point or a bus.

These same links may be kept separated per LIC (e.g., link4091and4151for LIC4221) or may be merged together as a common transport medium. It is important to recognize that alternative networking systems may also be constructed where positive imposter responses are generated from the signaling control cards (rather than the LICs as discussed above with respect toFIG. 4). Such approaches correspond to a centralized approaches rather than a distributed approach.

Also since any or all of the relevant functions discussed above may be implemented wholly or partially in software, embodiments of these functions may be embodied wholly or partially within a machine readable medium. Note that, particularly in the case of distributed approaches, more than one machine readable medium may be used.

Note also that embodiments of the present description may be implemented not only within a semiconductor chip but also within machine readable media. For example, the designs discussed above may be stored upon and/or embedded within machine readable media associated with a design tool used for designing semiconductor devices. Examples include a circuit description formatted in the VHSIC Hardware Description Language (VHDL) language, Verilog language or SPICE language. Some circuit description examples include: a behaviorial level description, a register transfer level (RTL) description, a gate level netlist and a transistor level netlist. Machine readable media may also include media having layout information such as a GDS-II file. Furthermore, netlist files or other machine readable media for semiconductor chip design may be used in a simulation environment to perform the methods of the teachings described above.

Thus, it is also to be understood that embodiments of this invention may be used as or to support a software program executed upon some form of processing core (such as the Central Processing Unit (CPU) of a computer) or otherwise implemented or realized upon or within a machine readable medium. A machine readable medium includes any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine readable medium includes read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.); etc.