Abstract:
A server for use in a communications network implementing a routing function that serves multiple client NEs. The server interacts with a database storing true topology information corresponding to the client NEs. The routing function uses the true topology information in performing routing operations on behalf of the client NEs.

Description:
FIELD OF THE INVENTION 
     The invention relates to a routing architecture in a communications network, more particularly to a server implementing a routing function that provides routing resources to multiple client Network Elements (NE). 
     BACKGROUND OF THE INVENTION 
     Many communications networks exist that use NEs, such as packet switches with limited resources. In many instances, those NEs cannot be retrofitted with hardware/software that would offer enhanced functionality because the computing platform of the NE has no available expansion capabilities. In other instances, while a retrofit is possible, the operation may not be practical because the retrofit would incur a cost that is too high compared to the overall value of the NE. 
     Against this background there is a need in the industry to provide a solution to the problem of upgrading the functionality of multiple NEs in a communications network (e.g., Synchronous Optical Network (SONET) cross connect) without the necessity of performing a major and costly upgrade of the individual NEs. 
     SUMMARY OF THE INVENTION 
     In a first broad aspect, the invention provides a server for use in a communications network implementing a routing function that provides routing resources to multiple client NEs. The server interacts with a database storing true topology information about the client NEs. The routing function uses the true topology information in performing routing operations on behalf of the client NEs. 
     This approach increases the efficiency of the routing function in the communications network by sharing the cost of the server among multiple client NEs. Specifically, the invention can be used in instances where a communications network operator is desirous of upgrading the communications network and wishes to do so inexpensively. Examples of upgrades include the addition of a control plane to a communications network that presently does not have one or the addition of routing assist to network management functions which needs a more real time view of network resources, among others. 
     In a specific and non-limiting example of implementation, the server can be placed in a retrofitted NE, a totally new NE with upgraded capabilities, or a computing platform without bearer capabilities (e.g., a Personal Computer (PC)). 
     This novel routing architecture can be implemented in various types of communications networks without departing from the spirit of the invention. Examples of such communications network types include connection-oriented circuit switched, connection oriented packet switched, or connectionless packet switched communications networks. 
     In a second broad aspect, the invention provides a method for providing a routing function in a communications network. The method includes providing in the communications network a server capable of exchanging control messages with a plurality of client NEs and implementing on the server a routing function that provides routing resources to the client NEs. The routing function interacts with a database holding true topology information about the client NEs. 
     In a third broad aspect, the invention provides a method for upgrading a communications network having a plurality of NEs, the method comprising providing a server in the communications network and implementing on the server a routing function that provides routing resources to a plurality of NEs. In a specific and non-limiting example of implementation, the method is carried out without upgrading any one of the NEs. 
     In a fourth broad aspect, the invention provides a method for adding a control plane to a communications network that currently does not have a control plane. The method comprises providing a server in the communications network that can exchange control messages with a plurality of NEs of the communications network and implementing on the server a routing function that provides routing resources to the plurality of NEs. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       A detailed description of examples of implementation of the present invention is provided hereinbelow with reference to the following drawings, in which: 
         FIG. 1  is a schematical diagram of a communications network in which the present invention can be implemented; and 
         FIG. 2  is a block diagram of a server in the communications network shown at  FIG. 1 , that provides routing resources to multiple client NEs. 
     
    
    
     In the drawings, embodiments of the invention are illustrated by way of example. It is to be expressly understood that the description and drawings are only for purposes of illustration and as an aid to understanding, and are not intended to be a definition of the limits of the invention. 
     DETAILED DESCRIPTION 
       FIG. 1  is a high level diagram of a communications network designed to transport packetized data, in which the present invention can be implemented. The packetized data can be any type of digitally represented information, without restriction. It should be expressly noted that the following description is only an example and other types of communications networks can also be used without departing from the spirit of the invention. 
     The communications network  10  is a connection oriented packet switched network that includes two main components, namely a control plane  11  and a bearer plane  14 . The bearer plane  14  includes a plurality of NEs, such as packet switches or SONET cross connects, interconnected by data transport connections. The data transport connections are identified in  FIG. 1  by thick solid lines. The data transport connections can be wireline based or of wireless nature. Examples of wireline-based data transport connections include optical fibers and electrical conductors. The data transport connections are preferably bi-directional but unidirectional data transport connections can be used when the specific application allows it. 
     A control plane  11  receives requests to set-up calls, and in response to those requests the necessary control signals are sent to the appropriate NEs of the bearer plane  14  such that the data can be delivered between the source and the destination of any given call. In terms of implementation, the control plane  11  can be implemented by a single centralized entity or it can be of distributed nature.  FIG. 1  shows a distributed form of implementation. 
     In a specific and non-limiting example, the control plane  11  is based on the Automatic Switched Optical Network (ASON) architecture and the bearer plane  14  comprises SONET/SDH cross connects. 
     The control plane  11  performs a routing function that provides routing resources to multiple NEs of the bearer plane  14 . Specifically, the control plane  11  executes one or more instances of a routing function, where each instance of the routing function performs routing operations on behalf of multiple NEs in the bearer plane  14 . For the purpose of the following description, consider the situation where the control plane function is implemented by two entities, namely a server  12  and a server  15 . The servers  12 ,  15  communicate with NEs of the bearer plane  14  via control message or signaling connections that are separate from the data transport connections. The control message connections are shown in stippled lines in  FIG. 1  to distinguish them from the data transport connections. The server  12  and the server  15  can communicate with one another via similar signaling connections. One such connection is shown in stippled lines between the boxes identifying the server  12  and the server  15 , respectively. 
     A general block diagram of the server  12  is shown at  FIG. 2 . The server  12  can be a PC having two main components namely an Input/Output (I/O) functional element  42  and a processing entity  44 . The I/O functional element  42  designates globally the interfaces of the server  12  allowing the server  12  to exchange control messages with NEs of the bearer plane  14  and other entities that are not part of the bearer plane  14 , such as peer routing instances implemented by other servers such as the server  15 . The processing entity  44  designates the logic controlling the operation of the server  12 . The processing entity  44 , among other functions includes a routing function  46  that will be described in greater detail below. 
     The processing entity  44  is implemented in software. The software resides on any suitable computer readable storage medium and it is executed on any suitable computing platform. Alternatively, the processing entity  44  can be implemented partly in hardware and partly in software. 
     The routing function  46  executed by the server  12  performs routing operations on behalf of multiple NEs in the bearer plane  14 . For example, the routing function  46  can serve NEs  18 ,  20 ,  22  and  24  that can be viewed as its clients. The routing function  46  is a single instance of any suitable routing protocol, such as Open Shortest Path First (OSPF), Intermediate System to Intermediate System (IS-IS) and Private Network to Network Interface (PNNI) that performs routing operations on behalf of the client NEs  18 ,  20 ,  22  and  24 . Advantageously, the routing protocol used is a distributed routing protocol but the invention is not limited to this feature. Also, it should be expressly noted that other protocols could be used without departing from the sprit of the invention, such as protocols that are based or derived from OSPF, IS-IS and PNNI, or totally different protocols. 
     It should also be noted that the server  12  is not limited to a single instance of a routing protocol. The processing entity  44  can very well run multiple instances of a routing protocol, however, at least one of those instances provides routing resources to multiple client NEs in the bearer plane  14 . 
     The routing function  46  communicates with a database  50  that contains true topology information about the client NES  18 ,  20 ,  22  and  24 . True topology information is defined as information that explicitly states or allows inferring the existence of the client NEs  18 ,  20 ,  22  and  24  and associated link resources between them. “True” topology information is meant to specifically exclude arbitrary forms of representation of NEs and data transport connections between them. 
     In a specific and non-limiting example of implementation, the database  50  contains two types of information, namely a representation of each client NE, such as the identifier of the NE, and a representation of the link resources for each client NE. In most cases, the link resources will be currently available link resources, however it may also be envisaged to represent link resources in the bearer plane  14  that while not currently available can be potentially activated or enabled. A link resource will normally be associated with a data transport connection to/from a client NE. A single link resource will correspond to a single data transport connection when that link resource occupies the whole data transport connection. When several link resources are established over a single data transport connection, each of those link resources will be represented individually in the database and they will be associated with a common data transport connection. 
     While  FIG. 2  shows the database  50  as being part of the server  12 , it may very well be envisaged to locate the database  50  remotely from the server  12  and connect the two via any suitable connection to allow the routing function  46  to interact with the database  50 . 
     The structure and the operation of the server  15  are identical to the server  12  with the exception that the server  15  has as clients NES  25 ,  27  and  29 . The server also contains a database that holds true topology information about the client NEs  25 ,  27  and  29 . Therefore, each server  12 ,  15  forms a separate routing instance, and speaks on behalf of the client NES in its scope. These routing instances communicate with one another via control messages determined by the routing protocol used, via suitable signaling connections between the servers  12 ,  15 . 
     In the case of the server  12 , since the database  50  contains true topology information about the client NEs, routing operations can be performed by the routing function  46  on behalf of those NEs. The types of routing operations include:
         Learning the existence of link resources for each NE represented.   Acquiring and maintaining the state of link resources for each client NE represented. For example, the current utilization of the link or if the link goes down.   Path computation involving any one of the client NEs as a source node for the path;   Advertising the existence of each NE link (and by inference, the NE) to peer routing instances (such as the routing instance implemented by the server  15 ) in the communications network  10 .   Receiving advertisements from other peer routing instances (such as the routing instance implemented by server  15 ) to form a view of the whole communications network topology.       

     In operation, the routing function  46  communicates with individual client NEs  18 ,  20 ,  22  and  24  in order to build and maintain the database  50  up to date. Such communications are effected via the I/O  42  and the control message connections by using any suitable control messages protocol. Various possibilities exist, all of them being in the scope of the present invention. The routing function  46  can query individual client NEs  18 ,  20 ,  22  and  24  to determine their operational status and derive information about link resources associated with each client NE  18 ,  20 ,  22  and  24 . Alternatively, each client NE  18 ,  20 ,  22  and  24  can, periodically, report to the routing function  46  its operational state and its associated link resources. In the absence of such report over a period of time the routing function  46  can either issue a query to the NE  18 ,  20 ,  22  and  24  or assume the NE is down and update the database  50  accordingly. 
     When entities in the control plane  11  of the communications network  10  need to communicate with the routing function associated with any one of the client NEs  18 ,  20 ,  22  and  24 , the control messages are sent to the routing function  46 , at the server  12 , instead of to the individual NEs  18 ,  20 ,  22  and  24 . The routing function  46  will perform the necessary request or operation without involving the client NE  18 ,  20 ,  22  and  24 . 
     It will be noted that the various client NEs  18 ,  20 ,  22  and  24  do not need to be contiguous or directly connected to one another by data transport connections to enable the routing function  46  to service them. This is specifically illustrated at  FIG. 1 , where the NE  24 , which is in the scope of the server  12 , is not connected by data transport connections to any one of the other NEs  18 ,  20  and  22  also in the scope of the server  12 . 
     The present invention is highly advantageous when the communications network  10  is made up mostly of legacy or fairly dated equipment and it is desired to upgrade its functionality, for instance by improving or adding a routing function. A specific type of upgrade is to add a control plane to a communications network that does not have one, where the control plane would provide a routing function and maybe other functions as well. As described earlier, the method for improving the routing function includes providing in the communications network a server that will implement routing resources to multiple client NES in the bearer plane. The server can be introduced in the communications network  10  in various ways, for instance by providing a new computing platform and connecting it to the communications network or by selecting an existing NE and upgrading it with sufficient processing power and memory resources to handle the routing function. Little or no modification is required to the client NEs. Accordingly, this method of improving the routing function of the communications network  10  is advantageous because most of the hardware and software modifications are done over a single entity. 
     Although various embodiments have been illustrated, this was for the purpose of describing, but not limiting, the invention. Various modifications will become apparent to those skilled in the art. For example, while in the above description the control and the bearer planes of the communications network  10  are described as being separate from one another, a router instantiation is possible with a co-incidence of the control and bearer planes. This and other modifications are within the scope of this invention, which is defined more particularly by the attached claims.