Internet-Draft | IGP MPD | October 2023 |
Liu & Shen | Expires 12 April 2024 | [Page] |
This document proposes the concept of Maximum Packet Depth(MPD) to represent the packet size that a node is able process from an incoming packet, the signaling mechanism for MPD in IGP is also defined.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
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."¶
This Internet-Draft will expire on 12 April 2024.¶
Copyright (c) 2023 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 (https://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 Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
In terms of processing packets, a device has various capabilities. One of the capabilities is the maximum packet depth(MPD) that a node can read from an incoming packet.¶
Being aware of the MPD of related nodes benefits the following scenarios:¶
- the headend node can attach data on the packet, e.g, the hop-by-hop options header or the destination options header with the IOAM data fields as introduced in [RFC9486]. With the knowledge of the MPDs of the nodes along the path, the headend can make sure that the depth of IOAM field (as well as SRH in the case of SRv6) after encapsulating doesn't exceed the maximum size that these nodes are able to process.¶
- the intermediate nodes may increase the size of the packet. The IPv6 extension headers, as well as their TLVs may be attached by the intermediate destination nodes(e.g SR Segment Endpoint nodes) via inserting or tunneling. In this case it is very important for attaching nodes to obtain the packet processing sizes of the downstream nodes.¶
There're already some related works on packet size signaling, but they are not sufficient.¶
The concept Maximum SID Depth (MSD) is originally introduced for SR-MPLS to represent the number of SIDs supported by a node or a link on a node. In a non-SR MPLS network, MSD defines the maximum label depth. MSD is further extended for SRv6 as per [RFC9352]. This can be collected via IS-IS [RFC8491], OSPF [RFC8476], BGP-LS [RFC8814], or PCEP [RFC8664].¶
MSD, regardless of its type, can't fully represent the size of the packet that the device can read. For MPLS, MSD represents the number of LSEs, while MPD represents the packet size, regardless of whether the content in the packet is carried in the form of labels or not. And MSDs for SRv6 are related with the number of SRv6 SIDs, but other components such as SRH TLV may exist, which are not in the scope of MSD. Not to speak of other IPv6 extension headers in the usecases mentioned above.¶
Besides MSD, another related concept is link mtu [RFC4821], it's the maximum transmission unit, i.e., maximum IP packet size in bytes, that can be conveyed in one piece over a link, which can be collected via BGP-LS [I-D.ietf-idr-bgp-ls-link-mtu].¶
Link MTU is the maximum packet size that the device/interface is able to send, while MPD represents the node's ability to read the packet. Normally, these two values are not the same. For example, the maximum packet size a node can read is 256 bytes, and the link mtu is 1500 bytes, after receiving a packet which contains a 512-byte payload encapsulated in a 10-label MPLS stack, the node is able read and process the label stack, and then using the label stack after processing and the payload to form the new packet, whose size is less than the link mtu and then send it out.¶
Based on the considerations above, this document defines the concept of Maximum Packet Depth(MPD) to represent the maximum packet processing size as well as the signaling mechanism in IGP.¶
MSD: Maximum SID Depth as in [RFC8491].¶
Link MTU:As per [RFC4821], the Maximum Transmission Unit, i.e, maximum IP packet size in bytes, that can be conveyed in one piece over a link.¶
Path MTU(PMTU): The minimum link MTU of all the links in a path between a source node and a destination node.[RFC8201]¶
MPD: Maximum Packet Depth supported by a node or a link on a node.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
The Node MPD sub-TLV is defined within the body of the IS-IS Router CAPABILITY TLV [RFC7981] to carry the provisioned packet depth of the router originating the IS-IS Router CAPABILITY TLV. Node MPD is the smallest MPD supported by the node on the set of interfaces configured for use by the advertising IGP instance. MPD values may be learned via a hardware API or may be provisioned. The Node MPD sub-TLV is optional and the format is shown as follows.¶
Where:¶
Type: TBA1¶
Length: variable; represents the total length of the Value field¶
Value: field consists of one or more pairs of a 1-octet MPD-Type and 1-octet MPD-Value¶
MPD-Type: value defined in the "IGP MPD-Types" registry created by the IANA Considerations section of this document Section 6¶
MPD-Value: the packet size in bytes. This value MUST represent the lowest value supported by any link configured for use by the advertising IS-IS instance.¶
The Link MSD sub-TLV is defined for TLVs 22, 23, 25, 141, 222, and 223 to carry the MSD of the interface associated with the link. MPD values may be learned via a hardware API or may be provisioned. The sub-TLV is optional and the format is shown as follows.¶
Where:¶
Type: TBA2¶
Length: variable; represents the total length of the Value field¶
Value: field consists of one or more pairs of a 1-octet MPD-Type and 1-octet MPD-Value¶
MPD-Type: value defined in the "IGP MPD-Types" registry created by the IANA Considerations section of this document Section 6¶
MPD-Value: the packet size in bytes.¶
Tbd¶
IPv6 Readable MPD is defined as the maximum packet size in bytes, starting from the IPv6 header, that a node can read from an incoming IPv6 packet without performance impact.¶
MPLS Readable MPD is the maximum packet size in bytes, starting from the top of the MPLS label stack, that a node can read from an incoming MPLS packet without performance impact.¶
This document includes a request to IANA to allocate sub-TLV type codes for the new Node MPD sub-TLV proposed in Section 3.1 of this document from IS-IS Router Capability TLV Registry as defined by [RFC4971]. For Link MPD, IANA is requested to allocate new sub-TLV codes as defined in Section 3.2 from Sub-TLVs for TLVs 22, 23, 141, 222 and 223 registry.¶
IANA is also requested to create a new Sub-type registry titled "IGP MPD-Types" under the "Interior Gateway Protocol (IGP) Parameters" registry to identify MPD-Types as proposed in Sections 3. The following values are defined by this document:¶
Value Name Reference ----- --------------------- ------------- 0 Reserved This document 1 IPv6 Readable MPD This document 2 MPLS Readable MPD This document 3-250 Unassigned 251-254 Experimental Use This document 255 Reserved This document¶
Security considerations as specified by [RFC7981] are applicable to this document..¶