|Internet-Draft||VTN-ID in MPLS||March 2022|
|Li & Dong||Expires 8 September 2022||[Page]|
- Network Working Group
- Intended Status:
- Standards Track
Carrying Virtual Transport Network Identifier in MPLS Packet
A Virtual Transport Network (VTN) is a virtual network which has a customized network topology and a set of dedicated or shared network resources allocated from the underlying network infrastructure. Multiple VTNs can be created by network operator for using as the underlay for one or a group of VPNs services to provide enhanced VPN (VPN+) services. In packet forwarding, some fields in the data packet needs to be used to identify the VTN the packet belongs to, so that the VTN-specific processing can be executed. In the context of network slicing, a VTN can be instantiated as a Network Resource Partition (NRP).¶
This document proposes a mechanism to carry the VTN-ID in an MPLS packet to identify the VTN the packet belongs to. The procedure for processing the VTN ID is also specified.¶
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 8 September 2022.¶
Copyright (c) 2022 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.¶
Virtual Private Networks (VPNs) provide different groups of users with logically isolated connectivity over a common shared network infrastructure. With the introduction of 5G, new service types may require connectivity services with advanced characteristics comparing to traditional VPNs, such as strict isolation from other services or guaranteed performance. These services are refered to as "enhanced VPNs" (VPN+). [I-D.ietf-teas-enhanced-vpn] describes a framework and candidate component technologies for providing VPN+ services.¶
The enhanced properties of VPN+ require integration between the overlay connectivity and the characteristics provided by the underlay network. To meet the requirement of enhanced VPN services, a number of Virtual Transport Networks (VTNs) need to be created, each consists of a subset of the underlay network topology and a set of network resources allocated from the underlay network to meet the requirement of one or a group of VPN+ services. In the network, traffic of different VPN+ services may to be processed separately based on the topology and the network resources associated with the corresponding VTN. [I-D.ietf-teas-ietf-network-slices] introduces the concept Network Resource Partition (NRP) as a set of network resources that are available to carry traffic and meet the SLOs and SLEs. In the context of network slicing, a VTN can be instantiated as a Network Resource Partition (NRP).¶
For network scenarios where a large number of VTNs need to be created and maintained, [I-D.dong-teas-nrp-scalability] describes the scalability considerations for VTN. One approach to improve the data plane scalability is introducing a dedicated VTN Identifier (VTN-ID) in data packets to identify the VTN the packets belong to, so that VTN-specific packet processing can be performed by network nodes.¶
This document proposes a mechanism to carry the VTN Identifier (VTN-ID) and the related information in MPLS [RFC3031] data packets, so that the packet will be processed by network nodes using the set of network resources allocated to the corresponding VTN. The procedure for processing the VTN-ID is also specified. The forwarding path of the MPLS LSP is determined using the MPLS label stack in the packet, and the set of local network resources used for processing the packet is determined by the VTN-ID. The mechanism introduced in this document is applicable to both MPLS networks with RSVP-TE [RFC3209] or LDP [RFC5036] LSPs, and MPLS networks with Segment Routing (SR) [RFC8402] [RFC8660].¶
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 BCP14 RFC 2119 [RFC2119] RFC 8174 [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
This document defines a new VTN extension header which is used to carry the VTN-ID and other VTN related information. In an MPLS packet, The VTN extension header follows the MPLS label stack, and precedes the header and payloads in the upper layer. The format of VTN extension header is shown as below:¶
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Nibble | Length| Flags | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Options ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1. The format of MPLS VTN Extension Header¶
- Nibble: The first 4-bit field is set to the binary value 0010. This is to ensure that the VTN extension header will not be interpreted as an IP header or the ACH of pseudowire packet.¶
- Length: Indicate the length of the VTN extension header in 32-bit words.¶
- Flags: 8-bit Flags field. All the flags are reversed for future use. This field SHOULD be set to zero on transmission and MUST be ignored on receipt.¶
- Reserved: 16-bit field reserved for future use.¶
A new VTN-ID Option is defined in this document, other option types may be defined in future documents. The format of the VTN-ID Option is shown as below:¶
Option Option Option Type Data Len Data +--------+--------+--------+--------+--------+--------+ |BBCTTTTT|00000100| VTN-ID | +--------+--------+--------+--------+--------+--------+ Figure 2. The format of VTN-ID Option¶
Option Type: 8-bit identifier of the type of option. The type of VTN-ID option is to be assigned by IANA. The highest-order bits of the type field are defined as below:¶
- BB 00 The highest-order 2 bits are set to 00 to indicate that a node which does not recognize this type will skip over it and continue processing the header.¶
- C 1 The third highest-order bit are set to 1 to indicate this option may change en route.¶
Opt Data Len: 8-bit unsigned integer indicates the length of the option Data field of this option, in octets. The value of Opt Data Len of the VTN-ID option SHOULD be set to 4.¶
Option Data: 4-octet identifier which uniquely identifies a VTN within a network domain.¶
A new MPLS special-purpose label or extended special-purpose label is defined as the VTN Extension Header Indicator (VEHI), its value is to be assigned by IANA. The VEHI label is used to indicate the existence of the VTN Extension Header after the MPLS label stack in the packet. The position of the VEHI label in the MPLS label stack is not limited.¶
The benefit of introducing the MPLS VTN Extension Header to carry the VTN-ID and the related information is that it provides the flexibility to encode information which cannot be accomodated in an MPLS label (20-bit), and the length of the header can be variable.¶
When the ingress node of an LSP receives a packet, according to traffic classification or mapping policy, the packet is steered into one of the VTNs in the network, then a VTN header SHOULD be inserted into the packet, and the VTN-ID which the packet is mapped to SHOULD be carried in the VTN header. The ingress node SHOULD also encapsulates the packet with an MPLS label stack which are used to determine the path traversed by the LSP. The VHI label SHOULD be inserted in the label stack to identify the existence of the VTH header.¶
On receipt of a MPLS packet which carries the VHL and the VTN header, network nodes which support the mechanism defined in this document SHOULD scan the label stack to figure out the existence of the VHL. If there is a VHL in the label stack, then the network node SHOULD parse the VTN header and use the VTN-ID to identify the VTN the packet belongs to, and use the local resources allocated to the VTN to process and forward the packet. The forwarding behavior is based on both the top MPLS label and the VTN-ID. The top MPLS label is used for the lookup of the next-hop, and the VTN-ID can be used to determine the set of network resources allocated by the network nodes for processing and sending the packet to the next-hop.¶
There can be different approaches used for allocating network resources on each network node to the VTNs. For example, on one interface, a subset of forwarding plane resource (e.g. bandwidth and the associated buffer/queuing/scheduling resources) allocated to a particular VTN can be considered as a virtual layer-2 sub-interface with dedicated bandwidth and the associated resources. In packet forwarding, the top MPLS label of the received packet is used to identify the next-hop and the outgoing Layer 3 interface, and the VTN-ID is used to further identify the virtual sub-interface which is associated with the VTN on the outgoing interface.¶
Network nodes which do not support the mechanism in this document SHOULD ignore the VHL and the VTN header, and forward the packet only based on the top MPLS label.¶
The egress node of the MPLS LSP SHOULD pop the VEHL together with other LSP labels, and decapsulate the VTN header.¶
Before inserting the VTN header into an MPLS packet, the ingress node MAY need to know whether the nodes along the LSP can process the VTN header properly according to the mechanisms defined in this document. This can be achieved by introducing the capability advertisement and negotiation mechanism for the VTN header. The ingress node also need to know whether the egress node of the LSP can remove the VTN header properly before parsing the upper layer and send the packet to the next hop. The capability advertisement and negotiation mechanism will be described in a future version of this document.¶
IANA is requested to assign a new special-purpose label from the "Special-Purpose MPLS Label Values" or "Extended Special-Purpose MPLS Label Values" registry.¶
Value Description Reference ------------------------------------------------------- TBD VTN Extension Header Indicator this document¶
IANA is requested to assign a new option type of the MPLS VTN extension header:¶
Value Description Reference ------------------------------------------------- TBD VTN-ID this document¶
Zhibo Hu Email: email@example.com¶
- Dong, J., Bryant, S., Li, Z., Miyasaka, T., and Y. Lee, "A Framework for Enhanced Virtual Private Network (VPN+) Services", Work in Progress, Internet-Draft, draft-ietf-teas-enhanced-vpn-09, , <https://www.ietf.org/archive/id/draft-ietf-teas-enhanced-vpn-09.txt>.
- Farrel, A., Drake, J., Rokui, R., Homma, S., Makhijani, K., Contreras, L. M., and J. Tantsura, "Framework for IETF Network Slices", Work in Progress, Internet-Draft, draft-ietf-teas-ietf-network-slices-08, , <https://www.ietf.org/archive/id/draft-ietf-teas-ietf-network-slices-08.txt>.
- Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
- Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol Label Switching Architecture", RFC 3031, DOI 10.17487/RFC3031, , <https://www.rfc-editor.org/info/rfc3031>.
- Kompella, K., Andersson, L., and A. Farrel, "Allocating and Retiring Special-Purpose MPLS Labels", RFC 7274, DOI 10.17487/RFC7274, , <https://www.rfc-editor.org/info/rfc7274>.
- Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
- Dong, J., Li, Z., Gong, L., Yang, G., Guichard, J. N., Mishra, G., Qin, F., Saad, T., and V. P. Beeram, "Scalability Considerations for Network Resource Partition", Work in Progress, Internet-Draft, draft-dong-teas-nrp-scalability-01, , <https://www.ietf.org/archive/id/draft-dong-teas-nrp-scalability-01.txt>.
- Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP Tunnels", RFC 3209, DOI 10.17487/RFC3209, , <https://www.rfc-editor.org/info/rfc3209>.
- Andersson, L., Ed., Minei, I., Ed., and B. Thomas, Ed., "LDP Specification", RFC 5036, DOI 10.17487/RFC5036, , <https://www.rfc-editor.org/info/rfc5036>.
- Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., Decraene, B., Litkowski, S., and R. Shakir, "Segment Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, , <https://www.rfc-editor.org/info/rfc8402>.
- Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S., Decraene, B., Litkowski, S., and R. Shakir, "Segment Routing with the MPLS Data Plane", RFC 8660, DOI 10.17487/RFC8660, , <https://www.rfc-editor.org/info/rfc8660>.
- "3GPP TS23.501", , <https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3144>.