Internet DRAFT - draft-bouthors-sfc-md

draft-bouthors-sfc-md






Network Working Group                                      N.P. Bouthors
Internet-Draft                                                    Qosmos
Intended status: Informational                        September 19, 2014
Expires: March 21, 2015

                       Metadata transport in SFC
                      draft-bouthors-sfc-md-00.txt

Abstract

   This draft describes the transport of metadata in Service Function
   Chains.

   It precises how metadata MAY be shared reliably by network devices
   and/or network services via Metadata Messages that can be exchanged
   offline or inline.

   It proposes IPFIX as a representation mechanism for SFC Metadata and
   SCTP as an optional transport mechanism to enable reliable
   transmission of Metadata in SFC

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 21, 2015.

Copyright Notice

   Copyright (c) 2014 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 include Simplified BSD License text




Bouthors                 Expires March 21, 2015                 [Page 1]

Internet-Draft         Metadata transport in SFC          September 2014

   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.  Requirements Language  . . . . . . . . . . . . . . . . . . . .  2
   2.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  2
     2.1.  Definition of Terms  . . . . . . . . . . . . . . . . . . .  3
     2.2.  Problem Space  . . . . . . . . . . . . . . . . . . . . . .  4
       2.2.1.  Metadata representation  . . . . . . . . . . . . . . .  4
       2.2.2.  Metadata transport service . . . . . . . . . . . . . .  4
   3.  Metadata representation  . . . . . . . . . . . . . . . . . . .  5
     3.1.  Metadata Representation Requirements . . . . . . . . . . .  6
       3.1.1.  Metadata Encoding requirements . . . . . . . . . . . .  6
       3.1.2.  Metadata Scope requirement . . . . . . . . . . . . . .  7
       3.1.3.  IPFIX Metadata representation  . . . . . . . . . . . .  7
         3.1.3.1.  IPFIX Message Format . . . . . . . . . . . . . . .  8
         3.1.3.2.  Message Header Format  . . . . . . . . . . . . . .  9
         3.1.3.3.  Field Specifier Format . . . . . . . . . . . . . .  9
         3.1.3.4.  Set and Set Header Format  . . . . . . . . . . . . 10
         3.1.3.5.  Record Format  . . . . . . . . . . . . . . . . . . 11
           3.1.3.5.1.  Template Record Format . . . . . . . . . . . . 11
           3.1.3.5.2.  Options Record Format  . . . . . . . . . . . . 11
     3.2.  IPFIX message scoping example: . . . . . . . . . . . . . . 11
     3.3.  IPFIX encoding and template provisioning . . . . . . . . . 12
   4.  Reliable Metadata transport service  . . . . . . . . . . . . . 14
     4.1.  Metadata transport        service in SFC proposals . . . . 14
       4.1.1.  Metadata transport with Network Service Header . . . . 14
       4.1.2.  Metadata transport with Service Chain Header . . . . . 16
       4.1.3.  Metadata transport in NIU proposal . . . . . . . . . . 17
       4.1.4.  Metadata transport analysis  . . . . . . . . . . . . . 17
     4.2.  Congruent out-of-band transport service  . . . . . . . . . 18
     4.3.  Reliable            transport service            proposal  19
       4.3.1.  Using SCTP as a reliable Metadada transport service in
               SFC  . . . . . . . . . . . . . . . . . . . . . . . . . 19
       4.3.2.  Using SCTP as a Metadada delivery service for SF . . . 20
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . . 20
   6.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 21
   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 21
   8.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 21
     8.1.  Normative References . . . . . . . . . . . . . . . . . . . 21
     8.2.  Informative References . . . . . . . . . . . . . . . . . . 21
     8.3.  External References  . . . . . . . . . . . . . . . . . . . 22
   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.  Requirements Language

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

2.  Introduction



Bouthors                 Expires March 21, 2015                 [Page 2]

Internet-Draft         Metadata transport in SFC          September 2014


   This draft reviews the notions of metadata transport and
   representation in the context of Service Function Chaining.

   It builds upon the work done on Metadata in [RIJSMAN] and use the
   concepts and terminology defined in  [SFC_ARCH]

   This document is illustrated with the example of the Network Service
   Header  [QUINN_NSH] as well as the Service Chain Header in
   [ZHANG_SCH] and  [NIU_SFC] as they all define implictily a metadata
   transport service in their corresponding proposals.

   As described in  [SFC_ARCH] a Service Function Chain contains a set
   of abstract Service Functions which may be applied to a set of
   packets of flows.  In practice, Service Functions are processing and
   forwarding data packets along a Rendered Service Path (RSP).

   As per [RIJSMAN], in the context of Service Function Chaining,
   metadata may be shared between Service Functions as a way to provide
   contextual information about the data packets which traverse the
   Rendered Service Path.

   [SFC_ARCH] states that metadata can be thought of as providing and
   sharing the result of classification.  But we can see other sources
   for metadata, such as the SF or SFF along the Rendered Service Path.

   For [RIJSMAN] Metadata can be used for:

   1.  Sharing Contextual information which is not locally available,

   2.  Avoiding repeated execution of expensive operations ,

   3.  Enabling support Fine-grained policies over a reduced number of
       chains,

   4.  And ensuring a single format of classification throughout the
       whole chain.

   Metadata can be exchanged directly in-band,   indirectly out-of-band,
   or via some hybrid mode possibly with some support from the SFC
   header.  These different models are described in in [RIJSMAN].

   Section 3 will review the representation requirements for Metadata
   and see that they can be addressed based on existing standards.

   Section 4 will review the Metadata transport function of SFC from a
   reliability point of view.

2.1.  Definition of Terms

   Metadata: In the context of Service Function Chaining, metadata
      provides contextual information about the data packets which
      traverse a Service Function Chain.


Bouthors                 Expires March 21, 2015                 [Page 3]

Internet-Draft         Metadata transport in SFC          September 2014


   Dataplane Metadata: These are information elements included in SFC
      header.  They can represent values for certain contextual
      attributes, or keys to be used by Service Functions to access the
      expected contextual information via some offline collection
      procedures.

   Mandatory Dataplane Metadata: These are contextual information
      elements always present in SFC headers.  The Service Path field in
      the Base Header of NSH can be considered as such.  It is shared by
      all packets in a chain; it remains constant and acts as an
      identifier for the chain instance.

   Optional Dataplane Metadata: These are contextual information
      elements included in some SFC headers.

   Offline Metadata: Metadata transported out of band but tied to a
      chain, a flow in a chain or to a specific packet.

   Chain: For convenience in the text we will sometime refer to the
      Rendered Service Path as the chain.

2.2.  Problem Space

   Two aspects of Metadata in SFC need to be addressed thoroughly
   because of their potential impact on target use cases.  First how
   Metadata can be represented, Second how it can reliably transported
   between SFF and delivered to the target SF where needed.

2.2.1.  Metadata representation

   Metadata can be extremely varied in term of usage and content.  It
   can represent the result of Deep Packet Inspection (DPI) performed on
   the traffic for example by the Classifier Service Function at the
   ingress of the Rendered Service Path.  It can contain information
   collected about the end user such as a policy identifier, a category
   or even represent an event related to the end-user session.

   Service Function and Service Forwarding Function can be as well
   source of Metadata

   This information can be used by Service Functions down the chain, as
   well as by monitoring entities responsible to track usage for example
   in the Network Function Virtualization environment to feed a VNF
   manager or an Orchestrator.

   Metadata being information shared by many network entities needs some
   means to be represented it in all of its dimensions.  To this effect,
   relying the IETF IPFIX standard is proposed in  Section 3

2.2.2.  Metadata transport service




Bouthors                 Expires March 21, 2015                 [Page 4]

Internet-Draft         Metadata transport in SFC          September 2014


   As expected from service chain proposals,  NSH, SCH and NIU proposals
   define some means to carry metadata between Service Functions in a
   Chain.  They can be classified as follow:

   Dataplane Metadata: They are defined in the Service Function Chaining
      Problem Statement document.  They are not considered to be part of
      the forwarding information of the SFC header.  However they are
      expected to carry the result of antecedent classification,
      allowing Service Functions to take local policy decisions based on
      their values.

      As such, they could also be interpreted directly by Service
      Function Forwarder to steer traffic to various Service Functions.

      This is indeed confirmed by the SFC architecture document as a not
      in SFP forwarding function of the SFF.

   Offline Metadata: Beyond Dataplane Metadata, Offline Metadata can be
      shared between Service Functions in a chain, using out of bound,
      congruent or not, or hybrid models described in [RIJSMAN]

      The hybrid model for example, defined in [RIJSMAN], utilizes the
      SFC header to transport some key values for correlation purposes.
      These Correlation Ids can be used by the Service Functions to
      recover the full associated contextual information.

   Metadata, directly or indirectly, are transported hop by hop along a
   chain, in association to end-user traffic, the data payload of the
   SFC packets.

   How these metadata are transported over a chain matters.  Passing
   metadata directly or indirectly along packets is a service that must
   be analyzed from a reliability point of view.

   Reliability requirement may vary depending on the nature of the
   metadata transported.  Past experience for example in Mobile Network
   and data center with AAA Radius have shown that contextual
   information replication to various service function was indeed
   sensitive to packet loss events, and that ad hoc solutions had to be
   implemented to detect them.

   A reliable transport service for Metadata in SFC is expected.  To
   this effect, an implementation is suggested in Section 4

3.  Metadata representation

   Metadata definition is that it provides contextual information about
   the data packets which traverse a Service Function Chain.  This must
   be understood broadly.





Bouthors                 Expires March 21, 2015                 [Page 5]

Internet-Draft         Metadata transport in SFC          September 2014


   Metadata can contain the result of traffic classification by Deep
   Packet Inspection (DPI). For example as an Application Id information
   which is tied to a traffic flow.  There could be multiple flows with
   different application ids, in a chain.

   Metadata can also contain the result of DPI data extraction, such as
   identify requested URL in HTTP. Such information can be passed to
   certain SF down the chain such as a URL filtering function.

   Metadata can contain some punctual event information collected at the
   Ingress point of the chain and expected to be passed to all elements
   in the chain.  Here this information may be triggered externally and
   generated only once, and be related to the tenant or the subscriber.

   Metadata representation involves the definition of a set of
   information elements types and the encoding rules for their values.

   Metadata representation can sometimes be performed by a single
   individual field with associated type and format.  It is not always
   the case.

      Metadata may need multiple fields transported together to
      represented their values.

      Some addition fields may be required to describe the scope of the
      metadata itself.  This can be any information element defining the
      context of the associated metadata value.  For example a
      throughput metadata field can have a port number and a switch
      address as its Scope information.

   The following Section 3.1 explores these two axes: encoding and
   scope.

   The Section 3.1.3 proposes IPFIX as a preferred means to represent
   Metadata in Service Chain messages for Out-of-band, Congruent or not;
   Metadata sharing.

3.1.  Metadata Representation Requirements

   Mandatory Dataplane Metadata is always part of the SFC header, it is
   thus reasonable to consider that its representation scheme will be
   implicit: based on what the SFC protocol will dictate, their position
   in the SFC header is sufficient for the receiving end to infer their
   type and encoding scheme.  For example, Context Header Fields in NSH
   are 32 bit fields.

   However, it will not be the case for all metadata transported.
   Optional and Offline metadata, including congruent out-of-band
   metadata still need to be represented explicitly.  This section
   addresses their specific case.

3.1.1.  Metadata Encoding requirements


Bouthors                 Expires March 21, 2015                 [Page 6]

Internet-Draft         Metadata transport in SFC          September 2014


   These requirements are applicable to out-of-band metadata (Congruent
   or not). It could be applicable with SCH on optional in-line metadata
   fields.

   For interoperability purposes, metadata encoding MUST allow the
   receiving entity to identify the type and value of the information
   received as metadata

   Metadata encoding MUST allow for encoding techniques supporting well
   known types and fields as well as proprietary extensions.

   A receiving entity MUST be able to identify when incoming metadata
   type is unknown and MUST have a defined default action to handle it.

   A piece of information may need multiple attributes to be described.
   For example a tenant id and an IP address can be used to identify a
   server in a data center uniquely.  Metadata encoding MUST support
   such structured fields.

   These groups of information have to be exchanged collectively, as
   part of a single logical message.  In this case, a sending entity
   MUST specify that it is sending a set of metadata in a message.

   This set of transported metadata elements MUST  be specified under
   the form of a metadata template document uniquely defined for the
   chain.

   A receiving entity MUST be able to detect if an incoming messages
   contains its expected set of metadata elements.

3.1.2.  Metadata Scope requirement

   A piece of information may have to be qualified by some attributes
   identifying its particular scope.  For example a throughput scope may
   have to describe where and when it was measured.

   Scope can apply to some individual metadata elements or to a set of
   metadata elements.  How a scope applies to a set of transported
   metadata elements should be defined by a specification of the
   transport set under the form of a metadata template document uniquely
   identified for the chain.

3.1.3.  IPFIX Metadata representation

   So far, simple Type Length Value encoding has been proposed to
   transport metadata.  It is not clear how structured types are
   supported, and no distinction is done between the metadata value and
   the scoping value.  For example, although the SCH proposal provides
   an optional 24-bit Organizational Unique Identifier, there is no
   namespace mechanism allowing to separate type definition spaces per
   Tenants or per chain.



Bouthors                 Expires March 21, 2015                 [Page 7]

Internet-Draft         Metadata transport in SFC          September 2014


   We suggest leveraging the work done by IETF on similar subject,
   driven by the requirement listed above, and which has been widely
   deployed.

   A natural candidate to leverage is IPFIX [RFC7011]: IPFIX is a means
   for transmitting Traffic Flow information over the network.  In order
   to transmit Traffic Flow information, it provides a common
   representation of flow data and a standard means of communicating
   them.

   Metadata collected by Network Node and Service Node SHOULD be encoded
   in template following the principles described in IPFIX [RFC7011].

   IPFIX  SHOULD be used in the context of Congruent out of band for
   reliable metadata sharing.

   IPFIX SHOULD be used in the context of offline reliable metadata
   sharing.

3.1.3.1.  IPFIX Message Format

   An IPFIX Message consisting of interleaved Template, Data, and
   Options Template Sets, as shown in Figure 1.  Here, Template and
   Options Template Sets, which are optional, are shown.

   
    +--------+--------------------------------------------------------+
    |        | +----------+ +---------+     +-----------+ +---------+ |
    |Message | | Template | | Data    |     | Options   | | Data    | |
    | Header | | Set      | | Set     | ... | Template  | | Set     | |
    |        | |          | |         |     | Set       | |         | |
    |        | +----------+ +---------+     +-----------+ +---------+ |
    +--------+--------------------------------------------------------+
   

                      Figure 1: IPFIX Message Format

   The Template Set describes the data transmitted in the following Data
   Set.  It is an optional component of the message.  The value of the
   metadata is encoded in the first Data Set.  This Data Set contains a
   template Id field as a reference to its defining Template Set.

   The Options Template Set describes the data to be transmitted as
   scope information.  It is an optional component of the message.  The
   value of the scope information is encoded in the second Data Set
   element.  If no scope information is present, then only the first
   Data Set is present in the message.

   The Option Template Set and following Data Set are used to describe
   the scope of the metadata transmitted.  For example, the metadata




Bouthors                 Expires March 21, 2015                 [Page 8]

Internet-Draft         Metadata transport in SFC          September 2014

   collected is relevant to a PDP Context or a particular line card of a
   particular switch.

3.1.3.2.  Message Header Format

   Refer to IPFIX Section 3.1 in [RFC7011].

   An IPFIX Message consisting entirely of Template and Options Template
   Sets

   
      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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |       Version Number          |            Length             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                           Export Time                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                       Sequence Number                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                    Observation Domain ID                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

                  Figure 2: IPFIX Metadata Message Header

      Version

         Version of IPFIX to which this Message conforms.  The value of
         this field is 0x000a for the current version

      Observation Domain ID

         It is RECOMMENDED that this identifier also be unique per IPFIX
         Device.  Collecting Processes SHOULD use the Chain path, Chain
         index and the Observation Domain ID field to separate different
         export streams originating from the same Exporter.  The
         Observation Domain ID SHOULD be 0 when no specific Observation
         Domain ID is relevant for the entire Metadata IPFIX Message.

         The Observation Domain ID field, along with Chain path, acts as
         a naming space identifier.  This will in particular allow for
         multi-tenant name space separation.

3.1.3.3.  Field Specifier Format

   Refer to IPFIX Section 3.2 in [RFC7011].

   It defines generic Information Element identifiers and allows for
   enterprise specific ones.  See [IANA-IPFIX] for common Information
   Element identifiers definition.

   Note: Additional common attributes may be defined for the purpose of
   SFC use cases.  (E.g.  PDP context identifier)

Bouthors                 Expires March 21, 2015                 [Page 9]

Internet-Draft         Metadata transport in SFC          September 2014


   The Field Specifier format is shown in Figure 3.

       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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |E|  Information Element ident. |        Field Length           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                      Enterprise Number                        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Figure 3: Field Specifier Format

   Where:

   E: Enterprise bit.  This is the first bit of the Field Specifier.  If
      this bit is zero, the Information Element identifier identifies an
      Information Element in [IANA-IPFIX], and the four-octet Enterprise
      Number field MUST NOT be present.  If this bit is one, the
      Information Element identifier identifies an enterprise-specific
      Information Element, and the Enterprise Number field MUST be
      present.

3.1.3.4.  Set and Set Header Format

   Refer to IPFIX Section 3.3 in [RFC7011], as well in Section 4 of
   [RFC6759] for more details on application ID field definition,
   (section 6 for examples).

   A Set has the format shown in Figure 4.  The record types can be
   either Template Records, Options Template Records, or Data Records.
   The record types MUST NOT be mixed within a Set.

             +--------------------------------------------------+
             | Set Header                                       |
             +--------------------------------------------------+
             | record                                           |
             +--------------------------------------------------+
             | record                                           |
             +--------------------------------------------------+
             ...
             +--------------------------------------------------+
             | record                                           |
       
             +--------------------------------------------------+
             | Padding (opt.)                                   |
             +--------------------------------------------------+
       
       

                    Figure 4: IPFIX Metadata Set Format




Bouthors                 Expires March 21, 2015                [Page 10]

Internet-Draft         Metadata transport in SFC          September 2014


   The Set Header's Set ID field value 2 is reserved for Template Sets
   and value 3 for Options Template Sets.  Data Set value are 256 and
   above.

   Data Set records  MUST be used to transport the metadata values.  The
   Template ID to which the Field Values belong is encoded in the Set
   Header field "Set ID", i.e., "Set ID" = "Template ID".  This way the
   corresponding Template Set can be transported in the Metadata IPIX
   message, or can be made available to all SF in a chain as part of
   their configuration delivered by the chain Controller.

3.1.3.5.  Record Format

3.1.3.5.1.  Template Record Format

   Refer to IPFIX Section 3.4.1 in [RFC7011].

   The Template Record format allows applications which don't know the
   format of certain fields to ignore them.  This is an important
   feature for sharing Metadata among heterogeneous Service and Network
   Nodes.

3.1.3.5.2.  Options Record Format

   Refer to IPFIX Section 3.4.2 in [RFC7011].

   The Options Record format allows applications to describe the scope
   of the Metadata information, via a number of fields passed in the
   following Data Set element.

   Allowing scoped Metadata provides an increased level of flexibility
   to the Network and Service Node when applied in the context of a
   particular chain.

3.2.  IPFIX message scoping example:

   The Metadata Exporting Process creates a Template Record with a few
   Information Elements:
















Bouthors                 Expires March 21, 2015                [Page 11]

Internet-Draft         Metadata transport in SFC          September 2014


           - sourceIPv4Address (key field)
           - destinationIPv4Address (key field)
           - protocol (key field)
           - destinationTransportPort (key field)
           - octetTotalCount (non key field)
   
           For example, a Flow Record corresponding to the above
           Template Record may contain:
   
               { sourceIPv4Address=192.0.2.1,
                 destinationIPv4Address=192.0.2.2,
                 protocol=17,
                 destinationTransportPort=80,
                 octetTotalCount=123456 }
   

   The Options Data Record associated with the examples above would
   contain the Scoping inforamtion:

   
        Scope:  - servicePath,
                - serviceIndex,
                - applicationId,
                - applicationName
                - applicationDescription.
   
         For example:
   
               { scope=
                 servicePath=0x000b,
                 serviceIndex=0x000c,
                 applicationId='13...10000',
                 applicationName="webex",
                 applicationDescription="Webex application" }
   

   Scope information may be used to carry the information of the NSH
   header when the information is passed offline, out of band for
   example via controllers.

   Scope information is useful when sending metadata offline, as it can
   contain information related to the chain and possibly the flow for
   which this metadata record is relevant.  Here servicePath and
   serviceIndex are thus included in the Template.

3.3.  IPFIX encoding and template provisioning

   IPFIX is a quite compact encoding

   For a template defined as followed and shared by the SF in a chain.




Bouthors                 Expires March 21, 2015                [Page 12]

Internet-Draft         Metadata transport in SFC          September 2014

   IPFIX template record shared by SF:

   Note that an XML representation of IPFIX template record can be
   defined and used to provision Service Functions.

   
        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |         Set ID = 2            |      Length = 28 octets       |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |       Template ID 256         |       Field Count = 5         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |0|    sourceIPv4Address = 8    |       Field Length = 4        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |0| destinationIPv4Address = 12 |       Field Length = 4        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |0|  ipNextHopIPv4Address = 15  |       Field Length = 4        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |0|    packetDeltaCount = 2     |       Field Length = 4        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |0|    octetDeltaCount = 1      |       Field Length = 4        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                Figure 7: IPFIX Metadata template Encoding

   An encoded IP fix transport message will be:

   
        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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |       Version Number          | Length                        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                           Export Time                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                       Sequence Number                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                    Observation Domain ID                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |          Set ID = 256         |          Length = 64          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                           192.0.2.12                          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                           192.0.2.254                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                            192.0.2.1                          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                             5009                              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                            5344385                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Figure 8: IPFIX Metadata Encoding

Bouthors                 Expires March 21, 2015                [Page 13]

Internet-Draft         Metadata transport in SFC          September 2014


4.  Reliable Metadata transport service

   We saw that various uses case support the notion that Service
   Functions require Metadata to be transported reliably along the
   Rendered Service Path they belong to.

   Network Orchestration for example is expected to be a significant
   driver for deployment of Network Services.  It relies on Service
   Level abstractions such as Group Policies, Contracts and Services as
   an input for the orchestration of Service Function Chains.  Specific
   metadata attributes such as L4-L7 fields are used as classification
   elements or filters to funnel packets into chains.  One can expect
   Network Orchestration to request metadata extraction at the
   Classifier level, and to make it available to the Service Chaining
   service

   Current SFC proposals shows that some Metadata element may play a
   role in the Service Function Chain deployment to route incoming
   traffic to some relevant processing resources.  Other Metadata can be
   used by SF for their internal needs, although there is no mechanism
   defined yet to pass these information to the SF. In both cases,
   Metadata can become a critical information element, required to be
   transported

   Indeed, Service Function Chain proposals such as NSH, SCH and NIU
   define a transport mechanism for sharing information along the
   Chains.  It is thus important to understand there transport service
   in term of reliability.  We review these separately in Section 4.1

   Service Functions may have various needs to access SFC Metadata, for
   example Event Based Metadata tied to some subscriber related state
   changes.  The complexity and length of these elements should not be
   constrained, neither should be their requirement for a reliable
   transport throughout a chain.

   Section 4.2 and Section 4.3 propose to take advantage of Congruent
   Metadata Transport.  It can be used, possibly reliably, to address
   these needs.

4.1.  Metadata transport        service in SFC proposals

4.1.1.  Metadata transport with Network Service Header

   A Network Service Header (NSH) contains metadata and service path
   information that is added to a packet or frame and used to create a
   service plane.  The packets and the NSH are then encapsulated in an
   outer header for transport.

   The service header is added by a service classification function - a
   device or application - that determines which packets require
   servicing, and correspondingly which service path to follow to apply
   the appropriate service.


Bouthors                 Expires March 21, 2015                [Page 14]

Internet-Draft         Metadata transport in SFC          September 2014


   A NSH is composed of a 64-bit base header, and four 32-bit context
   headers as shown in  Figure 9  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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      |                    Base Header                                |
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                    Context Header                             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                    Context Header                             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                    Context Header                             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                    Context Header                             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

                     Figure 9: Network Service Header

   Context headers: carry opaque metadata.

   NSH provides a mechanism to carry shared metadata between network
   devices and service functions, and between service functions.  The
   semantics of the shared metadata is communicated via a control plane
   to participating nodes.  Examples of metadata include classification
   information used for policy enforcement and network context for
   forwarding post service delivery.

   [QUINN_NSH] shows that metadata can be expected to identify
   information such as:

   1.  Network platform context: which is platform specific information
       shared between Network Nodes.  Possibly platform centric, network
       related information.

   2.  Network shared context: metadata resulting for edge
       classification.

   3.  Service platform context: which is service specific information
       shared between Service Functions.  Possibly platform-centric
       service related information.

   4.  Network shared context: metadata relevant to and shared between
       Service Functions.

   NSH also support inline optional variable size metadata.

   It contains also the notion of Critical Metadata.  Critical Metadata
   presence is noted in the NSH Base Header so that intemediate nodes
   may avoid to drop such packets.

Bouthors                 Expires March 21, 2015                [Page 15]

Internet-Draft         Metadata transport in SFC          September 2014


   This is obviously an attempt to provide some level of reliability to
   the service.  This is still a best effort attempt as there is not
   guarantee that the underlay network, unaware of NSH, drops the
   corresponding packets.

   NSH does not state whether or not Metadata can be sent as congruent
   signaling messages: without carrying any payload.

4.1.2.  Metadata transport with Service Chain Header

   The Service Chain Header (SCH) (see Figure 10 ) consists of a
   mandatory fixed length part followed by a number of optional variable
   length metadata as shown in Figure 10.  The mandatory fields carry
   "SFC path" information, which is used to steer the frames or packets
   through an ordered set of service function instances along the
   service function chain.

   The optional variable length fields carry application/service/content
   related metadata information which can be used by any SFC entities.
   The optional fields are formatted as Type-Length-Value structures.
   If any field in the header is not in use, the value of that field
   MUST be set to zero.

   
        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Ver |M|R|R|R|R|Metadata Length|        Protocol Type          |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |               Path Identifier                 |    SF Index   |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                    Optional Metadata TLVs                     |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Figure 10: Service Chain Header

   Optional metadata are added after the fixed part of the SCH. Each
   option is of variable length and has a minimum length of four octets.
   An optional 3-octet Organizational Unique Identifier (OUI) may be
   provided to differentiate multiple private number spaces for the Type
   field.  If the OUI is not provided, the Type is assumed to be a
   registered globally unique type.

   Figure 11. shows the format of the TLV in SCH.










Bouthors                 Expires March 21, 2015                [Page 16]

Internet-Draft         Metadata transport in SFC          September 2014


       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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |P|R|R|R|R|R|R|R|      Type     |    Length     |   Value       |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |   Reserved    |                  OUI (optional)               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                            Value (optional)                   |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                Figure 11: Service Chain Header TLV format

   Metadata transport in SCH calls for the inclusion of metadata
   directly in the packet.  The result is that long metadata can be
   transported inline.

   Metadata is optional, so no space is taken when no metadata is sent
   with a packet, leading to a more compact header than NSH then.
   However we can see that sending 4 32 metadata fields would take more
   header space.

   The SCH may be used to carry: (1) both SFC path steering information
   and metadata; (2) only SFC path steering information, in which case
   the Metadata Length field shall be set to zero; or (3) only metadata,
   in which case the Path Identifier and SF Index fields shall be set to
   zero for transmit and ignored upon receipt.

   SCH thus allows Metadata to be sent as congruent signaling messages:
   without carrying any payload.

   From that point of view, two notions should be supported (reliably)

   1.  Point to point message.  SF index may then be zero

   2.  "Down the chain"  messages.  SF index would not be nul then

4.1.3.  Metadata transport in NIU proposal

   [NIU_SFC] also includes the notion of optional metadata.  It
   distinguishes between FORWARDING metadata element and SERVICE
   metadata.

   FORWARDING metadata element is used to carry the SF Processing Result
   Metadata.  Error/Success message which can be passed from a Service
   Function to the next one.  SF Processing Result is a fixed 32 bit
   field.  There can be only one such element in a packet.

   SERVICE metadata is encoded in TLV, which format is not specified in
   the current version as referenced below.

4.1.4.  Metadata transport analysis



Bouthors                 Expires March 21, 2015                [Page 17]

Internet-Draft         Metadata transport in SFC          September 2014


   Both NSH and SCH proposals support both inbound and out-of-band
   metadata transport.

   1.  In-band: the metadata can be included directly as a value in some
       of the NSH Context Header Fields.  It is the preferred transport
       model for SCH.

   In such case, when a particular field is always set to the same value
   for all packets transported by the chain instance, then the metadata
   transport service is in effect reliable.

   Similarly, all the packet for a particular flow (defined by its 5
   tupple), could receive the same metadata value.  The metadata
   transport service is also reliable, provided that the value is
   understood to be attached to a flow.

   The general case is when the metadata varies from packet to packet in
   a flow.  The value is then tied to a specific packet.  Here the
   transport service is not reliable.  A retransmission of a particular
   packet would not necessarily lead it to carry the same metadata
   value.

   2.  Out-of-band: the metadata is sent along a packet that is relevant
       to the metadata, to the controller.  It is the preferred model
       for NSH, but could also be used by SCH.

   As for the in-band case, the metadata referred to indirectly can be
   transmitted reliably, when it remains the same for a chain or a flow
   in a chain.

   If however, the correlation Id passed changes over time, then the
   correct Metadata may not be retreived by some Service Functions.

   We can see that NSH and SCH do not provide a reliable transport
   service for metadata.  Conventions can be used as particular cases
   when some metadata pertains to a specific chain or a flow in the
   chain, and when its value does not change overtime.

   Such conventions however are weak.  They would suppose that some
   mechanism exists to ensure/monitor that they are followed.  And some
   exceptions mechanism would be required to deal with error cases.

   The general case, metadata tied to a packet, has its own set of
   issues.  What is a packet is lost?  How to pass metadata to a legacy
   SF, preserving the connection between the packet and its metadata.

4.2.  Congruent out-of-band transport service

   Congruent out-of-band metadata sharing can be required for some types
   of Metadata exchanges.  It has the advantage of clearly tying the
   metadata to the chain and not to a specific packet, and to avoid
   payload fragmentation issues.


Bouthors                 Expires March 21, 2015                [Page 18]

Internet-Draft         Metadata transport in SFC          September 2014


   Up to draft 2, NSH did not allow for long inline metadata transport.
   Four 32 bits context fields are reserved for that purpose, and seem
   best suited for offline Metadata sharing, or to transport predefined
   policy identifiers.

   NSH (since draf 3) as well as SCH could allow for metadata transport,
   either tied to a packet or possibly tied to the chain, when used
   without payload, as signaling messages.

   SCH however stipulates that in case the Path Identifier and SF Index
   fields shall be set to zero for transmit and ignored upon receipt,
   when the SCH packet will contain only metadata.  So congruent out-of-
   band metadata, transporting Metadata hop to hop to the various
   Service Function in the chain, does not seem to be supported.

   NSH and NUI supports inline variable size metadata.  They doe not
   mention explicitly that congruent out-of-band metadata can be used.

4.3.  Reliable            transport service            proposal

   Some metadata will need a reliable transport service to be shared
   inline, as well as offline.

   A protocol SCTP provides such a service and has the interesting
   characteristic to be packet based, as opposed to stream based like
   TCP.

4.3.1.  Using SCTP as a reliable Metadada transport service in SFC

   SCTP carries a sequence number and support retransmission and
   congestion control.

   Figure 12 illustrates how SCTP MUST used hop by hop between SFF in a
   chain to transport Metadata reliably.




















Bouthors                 Expires March 21, 2015                [Page 19]

Internet-Draft         Metadata transport in SFC          September 2014


                        |1  -----   |n        |21  ---- |2m
                      +---+---+   +---+---+   +-+---+   +--+-----+
                      | SF#1  |   |SF#n   |   |SF#i1|   |SF#im   |
                      |       |   |       |   |     |   |        |
                      +---+---+   +---+---+   +--+--+   +--+--+--+
                          :           :          :         :  :
                          :           :          :         :  :
                           \         /            \       /
       +-----------+ SCTP   +--------+    SCTP     +---------+
   -- >| Chain     | <--->  | SFF    |    <--->    | SFF     | ---->
       |classifier |        |Node-1  |             | Node-i  |
       +-----------+        +----+---+             +----+--+-+
                     \           |                     /
                      \          | SFC Encapsulation  /
                       \         |                   /
                     ,........................................
                    /                                         \
                   /                                           \
                  |                      Network                |
                   \                                           /
                    \........................................./
   

        Figure 12: SCTP for Reliable Metadata transport TLV format

   SCTP protocol exchanges MUST occur between SFF. The SCTP payload MUST
   contains the SFC header and the SFC payload.

   SCTP SHOULD be used in the context of Congruent out of band for
   reliable metadata sharing.

   SCTP SHOULD be used in the context of offline reliable metadata
   sharing.

   The SFF along the chain  MAY route the metadata received over SCTP to
   the next SF in the chain.  For this SCTP MUST be encapsulated in the
   SFC header.

   The SFF MUST make the received metadata available to its SF.

4.3.2.  Using SCTP as a Metadada delivery service for SF

   SCTP could also be used as a mechanism to deliver Metadata to SF in a
   chain.

   Metadata is message based, so it fits well with the SCTP API and is
   reliable.

   Defining how an SFF could delivery metadata to a SF, would facilitate
   the deployment of Metadata aware SFs, allowing to distribute policies
   in a network for both SFC unaware application and SFC aware ones.

5.  Security Considerations

Bouthors                 Expires March 21, 2015                [Page 20]

Internet-Draft         Metadata transport in SFC          September 2014


   As with many other protocols, SFC data can be spoofed or otherwise
   modified.  In many deployments,  SFC  will be used in a controlled
   environment, with trusted devices (e.g.  a data center) thus
   mitigating the risk of unauthorized header manipulation.

   SFC is always encapsulated in a transport protocol and therefore,
   when required, existing security protocols that provide authenticity
   (e.g.  [IPSec]) can be used.

   SCTP can be run securely when transporting metadata for the chain.

   Similarly if confidentiality is required, existing encryption
   protocols can be used in conjunction with encapsulated NSH.

6.  Acknowledgments

   A special thank you goes to J. Tollet and  U. Elzur for their
   guidance and feedback.

7.  IANA Considerations

   An IEEE EtherType will be requested for NSH.

8.  References

8.1.  Normative References

   [RFC0791]  Postel, J., "Internet Protocol", STD 5, RFC 791, September
              1981.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

8.2.  Informative References

   [RFC2784]  Farinacci, D., Li, T., Hanks, S., Meyer, D. and P. Traina,
              "Generic Routing Encapsulation (GRE)", RFC 2784, March
              2000.

   [RFC6071]  Frankel, S. and S. Krishnan, "IP Security (IPsec) and
              Internet Key Exchange (IKE) Document Roadmap", RFC 6071,
              February 2011.

   [RFC7011]  Claise, B., Trammell, B. and P. Aitken, "Specification of
              the IP Flow Information Export (IPFIX) Protocol for the
              Exchange of Flow Information", STD 77, RFC 7011, September
              2013.

   [RFC7012]  Claise, B. and B. Trammell, "Information Model for IP Flow
              Information Export (IPFIX)", RFC 7012, September 2013.




Bouthors                 Expires March 21, 2015                [Page 21]

Internet-Draft         Metadata transport in SFC          September 2014


   [RFC7013]  Trammell, B. and B. Claise, "Guidelines for Authors and
              Reviewers of IP Flow Information Export (IPFIX)
              Information Elements", BCP 184, RFC 7013, September 2013.

   [RFC6759]  Claise, B., Aitken, P. and N. Ben-Dvora, "Cisco Systems
              Export of Application Information in IP Flow Information
              Export (IPFIX)", RFC 6759, November 2012.

   [RIJSMAN]  Rijsman, B., "Metadata Considerations, draft-rijsman-sfc-
              metadata-considerations-00 ", .

   [SFC_ARCH]
              Halpern, J. and C. Pignataro, "Service Function Chaining
              (SFC) Architecture draft-ietf-sfc-architecture-01 ", .

   [QUINN_NSH]
              Quinn, P., "Network Service Header, draft-quinn-sfc-
              nsh-02.txt ", .

   [ZHANG_SCH]
              Zang, H., "Service Chain Header draft-zhang-sfc-sch-00 ",
              .

   [NIU_SFC]  Niu, L., "A Service Function Chaining Header and
              Forwarding Mechanism draft-niu-sfc-mechanism-01.txt ", .

8.3.  External References

   [IANA-IPFIX]
              IANA , ""IP Flow Information Export (IPFIX) Entities",
              http://www.iana.org/assignments/ipfix/ ", .

Author's Address

   Nicolas Bouthors
   Qosmos

















Bouthors                 Expires March 21, 2015                [Page 22]