RFC 7276

An Overview of Operations, Administration, and Maintenance (OAM) Tools

๐Ÿ“… published June 2014, from ietf

An Overview of Operations, Administration, and Maintenance (OAM) Tools โœจ

okay bestie, this is RFC 7276 ๐ŸŽ€ and it's an Informational doc, so it's not a Standards Track spec. It was published in June 2014 and the ISSN is 2070-1721 ๐Ÿ’…

The authors are T. Mizrahi (Marvell), N. Sprecher (Nokia Solutions and Networks), E. Bellagamba (Ericsson), and Y. Weingarten (no affiliation listed in the header). The title block doesn't list anything it obsoletes or updates, so this doc doesn't replace or patch any earlier RFC ๐Ÿฆ‹


Abstract

okay so Operations, Administration, and Maintenance (OAM) is basically an umbrella term for a toolset that handles fault detection and isolation, plus performance measurement ๐Ÿ”ง Over the years, people have defined a bunch of OAM tools for different layers of the protocol stack, so it's giving buffet ๐Ÿ“

This doc is a tour of some of the OAM tools the IETF has defined for IP unicast, MPLS, MPLS Transport Profile (MPLS-TP), pseudowires, and Transparent Interconnection of Lots of Links (TRILL) ๐ŸŒˆ It's mainly about tools for spotting and isolating failures in networks and for monitoring performance. Control and management stuff for OAM is not in scope ๐Ÿ™…โ€โ™€๏ธ Network repair functions like Fast Reroute (FRR) and protection switching, which OAM protocols often kick off, are also out of scope ๐Ÿ’€

The target audience is network equipment vendors, network operators, and standards development organizations ๐Ÿ‘‘ Think of this doc as an index to the main OAM tools in the IETF. At the very end there are two summary lists: one of the OAM toolsets and one of the OAM functions ๐Ÿ’œ


Status of This Memo

This document is not an Internet Standards Track specification. It's published for informational purposes only, so no vibes of "you must do this" here ๐Ÿซถ

It's a product of the Internet Engineering Task Force (IETF) and it reflects IETF community consensus. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). Not every IESG-approved doc is a candidate for any level of Internet Standard, so see Section 2 of RFC 5741 for that ๐ŸŒธ

For the current status, any errata, and how to send feedback, go to http://www.rfc-editor.org/info/rfc7276 โœจ


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, which you can find at http://trustee.ietf.org/license-info (as in effect on the date of publication). Please actually read these, bestie, because they explain your rights and restrictions for this doc ๐Ÿ“œ

Code Components pulled out of this document must include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions. They come with no warranty, as described in the Simplified BSD License ๐Ÿงš


Table of Contents

   1. Introduction ....................................................4
      1.1. Background .................................................5
      1.2. Target Audience ............................................6
      1.3. OAM-Related Work in the IETF ...............................6
      1.4. Focusing on the Data Plane .................................7
   2. Terminology .....................................................8
      2.1. Abbreviations ..............................................8
      2.2. Terminology Used in OAM Standards .........................10
           2.2.1. General Terms ......................................10
           2.2.2. Operations, Administration, and Maintenance ........10
           2.2.3. Functions, Tools, and Protocols ....................11
           2.2.4. Data Plane, Control Plane, and Management Plane ....11
           2.2.5. The Players ........................................12
           2.2.6. Proactive and On-Demand Activation .................13
           2.2.7. Connectivity Verification and Continuity Checks ....14
           2.2.8. Connection-Oriented vs. Connectionless
                  Communication ......................................15
           2.2.9. Point-to-Point vs. Point-to-Multipoint Services ....16
           2.2.10. Failures ..........................................16
   3. OAM Functions ..................................................17
   4. OAM Tools in the IETF - A Detailed Description .................18
      4.1. IP Ping ...................................................18
      4.2. IP Traceroute .............................................19
      4.3. Bidirectional Forwarding Detection (BFD) ..................20
           4.3.1. Overview ...........................................20
           4.3.2. Terminology ........................................20
           4.3.3. BFD Control ........................................20
           4.3.4. BFD Echo ...........................................21
      4.4. MPLS OAM ..................................................21
           4.4.1. LSP Ping ...........................................21
           4.4.2. BFD for MPLS .......................................22
           4.4.3. OAM for Virtual Private Networks (VPNs) over MPLS ..23
      4.5. MPLS-TP OAM ...............................................23
           4.5.1. Overview ...........................................23
           4.5.2. Terminology ........................................24
           4.5.3. Generic Associated Channel .........................25
           4.5.4. MPLS-TP OAM Toolset ................................25
                  4.5.4.1. Continuity Check and Connectivity
                           Verification ..............................26
                  4.5.4.2. Route Tracing .............................26
                  4.5.4.3. Lock Instruct .............................27
                  4.5.4.4. Lock Reporting ............................27
                  4.5.4.5. Alarm Reporting ...........................27
                  4.5.4.6. Remote Defect Indication ..................27
                  4.5.4.7. Client Failure Indication .................27
                  4.5.4.8. Performance Monitoring ....................28
                           4.5.4.8.1. Packet Loss Measurement (LM) ...28
                           4.5.4.8.2. Packet Delay Measurement (DM) ..28
      4.6. Pseudowire OAM ............................................29
           4.6.1. Pseudowire OAM Using Virtual Circuit
                  Connectivity Verification (VCCV) ...................29
           4.6.2. Pseudowire OAM Using G-ACh .........................30
           4.6.3. Attachment Circuit - Pseudowire Mapping ............30
      4.7. OWAMP and TWAMP ...........................................31
           4.7.1. Overview ...........................................31
           4.7.2. Control and Test Protocols .........................32
           4.7.3. OWAMP ..............................................32
           4.7.4. TWAMP ..............................................33
      4.8. TRILL .....................................................33
   5. Summary ........................................................34
      5.1. Summary of OAM Tools ......................................34
      5.2. Summary of OAM Functions ..................................37
      5.3. Guidance to Network Equipment Vendors .....................38
   6. Security Considerations ........................................38
   7. Acknowledgments ................................................39
   8. References .....................................................39
      8.1. Normative References ......................................39
      8.2. Informative References ....................................39
   Appendix A. List of OAM Documents ................................ 46
      A.1. List of IETF OAM Documents ............................... 46
      A.2. List of Selected Non-IETF OAM Documents .................. 50

1. Introduction โœจ

okay so "OAM" is that same general umbrella term: a toolset for detecting, isolating, and reporting failures, and for monitoring how the network performs ๐Ÿ”

Quick heads up, "OAM" has several different interpretations floating around ๐Ÿ™ƒ This doc sticks with Operations, Administration, and Maintenance, which is the version recommended in Section 3 of [OAM-Def] ๐Ÿ’…

It summarizes some of the OAM tools the IETF has defined for IP unicast, MPLS, MPLS Transport Profile (MPLS-TP), pseudowires, and TRILL ๐Ÿฆ‹

The focus is on tools for detecting and isolating failures and for performance monitoring ๐Ÿ’– So the doc zooms in on the tools that monitor and measure the data plane. Control and management aspects of OAM are, again, outside the scope ๐Ÿ™ˆ Same goes for network repair stuff like Fast Reroute (FRR) and protection switching, even though OAM protocols often trigger those ๐ŸŒธ

1.1. Background

okay so OAM was first used in old-school comms tech like E1 and T1 ๐Ÿ•ฐ๏ธ From there it evolved into Plesiochronous Digital Hierarchy (PDH) and later into Synchronous Optical Network / Synchronous Digital Hierarchy (SONET/SDH) โญ

ATM was probably the first technology with inherent OAM support from day one ๐Ÿ‘‘ Pretty iconic. Most other technologies were giving "we'll add OAM later" energy, defining it ad hoc after the tech was already defined and deployed ๐Ÿ’€

Packet-based networks used to be seen as unreliable and best effort ๐Ÿ™ƒ But they grew up into the common transport for both data and telephony, replacing the traditional transport protocols ๐Ÿ“ž That means they were expected to deliver a similar "carrier grade" experience, and to support more advanced OAM functions than the basics. Before, fault detection mostly relied on ICMP and router hellos, which is not a lot ๐Ÿฅน

Typical networks have a multi-layer architecture, so the OAM protocols are multi-layer too: every layer has its own OAM protocols ๐Ÿงš OAM can also be used at different levels of the hierarchy, which builds a multi-layer OAM solution, as shown in Figure 1 ๐ŸŒˆ

Figure 1 is giving "two customer edges talking through a provider network" ๐Ÿ’œ IP traffic between two customer edges is carried over an MPLS provider network. MPLS OAM runs at the provider level to monitor the connection between the two provider edges, while IP OAM runs at the customer level to monitor the end-to-end connection between the two customer edges ๐Ÿซถ

           |<-------------- Customer-level OAM -------------->|
                 IP OAM (Ping, Traceroute, OWAMP, TWAMP)

                        |<- Provider-level OAM ->|
                            MPLS OAM (LSP Ping)

     +-----+       +----+                        +----+       +-----+
     |     |       |    |========================|    |       |     |
     |     |-------|    |          MPLS          |    |-------|     |
     |     |  IP   |    |                        |    |  IP   |     |
     +-----+       +----+                        +----+       +-----+
     Customer     Provider                      Provider      Customer
       Edge         Edge                          Edge          Edge

Figure 1: Example of Multi-layer OAM ๐ŸŽ€

1.2. Target Audience โœจ

okay so who is this doc actually for? ๐Ÿค” The target audience includes:

  • Standards development organizations ๐Ÿ—๏ธ: both IETF working groups and non-IETF organizations can get value from this when they're designing new OAM protocols, or when they want to reuse existing OAM tools for new technologies.
  • Network equipment vendors and network operators ๐Ÿ–ฅ๏ธ: they can use this as an index to some of the common IETF OAM tools.

It should be noted that some background in OAM is necessary to understand and benefit from this document ๐Ÿง . Specifically, the reader is assumed to be familiar with the term "OAM" [OAM-Def], the motivation for using OAM, and the distinction between OAM and network management [OAM-Mng]. so if you're new to this, go read those first, bestie ๐Ÿซถ


This memo gives you an overview of the different sets of OAM tools the IETF has defined. The OAM tools described here are applicable to IP unicast, MPLS, pseudowires, MPLS Transport Profile (MPLS-TP), and TRILL ๐ŸŒˆ. While OAM tools that apply to other technologies exist, they're beyond the scope of this memo, so we're not going there ๐Ÿ™…โ€โ™€๏ธ

This document focuses on IETF documents that have been published as RFCs. Other ongoing OAM-related work is outside the scope, sorry not sorry ๐Ÿ’…

The IETF has defined OAM protocols and tools in several different contexts. We roughly sort these efforts into a few sets of OAM-related RFCs, listed in Table 1 ๐Ÿ“‹. Each set defines a logically coupled group of RFCs, although the sets are sometimes intertwined by common tools and protocols ๐Ÿงถ

The discussion in this document is ordered according to these sets (the acronyms and abbreviations are listed in Section 2.1) ๐Ÿ”ค

                    +--------------+------------+
                    | Toolset      | Transport  |
                    |              | Technology |
                    +--------------+------------+
                    |IP Ping       | IPv4/IPv6  |
                    +--------------+------------+
                    |IP Traceroute | IPv4/IPv6  |
                    +--------------+------------+
                    |BFD           | generic    |
                    +--------------+------------+
                    |MPLS OAM      | MPLS       |
                    +--------------+------------+
                    |MPLS-TP OAM   | MPLS-TP    |
                    +--------------+------------+
                    |Pseudowire OAM| Pseudowires|
                    +--------------+------------+
                    |OWAMP and     | IPv4/IPv6  |
                    |TWAMP         |            |
                    +--------------+------------+
                    |TRILL OAM     | TRILL      |
                    +--------------+------------+

            Table 1: OAM Toolset Packages in the IETF Documents

This document focuses on OAM tools that have been developed in the IETF. A short summary of some of the significant OAM standards developed in other standards organizations is presented in Appendix A.2 ๐ŸŒธ


1.4. Focusing on the Data Plane ๐Ÿ“ก

OAM tools may, and quite often do, work together with a control plane and/or management plane ๐Ÿค. OAM is all about instrumentation tools for measuring and monitoring the data plane ๐Ÿ”. OAM tools often lean on control-plane functions, e.g., to initialize OAM sessions and to exchange various parameters. They also talk to the management plane to raise alarms, and the management plane can often activate OAM tools (as well as the control plane can), e.g., to locate and localize problems ๐Ÿšจ

The control-plane maintenance tools and the functionality of the management plane are out of scope here. This document concentrates on the data-plane tools used for OAM ๐ŸŽ€. Network repair functions such as Fast Reroute (FRR) and protection switching, which OAM protocols often trigger, are also out of scope ๐Ÿ™ƒ

Since OAM protocols are used for monitoring the data plane, it is imperative for OAM tools to be capable of testing the actual data plane with as much accuracy as possible ๐ŸŽฏ. So it's important to enforce fate-sharing between the OAM traffic that monitors the data plane and the data-plane traffic it monitors. main character energy for fate-sharing, fr ๐Ÿ’œ


2. Terminology ๐Ÿ“–

2.1. Abbreviations ๐Ÿ”ค

Here's the full abbreviation list, bestie ๐Ÿ’–

   ACH      Associated Channel Header

   AIS      Alarm Indication Signal

   ATM      Asynchronous Transfer Mode

   BFD      Bidirectional Forwarding Detection

   CC       Continuity Check

   CC-V     Continuity Check and Connectivity Verification

   CV       Connectivity Verification

   DM       Delay Measurement

   ECMP     Equal-Cost Multipath

   FEC      Forwarding Equivalence Class

   FRR      Fast Reroute

   G-ACh    Generic Associated Channel

   GAL      Generic Associated Channel Label

   ICMP     Internet Control Message Protocol

   L2TP     Layer 2 Tunneling Protocol

   L2VPN    Layer 2 Virtual Private Network

   L3VPN    Layer 3 Virtual Private Network

   LCCE     L2TP Control Connection Endpoint

   LDP      Label Distribution Protocol
   LER      Label Edge Router

   LM       Loss Measurement

   LSP      Label Switched Path

   LSR      Label Switching Router

   ME       Maintenance Entity

   MEG      Maintenance Entity Group

   MEP      MEG End Point

   MIP      MEG Intermediate Point

   MP       Maintenance Point

   MPLS     Multiprotocol Label Switching

   MPLS-TP  MPLS Transport Profile

   MTU      Maximum Transmission Unit

   OAM      Operations, Administration, and Maintenance

   OWAMP    One-Way Active Measurement Protocol

   PDH      Plesiochronous Digital Hierarchy

   PE       Provider Edge

   PSN      Public Switched Network

   PW       Pseudowire

   PWE3     Pseudowire Emulation Edge-to-Edge

   RBridge  Routing Bridge

   RDI      Remote Defect Indication

   SDH      Synchronous Digital Hierarchy

   SONET    Synchronous Optical Network

   TRILL    Transparent Interconnection of Lots of Links
   TTL      Time To Live

   TWAMP    Two-Way Active Measurement Protocol

   VCCV     Virtual Circuit Connectivity Verification

   VPN      Virtual Private Network

2.2. Terminology Used in OAM Standards ๐Ÿ“š

2.2.1. General Terms ๐Ÿงธ

A wide variety of terms gets used across OAM standards ๐ŸŒˆ. This section compares the terms used in various OAM standards, without fully quoting the definition of each term.

An interesting overview of the term "OAM" and its derivatives is presented in [OAM-Def]. A thesaurus of MPLS-TP terminology is presented in [TP-Term], which gives a good summary of some of the OAM-related terminology ๐Ÿฆ‹

2.2.2. Operations, Administration, and Maintenance ๐Ÿ› ๏ธ

The following definition of OAM is quoted from [OAM-Def]:

The components of the "OAM" acronym (and provisioning) are defined as follows:
  • Operations โš™๏ธ: Operation activities are undertaken to keep the network (and the services that the network provides) up and running. It includes monitoring the network and finding problems. Ideally these problems should be found before users are affected.
  • Administration ๐Ÿ“’: Administration activities involve keeping track of resources in the network and how they are used. It includes all the bookkeeping that is necessary to track networking resources and the network under control.
  • Maintenance ๐Ÿ”ง: Maintenance activities are focused on facilitating repairs and upgrades -- for example, when equipment must be replaced, when a router needs a patch for an operating system image, or when a new switch is added to a network. Maintenance also involves corrective and preventive measures to make the managed network run more effectively, e.g., adjusting device configuration and parameters.

2.2.3. Functions, Tools, and Protocols ๐Ÿงฐ

OAM Function ๐Ÿ”ฌ: An OAM function is an instrumentation measurement type or diagnostic. OAM functions are the atomic building blocks of OAM, where each function defines an OAM capability. Typical examples of OAM functions are presented in Section 3.

OAM Protocol ๐Ÿ“จ: An OAM protocol is a protocol used for implementing one or more OAM functions. The OWAMP-Test [OWAMP] is an example of an OAM protocol.

OAM Tool ๐ŸŽฏ: An OAM tool is a specific means of applying one or more OAM functions. In some cases, an OAM protocol is an OAM tool, e.g., OWAMP-Test. In other cases, an OAM tool uses a set of protocols that are not strictly OAM related. For example, Traceroute (Section 4.2) can be implemented using UDP and ICMP messages, without using an OAM protocol per se ๐Ÿ’โ€โ™€๏ธ

2.2.4. Data Plane, Control Plane, and Management Plane ๐ŸŒ

Data Plane ๐Ÿšš: The data plane is the set of functions used to transfer data in the stratum or layer under consideration [ITU-Terms]. The data plane is also known as the forwarding plane or the user plane.

Control Plane ๐Ÿงญ: The control plane is the set of protocols and mechanisms that enable routers to efficiently learn how to forward packets towards their final destination (based on [Comp]).

Management Plane ๐Ÿ—‚๏ธ: The term "Management Plane", as described in [Mng], is used to describe the exchange of management messages through management protocols (often transported by IP and by IP transport protocols) between management applications and the managed entities such as network nodes.

Data Plane vs. Control Plane vs. Management Plane ๐Ÿค”: the distinction between the planes is at times a bit vague ๐ŸŒซ๏ธ. For example, the definition of "Control Plane" above may imply that OAM tools such as ping, BFD, and others are in fact in the control plane.

This document focuses on tools used for monitoring the data plane. While these tools could arguably be considered to be in the control plane, they monitor the data plane, and hence it is imperative to have fate-sharing between OAM traffic that monitors the data plane and the data-plane traffic it monitors ๐Ÿ’œ

Another potentially vague distinction is between the management plane and the control plane. The management plane should be seen as separate from, but possibly overlapping with, the control plane (based on [Mng]) โœจ

2.2.5. The Players ๐ŸŽ€

okay so an OAM tool is used between two (or more) peers ๐Ÿซถ and IETF docs are kinda all over the place with names for the players involved in OAM. Table 2 lays out which terms show up in each toolset we're covering in this doc ๐Ÿ’…

        +--------------------------+---------------------------+
        | Toolset                  | Terms                     |
        +--------------------------+---------------------------+
        | Ping / Traceroute        |- Host                     |
        | ([ICMPv4], [ICMPv6],     |- Node                     |
        |  [TCPIP-Tools])          |- Interface                |
        |                          |- Gateway                  |
        + ------------------------ + ------------------------- +
        | BFD [BFD]                |- System                   |
        + ------------------------ + ------------------------- +
        | MPLS OAM [MPLS-OAM-FW]   |- LSR                      |
        + ------------------------ + ------------------------- +
        | MPLS-TP OAM [TP-OAM-FW]  |- End Point - MEP          |
        |                          |- Intermediate Point - MIP |
        + ------------------------ + ------------------------- +
        | Pseudowire OAM [VCCV]    |- PE                       |
        |                          |- LCCE                     |
        + ------------------------ + ------------------------- +
        | OWAMP and TWAMP          |- Host                     |
        | ([OWAMP], [TWAMP])       |- End system               |
        + ------------------------ + ------------------------- +
        | TRILL OAM [TRILL-OAM]    |- RBridge                  |
        +--------------------------+---------------------------+

                  Table 2: Maintenance Point Terminology

2.2.6. Proactive and On-Demand Activation ๐Ÿฆ‹

an OAM tool can be activated in one of two basic ways, and the vibe is totally different for each ๐Ÿ‘€

  • Proactive - the tool runs on a continual basis, sending messages periodically. Errors get detected when a certain number of expected messages don't come through. ๐Ÿ’œ
  • On-demand - the tool gets activated "manually" to hunt down a specific anomaly. ๐Ÿ”

2.2.7. Connectivity Verification and Continuity Checks ๐ŸŒธ

there are two distinct classes of failure management functions in OAM protocols: Connectivity Verification and Continuity Checks ๐Ÿซ  the difference between them is defined in [MPLS-TP-OAM], and this doc uses them the same way

Continuity Check - these are used to verify that a destination is reachable. They're typically sent proactively, though they can totally be invoked on-demand too โœจ

Connectivity Verification - a Connectivity Verification function lets Alice check whether she's connected to Bob or not ๐Ÿ’– it's noted that the CV function runs in the data plane, but the "expected path" is predetermined in either the control plane or the management plane ๐Ÿง  a Connectivity Verification (CV) protocol typically sends a CV message, and then a CV reply comes back to the originator. A CV function can be applied proactively or on-demand, depending on the vibe.

Connectivity Verification tools often do path verification too ๐Ÿ›ฃ๏ธ so Alice can confirm that messages from Bob come in through the correct path. That means she's not just checking that the two MPs are connected, she's checking they're connected through the expected path, which helps catch unexpected topology changes. ๐Ÿ‘‘

Connectivity Verification functions can also be used to check the MTU of the path between the two peers ๐Ÿ“

Connectivity Verification and Continuity Checks are considered complementary mechanisms, and they're often used together ๐Ÿซถ they're a power couple honestly ๐Ÿ’…

2.2.8. Connection-Oriented vs. Connectionless Communication ๐ŸŒˆ

Connection-Oriented - in connection-oriented technologies, an end-to-end connection gets established before any data is sent. It's set up either by a control protocol or provisioned by a management system ๐Ÿงš

A connection identifier is typically used to identify the connection. In connection-oriented technologies, it's often the case (though not always) that all packets belonging to a specific connection take the same route through the network ๐Ÿ›ค๏ธ

Connectionless - in connectionless technologies, data is typically sent between end points with no prior arrangement ๐ŸŒŠ packets are routed independently based on their destination address, so different packets might be routed in different ways across the network ๐Ÿฆ‹

Discussion - the OAM tools in this doc include tools for connection-oriented technologies, and tools for connectionless ones too ๐ŸŽ€

In connection-oriented technologies, OAM is used to monitor a specific connection. OAM packets go through the same route as the data traffic and get the same treatment ๐Ÿ™Œ in connectionless technologies, OAM is used between a source and destination pair without defining a specific connection. Also, in some cases the route OAM packets take can be different from the one the data traffic takes ๐Ÿคฏ for example, the connectionless IP Ping (Section 4.1) tests reachability from a source to a given destination, while the connection-oriented LSP Ping (Section 4.4.1) monitors a specific LSP (connection) and can monitor all the available paths an LSP uses ๐Ÿ’…

It's worth noting that in some cases connectionless protocols get monitored by connection-oriented OAM protocols ๐Ÿ‘€ for example, even though IP is connectionless, it can be monitored by BFD (Section 4.3), which is connection oriented ๐Ÿ’ซ

2.2.9. Point-to-Point vs. Point-to-Multipoint Services ๐Ÿ“

Point-to-point (P2P) - a P2P service delivers data from a single source to a single destination ๐Ÿ’–

Point-to-multipoint (P2MP) - a P2MP service delivers data from a single source to a one or more destinations (based on [Signal]) ๐ŸŒธ

An MP2MP service delivers data from more than one source to one or more receivers (based on [Signal]) ๐Ÿซถ

Note: the two definitions for P2MP and MP2MP are quoted from [Signal]. Although [Signal] describes a specific case of P2MP and MP2MP that is MPLS-specific, these two definitions also apply to non-MPLS cases. ๐Ÿ“

Discussion - the OAM tools in this doc include tools for P2P services and tools for P2MP services ๐ŸŽ€

The P2P vs. P2MP split really changes which OAM tool you need. A P2P service is typically simpler to monitor, since it's just a single pair of endpoints ๐Ÿ˜Œ P2MP and MP2MP services come with more challenges. For example, in a P2MP service, the OAM mechanism doesn't only verify that each destination is reachable from the source. It also verifies that the P2MP distribution tree is intact and loop-free ๐ŸŒณ that's a lot of checking, bestie ๐Ÿ˜ญ

2.2.10. Failures ๐Ÿ’€

the terms "Failure", "Fault", and "Defect" get used interchangeably in the standards ๐Ÿคทโ€โ™€๏ธ they all refer to a malfunction that can be detected by a Connectivity Verification or a Continuity Check. Some standards, like 802.1ag [IEEE802.1Q], don't distinguish between these terms at all, while others give each one its own meaning ๐ŸŽญ

The terminology in IETF MPLS-TP OAM is based on ITU-T terminology, which splits these three terms up in [ITU-T-G.806] like this ๐Ÿ“š

Fault - the term "Fault" refers to an inability to perform a required action, e.g., an unsuccessful attempt to deliver a packet. ๐Ÿšซ

Defect - the term "Defect" refers to an interruption in normal operation, such as a consecutive period of time where no packets are delivered successfully. ๐Ÿ•ณ๏ธ

Failure - the term "Failure" refers to the termination of the required function. A Defect typically refers to a limited period of time, while a failure refers to a long period of time ๐Ÿ˜ฉ


3. OAM Functions ๐Ÿงš

this part gives a quick summary of the common OAM functions used in OAM-related standards ๐Ÿ’… these functions are the building blocks for the OAM standards we're covering in this doc.

  • Connectivity Verification (CV), Path Verification, and Continuity Check (CC): as defined in Section 2.2.7. ๐Ÿ’–
  • Path Discovery / Fault Localization: this function can be used to trace the route to a destination, i.e., to identify the nodes along the route to the destination. When more than one route is available to a specific destination, this function traces one of the available routes. When a failure occurs, this function tries to detect where the failure is. ๐Ÿ—บ๏ธ
    • Note that the term "route tracing" (or "Traceroute"), which is used in the context of IP and MPLS, is sometimes referred to as "path tracing" in the context of other protocols, such as TRILL. ๐Ÿฆ‹
  • Performance Monitoring: typically refers to: ๐Ÿ“ˆ
    • Loss Measurement (LM) - monitors the packet loss rate. ๐Ÿ“‰
    • Delay Measurement (DM) - monitors the delay and delay variation (jitter). โฑ๏ธ

4. OAM Tools in the IETF - A Detailed Description ๐Ÿ”ฅ

this section gets into the details of the sets of OAM-related tools in each of the toolsets in Table 1 ๐Ÿค“

4.1. IP Ping ๐Ÿ“

Ping is a super common network diagnostic app for IP networks that use ICMP ๐Ÿ’ซ according to [NetTerms], 'Ping' is short for Packet internet groper, though the term is used so much it kinda stands on its own now ๐Ÿ˜‚ as defined in [NetTerms], it's a program used to test reachability of destinations by sending them an ICMP Echo request and waiting for a reply.

The ICMP Echo request/reply exchange in Ping is used as a Continuity Check function for the Internet Protocol ๐Ÿซถ the originator sends an ICMP Echo request packet, and the receiver replies with an Echo reply. ICMP Ping has two variants: [ICMPv4] is used for IPv4, and [ICMPv6] is used for IPv6 ๐ŸŒˆ

Ping can be invoked to either a unicast destination or a multicast destination. In the multicast case, all members of the multicast group send an Echo reply back to the originator ๐Ÿ™Œ

Ping implementations typically use ICMP messages. UDP Ping is a variant that uses UDP messages instead of ICMP Echo messages ๐Ÿ›ฐ๏ธ

Ping is a single-ended Continuity Check, meaning it lets the initiator of the Echo request test reachability ๐ŸŽฏ if it's desirable for both ends to test reachability, both ends have to invoke Ping independently. Two separate Pings, babe ๐Ÿ’…

Note that since ICMP filtering is deployed in some routers and firewalls, the usefulness of Ping is sometimes limited in the wider Internet ๐Ÿšง this limitation is equally relevant to Traceroute too.

4.2. IP Traceroute โœจ

Okay bestie, Traceroute ๐Ÿ—บ๏ธ is an application that lets users discover a path between an IP source and an IP destination ([TCPIP-Tools], [NetTools]). It's giving detective energy.

The most common way to implement Traceroute [TCPIP-Tools] goes like this ๐Ÿ‘€. Traceroute sends a sequence of UDP packets to UDP port 33434 at the destination. By default it starts with three packets (you can configure the number in most Traceroute implementations), and each one has an IP Time-To-Live (or Hop Limit in IPv6) value of one. These packets expire as soon as they reach the first router on the path, so that router sends three ICMP Time Exceeded Messages back to the Traceroute application. Then Traceroute sends another three UDP packets, this time with a TTL value of 2, which makes the second router send back ICMP messages. It keeps going with ever-increasing TTL values until the packets actually reach the destination. Since no application listens on port 33434 at the destination, the destination returns ICMP Destination Unreachable Messages indicating an unreachable port. That's the signal that Traceroute is finished ๐Ÿ. The Traceroute program then displays the round-trip delay for each attempt. Iconic. ๐Ÿ’…

While Traceroute is a tool that finds a path from A to B, it should be noted that traffic from A to B is often forwarded through Equal-Cost Multipaths (ECMPs). Paris Traceroute [PARIS] is an extension to Traceroute that tries to discover all the available paths from A to B by scanning different values of header fields (such as UDP ports) in the probe packets. Main character energy ๐Ÿฆ‹.

It is noted that Traceroute is an application, and not a protocol. As such, it has various implementations. One of the most common ones uses UDP probe packets, as described above. Other implementations exist that use other types of probe messages, such as ICMP or TCP. ๐ŸŒธ

Note that IP routing may be asymmetric. While Traceroute discovers a path between a source and destination, it does not reveal the reverse path ๐Ÿ™ˆ.

A few ICMP extensions ([ICMP-MP], [ICMP-Int]) have been defined in the context of Traceroute. These documents define several extensions, including extensions to the ICMP Destination Unreachable message, that can be used by Traceroute applications. So many add-ons, so little time ๐Ÿงš

Traceroute allows path discovery to unicast destination addresses. A similar tool [mtrace] was defined for multicast destination addresses. It lets you trace the route that a multicast IP packet takes from a source to a particular receiver ๐ŸŽ€.


4.3. Bidirectional Forwarding Detection (BFD) ๐Ÿ’œ

4.3.1. Overview

Okay so, while a bunch of OAM tools exist for different protocols in the stack, Bidirectional Forwarding Detection [BFD], defined by the IETF BFD working group, is a generic OAM tool. It can be deployed over various encapsulating protocols and across various medium types ๐Ÿซถ. The IETF has defined variants for IP ([BFD-IP], [BFD-Multi]), for MPLS LSPs [BFD-LSP], and for pseudowires [BFD-VCCV]. The usage of BFD in MPLS-TP is defined in [TP-CC-CV]. Literally everywhere. โœจ

BFD includes two main OAM functions, using two types of BFD packets: BFD Control packets and BFD Echo packets. Two packet types, two jobs, zero drama ๐Ÿ’–.

4.3.2. Terminology

BFD operates between systems. The BFD protocol is run between two or more systems after establishing a session ๐Ÿ“.

4.3.3. BFD Control

BFD supports a bidirectional Continuity Check, using BFD Control packets that are exchanged within a BFD session. BFD sessions operate in one of two modes:

  • Asynchronous mode (i.e., proactive): in this mode, BFD Control packets are sent periodically. When the receiver detects that no BFD Control packets have been received during a predetermined period of time, a failure is reported. Tick tock, the receiver is always watching โฐ
  • Demand mode: in this mode, BFD Control packets are sent on demand. Upon need, a system initiates a series of BFD Control packets to check the continuity of the session. BFD Control packets are sent independently in each direction. Only when it's needed, bestie ๐Ÿ’….

Each of the endpoints (referred to as systems) of the monitored path maintains its own session identification, called a Discriminator. Both Discriminators are included in the BFD Control packets that are exchanged between the endpoints. At session establishment, the Discriminators are exchanged between the two endpoints. On top of that, the transmission (and reception) rate is negotiated between the two endpoints, based on information included in the control packets. These transmission rates may be renegotiated during the session ๐Ÿ”.

During normal operation of the session, i.e., when no failures have been detected, the BFD session is in the Up state. If no BFD Control packets are received during a period of time called the Detection Time, the session is declared to be Down ๐Ÿ˜ญ. The detection time is a function of the pre-configured or negotiated transmission rate and a parameter called Detect Mult. Detect Mult determines the number of missing BFD Control packets that cause the session to be declared as Down. This parameter is included in the BFD Control packet. Math, but make it cute ๐Ÿงฎ๐ŸŽ€.

4.3.4. BFD Echo

A BFD Echo packet is sent to a peer system and is looped back to the originator. The echo function can be used proactively or on demand ๐Ÿชž.

The BFD Echo function has been defined in BFD for IPv4 and IPv6 ([BFD-IP]), but it is not used in BFD for MPLS LSPs or PWs, or in BFD for MPLS-TP. Not everywhere, periodt ๐Ÿ™…โ€โ™€๏ธ.


4.4. MPLS OAM ๐ŸŽ€

The IETF MPLS working group has defined OAM for MPLS LSPs. The requirements and framework of this effort are defined in [MPLS-OAM-FW] and [MPLS-OAM], respectively. The corresponding OAM tool defined in this context is LSP Ping [LSP-Ping]. OAM for P2MP services is defined in [MPLS-P2MP].

BFD for MPLS [BFD-LSP] is an alternative means for detecting data-plane failures, as described below ๐Ÿ‘‘.

4.4.1. LSP Ping

LSP Ping is modeled after the Ping/Traceroute paradigm, so it may be used in one of two modes:

  • "Ping" mode: In this mode, LSP Ping is used for end-to-end Connectivity Verification between two LERs.
  • "Traceroute" mode: This mode is used for hop-by-hop fault isolation.

LSP Ping is based on the ICMP Ping operation (of data-plane Connectivity Verification) with additional functionality to verify data-plane vs. control-plane consistency for a Forwarding Equivalence Class (FEC), and also to identify Maximum Transmission Unit (MTU) problems. Two checks in one, bestie ๐Ÿง .

The Traceroute functionality may be used to isolate and localize MPLS faults. It uses the Time-To-Live (TTL) indicator to incrementally identify the sub-path of the LSP that is successfully traversed before the faulty link or node. Breadcrumbs all the way to the problem ๐Ÿž.

The challenge in MPLS networks is that the traffic of a given LSP may be load-balanced across Equal-Cost Multipaths (ECMPs). LSP Ping monitors all the available paths of an LSP by monitoring its different FECs. Note that MPLS-TP does not use ECMP, and thus does not require OAM over multiple paths ๐ŸŒˆ.

Another challenge is that an MPLS LSP does not necessarily have a return path. Traffic that is sent back from the egress LSR to the ingress LSR is not necessarily sent over an MPLS LSP. It can be sent through a different route, such as an IP route. Thus, responding to an LSP Ping message is not necessarily as trivial as in IP Ping, where the responder just swaps the source and destination IP addresses. Note that this challenge is not applicable to MPLS-TP, where a return path is always available. Okay, that's a whole plot twist ๐Ÿ˜ญ.

It should be noted that LSP Ping supports unique identification of the LSP within an addressing domain. The identification is checked using the full FEC identification. LSP Ping is extensible to include additional information needed to support new functionality, by use of Type-Length-Value (TLV) constructs. The usage of TLVs is typically handled by the control plane, as it is not easy to implement in hardware ๐Ÿ› ๏ธ.

LSP Ping supports both asynchronous and on-demand activation โœจ.

4.4.2. BFD for MPLS

BFD [BFD-LSP] can be used to detect MPLS LSP data-plane failures.

A BFD session is established for each MPLS LSP that is being monitored. BFD Control packets must be sent along the same path as the monitored LSP. If the LSP is associated with multiple FECs, a BFD session is established for each FEC. Same path, every FEC, no exceptions ๐Ÿซก.

While LSP Ping can be used for detecting MPLS data-plane failures and for verifying the MPLS LSP data plane against the control plane, BFD can only be used for the former. BFD can be used in conjunction with LSP Ping, as is the case in MPLS-TP (see Section 4.5.4). Tag team era ๐Ÿ‘ฏโ€โ™€๏ธ.

4.4.3. OAM for Virtual Private Networks (VPNs) over MPLS

The IETF has defined two classes of VPNs: Layer 2 VPNs (L2VPNs) and Layer 3 VPNs (L3VPNs). [L2VPN-OAM] provides the requirements and framework for OAM in the context of L2VPNs, and specifically it also defines the OAM layering of L2VPNs over MPLS. [L3VPN-OAM] provides a framework for the operation and management of L3VPNs ๐Ÿฐ.


4.5. MPLS-TP OAM ๐Ÿฆ‹

4.5.1. Overview

The MPLS working group has defined the OAM toolset that fulfills the requirements for MPLS-TP OAM. The full set of requirements for MPLS-TP OAM are defined in [MPLS-TP-OAM]. These include both general requirements for the behavior of the OAM tools and a set of operations that should be supported by the OAM toolset. The mechanisms required are further elaborated in [TP-OAM-FW], which describes the general architecture of the OAM system and also gives overviews of the functionality of the OAM toolset ๐Ÿ“š.

Some of the basic requirements for the OAM toolset for MPLS-TP are:

  • MPLS-TP OAM must be able to support both an IP-based environment and a non-IP-based environment. If the network is IP based, i.e., IP routing and forwarding are available, then the MPLS-TP OAM toolset should rely on the IP routing and forwarding capabilities. On the other hand, in environments where IP functionality is not available, the OAM tools must still be able to operate without dependence on IP forwarding and routing. Flexible is the new iconic ๐Ÿคธโ€โ™€๏ธ.
  • OAM packets and the user traffic are required to be congruent (i.e., OAM packets are transmitted in-band), and there is a need to differentiate OAM packets from ordinary user packets in the data plane. Inherent in this requirement is the principle that MPLS-TP OAM be independent of any existing control plane, although it should not preclude use of the control-plane functionality. OAM packets are identified by the Generic Associated Channel Label (GAL), which is a reserved MPLS label value (13). Label 13 is giving VIP ๐Ÿ‘‘๐ŸŒŸ.

4.5.2. Terminology ๐Ÿ’…

okay bestie, let's get the vocab down first ๐Ÿงš these terms show up everywhere in MPLS-TP OAM ๐Ÿ”ฅ

Maintenance Entity (ME)

The MPLS-TP OAM tools are designed to monitor and manage a Maintenance Entity (ME) ๐Ÿ‘€ An ME, as defined in [TP-OAM-FW], is a relationship between two points of a transport path that maintenance and monitoring operations apply to.

The term "Maintenance Entity (ME)" is used in ITU-T Recommendations (e.g., [ITU-T-Y1731]), as well as in the MPLS-TP terminology ([TP-OAM-FW]). it's giving standards crossover ๐Ÿ’–

Maintenance Entity Group (MEG)

A bunch of one or more MEs that belong to the same transport path and get maintained and monitored as a group? That's a Maintenance Entity Group (based on [TP-OAM-FW]) ๐ŸŒธ

Maintenance Point (MP)

A Maintenance Point (MP) is a functional entity defined at a node in the network that can initiate and/or react to OAM messages โœจ This document focuses on the data-plane functionality of MPs, but MPs also interact with the control plane and with the management plane ๐Ÿฆ‹

The term "MP" is used in IEEE 802.1ag and was similarly adopted in MPLS-TP ([TP-OAM-FW]). the vibes are consistent across protocols ๐Ÿซถ

MEG End Point (MEP)

A MEG End Point (MEP) is one of the endpoints of an ME. It can initiate OAM messages and respond to them (based on [TP-OAM-FW]) ๐Ÿ’…

MEG Intermediate Point (MIP)

In between MEPs, there are zero or more intermediate points, called MEG Intermediate Points (based on [TP-OAM-FW]) ๐ŸŒˆ

A MEG Intermediate Point (MIP) is an intermediate point that does not generally initiate OAM frames (one exception to this is the use of AIS notifications) but is able to respond to OAM frames that are destined to it. A MIP in MPLS-TP identifies OAM packets destined to it by the expiration of the TTL field in the OAM packet ๐Ÿ™ˆ The term "Maintenance Point" is a general term for MEPs and MIPs, so MEPs and MIPs are both under that umbrella ๐Ÿ‘‘

Up and Down MEPs

IEEE 802.1ag [IEEE802.1Q] defines a distinction between Up MEPs and Down MEPs ๐Ÿ“ A MEP monitors traffic in either the direction facing the network or the direction facing the bridge. A Down MEP is a MEP that receives OAM packets from and transmits them to the direction of the network. An Up MEP receives OAM packets from and transmits them to the direction of the bridging entity. MPLS-TP ([TP-OAM-FW]) uses a similar distinction on the placement of the MEP, at either the ingress, egress, or forwarding function of the node (Down / Up MEPs). This placement is important for localization of a failure ๐Ÿ’œ

Note that the terms "Up MEP" and "Down MEP" are entirely unrelated to the conventional "Up"/"Down" terminology, where "Down" means faulty and "Up" means not faulty. don't mix these up, bestie ๐Ÿ™…โ€โ™€๏ธ

The distinction between Up and Down MEPs was defined in [TP-OAM-FW], but has not been used in other MPLS-TP RFCs, as of the writing of this document ๐Ÿฅบ

4.5.3. Generic Associated Channel ๐Ÿฆ‹

In order to address the requirement for in-band transmission of MPLS-TP OAM traffic, MPLS-TP uses a Generic Associated Channel (G-ACh), defined in [G-ACh] for LSP-based OAM traffic. This mechanism is based on the same concepts as the PWE3 ACH [PW-ACH] and VCCV [VCCV] mechanisms. However, to address the needs of LSPs as differentiated from PW, the following concepts were defined for [G-ACh]:

  • An Associated Channel Header (ACH), which uses a format similar to the PW Control Word [PW-ACH], is a 4-byte header that is prepended to OAM packets.
  • A Generic Associated Channel Label (GAL). The GAL is a reserved MPLS label value (13) that indicates that the packet is an ACH packet and the payload follows immediately after the label stack.

It should be noted that while the G-ACh was defined as part of the MPLS-TP definition effort, the G-ACh is a generic tool that can be used in MPLS in general, and not only in MPLS-TP ๐ŸŒŸ

4.5.4. MPLS-TP OAM Toolset ๐Ÿงฐ

To address the functionality that is required of the OAM toolset, the MPLS WG conducted an analysis of the existing IETF and ITU-T OAM tools and their ability to fulfill the required functionality ๐Ÿ” The conclusions of this analysis are documented in [OAM-Analys]. MPLS-TP uses a mixture of OAM tools that are based on previous standards and adapted to the requirements of [MPLS-TP-OAM]. Some of the main building blocks of this solution are based on:

  • Bidirectional Forwarding Detection ([BFD], [BFD-LSP]) for proactive Continuity Check and Connectivity Verification.
  • LSP Ping as defined in [LSP-Ping] for on-demand Connectivity Verification.
  • New protocol packets, using G-ACH, to address different functionality.
  • Performance measurement protocols.

The following subsections describe the OAM tools defined for MPLS-TP as described in [TP-OAM-FW] โœจ

4.5.4.1. Continuity Check and Connectivity Verification ๐Ÿ’–

Continuity Checks and Connectivity Verification are presented in Section 2.2.7 of this document. As presented there, these tools may be used either proactively or on demand. When using these tools proactively, they are generally used in tandem ๐Ÿซถ

For MPLS-TP there are two distinct tools: the proactive tool is defined in [TP-CC-CV], while the on-demand tool is defined in [OnDemand-CV]. In on-demand mode, this function should support monitoring between the MEPs and, in addition, between a MEP and MIP. [TP-OAM-FW] highlights, when performing Connectivity Verification, the need for the CC-V messages to include unique identification of the MEG that is being monitored and the MEP that originated the message ๐Ÿ‘€

The proactive tool [TP-CC-CV] is based on extensions to BFD (see Section 4.3) with the additional limitation that the transmission and receiving rates are based on configuration by the operator. The on-demand tool [OnDemand-CV] is an adaptation of LSP Ping (see Section 4.4.1) for the required behavior of MPLS-TP ๐ŸŽ€

4.5.4.2. Route Tracing ๐Ÿ—บ๏ธ

[MPLS-TP-OAM] defines that there is a need for functionality that would allow a path endpoint to identify the intermediate and endpoints of the path. This function would be used in on-demand mode. Normally, this path will be used for bidirectional PW, LSP, and Sections; however, unidirectional paths may be supported only if a return path exists. The tool for this is based on the LSP Ping (see Section 4.4.1) functionality and is described in [OnDemand-CV] ๐Ÿงš

4.5.4.3. Lock Instruct ๐Ÿ”’

The Lock Instruct function [Lock-Loop] is used to notify a transport-path endpoint of an administrative need to disable the transport path. This functionality will generally be used in conjunction with some intrusive OAM function, e.g., performance measurement or diagnostic testing, to minimize the side-effect on user data traffic ๐Ÿซง

4.5.4.4. Lock Reporting ๐Ÿ“ฃ

Lock Reporting is a function used by an endpoint of a path to report to its far-end endpoint that a lock condition has been affected on the path ๐Ÿ’…

4.5.4.5. Alarm Reporting ๐Ÿšจ

Alarm reporting [TP-Fault] provides the means to suppress alarms following detection of defect conditions at the server sub-layer. Alarm reporting is used by an intermediate point of a path, that becomes aware of a fault on the path, to report to the endpoints of the path. [TP-OAM-FW] states that this may occur as a result of a defect condition discovered at a server sub-layer. This generates an Alarm Indication Signal (AIS) that continues until the fault is cleared. The consequent action of this function is detailed in [TP-OAM-FW] ๐Ÿ˜ญ

4.5.4.6. Remote Defect Indication ๐Ÿ™ˆ

Remote Defect Indication (RDI) is used proactively by a path endpoint to report to its peer endpoint that a defect is detected on a bidirectional connection between them. [MPLS-TP-OAM] points out that this function may be applied to a unidirectional LSP only if a return path exists. [TP-OAM-FW] points out that this function is associated with the proactive CC-V function ๐ŸŒธ

4.5.4.7. Client Failure Indication ๐Ÿซถ

Client Failure Indication (CFI) is defined in [MPLS-TP-OAM] to allow the propagation information from one edge of the network to the other. The information concerns a defect to a client, in the case that the client does not support alarm notification ๐Ÿ’œ

4.5.4.8. Performance Monitoring ๐Ÿ“Š

The definition of MPLS performance monitoring was motivated by the MPLS-TP requirements [MPLS-TP-OAM] but was defined generically for MPLS in [MPLS-LM-DM]. An additional document [TP-LM-DM] defines a performance monitoring profile for MPLS-TP โœจ

4.5.4.8.1. Packet Loss Measurement (LM) ๐Ÿ“‰

Packet Loss Measurement is a function used to verify the quality of the service. Packet loss, as defined in [IPPM-1LM] and [MPLS-TP-OAM], indicates the ratio of the number of user packets lost to the total number of user packets sent during a defined time interval ๐Ÿ’–

There are two possible ways of determining this measurement:

  • Using OAM packets, it is possible to compute the statistics based on a series of OAM packets. This, however, has the disadvantage of being artificial and may not be representative since part of the packet loss may be dependent upon packet sizes and upon the implementation of the MEPs that take part in the protocol. ๐Ÿ™ƒ
  • Delimiting messages can be sent at the start and end of a measurement period during which the source and sink of the path count the packets transmitted and received. After the end delimiter, the ratio would be calculated by the path OAM entity. ๐Ÿงฎ

4.5.4.8.2. Packet Delay Measurement (DM) โฑ๏ธ

Packet Delay Measurement is a function that is used to measure one-way or two-way delay of a packet transmission between a pair of the endpoints of a path (PW, LSP, or Section). Where:

  • One-way packet delay, as defined in [IPPM-1DM], is the time elapsed from the start of transmission of the first bit of the packet by a source node until the reception of the last bit of that packet by the destination node. Note that one-way delay measurement requires the clocks of the two endpoints to be synchronized. โฐ
  • Two-way packet delay, as defined in [IPPM-2DM], is the time elapsed from the start of transmission of the first bit of the packet by a source node until the reception of the last bit of the looped-back packet by the same source node, when the loopback is performed at the packet's destination node. Note that due to possible path asymmetry, the one-way packet delay from one endpoint to another is not necessarily equal to half of the two-way packet delay. As opposed to one-way delay measurement, two-way delay measurement does not require the two endpoints to be synchronized. ๐Ÿ”

For each of these two metrics, the DM function allows the MEP to measure the delay, as well as the delay variation. Delay measurement is performed by exchanging timestamped OAM packets between the participating MEPs ๐ŸŒˆ

4.6. Pseudowire OAM ๐ŸŽ€

4.6.1. Pseudowire OAM Using Virtual Circuit Connectivity Verification (VCCV) ๐Ÿงš

okay so VCCV (as defined in [VCCV]) gives PWs end-to-end fault detection and diagnostic tools, no matter what tunneling tech is underneath ๐Ÿ’… The VCCV switching function sets up a Control Channel for each PW. [VCCV] defines three Control Channel (CC) types, which are three different ways to send and identify OAM messages โœจ

  • Control Channel Type 1: In-band VCCV, as described in [VCCV], is also called "PWE3 Control Word with 0001b as first nibble". It uses the PW Associated Channel Header [PW-ACH]. ๐Ÿฆ‹
  • Control Channel Type 2: Out-of-band VCCV, as described in [VCCV], is also called "MPLS Router Alert Label". Here the Control Channel gets created by using the MPLS router alert label [MPLS-ENCAPS] immediately above the PW label. ๐ŸŒธ
  • Control Channel Type 3: TTL expiry VCCV, as described in [VCCV], is also called "MPLS PW Label with TTL == 1". So the Control Channel is identified when the TTL field in the PW label is set to 1. ๐Ÿ’œ

VCCV currently supports ICMP Ping, LSP Ping, and BFD tools ๐Ÿ”ฅ ICMP and LSP Ping get IP encapsulated before they're sent over the PW ACH. BFD for VCCV [BFD-VCCV] supports two encapsulation modes, either IP/UDP encapsulated (with IP/UDP header) or PW-ACH encapsulated (with no IP/UDP header), and it can also signal the AC status. The VCCV Control Channel gives the context, based on the MPLS-PW label, needed to bind and bootstrap the BFD session to a particular pseudowire (FEC). That means no need to exchange Discriminator values, which is so efficient, bestie ๐Ÿ™ˆ

VCCV has two components: (1) the signaled component, which communicates VCCV capabilities as part of the VC label, and (2) the switching component, which makes the PW payload get treated as a control packet. ๐ŸŽ€

VCCV is not directly dependent on a control plane being present. The VCCV capability advertisement may be done as part of the PW signaling when LDP is used. If the PW is configured manually, it's the operator's job to set consistent options at both ends. The manual option was created specifically for MPLS-TP use cases where no control plane was required. But new use cases, like pure mobile backhaul, find this functionality useful too ๐Ÿงš

The PWE3 working group ran an implementation survey of VCCV [VCCV-SURVEY] that looks at which VCCV mechanisms actually get used in practice. Iconic research energy ๐Ÿ‘‘

4.6.2. Pseudowire OAM Using G-ACh ๐Ÿฆ‹

As mentioned above, VCCV enables OAM for PWs by using a Control Channel for OAM packets. When PWs are used in MPLS-TP networks, the G-ACh can be used as an alternative Control Channel instead of the Control Channels defined in VCCV. The usage of the G-ACh for PWs is defined in [PW-G-ACh] โœจ

4.6.3. Attachment Circuit - Pseudowire Mapping ๐ŸŒˆ

The PWE3 working group defined a mapping and notification of defect states between a pseudowire (PW) and the Attachment Circuits (ACs) of the end-to-end emulated service. This mapping is super important for the end-to-end functionality, ngl ๐Ÿ˜ญ Specifically, the mapping is provided by [PW-MAP], by [L2TP-EC] for L2TPv3 pseudowires, and by Section 5.3 of [ATM-L2] for ATM.

[L2VPN-OAM] gives the requirements and framework for OAM in the context of Layer 2 Virtual Private Networks (L2VPNs). It also specifically defines the OAM layering of L2VPNs over pseudowires ๐Ÿซถ

The mapping defined in [Eth-Int] allows an end-to-end emulated Ethernet service over pseudowires. Slay ๐Ÿ’…


4.7. OWAMP and TWAMP ๐ŸŽ€

4.7.1. Overview โœจ

The IPPM working group in the IETF defines common criteria and metrics for measuring the performance of IP traffic ([IPPM-FW]). Some of the key RFCs published by this group define metrics for measuring connectivity [IPPM-Con], delay ([IPPM-1DM], [IPPM-2DM]), and packet loss [IPPM-1LM]. It should be noted that the IETF's work on performance metrics isn't limited to IP networks. [PM-CONS] presents general guidelines for considering new performance metrics ๐Ÿงš

The IPPM working group has defined not only metrics for performance measurement but also protocols that define how the measurement is carried out. The One-Way Active Measurement Protocol [OWAMP] and the Two-Way Active Measurement Protocol [TWAMP] each define a method and protocol for measuring performance metrics in IP networks ๐Ÿ”ฅ

OWAMP [OWAMP] enables measurement of one-way characteristics of IP networks, such as one-way packet loss and one-way delay. For its proper operation, OWAMP requires accurate time-of-day setting at its endpoints โฐ

TWAMP [TWAMP] is a similar protocol that enables measurement of both one-way and two-way (round-trip) characteristics ๐Ÿ’œ

OWAMP and TWAMP are each made up of two separate protocols:

  • OWAMP-Control/TWAMP-Control: used to initiate, start, and stop test sessions and to fetch their results. Continuity Check and Connectivity Verification are tested and confirmed by establishing the OWAMP/TWAMP Control Protocol TCP connection. ๐ŸŒธ
  • OWAMP-Test/TWAMP-Test: used to exchange test packets between two measurement nodes. It enables the loss and delay measurement functions, as well as detection of other anomalies, such as packet duplication and packet reordering. ๐Ÿฆ‹

It should be noted that while [OWAMP] and [TWAMP] define tools for performance measurement, they do not define the accuracy of these tools. The accuracy depends on scale, implementation, and network configurations ๐Ÿ™ˆ

Alternative protocols for performance monitoring are defined, for example, in MPLS-TP OAM ([MPLS-LM-DM], [TP-LM-DM]) and in Ethernet OAM [ITU-T-Y1731] ๐ŸŒˆ

4.7.2. Control and Test Protocols ๐Ÿงš

OWAMP and TWAMP control protocols run over TCP, while the test protocols run over UDP. The control protocols initiate, start, and stop test sessions, and in OWAMP they also fetch results. The test protocols send test packets (which contain sequence numbers and timestamps) along the IP path under test according to a schedule, and they record statistics of packet arrival ๐Ÿ“Š Multiple sessions may be defined at the same time, each with a session identifier. Each one defines the number of packets to be sent, the amount of padding to be added (and thus the packet size), the start time, and the send schedule. The schedule can be either a constant time between test packets or exponentially distributed pseudorandomly. Recorded statistics conform to the relevant IPPM RFCs ๐Ÿ’…

From a security perspective, OWAMP and TWAMP test packets are hard to detect, because they're simply UDP streams between negotiated port numbers with potentially nothing static in the packets. OWAMP and TWAMP also include optional authentication and encryption for both control and test packets. Hidden in plain sight, periodt ๐Ÿ”’

Security note: the hard-to-detect test packets are a big deal, so keep an eye on your negotiated port numbers and turn on the optional authentication and encryption if you can ๐Ÿซถ

4.7.3. OWAMP ๐ŸŽ€

OWAMP defines the following logical roles: Session-Sender, Session-Receiver, Server, Control-Client, and Fetch-Client. The Session-Sender originates test traffic that the Session-Receiver receives. The Server configures and manages the session, and it also returns the results. The Control-Client initiates requests for test sessions, triggers their start, and may trigger their termination. The Fetch-Client requests the results of a completed session. Multiple roles can be combined in a single host. For example, one host can play the roles of Control-Client, Fetch-Client, and Session-Sender, while a second host plays the roles of Server and Session-Receiver ๐Ÿงš

In a typical OWAMP session, the Control-Client establishes a TCP connection to port 861 of the Server. The Server responds with a Server greeting message indicating its supported security/integrity modes. The Control-Client responds with the chosen communications mode, and the Server accepts the mode. Then the Control-Client requests and fully describes a test session. The Server responds with its acceptance and supporting information. More than one test session may be requested with additional messages. The Control-Client then starts a test session. The Server acknowledges it and then instructs the Session-Sender to start the test. The Session-Sender sends test packets with pseudorandom padding to the Session-Receiver until the session is complete or until the Control-Client stops the session ๐Ÿ”ฅ

Once finished, the Session-Sender reports to the Server, which recovers data from the Session-Receiver. The Fetch-Client can then send a fetch request to the Server. The Server responds with an acknowledgement and, right after that, the result data ๐ŸŒธ

4.7.4. TWAMP ๐ŸŒˆ

TWAMP defines the following logical roles: Session-Sender, Session-Reflector, Server, and Control-Client. They're similar to the OWAMP roles, except the Session-Reflector doesn't collect any packet information, and there's no need for a Fetch-Client ๐Ÿ’œ

In a typical TWAMP session, the Control-Client establishes a TCP connection to port 862 of the Server, and the mode gets negotiated as in OWAMP. The Control-Client then requests sessions and starts them. The Session-Sender sends test packets with pseudorandom padding to the Session-Reflector, which returns them with timestamps inserted ๐Ÿฆ‹


4.8. TRILL ๐Ÿ

The requirements of OAM in TRILL are defined in [TRILL-OAM]. The challenge in TRILL OAM, much like in MPLS networks, is that traffic between RBridges RB1 and RB2 may be forwarded through more than one path. So an OAM protocol between RBridges RB1 and RB2 must be able to monitor all the available paths between the two RBridges ๐Ÿ˜ญ

While this document was being written, the detailed definition of the TRILL OAM tools was still a work in progress. This subsection presents the main requirements of TRILL OAM โœจ

The main requirements defined in [TRILL-OAM] are:

  • Continuity Checking (CC) - the TRILL OAM protocol must support a function for CC between any two RBridges RB1 and RB2. ๐Ÿ”
  • Connectivity Verification (CV) - connectivity between two RBridges RB1 and RB2 can be verified on a per-flow basis. ๐ŸŽฏ
  • Path Tracing - allows an RBridge to trace all the available paths to a peer RBridge. ๐Ÿ—บ๏ธ
  • Performance monitoring - allows an RBridge to monitor the packet loss and packet delay to a peer RBridge. ๐Ÿ“ˆ

5. Summary ๐Ÿ‘‘

This section summarizes the OAM tools and functions presented in this document. It's an index to some of the main OAM tools defined in the IETF. This compact index can be useful to all readers, from network operators to standards development organizations. The summary also includes a short subsection that gives some guidance to network equipment vendors ๐Ÿ’…

5.1. Summary of OAM Tools ๐ŸŒธ

This subsection gives a short summary of each of the OAM toolsets described in this document ๐Ÿงš

A detailed list of the RFCs related to each toolset is given in Appendix A.1 โœจ

+-----------+------------------------------------------+------------+
| Toolset   | Description                              | Transport  |
|           |                                          | Technology |
+-----------+------------------------------------------+------------+
|IP Ping    | Ping ([IntHost], [NetTerms]) is a simple | IPv4/IPv6  |
|           | application for testing reachability that|            |
|           | uses ICMP Echo messages ([ICMPv4],       |            |
|           | [ICMPv6]).                               |            |

5.2. Summary of OAM Functions โœจ

Okay so this part is basically the cheat sheet ๐Ÿ“‹๐Ÿ’–. Table 4 shows which OAM functions each toolset supports. The columns are the typical OAM functions from Section 1.3, so you can see at a glance who does what.

+-----------+----------+-------------+----------+----------+-----------+
|           |Continuity|Connectivity |Path      |Perf.     |Other      |
| Toolset   |Check     |Verification |Discovery |Monitoring|Functions  |
|           |          |             |          |          |           |
+-----------+----------+-------------+----------+----------+-----------+
|IP Ping    |Echo      |             |          |          |           |
+-----------+----------+-------------+----------+----------+-----------+
|IP         |          |             |Traceroute|          |           |
|Traceroute |          |             |          |          |           |
+-----------+----------+-------------+----------+----------+-----------+
|BFD        |BFD       |BFD Control  |          |          |RDI using  |
|           |Control/  |             |          |          |BFD Control|
|           |Echo      |             |          |          |           |
+-----------+----------+-------------+----------+----------+-----------+
|MPLS OAM   |          |"Ping" mode  |"Trace-   |          |           |
|(LSP Ping) |          |             |route"    |          |           |
|           |          |             |mode      |          |           |
+-----------+----------+-------------+----------+----------+-----------+
|MPLS-TP    |CC        |CV/proactive |Route     |-LM       |-Diagnostic|
|OAM        |          |or on demand |Tracing   |-DM       | Test      |
|           |          |             |          |          |-Lock      |
|           |          |             |          |          |-Alarm     |
|           |          |             |          |          | Reporting |
|           |          |             |          |          |-Client    |
|           |          |             |          |          | Failure   |
|           |          |             |          |          | Indication|
|           |          |             |          |          |-RDI       |
+-----------+----------+-------------+----------+----------+-----------+
|Pseudowire |BFD       |-BFD         |LSP Ping  |          |           |
|OAM        |          |-ICMP Ping   |          |          |           |
|           |          |-LSP Ping    |          |          |           |
+-----------+----------+-------------+----------+----------+-----------+
|OWAMP and  |     - control          |          |-DM       |           |
|TWAMP      |      protocol          |          |-LM       |           |
+-----------+----------+-------------+----------+----------+-----------+
|TRILL OAM  |CC        |CV           |Path      |-DM       |           |
|           |          |             |tracing   |-LM       |           |
+-----------+----------+-------------+----------+----------+-----------+

       Table 4: Summary of the OAM Functionality in IETF OAM Tools

5.3. Guidance to Network Equipment Vendors ๐Ÿ”ฅ

As mentioned in Section 1.4, OAM tools need to be able to test the actual data plane with as much accuracy as possible ๐ŸŽฏ. I know, it sounds super obvious, but it's still worth saying out loud. The big thing here is fate-sharing between OAM traffic that monitors the data plane and the data-plane traffic it's monitoring. Basically, the checker should be stuck in the same boat as the stuff it's checking ๐Ÿšฃโ€โ™€๏ธ๐Ÿ’•.

6. Security Considerations ๐Ÿ’€

Okay, this section is serious, bestie ๐Ÿ™ˆ. OAM is tightly coupled with the stability of the network. If someone successfully attacks an OAM protocol, they can create a false illusion of failures that don't exist, or stop real failures from being detected. In both cases, the attack may result in denial of service ๐Ÿ˜ญ.

Some OAM tools in this document have security mechanisms that provide integrity protection, which stops attackers from forging or tampering with OAM packets ๐Ÿ›ก๏ธ. For example, [BFD] includes an optional authentication mechanism for BFD Control packets, using either SHA1, MD5, or a simple password. [OWAMP] and [TWAMP] have three modes of security: unauthenticated, authenticated, and encrypted. The authentication uses SHA1 as the HMAC algorithm, and the encrypted mode uses AES encryption ๐Ÿ”.

Confidentiality is typically not considered a requirement for OAM protocols. Still, using encryption (for example, [OWAMP] and [TWAMP]) can make it harder for attackers to spot OAM packets, which makes it more difficult to attack the OAM protocol ๐Ÿฆ‹.

OAM can also be used for network reconnaissance, which is giving villain arc ๐Ÿ˜ค. Information about addresses, port numbers, the network topology, and performance can be gathered either by passively eavesdropping on OAM packets, or by actively sending OAM packets and collecting info from the responses. That info can then be used maliciously to attack the network. Note that some of this information, such as addresses and port numbers, can be gathered even when encryption is used ([OWAMP], [TWAMP]) ๐Ÿซฃ.

For further details about the security considerations of each OAM protocol, the reader is encouraged to review the Security Considerations section of each document referenced by this memo ๐Ÿ“šโœจ.

7. Acknowledgments ๐Ÿซถ

The authors gratefully acknowledge Sasha Vainshtein, Carlos Pignataro, David Harrington, Dan Romascanu, Ron Bonica, Benoit Claise, Stewart Bryant, Tom Nadeau, Elwyn Davies, Al Morton, Sam Aldrin, Thomas Narten, and other members of the OPSA WG for their helpful comments on the mailing list ๐Ÿ’œ. Literal main character energy from all of them.

This document was originally prepared using 2-Word-v2.0.template.dot.

8. References ๐Ÿ“–

8.1. Normative References

  • [OAM-Def] Andersson, L., van Helvoort, H., Bonica, R., Romascanu, D., and S. Mansfield, "Guidelines for the Use of the "OAM" Acronym in the IETF", BCP 161, RFC 6291, June 2011.

8.2. Informative References

  • [ATM-L2] Singh, S., Townsley, M., and C. Pignataro, "Asynchronous Transfer Mode (ATM) over Layer 2 Tunneling Protocol Version 3 (L2TPv3)", RFC 4454, May 2006.
  • [BFD] Katz, D. and D. Ward, "Bidirectional Forwarding Detection (BFD)", RFC 5880, June 2010.
  • [BFD-Gen] Katz, D. and D. Ward, "Generic Application of Bidirectional Forwarding Detection (BFD)", RFC 5882, June 2010.
  • [BFD-IP] Katz, D. and D. Ward, "Bidirectional Forwarding Detection (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881, June 2010.
  • [BFD-LSP] Aggarwal, R., Kompella, K., Nadeau, T., and G. Swallow, "Bidirectional Forwarding Detection (BFD) for MPLS Label Switched Paths (LSPs)", RFC 5884, June 2010. ๐Ÿฆ‹
  • [BFD-Multi] Katz, D. and D. Ward, "Bidirectional Forwarding Detection (BFD) for Multihop Paths", RFC 5883, June 2010. ๐ŸŒธ
  • [BFD-VCCV] Nadeau, T., Ed., and C. Pignataro, Ed., "Bidirectional Forwarding Detection (BFD) for the Pseudowire Virtual Circuit Connectivity Verification (VCCV)", RFC 5885, June 2010. ๐Ÿ’œ
  • [Comp] Bonaventure, O., "Computer Networking: Principles, Protocols and Practice", 2008. ๐Ÿ“š
  • [Dup] Uijterwaal, H., "A One-Way Packet Duplication Metric", RFC 5560, May 2009. โœจ
  • [Eth-Int] Mohan, D., Ed., Bitar, N., Ed., Sajassi, A., Ed., DeLord, S., Niger, P., and R. Qiu, "MPLS and Ethernet Operations, Administration, and Maintenance (OAM) Interworking", RFC 7023, October 2013. ๐ŸŽ€
  • [G-ACh] Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed., "MPLS Generic Associated Channel", RFC 5586, June 2009. ๐Ÿงš
  • [ICMP-Ext] Bonica, R., Gan, D., Tappan, D., and C. Pignataro, "ICMP Extensions for Multiprotocol Label Switching", RFC 4950, August 2007. ๐Ÿ“
  • [ICMP-Int] Atlas, A., Ed., Bonica, R., Ed., Pignataro, C., Ed., Shen, N., and JR. Rivers, "Extending ICMP for Interface and Next-Hop Identification", RFC 5837, April 2010. ๐ŸŒˆ
  • [ICMP-MP] Bonica, R., Gan, D., Tappan, D., and C. Pignataro, "Extended ICMP to Support Multi-Part Messages", RFC 4884, April 2007. ๐Ÿ’…
  • [ICMPv4] Postel, J., "Internet Control Message Protocol", STD 5, RFC 792, September 1981. ๐Ÿ‘‘
  • [ICMPv6] Conta, A., Deering, S., and M. Gupta, Ed., "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification", RFC 4443, March 2006. ๐Ÿซถ
  • [IEEE802.1Q] IEEE, "IEEE Standard for Local and metropolitan area networks - Media Access Control (MAC) Bridges and Virtual Bridged Local Area Networks", IEEE 802.1Q, October 2012. ๐Ÿ”ฅ
  • [IEEE802.3ah] IEEE, "IEEE Standard for Information technology - Local and metropolitan area networks - Carrier sense multiple access with collision detection (CSMA/CD) access method and physical layer specifications", IEEE 802.3ah, clause 57, December 2008. โญ
  • [IntHost] Braden, R., Ed., "Requirements for Internet Hosts - Communication Layers", STD 3, RFC 1122, October 1989. ๐Ÿฆ‹
  • [IPPM-1DM] Almes, G., Kalidindi, S., and M. Zekauskas, "A One-way Delay Metric for IPPM", RFC 2679, September 1999. ๐ŸŒธ
  • [IPPM-1LM] Almes, G., Kalidindi, S., and M. Zekauskas, "A One-way Packet Loss Metric for IPPM", RFC 2680, September 1999. ๐Ÿ’œ
  • [IPPM-2DM] Almes, G., Kalidindi, S., and M. Zekauskas, "A Round-trip Delay Metric for IPPM", RFC 2681, September 1999. ๐Ÿ“š
  • [IPPM-Con] Mahdavi, J. and V. Paxson, "IPPM Metrics for Measuring Connectivity", RFC 2678, September 1999. โœจ
  • [IPPM-FW] Paxson, V., Almes, G., Mahdavi, J., and M. Mathis, "Framework for IP Performance Metrics", RFC 2330, May 1998. ๐ŸŽ€
  • [ITU-G8113.1] ITU-T, "Operations, Administration and Maintenance mechanism for MPLS-TP in Packet Transport Network (PTN)", ITU-T Recommendation G.8113.1/Y.1372.1, November 2012. ๐Ÿงš
  • [ITU-G8113.2] ITU-T, "Operations, administration and maintenance mechanisms for MPLS-TP networks using the tools defined for MPLS", ITU-T Recommendation G.8113.2/Y.1372.2, November 2012. ๐Ÿ“
  • [ITU-T-CT] Betts, M., "Allocation of a Generic Associated Channel Type for ITU-T MPLS Transport Profile Operation, Maintenance, and Administration (MPLS-TP OAM)", RFC 6671, November 2012. ๐ŸŒˆ
  • [ITU-T-G.806] ITU-T, "Characteristics of transport equipment - Description methodology and generic functionality", ITU-T Recommendation G.806, January 2009. ๐Ÿ’…
  • [ITU-T-Y1711] ITU-T, "Operation & Maintenance mechanism for MPLS networks", ITU-T Recommendation Y.1711, February 2004. ๐Ÿ‘‘
  • [ITU-T-Y1731] ITU-T, "OAM Functions and Mechanisms for Ethernet-based Networks", ITU-T Recommendation G.8013/Y.1731, July 2011. ๐Ÿซถ
  • [ITU-Terms] ITU-R/ITU-T, "ITU-R/ITU-T Terms and Definitions", 2013, <http://www.itu.int/pub/R-TER-DB>. ๐Ÿ”ฅ
  • [L2TP-EC] McGill, N. and C. Pignataro, "Layer 2 Tunneling Protocol Version 3 (L2TPv3) Extended Circuit Status Values", RFC 5641, August 2009. โญ
  • [L2VPN-OAM] Sajassi, A., Ed., and D. Mohan, Ed., "Layer 2 Virtual Private Network (L2VPN) Operations, Administration, and Maintenance (OAM) Requirements and Framework", RFC 6136, March 2011. ๐Ÿฆ‹
  • [L3VPN-OAM] El Mghazli, Y., Ed., Nadeau, T., Boucadair, M., Chan, K., and A. Gonguet, "Framework for Layer 3 Virtual Private Networks (L3VPN) Operations and Management", RFC 4176, October 2005. ๐ŸŒธ
  • [Lock-Loop] Boutros, S., Ed., Sivabalan, S., Ed., Aggarwal, R., Ed., Vigoureux, M., Ed., and X. Dai, Ed., "MPLS Transport Profile Lock Instruct and Loopback Functions", RFC 6435, November 2011. ๐Ÿ’œ
  • [LSP-Ping] Kompella, K. and G. Swallow, "Detecting Multi-Protocol Label Switched (MPLS) Data Plane Failures", RFC 4379, February 2006. ๐Ÿ“š
  • [Mng] Farrel, A., "Inclusion of Manageability Sections in Path Computation Element (PCE) Working Group Drafts", RFC 6123, February 2011. โœจ
  • [MPLS-ENCAPS] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack Encoding", RFC 3032, January 2001. ๐ŸŽ€
  • [MPLS-LM-DM] Frost, D. and S. Bryant, "Packet Loss and Delay Measurement for MPLS Networks", RFC 6374, September 2011. ๐Ÿงš
  • [MPLS-OAM] Nadeau, T., Morrow, M., Swallow, G., Allan, D., and S. Matsushima, "Operations and Management (OAM) Requirements for Multi-Protocol Label Switched (MPLS) Networks", RFC 4377, February 2006. ๐Ÿ“
  • [MPLS-OAM-FW] Allan, D., Ed., and T. Nadeau, Ed., "A Framework for Multi-Protocol Label Switching (MPLS) Operations and Management (OAM)", RFC 4378, February 2006. ๐ŸŒˆ
  • [MPLS-P2MP] Yasukawa, S., Farrel, A., King, D., and T. Nadeau, "Operations and Management (OAM) Requirements for Point-to-Multipoint MPLS Networks", RFC 4687, September 2006. ๐Ÿ’…
  • [MPLS-TP-OAM] Vigoureux, M., Ed., Ward, D., Ed., and M. Betts, Ed., "Requirements for Operations, Administration, and Maintenance (OAM) in MPLS Transport Networks", RFC 5860, May 2010. ๐Ÿ‘‘
  • [mtrace] Fenner, W. and S. Casner, "A "traceroute" facility for IP Multicast", Work in Progress, July 2000. ๐Ÿซถ
  • [NetTerms] Jacobsen, O. and D. Lynch, "A Glossary of Networking Terms", RFC 1208, March 1991. ๐Ÿ”ฅ
  • [NetTools] Enger, R. and J. Reynolds, "FYI on a Network Management Tool Catalog: Tools for Monitoring and Debugging TCP/IP Internets and Interconnected Devices", FYI 2, RFC 1470, June 1993. โญ
  • [OAM-Analys] Sprecher, N. and L. Fang, "An Overview of the Operations, Administration, and Maintenance (OAM) Toolset for MPLS-Based Transport Networks", RFC 6669, July 2012. ๐Ÿฆ‹
  • [OAM-Label] Ohta, H., "Assignment of the 'OAM Alert Label' for Multiprotocol Label Switching Architecture (MPLS) Operation and Maintenance (OAM) Functions", RFC 3429, November 2002. ๐ŸŒธ
  • [OAM-Mng] Ersue, M., Ed., and B. Claise, "An Overview of the IETF Network Management Standards", RFC 6632, June 2012. ๐Ÿ’œ
  • [OnDemand-CV] Gray, E., Bahadur, N., Boutros, S., and R. Aggarwal, "MPLS On-Demand Connectivity Verification and Route Tracing", RFC 6426, November 2011. ๐Ÿ“š
  • [OWAMP] Shalunov, S., Teitelbaum, B., Karp, A., Boote, J., and M. Zekauskas, "A One-way Active Measurement Protocol (OWAMP)", RFC 4656, September 2006. โœจ
  • [PARIS] Augustin, B., Friedman, T., and R. Teixeira, "Measuring Load-balanced Paths in the Internet", IMC '07 Proceedings of the 7th ACM SIGCOMM conference on Internet measurement, 2007. ๐ŸŽ€
  • [PM-CONS] Clark, A. and B. Claise, "Guidelines for Considering New Performance Metric Development", BCP 170, RFC 6390, October 2011. ๐Ÿงš
  • [PW-ACH] Bryant, S., Swallow, G., Martini, L., and D. McPherson, "Pseudowire Emulation Edge-to-Edge (PWE3) Control Word for Use over an MPLS PSN", RFC 4385, February 2006. ๐Ÿ“
  • [PW-G-ACh] Li, H., Martini, L., He, J., and F. Huang, "Using the Generic Associated Channel Label for Pseudowire in the MPLS Transport Profile (MPLS-TP)", RFC 6423, November 2011. ๐ŸŒˆ
  • [PW-MAP] Aissaoui, M., Busschbach, P., Martini, L., Morrow, M., Nadeau, T., and Y(J). Stein, "Pseudowire (PW) Operations, Administration, and Maintenance (OAM) Message Mapping", RFC 6310, July 2011. ๐Ÿ’…
  • [Reorder] Morton, A., Ciavattone, L., Ramachandran, G., Shalunov, S., and J. Perser, "Packet Reordering Metrics", RFC 4737, November 2006. ๐Ÿ‘‘
  • [Signal] Yasukawa, S., Ed., "Signaling Requirements for Point-to-Multipoint Traffic-Engineered MPLS Label Switched Paths (LSPs)", RFC 4461, April 2006. ๐Ÿซถ
  • [TCPIP-Tools] Kessler, G. and S. Shepard, "A Primer On Internet and TCP/IP Tools and Utilities", FYI 30, RFC 2151, June 1997. ๐Ÿ”ฅ
  • [TP-CC-CV] Allan, D., Ed., Swallow Ed., G., and J. Drake Ed., "Proactive Connectivity Verification, Continuity Check, and Remote Defect Indication for the MPLS Transport Profile", RFC 6428, November 2011. โญ
  • [TP-Fault] Swallow, G., Ed., Fulignoli, A., Ed., Vigoureux, M., Ed., Boutros, S., and D. Ward, "MPLS Fault Management Operations, Administration, and Maintenance (OAM)", RFC 6427, November 2011. ๐Ÿฆ‹
  • [TP-LM-DM] Frost, D., Ed., and S. Bryant, Ed., "A Packet Loss and Delay Measurement Profile for MPLS-Based Transport Networks", RFC 6375, September 2011. ๐ŸŒธ
  • [TP-OAM-FW] Busi, I., Ed., and D. Allan, Ed., "Operations, Administration, and Maintenance Framework for MPLS-Based Transport Networks", RFC 6371, September 2011. ๐Ÿ’œ
  • [TP-Term] van Helvoort, H., Ed., Andersson, L., Ed., and N. Sprecher, Ed., "A Thesaurus for the Interpretation of Terminology Used in MPLS Transport Profile (MPLS-TP) Internet-Drafts and RFCs in the Context of the ITU-T's Transport Network Recommendations", RFC 7087, December 2013. โœจ That's the whole reference list for this part! โœจ

[TRILL-OAM] Senevirathne, T., Bond, D., Aldrin, S., Li, Y., and R. Watve, "Requirements for Operations, Administration, and Maintenance (OAM) in Transparent Interconnection of Lots of Links (TRILL)", RFC 6905, March 2013. ๐ŸŒธ

[TWAMP] Hedayat, K., Krzanowski, R., Morton, A., Yum, K., and J. Babiarz, "A Two-Way Active Measurement Protocol (TWAMP)", RFC 5357, October 2008. ๐Ÿฆ‹

[VCCV] Nadeau, T., Ed., and C. Pignataro, Ed., "Pseudowire Virtual Circuit Connectivity Verification (VCCV): A Control Channel for Pseudowires", RFC 5085, December 2007. ๐Ÿ’œ

[VCCV-SURVEY] Del Regno, N., Ed., and A. Malis, Ed., "The Pseudowire (PW) and Virtual Circuit Connectivity Verification (VCCV) Implementation Survey Results", RFC 7079, November 2013. ๐Ÿงš


Appendix A. List of OAM Documents โœจ

A.1. List of IETF OAM Documents

okay so this is the list bestie ๐Ÿซถ Table 5 is where we get the full rundown of all the OAM-related RFCs the IETF has put out. ๐Ÿ’…

ngl it's important to know that the table is a mixed bag ๐ŸŽ€ Some of these RFCs define OAM tools or OAM protocols (or both), while others are protocols that aren't strictly OAM but still get used by OAM tools. ๐Ÿ”ง There are also RFCs that set out the requirements or the framework for OAM in a specific context, like MPLS-TP. ๐ŸŒˆ So it's giving variety, iykyk. ๐Ÿ˜ญ

The RFCs in the table are sorted into a few sets, as defined in Section 1.3. ๐Ÿ’–

okay so this is the big summary table, the one that gathers every OAM RFC into a single place so you can see the whole family at once ๐Ÿ—‚๏ธโœจ no cap, it's a lot, but it's giving organized bestie energy ๐Ÿ’…

   +-----------+--------------------------------------+----------+
   | Toolset   | Title                                | RFC      |
   +-----------+--------------------------------------+----------+
   |IP Ping    | Requirements for Internet Hosts --   | RFC 1122 |
   |           | Communication Layers [IntHost]       |          |
   |           +--------------------------------------+----------+
   |           | A Glossary of Networking Terms       | RFC 1208 |
   |           | [NetTerms]                           |          |
   |           +--------------------------------------+----------+
   |           | Internet Control Message Protocol    | RFC 792  |
   |           | [ICMPv4]                             |          |
   |           +--------------------------------------+----------+
   |           | Internet Control Message Protocol    | RFC 4443 |
   |           | (ICMPv6) for the Internet Protocol   |          |
   |           | Version 6 (IPv6) Specification       |          |
   |           | [ICMPv6]                             |          |
   +-----------+--------------------------------------+----------+
   |IP         | A Primer On Internet and TCP/IP      | RFC 2151 |
   |Traceroute | Tools and Utilities [TCPIP-Tools]    |          |
   |           +--------------------------------------+----------+
   |           | FYI on a Network Management Tool     | RFC 1470 |
   |           | Catalog: Tools for Monitoring and    |          |
   |           | Debugging TCP/IP Internets and       |          |
   |           | Interconnected Devices [NetTools]    |          |
   |           +--------------------------------------+----------+
   |           | Internet Control Message Protocol    | RFC 792  |
   |           | [ICMPv4]                             |          |
   |           +--------------------------------------+----------+
   |           | Internet Control Message Protocol    | RFC 4443 |
   |           | (ICMPv6) for the Internet Protocol   |          |
   |           | Version 6 (IPv6) Specification       |          |
   |           | [ICMPv6]                             |          |
   |           +--------------------------------------+----------+
   |           | Extended ICMP to Support Multi-Part  | RFC 4884 |
   |           | Messages [ICMP-MP]                   |          |
   |           +--------------------------------------+----------+
   |           | Extending ICMP for Interface and     | RFC 5837 |
   |           | Next-Hop Identification [ICMP-Int]   |          |
   +-----------+--------------------------------------+----------+
   |BFD        | Bidirectional Forwarding Detection   | RFC 5880 |
   |           | (BFD) [BFD]                          |          |
   |           +--------------------------------------+----------+
   |           | Bidirectional Forwarding Detection   | RFC 5881 |
   |           | (BFD) for IPv4 and IPv6 (Single Hop) |          |
   |           | [BFD-IP]                             |          |
   |           +--------------------------------------+----------+
   |           | Generic Application of Bidirectional | RFC 5882 |
   |           | Forwarding Detection (BFD)[BFD-Gen]  |          |
   |           +--------------------------------------+----------+
   |           | Bidirectional Forwarding Detection   | RFC 5883 |
   |           | (BFD) for Multihop Paths [BFD-Multi] |          |
   |           +--------------------------------------+----------+
   |           | Bidirectional Forwarding Detection   | RFC 5884 |
   |           | (BFD) for MPLS Label Switched Paths  |          |
   |           | (LSPs) [BFD-LSP]                     |          |
   |           +--------------------------------------+----------+
   |           | Bidirectional Forwarding Detection   | RFC 5885 |
   |           | for the Pseudowire Virtual Circuit   |          |
   |           | Connectivity Verification (VCCV)     |          |
   |           | [BFD-VCCV]                           |          |
   +-----------+--------------------------------------+----------+
   |MPLS OAM   | Operations and Management (OAM)      | RFC 4377 |
   |           | Requirements for Multi-Protocol Label|          |
   |           | Switched (MPLS) Networks [MPLS-OAM]  |          |
   |           +--------------------------------------+----------+
   |           | A Framework for Multi-Protocol       | RFC 4378 |
   |           | Label Switching (MPLS) Operations    |          |
   |           | and Management (OAM) [MPLS-OAM-FW]   |          |
   |           +--------------------------------------+----------+
   |           | Detecting Multi-Protocol Label       | RFC 4379 |
   |           | Switched (MPLS) Data Plane Failures  |          |
   |           | [LSP-Ping]                           |          |
   |           +--------------------------------------+----------+
   |           | Operations and Management (OAM)      | RFC 4687 |
   |           | Requirements for Point-to-Multipoint |          |
   |           | MPLS Networks [MPLS-P2MP]            |          |
   |           +--------------------------------------+----------+
   |           | ICMP Extensions for Multiprotocol    | RFC 4950 |
   |           | Label Switching [ICMP-Ext]           |          |
   |           +--------------------------------------+----------+
   |           | Bidirectional Forwarding Detection   | RFC 5884 |
   |           | for MPLS Label Switched Paths (LSPs) |          |
   |           | [BFD-LSP]                            |          |
   +-----------+--------------------------------------+----------+
   |MPLS-TP    | Requirements for Operations,         | RFC 5860 |
   |OAM        | Administration, and Maintenance (OAM)|          |
   |           | in MPLS Transport Networks           |          |
   |           | [MPLS-TP-OAM]                        |          |
   |           +--------------------------------------+----------+
   |           | MPLS Generic Associated Channel      | RFC 5586 |
   |           | [G-ACh]                              |          |
   |           +--------------------------------------+----------+
   |           | Operations, Administration, and      | RFC 6371 |
   |           | Maintenance Framework for MPLS-Based |          |
   |           | Transport Networks [TP-OAM-FW]       |          |
   |           +--------------------------------------+----------+
   |           | Proactive Connectivity Verification, | RFC 6428 |
   |           | Continuity Check, and Remote Defect  |          |
   |           | Indication for the MPLS Transport    |          |
   |           | Profile [TP-CC-CV]                   |          |
   |           +--------------------------------------+----------+
   |           | MPLS On-Demand Connectivity          | RFC 6426 |
   |           | Verification and Route Tracing       |          |
   |           | [OnDemand-CV]                        |          |
   |           +--------------------------------------+----------+
   |           | MPLS Fault Management Operations,    | RFC 6427 |
   |           | Administration, and Maintenance (OAM)|          |
   |           | [TP-Fault]                           |          |
   |           +--------------------------------------+----------+
   |           | MPLS Transport Profile Lock Instruct | RFC 6435 |
   |           | and Loopback Functions [Lock-Loop]   |          |
   |           +--------------------------------------+----------+
   |           | Packet Loss and Delay Measurement for| RFC 6374 |
   |           | MPLS Networks [MPLS-LM-DM]           |          |
   |           +--------------------------------------+----------+
   |           | A Packet Loss and Delay Measurement  | RFC 6375 |
   |           | Profile for MPLS-Based Transport     |          |
   |           | Networks [TP-LM-DM]                  |          |
   +-----------+--------------------------------------+----------+
   |Pseudowire | Pseudowire Virtual Circuit           | RFC 5085 |
   |OAM        | Connectivity Verification (VCCV):    |          |
   |           | A Control Channel for Pseudowires    |          |
   |           | [VCCV]                               |          |
   |           +--------------------------------------+----------+
   |           | Bidirectional Forwarding Detection   | RFC 5885 |
   |           | for the Pseudowire Virtual Circuit   |          |
   |           | Connectivity Verification (VCCV)     |          |
   |           | [BFD-VCCV]                           |          |
   |           +--------------------------------------+----------+
   |           | Using the Generic Associated Channel | RFC 6423 |
   |           | Label for Pseudowire in the MPLS     |          |
   |           | Transport Profile (MPLS-TP)          |          |
   |           | [PW-G-ACh]                           |          |
   |           +--------------------------------------+----------+
   |           | Pseudowire (PW) Operations,          | RFC 6310 |
   |           | Administration, and Maintenance (OAM)|          |
   |           | Message Mapping [PW-MAP]             |          |
   |           +--------------------------------------+----------+
   |           | MPLS and Ethernet Operations,        | RFC 7023 |
   |           | Administration, and Maintenance (OAM)|          |
   |           | Interworking [Eth-Int]               |          |
   +-----------+--------------------------------------+----------+
   |OWAMP and  | A One-way Active Measurement Protocol| RFC 4656 |
   |TWAMP      | (OWAMP) [OWAMP]                      |          |
   |           +--------------------------------------+----------+
   |           | A Two-Way Active Measurement Protocol| RFC 5357 |
   |           | (TWAMP) [TWAMP]                      |          |
   |           +--------------------------------------+----------+
   |           | Framework for IP Performance Metrics | RFC 2330 |
   |           | [IPPM-FW]                            |          |
   |           +--------------------------------------+----------+
   |           | IPPM Metrics for Measuring           | RFC 2678 |
   |           | Connectivity [IPPM-Con]              |          |
   |           +--------------------------------------+----------+
   |           | A One-way Delay Metric for IPPM      | RFC 2679 |
   |           | [IPPM-1DM]                           |          |
   |           +--------------------------------------+----------+
   |           | A One-way Packet Loss Metric for IPPM| RFC 2680 |
   |           | [IPPM-1LM]                           |          |
   |           +--------------------------------------+----------+
   |           | A Round-trip Delay Metric for IPPM   | RFC 2681 |
   |           | [IPPM-2DM]                           |          |
   |           +--------------------------------------+----------+
   |           | Packet Reordering Metrics            | RFC 4737 |
   |           | [Reorder]                            |          |
   |           +--------------------------------------+----------+
   |           | A One-Way Packet Duplication Metric  | RFC 5560 |
   |           | [Dup]                                |          |
   +-----------+--------------------------------------+----------+
   |TRILL OAM  | Requirements for Operations,         | RFC 6905 |
   |           | Administration, and Maintenance (OAM)|          |
   |           | in Transparent Interconnection of    |          |
   |           | Lots of Links (TRILL)                |          |
   +-----------+--------------------------------------+----------+

               Table 5: Summary of IETF OAM-Related RFCs

A.2. List of Selected Non-IETF OAM Documents โœจ

okay so bestie, beyond the IETF's own OAM tools, the IEEE and ITU-T have cooked up their own OAM tools too ๐Ÿงš mostly for Ethernet and assorted transport-network setups. ๐Ÿ’… These three standards orgs are super tangled up with each other and have totally influenced one another ๐Ÿ˜ญ The ITU-T and IETF have both defined OAM tools for MPLS LSPs, [ITU-T-Y1711], and [LSP-Ping]. ๐ŸŽ€ The non-IETF OAM standards below are linked, to some extent, to the IETF tools listed above, and they're only here as reference material ๐Ÿซถ

  • OAM tools for Layer 2 have been defined by the ITU-T in [ITU-T-Y1731] and by the IEEE in 802.1ag [IEEE802.1Q]. ๐ŸŒธ The IEEE 802.3 standard defines OAM for one-hop Ethernet links [IEEE802.3ah]. ๐Ÿ’–
  • The ITU-T has defined OAM for MPLS LSPs in [ITU-T-Y1711] and for MPLS-TP OAM in [ITU-G8113.1] and [ITU-G8113.2]. ๐Ÿ‘‘

Also, lowkey worth knowing: these non-IETF docs often deal with OAM functions below the IP layer (Layer 2, Layer 2.5) ๐Ÿฆ‹ And some operators run a multi-layered OAM approach, which just depends on how their network is designed ๐Ÿงš

Table 6 is a quick rundown of the main OAM standards from non-IETF orgs ๐Ÿ’… This document focuses on the IETF ones, but the non-IETF standards get referenced here wherever they're relevant ๐ŸŽ€

+-----------+--------------------------------------+---------------+
|           | Title                                | Document      |
+-----------+--------------------------------------+---------------+
|ITU-T      | Operation & Maintenance mechanism    | ITU-T Y.1711  |
|MPLS OAM   | for MPLS networks [ITU-T-Y1711]      |               |
|           +--------------------------------------+---------------+
|           | Assignment of the 'OAM Alert Label'  | RFC 3429      |
|           | for Multiprotocol Label Switching    |               |
|           | Architecture (MPLS) Operation and    |               |
|           | Maintenance (OAM) Functions          |               |
|           | [OAM-Label]                          |               |
|           |                                      |               |
|           |  Note: although this is an IETF      |               |
|           |  document, it is listed as one of the|               |
|           |  non-IETF OAM standards, since it    |               |
|           |  was defined as a complementary part |               |
|           |  of ITU-T Y.1711.                    |               |
+-----------+--------------------------------------+---------------+
|ITU-T      | Operations, administration and       |ITU-T G.8113.2 |
|MPLS-TP OAM| Maintenance mechanisms for MPLS-TP   |               |
|           | networks using the tools defined for |               |
|           | MPLS [ITU-G8113.2]                   |               |
|           |                                      |               |
|           |  Note: this document describes the   |               |
|           |  OAM toolset defined by the IETF for |               |
|           |  MPLS-TP, whereas ITU-T G.8113.1     |               |
|           |  describes the OAM toolset defined   |               |
|           |  by the ITU-T.                       |               |
|           +--------------------------------------+---------------+
|           | Operations, Administration and       |ITU-T G.8113.1 |
|           | Maintenance mechanism for MPLS-TP in |               |
|           | Packet Transport Network (PTN)       |               |
|           +--------------------------------------+---------------+
|           | Allocation of a Generic Associated   | RFC 6671      |
|           | Channel Type for ITU-T MPLS Transport|               |
|           | Profile Operation, Maintenance, and  |               |
|           | Administration (MPLS-TP OAM)         |               |
|           | [ITU-T-CT]                           |               |
|           |                                      |               |
|           |  Note: although this is an IETF      |               |
|           |  document, it is listed as one of the|               |
|           |  non-IETF OAM standards, since it    |               |
|           |  was defined as a complementary part |               |
|           |  of ITU-T G.8113.1.                  |               |
+-----------+--------------------------------------+---------------+
|ITU-T      | OAM Functions and Mechanisms for     | ITU-T Y.1731  |
|Ethernet   | Ethernet-based Networks              |               |
|OAM        | [ITU-T-Y1731]                        |               |
+-----------+--------------------------------------+---------------+
|IEEE       | Connectivity Fault Management        | IEEE 802.1ag  |
|CFM        | [IEEE802.1Q]                         |               |
|           |                                      |               |
|           |  Note: CFM was originally published  |               |
|           |  as IEEE 802.1ag but is now          |               |
|           |  incorporated in the 802.1Q standard.|               |
+-----------+--------------------------------------+---------------+
|IEEE       | Management of Data Driven and Data   | IEEE 802.1ag  |
|DDCFM      | Dependent Connectivity Faults        |               |
|           | [IEEE802.1Q]                         |               |
|           |                                      |               |
|           |  Note: DDCFM was originally published|               |
|           |  as IEEE 802.1Qaw but is now         |               |
|           |  incorporated in the 802.1Q standard.|               |
+-----------+--------------------------------------+---------------+
|IEEE       | Media Access Control Parameters,     | IEEE 802.3ah  |
|802.3      | Physical Layers, and Management      |               |
|link level | Parameters for Subscriber Access     |               |
|OAM        | Networks [IEEE802.3ah]               |               |
|           |                                      |               |
|           |  Note: link level OAM was originally |               |
|           |  defined in IEEE 802.3ah and is now  |               |
|           |  incorporated in the 802.3 standard. |               |
+-----------+--------------------------------------+---------------+

         Table 6: Non-IETF OAM Standards Mentioned in This Document

Authors' Addresses ๐ŸŽ€

Tal Mizrahi ๐Ÿ’œ Marvell 6 Hamada St. Yokneam 20692 Israel

EMail: talmi@marvell.com

Nurit Sprecher ๐Ÿฆ‹ Nokia Solutions and Networks 3 Hanagar St. Neve Ne'eman B Hod Hasharon 45241 Israel

EMail: nurit.sprecher@nsn.com

Elisa Bellagamba ๐ŸŒˆ Ericsson 6 Farogatan St. Stockholm 164 40 Sweden

Phone: +46 761440785 EMail: elisa.bellagamba@ericsson.com

Yaacov Weingarten ๐Ÿงš 34 Hagefen St. Karnei Shomron 4485500 Israel

EMail: wyaacov@gmail.com

๐Ÿ“ฆ where this page comes from