Embodiments of the invention relate to the field of networking; and more specifically, to signaling a Label Switched Path (LSP) tunneling model.
Label Distribution Protocol (LDP) (e.g., described in RFC 5036) is widely deployed in Multiprotocol Label Switching (MPLS) (e.g., MPLS is described in RFC 3031) networks as a signaling protocol for label switched path (LSPs). LDP LSPs are used as transport LSPs in applications such as Border Gateway Protocol (BGP) free core, Layer 2 Virtual Private Network (L2VPN), and other applications, by stacking the LDP LSP label (the tunnel label) over the application label.
These applications may have different requirements for the tunneling model to be applied to the transport LSP. The tunneling model defines the semantics on how processing is to be performed (e.g., Differentiated Services (DiffServ) processing, the time-to-live (TTL) treatment, etc.). Example tunneling models include a pipe tunneling model, a short-pipe tunneling model, and a uniform tunneling model. Tunneling models and DiffServ processing for those tunneling models are described, for example, in RFC 3270. In general, the LSR behavior for the pipe tunneling model, the short-pipe tunneling model, and the uniform tunneling model only differ when performing a push operation or a pop operation. Thus, transit LSRs that perform swap only operations are generally not affected by the different tunneling model types. TTL processing for the different tunneling models is described in RFC 3443. By way of a generic example, in a pipe tunneling model (either regular pipe or short-pipe), the transport LSP hides the intermediate MPLS nodes between the LSP ingress and egress; whereas in a uniform tunneling model, each network element that the LSP traverses is visible to an external network element. Penultimate Hop Popping (PHP) may also be used in the short-pipe model and the uniform model (PHP cannot be used in the regular pipe model).
Network elements in the MPLS may provide integrated services and simultaneously support multiple applications that require different tunneling models. For example, an edge network element may support a BGP free core application that requires a uniform tunneling model and an L2VPN application that requires a pipe tunneling model (either regular pipe or short-pipe). Separate transport LSPs will be established for each of the applications. However, if the edge network element is acting as the ingress network element, it does not know which transport LSP provides the appropriate tunneling model requirement for the particular application. Thus, even though multiple LSPs may be established, the ingress network element does not know which LSP to choose for the particular application. In addition, a transit network element that is the PHP network element also does not know which tunneling model to apply when PHP is signaled for the transport LSP.
Signaling a Label Switched Path (LSP) tunneling model is described. In one embodiment, a network element that is acting as an egress network element in a Multiprotocol Label Switching (MPLS) network signals multiple LSPs for multiple disparate applications provided in the MPLS network that each require a different type of tunneling model. The network element transmits a first label mapping message for one of the LSPs that includes an indication of a first tunneling model type applicable for that LSP. That LSP is to be used to transport traffic in the MPLS network for a first one of the disparate applications that requires the indicated first tunneling model type. The network element further transits a second label mapping message for a second one of the LSPs that includes an indication of a second tunneling model type applicable for that LSP. That LSP is to be used to transport traffic in the MPLS network for a second one of the disparate applications that requires the indicated second tunneling model type. The first tunneling model type and the second tunneling model type are different. In one embodiment, the first tunneling model type is a uniform tunneling model and the second tunneling model type is a pipe tunneling model (regular pipe or short-pipe).
In one embodiment, a network element configured to act as an egress network element in a MPLS network includes one or more cards each including a set of one or more processors that are coupled a non-transitory machine-readable storage medium having stored therein, an application control module and a Label Distribution Protocol (LDP) module. The application control module is adapted to configure multiple disparate applications for use in the MPLS network where each application requires a different type of tunneling model. The LDP module is adapted to transmit a label mapping message to signal a different label switched path (LSP) for each of the configured applications, where each label mapping message includes an indication of a tunneling model type applicable to that LSP.
In one embodiment, a network element that is acting as an ingress network element in a MPLS network participates in multiple disparate applications provided in the MPLS network that each require a different type of tunneling model. The network element receives a first label mapping message for a first LSP between the ingress network element and the egress network element. The first label mapping message includes an indication of a first tunneling model type that is supported on the first LSP. The network element installs one or more forwarding entries according to the received first label mapping. The network element receives a second label mapping message for a second LSP between the ingress network element and the egress network element. The second label mapping message includes an indication of a second tunneling model type that is supported on the second LSP. The network element installs one or more forwarding entries according to the received second label mapping message. The network element associates a first one of the disparate applications that requires the first tunneling model with the first LSP and associates a second one of the plurality of disparate applications that requires the second tunneling module with the second LSP.
In one embodiment, a network element configured to act as an ingress network element in an MPLS network includes one or more cards that each include a set of one or more processors that are coupled a non-transitory machine-readable storage medium having stored therein an LDP module and an application control module. The LDP module is adapted to receive a label mapping message for each one of multiple LSPs for use in the MPLS network respectively. Each LSP spans between the ingress network element and an egress network element. Each label mapping message includes an indication of a tunneling model type applicable to that LSP. The application control module is adapted to configure multiple disparate applications for use in the MPLS network where each application requires a different type of tunneling model. For each of those applications, the application control module is adapted to associate that application with one of the LSPs based on the type of tunneling model required for that application and the tunneling model type supported by that LSP.
Signaling the tunneling model type applicable for the LSPs allows the ingress network element to select an LSP for transport of application traffic depending on the requirements of that application, without requiring explicit configuration on the ingress network element. In addition, if penultimate hop popping (PHP) is used, the PHP network element can use the signaled tunneling model type so that it can apply the appropriate tunneling model processing when performing a pop operation, without requirement explicit configuration of the PHP network element.
The invention may best be understood by referring to the following description and accompanying drawings that are used to illustrate embodiments of the invention. In the drawings:
In the following description, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In other instances, well-known circuits, structures and techniques have not been shown in detail in order not to obscure the understanding of this description. Those of ordinary skill in the art, with the included descriptions, will be able to implement appropriate functionality without undue experimentation.
References in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
A method and apparatus for signaling a label switched path (LSP) tunneling model is described. In one embodiment, when signaling a transport LSP for an application that requires a particular tunneling model, a network element that is acting as an egress network element in a Multiprotocol Label Switching (MPLS) network transmits a label mapping message that includes an indication of the tunneling model applicable for that LSP. In one embodiment, the tunneling model indication is included in a Type, Length, Value (TLV) element in the label mapping message. A transit Label Switch Router (LSR) that receives the label mapping message with the tunneling model indication (e.g., the tunneling model TLV) propagates the same indication in upstream label mapping messages. The network element that is acting as an ingress network element in the MPLS network uses the tunneling model indication in the label mapping message and maps the application with the appropriate LSP.
In one embodiment, the egress network element signals each separate LSP with a tunneling model indication with a different Forwarding Equivalence Class (FEC). In another embodiment, the egress network element signals multiple LSPs with different tunneling model indications with the same FEC. In such an embodiment, a transit LSR that receives multiple label mappings with different tunneling model indications for the same FEC allocates and advertises a separate label mapping upstream for each such indication.
The edge network elements 105A-B provide integrated services and simultaneously support multiple applications that require different tunneling models. For example, the edge network elements 105A-B support the uniform tunneling model application 110A-B respectively and the pipe tunneling model application 115A-B respectively. The uniform tunneling model application 110A-B is an application that requires the uniform tunneling model (e.g., BGP free core). The pipe tunneling model application 115A-B is an application that requires either the pipe tunneling model or the short-pipe tunneling model (e.g., L2VPN, or other pseudowire application).
The customer edge 1 (CE1) network element 170 and the CE3 network element 174 are coupled with the edge network elements 105A-B respectively and participate in the uniform tunneling model application 110. For example, the CE1 network element 170 connects with the edge network element 105A over an IP interface 180 for the uniform tunneling model application 110A. The CE3 network element 174 similarly connects with the edge network element 105B over an IP interface 184 for the uniform tunneling model application 110B.
The CE2 network element 172 and the CE4 network element 176 are coupled with the edge network elements 105A-B respectively and participate in the pipe tunneling model application 115. For example, the CE2 network element 172 connects with the edge network element 105A over the access circuit 182 for the pipe tunneling model application 115A. Similarly, the CE4 network element 176 connects with the edge network element 105B over the access circuit 186 for the pipe tunneling model application 115B.
The edge network elements 105A-B receive configuration (e.g., from a network administrator) for the uniform tunneling model application 110 and the pipe tunneling model application 115. For example, the IP interfaces 180 and 184 and the access circuits 182 and 186 are configured on the edge network elements 105A-B respectively. The configuration may also include other parameters including quality of service (QoS), etc. By way of example and with reference to
In one embodiment, after configuring an application, the egress network element determines the type of application including the tunneling model type required for that application and automatically includes the appropriate tunneling model indicator in the label mapping message for the transport LSP for that application.
The uniform tunneling model (UTM) LDP LSP 130 is established between the edge network elements 105A-B. The UTM LDP LSP 130 is an LDP LSP in which the uniform tunneling model is applicable. The type of tunneling model applicable for the LSP 130 (the uniform tunneling model) is propagated from the edge network element 105B to the edge network element 105A during signaling of the LSP 130. Once the LSP 130 is established (and mapped to the uniform tunneling model application 110A), the UTM LDP LSP 130 will carry traffic sent from the CE1 network element 170 and destined to the CE3 network element 174 for the uniform tunneling model application 110. For example, upon receiving a packet from the CE1 network element 170 that is destined for the CE3 network element 174, the edge network element 105A stacks the tunnel label for the LSP 130 onto an application label used by the network element 105B to reach the CE3 network element 174 and transmits the labeled packet to the next hop core network element 125.
The pipe tunneling model (PTM) LDP LSP 135 is also established between the edge network elements 105A-B. The PTM LDP LSP 135 is an LDP LSP in which the pipe tunneling model or the short-pipe tunneling model is applicable. The specific type of tunneling model applicable for the LSP 135 (the pipe tunneling model or the short-pipe tunneling model) is propagated from the edge network element 105B to the edge network element 105A during signaling of the LSP 135. Once the LSP 135 is established (and mapped to the pipe tunneling model application 115A), the PTM LDP LSP 135 will carry traffic sent from the CE2 network element 172 and destined to the CE4 network element 176 for the pipe tunneling model application 115. For example, upon receiving a packet from the CE2 network element 172 that is destined for the CE4 network element 176, the edge network element 105A stacks the tunnel label for the LSP 135 onto an application label used by the network element 105B to reach the CE4 network element 176 and transmits the labeled packet to the next hop core network element 125.
The operations illustrated in
At operation 1 of
At operation 2, the control module(s) 120B cause a label mapping message with the tunnel label for the uniform tunneling model application to be transmitted to the next upstream LSR on the path (one of the core network element(s) 125). The label mapping message includes a mapping of the tunnel label egress1 with a FEC of the egress network element 105B. In one embodiment, the FEC is associated with the uniform tunneling model application 110B (a separate FEC is associated with the pipe tunneling model application 115B), while in other embodiments the same FEC is associated with the uniform tunneling model application 110B and the pipe tunneling model application 115B. The label mapping message also includes an indication that the uniform tunneling model is to be applied for this LSP. By way of a specific example, an LDP control module advertises an LDP label mapping message that includes a FEC TLV that specifies the FEC component of the label mapping, a label TLV that specifies the label component of the label mapping, and a tunnel model TLV that specifies the tunneling model applicable for the resulting LSP. Since LDP typically follows the shortest path as determined by an Interior Gateway Protocol (IGP), the LDP label mapping message that includes the tunnel model TLV is transmitted to the next hop as indicated by IGP.
The tunnel label advertisement traverses through the core network element(s) 125 and will be received by the edge network element 105A. Each of the core network element(s) 125 allocates and transmits their own label for the FEC and installs an appropriate label forwarding entry (e.g., in its ILM). The core network element(s) 125, however, propagate the same tunneling model indication (e.g., the same TLV) as transmitted by the edge network element 105B. Thus, the edge network element 105A receives a label mapping message from an upstream core network element 125 that includes a label allocated by that core network element for the FEC and also includes the indication of the tunneling model type applicable for that LSP (e.g., a tunnel model TLV), which in this case indicates that the uniform tunneling model should be applied for this LSP.
In one embodiment, the tunnel label egress1 is a NULL label that is used to establish PHP mode in the penultimate hop. The one of the core network element(s) 125 that is the penultimate hop (who receives the NULL label) also stores an indication of the tunneling model type applicable for that LSP such that upon receiving a labeled packet for that LSP it will pop the outer label and apply the tunneling model processing applicable for that LSP.
At operation 3, the control module(s) 120A install the tunnel label egress1 in one or more of its forwarding structures (e.g., in its Next Hop Label Forwarding Entry (NHLFE) structure). In one embodiment, the NHLFE structure is stored on one or more forwarding cards (sometimes referred to as line cards) of the edge network element 105A. The control module(s) 120A also stores an indication of the tunneling model type for the LSP corresponding to the tunnel label. Thus, the LSP tunneling model type for the advertised LSP is signaled by the egress network element and is now known by the ingress network element (the edge network element 105A). The ingress network element can now use this information to map an application that requires a specific tunneling model type with an LSP that supports that tunneling model type.
In addition to the tunnel label, the edge network element 105B also advertises an application label. For example, the edge network element 105B advertises an application label to reach CE3 network element 174. Thus, at operation 4, the control module(s) 120B install a UTM application label (e.g., to reach CE3) in one or more of its forwarding structures. At operation 5, the control module(s) 120B cause the UTM application label to be advertised to the next upstream LSR on the path (to one of the core network element(s) 125). In one embodiment, LDP is used to advertise and signal the application label. Thus, by way of a specific example, an LDP control module of the edge network element 105B transmits an LDP label mapping message that includes a FEC TLV that specifies the FEC component of the label mapping (the FEC corresponds with the CE3 network element 174) and a label TLV that specifies the label component of the label mapping. In another embodiment BGP is used to carry the application label.
The application label advertisement traverses through the core network element(s) 125 and will be received by the edge network element 105A. The core network element(s) 125 forward the application label advertisement without installing a label mapping for the application label (if the core network element 125 is a PHP network element, it installs the label mapping for the application label). In one embodiment, the forwarding is performed as a result of the U and F bits of the application label advertisement being set.
At operation 6, the control module(s) 120A install the UTM application label in one or more of its forwarding structures (e.g., in its FEC to NHLFE (FTN) structure). The control module(s) 120A determine that the application label is for the UTM application 110A based on the type of label and the message format. Since the edge network element 105A knows the tunneling model type of the LSP, it can map the application with the appropriate LSP. At operation 7, the control module(s) 120A associate the UTM application label with the LDP LSP 130. By way of a specific example, the control module(s) 120A configures its forwarding structure(s) such that upon receiving a packet from the CE1 network element 170 that is destined to the CE3 network element 174, the UTM application label is placed on the label stack and the UTM tunnel label is stacked over the application label. For example, the next hop of the NHLFE entry for the UTM application label points to the NHLFE entry for the UTM tunnel label.
As previously described, the edge network elements 105A-B support multiple applications. The operations 8-14 are similar to operations 1-7 described above. At operation 8, the control module(s) 120B installs a tunnel label egress2 for the pipe tunneling model application 115B in one or more of its forwarding structures. For example, the control module(s) 120B installs the tunnel label egress2 in its Incoming Label Map (ILM).
At operation 9, the control module(s) 120B cause a label mapping message with the tunnel label for the uniform tunneling model application to be transmitted to the next upstream LSR on the path (one of the core network element(s) 125). The label mapping message includes a mapping of the tunnel label egress2 with a FEC of the egress network element 105B. In one embodiment, the FEC is associated with the pipe tunneling model application 115B (a separate FEC is associated with the uniform tunneling model application 110B), while in other embodiments the same FEC is associated with the uniform tunneling model application 110B and the pipe tunneling model application 115B. The label mapping message also includes an indication that the pipe tunneling model is to be applied for this LSP. By way of a specific example, an LDP control module advertises an LDP label mapping message that includes a FEC TLV that specifies the FEC component of the label mapping, a label TLV that specifies the label component of the label mapping, and a tunnel model TLV that specifies the tunneling model applicable for the resulting LSP. Since LDP typically follows the shortest path as determined by an Interior Gateway Protocol (IGP), the LDP label mapping message that includes the tunnel model TLV is transmitted to the next hop as indicated by IGP.
The tunnel label advertisement traverses through the core network element(s) 125 and will be received by the edge network element 105A. Each of the core network element(s) 125 allocates and transmits their own label for the FEC and installs an appropriate label forwarding entry (e.g., in its ILM). The core network element(s) 125, however, propagate the same tunneling model indication (e.g., the same TLV) as transmitted by the edge network element 105B. Thus, the edge network element 105A receives a label mapping message from an upstream core network element 125 that includes a label allocated by that core network element for the FEC and also includes the indication of the tunneling model type applicable for that LSP (e.g., a tunnel model TLV), which in this case indicates that the pipe tunneling model should be applied for this LSP.
In one embodiment, the tunnel label egress2 is a NULL label that is used to establish PHP mode in the penultimate hop. PHP may be used if the pipe tunneling model application 115B is of the short-pipe variant. The one of the core network element(s) 125 that is the penultimate hop (who receives the NULL label) also stores an indication of the tunneling model type applicable for that LSP such that upon receiving a labeled packet for that LSP it will pop the outer label and apply the tunneling model processing applicable for that LSP.
At operation 10, the control module(s) 120A install the tunnel label egress2 in one or more of its forwarding structures (e.g., in its NHLFE structure). The control module(s) 120A also stores an indication of the tunneling model type for the LSP corresponding to the tunnel label (which in this case is a pipe tunneling model). Thus, the LSP tunneling model type for the advertised LSP is signaled by the egress network element and is now known by the ingress network element (the edge network element 105A). The ingress network element can now use this information to map an application that requires a specific tunneling model type with an LSP that supports that tunneling model type.
In addition to the tunnel label, the edge network element 105B also advertises an application label. For example, the edge network element 105B advertises an application label to reach CE4 network element 176. Thus, at operation 11, the control module(s) 120B install a PTM application label (e.g., to reach CE4) in one or more of its forwarding structures. At operation 12, the control module(s) 120B cause the PTM application label to be advertised to the next upstream LSR on the path (to one of the core network element(s) 125). In one embodiment, LDP is used to advertise and signal the application label. Thus, by way of a specific example, an LDP control module of the edge network element 105B transmits an LDP label mapping message that includes a FEC TLV that specifies the FEC component of the label mapping (the FEC corresponds with the CE4 network element 176) and a label TLV that specifies the label component of the label mapping. In another embodiment BGP is used to carry the application label. The application label advertisement traverses through the core network element(s) 125 and will be received by the edge network element 105A.
At operation 13, the control module(s) 120A install the PTM application label in one or more of its forwarding structures (e.g., in its FTN structure). Since the edge network element 105A knows the tunneling model type of the LSP, it can map the application with the appropriate LSP. At operation 14, the control module(s) 120A associate the PTM application label with the LDP LSP 135. By way of a specific example, the control module(s) 120A configures its forwarding structure(s) such that upon receiving a packet from the CE2 network element 172 that is destined to the CE4 network element 176, the PTM application label is placed on the label stack and the PTM tunnel label is stacked over the PTM application label. For example, the next hop of the NHLFE entry for the PTM application label points to the NHLFE entry for the PTM tunnel label.
As illustrated in
Generally, the application configuration layer 270 configures the applications that require particular types of tunneling models. For example, the application control module 215 may include an interface to allow a network administrator (or other user) to configure application settings. The application control module 215 also maps 260 an application that requires a particular tunneling model for its transport LSP with an LSP that is used for that particular tunneling model.
The tunnel configuration layer 272 includes a number of routing protocols including the IGP module 220 and the BGP module 225 (which is optional) and the LDP module 230. In general, the tunnel configuration layer 272 determines the path of the LDP LSPs through the IGP module 220 and performs label exchange procedure through the LDP module 230 and optionally the BGP module 225. The IGP module 220 performs an IGP exchange procedure 254 to exchange routing information with other network elements in the same autonomous system. The LDP module 230 typically uses the shortest path as determined by the IGP module 220 when establishing the LSP. The BGP module 225 exchanges routing information with other network elements using a BGP exchange procedure 252. In one embodiment, the BGP module 225 is used to carry the application labels. The LDP module 230 performs the label exchange procedure 250 when establishing LSPs. The LDP module 230 includes the tunneling model TLV module 232, which generates the tunneling model TLVs that are included in the label mapping messages and processes received tunneling model TLVs.
The IGP module 220, the BGP module 225, and the LDP module 230 install label or route entries into the infrastructure layer 274 of the control plane 210. For example, the IGP module 220, the BGP module 225, and the LDP module 230 send their selected routes or paths to the label/route management module 235. The label/route management module 235, which may manage a main RIB (Routing Information Base) on the control plane selects certain routes and labels from the routes downloaded by the IGP module 220, the BGP module 225, and the LDP module 230 to install 265 into the forwarding structure(s) 240 of the data plane 205. By way of example, the forwarding structure(s) 240 may include an IP forwarding information base (FIB), a NHLFE structure, a FTN structure, and an ILM structure. If the edge network element 105 acts only as an ingress network element in an MPLS network (not also an egress network element in an MPLS network), the forwarding structure(s) 240 may not include an ILM structure.
Incoming data traffic 280 is received at the data plane 205. In one embodiment, the data plane includes a set of one or more forwarding cards that each include a memory (e.g., to store the forwarding structure(s) 240) and a processing entity to forward the traffic. By way of example, based on the incoming data traffic 280 the destination is determined (e.g., through use of the forwarding structure(s) 240) and sent towards the destination as outgoing data traffic 282. By way of a specific example, if the edge network element 105 is acting as an ingress network element in an MPLS network, the incoming data traffic 280 may be unlabeled traffic and the outgoing data traffic 282 may be labeled traffic.
At operation 310, the egress edge network element 105, via the application control module 215, receives configuration of a particular type of application in an MPLS network that requires a specific type of tunneling model for the transport LSP that carries traffic between an ingress edge network element and the egress edge network element. By way of example, the configuration can be for an application that requires a uniform tunneling model in its transport LSP (e.g., BGP free core) or a pipe tunneling model (either regular pipe or short-pipe) in its transport LSP (e.g., L2VPN or other pseudowire application). Configuring the application may include configuring the connections to the edge network element 105. For example, in the case of an L2VPN application, the configuration may include configuring a pseudowire for the core facing side of the application and an attachment circuit for the customer facing side of the application.
The configuration may also include the FEC that is to be associated with each different transport LSP for the application. The FEC will be mapped to the label that is allocated for the transport LSP. In one embodiment a separate FEC is used for each different transport LSP, while in another embodiment a single FEC is used for multiple different transport LSPs (each having a different label). Sharing a single FEC among multiple different transport LSPs reduces the burden of configuring multiple FECs.
Flow moves from operation 310 to operation 315 where the egress edge network element 105, via the LDP module 230, allocates a label for the transport LSP and causes the installation of one or more forwarding entries for the transport LSP. For example, the application control module 215 triggers the LDP module 230 to allocate a label for the transport LSP of the application and indicates to the LDP module 230 the type of tunneling model applicable to that transport LSP. The LDP module 230 (or alternatively the application control module 215) may also cause an indication of the tunneling model type that is applicable for that transport LSP to be installed in the label/route management module which in turn installs it into the forwarding structure(s) 240. The LDP module 230 also generates an indication of the tunneling model type that is applicable for the transport LSP.
Flow then moves to operation 320 where the egress edge network element 105, via the LDP module 230, transmits a label mapping message for the transport LSP. The label mapping message includes a mapping of the allocated label and the FEC and also includes the indication of the tunneling model type that is applicable for the transport LSP. By way of a specific example, the label mapping message includes a FEC TLV that specifies the FEC component of the label mapping, a label TLV that specifies the label component of the label mapping, and a tunnel model TLV that specifies the tunneling model applicable for the resulting LSP.
Flow then moves to operation 325 where the egress edge network element 105, via the LDP module 230 or the BGP module 230, allocates a label for the application and causes the installation of one or more forwarding entries for the application that map the label and a FEC (the FEC corresponds with an external network element (e.g., the CE3 network element 174)). The application label mapping is used by the egress edge network element 105 to forward the packet out the appropriate egress interface. For example, although
Flow then moves to operation 330 where the egress edge network element 105 advertises the application label mapping. In one embodiment the egress edge network element 105 uses the LDP module 230 to transmit a label mapping message that includes maps the application label with a FEC TLV that specifies the FEC component of the label mapping and a label TLV that specifies the label component of the label mapping. In another embodiment, the BGP module 225 is used to carry the label mapping.
At operation 510, the ingress edge network element 105, via the application control module 215, receives configuration of a particular type of application in an MPLS network that requires a specific type of tunneling model for the transport LSP that carries traffic between the ingress edge network element and an egress edge network element. By way of example, the configuration can be for an application that requires a uniform tunneling model in its transport LSP (e.g., BGP free core) or a pipe tunneling model (either regular pipe or short-pipe) in its transport LSP (e.g., L2VPN or other pseudowire application). Configuring the application may include configuring the connections to the edge network element 105. For example, in the case of an L2VPN application, the configuration may include configuring a pseudowire for the core facing side of the application and an attachment circuit for the customer facing side of the application.
Flow moves from operation 510 to operation 515 where the ingress edge network element 105 receives a label mapping message for an LSP between the ingress edge network element and an egress edge network element. The label mapping message includes an indication of the specific tunneling model type that is supported on that LSP. By way of a specific example, the LDP module 230 receives and processes the label mapping message, which includes a tunnel label TLV that specifies the tunneling model applicable for that LSP. Flow then moves to operation 520.
At operation 520, the ingress edge network element 105 installs one or more forwarding entries according to the label mapping received in operation 515. For example, the LDP module 230 causes an entry to be installed in a NHLFE forwarding structure of the data plane 205. The LDP module also stores or provides to the application control module 215 an indication of the tunneling model type for the LSP corresponding to the label mapping received. It should be understood that the operations of
At operation 610, the ingress edge network element 105 receives a label mapping for an application in the MPLS network. This label mapping may be received by the LDP module 230 (if the label mapping message is transmitted using LDP) or by the BGP module (if the label mapping is carried by BGP). By way of a specific example, the label mapping for the application is received as a result of a targeted LDP session established between the egress edge network element and the ingress edge network element. Flow then moves to operation 615.
Since there may be multiple transport LSPs established, at operation 615, the ingress edge network element 105 selects a transport LSP that meets the tunneling model requirements of the application. For example, the application control module 215 accesses the stored indication of the tunneling model for the LSPs (the indication may be stored in an entry for the outgoing transport label of the transport LSP in a structure managed by the label/route management module 235) to determine which transport LSP meets the tunneling model requirements of the application.
If no transport LSP exists that meets the requirements of the application, then alternative action is taken. For example, in one embodiment the tunnel configuration is independent of the applications configured and the ingress network element establishes an LDP session with the egress etwork element to trigger the label exchange. In another embodiment, if the LDP LSP tunnel is to be established as result of the configuration of the application, then the ingress network element triggers a new label binding for that tunnel with the egress network element. Flow moves from operation 615 to operation 620.
At operation 620, the ingress edge network element 105 installs an association between the label mapping for the application and the tunnel mapping for the transport LSP that meets the tunneling model requirements of the application. For example, the application control module 215 causes the application label mapping and the selected LSP tunnel mapping to be associated (e.g., in the forwarding structure(s) 240) such that upon receiving a packet that is destined to the FEC associated with the application label mapping, the application label is placed on the label stack and the selected tunnel label is stacked over the application label.
Flow then moves to operation 630 where the ingress edge network element 105 receives a data packet for the application. For example, the data plane 205 receives a data packet at an interface or access circuit associated with a particular application. Next, based on the destination address of the packet, the ingress edge network element 105 labels the packet with the appropriate application label and the appropriate transport label at operation 630 (e.g., using the entries installed in the forwarding structure(s) 240). The ingress edge network element 105 then transmits the labeled packet to its next hop at operation 635.
The LDP module 730 performs the label exchange procedure 750 when establishing paths for LSPs. For example, the LDP module 730 receives an LDP label mapping message from a downstream LSR for a particular FEC. The LDP module 730 allocates and advertises its own label for the FEC to an upstream LSR. The LDP module 230 includes the tunneling model TLV module 232 to process tunneling model TLVs received from downstream LSRs. The core network element 125 may operate only in transit mode or may, in some circumstances, operate in PHP mode. If operating only as a transit network element (not performing PHP), the core network element 125 allocates and advertises a label for the FEC and propagates the same tunneling model indication (e.g., the same tunnel model TLV) received from their downstream LSR. If operating in PHP mode, the core network element 125 installs one or more forwarding entries for the transport LSP such that the tunnel label will be popped and the tunneling model that is applicable for the LSP will be applied.
The IGP module 720, the BGP module 725, and the LDP module 730 install label or route entries into the infrastructure layer 774 of the control plane 710. For example, the IGP module 720, the BGP module 725, and the LDP module 730 send their selected routes or paths to the label/route management module 735. The label/route management module 735, which may manage a main RIB (Routing Information Base) on the control plane selects certain routes and labels from the routes downloaded by the IGP module 720, the BGP module 725, and the LDP module 730 to install 765 into the forwarding structure(s) 740 of the data plane 705. By way of example, the forwarding structure(s) 740 may include an IP forwarding information base (FIB), a NHLFE structure and an ILM structure.
Incoming data traffic 780 is received at the data plane 705. The incoming data traffic 780 is typically labeled packets that each include at least a tunnel label stacked over an application label. In one embodiment, the data plane 705 includes a set of one or more forwarding cards that each include a memory (e.g., to store the forwarding structure(s) 740) and a processing entity to forward the traffic. If the core network element 125 is not operating in PHP mode, then based on the incoming label, the core network element 125 swaps the outer label according to the forwarding structure(s) 740 and forwards the labeled packet to its next hop. If the core network element 125 is operating in PHP mode, then based on the incoming label, the core network element 125 pops the outer label and applies the applicable tunneling model processing for that LSP (e.g., as indicated in the forwarding structure(s) 740) and sends the packet (the packet will still have the application label) to its next hop.
At operation 810, the core network element 125 receives a label mapping message for a transport LSP from a downstream LSR. The downstream LSR may be another core network element or may be the egress edge network element. The label mapping message includes a label allocated by the downstream LSR mapped to a FEC, and further includes an indication of the specific type of tunneling model that is applicable to the transport LSP. By way of a specific example, the LDP module 730 receives a label mapping message that includes a FEC TLV that specifies the FEC component of the label mapping, a label TLV that specifies the label component of the label mapping, and a tunnel model TLV that specifies the applicable tunneling model. Flow then moves to operation 815.
At operation 815, the core network element 125 determines whether the label in the label mapping message is an implicit NULL label. If the label is an implicit NULL label, then the core network element 125 is to perform penultimate hop-popping. If the label is an implicit NULL label, then flow moves to operation 820, otherwise flow moves to operation 830.
At operation 820, the core network element 125 allocates a label for the transport LSP. Flow then moves to operation 825 and the core network element 125 installs one or more forwarding entries (e.g., in its ILM) including an indication of the tunneling model type of the transport LSP. The one or more forwarding entries are configured such that upon receiving a labeled packet with the allocated label from an upstream LSR, the core network element 125 pops the allocated label, applies the applicable tunneling model processing, and forwards the packet to its next hop. Next, at operation 840, the core network element 125 transmits a label mapping message for the transport LSP that includes the label mapping between its allocated label and the FEC and further includes the indication of the specific type of tunneling model that is applicable for the LSP.
At operation 830 (the core network element 125 is not operating in PHP mode), the core network element 125 allocates a label for the transport LSP. Flow then moves to operation 835 and the core network element 126 installs one or more forwarding entries (e.g., in its ILM). The one or more forwarding entries are configured such that upon receiving a labeled packet with the allocated label from an upstream LSR, the core network element 125 swaps the allocated label with the label included in the label mapping message received in operation 810 and forwarded to its next hop. Next, at operation 840, the core network element 125 transmits a label mapping message for the transport LSP that includes the label mapping between its allocated label and the FEC and further includes the indication of the specific type of tunneling model that is applicable for the LSP.
At operation 910, the core network element 125 receives a labeled data packet. The core network element 125 uses its forwarding structure(s) 740 when processing the labeled data packet based on the outer label of the packet. Next, at operation 915, if PHP is to be performed (e.g., the forwarding structure(s) 740 indicate a label pop instead of a label swap), then flow moves to operation 920, otherwise flow moves to operation 930. At operation 930, the core network element 125 swaps the outer label of the packet according to its forwarding structure(s) 740 and flow moves to operation 940 where the labeled packet is transmitted to its next hop.
At operation 920, the core network element 125 applies the tunneling model processing applicable that is associated with the outer label. Next, at operation 925, the core network element 125 pops the outer label. It should also be understood that the tunneling model processing may also be at least partially performed after the outer label is popped from the label stack. Flow then moves to operation 940 where the labeled packet is transmitted to its next hop.
While embodiments have been described herein with respect to signaling an LSP tunneling model that can be used by a particular application, in some embodiments the tunneling model signaling is used for particular types of processing (e.g., DiffServ processing, TTL processing). For example, DiffServ processing may be configured to use a particular type of tunneling model and TTL processing may be configured to use a different type of tunneling model.
As described herein, operations may be performed by specific configurations of hardware such as application specific integrated circuits (ASICs) or be stored in memory embodied in a non-transitory machine readable medium. Thus, the techniques shown in the figures can be implemented using code and data stored and executed on one or more electronic devices (e.g., a network element). Such electronic devices store and communicate (internally and/or with other electronic devices over a network) code and data using machine-readable media, such as non-transitory machine-readable storage media (e.g., magnetic disks; optical disks; random access memory; read only memory; flash memory devices; phase-change memory) and transitory machine-readable communication media (e.g., electrical, optical, acoustical or other form of propagated signals—such as carrier waves, infrared signals, digital signals). In addition, such electronic devices typically include a set of one or more processors coupled to one or more other components, such as one or more storage devices (non-transitory machine-readable storage media), user input/output devices (e.g., a keyboard, a touchscreen, and/or a display), and network connections. The coupling of the set of processors and other components is typically through one or more busses and bridges (also termed as bus controllers). Thus, the storage device of a given electronic device typically stores code and/or data for execution on the set of one or more processors of that electronic device. Of course, one or more parts of an embodiment of the invention may be implemented using different combinations of software, firmware, and/or hardware.
While the flow diagrams in the figures show a particular order of operations performed by certain embodiments of the invention, it should be understood that such order is exemplary (e.g., alternative embodiments may perform the operations in a different order, combine certain operations, overlap certain operations, etc.).
While the invention has been described in terms of several embodiments, those skilled in the art will recognize that the invention is not limited to the embodiments described, can be practiced with modification and alteration within the spirit and scope of the appended claims. The description is thus to be regarded as illustrative instead of limiting.