The present disclosure refers to traffic engineering in a communication network and more specifically, refers to database synchronization in a packet switched communication network.
Existing network systems are often complex and demanding in terms of parameters such as agility, adaptability, robustness, efficiency, performance and scalability. Apart from such demands, service providers would also like to dynamically adapt to requests of customers. Meeting these requirements is possible by implementation of Software Defined Networks (SDN). Service providers may transition to SDN enabled networks by using existing path computation element (PCE) components from the current network systems to function as a central controller of SDN enabled networks, which would in turn leverage the existing PCE network components.
The path computation element communication protocol (PCEP) provides procedures for PCEs to perform route computations in response to path computation client (PCC) requests. PCEP extension for PCE-initiation Label Switch Path (LSP) setup in a stateful PCE model describes a set of extension to PCEP to enable active control of Multiprotocol Label Switching- Traffic Engineering (MPLS-TE) tunnels.
Besides storing network state in the Traffic Engineering Database (TEDB), stateful PCE also stores the state of all computed paths or LSPs and their resources in Label Switch Path Database (LSPDB). Stateful PCE may be categorized as shown in
The implementation of the stateful PCE however, requires synchronization of the LSPDB from PCC to PCE to provide a checkpoint-in-time state replica of a PCC's LSP state in a PCE. LSP state synchronization is performed immediately after the initialization phase. However, LSP state synchronization is not always necessary following a PCEP session restart. If the state of both PCEP peers did not change, the synchronization phase may be skipped. This would therefore, result in significant savings in both control-plane data exchanges and the time it takes for the stateful PCE to become fully operational.
Another category of LSPDB state synchronization is an incremental (Delta) LSPDB state synchronization, where only the LSPs underwent state change are synchronized between the session restart. This may include new/modified/deleted LSPs.
Segment Routing (SR) technology illustrates a source routing and tunneling paradigms where a source node can choose a path without relying on hip-by-hop signaling protocols such as LDP or RSVP-TE. Each path is specified as a set of “segments” advertised by link-sate routing protocols. A Segment Routed path (SR path) can be derived from an IGP Shortest Path Tree (SPT). Segment Routed Traffic Engineering paths (SR-TE paths) may not follow IGP SPT. Such paths may be chosen by a suitable network planning tool and provisioned on the source node of SR-TE path.
It is possible to use a stateful PCE for computing one or more SR-TE paths taking into account various constraints and objective functions. Once a path is chosen, the stateful PCE can instantiate an SR-TE path on a PCC using specific PCEP extensions.
The PCE Central Controller (PCECC) solution allow for a dynamic MPLS network that is eventually controlled and deployed without the deployment of Resource Reservation Protocol Traffic Engineering (RSVP-TE) protocol or extended Interior Gateway Protocol (IGP) protocol with node/adjacency segment identifiers signaling capability while providing all the key MPLS functionalities needed by the service providers.
The present disclosure however, fills the void in state of the art as it illustrates management of label database at router i.e. path computation client (PCC) aligning with label database at path computation element central controller (PCECC) on initial session UP or session flap. On the initial session UP as well as on the session flap, the label database at the path computation element (PCE) needs to be synchronized to the path computation client (PCC). Without label database synchronization, PCECC cannot be deployed as on session flap, labels at PCCs and PCE may not be synchronized leading to network failure.
An embodiment of the present disclosure illustrates a method for label database synchronization in a packet switched communication network comprising steps of establishing a communication path between stateful path computation element (PCE) and a path computation client (PCC), modifying label update message at the PCE to include a synchronization flag and transmitting the label update message to the PCC. In an exemplary embodiment, the method is performed on initial session or every session flap of communication.
Another embodiment as per the present disclosure illustrates a method for label database synchronization in a packet switched communication network comprising the steps of establishing a communication path between stateful path computation element (PCE) and a path computation client (PCC), identifying path computation element communication protocol (PCEP) at the PCE and the PCC, modifying at least one bit in path computation element central controller (PCECC) capability type-length-value (TLV) object at the PCE and the PCC in a PCEP session and synchronizing label databases based on value of the at least one bit in PCECC capability TLV in a PCEP session.
An embodiment of the present disclosure illustrates a path computation element (PCE) comprising a path computation element central controller (PCECC) configured to establish a communication path between the PCE and a path computation client (PCC), modifying label update message at the PCE to include a synchronization flag and transmitting the label update message to the PCC.
Another embodiment of the present disclosure illustrates a path computation element central controller (PCECC) configured to establish a communication path between stateful path computation element (PCE) and a path computation client (PCC), identify path computation element communication protocol (PCEP) at the PCE and the PCC, modify at least one bit in path computation element central controller (PCECC) capability type-length-value (TLV) object at the PCE and the PCC in a PCEP session and synchronize label databases based on value of the at least one bit in PCECC capability TLV in a PCEP session.
Yet another embodiment of the present application illustrates a router comprising a path computation element (PCE) comprising a path computation element central controller (PCECC) configured to establish a communication path between the PCE and a path computation client (PCC), modifying label update message at the PCE to include a synchronization flag and transmitting the label update message to the PCC.
Another embodiment of the present disclosure illustrates a router comprising a path computation element (PCE) comprising a path computation element central controller (PCECC) configured to establish a communication path between stateful path computation element (PCE) and a path computation client (PCC), identify path computation element communication protocol (PCEP) at the PCE and the PCC, modify at least one bit in path computation element central controller (PCECC) capability type-length-value (TLV) object at the PCE and the PCC in a PCEP session and synchronize label databases based on value of the at least one bit in PCECC capability TLV in a PCEP session.
In an exemplary embodiment, the step of modifying at least one bit in PCECC capability TLV comprises adding a label database version flag in PCECC capability TLV and also advertising label database version being used at the PCE and the PCC in a Open message. In a further exemplary embodiment, a new LABEL-DB-VERSION TLV is to be included in label update message when both PCC & PCE advertise the INCLUDE_LABEL-DB-VERSION (I) flag set in PCECC capability TLV.
According to an embodiment of the present disclosure, no synchronization is implemented if the advertised label database version being used at the PCE and the PCC is identical.
According to yet another embodiment of the present disclosure, the step of modifying at least one bit in PCECC capability TLV comprises modifying a capability flag in PCECC capability TLV at the PCC and the PCE. In an exemplary embodiment of the present disclosure, the capability flag is referred to as DELTA-LABEL-SYN-CAPABILITY (D Flag).
In yet another embodiment of the present disclosure, partial synchronization of label databases is implemented if value of the capability flag in PCECC capability TLV is set to ‘1’ at both the PCC and the PCE.
According to an embodiment of the present disclosure, absolute synchronization of label databases is implemented if value of the capability flag in PCECC capability TLV is not ‘1’ at both the PCC and the PCE.
In exemplary embodiments of the present disclosure, each label update message sent during label database synchronization comprises a synchronization flag, depicted as SYNC flag, set to ‘1’ in the SRP object.
Exemplary embodiments of the present disclosure are performed on initial session or every session flap of communication.
The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the drawings to reference like features and components.
The following discussion provides a brief, general description of a suitable computing environment in which various embodiments of the present disclosure can be implemented. The aspects and embodiments are described in the general context of computer executable mechanisms such as routines executed by a handheld device (e.g., a mobile phone, a personalized digital assistant, a cellular device, a tablet, etc.). The embodiments described herein can be practiced with other system configurations, including Internet appliances, hand held devices, multi-processor systems, microprocessor based or programmable consumer electronics, network PCs, mini computers, mainframe computers and the like. The embodiments can be embodied in a special purpose computer or data processor that is specifically programmed configured or constructed to perform one or more of the computer executable mechanisms explained in detail below.
Exemplary embodiments now will be described with reference to the accompanying drawings. The disclosure may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey its scope to those skilled in the art. The terminology used in the detailed description of the particular exemplary embodiments illustrated in the accompanying drawings is not intended to be limiting. In the drawings, like numbers refer to like elements.
The specification may refer to “an”, “one” or “some” embodiment(s) in several locations. This does not necessarily imply that each such reference is to the same embodiment(s), or that the feature only applies to a single embodiment. Single features of different embodiments may also be combined to provide other embodiments.
As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless expressly stated otherwise. It will be further understood that the terms “includes”, “comprises”, “including” and/or “comprising” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. It will be understood that when an element is referred to as being “connected” or “coupled” to another element, it can be directly connected or coupled to the other element or intervening elements may be present. Furthermore, “connected” or “coupled” as used herein may include wirelessly connected or coupled. As used herein, the term “and/or” includes any and all combinations and arrangements of one or more of the associated listed items.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
The figures depict a simplified structure only showing some elements and functional entities, all being logical units whose implementation may differ from what is shown. The connections shown are logical connections; the actual physical connections may be different. It is apparent to a person skilled in the art that the structure may also comprise other functions and structures. It should be appreciated that the functions, structures, elements and the protocols used in communication are irrelevant to the present disclosure. Therefore, they need not be discussed in more detail here.
In addition, all logical units described and depicted in the figures include the software and/or hardware components required for the unit to function. Further, each unit may comprise within itself one or more components, which are implicitly understood. These components may be operatively coupled to each other and be configured to communicate with each other to perform the function of the said unit.
Similar to LSPDB synchronization from PCC to stateful PCE, LABEL-DB synchronization is performed from stateful PCE to PCC. LABEL-DB synchronization mechanism is defined under two categories of basic and advanced features. The basic LABEL-DB synchronization supports to synchronize full label database from PCE to PCC in Initial session UP or every session flap while the advanced LABEL-DB synchronization supports to optimize the label database synchronization based on the status of label database at both PCEP speakers. Both speakers should support LABEL-DB version capability and maintain LABEL-DB version for each session. Two optimization mechanisms, avoidance and incremental update, are defined for LABEL-DB synchronization. Apart from these two optimization mechanisms, full LABEL-DB synchronization is performed unconditionally. Under the avoidance aspect of optimization mechanism, LABEL-DB synchronization is skipped if the LABEL-DB version is same at both PCEP speakers. Further, an incremental LABEL-DB synchronization is performed if the LABEL-DB version is different and non-zero.
The method 300 disclosed corresponds to basic LABEL-DB synchronization where the PCECC maintains the Label Database per session and sends the Label Database snapshot to the PCC in a sequence of Label Update Message, also referred to as PCLabelUpd message. The PCLabelUpd message used is illustrated in
The Label Update Message is a PCEP message sent by a PCE to a PCC to download label or update the label map. The same message is also used to clean up the Label entry. The Label Update Message is used to download label along the path of the LSP for the basic PCECC mode, as well as to update the label map for the Node and Adjacency Label in case of SR. According to the embodiment of the present disclosure, each Label Update Message sent during LABEL-DB Synchronization has a SYNC(S) Flag in the SRP Object. The SRP Object used is illustrated in
The SRP object body has a variable length and may contain additional TLVs. SRP-ID-number (32 bits): The SRP-ID-number value in the scope of the current PCEP session uniquely identify the operation that the PCE has requested the PCC to perform on a given LSP. The SRP-ID-number is incremented each time a new request is sent to the PCC, and may wrap around. The values 0x00000000 and 0xFFFFFFFF are reserved. Every request to update an LSP receives a new SRP-ID-number. This number is unique per PCEP session and is incremented each time an operation is requested from the PCE. Thus, for a given LSP there may be more than one SRP-ID-number unacknowledged at a given time. The value of the SRP-ID-number is echoed back by the PCC in PCErr and PCRpt messages to allow for correlation between requests made by the PCE and errors or state reports generated by the PCC. If the error or report were not as a result of a PCE operation (for example in the case of a link down event), the reserved value of 0x00000000 is used for the SRP-ID-number. The absence of the SRP object is equivalent to an SRP object with the reserved value of 0x00000000. An SRP-ID-number is considered unacknowledged and cannot be reused until a PCErr or PCRpt arrives with an SRP-ID-number equal or higher for the same LSP. In case of SRP-ID-number wrapping the last SRP-ID-number before the wrapping MUST be explicitly acknowledged, to avoid a situation where SRP-ID-numbers remain unacknowledged after the wrap. This means that the PCC may need to issue two PCUpd messages on detecting a wrap.
According to an exemplary embodiment, modifying at least one bit in PCECC capability TLV comprises adding a label database version flag in PCECC capability TLV and also advertising label database version being used at the PCE and the PCC in a Open message. In another embodiment, the step of modifying comprises modifying a delta label database synchronization capability flag in PCECC capability TLV at the PCC and the PCE.
According to another exemplary embodiment, no synchronization is implemented if the advertised label database version being used at the PCE and the PCC is identical.
According to another exemplary embodiment, partial synchronization of label databases is implemented if value of the synchronization flag in PCECC capability TLV is set to ‘1’ at both the PCC and the PCE.
In an embodiment of the present disclosure, absolute synchronization of label databases is implemented if value of the synchronization flag in PCECC capability TLV is not ‘1’ at both the PCC and the PCE.
The method 600 corresponds to Advanced LABEL-DB synchronization where both PCEP speakers specify LABEL-DB version support in an open message and the PCE generates and maintains the LABEL-DB version per session and encodes it in PCLabelUpd message. LABEL-DB Version support is advertised on a PCEP session during session startup using the INCLUDE-LABEL-DB-VERSION (I) bit in the PCECC capability TLV. The PCECC capability TLV is illustrated in
If both PCEP speakers set the I flag in PCECC Capability TLV to 1, the PCE must include the LABEL-DB-VERSION TLV in each SRP object of the PCLabelUpd message. The LABEL-DB-VERSION TLV used to encode in open object and SRP object is illustrated in
As disclosed previously, LABEL-DB synchronization may be skipped following a PCEP session restart if labels are not changed for the node. If both PCEP speakers include the LABEL-DB-VERSION TLV in the OPEN object and the Label DB Version Number is matched, the PCECC may skip LABEL-DB synchronization.
Further, instead of dumping full Label Database to the PCC, the PCECC synchronizes the delta (changes) when DELTA-LABEL-SYNC-CAPABILITY is set to 1 by both PCC and PCE in PCECC Capability TLV. DELTA-LABEL-SYNC-CAPABILITY, which is referred to as D flag setting, may be combined by PCC and PCE in a manner which results in full LABEL-DB synchronization. If both PCEP speakers include the LABEL-DB-VERSION TLV in the OPEN object and the Label DB Version Numbers are non-zero and different then the PCECC perform Delta LABEL-DB synchronization.
Implementation of embodiments of the present disclosure results in the PCECC owning the label allocation, maintaining the labels and distributing the labels to PCC(s) in the network. Hence, it is needed that all routers (PCC) in the network which are controlled by PCECC should align their label database with the PCECC label database on initial session UP or session flap. PCECC cannot be deployed without label database synchronization.
Without label database synchronization as illustrated in the present disclosure, PCECC cannot be deployed as on session flap, labels at PCCs and PCE may not be synchronized, which would in turn lead to network failure. Each PCLabelUpd message sent during LABEL-DB synchronization has the SYNC Flag in the SRP object set to 1. LABEL-DB Version support is advertised on a PCEP session during session startup using the INCLUDE-LABEL-DB-VERSION (IDLB) bit in the PCECC Capability TLV. If both PCEP speakers set the IDLB flag in the PCECC capability TLV to 1, the PCE include the LABEL-DB-VERSION TLV in each SRP object of the PCLabelUpd message. Instead of dumping full Label DB to the PCC, the PCECC synchronizes the delta (changes) when DELTA-LABEL-SYN-CAPABILITY (D Flag) is set to 1 by both PCC and PCE in PCECC Capability TLV. Other combination of D flag setting by PCC and PCE result in full LABEL-DB synchronization.
As will be appreciated by one of skill in the art, the present disclosure may be embodied as a method, system, or computer program product. Accordingly, the present disclosure may take the form of an entirely hardware embodiment, a software embodiment or an embodiment combining software and hardware aspects all generally referred to herein as a “circuit” or “module.” Furthermore, the present disclosure may take the form of a computer program product on a computer-usable storage medium having computer-usable program code embodied in the medium.
Furthermore, the present disclosure was described in part above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the disclosure.
It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
Instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
Instructions may also be loaded onto a computer or other programmable data processing apparatus like a scanner/check scanner to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and schematic diagrams of
In the drawings and specification, there have been disclosed exemplary embodiments of the disclosure. Although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation.
Number | Date | Country | Kind |
---|---|---|---|
201641015408 | May 2016 | IN | national |
This application is a continuation of International Application No. PCT/CN2017/079349 filed on Apr. 1, 2017, which claims priority to India Patent Application No. 201641015408 filed on May 3, 2016. The disclosures of the aforementioned applications are hereby incorporated by reference in their entireties.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2017/079349 | Apr 2017 | US |
Child | 16179603 | US |