Method and system for optimizing resources for establishing pseudo-wires in a multiprotocol label switching network

Information

  • Patent Application
  • 20070286090
  • Publication Number
    20070286090
  • Date Filed
    June 08, 2006
    18 years ago
  • Date Published
    December 13, 2007
    16 years ago
Abstract
A method for establishing a pseudo-wire connection between first and second switches in a packet switched network, the method comprising: sending a label mapping message to the second switch requesting that the pseudo-wire connection be established with the first switch; reserving resources for the pseudo-wire connection at the first switch; receiving a label withdraw message from the second switch if the second switch has insufficient resources for the pseudo-wire connection and, in response to the label withdraw message, releasing the resources for the pseudo-wire connection at the first switch; and, activating the pseudo-wire connection if the second switch has sufficient resources for the pseudo-wire connection, thereby optimizing resources for establishing pseudo-wire connections of each of the first and second switches.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

Further features and advantages of the embodiments of the present invention will become apparent from the following detailed description, taken in combination with the appended drawings, in which:



FIG. 1 is a block diagram illustrating a communications system for providing Layer 2 services to subscribers in accordance with an embodiment of the invention;



FIG. 2 is a block diagram illustrating a data processing system adapted to implement an embodiment of the invention; and,



FIG. 3 is a flow chart illustrating operations of modules within the memory of a data processing system for establishing a pseudo-wire connection between first and second switches in a packet switched network, in accordance with an embodiment of the invention.





It will be noted that throughout the appended drawings, like features are identified by like reference numerals.


DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In the following description, details are set forth to provide an understanding of the invention. In some instances, certain software, circuits, structures and techniques have not been described or shown in detail in order not to obscure the invention. The term “data processing system” is used herein to refer to any machine for processing data, including the network elements and network management systems described herein. The present invention may be implemented in any computer programming language provided that the operating system of the data processing system provides the facilities that may support the requirements of the present invention. Any limitations presented would be a result of a particular type of operating system or computer programming language and would not be a limitation of the present invention. The present invention may also be implemented in hardware.



FIG. 1 is a block diagram illustrating a communications system 100 for providing Layer 2 services to subscribers in accordance with an embodiment of the invention. The communications system 100 includes a first MPLS switch 110 coupled to a second MPLS switch 120 over a PSN network 130 (e.g., an MPLS network) via a pseudo-wire (“PW”) connection 140. Customer edge (“CE”) devices 150, 160 are coupled to respective MPLS switches 110, 120 by respective attachment circuits (“ACs”) 170, 180. The MPLS switches 110, 120 may be provider edge (“PE”) devices, nodes, elements, switches, routers, etc. The MPLS switches 110, 120 are maintained by a service provider (“SP”) to provide Layer 2 services to a subscriber or user via the CE devices 150, 160. According to one embodiment, the MPLS switches 110, 120 may be coupled to a network management system (“NMS”) (not shown) for controlling and monitoring purposes. The NMS may be located at the SP's central office (“CO”) or elsewhere.



FIG. 2 is a block diagram illustrating a data processing system 300 adapted to implement an embodiment of the invention. The data processing system 300 is suitable for operation as a MPLS switch 110, 120, a CE device 150, 160, or a NMS. The data processing system 300 includes a central processing unit (“CPU”) 320, memory 330, and an interface device 350 and may optionally include an input device 310 and a display 340. The CPU 320 may include dedicated coprocessors and memory devices. The memory 330 may include RAM, ROM, disk devices, and databases. The interface device 350 may include a network connection. The input device 310 may include a keyboard, a mouse, a trackball, or a similar device. And, the display 340 may include a computer screen, terminal device, or a hardcopy producing output device such as a printer or plotter. The data processing system 300 is adapted for communicating with other data processing systems (e.g., 110 or 120) over a network 130 via the interface device 350. The data processing system 300 may include a database system 332 for storing and accessing network topology and programming information. The database system 332 may include a database management system (“DBMS”) and a database and may be stored in the memory 330 of the data processing system 300. The data processing system 300 has stored therein data representing sequences of instructions which when executed cause the method described herein to be performed. Of course, the data processing system 300 may contain additional software and hardware a description of which is not necessary for understanding the invention.


The data processing system 300 may be a MPLS switch 110, 120, a CE device 150, 160, a NMS, a server system, or a personal computer (“PC”) system. The CPU 320 of the system 300 is operatively coupled to memory 330 which stores an operating system (not shown) for general management of the system 300. The interface 350 may be used for communicating to external data processing systems (e.g., 110 or 120) through a network 130. The system 300 may include application server software (not shown) for developing and managing distributed applications. The CPU 320 of the system 300 is typically coupled to one or more devices 310 for receiving user commands or queries and for displaying the results of these commands or queries to the user on a display 340. As mentioned, the memory 330 may include a variety of storage devices including internal memory and external mass storage typically arranged in a hierarchy of storage as understood to those skilled in the art.


A user may interact with the data processing system 300 and its hardware and software modules 331 using an optional graphical user interface (“GUI”) 380. The GUI 380 may be used for monitoring, managing, and accessing the data processing system 300. GUIs are supported by common operating systems and provide a display format which enables a user to choose commands, execute application programs, manage computer files, and perform other functions by selecting pictorial representations known as icons, or items from a menu through use of an input or pointing device such as a mouse 310. In general, a GUI is used to convey information to and receive commands from users and generally includes a variety of GUI objects or controls, including icons, toolbars, drop-down menus, text, dialog boxes, buttons, and the like. A user typically interacts with a GUI 380 presented on a display 340 by using an input or pointing device (e.g., a mouse) 310 to position a pointer or cursor 390 over an object 391 and by “clicking” on the object 391.


Typically, a GUI based system presents application, system status, and other information to the user in “windows” appearing on the display 340. A window 392 is a more or less rectangular area within the display 340 in which a user may view an application or a document. Such a window 392 may be open, closed, displayed full screen, reduced to an icon, increased or reduced in size, or moved to different areas of the display 340. Multiple windows may be displayed simultaneously, such as: windows included within other windows, windows overlapping other windows, or windows tiled within the display area.


Thus, the data processing system 300 includes computer executable programmed instructions for directing the system 300 to implement the embodiments of the present invention. The programmed instructions may be embodied in one or more hardware modules or software modules 331 resident in the memory 330 of the data processing system 300. Alternatively, the programmed instructions may be embodied on a computer readable medium (such as a CD disk or floppy disk) which may be used for transporting the programmed instructions to the memory 330 of the data processing system 300. Alternatively, the programmed instructions may be embedded in a computer-readable signal or signal-bearing medium that is uploaded to a network by a vendor or supplier of the programmed instructions, and this signal or signal-bearing medium may be downloaded through an interface (e.g., 350) to the data processing system 300 from the network by end users or potential buyers.


As mentioned above, the MPLS LDP-DU signalling protocol with PW extensions is used to establish a bidirectional PW (e.g., 140) across a MPLS network (e.g., 130). For a PW 140 requiring resources, reservations are made independently in each direction (i.e., from 110 to 120 and from 120 to 110). This is accomplished by an exchange of signalling messages between the MPLS switches 110, 120 that are the endpoints of the PW 140, which triggers the resource reservation. However, this signalling exchange may give rise to the situation where one MPLS switch (e.g., 110) is able to reserve resources for a PW 140 while the other MPLS switch (e.g., 120) may fail to reserve resources. In this case, the signalling behaviour is such that the successfully reserved resources are held (i.e., by switch 110) until the failed PW connection (i.e., from 120 to 110) can be established, which may never occur. This can be problematic in that a PW 140 that is unable to be established due to a failure to acquire resources in one direction (i.e., from 120 to 110), may maintain a lock on resources at the opposite end (i.e., within switch 110). This is inefficient in that if the locked resources were available, they may have been able to have been used to allow a different PW (not shown) to be successfully established bi-directionally. Efficient allocation of such resources becomes most important upon re-establishing links after a network or network element failure.


Now, the present invention provides an optimization of the signalling behaviour in the establishment of MPLS pseudo-wires. According to one embodiment of the invention, a MPLS switch (e.g., 120) makes use of the bi-directional nature of PWs to force resources for a PW 140 to be freed at a far end MPLS switch (e.g., 110) when it cannot reserve resources locally (i.e., at 120). When the MPLS switch 120 detects that it cannot establish a PW 140 upon receipt of a connection message (e.g., a LDP label mapping message as described in Section 3.5.7 of RFC 3036) from a far end MPLS switch 110 due to a resource reservation failure for example, the local MPLS switch 120 triggers the far end MPLS switch 110 to release resources for the failed PW 140 in the reverse direction (i.e., from 120 to 110) using a LDP-DU signalling message. This message maybe a single LDP-DU message indicating a withdrawal of the PW LDP label mapping message (e.g., a LDP label withdraw message as described in Section 3.5.10 of RFC 3036). The MPLS switch 120 (or 110) may periodically attempt to establish the PW 140 so that the PW 140 can be successfully established if and when resources become available.


The resources for establishing and maintaining a PW 140 at each MPLS switch 110, 120 may include memory 330, CPU 320 capacity, and interface 350 capacity. In particular, to establish a PW connection 140, a switch (e.g., 110, 120) has to allocate the following:

    • (1) Required memory and context. These resources are implementation dependent, of course. Examples include RAM, non-volatile storage, etc.;
    • (2) Connection admission control (“CAC”) resources. These resources ensure that all network devices have enough capacity to satisfy the quality of service (“QoS”) requirements of the connection. This is often referred to bandwidth reservation; and,
    • (3) The allocated pseudo-wire label that is advertised to the PE router; pseudo-wire label binding context (such as entries in a label information base) for both received and allocated labels; and, pseudo-wire connection state maintenance.


The present invention provides several advantages. First, the increase in the number of signalling messages that are exchanged in the situation where a PW fails to be established is minimal, thus only minimally increasing the burden on MPLS switches. Second, the invention improves the recovery time due to network failures. In particular, the problem addressed by the present invention is most apparent in situations where a large number of PWs may need to be re-established as a result of a network failure. In this case, the probability is high that the PWs will compete for resources as they move from the failed network element(s) to other available network elements. In this case, the present invention allows the MPLS switches in a network to re-establish PWs for which there are enough resources at the expense of those whose resource requirements cannot be met. By doing so, the present invention enables a MPLS switch to increase the probability of successfully establishing a greater number of PWs or other connections such as LSPs, where there is contention for resources, thereby reducing customer outages and limiting the impact on service level agreements. Third, the present invention reduces the CPU and memory utilization of a MPLS switch by allowing the switch to maintain state only for successful PW connections.


The above described method may be summarized with the aid of a flowchart. FIG. 3 is a flow chart illustrating operations 200 of modules 331 within the memory 330 of a data processing system 300 for establishing a pseudo-wire connection 140 between first and second switches 110, 120 in a packet switched network 130, in accordance with an embodiment of the invention.


At step 201, the operations 200 start.


At step 202, a label mapping message is sent to the second switch 120 requesting that the pseudo-wire connection 140 be established with the first switch 110.


At step 203, resources for the pseudo-wire connection 140 are reserved at the first switch 110.


At step 204, a label withdraw message is received from the second switch 120 if the second switch 120 has insufficient resources for the pseudo-wire connection 140 and, in response to the label withdraw message, the resources for the pseudo-wire connection 140 are released at the first switch 110.


At step 205, the pseudo-wire connection 140 is activated if the second switch 120 has sufficient resources for the pseudo-wire connection 140, thereby optimizing resources for establishing pseudo-wire connections (e.g., 140) of each of the first and second switches 110, 120.


At step 206, the operations 200 end.


In the above method, the network 130 may be a multiprotocol label switching (“MPLS”) network. The first and second switches 110, 120 may be first and second MPLS switches, respectively. The pseudo-wire connection 140 may be a bi-directional pseudo-wire connection. The bi-directional pseudo-wire connection 140 may be one or more bi-directional pseudo-wire connections. The method may further include configuring the pseudo-wire connection 140 on each of the first and second switches 110, 120. And, the resources may be one or more of memory 330, processor 320 capacity, network interface 350 capacity, connection admission control resources, allocated pseudo-wire labels, pseudo-wire label binding context, and pseudo-wire connection state maintenance.


According to one embodiment of the invention, the above described method may be implemented by a NMS (not shown) rather than by, or in combination with, the MPLS switches 110, 120.


While this invention is primarily discussed as a method, a person of ordinary skill in the art will understand that the apparatus discussed above with reference to a data processing system 300, may be programmed to enable the practice of the method of the invention. Moreover, an article of manufacture for use with a data processing system 300, such as a pre-recorded storage device or other similar computer readable medium including program instructions recorded thereon, may direct the data processing system 300 to facilitate the practice of the method of the invention. It is understood that such apparatus and articles of manufacture also come within the scope of the invention.


In particular, the sequences of instructions which when executed cause the method described herein to be performed by the data processing system 300 of FIG. 2 can be contained in a data carrier product according to one embodiment of the invention. This data carrier product can be loaded into and run by the data processing system 300 of FIG. 2. In addition, the sequences of instructions which when executed cause the method described herein to be performed by the data processing system 300 of FIG. 2 can be contained in a computer software product according to one embodiment of the invention. This computer software product can be loaded into and run by the data processing system 300 of FIG. 2. Moreover, the sequences of instructions which when executed cause the method described herein to be performed by the data processing system 300 of FIG. 2 can be contained in an integrated circuit product (e.g., hardware modules) including a coprocessor or memory according to one embodiment of the invention. This integrated circuit product can be installed in the data processing system 300 of FIG. 2.


The embodiments of the invention described above are intended to be exemplary only. Those skilled in this art will understand that various modifications of detail may be made to these embodiments, all of which come within the scope of the invention.

Claims
  • 1. A method for establishing a pseudo-wire connection between first and second switches in a packet switched network, the method comprising: sending a label mapping message to the second switch requesting that the pseudo-wire connection be established with the first switch;reserving resources for the pseudo-wire connection at the first switch;receiving a label withdraw message from the second switch if the second switch has insufficient resources for the pseudo-wire connection and, in response to the label withdraw message, releasing the resources for the pseudo-wire connection at the first switch; and,activating the pseudo-wire connection if the second switch has sufficient resources for the pseudo-wire connection, thereby optimizing resources for establishing pseudo-wire connections of each of the first and second switches.
  • 2. The method of claim 1 wherein the network is a multiprotocol label switching (“MPLS”) network.
  • 3. The method of claim 2 wherein the first and second switches are first and second MPLS switches, respectively.
  • 4. The method of claim 3 wherein the pseudo-wire connection is a bi-directional pseudo-wire connection.
  • 5. The method of claim 4 wherein the bidirectional pseudo-wire connection is one or more bi-directional pseudo-wire connections.
  • 6. The method of claim 1 and further comprising configuring the pseudo-wire connection on each of the first and second switches.
  • 7. The method of claim 3 wherein the resources are one or more of memory, processor capacity, network interface capacity, connection admission control resources, allocated pseudo-wire labels, pseudo-wire label binding context, and pseudo-wire connection state maintenance.
  • 8. A system for establishing a pseudo-wire connection between first and second switches in a packet switched network, the system comprising: a processor coupled to memory and to an interface to the network; and,modules within the memory and executed by the processor, the modules including:a module for sending a label mapping message to the second switch requesting that the pseudo-wire connection be established with the first switch;a module for reserving resources for the pseudo-wire connection at the first switch;a module for receiving a label withdraw message from the second switch if the second switch has insufficient resources for the pseudo-wire connection and, in response to the label withdraw message, releasing the resources for the pseudo-wire connection at the first switch; and,a module for activating the pseudo-wire connection if the second switch has sufficient resources for the pseudo-wire connection, thereby optimizing resources for establishing pseudo-wire connections of each of the first and second switches.
  • 9. The system of claim 8 wherein the network is a multiprotocol label switching (“MPLS”) network.
  • 10. The system of claim 9 wherein the first and second switches are first and second MPLS switches, respectively.
  • 11. The system of claim 10 wherein the pseudo-wire connection is a bi-directional pseudo-wire connection.
  • 12. The system of claim 11 wherein the bi-directional pseudo-wire connection is one or more bi-directional pseudo-wire connections.
  • 13. The system of claim 8 and further comprising a module for configuring the pseudo-wire connection on each of the first and second switches.
  • 14. The system of claim 10 wherein the resources are one or more of memory, processor capacity, network interface capacity, connection admission control resources; allocated pseudo-wire labels, pseudo-wire label binding context, and pseudo-wire connection state maintenance.
  • 15. The system of claim 8 wherein the system is a network management system.
  • 16. The system of claim 8 wherein the system is included in one or more of the first and second switches.