tech-invite   World Map     

IETF     RFCs     Groups     SIP     ABNFs    |    3GPP     Specs     Glossaries     Architecture     IMS     UICC    |    search     info

RFC 7325

Informational
Pages: 59
Top     in Index     Prev     Next
in Group Index     Prev in Group     Next in Group     Group: MPLS

MPLS Forwarding Compliance and Performance Requirements

Part 1 of 4, p. 1 to 11
None       Next RFC Part

 


Top       ToC       Page 1 
Internet Engineering Task Force (IETF)                C. Villamizar, Ed.
Request for Comments: 7325                                         OCCNC
Category: Informational                                      K. Kompella
ISSN: 2070-1721                                         Juniper Networks
                                                               S. Amante
                                                              Apple Inc.
                                                                A. Malis
                                                                  Huawei
                                                            C. Pignataro
                                                                   Cisco
                                                             August 2014


        MPLS Forwarding Compliance and Performance Requirements

Abstract

   This document provides guidelines for implementers regarding MPLS
   forwarding and a basis for evaluations of forwarding implementations.
   Guidelines cover many aspects of MPLS forwarding.  Topics are
   highlighted where implementers might otherwise overlook practical
   requirements that are unstated or underemphasized, or that are
   optional for conformance to RFCs but often considered mandatory by
   providers.

Status of This Memo

   This document is not an Internet Standards Track specification; it is
   published for informational purposes.

   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).  Not all documents
   approved by the IESG are a candidate for any level of Internet
   Standard; see Section 2 of RFC 5741.

   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/rfc7325.

Page 2 
Copyright Notice

   Copyright (c) 2014 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.

Table of Contents

   1.  Introduction and Document Scope . . . . . . . . . . . . . . .   4
     1.1.  Abbreviations . . . . . . . . . . . . . . . . . . . . . .   4
     1.2.  Use of Requirements Language  . . . . . . . . . . . . . .   8
     1.3.  Apparent Misconceptions . . . . . . . . . . . . . . . . .   9
     1.4.  Target Audience . . . . . . . . . . . . . . . . . . . . .  10
   2.  Forwarding Issues . . . . . . . . . . . . . . . . . . . . . .  11
     2.1.  Forwarding Basics . . . . . . . . . . . . . . . . . . . .  11
       2.1.1.  MPLS Special-Purpose Labels . . . . . . . . . . . . .  12
       2.1.2.  MPLS Differentiated Services  . . . . . . . . . . . .  13
       2.1.3.  Time Synchronization  . . . . . . . . . . . . . . . .  14
       2.1.4.  Uses of Multiple Label Stack Entries  . . . . . . . .  14
       2.1.5.  MPLS Link Bundling  . . . . . . . . . . . . . . . . .  15
       2.1.6.  MPLS Hierarchy  . . . . . . . . . . . . . . . . . . .  16
       2.1.7.  MPLS Fast Reroute (FRR) . . . . . . . . . . . . . . .  16
       2.1.8.  Pseudowire Encapsulation  . . . . . . . . . . . . . .  17
         2.1.8.1.  Pseudowire Sequence Number  . . . . . . . . . . .  17
       2.1.9.  Layer 2 and Layer 3 VPN . . . . . . . . . . . . . . .  19
     2.2.  MPLS Multicast  . . . . . . . . . . . . . . . . . . . . .  20
     2.3.  Packet Rates  . . . . . . . . . . . . . . . . . . . . . .  21
     2.4.  MPLS Multipath Techniques . . . . . . . . . . . . . . . .  23
       2.4.1.  Pseudowire Control Word . . . . . . . . . . . . . . .  24
       2.4.2.  Large Microflows  . . . . . . . . . . . . . . . . . .  24
       2.4.3.  Pseudowire Flow Label . . . . . . . . . . . . . . . .  25
       2.4.4.  MPLS Entropy Label  . . . . . . . . . . . . . . . . .  25
       2.4.5.  Fields Used for Multipath Load Balance  . . . . . . .  25
         2.4.5.1.  MPLS Fields in Multipath  . . . . . . . . . . . .  26
         2.4.5.2.  IP Fields in Multipath  . . . . . . . . . . . . .  27
         2.4.5.3.  Fields Used in Flow Label . . . . . . . . . . . .  29
         2.4.5.4.  Fields Used in Entropy Label  . . . . . . . . . .  29
     2.5.  MPLS-TP and UHP . . . . . . . . . . . . . . . . . . . . .  30

Top      ToC       Page 3 
     2.6.  Local Delivery of Packets . . . . . . . . . . . . . . . .  30
       2.6.1.  DoS Protection  . . . . . . . . . . . . . . . . . . .  31
       2.6.2.  MPLS OAM  . . . . . . . . . . . . . . . . . . . . . .  33
       2.6.3.  Pseudowire OAM  . . . . . . . . . . . . . . . . . . .  34
       2.6.4.  MPLS-TP OAM . . . . . . . . . . . . . . . . . . . . .  34
       2.6.5.  MPLS OAM and Layer 2 OAM Interworking . . . . . . . .  35
       2.6.6.  Extent of OAM Support by Hardware . . . . . . . . . .  36
       2.6.7.  Support for IPFIX in Hardware . . . . . . . . . . . .  37
     2.7.  Number and Size of Flows  . . . . . . . . . . . . . . . .  37
   3.  Questions for Suppliers . . . . . . . . . . . . . . . . . . .  38
     3.1.  Basic Compliance  . . . . . . . . . . . . . . . . . . . .  38
     3.2.  Basic Performance . . . . . . . . . . . . . . . . . . . .  40
     3.3.  Multipath Capabilities and Performance  . . . . . . . . .  41
     3.4.  Pseudowire Capabilities and Performance . . . . . . . . .  41
     3.5.  Entropy Label Support and Performance . . . . . . . . . .  42
     3.6.  DoS Protection  . . . . . . . . . . . . . . . . . . . . .  42
     3.7.  OAM Capabilities and Performance  . . . . . . . . . . . .  42
   4.  Forwarding Compliance and Performance Testing . . . . . . . .  43
     4.1.  Basic Compliance  . . . . . . . . . . . . . . . . . . . .  43
     4.2.  Basic Performance . . . . . . . . . . . . . . . . . . . .  44
     4.3.  Multipath Capabilities and Performance  . . . . . . . . .  45
     4.4.  Pseudowire Capabilities and Performance . . . . . . . . .  46
     4.5.  Entropy Label Support and Performance . . . . . . . . . .  46
     4.6.  DoS Protection  . . . . . . . . . . . . . . . . . . . . .  47
     4.7.  OAM Capabilities and Performance  . . . . . . . . . . . .  47
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .  48
   6.  Organization of References Section  . . . . . . . . . . . . .  50
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  50
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .  50
     7.2.  Informative References  . . . . . . . . . . . . . . . . .  53
   Appendix A.  Acknowledgements . . . . . . . . . . . . . . . . . .  59

Top      ToC       Page 4 
1.  Introduction and Document Scope

   The initial purpose of this document was to address concerns raised
   on the MPLS WG mailing list about shortcomings in implementations of
   MPLS forwarding.  Documenting existing misconceptions and potential
   pitfalls might potentially avoid repeating past mistakes.  The
   document has grown to address a broad set of forwarding requirements.

   The focus of this document is MPLS forwarding, base pseudowire
   forwarding, and MPLS Operations, Administration, and Maintenance
   (OAM).  The use of pseudowire Control Word and the use of pseudowire
   Sequence Number are discussed.  Specific pseudowire Attachment
   Circuit (AC) and Native Service Processing (NSP) are out of scope.
   Specific pseudowire applications, such as various forms of Virtual
   Private Network (VPN), are out of scope.

   MPLS support for multipath techniques is considered essential by many
   service providers and is useful for other high-capacity networks.  In
   order to obtain sufficient entropy from MPLS, traffic service
   providers and others find it essential for the MPLS implementation to
   interpret the MPLS payload as IPv4 or IPv6 based on the contents of
   the first nibble of payload.  The use of IP addresses, the IP
   protocol field, and UDP and TCP port number fields in multipath load
   balancing are considered within scope.  The use of any other IP
   protocol fields, such as tunneling protocols carried within IP, are
   out of scope.

   Implementation details are a local matter and are out of scope.  Most
   interfaces today operate at 1 Gb/s or greater.  It is assumed that
   all forwarding operations are implemented in specialized forwarding
   hardware rather than on a general-purpose processor.  This is often
   referred to as "fast path" and "slow path" processing.  Some
   recommendations are made regarding implementing control or
   management-plane functionality in specialized hardware or with
   limited assistance from specialized hardware.  This advice is based
   on expected control or management protocol loads and on the need for
   denial of service (DoS) protection.

1.1.  Abbreviations

   The following abbreviations are used.

   AC    Attachment Circuit ([RFC3985])

   ACH   Associated Channel Header (pseudowires)

   ACK   Acknowledgement (TCP flag and type of TCP packet)

Top      ToC       Page 5 
   AIS   Alarm Indication Signal (MPLS-TP OAM)

   ATM   Asynchronous Transfer Mode (legacy switched circuits)

   BFD   Bidirectional Forwarding Detection

   BGP   Border Gateway Protocol

   CC-CV Continuity Check and Connectivity Verification

   CE    Customer Edge ([RFC4364])

   CPU   Central Processing Unit (computer or microprocessor)

   CT    Class Type ([RFC4124])

   CW    Control Word ([RFC4385])

   DCCP  Datagram Congestion Control Protocol

   DDoS  Distributed Denial of Service

   DM    Delay Measurement (MPLS-TP OAM)

   DSCP  Differentiated Services Code Point ([RFC2474])

   DWDM  Dense Wave Division Multiplexing

   DoS   Denial of Service

   E-LSP Explicitly TC-encoded-PSC LSP ([RFC5462])

   EBGP  External BGP

   ECMP  Equal-Cost Multipath

   ECN   Explicit Congestion Notification ([RFC3168] and [RFC5129])

   EL    Entropy Label ([RFC6790])

   ELI   Entropy Label Indicator ([RFC6790])

   EXP   Experimental (field in MPLS renamed to "TC" in [RFC5462])

   FEC   Forwarding Equivalence Classes ([RFC3031]); also Forward Error
         Correction in other context

   FR    Frame Relay (legacy switched circuits)

Top      ToC       Page 6 
   FRR   Fast Reroute ([RFC4090])

   G-ACh Generic Associated Channel ([RFC5586])

   GAL   Generic Associated Channel Label ([RFC5586])

   GFP   Generic Framing Procedure (used in OTN)

   GMPLS Generalized MPLS ([RFC3471])

   GTSM  Generalized TTL Security Mechanism ([RFC5082])

   Gb/s  Gigabits per second (billion bits per second)

   IANA  Internet Assigned Numbers Authority

   ILM   Incoming Label Map ([RFC3031])

   IP    Internet Protocol

   IPVPN Internet Protocol VPN

   IPv4  Internet Protocol version 4

   IPv6  Internet Protocol version 6

   L-LSP Label-Only-Inferred-PSC LSP ([RFC3270])

   L2VPN Layer 2 VPN

   LDP   Label Distribution Protocol ([RFC5036])

   LER   Label Edge Router ([RFC3031])

   LM    Loss Measurement (MPLS-TP OAM)

   LSP   Label Switched Path ([RFC3031])

   LSR   Label Switching Router ([RFC3031])

   MP2MP Multipoint to Multipoint

   MPLS  Multiprotocol Label Switching ([RFC3031])

   MPLS-TP  MPLS Transport Profile ([RFC5317])

   Mb/s  Megabits per second (million bits per second)

Top      ToC       Page 7 
   NSP   Native Service Processing ([RFC3985])

   NTP   Network Time Protocol

   OAM   Operations, Administration, and Maintenance ([RFC6291])

   OOB   Out-of-band (not carried within a data channel)

   OTN   Optical Transport Network

   P     Provider router ([RFC4364])

   P2MP  Point to Multipoint

   PE    Provider Edge router ([RFC4364])

   PHB   Per-Hop Behavior ([RFC2475])

   PHP   Penultimate Hop Popping ([RFC3443])

   POS   PPP over SONET

   PSC   This abbreviation has multiple interpretations.

         1.  Packet Switch Capable ([RFC3471]

         2.  PHB Scheduling Class ([RFC3270])

         3.  Protection State Coordination ([RFC6378])

   PTP   Precision Time Protocol

   PW    Pseudowire

   QoS   Quality of Service

   RA    Router Alert ([RFC3032])

   RDI   Remote Defect Indication (MPLS-TP OAM)

   RSVP-TE  RSVP Traffic Engineering

   RTP   Real-time Transport Protocol

   SCTP  Stream Control Transmission Protocol

   SDH   Synchronous Data Hierarchy (European SONET, a form of TDM)

Top      ToC       Page 8 
   SONET Synchronous Optical Network (US SDH, a form of TDM)

   T-LDP Targeted LDP (LDP sessions over more than one hop)

   TC    Traffic Class ([RFC5462])

   TCP   Transmission Control Protocol

   TDM   Time-Division Multiplexing (legacy encapsulations)

   TOS   Type of Service (see [RFC2474])

   TTL   Time-to-live (a field in IP and MPLS headers)

   UDP   User Datagram Protocol

   UHP   Ultimate Hop Popping (opposite of PHP)

   VCCV  Virtual Circuit Connectivity Verification ([RFC5085])

   VLAN  Virtual Local Area Network (Ethernet)

   VOQ   Virtual Output Queuing (switch fabric design)

   VPN   Virtual Private Network

   WG    Working Group

1.2.  Use of Requirements Language

   This document is Informational.  The uppercase [RFC2119] key words
   "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY" are used in
   this document in the following cases.

   1.  RFC 2119 keywords are used where requirements stated in this
       document are called for in referenced RFCs.  In most cases, the
       RFC containing the requirement is cited within the statement
       using an RFC 2119 keyword.

   2.  RFC 2119 keywords are used where explicitly noted that the
       keywords indicate that operator experiences indicate a
       requirement, but there are no existing RFC requirements.

   Advice provided by this document may be ignored by implementations.
   Similarly, implementations not claiming conformance to specific RFCs
   may ignore the requirements of those RFCs.  In both cases,
   implementers should consider the risk of doing so.

Top      ToC       Page 9 
1.3.  Apparent Misconceptions

   In early generations of forwarding silicon (which might now be behind
   us), there apparently were some misconceptions about MPLS.  The
   following statements provide clarifications.

   1.  There are practical reasons to have more than one or two labels
       in an MPLS label stack.  Under some circumstances, the label
       stack can become quite deep.  See Section 2.1.

   2.  The label stack MUST be considered to be arbitrarily deep.
       Section 3.27.4 ("Hierarchy: LSP Tunnels within LSPs") of RFC 3031
       states "The label stack mechanism allows LSP tunneling to nest to
       any depth" [RFC3031].  If a bottom of the label stack cannot be
       found, but sufficient number of labels exist to forward, an LSR
       MUST forward the packet.  An LSR MUST NOT assume the packet is
       malformed unless the end of packet is found before the bottom of
       the stack.  See Section 2.1.

   3.  In networks where deep label stacks are encountered, they are not
       rare.  Full packet rate performance is required regardless of
       label stack depth, except where multiple pop operations are
       required.  See Section 2.1.

   4.  Research has shown that long bursts of short packets with 40-byte
       or 44-byte IP payload sizes in these bursts are quite common.
       This is due to TCP ACK compression [ACK-compression].  The
       following two sub-bullets constitute advice that reflects very
       common nonnegotiable requirements of providers.  Implementers may
       ignore this advice but should consider the risk of doing so.

       A.  A forwarding engine SHOULD, if practical, be able to sustain
           an arbitrarily long sequence of small packets arriving at
           full interface rate.

       B.  If indefinitely sustained full packet rate for small packets
           is not practical, a forwarding engine MUST be able to buffer
           a long sequence of small packets inbound to the on-chip
           decision engine and sustain full interface rate for some
           reasonable average packet rate.  Absent this small on-chip
           buffering, QoS-agnostic packet drops can occur.

       See Section 2.3.

   5.  The implementations and system designs MUST support pseudowire
       Control Word (CW) if MPLS-TP is supported or if ACH [RFC5586] is
       being used on a pseudowire.  The implementation and system
       designs SHOULD support pseudowire CW even if MPLS-TP and ACH

Top      ToC       Page 10 
       [RFC5586] are not used, using instead CW and VCCV Type 1
       [RFC5085] to allow the use of multipath in the underlying network
       topology without impacting the PW traffic.  [RFC7079] does note
       that there are still some deployments where the CW is not always
       used.  It also notes that many service providers do enable the
       CW.  See Section 2.4.1 for more discussion on why deployments
       SHOULD enable the pseudowire CW.

   The following statements provide clarification regarding more recent
   requirements that are often missed.

   1.  The implementer and system designer SHOULD support adding a
       pseudowire Flow Label [RFC6391].  Deployments MAY enable this
       feature for appropriate pseudowire types.  See Section 2.4.3.

   2.  The implementer and system designer SHOULD support adding an MPLS
       Entropy Label [RFC6790].  Deployments MAY enable this feature.
       See Section 2.4.4.

   Non-IETF definitions of MPLS exist, and these should not be used as
   normative texts in place of the relevant IETF RFCs.  [RFC5704]
   documents incompatibilities between the IETF definition of MPLS and
   one such alternative MPLS definition, which led to significant issues
   in the resulting non-IETF specification.

1.4.  Target Audience

   This document is intended for multiple audiences: implementer
   (implementing MPLS forwarding in silicon or in software); systems
   designer (putting together a MPLS forwarding systems); deployer
   (running an MPLS network).  These guidelines are intended to serve
   the following purposes:

   1.  Explain what to do and what not to do when a deep label stack is
       encountered. (audience: implementer)

   2.  Highlight pitfalls to look for when implementing an MPLS
       forwarding chip. (audience: implementer)

   3.  Provide a checklist of features and performance specifications to
       request.  (audience: systems designer, deployer)

   4.  Provide a set of tests to perform.  (audience: systems designer,
       deployer).

Top      ToC       Page 11 
   The implementer, systems designer, and deployer have a transitive
   supplier-customer relationship.  It is in the best interest of the
   supplier to review their product against their customer's checklist
   and secondary customer's checklist if applicable.

   This document identifies and explains many details and potential
   pitfalls of MPLS forwarding.  It is likely that the identified set of
   potential pitfalls will later prove to be an incomplete set.



(page 11 continued on part 2)

Next RFC Part