SFC WG C. Wang Internet-Draft W. Meng Intended status: Standards Track ZTE Corporation Expires: March 24, 2016 September 21, 2015 Metadata Type Issues draft-wang-sfc-md-type-issues-00 Abstract Service function chain is the definition of an ordered set of service functions. After instantiated, the service function path is created and the classified traffic is steered through the corresponding service function path and then forwarded to the final destination. Metadata (MD) is conveyed in SFC data plane which provides the ability to exchange context information between classifiers and SFs, among SFs, and between external systems and SFs. This document is motivated to state an issue when MD Type = 0x1 and discuss which Metadata Type in more appropriate to be mandate in SFC data plane. Status of this Memo 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 http://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 March 24, 2016. Copyright Notice Copyright (c) 2015 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 Wang & Meng Expires March 24, 2016 [Page 1] Internet-Draft Metadata Type Issues September 2015 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 . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Convention and Terminology . . . . . . . . . . . . . . . . . . 5 3. An issue in MD-Type = 0x1 . . . . . . . . . . . . . . . . . . 6 4. An analysis on how to solve above issue . . . . . . . . . . . 8 4.1. Method 1 . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.2. Method 2 . . . . . . . . . . . . . . . . . . . . . . . . . 8 5. Gap analysis . . . . . . . . . . . . . . . . . . . . . . . . . 10 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13 8.1. Normative References . . . . . . . . . . . . . . . . . . . 13 8.2. Informative References . . . . . . . . . . . . . . . . . . 13 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 14 Wang & Meng Expires March 24, 2016 [Page 2] Internet-Draft Metadata Type Issues September 2015 1. Introduction Service function chain is the definition of an ordered set of service functions. After instantiated, the service function path is created and the classified traffic is steered through the corresponding service function path and then forwarded to the final destination. Metadata is conveyed in the Context Headers in SFC data plane which provides the ability to exchange context information between classifiers and SFs, among SFs, and between external systems and SFs. In [I-D.ietf-sfc-nsh], it defines two mandate parts including Base Header and Service Path Header in NSH header. Besides these two parts, there are Contexts Headers immediately following the Service Path Header as well. As for what kinds of Contexts Headers is according to the MD Type specified in the Base Header. In fact, it defines two MD types: When the Base Header specifies MD Type = 0x1, four Mandatory Context Headers must be added immediately following the Service Path Header, as per Figure 1. 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|C|R|R|R|R|R|R| Length | MD-type=0x1 | Next Protocol | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Service Path ID | Service Index | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Mandatory Context Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Mandatory Context Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Mandatory Context Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Mandatory Context Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1: NSH Format when MD Type = 0x1 When the Base Header specifies MD Type = 0x2, zero or more Variable Length Context Headers MAY be added immediately following the Service Path Header, as per Figure 2. Wang & Meng Expires March 24, 2016 [Page 3] Internet-Draft Metadata Type Issues September 2015 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|C|R|R|R|R|R|R| Length | MD-type=0x2 | Next Protocol | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Service Path ID | Service Index | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Variable Length Context Headers (opt.) ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2: NSH Format when MD Type = 0x2 From the perspective in [I-D.ietf-sfc-nsh] and its companion drafts, it seems to be apt to support MD Type = 0x1 to be mandate. This document is motivated to state an issue when MD Type = 0x1 is mandate and discuss which Metadata Type in more appropriate in what circumstances in SFC data plane. Wang & Meng Expires March 24, 2016 [Page 4] Internet-Draft Metadata Type Issues September 2015 2. Convention and 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 [RFC2119]. The terms are all defined in [I-D.ietf-sfc-architecture] and [I-D.ietf-sfc-nsh]. Wang & Meng Expires March 24, 2016 [Page 5] Internet-Draft Metadata Type Issues September 2015 3. An issue in MD-Type = 0x1 In [I-D.guichard-sfc-nsh-dc-allocation], it provides the allocation scheme when Network Service Header (NSH) is used under data center scenario and defines a recommended default allocation for the Mandatory Context Headers while MD-Type = 0x1 (See Figure 3 below). 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|C|R|R|R|R|R|R| Length | MD-type=0x1 | Next Protocol | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Service Path ID | Service Index | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |D|F|Res| Source Node ID | Source Interface ID | Context Header 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Tenant ID | Context Header 2 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Class / Reserved | Source Class | Context Header 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |A| ServiceTag / Opaque Service Class | Context Header 4 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3: NSH DC Context Allocation What's more, in [I-D.napper-sfc-nsh-mobility-allocation] , it provides the allocation scheme when Network Service Header (NSH) is used under mobility scenario and defines a recommended default allocation for the Mandatory Context Headers while MD-Type = 0x1 (See Figure 4 below). 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|C|R|R|R|R|R|R| Length | MD-type=0x1 | Next Protocol | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Service Path ID | Service Index | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flow Cookie | Context Header 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserv |TenTy| Tenant ID | Context Header 2 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sub/App ID ~ Context Header 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Sub/App ID (cont.) | Context Header 4 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Wang & Meng Expires March 24, 2016 [Page 6] Internet-Draft Metadata Type Issues September 2015 Figure 4: NSH Mobility Context Header There is no issue while the data center scenario and mobility scenario are deployed separately. For example, SFs in data centers can identify the exactly meaning in the Mandatory Context Headers according to the definition in [I-D.guichard-sfc-nsh-dc-allocation], while SFs in mobility service provider can understand the exactly meaning in the Mandatory Context Headers according to the definition in [I-D.napper-sfc-nsh-mobility-allocation]. But it is possible that there is a mixed need, such as Data Centers providing both wireless and classic DC services. Under this mixed scenario, there seems to be some difficulty when SFs tries to analyze the Mandatory Context Headers while MD Type = 0x1. For example, in Figure 5, it illustrates the mixed scenario where a data center provides both wireless and classic DC services. And in this data center, a service function (such as SF3) serves both wireless and classic DC services. .--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--. ( DC serving both wireless and classic DC services ) ( ) Claasic DC incoming traffic( +-----+ +-----+ +-----+ ) ------->-------------> ---(---> | SF1 |----->| SF2 |------>\ /--->-- | SF4 |----->----)-----> ( +-----+ +-----+ \ / +-----+ ) ( +--|--+ ) ( | SF3 | ) ( +--|--+ ) Wireless incoming traffic( +-----+ +-----+ / \ +-----+ ) -------> ------------> ---(---->| SF5 |----->| SF6 |------>/ \--->-- | SF7 |----->----)-----> ( +-----+ +-----+ +-----+ ) ( ) .--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--. Figure 5: DC serving both wireless and classic DC services When traffic is steered to SF3, how SF3 to correctly analyze the Mandatory Context Headers in NSH within the arriving traffic? In other words, how SF3 in this mixed environments to know the receiving Mandatory Context Headers in the NSH are used for wireless service or classic DC services? Wang & Meng Expires March 24, 2016 [Page 7] Internet-Draft Metadata Type Issues September 2015 4. An analysis on how to solve above issue There may be several methods to address the above issue. Here just tries to list two feasible methods. 4.1. Method 1 Still using the recommended definition in draft-dc and draft-mobility while MD Type = 0x1, but tries to add some bits in NSH to identify what type of Mandatory Context Headers is conveyed within NSH. For example, as per Figure 6, here occupies the lowest two bits in MD Type field to identify the exact type of Mandatory Context Headers. 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|C|R|R|R|R|R|R| Length |MD-type=0x1| T | Next Protocol | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Service Path ID | Service Index | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Mandatory Context Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Mandatory Context Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Mandatory Context Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Mandatory Context Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 6: Two bits in MD Type field In fact, this issue only exists while MD Type = 0x1. While MD Type = 0x2, there is no such issue. So these added two bits have no meaning while MD Type = 0x2. When traffic is steered to SF3, SF3 finds the MD Type = 0x1 and then analyze these added two bits to know what kind of Mandatory Context Headers is contained. After that, correctly analyze the following Mandatory Context Headers according to the type. 4.2. Method 2 It also may be a feasible method to use MD Type = 0x2 to identify the Context Headers. According to MD Type = 0x2, the exact format for Variable Length Context Headers is illustrated in Figure 7, which states the TLV Class field or Type field already. Then, no matter in separated scenarios or mixed scenarios, there is no confusion when traffic arrives at SFs. Wang & Meng Expires March 24, 2016 [Page 8] Internet-Draft Metadata Type Issues September 2015 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TLV Class |C| Type |R|R|R| Len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Variable Metadata | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 7: Variable Length Context Headers when MD Type = 0x2 Wang & Meng Expires March 24, 2016 [Page 9] Internet-Draft Metadata Type Issues September 2015 5. Gap analysis This document tries to raise one issue when using MD Type = 0x1 as mandatory type. As for which MD Type need to be mandatory there still need much more attentions and discussions. Wang & Meng Expires March 24, 2016 [Page 10] Internet-Draft Metadata Type Issues September 2015 6. Security Considerations TBD Wang & Meng Expires March 24, 2016 [Page 11] Internet-Draft Metadata Type Issues September 2015 7. IANA Considerations TBD Wang & Meng Expires March 24, 2016 [Page 12] Internet-Draft Metadata Type Issues September 2015 8. References 8.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ RFC2119, March 1997, . 8.2. Informative References [I-D.guichard-sfc-nsh-dc-allocation] Guichard, J., Smith, M., Surendra, S., Majee, S., Agarwal, P., Kevin, K., and Y. Laribi, "Network Service Header (NSH) Context Header Allocation (Data Center)", draft-guichard-sfc-nsh-dc-allocation-02 (work in progress), June 2015. [I-D.ietf-sfc-architecture] Halpern, J. and C. Pignataro, "Service Function Chaining (SFC) Architecture", draft-ietf-sfc-architecture-11 (work in progress), July 2015. [I-D.ietf-sfc-nsh] Quinn, P. and U. Elzur, "Network Service Header", draft-ietf-sfc-nsh-01 (work in progress), July 2015. [I-D.napper-sfc-nsh-mobility-allocation] Napper, J. and S. Surendra, "NSH Context Header Allocation -- Mobility", draft-napper-sfc-nsh-mobility-allocation-01 (work in progress), May 2015. Wang & Meng Expires March 24, 2016 [Page 13] Internet-Draft Metadata Type Issues September 2015 Authors' Addresses Cui Wang ZTE Corporation No.50 Software Avenue, Yuhuatai District Nanjing China Email: wang.cui1@zte.com.cn Wei Meng ZTE Corporation No.50 Software Avenue, Yuhuatai District Nanjing China Email: meng.wei2@zte.com.cn,vally.meng@gmail.com Wang & Meng Expires March 24, 2016 [Page 14]