INTERNET-DRAFT J. Kumar Intended Status: Standards Track J. Lemon Y. Peleg Broadcom Inc. K. Kompella Juniper Networks Expires: September 12, 2019 March 11, 2019 MPLS Inband Network Telemetry draft-kumar-mpls-mint-00 Abstract MPLS Inband Network Telemetry (MINT) records flow specific information from end stations and/or switches across a network. This document describes the method to collect data on a per hop basis across a network and perform localized or end to end analytics operations on the data. This document also describes the use of the Extension Label, value 15, for specifying extended special purpose labels for specifying presence of MINT data. Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/1id-abstracts.html The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html Copyright and License Notice Kumar, et al. [Page 1] INTERNET DRAFT IFA March 11, 2019 Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 Applicability . . . . . . . . . . . . . . . . . . . . . . . 5 1.4 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 6 2. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1 Encapsulation Requirements . . . . . . . . . . . . . . . . . 6 2.2 Operational Requirements . . . . . . . . . . . . . . . . . . 6 3. MINT Domains . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1 MINT Domain . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2 MINT Function Nodes . . . . . . . . . . . . . . . . . . . . 8 3.2.1 Initiating Function Node . . . . . . . . . . . . . . . . 8 3.2.2 Transit Function Node . . . . . . . . . . . . . . . . . 9 3.2.3 Terminating Function Node . . . . . . . . . . . . . . . 9 3.2.4 Metadata Fragmentation Function . . . . . . . . . . . . 9 3.3 MINT Cloning, Truncation, and Drop . . . . . . . . . . . . . 10 3.4 MINT Label Stack . . . . . . . . . . . . . . . . . . . . . . 10 3.4.1 MINT Metadata Header . . . . . . . . . . . . . . . . . . 12 3.4.2 MINT Checksum Header . . . . . . . . . . . . . . . . . . 13 3.4.3 MINT Metadata Fragmentation (MF) Header . . . . . . . . 14 3.5 MINT Metadata . . . . . . . . . . . . . . . . . . . . . . . 15 3.5.1 Global Name Space (GNS) Identifier . . . . . . . . . . . 15 3.5.2 Local Name Space (LNS) Identifier . . . . . . . . . . . 16 3.5.3 Device ID . . . . . . . . . . . . . . . . . . . . . . . 16 3.6 MINT Network Overhead . . . . . . . . . . . . . . . . . . . 16 3.7 MINT Analytics . . . . . . . . . . . . . . . . . . . . . . . 16 3.8 MINT Packet Format . . . . . . . . . . . . . . . . . . . . . 17 3.8.1 MINT Packet Format with TS Flag Set . . . . . . . . . . 17 3.9 MINT Load Balancing . . . . . . . . . . . . . . . . . . . . 18 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 19 4.1. Extended Special-Purpose MPLS Label Values Registry . . . 19 Kumar, et al. [Page 2] INTERNET DRAFT IFA March 11, 2019 5. Security Considerations . . . . . . . . . . . . . . . . . . . . 19 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6.1 Normative References . . . . . . . . . . . . . . . . . . . 19 6.2 Informative References . . . . . . . . . . . . . . . . . . . 19 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 20 Kumar, et al. [Page 3] INTERNET DRAFT IFA March 11, 2019 1. Introduction This document describes MPLS Inband Network Telemetry (MINT), which is a mechanism to enable the collection of metadata for an analyzed MPLS flow. The sequence of per hop metadata in the packet preceded by a MINT header is referred to as a MINT stack. The presence of a MINT stack is indicated by an extended special purpose label. The "Extension Label", value 15, is used to indicate a following label, which will be the MINT label in this case. The MINT header and metadata definition are the same as defined in [I-D.draft-kumar-ippm-ifa-01]. 1.1 Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. LSP: Label Switched Path MPLS: Multi Path Label Switching MINT: MPLS Inband Network Telemetry MTU: Maximum Transmit Unit MINT Domain: A set of MPLS nodes within a single administration with all nodes participating in MINT. MINT Node: A single node in a MINT domain. MINT Metadata: Information inserted by a MINT node. MINT Stack: Ordered collection of per hop metadata. MINT Label: IANA allocated extended special purpose label. Indicates the presence of a MINT stack. MINT Initiator: A MINT node at the beginning edge of a MINT domain that is responsible for inserting an Extension label, a MINT label, and the initial MINT metadata. MINT Transit: A MINT node within the MINT domain, responsible for Kumar, et al. [Page 4] INTERNET DRAFT IFA March 11, 2019 adding MINT metadata for the current node. MINT Terminator: A MINT node at the ending edge of a MINT domain that is responsible for removing the Extension label, the MINT label, and the MINT Stack and exporting the MINT Stack to a collector. 1.2 Scope This document describes MINT deployment, header definitions, packet format, and data path functions. MINT deployment involves defining a MINT Domain and understanding the requirements in terms of traffic overhead and points of data collection. Given that MINT inserts two extra labels in the label stack, consideration MUST be given to network devices' capability to parse the depth of the label stack. The scope of MINT is from an end station and/or ToR, through any/all nodes in the MPLS path, and terminating in a network switch and/or an end station. In case of a service provider network, the scope of MINT MAY encompass one carrier to another carrier. Special care MUST be taken for leaking the MINT stack across a MINT domain for security reasons. MINT can create a synthetic stream of MPLS traffic and use it to collect metadata along the path. This sampled stream is later discarded. MINT can also insert metadata on a per packet basis in live traffic. This draft defines an identification mechanism using a extended special purpose label for MINT packets. 1.3 Applicability MINT is capable of providing traffic analysis for a given LSP. The LSP may be tunneled in another LSP in part of the MINT domain. In such cases more then one MINT stack MAY be present in the MINT packet. A very important requirement of MINT traffic is preserving the same path for the flow. Since inserting a MINT label will change the label stack and possibly keys to load balancing functions, a MINT domain SHOULD use an entropy label as defined in [RFC 6790] to preserve the flow path. Inserting additional an label and metadata will increase the packet size and may impact path MTU. MINT provides a metadata fragmentation function to keep the packet size below path MTU. Kumar, et al. [Page 5] INTERNET DRAFT IFA March 11, 2019 1.4 Motivation The main motivation for MINT is to collect analyzed metadata from packets within a flow for a given application. Each hop in the flow path MAY insert metadata in the packet or MAY export metadata to a collector. 2. Requirements MINT requirements are the same as IFA requirements and are defined with operational efficiency, performance of the network, and cost of hardware in mind. 2.1 Encapsulation Requirements MINT packets MUST be clearly marked and identifiable so that a networking element in the flow path can insert metadata or perform other MINT operations. MINT packets need to be easily identified for performance reasons. A new extended special purpose label is requested for MINT. MINT encapsulation MAY support the ability to fragment metadata. MINT encapsulation MAY support direct export of metadata instead of inserting it into the packet. 2.2 Operational Requirements MINT MUST preserve the flow path across the network. This can be done either by using specific key fields for load balancing functions or by using an entropy label. MINT MUST support cloning, live traffic, checksum, fragmentation, global name spaces, and local name spaces using the MINT header definitions. 3. MINT Domains MINT performs flow analysis, and possible actions on the flow data, in-band. Once a flow is enabled for analysis, a MINT node with the role of "Initiator" makes a copy of the flow or samples the live traffic flow, or tags a live traffic flow for analysis and data Kumar, et al. [Page 6] INTERNET DRAFT IFA March 11, 2019 collection. Copying of a flow is done by sampling or cloning the flow. These new packets are representative packets of the original flow and possess the exact same characteristics as the original flow. This means that MINT packets traverse the same path in the network and same queues in the networking element as the original packet would. Figure 1 shows the MINT based Telemetry Framework. The terminating node is responsible for terminating the MINT flow by summarizing the metadata of the entire path and sending it to a collector. +----------+ | | |Collector |--------------+ | | | +----------+ | | | | | | | | | +--------------+ +------------+ +----+-----------+ |Initiator Node| |Transit Node| |Terminating Node| | +------+ | | +------+ | | +------+ | | | MINT | |------->| | MINT | |------->| | MINT | | | +------+ |MINTflow| +------+ |MINTflow| +------+ | +--------------+ +------------+ +----------------+ Figure 1 MINT Domain Framework without fragmentation Kumar, et al. [Page 7] INTERNET DRAFT IFA March 11, 2019 +----------+ | | |Collector |<-------------+ +----->| | | | +----------+ | | | | | | | | | | | | | | | | | +--------------+ | +------------+ +----+----------+ |Initiator Node| | |Transit Node| |Fragmenter Node| | +------+ | | | +------+ | | +------+ | | | MINT | |------->| | MINT | |------->| | MINT | | | +------+ |MINTflow| +------+ |MINTflow| +------+ | +--------------+ | +------------+ +---------------+ | |MINT | |flow | v | +---------------+ +------+-----+ | |Terminator Node| |Transit Node| +--| +------+ | | +------+ | | | MINT | |<-------| | MINT | | | +------+ |MINTflow| +------+ | +---------------+ +------------+ Figure 2 MINT Domain Framework with metadata fragmentation 3.1 MINT Domain A MINT Domain is the domain of interest where MINT monitoring is enabled. A MINT Domain MUST have designated MINT function nodes. Initiating and Terminating function MINT nodes are always at the edge of the MINT domain. Internal nodes in the MINT Domain are always Transit function nodes. 3.2 MINT Function Nodes There are three types of MINT functional nodes with respect to a specific set of flows. Each node MAY perform metadata fragmentation function as well. 3.2.1 Initiating Function Node An end station, a switch, or any other middleware can perform the MINT initiating function. It is advantageous to keep this role closest to the application to maximize flow visibility. A MINT Kumar, et al. [Page 8] INTERNET DRAFT IFA March 11, 2019 initiating function node performs the following functions for a flow: - Samples the flow traffic of interest based on a configuration. - Converts the traffic into a MINT flow by adding a MINT header to each sample. - Updates the packet with initiating function node metadata. - MAY mandate a specific template ID metadata by all networking elements. - MAY mandate tail stamping of metadata by all networking elements. 3.2.2 Transit Function Node A MINT transit node is responsible for inserting transit node metadata in the MINT packets in the specified flow. 3.2.3 Terminating Function Node A MINT terminating node is responsible for the following for a flow: - Inserts terminating node metadata in a MINT packet. - Performs a local analytics function on one or more segments of metadata, e.g., threshold breach for residence time, congestion notifications, and so on. - Filters a MINT flow in case of cloned traffic. - Sends a copy or report of the packet to a collector. - Removes the MINT headers and forwards the packet in case of live traffic. 3.2.4 Metadata Fragmentation Function There are cases where the size of metadata may grow too big for link MTU or path MTU, or where it imposes excessive overhead for the terminating function node to remove it. This is especially true in networks with a large number of hops between the initiator function node and the terminating function node. This is also true where the size of per hop metadata itself is large. For such cases, MINT defines a metadata fragmentation function. The metadata fragmentation function allows removal of metadata from the packet and the sending of a copy/report of the packet to the collector. Correlation of metadata fragments and recreation of metadata stack for the entire flow path is done by the collector. There is no dedicated node performing the metadata fragmentation function. As a MINT packet traverses the hops in a MINT Domain, any node MAY detect the need to fragment the packet's metadata stack and perform metadata fragmentation. Metadata fragmentation is done if the MINT header in the packet has "MDF" bit set and the current length of the metadata would exceed the maximum length after the addition of metadata by the current node. A Kumar, et al. [Page 9] INTERNET DRAFT IFA March 11, 2019 node MAY create a copy of the packet or create a MINT report, remove the existing metadata stack from the packet, insert its own metadata, and finally forward the packet. A node MAY also update the MINT MDF (Meta Data Fragment) header, fragment identifier, and current length. The maximum length in a MINT header, if set to 0, MAY trigger the metadata fragmentation special function. This mechanism can be used to generate MINT reports at each hop and never insert metadata in the packet. If the maximum length is set to 0, a node MAY NOT insert MINT metadata, SHOULD create a MINT report or copy of the packet including its own metadata, and MUST increment the MINT MDF header fragment identifier field. 3.3 MINT Cloning, Truncation, and Drop MINT allows cloning of live traffic. It is expected that cloned traffic will have the same network path characterization as the original traffic, i.e., follow the same network path, use the same queues, etc. Cloned traffic can be truncated to accommodate the MTU of the MINT Domain. Cloned traffic MUST be dropped by the terminating function node of the MINT Domain. 3.4 MINT Label Stack The MINT label stack is described below. An extended special-purpose label (ESPL) is used to identify a MINT packet in the MPLS label stack at the level to be measured. Kumar, et al. [Page 10] INTERNET DRAFT IFA March 11, 2019 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 ESPL: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label = 15 (ESPL) |0 0 0|0| TTL=0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ MINT Extension Label: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label = 16 (MINTi) |0 0 0|1| TTL=0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ MINT Header: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Ver=2 | GNS |NextHdr = IP_xx|R|R|R|M|T|I|T|C| Max Length | | | | | | | |F|S| |A| | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3 MINT Label Headers Format ESPL: A label value of 15 identifies an extended special-purpose label (ESPL), which indicates that the following label is an extension label. The EXP bits SHOULD be set to 0. The S bit MUST be set to 0 to indicate that more labels follow. The TTL for the ESPL MUST be zero to ensure that it is not used inadvertently for forwarding. MINT Extension Label: A label value of 16 identifies an MINT extension label, which indicates that header following this label is a MINT header. The EXP bits SHOULD be set to 0. The S bit MUST be set to 1 to indicate that no more labels follow. The TTL for the MINT extension label MUST be zero to ensure that it is not used inadvertently for forwarding. MINT Header: (1) Version (4 bits). Specifies the version of MINT header. The version MUST be set to 2 for this. (2) GNS (4 bits) - Global Name Space. Specifies the MINT Domain scoped name space for the MINT metadata. (3) Protocol Type (8 bits) - IP Header protocol type. This indicates what protocol follows MINT. (4) Flags (8 bits) 0: R - Reserved. MUST be initialized to 0 on transmission and Kumar, et al. [Page 11] INTERNET DRAFT IFA March 11, 2019 ignored on receipt. 1: R - Reserved. MUST be initialized to 0 on transmission and ignored on receipt. 2: R - Reserved. MUST be initialized to 0 on transmission and ignored on receipt. 3: MF - Metadata Fragment. Indicates the presence of the optional metadata fragment header. This header is inserted and initialized by the initiator node. If the MF bit is set, nodes in the path MAY perform fragmentation of metadata stack if the current length exceeds the maximum length. 4: TS - Tail Stamp. Indicates the MINT Domain is requiring tail stamping of metadata. 5: I - Inband. Indicates this is live traffic. Strip and forward MUST be performed by the terminator node if this bit is set. 6: TA - Turn Around. Indicates that the MINT packet needs to be turned around at the terminating node of the MINT Domain and sent back to the source if a return path is known. This bit MAY be used for probe packets where probes are collection bidirectional information in the network. This is analogous to an echo request and echo reply. A packet with the TA bit set collects metadata in one direction, and after it is turned around by the terminating function node, collects metadata in the reverse direction. 7: C - Checksum. Indicates the presence of the optional checksum header. The checksum MUST be computed and updated for the MINT header and metadata at each node that modifies the header and/or metadata. A node MAY perform checksum validation before updating the checksum. (5) Max Length (8 bits). Specifies the maximum allowed length of the metadata stack in multiples of 4 octets. This field is initialized by the initiator node. Each node in the path MUST compare the current length with the max length, and if the current length equals or exceeds the max length, the transit nodes MUST stop inserting metadata. 3.4.1 MINT Metadata Header The MINT metadata header is always present. Kumar, et al. [Page 12] INTERNET DRAFT IFA March 11, 2019 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Request Vector| Action Vector | Hop Limit | Current Length| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 4 MINT Metadata Header Format Request Vector (8 bits) - This vector specifies the presence of fields as specified by GNS. Fields are always 4-octet aligned. This field can be made extensible by defining a new GNS for a MINT Domain. Action Vector (8 bits) - This vector specifies node-local or end-to- end action on the MINT packets. Hop Limit (8 bits) - Specifies the maximum allowed hops in a MINT Domain. This field is initialized by the initiator node. The hop limit MUST be decremented at each hop. If the incoming hop limit is 0, current nodes MUST NOT insert metadata. A value of 0xFF means that the Hop limit check MUST be ignored. Current Length (8 bits) - Specifies the current length of the metadata in multiples of 4 octets. 3.4.2 MINT Checksum Header The MINT checksum header is optional. Presence of the checksum header is indicated by the C bit in the flags field of the MINT header. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 5 MINT Checksum Header Format Checksum (16 bits) - The checksum covers the MINT header and metadata stack. An initiator function node MAY compute the full checksum including MINT header and metadata. Other nodes MAY compute delta checksum for the inserted/deleted metadata. Reserved (16 bits) - Reserved. MUST be initialized to 0 on transmission and ignored on receipt. Kumar, et al. [Page 13] INTERNET DRAFT IFA March 11, 2019 3.4.3 MINT Metadata Fragmentation (MF) Header The MINT metadata fragmentation (MF) header is optional. Presence of the fragmentation header is indicated by the MF bit in the flags field of the MINT header. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Packet ID | MF ID |L| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 6 MINT MF Header Format Packet ID (26 bits) - Packet identification value generated by the initiator node. This value is node scoped. Metadata Fragment ID (5 bits) - The initiator MUST initialize this value to 0. A node performing metadata fragmentation function MUST increment the value by 1. L (1 bit) - This bit is set by the node creating the last metadata fragment. This will ALWAYS be the terminating function node. If incoming hop limit is 0, the terminating function node will still generate a copy/report of the packet and MUST set the L bit. A collector MUST implement mechanism to recover from lost packets/reports with L bit set. The MF header is a fixed overhead of 4 octets per packet. A network operator MUST identify the need for using MINT metadata fragmentation. The following network conditions can be considered: - If a MINT packet may exceed the link or path MTU of the flow path - If there are large number of hops in a flow path that could trigger link or path MTU breach - If the length of metadata creates excessive overhead for terminating function node to delete the metadata - If each hop needs to generate its own MINT report (postcard mechanism) With 26 bits of packet id, a maximum datagram lifetime (MDL) of 3 seconds, and an average Internet mix (IMIX) packet size of 512 bytes, Kumar, et al. [Page 14] INTERNET DRAFT IFA March 11, 2019 we get 183.25 Gbps of MINT traffic bit rate per node before the packet identifier wraps around. The collector can use [device id, packet id, MF id, L] to rebuild the fragmented packet. 5 bits of MF id will support 32 metadata fragments. 3.5 MINT Metadata The MINT metadata is the information inserted by each hop after the MINT header. The MINT metadata can be inserted at the following offsets: - Payload Stamping: Immediately after the layer 4 header. This is the default setting. - Tail Stamping: After the end of the packet, but before the FCS. This is controlled by the TS bit in the flags field of the MINT header. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LNS | Device ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | ~ LNS/GNS defined metadata (contd) ~ . . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 7 MINT Metadata Format The MINT metadata header contains a set fields as defined by the name space identifier. Two types of name space identifiers are proposed. 3.5.1 Global Name Space (GNS) Identifier A Global Name Space (GNS) is specified in the MINT header by the initiator node. The scope of a GNS is a MINT Domain. All networking elements in a MINT Domain MUST insert metadata as per the GNS ID specified in the MINT header. This is defined as the "Uniform Mode" of deployment. A GNS value of 0xF indicates that metadata in a MINT Domain is defined by the LNS of each hop. The advantage of using the uniform mode is having a simple and uniform metadata stack. This means less load on a collector for Kumar, et al. [Page 15] INTERNET DRAFT IFA March 11, 2019 parsing. The disadvantage is that metadata fields are supported based on the least capable networking element in the MINT Domain. 3.5.2 Local Name Space (LNS) Identifier A Local Name Space (LNS) is specified in the metadata header. A GNS value of 0xF in the MINT header indicates the presence of an LNS. This is defined as the "Non-uniform Mode" of deployment. A switch pipeline MUST parse the GNS field in the MINT header. The parsing result will dictate the name space ID that the hop needs to comply with. The advantage of using the non-uniform mode is having a flexible metadata stack. This allows each hop to include the most relevant data for that hop. The disadvantage is more complex parsing by a collector. 3.5.3 Device ID A 28-bit unique identifier for the device inserting the metadata. If a GNS other than 0xF is present, then the device ID can be expanded to a 32 bit value. This is to support including an IPv4 loopback address as a Device ID. 3.6 MINT Network Overhead A common problem associated with inserting metadata on a per packet per flow basis is the amount of traffic overhead on the network. MINT is defined to minimize the overhead on the network. MINT Base Header : 4 octets MINT Metadata Header : 4 octets MINT Checksum Header : 4 octets MINT Fragmentation Header : 4 octets Minimum Overhead: MINT header : 4 octets MINT Metadata Header : 4 octets Total Min Overhead : 8 octets per packet 3.7 MINT Analytics Kumar, et al. [Page 16] INTERNET DRAFT IFA March 11, 2019 There are two kinds of actions considered in this proposal. (1) Action Bit MAP in MINT Header - This is encoded in the MINT header. Each node in the path MAY use the action bitmap to insert or not insert the metadata based on exceeding a locally-specified threshold. Not inserting the metadata is indicated by setting the field value to -1 (all 1s). (2) Terminating Node Actions - A terminating node may decide to perform threshold or other actions on the set of metadata in the packet. This information is not encoded in the MINT header. 3.8 MINT Packet Format The MINT header is treated as a layer 3 extension header. MINT header and metadata stack length is reflected in IP total length field. IPv6 extension headers are ordered. The MINT header MUST be the last extension header in the IPv6 extension header chain. Similarly in case of IPv4 AH/ESP/WESP extension headers, MINT header MUST be the last extension header. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ ~ | MPLS Label Stack | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ESPL | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MINT Extension Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MINT Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ ~ | MINT Metadata Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ ~ | MINT Metadata Stack | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ ~ | Payload | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | FCS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 8 MINT Packet Format 3.8.1 MINT Packet Format with TS Flag Set Kumar, et al. [Page 17] INTERNET DRAFT IFA March 11, 2019 In case the Tail Stamp flag is set in the MINT header, the MINT metadata header and metadata stack are inserted at the end of the packet just before the FCS. Each node inserts metadata at the bottom of MINT metadata stack. One of the key advantages of using TS is to support legacy devices and/or appliances that need to look at the layer 5 data. The IP length and IP header checksum are updated at each hop inserting metadata. This is the same as without the TS flag. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ ~ | MPLS Label Stack | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ESPL | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MINT Extension Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MINT Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ ~ | Payload | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ ~ | MINT Metadata Stack | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ ~ | MINT Metadata Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | FCS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 9 MINT Packet Format with TS 3.9 MINT Load Balancing As stated in [RFC7325], regarding use of MPLS fields in multipath load balancing: Special-purpose labels (label values 0-15) MUST NOT be used. Extended special-purpose labels (any label following label 15) MUST NOT be used. Accordingly, the addition of an ESPL and a MINT Extension Label will not cause a different multipath computation from that which is calculated in absence of these labels. Kumar, et al. [Page 18] INTERNET DRAFT IFA March 11, 2019 4. IANA Considerations This document requests the following IANA Actions. 4.1. Extended Special-Purpose MPLS Label Values Registry This registry defines a new code point to be added to the Extended Special-Purpose MPLS Label Values Registry to identify that a MINT extension label is present. The following new code point is defined in this draft: 16 MINT Extension Label 5. Security Considerations A successful attack on an OAM protocol can prevent the detection of failures or anomalies, or create a false illusion of nonexistent ones. The metadata elements of MINT can be used by attackers to collect information about the network hops. Adding MINT headers or adding to MINT metadata can be used to consume resources within the path being monitored or by a collector. Adding MINT headers or adding to MINT metadata can be used to force exceeding the MTU for the path being monitored resulting in fragmentation and/or packet drops. MINT is expected to be deployed within controlled network domains, containing attacks to that controlled domain. Limiting or preventing monitoring or attacks using IFA requires limiting or preventing unauthorized access to the domain in which MINT is to be used, and preventing leaking IFA metadata beyond the controlled domain. 6. References 6.1 Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. 6.2 Informative References [RFC6790] Kompella, K., "The Use of Entropy Labels in MPLS Forwarding", RFC 6790, November 2012, . [RFC7274] Kompella, K., "Allocating and Retiring Special-Purpose MPLS Labels", RFC 7274, June 2014, . [RFC7325] Villamizar, C., "MPLS Forwarding Compliance and Performance Requirements", RFC 7325, August 2014, . [I-D.draft-kumar-ippm-ifa-01] Kumar, J., "Inband Flow Analyzer", March 2019, (work in progress). Authors' Addresses Jai Kumar Broadcom Inc. Email: jai.kumar@broadcom.com John Lemon Broadcom Inc. Email: john.lemon@broadcom.com Yoav Peleg Broadcom Inc. Email: yoav.peleg@broadcom.com Kireeti Kompella Juniper Networks Email: kireeti@juniper.net Kumar, et al. [Page 20]