Service Function Chaining | J. Napper |
Internet-Draft | Cisco Systems, Inc. |
Intended status: Standards Track | S. Kumar |
Expires: December 21, 2018 | Individual Contributor |
P. Muley | |
W. Hendericks | |
Nokia | |
M. Boucadair | |
Orange | |
June 19, 2018 |
NSH Context Header Allocation for Broadband
draft-ietf-sfc-nsh-broadband-allocation-01
This document provides a recommended allocation of Network Service Header (NSH) context headers within the broadband service provider network context. Both fixed and mobile deployments are considered.
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 [RFC2119].
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 December 21, 2018.
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 (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 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.
Service Function Chaining (SFC) [RFC7665] provides a mechanism for network traffic to be steered through an ordered list of Service Functions (SFs). Furthermore, SFC allows to share metadata among involved SFC data functional elements (classifiers and SFs). Particularly, the Network Service Header (NSH, [RFC8300]) provides support for carrying shared metadata either using a fixed context header or as optional TLVs.
This document describes a recommended default allocation scheme for the fixed-length context header used for SFC within fixed and mobile broadband service provider networks. Also, the document defines companion TLV types when MD Type 0x02 is used. The use cases describing the need for metadata in these deployment contexts are described in [I-D.ietf-sfc-use-case-mobility].
This document does not address control plane considerations. The reader may refer to [I-D.ietf-sfc-control-plane].
This document makes use of the terms as defined in [RFC7498], [RFC7665], and [RFC8300].
The NSH is composed of a 4-byte base header (BH1), a 4-byte service path header (SH1), and a fixed 16-byte context header in the case of MD Type 0x01 or optional TLVs in the case of MD Type 0x02 [RFC8300].
Figure 1 shows the format of the MD Type 0x01 NSH header.
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Ver|O|U| TTL | Length |U|U|U|U|MD Type| Next Protocol | BH1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Service Path Identifier | Service Index | SH1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | Fixed | + Context Header + | (16 Bytes) | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: Network Service Header (MD Type 0x01)
Figure 2 shows the MD Type 0x02 NSH header format.
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Ver|O|U| TTL | Length |U|U|U|U|MD Type| Next Protocol | BH1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Service Path Identifier | Service Index | SH1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Variable Length Context Headers (opt.) ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: Network Service Header (MD Type 0x02)
The following header allocations provide information to support service function chaining in a service provider network, for example as described for mobility in [I-D.ietf-sfc-use-case-mobility].
The set of metadata headers can be delivered to SFs that can use the metadata within to enforce service policy, communicate between service functions, provide subscriber information, and other functionality. Several of the headers are typed allowing for different metadata to be provided to different SFs or even to the same SF but on different packets within a flow.
Which metadata are sent to which SFs is decided in the SFC control plane and is thus out of the scope of this document.
Figure 3 provides a high-level description of the fields in the recommended allocation of the fixed sixteen byte context header for a broadband context. Each four byte word in the sixteen byte context header is referred to as CH1, CH2, CH3, and CH4, respectively.
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | R | Sub | Tag | Context ID | CH1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sub/Endpoint ID ~ CH2 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Sub/Endpoint ID (cont.) | CH3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Service Information | CH4 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: NSH Context Allocation
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CAN | QoS/DSCP | Con | App Id | Rsvd | CH4 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: Service Information RAN Allocation
The intended use for each of the context header fields is as follows:
Figure 5 depictes the format of the recommended allocation of the variable length headers for a mobility context.
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TLV Class = 3GPP |C| Type |U|U|U| Len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ... +-+-+-+-+-+-+-+-+
Figure 5: TLV Allocation
The intended use of the header is for TLVs associated with 3GPP Radio Access Networks as described in [TS.29.230]. This TLV can be used by 3GPP to extend the metadata as per use cases. Having this TLV helps to carry more information that does not fit within the MD Type 0x01.
The Len field carries the total length. Type = 0x01 is reserved. If set to 0x01, the TLV carries the 4 context headers as defined in Section 4.1.
This document describes an allocation scheme for both the fixed context header (MD Type#1) and optional TLV headers (MD Type#2) in the context of broadband service providers. This allocation of headers should be considered as a guideline and may vary depending on the use case.
The control plane aspects of specifying and distributing the allocation scheme among different SFs within the Service Function Chaining environment to guarantee consistent semantics for the metadata is beyond the scope of this document.
This specification relies on NSH to share metadata among SFC data plane elements. Security-related consideration discussed in [RFC8300] MUST be followed.
The recommended header allocation in this document includes sensitive information that MUST NOT be revealed outside an SFC-enabled domain. Those considerations are already discussed in [RFC8300]. NSH allows by design to remove any NSH data before existing an SFC-enabled domain.
Furthermore, means to prevent that illegitimate nodes insert spoofed data MUST be supported. As a reminder, the NSH specification assumes ingress boundary nodes strip any NSH data that may be present in a packet. Misbehaving nodes from within an SFC-enabled domain may alter the content of the NSH data. Such treats are discussed in [RFC8300]. This document does not introduce new treats compared to those discussed in [RFC8300].
This document requests IANA to assign a TLV class for 3GPP to be used for its use cases.
The authors would like to thank Jim Guichard for his assistance structuring the document.
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997. |
[RFC7665] | Halpern, J. and C. Pignataro, "Service Function Chaining (SFC) Architecture", RFC 7665, DOI 10.17487/RFC7665, October 2015. |
[RFC8300] | Quinn, P., Elzur, U. and C. Pignataro, "Network Service Header (NSH)", RFC 8300, DOI 10.17487/RFC8300, January 2018. |
[I-D.ietf-sfc-control-plane] | Boucadair, M., "Service Function Chaining (SFC) Control Plane Components & Requirements", Internet-Draft draft-ietf-sfc-control-plane-08, October 2016. |
[I-D.ietf-sfc-use-case-mobility] | Haeffner, W., Napper, J., Stiemerling, M., Lopez, D. and J. Uttaro, "Service Function Chaining Use Cases in Mobile Networks", Internet-Draft draft-ietf-sfc-use-case-mobility-08, May 2018. |
[itu-e-164] | "The international public telecommunication numbering plan", ITU-T E.164, November 2010. |
[RFC2474] | Nichols, K., Blake, S., Baker, F. and D. Black, "Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers", RFC 2474, DOI 10.17487/RFC2474, December 1998. |
[RFC7498] | Quinn, P. and T. Nadeau, "Problem Statement for Service Function Chaining", RFC 7498, DOI 10.17487/RFC7498, April 2015. |
[TS.29.230] | "Diameter applications; 3GPP specific codes and identifiers", 3GPP TS 29.230 14.5.0, July 2017. |