Internet DRAFT - draft-wang-sfc-md-type-issues

draft-wang-sfc-md-type-issues







SFC WG                                                           C. Wang
Internet-Draft                                                   W. Meng
Intended status: Standards Track                         ZTE Corporation
Expires: April 27, 2017                                 October 24, 2016


                          Metadata Type Issues
                    draft-wang-sfc-md-type-issues-02

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.

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 April 27, 2017.

Copyright Notice

   Copyright (c) 2016 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



Wang & Meng              Expires April 27, 2017                 [Page 1]

Internet-Draft            Metadata Type Issues              October 2016


   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  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Convention and Terminology  . . . . . . . . . . . . . . . . .   3
   3.  An issue in MD-Type = 0x1 . . . . . . . . . . . . . . . . . .   4
   4.  An analysis on how to solve above issue . . . . . . . . . . .   6
     4.1.  Method 1  . . . . . . . . . . . . . . . . . . . . . . . .   6
     4.2.  Method 2  . . . . . . . . . . . . . . . . . . . . . . . .   7
   5.  Gap analysis  . . . . . . . . . . . . . . . . . . . . . . . .   8
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   8
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   8
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   8
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .   8
     8.2.  Informative References  . . . . . . . . . . . . . . . . .   8
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   9

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.











Wang & Meng              Expires April 27, 2017                 [Page 2]

Internet-Draft            Metadata Type Issues              October 2016


        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.


        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.

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].



Wang & Meng              Expires April 27, 2017                 [Page 3]

Internet-Draft            Metadata Type Issues              October 2016


   The terms are all defined in [RFC7665] and [I-D.ietf-sfc-nsh].

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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |              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).

















Wang & Meng              Expires April 27, 2017                 [Page 4]

Internet-Draft            Metadata Type Issues              October 2016


     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



                   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.















Wang & Meng              Expires April 27, 2017                 [Page 5]

Internet-Draft            Metadata Type Issues              October 2016


                              .--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.
                             (   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?

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.













Wang & Meng              Expires April 27, 2017                 [Page 6]

Internet-Draft            Metadata Type Issues              October 2016


        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.

      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 April 27, 2017                 [Page 7]

Internet-Draft            Metadata Type Issues              October 2016


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.

6.  Security Considerations

   TBD

7.  IANA Considerations

   TBD

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,
              <http://www.rfc-editor.org/info/rfc2119>.

   [RFC7665]  Halpern, J., Ed. and C. Pignataro, Ed., "Service Function
              Chaining (SFC) Architecture", RFC 7665,
              DOI 10.17487/RFC7665, October 2015,
              <http://www.rfc-editor.org/info/rfc7665>.

8.2.  Informative References

   [I-D.guichard-sfc-nsh-dc-allocation]
              Guichard, J., Smith, M., Surendra, S., Majee, S., Agarwal,
              P., Glavin, K., and Y. Laribi, "Network Service Header
              (NSH) Context Header Allocation (Data Center)", draft-
              guichard-sfc-nsh-dc-allocation-05 (work in progress),
              August 2016.

   [I-D.ietf-sfc-nsh]
              Quinn, P. and U. Elzur, "Network Service Header", draft-
              ietf-sfc-nsh-10 (work in progress), September 2016.

   [I-D.napper-sfc-nsh-mobility-allocation]
              Napper, J., Surendra, S., Muley, P., and W. Henderickx,
              "NSH Context Header Allocation -- Mobility", draft-napper-
              sfc-nsh-mobility-allocation-02 (work in progress),
              November 2015.





Wang & Meng              Expires April 27, 2017                 [Page 8]

Internet-Draft            Metadata Type Issues              October 2016


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 April 27, 2017                 [Page 9]