The invention relates generally to communications and networking. More specifically, the invention relates to the usage of resources in networking devices.
In connection-oriented networking schemes such as ATM (Asynchronous Transfer Mode), connections or “calls” must be established between one information device such as a computer system or router and another. This call or connection is sometimes referred to as a “virtual circuit” (VC) particularly where a specified data pipe is artificially, through software, segmented into separate data-pathways, each pathway servicing a particular VC. Often a switch acts as an intermediary to direct one or more of these VCs through a particular network node, and thus these calls are collectively referred to as SVCs (Switched Virtual Circuits).
Similar to PSTN (Public Switched Telephone Network) communications such as telephone calls, the period of SVC call operation for a given call can be split into three distinct phases-establishment (setup), active (data transfer), and disconnect (hang-up). Once a call is established, for example, between user terminal 105 and user terminal 115 across a specified path, a virtual circuit will have been created and the call can proceed into the active phase where data is transferred. Once the data transfer is complete, the call can be disconnected, which will release the virtual circuit. State, signaling, and other information for each call that passes through a network node is memorialized in a “call record” stored in the that node whether that node is the source, an intermediary, or destination node. The call record is updated whenever a change in state or activity in the call is indicated. The call record may be used for functions such as billing, tracing, routing, etc.
Ordinarily the creation, storage, updating and retrieval either in whole or part by the SVC controller device within the node. The capacity (number of supportable connections or calls) of the switching device connected to the SVC controller dictates the resources needed for call record handling at the SVC controller. Recently switches such as carrier-class ATM backbone switches have been developed to handle in the hundred thousands to millions of connections, thus forcing SVC controllers to be designed to scale-up accordingly. For instance, if a call record is 1 KiloByte, then 1,000,000 call records would require a controller memory/storage capacity of 1 GigaByte. Such a demand for memory on an SVC leads to increased costs in new SVCs and upgrade difficulty if existing SVCs are used with high-capacity switches.
This expense and difficulty is increased substantially because of an industry standard that demands a service availability of 99.999%. A switching node must have a service outage of no more than 3 minutes per year. To prevent against power failure/system reset, the memory used must be non-volatile (or a redundant controller unit should be hot-standby available) and further, must be protected by a Memory Management Unit (MMU) to prevent wild pointer writes and other memory failures/errors. MMU-protected memory is expensive. If a standby controller is used with a volatile memory, the bandwidth required to transfer call records from the active controller to the standby controller can be prohibitive. In either case, whether using expensive non-volatile memory or using a redundant standby controller, the providing of resources becomes critical to cost and design.
What is disclosed is a method of managing resources in a network controller connecting to a plurality of interfaces comprising recognizing a transition in the phase of a call transported through the controller, and the size of the call record of said call in accordance with the type of phase transition recognized.
Other objects, features, and advantages of the present invention will be apparent from the accompanying drawings and from the detailed description that follows below.
The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicated similar elements and in which:
A resource management strategy is described for a network controller device such as an SVC (Switched Virtual Circuit) controller that interprets and processes call messages transported in a connection-oriented network by means of high-capacity switching devices. As will be described in greater detail below, the call record of given call is compressed or expanded depending upon the transition in phase that a call is undergoing, if any. The strategy is applicable to both point-to-point and point-to-multi-point calls.
A “point-to-point” call is a call between two and only parties, and has three phases-establishment, active and release. For a given point-to-point call, before the call is established, the call is said to be in an idle state 200. The establishment phase 210 begins with the receipt of a Call Setup message at a particular node. The establishment phase also commences the formation of a new call record for that call as it passes that particular node. Thus, a call that has to traverse through five nodes before being connected would have five call records associated with it, one at the controller of each node. When a call is connected (established) successfully, then that call is in the active phase 220. As such, the call is no longer “in progress,” but rather has been fully established. If a call is unable to connect, then the call transitions directly back to idle state 200 from establishment phase 210. For example a destination busy signal would end the establishment phase 210 and, thus trigger the idle state before the call reaches the active phase. In this instance, the call record is fully discarded.
If a call is in the active phase 220, the transfer of user data (rather than just control/signaling data) can occur until a release (hang-up) is completed. When the call transitions from the establishment phase 210 to the active phase 220, the call record at each node that the call has passed through is updated in selected fields. Certain other fields, which the call record needed to preserve during establishment phase 210, are not needed during the active phase. According to an embodiment of the invention, the call record is compressed by discarding such information when a call reaches the active phase.
When a call completes its data transfer or is disconnected prematurely by accident or design, the active phase 220 is terminated and the call transitions to a release phase 230. The release phase 230 must be completed before the call is considered to be in the idle state 200 and ordinarily this requires the call record to be expanded to include certain release phase information. According to one embodiment of the invention, the compressed call records from the active phase can be expanded and re-created as release phase records capable of completing the release process. When the release phase 230 is completed, the call record is discarded.
In a “point-to-multi-point” call, two or more parties are connected together in the same active session. The point-to-multi-point call will have the ability to add or drop new parties as desired, in addition to the two parties participating in the initial call establishment (“call initiating parties”). During the active phase, no additional parties are being added or dropped from the call.
For a given point-to-multi-point call, before a call is established, the call is said to be in an idle state 300. The establishment phase 310 begins with the receipt of a Call Setup message at a particular node. The establishment phase also commences the formation of a new call record for that call as it passes that particular node. Thus, a call that has to traverse through five nodes before being connected would have five call records associated with it, one at the controller of each node. When a call is connected (established) successfully, then that call is first in the active phase 320. As such, the call is no longer “in progress,” but rather has been fully established. If a call is unable to connect, then the call transitions directly back to idle state 300 from establishment phase 310. For example a destination busy signal would end the establishment phase 310 and, thus trigger the idle state before the call reaches the active phase. In this instance, the call record is fully discarded.
If a call is in the active phase 320, the transfer of user data (rather than just control/signaling data) can occur until a release (hang-up) is completed. When the call transitions from the establishment phase 310 to the active phase 320, the call record at each node that the call has passed through is updated in selected fields. Certain other fields, which the call record needed to preserve during establishment phase 310, may not needed during the active phase. According to the invention, the call record is compressed by discarding such information when a call reaches the active phase.
In many regards, the active phase for a point-to-multi-point call is similar to the active phase for a point-to-point call. However, unlike a point-to-point call, a point-to-multi-point call is capable of adding (and subsequently dropping) additional parties to the connection.
The add party situation does not result in the creation of an entirely new call record, but adds to the existing call record. Once the add party is complete, the added party is “active” and thus, the call record can again be compressed. Likewise, when an added party is being dropped, the call record is first expanded and after the completion of the drop party, the call record is once again compressed. A compressed call record after the completion of an add party will have more information than that of a compressed call record after the completion of a drop party.
When the call completes its data transfer or disconnected prematurely by accident or design, the active phase 320 is terminated and the call transitions to a release phase 330. The release phase 330 must be completed before the call is considered to be in the idle state 300 and ordinarily, this requires the call record to be expanded to include certain release phase information. According to one embodiment of the invention, the compressed call records from the active phase can be expanded and re-created as release phase records capable of completing the release process. When the release phase 330 is completed the call record is discarded completely.
A typical call record 400 is composed of fields that store particular information about a call. A unique call ID field 410 identifies a call uniquely from any other call on the node. Field 410 is critical for accessing the proper call record for a given call, and thus is maintained throughout all call phases. Also, a field 420 containing information for a status inquiry which indicates the current state of the call (i.e., whether it is being established, already connected and so on). Field established 430 includes traffic and quality of service parameters which define the traffic flow when the call is established. Field 440 includes addressing and routing information in order to trace the path of the call for diagnosis, or to identify where in the network a message for that should be forwarded. A field 450 contains call accounting information, such as the call length or time/date the call was established. Field 460 contains timer information used to determine if a time-out situation has occurred. Field 470 contains retry counters to determine how many times a call set-up retry should be attempted. Field 490 contains pointers to setup messages that are being processed or forwarded by the controller.
According to one embodiment of the invention, fields 460, 470, and 490 may be discarded as soon as a call enters the active phase. The completion of the establishment phase eliminates the need for the information in those fields. By freeing the allocated memory for those fields (rather than merely clearing the fields to null values) extra memory may be made available for other call record storage or other systemic use. By compressing these fields, the call record is compressed. Point-to-point and point-to-multi-point have similar call record structures, with the exception of fields related to added parties dynamically created in the point-to-multi-point call. Such fields include pointers to mini-call records (“child” records of a “root” such as call record 400), which can be added and discarded as a party is added or dropped. When call records are expanded, memory is allocated for fields that are needed for the phase sought to be completed.
A network node in a connection-oriented network, such as the nodes shown in
In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
Number | Name | Date | Kind |
---|---|---|---|
4626624 | Daisenberger | Dec 1986 | A |
4788719 | Gupta | Nov 1988 | A |
5067074 | Farel et al. | Nov 1991 | A |
5218632 | Cool | Jun 1993 | A |
5295183 | Langlois et al. | Mar 1994 | A |
5313454 | Bustini et al. | May 1994 | A |
5359592 | Corbalis et al. | Oct 1994 | A |
5394534 | Kulakowski et al. | Feb 1995 | A |
5473604 | Lorenz et al. | Dec 1995 | A |
5511113 | Tasaki et al. | Apr 1996 | A |
5519690 | Suzuka et al. | May 1996 | A |
5706330 | Bufferd et al. | Jan 1998 | A |
5757781 | Gilman et al. | May 1998 | A |
5764750 | Chau et al. | Jun 1998 | A |
5867562 | Scherer | Feb 1999 | A |
5907603 | Gallagher et al. | May 1999 | A |
5999604 | Walter | Dec 1999 | A |
6018519 | Ginzboorg | Jan 2000 | A |
6052448 | Janning | Apr 2000 | A |
6092071 | Bolan et al. | Jul 2000 | A |
6175896 | Bui | Jan 2001 | B1 |
6282267 | Nolting | Aug 2001 | B1 |
6317433 | Galand et al. | Nov 2001 | B1 |
6356629 | Fourie et al. | Mar 2002 | B1 |
6385301 | Nolting et al. | May 2002 | B1 |
6714979 | Brandt et al. | Mar 2004 | B1 |