One document matched: draft-ietf-mpls-tp-data-plane-03.xml


<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-ietf-mpls-tp-data-plane-03"
     ipr="trust200902">
  <front>
    <title abbrev="MPLS-TP Data Plane Architecture">MPLS Transport Profile
    Data Plane Architecture</title>

    <author fullname="Dan Frost" initials="D" role="editor" surname="Frost">
      <organization>Cisco Systems</organization>

      <address>
        <email>danfrost@cisco.com</email>
      </address>
    </author>

    <author fullname="Stewart Bryant" initials="S" role="editor"
            surname="Bryant">
      <organization>Cisco Systems</organization>

      <address>
        <email>stbryant@cisco.com</email>
      </address>
    </author>

    <author fullname="Matthew Bocci" initials="M" role="editor"
            surname="Bocci">
      <organization>Alcatel-Lucent</organization>

      <address>
        <email>matthew.bocci@alcatel-lucent.com</email>
      </address>
    </author>

    <date year="2010" />

    <area>Routing</area>

    <workgroup>MPLS</workgroup>

    <keyword>MPLS</keyword>

    <keyword>Internet-Draft</keyword>

    <abstract>
      <t>The Multiprotocol Label Switching (MPLS) Transport Profile
      (MPLS-TP) is the set of MPLS protocol functions applicable to the
      construction and operation of packet-switched transport networks.
      This document specifies the subset of these functions that comprises
      the MPLS-TP data plane: the architectural layer concerned with the
      encapsulation and forwarding of packets within an MPLS-TP
      network.</t>

      <t>This document is a product of a joint Internet Engineering Task
      Force (IETF) / International Telecommunication Union
      Telecommunication Standardization Sector (ITU-T) effort to include
      an MPLS Transport Profile within the IETF MPLS and PWE3
      architectures to support the capabilities and functionalities of a
      packet transport network.</t>
    </abstract>

    <note title="Requirements Language">
      <t>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 <xref
      target="RFC2119">RFC 2119</xref>.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>The MPLS Transport Profile (MPLS-TP) <xref
      target="I-D.ietf-mpls-tp-framework"></xref> is the set of functions
      that meet the requirements <xref target="RFC5654"></xref> for the
      application of MPLS to the construction and operation of
      packet-switched transport networks. MPLS-based packet transport
      networks are defined and described in <xref
      target="I-D.ietf-mpls-tp-framework"></xref>.</t>

      <t>This document defines the set of functions that comprise the
      MPLS-TP data plane: the architectural layer concerned with the
      encapsulation and forwarding of packets within an MPLS-TP network.
      This layer is based on the data plane architectures for MPLS (<xref
      target="RFC3031"></xref> and <xref target="RFC3032"></xref>) and for
      pseudowires (<xref target="RFC3985"></xref>).</t>

      <t>This document is a product of a joint Internet Engineering Task
      Force (IETF) / International Telecommunication Union
      Telecommunication Standardization Sector (ITU-T) effort to include
      an MPLS Transport Profile within the IETF MPLS and PWE3
      architectures to support the capabilities and functionalities of a
      packet transport network.</t>

      <section title="Scope">
        <t>This document has the following purposes:
          <list style="symbols">
            <t>To identify the data plane functions within the MPLS
            Transport Profile;</t>

            <t>To indicate which of these data plane functions an MPLS-TP
            implementation is required to support.</t>
          </list></t>

        <t>This document defines the encapsulation and forwarding
        functions applicable to packets traversing an MPLS-TP Label
        Switched Path (LSP), Pseudowire (PW), or Section (see <xref
        target="entities"></xref> for the definitions of these transport
        entities). Encapsulation and forwarding functions for packets
        outside an MPLS-TP LSP, PW, or Section, and mechanisms for
        delivering packets to or from MPLS-TP LSPs, PWs, and Sections, are
        outside the scope of this document.</t>
      </section>

      <section title="Terminology">
        <texttable align="left" style="headers">
          <ttcol>Term</ttcol>

          <ttcol>Definition</ttcol>

          <c>ACH</c>
          <c>Associated Channel Header</c>

          <c>G-ACh</c>
          <c>Generic Associated Channel</c>

          <c>GAL</c>
          <c>G-ACh Label</c>

          <c>LER</c>
          <c>Label Edge Router</c>

          <c>LSE</c>
          <c>Label Stack Entry</c>

          <c>LSP</c>
          <c>Label Switched Path</c>

          <c>LSR</c>
          <c>Label Switching Router</c>

          <c>MPLS-TP</c>
          <c>MPLS Transport Profile</c>

          <c>OAM</c>
          <c>Operations, Administration and Maintenance</c>

          <c>PW</c>
          <c>Pseudowire</c>

          <c>QoS</c>
          <c>Quality of Service</c>

          <c>S-PE</c>
          <c>PW Switching Provider Edge Node</c>

          <c>T-PE</c>
          <c>PW Terminating Provider Edge Node</c>

          <c>TTL</c>
          <c>Time To Live</c>
        </texttable>

        <t>Additional definitions and terminology can be found in <xref
        target="I-D.ietf-mpls-tp-framework"></xref> and <xref
        target="RFC5654"></xref>.</t>
      </section>
    </section>

    <section title="MPLS-TP Packet Encapsulation and Forwarding" anchor="pencap">
      <t>MPLS-TP packet encapsulation and forwarding SHALL operate
      according to the MPLS data plane architecture described in <xref
      target="RFC3031"></xref> and <xref target="RFC3032"></xref>, and the
      data plane architectures for Single-Segment Pseudowires and
      Multi-Segment Pseudowires (see <xref target="pw" />), except as
      noted otherwise in this document.  The MPLS-TP data plane satisfies
      the requirements specified in <xref target="RFC5654" />.  </t>

      <t>Since an MPLS-TP packet is an MPLS packet as defined in <xref
      target="RFC3031"></xref> and <xref target="RFC3032"></xref>, it
      will have an associated label stack, and the 'push', 'pop', and
      'swap' label processing operations specified in those documents
      apply.  The label stack represents a hierarchy of Label Switched
      Paths (LSPs).  A label is pushed to introduce an additional
      level of LSP hierarchy and popped to remove it.  Such an
      additional level may be introduced by any pair of LSRs,
      whereupon they become adjacent at this new level, and are then
      known as Label Edge Routers (LERs) with respect to the new
      LSP.</t>

      <t>In contrast to, for example, Section 3.10 of <xref
      target="RFC3031" />, support for Internet Protocol (IP) host and
      router data plane functionality by MPLS-TP interfaces and in
      MPLS-TP networks is OPTIONAL.</t>

      <t>MPLS-TP forwarding is based on the label that identifies an LSP
      or PW.  The label value specifies the processing operation to be
      performed by the next hop at that level of encapsulation. Note that
      a swap of this label is an atomic operation in which the contents of
      the packet after the swapped label are opaque to the forwarding
      function. The only event that interrupts a swap operation is Time To
      Live (TTL) expiry.</t>

      <t>At an LSR, S-PE, or T-PE, further processing occurs to determine
      the context of a packet occurs when a swap operation is interrupted
      by TTL expiry. If the TTL of an LSP label expires, then the label
      with the S (Bottom of Stack) bit set is inspected to determine if it
      is a reserved label. If it is a reserved label, the packet is
      processed according to the rules of that reserved label. For
      example, if it is a Generic Associated Channel Label (GAL), then it
      is processed as a packet on the G-ACh; see <xref
      target="gach"></xref>. If the TTL of a PW expires at an S-PE or
      T-PE, then the packet is examined to determine if a Generic
      Associated Channel Header (ACH) is present immediately below the PW
      label. If so, then the packet is processed as a packet on the
      G-ACh.</t>

      <t>Similarly, if a pop operation at an LER exposes a reserved
      label at the top of the label stack, then the packet is
      processed according to the rules of that reserved label.</t>

      <t>If no such exception occurs, the packet is forwarded according to
      the procedures in <xref target="RFC3031"></xref> and <xref
      target="RFC3032"></xref>.</t>
    </section>

    <section anchor="entities" title="MPLS-TP Transport Entities">
      <t>The MPLS Transport Profile includes the following data plane
      transport entities:
        <list style="symbols">
          <t>Label Switched Paths (LSPs)</t>
          <t>Sections</t>
          <t>Pseudowires (PWs)</t>
        </list>
      </t>

      <section title="Label Switched Paths">
        <t>MPLS-TP LSPs are ordinary MPLS LSPs as defined in <xref
        target="RFC3031"></xref> except as specifically noted otherwise in
        this document.</t>

        <section title="LSP Packet Encapsulation and Forwarding">
          <t>Encapsulation and forwarding of packets traversing MPLS-TP
          LSPs MUST follow standard MPLS packet encapsulation and
          forwarding as defined in <xref target="RFC3031"></xref>, <xref
          target="RFC3032"></xref>, <xref target="RFC5331"></xref>, and
          <xref target="RFC5332"></xref>, except as explicitly stated
          otherwise in this document.</t>

          <t>Data plane Quality of Service capabilities are included in
          the MPLS-TP in the form of Traffic Engineered (TE) LSPs <xref
          target="RFC3209"></xref> and the MPLS Differentiated Services
          (DiffServ) architecture <xref target="RFC3270"></xref>. Both
          E-LSP and L-LSP MPLS DiffServ modes are included. The Traffic
          Class field (formerly the EXP field) of an MPLS label follows
          the definition of <xref target="RFC5462"></xref> and <xref
          target="RFC3270"></xref> and MUST be processed according to the
          rules specified in those documents.</t>

          <t>Note that, except for transient packet reordering which may
          occur, for example, during fault conditions, packets are
          delivered in order on L-LSPs, and on E-LSPs within a specific
          ordered aggregate.</t>

          <t>The Uniform, Pipe and Short Pipe DiffServ tunneling and TTL
          processing models described in <xref target="RFC3270"></xref>
          and <xref target="RFC3443"></xref> MAY be used for MPLS-TP LSPs.
          Note however that support for the Pipe or Short Pipe models is
          REQUIRED for typical transport applications, in which the
          topology and QoS characteristics of the MPLS-TP server layer are
          independent of the client layer.  Specific applications MAY
          place further requirements on the DiffServ tunneling and TTL
          processing models an LSP can use.</t>

          <t>Per-platform, per-interface or other context-specific label
          space <xref target="RFC5331"></xref> MAY be used for MPLS-TP
          LSPs.  Downstream <xref target="RFC3031"></xref> or upstream
          <xref target="RFC5331"></xref> label allocation schemes MAY be
          used for MPLS-TP LSPs. Note that the requirements of a
          particular LSP type may dictate which label spaces or allocation
          schemes it can use.</t>

          <t>Equal-Cost Multi-Path (ECMP) load-balancing MUST NOT be
          performed on an MPLS-TP LSP.  MPLS-TP LSPs as defined in
          this document MAY operate over a server layer that supports
          load-balancing, but this load-balancing MUST operate in such
          a manner that it is transparent to MPLS-TP.  Note that this
          does not preclude the future definition of new MPLS-TP LSP
          types which have different requirements regarding the use of
          ECMP in the server layer.</t>

          <t>Penultimate Hop Popping (PHP) MUST be disabled by default on
          MPLS-TP LSPs.</t>
        </section>

        <section title="LSP Payloads">
          <t>The MPLS-TP includes support for the following LSP payload
          types:
            <list style="symbols">
              <t>Network-layer protocol packets (including MPLS-labeled
              packets)</t>
              <t>Pseudowire packets</t>
            </list>
          </t>

          <t>The rules for processing LSP payloads that are network-layer
          protocol packets SHALL be as specified in <xref
          target="RFC3032"></xref>.</t>

          <t>The rules for processing LSP payloads that are pseudowire
          packets SHALL be as defined in the data plane pseudowire
          specifications (see <xref target="pw"></xref>).</t>

          <t>Note that the payload of an MPLS-TP LSP may be a packet that
          itself contains an MPLS label stack.  This is true, for
          instance, when the payload is a pseudowire or an MPLS LSP.  In
          such cases, the label stack is contiguous between the MPLS-TP
          LSP and its payload, and exactly one LSE in this stack SHALL
          have the S (Bottom of Stack) bit set to 1.  This behaviour
          reflects best current practice in MPLS but differs slightly from
          <xref target="RFC3032" />, which uses the S bit to identify when
          MPLS label processing stops and network layer processing
          starts.</t>
        </section>

        <section anchor="lsptypes" title="LSP Types">
          <t>The MPLS-TP includes the following LSP types:
            <list style="symbols">
              <t>Point-to-point unidirectional</t>

              <t>Point-to-point associated bidirectional</t>

              <t>Point-to-point co-routed bidirectional</t>

              <t>Point-to-multipoint unidirectional</t>
            </list>
          </t>

          <t>Point-to-point unidirectional LSPs are supported by the basic
          MPLS architecture <xref target="RFC3031"></xref> and are
          REQUIRED to function in the same manner in the MPLS-TP data
          plane except as explicitly stated otherwise in this
          document.</t>

          <t>A point-to-point associated bidirectional LSP between LSRs A
          and B consists of two unidirectional point-to-point LSPs, one
          from A to B and the other from B to A, which are regarded as a
          pair providing a single logical bidirectional transport
          path.</t>

          <t>A point-to-point co-routed bidirectional LSP is a
          point-to-point associated bidirectional LSP with the additional
          constraint that its two unidirectional component LSPs in each
          direction follow the same path (in terms of both nodes and
          links).  An important property of co-routed bidirectional LSPs
          is that their unidirectional component LSPs share fate.</t>

          <t>A point-to-multipoint unidirectional LSP functions in the
          same manner in the data plane, with respect to basic label
          processing and packet-switching operations, as a point-to-point
          unidirectional LSP, with one difference: an LSR may have more
          than one (egress interface, outgoing label) pair associated with
          the LSP, and any packet it transmits on the LSP is transmitted
          out all associated egress interfaces.  Point-to-multipoint LSPs
          are described in <xref target="RFC4875"></xref> and <xref
          target="RFC5332"></xref>.  TTL processing and exception handling
          for point-to-multipoint LSPs is the same as for point-to-point
          LSPs and is described in <xref target="pencap" />.</t>
        </section>
      </section>

      <section title="Sections">
        <t>Two MPLS-TP LSRs are considered to be topologically adjacent at
        a particular layer n >= 0 of the MPLS-TP LSP hierarchy if there
        exists connectivity between them at the next lowest network layer,
        and if there is no MPLS layer processing at layer n between the
        two LSRs (other than at the LSRs themselves).  Such connectivity,
        if it exists, will be either an MPLS-TP LSP (if n > 0) or a
        data-link provided by the underlying server layer network (if n =
        0), and is referred to as an MPLS-TP Section at layer n of the
        MPLS-TP LSP hierarchy.  Thus, the links traversed by a layer n+1
        MPLS-TP LSP are layer n MPLS-TP sections.  Such an LSP is referred
        to as a client of the section layer, and the section layer as the
        server layer with respect to its clients.</t>

        <t>Note that the MPLS label stack associated with an MPLS-TP
        section at layer n consists of n labels, in the absence of stack
        optimisation mechanisms.  Note also that in order for two LSRs to
        exchange non-IP MPLS-TP control packets over a section, an
        additional label, the G-ACh Label (GAL) (see <xref
        target="gach"></xref>) MUST appear at the bottom of the label
        stack.</t>

        <t>An MPLS-TP section may provide one or more of the following
        types of service to its client layer:
          <list style="symbols">
            <t>Point-to-point bidirectional</t>
            <t>Point-to-point unidirectional</t>
            <t>Point-to-multipoint unidirectional</t>
          </list>
        The manner in which a section provides such a service is outside
        the scope of the MPLS-TP.</t>

        <t>Note that an LSP of any of the types listed in <xref
        target="lsptypes"></xref> may serve as a section for a
        client-layer transport entity as long as it supports the type of
        service the client requires.</t>

        <t>A section MUST provide a means of identifying the type of
        payload it carries.  If the section is a data-link, link-specific
        mechanisms such as a protocol type indication in the data-link
        header MAY be used.  If the section is an LSP, this information MAY
        be implied by the LSP label or, if the LSP payload is
        MPLS-labeled, by the setting of the S bit.  Additional labels MAY
        also be used if necessary to distinguish different payload types;
        see <xref target="I-D.ietf-mpls-tp-framework" /> for examples and
        further discussion.</t>
      </section>

      <section anchor="pw" title="Pseudowires">
        <t>The data plane architectures for Single-Segment Pseudowires
        <xref target="RFC3985"></xref> and Multi-Segment Pseudowires <xref
        target="RFC5659"></xref> are included in the MPLS-TP.</t>

        <t>Data plane processing procedures for pseudowires SHALL be as
        defined in the following documents and in any future pseudowire
        data plane specifications:
          <list style="symbols">
            <t><xref target="RFC4717" /></t>

            <t><xref target="RFC4816" /></t>

            <t><xref target="RFC4385" /></t>

            <t><xref target="RFC4448" /></t>

            <t><xref target="RFC4619" /></t>

            <t><xref target="RFC4618" /></t>

            <t><xref target="RFC4553" /></t>

            <t><xref target="RFC4842" /></t>

            <t><xref target="RFC5087" /></t>

            <t><xref target="I-D.ietf-pwe3-fc-encap" /></t>

            <t><xref target="RFC5086" /></t>
          </list>
        </t>

        <t>This document specifies no modifications or extensions to
        pseudowire data plane architectures or protocols.</t>
      </section>
    </section>

    <section anchor="gach" title="MPLS-TP Generic Associated Channel">
      <t>The MPLS Generic Associated Channel (G-ACh) mechanism is
      specified in <xref target="RFC5586"></xref> and included in the
      MPLS-TP.  The G-ACh provides an auxiliary logical data channel
      associated with MPLS-TP Sections, LSPs, and PWs in the data plane.
      The primary purpose of the G-ACh in the context of MPLS-TP is to
      support control, management, and Operations, Administration and
      Maintenance (OAM) traffic associated with MPLS-TP transport
      entities. The G-ACh MUST NOT be used to transport client layer
      network traffic in MPLS-TP networks.</t>

      <t>For pseudowires, the G-ACh uses the first four bits of the PW
      control word to provide the initial discrimination between data
      packets and packets belonging to the associated channel, as
      described in <xref target="RFC4385"></xref>.  When this first nibble
      of a packet, immediately following the label at the bottom of stack,
      has a value of '1', then this packet belongs to a G-ACh.  The first
      32 bits following the bottom of stack label then have a defined
      format called an Associated Channel Header (ACH), which further
      defines the content of the packet.  The ACH is therefore both a
      demultiplexer for G-ACh traffic on the PW, and a discriminator for
      the type of G-ACh traffic.</t>

      <t>When the the control message is carried over a section or an LSP,
      rather than over a PW, it is necessary to provide an indication in
      the packet that the payload is something other than a client data
      packet.  This is achieved by including a reserved label with a value
      of 13 at the bottom of the label stack.  This reserved label is
      referred to as the G-ACh Label (GAL), and is defined in <xref
      target="RFC5586"></xref>. When a GAL is found, it indicates that the
      payload begins with an ACH. The GAL is thus a demultiplexer for
      G-ACh traffic on the section or the LSP, and the ACH is a
      discriminator for the type of traffic carried on the G-ACh. Note
      however that MPLS-TP forwarding follows the normal MPLS model, and
      that a GAL is invisible to an LSR unless it is the top label in the
      label stack. The only other circumstance under which the label stack
      may be inspected for a GAL is when the TTL has expired. Note that
      normal packet forwarding MAY continue concurrently with this
      inspection. All operations on the label stack are in accordance with
      <xref target="RFC3031"></xref> and <xref
      target="RFC3032"></xref>.</t>

      <t>An application processing a packet received over the G-ACh
      may require packet-specific context (such as the receiving
      interface or received label stack).  Data plane implementations
      MUST therefore provide adequate context to the application which
      is to process a G-ACh packet.  The definition of the context
      required MUST be provided as part of the specification of the
      application using the G-ACh.</t>
    </section>

    <section title="Server Layer Considerations">
      <t>The MPLS-TP network has no awareness of the internals of the
      server layer of which it is a client, requiring only that the server
      layer be capable of delivering the type of service required by the
      MPLS-TP transport entities that make use of it.  Note that what
      appears to be a single server layer link to the MPLS-TP network may
      be a complicated construct underneath, such as an LSP or a
      collection of underlying links operating as a bundle.  Special care
      may be needed in network design and operation when such constructs
      are used as a server layer for MPLS-TP.</t>

      <t>Encapsulation of MPLS-TP packets for transport over specific
      server-layer media is outside the scope of this document.</t>
    </section>

    <section title="Security Considerations">
      <t>The MPLS data plane (and therefore the MPLS-TP data plane) does
      not provide any security mechanisms in and of itself.  Client layers
      that wish to secure data carried over MPLS-TP transport entities are
      REQUIRED to apply their own security mechanisms.</t>

      <t>Where management or control plane protocols are used to install
      label switching operations necessary to establish MPLS-TP transport
      paths, those protocols are equipped with security features and
      network operators may use those features to securely create the
      transport paths.</t>

      <t>Where enhanced security is desirable, and a trust relationship
      exists between an LSR and its peer, the LSR MAY choose to discard a
      packet received from a particular neighbour unless one of the
      following two conditions holds:
        <list style="numbers">
          <t>Any MPLS label processed at the receiving LSR, such as an LSP
          or PW label, has a label value that the receiving LSR has
          distributed to that neighbour; or</t>

          <t>Any MPLS label processed at the receiving LSR, such as an LSP
          or PW label, has a label value that the receiving LSR has
          previously distributed to the peer beyond that neighbour (i.e.,
          when it is known that the path from the system to which the
          label was distributed to the receiving system is via that
          neighbour).</t>
        </list>
      </t>

      <t>Further details of MPLS and MPLS-TP security can be found in
      <xref target="I-D.ietf-mpls-tp-framework" /> and <xref
      target="I-D.ietf-mpls-mpls-and-gmpls-security-framework"></xref>.</t>
    </section>

    <section title="IANA Considerations">
      <t>This document introduces no new IANA considerations.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.RFC.2119'?>

      <?rfc include='reference.RFC.3031'?>

      <?rfc include='reference.RFC.3032'?>

      <?rfc include='reference.RFC.5654'?>

      <?rfc include='reference.RFC.5586'?>

      <?rfc include='reference.RFC.3209'?>

      <?rfc include='reference.RFC.3270'?>

      <?rfc include='reference.RFC.3443'?>

      <?rfc include='reference.RFC.5462'?>

      <?rfc include='reference.RFC.5331'?>

      <?rfc include='reference.RFC.4875'?>

      <?rfc include='reference.RFC.5332'?>



      <?rfc include="reference.RFC.4717"?>

      <?rfc include='reference.RFC.4816'?>

      <?rfc include='reference.RFC.4385'?>

      <?rfc include='reference.RFC.4448'?>

      <?rfc include='reference.RFC.4619'?>

      <?rfc include='reference.RFC.4618'?>

      <?rfc include='reference.RFC.4553'?>

      <?rfc include='reference.RFC.4842'?>

    </references>

    <references title="Informative References">
      <?rfc include='reference.I-D.ietf-mpls-tp-framework'?>

      <?rfc include='reference.I-D.ietf-mpls-mpls-and-gmpls-security-framework'?>

      <?rfc include='reference.RFC.3985'?>

      <?rfc include='reference.RFC.5659'?>



      <?rfc include='reference.RFC.5087'?>

      <?rfc include='reference.I-D.ietf-pwe3-fc-encap'?>

      <?rfc include='reference.RFC.5086'?>

    </references>
  </back>
</rfc>

PAFTECH AB 2003-20262026-04-23 16:18:03