Tech-invite  3GPPspecsRELsGlossariesSIPRFCs
8887868584838281807978777675747372717069686766656463626160595857565554535251504948474645444342414039383736353433323130292827262524232221201918171615141312111009080706050403020100

in Index   Prev   Next

RFC 8077

Pseudowire Setup and Maintenance Using the Label Distribution Protocol (LDP)

Pages: 35
Internet Standard: 84
Errata
Obsoletes:  44476723
Part 1 of 2 – Pages 1 to 17
None   None   Next

Top   ToC   RFC8077 - Page 1
Internet Engineering Task Force (IETF)                   L. Martini, Ed.
Request for Comments: 8077                                 G. Heron, Ed.
STD: 84                                                            Cisco
Obsoletes: 4447, 6723                                      February 2017
Category: Standards Track
ISSN: 2070-1721


                    Pseudowire Setup and Maintenance
              Using the Label Distribution Protocol (LDP)

Abstract

Layer 2 services (such as Frame Relay, Asynchronous Transfer Mode, and Ethernet) can be emulated over an MPLS backbone by encapsulating the Layer 2 Protocol Data Units (PDUs) and then transmitting them over pseudowires (PWs). It is also possible to use pseudowires to provide low-rate Time-Division Multiplexed and Synchronous Optical NETworking circuit emulation over an MPLS-enabled network. This document specifies a protocol for establishing and maintaining the pseudowires, using extensions to the Label Distribution Protocol (LDP). Procedures for encapsulating Layer 2 PDUs are specified in other documents. This document is a rewrite of RFC 4447 for publication as an Internet Standard. Status of This Memo This is an Internet Standards Track document. This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841. Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc8077.
Top   ToC   RFC8077 - Page 2
Copyright Notice

   Copyright (c) 2017 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008.  The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.
Top   ToC   RFC8077 - Page 3

Table of Contents

1. Introduction ....................................................4 2. Changes from RFC 4447 ...........................................6 3. Specification of Requirements ...................................6 4. The Pseudowire Label ............................................7 5. Details Specific to Particular Emulated Services ................9 5.1. IP Layer 2 Transport .......................................9 6. LDP .............................................................9 6.1. The PWid FEC Element .......................................9 6.2. The Generalized PWid FEC Element ..........................11 6.2.1. Attachment Identifiers .............................12 6.2.2. Encoding the Generalized PWid FEC Element ..........14 6.2.2.1. PW Interface Parameters TLV ...............15 6.2.2.2. PW Group ID TLV ...........................15 6.2.3. Signaling Procedures ...............................16 6.3. Signaling of Pseudowire Status ............................17 6.3.1. Use of Label Mapping Messages ......................17 6.3.2. Signaling PW Status ................................18 6.3.3. Pseudowire Status Negotiation Procedures ...........19 6.4. Interface Parameter Sub-TLV ...............................20 6.5. LDP Label Withdrawal Procedures ...........................21 7. Control Word ...................................................22 7.1. PW Types for Which the Control Word Is REQUIRED ...........22 7.2. PW Types for Which the Control Word Is NOT Mandatory ......22 7.3. Control-Word Renegotiation by Label Request Message .......24 7.4. Sequencing Considerations .................................25 7.4.1. Label Advertisements ...............................25 7.4.2. Label Release ......................................25 8. IANA Considerations ............................................26 8.1. LDP TLV TYPE ..............................................26 8.2. LDP Status Codes ..........................................26 8.3. FEC Type Name Space .......................................26 9. Security Considerations ........................................26 9.1. Data-Plane Security .......................................27 9.2. Control-Plane Security ....................................28 10. Interoperability and Deployment ...............................29 11. References ....................................................29 11.1. Normative References .....................................29 11.2. Informative References ...................................30 Acknowledgments ...................................................31 Contributors ......................................................32 Authors' Addresses ................................................35
Top   ToC   RFC8077 - Page 4

1. Introduction

[RFC4619], [RFC4717], [RFC4618], and [RFC4448] explain how to encapsulate a Layer 2 Protocol Data Unit (PDU) for transmission over an MPLS-enabled network. Those documents specify that a "pseudowire header", consisting of a demultiplexer field, will be prepended to the encapsulated PDU. The pseudowire demultiplexer field is prepended before transmitting a packet on a pseudowire. When the packet arrives at the remote endpoint of the pseudowire, the demultiplexer is what enables the receiver to identify the particular pseudowire on which the packet has arrived. To transmit the packet from one pseudowire endpoint to another, the packet may need to travel through a "Packet Switched Network (PSN) tunnel"; this will require that an additional header be prepended to the packet. [RFC4842] and [RFC4553] specify two methods for transporting time- division multiplexing (TDM) digital signals (TDM circuit emulation) over a packet-oriented MPLS-enabled network. The transmission system for circuit-oriented TDM signals is the Synchronous Optical Network (SONET) [ANSI] / Synchronous Digital Hierarchy (SDH) [ITUG]. To support TDM traffic, which includes voice, data, and private leased- line service, the pseudowires must emulate the circuit characteristics of SONET/SDH payloads. The TDM signals and payloads are encapsulated for transmission over pseudowires. A pseudowire demultiplexer and a PSN tunnel header are prepended to this encapsulation. [RFC4553] describes methods for transporting low-rate time-division multiplexing (TDM) digital signals (TDM circuit emulation) over PSNs, while [RFC4842] similarly describes transport of high-rate TDM (SONET/SDH). To support TDM traffic, the pseudowires must emulate the circuit characteristics of the original T1, E1, T3, E3, SONET, or SDH signals. [RFC4553] does this by encapsulating an arbitrary but constant amount of the TDM data in each packet, and the other methods encapsulate TDM structures. In this document, we specify the use of the MPLS Label Distribution Protocol (LDP) [RFC5036] as a protocol for setting up and maintaining the pseudowires. In particular, we define new TLVs, Forwarding Equivalence Class (FEC) elements, parameters, and codes for LDP, which enable LDP to identify pseudowires and to signal attributes of pseudowires. We specify how a pseudowire endpoint uses these TLVs in LDP to bind a demultiplexer field value to a pseudowire and how it informs the remote endpoint of the binding. We also specify procedures for reporting pseudowire status changes, for passing additional information about the pseudowire as needed, and for releasing the bindings. These procedures are intended to be independent of the underlying version of IP used for LDP signaling.
Top   ToC   RFC8077 - Page 5
   In the protocol specified herein, the pseudowire demultiplexer field
   is an MPLS label.  Thus, the packets that are transmitted from one
   end of the pseudowire to the other are MPLS packets, which must be
   transmitted through an MPLS tunnel.  However, if the pseudowire
   endpoints are immediately adjacent and penultimate hop popping
   behavior is in use, the MPLS tunnel may not be necessary.  Any sort
   of PSN tunnel can be used, as long as it is possible to transmit MPLS
   packets through it.  The PSN tunnel can itself be an MPLS LSP, or any
   other sort of tunnel that can carry MPLS packets.  Procedures for
   setting up and maintaining the MPLS tunnels are outside the scope of
   this document.

   This document deals only with the setup and maintenance of point-to-
   point pseudowires.  Neither point-to-multipoint nor multipoint-to-
   point pseudowires are discussed.

   QoS-related issues are not discussed in this document.

   The following two figures describe the reference models that are
   derived from [RFC3985] to support the PW emulated services.

         |<-------------- Emulated Service ---------------->|
         |                                                  |
         |          |<------- Pseudowire ------->|          |
         |          |                            |          |
         |Attachment|    |<-- PSN Tunnel -->|    |Attachment|
         |  Circuit V    V                  V    V  Circuit |
         V   (AC)   +----+                  +----+   (AC)   V
   +-----+    |     | PE1|==================| PE2|     |    +-----+
   |     |----------|............PW1.............|----------|     |
   | CE1 |    |     |    |                  |    |     |    | CE2 |
   |     |----------|............PW2.............|----------|     |
   +-----+  ^ |     |    |==================|    |     | ^  +-----+
         ^  |       +----+                  +----+     | |  ^
         |  |   Provider Edge 1         Provider Edge 2  |  |
         |  |                                            |  |
   Customer |                                            | Customer
   Edge 1   |                                            | Edge 2
            |                                            |
      native service                               native service

                     Figure 1: PWE3 Reference Model
Top   ToC   RFC8077 - Page 6
    +-----------------+                           +-----------------+
    |Emulated Service |                           |Emulated Service |
    |(e.g., TDM, ATM) |<==== Emulated Service ===>|(e.g., TDM, ATM) |
    +-----------------+                           +-----------------+
    |    Payload      |                           |    Payload      |
    |  Encapsulation  |<====== Pseudowire =======>|  Encapsulation  |
    +-----------------+                           +-----------------+
    |PW Demultiplexer |                           |PW Demultiplexer |
    |   PSN Tunnel,   |<======= PSN Tunnel ======>|  PSN Tunnel,    |
    | PSN & Physical  |                           | PSN & Physical  |
    |     Layers      |                           |    Layers       |
    +-------+---------+        ___________        +---------+-------+
            |                /             \                 |
            +===============/     PSN       \================+
                            \               /
                             \_____________/

              Figure 2: PWE3 Protocol Stack Reference Model

   For the purpose of this document, PE1 (Provider Edge 1) will be
   defined as the ingress router, and PE2 as the egress router.  A Layer
   2 PDU will be received at PE1, encapsulated at PE1, transported and
   decapsulated at PE2, and transmitted out of PE2.

2. Changes from RFC 4447

The changes in this document are mostly minor fixes to spelling and grammar, or clarifications to the text, which were either noted as errata to [RFC4447] or found by the editors. Additionally, Section 7.3 ("Control-Word Renegotiation by Label Request Message") has been added, obsoleting [RFC6723]. The diagram of C-bit handling procedures has also been removed. A note has been added in Section 6.3.2 to clarify that the C-bit is part of the FEC. A reference has also been added to [RFC7358] to indicate the use of downstream unsolicited mode to distribute PW FEC label bindings, independent of the negotiated label advertisement mode of the LDP session.

3. Specification of Requirements

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
Top   ToC   RFC8077 - Page 7

4. The Pseudowire Label

Suppose that it is desired to transport Layer 2 PDUs from ingress LSR PE1 to egress LSR PE2, across an intervening MPLS-enabled network. We assume that there is an MPLS tunnel from PE1 to PE2. That is, we assume that PE1 can cause a packet to be delivered to PE2 by encapsulating the packet in an "MPLS tunnel header" and sending the result to one of its adjacencies. The MPLS tunnel is an MPLS Label Switched Path (LSP); thus, putting on an MPLS tunnel encapsulation is a matter of pushing on an MPLS label. We presuppose that a large number of pseudowires can be carried through a single MPLS tunnel. Thus, it is never necessary to maintain state in the network core for individual pseudowires. We do not presuppose that the MPLS tunnels are point to point; although the pseudowires are point to point, the MPLS tunnels may be multipoint to point. We do not presuppose that PE2 will even be able to determine the MPLS tunnel through which a received packet was transmitted. (For example, if the MPLS tunnel is an LSP and penultimate hop popping is used, when the packet arrives at PE2, it will contain no information identifying the tunnel.) When PE2 receives a packet over a pseudowire, it must be able to determine that the packet was in fact received over a pseudowire, and it must be able to associate that packet with a particular pseudowire. PE2 is able to do this by examining the MPLS label that serves as the pseudowire demultiplexer field shown in Figure 2. Call this label the "PW label". When PE1 sends a Layer 2 PDU to PE2, it creates an MPLS packet by adding the PW label to the packet, thus creating the first entry of the label stack. If the PSN tunnel is an MPLS LSP, the PE1 pushes another label (the tunnel label) onto the packet as the second entry of the label stack. The PW label is not visible again until the MPLS packet reaches PE2. PE2's disposition of the packet is based on the PW label. If the payload of the MPLS packet is, for example, an ATM Adaptation Layer 5 (AAL5) PDU, the PW label will generally correspond to a particular ATM Virtual Circuit (VC) at PE2. That is, PE2 needs to be able to infer from the PW label the outgoing interface and the VPI/VCI (Virtual Path Identifier / Virtual Circuit Identifier) value for the AAL5 PDU. If the payload is a Frame Relay PDU, then PE2 needs to be able to infer from the PW label the outgoing interface and the Data Link Connection Identifier (DLCI) value. If the payload is an Ethernet frame, then PE2 needs to be able to infer from the PW label the outgoing interface, and perhaps the VLAN identifier. This process is unidirectional and will be repeated independently for
Top   ToC   RFC8077 - Page 8
   bidirectional operation.  When using the PWid FEC Element, it is
   REQUIRED that the same PW ID and PW type be assigned for a given
   circuit in both directions.  The Group ID (see below) MUST NOT be
   required to match in both directions.  The transported frame MAY be
   modified when it reaches the egress router.  If the header of the
   transported Layer 2 frame is modified, this MUST be done at the
   egress LSR only.  Note that the PW label must always be at the bottom
   of the packet's label stack, and labels MUST be allocated from the
   per-platform label space.

   This document does not specify a method for distributing the MPLS
   tunnel label or any other labels that may appear above the PW label
   on the stack.  Any acceptable method of MPLS label distribution will
   do.  This document specifies a protocol for assigning and
   distributing the PW label.  This protocol is LDP, extended as
   specified in the remainder of this document.  An LDP session must be
   set up between the pseudowire endpoints.  LDP MUST exchange PW FEC
   label bindings in downstream unsolicited mode, independent of the
   negotiated label advertisement mode of the LDP session according to
   the specifications in [RFC7358].  LDP's "liberal label retention"
   mode SHOULD be used.  However, all the LDP procedures that are
   specified in [RFC5036] and that are also applicable to this protocol
   specification MUST be implemented.

   This document requires that a receiving LSR MUST respond to a Label
   Request message with either a Label Mapping for the requested label
   or a Notification message that indicates why it cannot satisfy the
   request.  These procedures are specified in [RFC5036], Sections 3.5.7
   ("Label Mapping Message") and 3.5.8 ("Label Request Message").  Note
   that sending these responses is a stricter requirement than is
   specified in [RFC5036], but these response messages are REQUIRED to
   ensure correct operation of this protocol.

   In addition to the protocol specified herein, static assignment of PW
   labels may be used, and implementations of this protocol SHOULD
   provide support for static assignment.  PW encapsulation is always
   symmetrical in both directions of traffic along a specific PW,
   whether or not the PW uses an LDP control plane.

   This document specifies all the procedures necessary to set up and
   maintain the pseudowires needed to support "unswitched" point-to-
   point services, where each endpoint of the pseudowire is provisioned
   with the identity of the other endpoint.  There are also protocol
   mechanisms specified herein that can be used to support switched
   services and other provisioning models.  However, the use of the
   protocol mechanisms to support those other models and services is not
   described in this document.
Top   ToC   RFC8077 - Page 9

5. Details Specific to Particular Emulated Services

5.1. IP Layer 2 Transport

This mode carries IP packets over a pseudowire. The encapsulation used is according to [RFC3032]. The PW control word MAY be inserted between the MPLS label stack and the IP payload. The encapsulation of the IP packets for forwarding on the Attachment Circuit is implementation specific, is part of the native service processing (NSP) function [RFC3985], and is outside the scope of this document.

6. LDP

The PW label bindings are distributed using the LDP downstream unsolicited mode described in [RFC5036]. The PEs will establish an LDP session using the Extended Discovery mechanism described in Sections 2.4.2 and 2.5 of [RFC5036]. An LDP Label Mapping message contains a FEC TLV, a Label TLV, and zero or more optional parameter TLVs. The FEC TLV is used to indicate the meaning of the label. In the current context, the FEC TLV would be used to identify the particular pseudowire that a particular label is bound to. In this specification, we define two new FEC TLVs to be used for identifying pseudowires. When setting up a particular pseudowire, only one of these FEC TLVs is used. The one to be used will depend on the particular service being emulated and on the particular provisioning model being supported. LDP allows each FEC TLV to consist of a set of FEC elements. For setting up and maintaining pseudowires, however, each FEC TLV MUST contain exactly one FEC element. The LDP base specification has several kinds of label TLVs, including the Generic Label TLV, as specified in Section 3.4.2.1 of [RFC5036]. For setting up and maintaining pseudowires, the Generic Label TLV MUST be used.

6.1. The PWid FEC Element

The PWid FEC Element may be used whenever both pseudowire endpoints have been provisioned with the same 32-bit identifier for the pseudowire. For this purpose, a new type of FEC element is defined. The FEC element type is 0x80 and is defined as follows:
Top   ToC   RFC8077 - Page 10
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  PWid (0x80)  |C|         PW type             |PW info length |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Group ID                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           PW ID                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Interface Parameter Sub-TLV                    |
   |                              "                                |
   |                              "                                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   -  Control word bit (C)

      The C-bit is used to flag the presence of a control word as
      follows:

         C = 1 control word present on this PW.
         C = 0 no control word present on this PW.

      Please see Section 7 ("Control Word") for further explanation.

   -  PW type

      A 15-bit quantity containing a value that represents the type of
      PW.  Assigned Values are specified in "IANA Allocations for
      Pseudowire Edge to Edge Emulation (PWE3)" [RFC4446].

   -  PW info length

      Length of the PW ID field and the Interface Parameter Sub-TLV
      field in octets.  If this value is 0, then it references all PWs
      using the specified Group ID, and there is no PW ID present, nor
      are there any Interface Parameter Sub-TLVs.

   -  Group ID

      An arbitrary 32-bit value that represents a group of PWs that is
      used to create groups in the PW space.  The Group ID is intended
      to be used as a port index or a virtual tunnel index.  To simplify
      configuration, a particular PW Group ID at ingress could be part
      of a Group ID assigned to the virtual tunnel for transport to the
      egress router.  The Group ID is very useful for sending wildcard
      label withdrawals or PW wildcard status Notification messages to
      remote PEs upon physical port failure.
Top   ToC   RFC8077 - Page 11
   -  PW ID

      A non-zero, 32-bit connection ID that together with the PW type
      identifies a particular PW.  Note that the PW ID and the PW type
      MUST be the same at both endpoints.

   -  Interface Parameter Sub-TLV

      This variable length TLV is used to provide interface-specific
      parameters, such as Attachment Circuit MTU.

      Note that as the Interface Parameter Sub-TLV is part of the FEC,
      the rules of LDP make it impossible to change the interface
      parameters once the pseudowire has been set up.  Thus, the
      interface parameters field must not be used to pass information,
      such as status information, that may change during the life of the
      pseudowire.  Optional parameter TLVs should be used for that
      purpose.

   Using the PWid FEC, each of the two pseudowire endpoints
   independently initiates the setup of a unidirectional LSP.  An
   outgoing LSP and an incoming LSP are bound together into a single
   pseudowire if they have the same PW ID and PW type.

6.2. The Generalized PWid FEC Element

The PWid FEC Element can be used if a unique 32-bit value has been assigned to the PW and if each endpoint has been provisioned with that value. The Generalized PWid FEC Element requires that the PW endpoints be uniquely identified; the PW itself is identified as a pair of endpoints. In addition, the endpoint identifiers are structured to support applications where the identity of the remote endpoints needs to be auto-discovered rather than statically configured. The "Generalized PWid FEC Element" is FEC type 0x81. The Generalized PWid FEC Element does not contain anything corresponding to the Group ID of the PWid FEC Element. The functionality of the Group ID is provided by a separate optional LDP TLV, the PW Group ID TLV, described in Section 6.2.2.2. The interface parameters field of the PWid FEC Element is also absent; its functionality is replaced by the optional PW Interface Parameters TLV, described in Section 6.2.2.1.
Top   ToC   RFC8077 - Page 12

6.2.1. Attachment Identifiers

As discussed in [RFC3985], a pseudowire can be thought of as connecting two "forwarders". The protocol used to set up a pseudowire must allow the forwarder at one end of a pseudowire to identify the forwarder at the other end. We use the term "Attachment Identifier", or "AI", to refer to the field that the protocol uses to identify the forwarders. In the PWid FEC, the PWid field serves as the AI. In this section, we specify a more general form of AI that is structured and of variable length. Every Forwarder in a PE must be associated with an Attachment Identifier (AI), either through configuration or through some algorithm. The Attachment Identifier must be unique in the context of the PE router in which the Forwarder resides. The combination <PE router IP address, AI> must be globally unique. It is frequently convenient to regard a set of Forwarders as being members of a particular "group", where PWs may only be set up among members of a group. In such cases, it is convenient to identify the Forwarders relative to the group, so that an Attachment Identifier would consist of an Attachment Group Identifier (AGI) plus an Attachment Individual Identifier (AII). An Attachment Group Identifier may be thought of as a VPN-id, or a VLAN identifier, some attribute that is shared by all the Attachment PWs (or pools thereof) that are allowed to be connected. The details of how to construct the AGI and AII fields identifying the pseudowire endpoints are outside the scope of this specification. Different pseudowire applications, and different provisioning models, will require different sorts of AGI and AII fields. The specification of each such application and/or model must include the rules for constructing the AGI and AII fields. As previously discussed, a (bidirectional) pseudowire consists of a pair of unidirectional LSPs, one in each direction. If a particular pseudowire connects PE1 with PE2, the PW direction from PE1 to PE2 can be identified as: <PE1, <AGI, AII1>, PE2, <AGI, AII2>>, and the PW direction from PE2 to PE1 can be identified by: <PE2, <AGI, AII2>, PE1, <AGI, AII1>>.
Top   ToC   RFC8077 - Page 13
   Note that the AGI must be the same at both endpoints, but the AII
   will in general be different at each endpoint.  Thus, from the
   perspective of a particular PE, each pseudowire has a local or
   "Source AII", and a remote or "Target AII".  The pseudowire setup
   protocol can carry all three of these quantities:

   -  Attachment Group Identifier (AGI)

   -  Source Attachment Individual Identifier (SAII)

   -  Target Attachment Individual Identifier (TAII)

   If the AGI is non-null, then the Source AI (SAI) consists of the AGI
   together with the SAII, and the Target AI (TAI) consists of the TAII
   together with the AGI.  If the AGI is null, then the SAII and TAII
   are the SAI and TAI, respectively.

   The interpretation of the SAI and TAI is a local matter at the
   respective endpoint.

   The association of two unidirectional LSPs into a single
   bidirectional pseudowire depends on the SAI and the TAI.  Each
   application and/or provisioning model that uses the Generalized PWid
   FEC must specify the rules for performing this association.
Top   ToC   RFC8077 - Page 14

6.2.2. Encoding the Generalized PWid FEC Element

FEC element type 0x81 is used. The FEC element is encoded as follows: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Gen PWid (0x81)|C| PW Type |PW info length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AGI Type | Length | Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ AGI Value (contd.) ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AII Type | Length | Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ SAII Value (contd.) ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AII Type | Length | Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ TAII Value (contd.) ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ This document does not specify the AII and AGI type field values; specification of the type field values to be used for a particular application is part of the specification of that application. IANA has assigned these values using the method defined in [RFC4446]. The SAII, TAII, and AGI are simply carried as octet strings. The Length byte specifies the size of the Value field. The null string can be sent by setting the Length byte to 0. If a particular application does not need all three of these sub-elements, it MUST send all the sub-elements but set the Length to 0 for the unused sub- elements. The PW information length field contains the length of the SAII, TAII, and AGI, combined in octets. If this value is 0, then it references all PWs using the specific Group ID (specified in the PW Group ID TLV). In this case, there are no other FEC element fields (AGI, SAII, etc.) present, nor any PW Interface Parameters TLVs. Note that the interpretation of a particular field as AGI, SAII, or TAII depends on the order of its occurrence. The Type field identifies the type of the AGI, SAII, or TAII. When comparing two
Top   ToC   RFC8077 - Page 15
   occurrences of an AGI (or SAII or TAII), the two occurrences are
   considered identical if the Type, Length, and Value fields of one are
   identical, respectively, to those of the other.

6.2.2.1. PW Interface Parameters TLV
This TLV MUST only be used when sending the Generalized PWid FEC. It specifies interface-specific parameters. Specific parameters, when applicable, MUST be used to validate that the PEs and the ingress and egress ports at the edges of the circuit have the necessary capabilities to interoperate with each other. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0|0| PW Intf P. TLV (0x096B) | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sub-TLV Type | Length | Variable Length Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Variable Length Value | | " | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ A more detailed description of this field can be found in Section 6.4 ("Interface Parameter Sub-TLV").
6.2.2.2. PW Group ID TLV
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0|0| PW Group ID TLV (0x096C) | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The PW Group ID is an arbitrary 32-bit value that represents an arbitrary group of PWs. It is used to create group PWs; for example, a PW Group ID can be used as a port index and assigned to all PWs that lead to that port. Use of the PW Group ID enables a PE to send "wildcard" label withdrawals, or "wildcard" status Notification messages, to remote PEs upon physical port failure. Note Well: The PW Group ID is different from and has no relation to the Attachment Group Identifier.
Top   ToC   RFC8077 - Page 16
   The PW Group ID TLV is not part of the FEC and will not be advertised
   except in the PW FEC advertisement.  The advertising PE MAY use the
   wildcard withdraw semantics, but the remote PEs MUST implement
   support for wildcard messages.  This TLV MUST only be used when
   sending the Generalized PWid FEC.

   To issue a wildcard command (status or withdraw):

   -  Set the PW Info Length to 0 in the Generalized PWid FEC Element.

   -  Send only the PW Group ID TLV with the FEC (no AGI/SAII/TAII is
      sent).

6.2.3. Signaling Procedures

In order for PE1 to begin signaling PE2, PE1 must know the address of the remote PE2 and a TAI. This information may have been configured at PE1, or it may have been learned dynamically via some auto- discovery procedure. The egress PE (PE1), which has knowledge of the ingress PE, initiates the setup by sending a Label Mapping message to the ingress PE (PE2). The Label Mapping message contains the FEC TLV, carrying the Generalized PWid FEC Element (type 0x81). The Generalized PWid FEC Element contains the AGI, SAII, and TAII information. Next, when PE2 receives such a Label Mapping message, PE2 interprets the message as a request to set up a PW whose endpoint (at PE2) is the Forwarder identified by the TAI. From the perspective of the signaling protocol, exactly how PE2 maps AIs to Forwarders is a local matter. In some Virtual Private Wire Service (VPWS) provisioning models, the TAI might, for example, be a string that identifies a particular Attachment Circuit, such as "ATM3VPI4VCI5", or it might, for example, be a string, such as "Fred", that is associated by configuration with a particular Attachment Circuit. In Virtual Private LAN Service (VPLS), the AGI could be a VPN-id, identifying a particular VPLS instance. If PE2 cannot map the TAI to one of its Forwarders, then PE2 sends a Label Release message to PE1, with a Status Code of "Unassigned/Unrecognized TAI", and the processing of the Label Mapping message is complete. The FEC TLV sent in a Label Release message is the same as the FEC TLV received in the Label Mapping message being released (but without the interface parameter TLV). More generally, the FEC TLV is the
Top   ToC   RFC8077 - Page 17
   same in all LDP messages relating to the same PW.  In a Label Release
   message, this means that the SAII is the remote peer's AII and the
   TAII is the sender's local AII.

   If the Label Mapping message has a valid TAI, PE2 must decide whether
   to accept it.  The procedures for so deciding will depend on the
   particular type of Forwarder identified by the TAI.  Of course, the
   Label Mapping message may be rejected due to standard LDP error
   conditions as detailed in [RFC5036].

   If PE2 decides to accept the Label Mapping message, then it has to
   make sure that a PW LSP is set up in the opposite (PE1-->PE2)
   direction.  If it has already signaled for the corresponding PW LSP
   in that direction, nothing more needs to be done.  Otherwise, it must
   initiate such signaling by sending a Label Mapping message to PE1.
   This is very similar to the Label Mapping message PE2 received, but
   the SAI and TAI are reversed.

   Thus, a bidirectional PW consists of two LSPs, where the FEC of one
   has the SAII and TAII reversed with respect to the FEC of the other.



(page 17 continued on part 2)

Next Section