Service Function Chaining (sfc)                                    H. Li
Internet-Draft                                                     Q. Wu
Intended status: Informational                                  O. Huang
Expires: December 4, 2015                                         Huawei
                                                       M. Boucadair, Ed.
                                                            C. Jacquenet
                                                          France Telecom
                                                             W. Haeffner
                                                                Vodafone
                                                                  S. Lee
                                                                    ETRI
                                                               R. Parker
                                                       Affirmed Networks
                                                               L. Dunbar
                                                                A. Malis
                                                     Huawei Technologies
                                                              J. Halpern
                                                                Ericsson
                                                                T. Reddy
                                                                P. Patil
                                                                   Cisco
                                                            June 2, 2015


Service Function Chaining (SFC) Control Plane Components & Requirements
                     draft-ww-sfc-control-plane-05

Abstract

   This document describes requirements for conveying information
   between Service Function Chaining (SFC) control elements (including
   management components) and SFC functional elements.  Also, this
   document identifies a set of control interfaces to interact with SFC-
   aware elements to establish, maintain or recover service function
   chains.  This document does not specify protocols nor extensions to
   existing protocols.

   This document exclusively focuses on SFC deployments that are under
   the responsibility of a single administrative entity.  Inter-domain
   considerations are out of scope.

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



Li, et al.              Expires December 4, 2015                [Page 1]


Internet-Draft   Control Plane Components & Requirements       June 2015


   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 December 4, 2015.

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
   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
     1.1.  Scope . . . . . . . . . . . . . . . . . . . . . . . . . .   4
     1.2.  Terminology . . . . . . . . . . . . . . . . . . . . . . .   5
     1.3.  Assumptions . . . . . . . . . . . . . . . . . . . . . . .   5
   2.  Generic Considerations  . . . . . . . . . . . . . . . . . . .   6
     2.1.  Generic Requirements  . . . . . . . . . . . . . . . . . .   6
     2.2.  SFC Control Plane Bootstrapping . . . . . . . . . . . . .   6
     2.3.  Coherent Setup of an SFC-enabled Domain . . . . . . . . .   7
   3.  SFC Control Plane Components & Interfaces . . . . . . . . . .   8
     3.1.  Reference Architecture  . . . . . . . . . . . . . . . . .   8
     3.2.  Centralized vs. Distributed . . . . . . . . . . . . . . .   9
     3.3.  Interface Reference Points  . . . . . . . . . . . . . . .  10
       3.3.1.  C1: Interface between SFC Control Plane & SFC
               Classifier  . . . . . . . . . . . . . . . . . . . . .  10
       3.3.2.  C2: Interface between SFC Control Plane & SFF . . . .  12
       3.3.3.  C3: Interface between SFC Control Plane & SFC-aware
               SFs . . . . . . . . . . . . . . . . . . . . . . . . .  12
       3.3.4.  C4: Interface between SFC Control Plane & SFC Proxy .  13
   4.  Additional Considerations . . . . . . . . . . . . . . . . . .  14
     4.1.  Discovery of the SFC Control Element  . . . . . . . . . .  14
     4.2.  SF Symmetry . . . . . . . . . . . . . . . . . . . . . . .  14



Li, et al.              Expires December 4, 2015                [Page 2]


Internet-Draft   Control Plane Components & Requirements       June 2015


     4.3.  Pre-deploying SFCs  . . . . . . . . . . . . . . . . . . .  14
     4.4.  Withraw a Service Function (SF) . . . . . . . . . . . . .  14
     4.5.  SFC/SFP Operations  . . . . . . . . . . . . . . . . . . .  15
     4.6.  Unsolicited (Notification) Messages . . . . . . . . . . .  15
     4.7.  SF Liveness Detection . . . . . . . . . . . . . . . . . .  15
     4.8.  Monitoring & Counters . . . . . . . . . . . . . . . . . .  16
     4.9.  SFC/SFP Diagnosis . . . . . . . . . . . . . . . . . . . .  16
     4.10. Considerations Specific to the Centralized Path
           Computation Model . . . . . . . . . . . . . . . . . . . .  17
       4.10.1.  Service Function Path Adjustment . . . . . . . . . .  17
       4.10.2.  Head End Initiated SFP Establishment . . . . . . . .  18
       4.10.3.  (Regional) Restoration of Service Functions  . . . .  18
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .  19
     5.1.  Secure Communications . . . . . . . . . . . . . . . . . .  19
     5.2.  Pervasive Monitoring  . . . . . . . . . . . . . . . . . .  19
     5.3.  Privacy . . . . . . . . . . . . . . . . . . . . . . . . .  19
     5.4.  Denial-of-Service (DoS) . . . . . . . . . . . . . . . . .  20
     5.5.  Illegitimate Discovery of SFs and SFC Control Elements  .  20
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  20
   7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  20
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  20
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  20
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  20
   Appendix A.  RSP-related Considerations . . . . . . . . . . . . .  23
     A.1.  Encoding the Exact SFF-SF-sequence in Data Packets  . . .  23
     A.2.  Fully Controlled SFF-SF-Sequence for a SFP  . . . . . . .  23
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  24

1.  Introduction

   The dynamic enforcement of a service-derived forwarding policy for
   packets entering a network that supports advanced Service Functions
   (SFs) has become a key challenge for operators.  Typically, many
   advanced Service Functions (e.g., Performance Enhancement Proxies
   ([RFC3135]), NATs [RFC3022][RFC6333][RFC6146], firewalls
   [I-D.ietf-opsawg-firewalls], etc.) are solicited for the delivery of
   value-added services, particularly to meet various service objectives
   such as IP address sharing, avoiding covert channels, detecting and
   protecting against ever increasing Denial-of-Service (DoS) attacks,
   etc.

   Because of the proliferation of such advanced service functions
   together with complex service deployment constraints that demand more
   agile service delivery procedures, operators need to rationalize
   their service delivery logics and master their complexity while
   optimising service activation time cycles.  The overall problem space
   is described in [RFC7498].  A more in-depth discussion on use cases




Li, et al.              Expires December 4, 2015                [Page 3]


Internet-Draft   Control Plane Components & Requirements       June 2015


   can be found in [I-D.ietf-sfc-use-case-mobility] and
   [I-D.ietf-sfc-dc-use-cases].

   [I-D.ietf-sfc-architecture] presents a model addressing the
   problematic aspects of existing service deployments, including
   topological dependence and configuration complexity.  It also
   describes an architecture for the specification, creation, and
   ongoing maintenance of Service Function Chains (SFC) within a
   network.  That is, how to define an ordered set of Service Functions
   and ordering constraints that must be applied to packets and/or
   frames and/or flows selected as a result of classification.

1.1.  Scope

   While [I-D.ietf-sfc-architecture] focuses on data plane
   considerations, this document describes requirements for conveying
   information between SFC control elements (including management
   components) and SFC functional elements.  Also, this document
   identifies a set of control interfaces to interact with SFC-aware
   elements to establish, maintain or recover service function chains.

   Both distributed and centralized control plane schemes to install
   SFC-related state and influence forwarding policies are discussed.

   This document does not make any assumption on the deployment use
   cases.  In particular, the document implicitly covers fixed, mobile,
   data center networks and any combination thereof.

   This document does not make any assumption about which control
   protocol to use, whether one or multiple control protocols are
   required, or whether the same or distinct control protocols will be
   invoked for each of the control interfaces.  It is out of scope of
   this document to specify a profile for an existing protocol, to
   define protocol extensions, or to select a protocol.

   Considerations related to the chaining of Service Functions that span
   domains owned by multiple administrative entities are out of scope.

   It is out of scope of this document to discuss SF-specific control
   and policy enforcement schemes; only SFC considerations are
   elaborated, regardless of the various connectivity services that may
   be supported in the SFC domain.  Likewise, only the control of SFC-
   aware elements is discussed.

   Service catalogue (including guidelines for deriving service function
   chains) is out of scope.





Li, et al.              Expires December 4, 2015                [Page 4]


Internet-Draft   Control Plane Components & Requirements       June 2015


1.2.  Terminology

   The reader should be familiar with the terms defined in [RFC7498] and
   [I-D.ietf-sfc-architecture].

   The document makes use of the following terms:

   o  SFC data plane functional element: Refers to SFC-aware Service
      Function, Service Function Forwarder (SFF), SFC Proxy, or SFC
      Classifier as defined in the SFC data plane architecture
      [I-D.ietf-sfc-architecture].

   o  SFC Control Element: A logical entity that instructs one or more
      SFC data plane functional elements on how to process packets
      within an SFC-enabled domain.

   o  SFC Classification entry: Refers to an entry maintained by an SFC
      Classifier that reflects the policies for binding an incoming
      flow/packet to a given SFC.  Actions are associated with matching
      criteria.  For example, packets can be marked with the appropriate
      SFC-related information to differentiate flows so that subsequent
      SFFs can forward the flows to a sequence of SFs in a given order.
      The set of classification entries maintained by a Classifier are
      referred to as in the classification policy table.

   o  SFC Forwarding Policy Table: this table reflects the SFC-specific
      traffic forwarding policy enforced by SFF components for every
      relevant incoming packet that is associated to one of the existing
      SFCs.

         [[Note: The question of whether the data plane operates just in
         terms of SFP IDs or needs SFC IDs, as described in this version
         of the draft, is still under discussion among the authors.]]

1.3.  Assumptions

   This document adheres to the assumptions listed in Section 1.2 of
   [I-D.ietf-sfc-architecture].

   This document does not make any assumptions about the co-location of
   SFC data plane functional elements; this is deployment-specific.
   This document can accommodate a variety of deployment contexts such
   as (but not limited to):

   o  A Service Function Forwarder (SFF) can connect instances of the
      same or distinct SFs.
   o  A SF instance can be serviced by one or multiple SFFs.
   o  One or multiple SFs can be co-located with a SFF.



Li, et al.              Expires December 4, 2015                [Page 5]


Internet-Draft   Control Plane Components & Requirements       June 2015


   o  A boundary node (that connects one SFC-enabled domain to a node
      either located in another SFC-enabled domain or in a domain that
      is SFC-unaware) can act as an egress node and an ingress node for
      the same flow.
   o  Distinct ingress and egress nodes may be crossed by a packet when
      forwarded in an SFC-enabled domain.
   o  Distinct ingress nodes may be solicited for each traffic direction
      (e.g., upstream and downstream).
   o  An ingress node can embed a Classifier.
   o  An ingress node may not embed a Classifier, but it can be
      responsible for dispatching flows among a set of Classifiers.
   o  The same boundary node may act as an ingress node, an egress node,
      and also embed a Classifier.
   o  A Classifier can be hosted in a node that embeds one or more SFs.
   o  Many network elements within an SFC-enabled domain may behave as
      egress/ingress nodes.

   Furthermore, the following assumptions are made:

   o  A Control Element can be co-located with a Classifier, SFF or SF.
   o  One or multiple Control Elements can be deployed in an SFC-enabled
      domain.
   o  State synchronization between Control Elements is out of scope.

2.  Generic Considerations

2.1.  Generic Requirements

   For deployments that would require so, SFC forwarding must be allowed
   even if no control protocols are enabled.  Static configuration must
   be allowed.

   A permanent association between an SFC data plane element with a
   Control Element must not be required; specifically, the SFC-enabled
   domain must keep on processing incoming packets according to the SFC
   instructions even during unavailability events of control plane
   components.  SFC implementations that do not meet this requirement
   will suffer from another flavor of the constrained high availability
   issue, discussed in Section 2.3 of [RFC7498], supposed to be solved
   by SFC designs.

2.2.  SFC Control Plane Bootstrapping

   The interface that is used to feed the SFC control plane with service
   objectives and guidelines is not part of the SFC control plane
   itself.  Therefore, this document assumes the SFC control plane is
   provided with a set of information that is required for proper SFC
   operation with no specific assumption about how this information is



Li, et al.              Expires December 4, 2015                [Page 6]


Internet-Draft   Control Plane Components & Requirements       June 2015


   collected/provisioned, nor about the structure of such information.
   The following information that is likely to be provided to the SFC
   control plane at bootstrapping includes (non-exhaustive list):

   o  Locators for Classifiers/SFF/SFs/Proxies, etc.
   o  SFs serviced by each SFF.
   o  A list of service function chains, including how they are
      structured and unambiguously identified.
   o  Status of each SFC: active/pre-deployment phase/etc.  A SFC can be
      defined at the management level and instantiated in an SFC-enabled
      domain for pre-deployment purposes (e.g., testing).  Actions to
      activate, modify or withdraw an SFC are triggered by the control
      plane.  Nevertheless, this document does not make any assumption
      about how an operator instructs the control plane.
   o  A list of classification guidelines and/or rules to bind flows to
      SFCs/SFPs.
   o  Optionally, (traffic/CPU/memory) load balancing objectives at the
      SFC level or on a per node (e.g., per-SF/SFF/Proxy) basis.
   o  Security credentials.
   o  Context information that needs to be shared on a per SFC basis.

   Also, the SFC control plane may gather the following information from
   an SFC-enabled domain at bootstrapping (non-exhaustive list).  How
   this information is collected is left unspecified in this document:

   o  The list of active SFC-aware SFs (including their locators).
   o  The list of SFFs and the SFs that are attached to.
   o  The list of enabled SFC Proxies, and the list of SFC-unware SFs
      attached to.
   o  The list of active SFCs/SFPs as enabled in an SFC-enabled domain.
   o  The list of Classifiers and their locators, so as to retrieve the
      classification policy table for each Classifier, in particular.
   o  The SFC forwarding policy tables maintained by SFFs.

   During the bootstrapping phase, a Control Element may detect a
   conflict between the running configuration in an SFC data plane
   element and the information maintained by the control plane.
   Consequently, the control plane undertakes appropriate actions to fix
   those conflicts.  This is typically achieved by invoking one of the
   interfaces defined in Section 3.3.

2.3.  Coherent Setup of an SFC-enabled Domain

   Various transport encapsulation schemes and/or variations of SFC
   header implementations may be supported by one or several nodes of an
   SFC-enabled domain.  For the sake of coherent configuration, the SFC
   control plane is responsible for instructing all the involved SFC
   data plane functional elements about the behavior to adopt to select



Li, et al.              Expires December 4, 2015                [Page 7]


Internet-Draft   Control Plane Components & Requirements       June 2015


   the transport encapsulation scheme(s), the version of the SFC header
   to enable, etc.

3.  SFC Control Plane Components & Interfaces

3.1.  Reference Architecture

   The SFC control plane is responsible for the following:

   o  Build and monitor the service-aware topology.  For example, this
      can be achieved by means of dynamic SF discovery techniques.
      Those means are out of scope of this document.
   o  Maintain a repository of service function chains, SFC matching
      criteria to bind flows to a given service function chain, and
      mapping between service function chains and SFPs.
   o  Guarantee the coherency of the configuration and the operation of
      an SFC-enabled domain.
   o  Dynamically compute a service-aware forwarding path (distributed
      model, see Section 3.2)
   o  Determine a forwarding path in the context of a centralized
      deployment model (see Section 3.2).
   o  Update service function chains or adjust SFPs (e.g., for
      restoration purposes) based on various inputs (e.g., external
      policy context, path alteration, SF unavailability, SF withdrawal,
      service decommissioning, etc.).
   o  Populate SFC forwarding policy tables of involved SFC data plane
      elements and provides Classifiers with traffic classification
      rules.

   Figure 1 shows the overall SFC control plane architecture, including
   interface reference points.

   This document does not elaborate on the internal decomposition of the
   SFC Control & Management Plane functional blocks.  The components
   within the SFC Control & Management Planes and their interactions are
   out of scope.

   As discussed in Section 3.2, the SFC control plane can be implemented
   in a (logically) centralized or distributed fashion.












Li, et al.              Expires December 4, 2015                [Page 8]


Internet-Draft   Control Plane Components & Requirements       June 2015


                  +----------------------------------------------+
                  |                                              |
                  |       SFC  Control & Management Planes       |
          +-------|                                              |
          |       |                                              |
          C1      +------^-----------^-------------^-------------+
   +---------------------|C3---------|-------------|-------------+
   |      |            +----+        |             |             |
   |      |            | SF |        |C2           |C2           |
   |      |            +----+        |             |             |
   | +----V--- --+       |           |             |             |
   | |   SFC     |     +----+      +-|--+        +----+          |
   | |Classifier |---->|SFF |----->|SFF |------->|SFF |          |
   | |   Node    |<----|    |<-----|    |<-------|    |          |
   | +-----------+     +----+      +----+        +----+          |
   |                     |           |              |            |
   |                     |C2      -------           |            |
   |                     |       |       |     +-----------+ C4  |
   |                     V     +----+ +----+   | SFC Proxy |-->  |
   |                           | SF | |SF  |   +-----------+     |
   |                           +----+ +----+                     |
   |                             |C3    |C3                      |
   |  SFC Data Plane Components  V      V                        |
   +-------------------------------------------------------------+

                   Figure 1: SFC Control Plane: Overview

3.2.  Centralized vs. Distributed

   The SFC control plane can be (logically) centralized, distributed or
   a combination thereof.  Whether one or multiple SFC Control Elements
   are enabled is deployment-specific.  Nevertheless, the following
   comments can be made:

   SFC management (including SFC monitoring and supervision):  is likely
      to be centralized.

   SFC Mapping Rules:  i.e., service instructions to bind a flow to a
      service function chain are likely to be managed by a central SFC
      Control Element, but the resulting policies can be shared among
      several Control Elements.  Note, these policies can be
      complemented with local information (e.g., an IPv4 address/IPv6
      prefix assigned to a customer) because such information may not be
      available to the central entity but known only during network
      attachment phase.

   Path computation:  can be either distributed or centralized.
      Distributed path computation means that the selection of the exact



Li, et al.              Expires December 4, 2015                [Page 9]


Internet-Draft   Control Plane Components & Requirements       June 2015


      sequence of SF functions that a packet needs to invoke (along with
      instances and/or SFF locator information) is a result of a
      distributed path selection algorithm executed by involved nodes.
      For some traffic engineering proposes, the SFP may be constrained
      by the control plane; as such, some SFPs can be fully specified
      (i.e., list all the SFF/SFs that need to be solicited) or
      partially specified (e.g., exclude some nodes, explicitly select
      which instance of a given SF needs to be invoked, etc.).

   SFC Resiliency (including restoration)  refers to mechanisms to
      ensure high available service function chains.  It includes means
      to detect node/link/path failures.  Both centralized and
      distributed mechanism to ensure SFC resiliency can be envisaged.

   Implementing a (logically) centralized path computation engine
   requires information to be dynamically communicated to the central
   SFC Control Element, such as the list of available SF instances, SFF
   locators, load status, SFP availability, etc.

3.3.  Interface Reference Points

   The following sub-sections describe the interfaces between the SFC
   Control & Management Planes, as well as various SFC data plane
   elements

3.3.1.  C1: Interface between SFC Control Plane & SFC Classifier

   As a reminder, a Classifier is a function that is responsible for
   classifying traffic based on (pre-defined) rules.

   This interface is used to install SFC classification rules in
   Classifiers.  Once classification rules are populated, SFC
   Classifiers are responsible for binding incoming traffic to service
   function chains according to these classification rules.  Note, the
   SFC control plane must not make any assumption on how the traffic is
   to be bound to a given SFC.  In other words, classification rules are
   deployment-specific.  For instance, classification can rely on a
   subset of the information carried in a received packet such as
   5-tuple classification, be subscriber-aware, be driven by traffic
   engineering considerations, or any combination thereof.

   The SFC control plane should be responsible for removing invalid (and
   stale) mappings from the classification tables maintained by the
   classifiers.  Also, local sanity checks mechanisms may be supported
   locally by the Classifiers, but those are out of scope.






Li, et al.              Expires December 4, 2015               [Page 10]


Internet-Draft   Control Plane Components & Requirements       June 2015


   Classification rules may be updated, deleted or disabled by the
   control plane.  Criteria that would trigger those operations are
   deployment-specific.

   Given that service function chaining solutions may be applied to very
   large sets of traffic, any control solution should take scaling
   issues into consideration as part of the design.

   Below are listed some functional objectives for this interface:

   o  Rationalize the management of classification rules.
   o  Maintain a global view of instantiated rules in all Classifiers in
      an SFC-enabled domain.
   o  Check the consistency of instantiated classification rules within
      the same Classifier or among multiple Classifier.
   o  Assess the impact of removing or modifying a classification entry
      on packets entering an SFC-enabled domain.
   o  Aggregate classification rules for the sake of performance
      optimization (mainly reduce lookup delays).
   o  Adjust classification rules when rules are based on volatile
      identifiers (e.g., an IPv4 address, IPv6 prefix).
   o  Allow to rapidly restore SFC states during failure events that
      occurred at a Classifier (or a Control Element).

   The control plane must instruct the Classifier whether it can trust
   an existing SFC marking of an incoming packet or whether it must be
   ignored.

   For bidirectional packet processing purposes (e.g., full or partial
   path symmetry), the control plane invokes this interface to configure
   the appropriate classification entries.

   A Classifier can send unsolicited messages through this interface to
   notify the SFC Control & Management Planes about specific events.

   When re-classification is allowed in an SFC-enabled domain, this
   interface can be used to control Classifiers co-resident with SFC-
   aware SFs, SFC Proxies, or SFFs to manage re-classification rules .

   SFC Classification policy entry should be bound to one single service
   function chain (or one single SFP); when an incoming packet matches
   more than one classification entry, tie-breaking criteria should be
   specified (e.g., priority).  Such tie-breaking criteria should be
   instructed by the control plane.

   The identification of instantiated SFCs/SFPs is local to each
   administrative domain; it is policy-based and deployment-specific.




Li, et al.              Expires December 4, 2015               [Page 11]


Internet-Draft   Control Plane Components & Requirements       June 2015


3.3.2.  C2: Interface between SFC Control Plane & SFF

   SFFs make traffic forwarding decisions according to the entries
   maintained in their SFC forwarding policy table.  Such table is
   populated by the SFC control plane through the C2 interface.

   This interface is also used to instruct a SFF about the SFC-aware SFs
   that it can service.  Local means may be enabled between the SFC-
   aware SFs and SFFs to allow for the dynamic attachment of SFs to a
   SFF but those means are unspecified in this document.

   The C2 interface is also used for collecting states of attributes
   (e.g., availability, workload, latency), for example, to dynamically
   adjust Service Function Paths.

3.3.3.  C3: Interface between SFC Control Plane & SFC-aware SFs

   The SFC control plane uses this interface to interact with SFC-aware
   SFs.

   SFs may need to output some processing results of packets to the SFC
   control plane.  This information can be used by the SFC control plane
   to update the SFC classification rules and the SFC forwarding policy
   table entries.

   This Interface is used to collect such kind of feedback information
   from SFs.  For example, the following information can be exchanged
   between a SF and the SFC control plane:

   o  SF execution status: Some SFs may need to send information to the
      control plane to fine tune SFPs.  For example, a threat-detecting
      SF can periodically send the threat characteristics via this
      interface, such as high probability of threat with packet size
      equal to 47.  The control plane can then add "packet-size=47"
      matching criteria to SFF to steer traffic with packet size equal
      to 47 to a scrubbing center.

   o  SF Liveliness update: When SFs are under stress that yielded the
      crossing of some performance thresholds, the SFC control plane
      needs to be notified to adjust SFPs accordingly (especially when
      the centralized path computation mode is enabled).

   The SFC control needs the above status information for various tasks
   it undertakes, but this information may be acquired directly from SFs
   or indirectly from other management and control systems in the
   operational environment.





Li, et al.              Expires December 4, 2015               [Page 12]


Internet-Draft   Control Plane Components & Requirements       June 2015


   This interface is also used to instruct an SFC-aware SF about any
   context information it needs to supply in the context of a given SFC.

   Also, this interface informs the SFC-aware SF about the semantics of
   a context information, which would otherwise have opaque meaning.
   Several attributes may be associated with a context information such
   as (but not limited to) the "scope" (e.g., per-packet, per-flow or
   per host), whether it is "mandatory" or "optional" to process flows
   bound to a given chain, etc.  Note that a context may be mandatory
   for "chain 1", but optional for "chain 2".

   The control plane may indicate, for a given service function chain,
   an order for consuming a set of contexts supplied in a packet.

   A SFC-aware SF can also be instructed about the behavior is should
   adopt after consuming a context information that was supplied in the
   SFC header.  For example, the context can be maintained or stripped.
   The SFC-aware SF can be instructed to inject a new context header
   into the SFC header.

   Multiple SFs may be located within the same physical node, and no SFF
   is enabled in that same node, means to unambiguously forward the
   traffic to the appropriate SF must be supported.

   An SF can be instructed to strip the SFC information for the chains
   it terminates.

3.3.4.  C4: Interface between SFC Control Plane & SFC Proxy

   The SFC control plane uses this interface to interact with an SFC
   Proxy.

   The SFC proxy can be instructed about authorized SFC-unware SFs it
   can service.  A SFC Proxy can be instructed about the behavior it
   should adopt to process the context information that was supplied in
   the SFC header on behalf of a SFC-unware SF, e.g., the context can be
   maintained or stripped.

   The SFC proxy is also instructed about the semantics of a context
   information, which would otherwise have opaque meaning.  Several
   attributes may be associated with a context information such as (but
   not limited to) the "scope" (e.g., per-packet, per-flow or per host),
   whether it is "mandatory" or "optional" to process flows bound to a
   given chain, etc.

   The SFC Proxy can also be instructed to add SF some new context
   information into the SFC header on behalf of a SFC-unaware SF.




Li, et al.              Expires December 4, 2015               [Page 13]


Internet-Draft   Control Plane Components & Requirements       June 2015


   The C4 interface is also used for collecting attribute states (e.g.,
   availability, workload, latency), for example, to dynamically adjust
   Service Function Paths.

4.  Additional Considerations

4.1.  Discovery of the SFC Control Element

   SFC data plane functional elements need to be provisioned with the
   locators of the Control Elements.  This can be achieved using a
   variety if mechanisms such as static configuration or the activation
   of a service discovery mechanism.  The exact specification of how
   this provisioning is achieved is out of scope.

4.2.  SF Symmetry

   Some SFs require both directions of a flow to traverse.  Some service
   function chains require full symmetry.  If a SF (e.g., stateful
   firewall or NAT) needs both direction of a flow, it is the SF
   instantiation that needs both direction of a flow to traverse, not
   the abstract SF (which can have many instantiations spread across the
   network).

4.3.  Pre-deploying SFCs

   Enabling service function chains should preserve some deployment
   practices adopted by Operators.  Particularly, installing a service
   function chain (and its associated SFPs) should allow for pre-
   deployment testing and validation purposes (that is a restricted and
   controlled usage of such service function chain (and associated
   SFPs)).

4.4.  Withraw a Service Function (SF)

   During the lifetime of a SFC, a given SF can be decommissioned.  To
   accommodate such context and any other case where a SF is to be
   withdrawn, the control plane should instruct the SFC data plane
   functional element about the behavior to adopt.  Particularly:

   1.  a first approach would be to update the service function chains
       (and associated SFPs) where that SF is present by removing any
       reference to that SF.  Doing so avoids to induce service failures
       for end users.

   2.  a second approach would be to delete/deactivate any service
       function chain (and its associated SFPs) that involves that SF
       but install new service function chains.




Li, et al.              Expires December 4, 2015               [Page 14]


Internet-Draft   Control Plane Components & Requirements       June 2015


4.5.  SFC/SFP Operations

   Various actions can be executed on a service function chain (and
   associated SFPs) that is structured by the SFC Control & Management
   planes.  Indeed, a service function chain (and associated SFPs) can
   be enabled, disabled, its structure modified by adding a new SF hop
   or remove an SF from the sequence of SFs to be invoked, its
   classification rules modified, etc.

   A modification of a service function chain can trigger control
   messages with the appropriate SFC-aware nodes accordingly.

4.6.  Unsolicited (Notification) Messages

   Involved SFC data plane functional element must be instructed to send
   unsolicited notifications when loops are detected, a problem in the
   structure of a service function chain is encountered, a long
   unavailable forwarding path time is observed, etc.

   Specific criteria to send unsolicited notifications to a Control
   Element should be fine tuned by the control plane using the interface
   defined in Section 3.3.

4.7.  SF Liveness Detection

   The control plane must allow to detect the liveliness of SFs of an
   SFC-enabled domain.  In particular, it must allow to dynamically
   detect that a SF instance is out of service and notify the relevant
   Control Element elements accordingly.  The liveness information may
   be acquired directly from SFs or indirectly from other management and
   control systems in the operational environment.

   Liveness status records for all SF instances, and service function
   chains (including the SFPs bound to a given chain) are maintained by
   the SFC Control & Management.

   The Classifier may be notified by the control plane or be part of the
   liveness detection procedure.

   The ability of a SFC Control Element to check the liveness of each SF
   present in service function chain has several advantages, including:

   o  Enhanced status reporting by the control & management planes
      (i.e., an operational status for any given service chain derived
      from liveness state of its SFs).
   o  Ability to support various resiliency policies (i.e., bypass a
      node embedding an SF, use alternate node, use alternate chain,
      drop traffic, etc.) .



Li, et al.              Expires December 4, 2015               [Page 15]


Internet-Draft   Control Plane Components & Requirements       June 2015


   o  Ability to support load balancing capabilities to solicit multiple
      SF instances that provide equivalent functions.

   Because a node embedding a SF can be responsive from a reachability
   standpoint (e.g., IP level) while the function its provides may be
   broken (e.g., a NAT module may be down), additional means to assess
   whether an SF is up and running are required.  These means may be
   service-specific.

4.8.  Monitoring & Counters

   SFC-specific counters and statistics must be provided using of the
   interfaces defined in Section 3.3.  These data include (but not
   limited to):

   o  Number of flows ever and currently assigned to a given service
      function chain and a given SFP.
   o  Number of flows, packets, bytes dropped due to policy.
   o  Number of packets and bytes in/out per service function chain.
   o  Number of flows, packets, bytes dropped due to unknown service
      function chain (this is valid in particular for a SF node).

4.9.  SFC/SFP Diagnosis

      [[Note: This section is expected to be removed once the working
      group adopts a document on OAM.]]

   The Control & Management planes should allow for the following:

   o  Assess the status of the serviceability of a SF (i.e., the SF
      provides the service(s) it is configured for).  Obviously, this
      assessment must not rely only on IP reachability to decide whether
      a SF is up and running.
   o  Diagnose the availability of a SFC (including the availability of
      a particular SFP bound to a given SFC).
   o  Retrieve the set of service function chains that are enabled
      within a domain.
   o  Assess whether an SFC-enabled domain is appropriately configured
      (including, check the configured chains are matching what should
      be configured in that domain, and ensure coherent classification
      rules are installed in and enforced by all the Classifiers of the
      SFC-enabled domain).
   o  Correlate classification policies with observed forwarding actions
      (including, assess the output of the classification rule applied
      on a packet presented to a Classifier of an SFC-enabled domain).
   o  Support the correlation between a service function chain and the
      actual forwarding path followed by a packet matching that service
      function chain.



Li, et al.              Expires December 4, 2015               [Page 16]


Internet-Draft   Control Plane Components & Requirements       June 2015


   o  Notify the SFC Control Element whenever some (critical) events
      occur (for example, a malfunctioning SF instance).
   o  Re-use SF built-in diagnostic procedures specific to each SF.

   The SFC control plane must be able to invoke SFC OAM mechanisms, and
   to determine the results of OAM operations.

4.10.  Considerations Specific to the Centralized Path Computation Model

   This section focuses on issues that are specific to the centralized
   deployment model (Section 3.2).

4.10.1.  Service Function Path Adjustment

   A SFP is determined by composing SF instances and overlay links among
   SFFs.  Thus, the status of a SFP depends on the states or attributes
   (e.g., availability, topological location, latency, workload, etc.)
   of its components.  For example, failure of a single SF instance
   results in failure of the whole SFP.  Since these states or
   attributes of SFP components may vary in time, their changes should
   monitored and SFPs should be dynamically adjusted.

   Examples of use cases for SFP adjustment are listed below:

   SFP fail-over:   re-construct a SFP with replacing the failed SF
      instance with another instance of the same SF.
   SFP with better latency experience:  re-construct a SFP with a low
      path stretch considering the changes in topological locations of
      SF instances and the latency induced by the (overlay) connectivity
      among SFFs.
   Traffic engineered SFC:  re-construct SFPs to localize the traffic in
      the network considering various TE goals such as bypass a node,
      bypass a link, etc.  These techniques may be used for planned
      maintenance operations on a SFC-enabled domain.
   SF/SFC Load balancing:   re-construct SFPs to distribute the workload
      among various SF instances.

   For more details about the use cases, refer to
   [I-D.lee-nfvrg-resource-management-service-chain].

   The procedures for SFP adjustment may be handled by the SFC control
   plane as follows:

   o  Collect and monitor states and attributes of SF instances and
      overlay links via the C2 interface (Section 3.3.2) and the C3
      interface (Section 3.3.3).
   o  Evaluate SF instances and overlay links based on the monitoring
      results.



Li, et al.              Expires December 4, 2015               [Page 17]


Internet-Draft   Control Plane Components & Requirements       June 2015


   o  Select SF instances to re-determine a SFP according to the
      evaluation results.
   o  Replace target SF instances (e.g., in a failure or overladed) with
      newly selected ones.
   o  Enforce the updated SFP for upcoming SFC traversal to SFFs via the
      C1 interface (Section 3.3.1) or the C2 interface (Section 3.3.2).

4.10.2.  Head End Initiated SFP Establishment

   In some scenarios where a SFC Control Element is not connected to all
   SFFs in a SFC-enabled domain, the SFC control plane can send the
   explicit SFF-SF-sequence or SF-sequence to the SFC head-end, e.g.,
   the SFC Classifier via the C1 interface (Section 3.3.1).  SFC head-
   end can use a signaling protocol to establish the SFF-SF-sequence
   based on the SF-sequence.

4.10.3.  (Regional) Restoration of Service Functions

   There are situations that it might not be feasible for the Classifier
   to be notified of the changes of SFF-sequence or SFF-SF-Sequence for
   a given SFP because of the time taken for the notification and the
   limited capability of the Classifiers.

   If a SF has a large number of instantiations, it scales better if the
   Classifier doesn't need to be notified with status of visible
   instantiations of SFs on a SFP.

   It might not be always feasible for the Classifier to be aware of the
   exact SF instances selected for a given SFP due to too many instances
   for each SF, notifications not being promptly sent to the Classifier,
   or other reasons.  This is about multiple instances of the same SF
   attached to one SFF node; those instances can be handled by the SFF
   via local load balancing schemes.

   Regional restoration can take the similar approach as the global
   restoration: choosing a regional ingress node that can take over the
   responsibility of installing the new steering policies to the
   involved SFFs or network nodes.  Typically, the regional ingress node
   should be:

   o  on the data path of the flow of the given SFC;
   o  in front of the relevant SFFs or network nodes that are impacted
      by the change of the SFP;
   o  capable of encoding the detailed SFP to the Service Chain Header
      of data packets of the identified flow; and
   o  capable of removing the detailed SFP encoding in data packets
      after all the impacted SFFs and network nodes completed the policy
      installation.



Li, et al.              Expires December 4, 2015               [Page 18]


Internet-Draft   Control Plane Components & Requirements       June 2015


5.  Security Considerations

5.1.  Secure Communications

   The SFC Control Elements and the participating SFC data plane
   elements must mutually authenticate.  SFC data plane elements must
   ignore instructions received from unauthenticated SFC Control
   Elements.  The credentials details used during authentication can be
   used by the SFC control plane to decide whether specific
   authorization may be granted to a Service Function with regards to
   some specific operations (e.g., authorize a given SF to access
   specific context information).

   In case multiple SFC data plane elements are embedded in the same
   node, the authentication mechanism may be executed as a whole; not
   for each instance.

   A SFC data plane element must be able to send authenticated
   unsolicited notifications to a SFC Control Element.

   The communication between a Control Element and SFC data plane
   elements must provide integrity and replay protection.

   An SFC Control Element may instruct a Service Function to include
   specific security token(s) that may be used to decrypt traffic
   upstream.  The security token may be supplied by the SFC control
   plane or by an authorized Service Function (e.g., TLS proxy).  The
   exact details on how authorization is granted to a specific SF,
   including via a control plane interface, should be specified.

   A Service Function must by default discard any action from a SFC
   Control Element that requires specific right privileges (e.g., access
   to a legal intercept log, mirror the traffic, etc.).

5.2.  Pervasive Monitoring

   The authentication mechanism should be immune to pervasive monitoring
   [RFC7258].  An attacker can intercept traffic by installing
   classification rules that would lead to redirect all or part of the
   traffic to an illegitimate network node.  Means to protect against
   attacks that would lead to install, remove, or modify classification
   rules must be supported.

5.3.  Privacy

   The SFC control plane must be able to control the information that is
   leaked outside an SFC-enabled domain.  Particularly, the SFC control
   plane must support means to preserve privacy [RFC6973].  Context



Li, et al.              Expires December 4, 2015               [Page 19]


Internet-Draft   Control Plane Components & Requirements       June 2015


   headers may indeed reveal privacy information (e.g., IMSI, user name,
   user profile, location, etc.).  Those headers must not be exposed
   outside the operator's domain.  Also, means to protect context
   headers from eavesdroppers should be enforced.

5.4.  Denial-of-Service (DoS)

   In order to protect against denial of service that would be caused by
   a misbehaving trusted SFC Control Element, SFC data plane elements
   should rate limit the messages received from an SFC Control Element.

5.5.  Illegitimate Discovery of SFs and SFC Control Elements

   Means to defend against soliciting illegitimate SFs/SFFs that do not
   belong to the SFC-enabled domain must be enabled.  Such means must be
   defined in service function discovery and SFC Control Element
   discovery specification documents.

6.  IANA Considerations

   This document does not require any IANA actions.

7.  Acknowledgements

   This document is the result of merging with
   [I-D.lee-sfc-dynamic-instantiation].

   The authors would like to thank Shibi Huang for providing input and
   LAC Chidung for his review and comments that helped improve this
   document.

   The text about the semantic of a context information is provided by
   Dave Dolson.

8.  References

8.1.  Normative References

   [I-D.ietf-sfc-architecture]
              Halpern, J. and C. Pignataro, "Service Function Chaining
              (SFC) Architecture", draft-ietf-sfc-architecture-08 (work
              in progress), May 2015.

8.2.  Informative References







Li, et al.              Expires December 4, 2015               [Page 20]


Internet-Draft   Control Plane Components & Requirements       June 2015


   [I-D.ietf-opsawg-firewalls]
              Baker, F. and P. Hoffman, "On Firewalls in Internet
              Security", draft-ietf-opsawg-firewalls-01 (work in
              progress), October 2012.

   [I-D.ietf-sfc-dc-use-cases]
              Surendra, S., Tufail, M., Majee, S., Captari, C., and S.
              Homma, "Service Function Chaining Use Cases In Data
              Centers", draft-ietf-sfc-dc-use-cases-02 (work in
              progress), January 2015.

   [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", draft-ietf-sfc-use-case-mobility-03 (work in
              progress), January 2015.

   [I-D.lee-nfvrg-resource-management-service-chain]
              Lee, S., Pack, S., Shin, M., and E. Paik, "Resource
              Management in Service Chaining", draft-lee-nfvrg-resource-
              management-service-chain-01 (work in progress), March
              2015.

   [I-D.lee-sfc-dynamic-instantiation]
              Lee, S., Pack, S., Shin, M., and E. Paik, "SFC dynamic
              instantiation", draft-lee-sfc-dynamic-instantiation-01
              (work in progress), October 2014.

   [RFC3022]  Srisuresh, P. and K. Egevang, "Traditional IP Network
              Address Translator (Traditional NAT)", RFC 3022, January
              2001.

   [RFC3135]  Border, J., Kojo, M., Griner, J., Montenegro, G., and Z.
              Shelby, "Performance Enhancing Proxies Intended to
              Mitigate Link-Related Degradations", RFC 3135, June 2001.

   [RFC6146]  Bagnulo, M., Matthews, P., and I. van Beijnum, "Stateful
              NAT64: Network Address and Protocol Translation from IPv6
              Clients to IPv4 Servers", RFC 6146, April 2011.

   [RFC6333]  Durand, A., Droms, R., Woodyatt, J., and Y. Lee, "Dual-
              Stack Lite Broadband Deployments Following IPv4
              Exhaustion", RFC 6333, August 2011.

   [RFC6973]  Cooper, A., Tschofenig, H., Aboba, B., Peterson, J.,
              Morris, J., Hansen, M., and R. Smith, "Privacy
              Considerations for Internet Protocols", RFC 6973, July
              2013.



Li, et al.              Expires December 4, 2015               [Page 21]


Internet-Draft   Control Plane Components & Requirements       June 2015


   [RFC7258]  Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an
              Attack", BCP 188, RFC 7258, May 2014.

   [RFC7498]  Quinn, P. and T. Nadeau, "Problem Statement for Service
              Function Chaining", RFC 7498, April 2015.














































Li, et al.              Expires December 4, 2015               [Page 22]


Internet-Draft   Control Plane Components & Requirements       June 2015


Appendix A.  RSP-related Considerations

   This section records some contributions proposed by L.  Dunbar and A.
   Malis, but have not been discussed yet among authors.

A.1.  Encoding the Exact SFF-SF-sequence in Data Packets

   Encoding the exact RSP in every packet has the benefit and the issues
   associated with source routing.  This approach may not be optimal
   when the SFP doesn't change very frequently, as in minutes or hours.

   There are contexts that it might not be feasible for the head end
   Classifier to be notified of the changes of SFF-sequence or SFF-SF-
   Sequence for a given SFP because of the time taken for the
   notification and the limited capability of the Classifier nodes.

A.2.  Fully Controlled SFF-SF-Sequence for a SFP

   This section describes the information that can be exchanged over C2
   interface (Section 3.3.2) when the SFC Control Element explicitly
   passes the steering policies to all SFFs for the SFF-SF-Sequence of a
   given SFC.  In this model, each SFF doesn't need to signal other SFFs
   for the SFP.

   Suppose the SFC ID for this SFP is "yellow", an example of policy to
   "sff-a" is depicted in Figure 2 (for illustration proposes)

              Matching                     |       Action
   ----------------------------------------+-------------------------
   SFC ID = "yellow" & ingress = sffx-port | next-hop: "sf2" & VID
   SFC ID = "yellow" & ingress = sf2-port  | next-hop: "sf3" & VID
   SFC ID = "yellow" & ingress = sf3-port  | next-hop: sff-b

        Figure 2: Example of Traffic Steering Policy to a SFF node

   The SFF nodes may not be directly adjacent to each other.  They can
   be interconnected by tunnels, such as GRE, VxLAN, etc.  SFs are
   attached to a SFF node or SFC Proxy node via Ethernet link or other
   link types.  Therefore, the steering policies to a SFF node for
   service function chain depends on if the packet comes from previous
   SFF or comes from a specific SF, i.e., the SFC Forwarding Policy
   Table entries have to be ingress port specific.  There are multiple
   different steering policies for one flow within one SFF and each set
   of steering policies is specific for an ingress port.

   The semantics of traffic steering rules can be "Match" and "Action",
   similar to the "route" described in [I-D.ietf-i2rs-rib-info-model].
   The "match" and "action" for distinct ports can be different.  The



Li, et al.              Expires December 4, 2015               [Page 23]


Internet-Draft   Control Plane Components & Requirements       June 2015


   matching criteria for SFF can be more sophisticated.  For example,
   the matching criteria could be any fields in the data packets:

   o  Ingress port
   o  Destination MAC address
   o  Source MAC address
   o  VLAN_id,
   o  Destination IP address
   o  Source IP address
   o  Source port number
   o  Destination port number
   o  DSCP
   o  Packet size, etc., or any combination thereof.

   A SFF node may not support some of the matching criteria listed
   above.  It is important that SFC control plane can retrieve the
   supported matching criteria by SFF nodes.  The "Actions" for traffic
   steering could be to steer traffic to the attached service function
   or SF instantiations via a specific port.

   The "Actions" to SFC Proxy may include a method to map the SFC
   Identifier carried in the packet header to a locally significant link
   identifier, e.g., VLAN-ID, and a method to construct and encapsulate
   the SFC header back to the packets when they come back from the
   attached SFs.

   This approach does not require using an end-to-end signaling protocol
   among Classier nodes and SFF nodes.  However, there may be problems
   encountered if SFF nodes are not updated in the proper order or not
   at the same time.  For example, if the SFF "A" and SFF "C" get flow
   steering policies at slightly different times, some packets might not
   be directed to some service functions on a chain.

Authors' Addresses

   Hongyu Li
   Huawei
   Huawei Industrial Base,Bantian,Longgang
   Shenzhen
   China

   EMail: hongyu.li@huawei.com









Li, et al.              Expires December 4, 2015               [Page 24]


Internet-Draft   Control Plane Components & Requirements       June 2015


   Qin Wu
   Huawei
   101 Software Avenue, Yuhua District
   Nanjing, Jiangsu  210012
   China

   EMail: bill.wu@huawei.com


   Yong(Oliver) Huang
   Huawei
   Huawei Industrial Base,Bantian,Longgang
   Shenzhen
   China

   EMail: oliver.huang@huawei.com


   Mohamed Boucadair (editor)
   France Telecom
   Rennes 35000
   France

   EMail: mohamed.boucadair@orange.com


   Christian Jacquenet
   France Telecom
   Rennes 35000
   France

   EMail: christian.jacquenet@orange.com


   Walter Haeffner
   Vodafone D2 GmbH
   Ferdinand-Braun-Platz 1
   Duesseldorf  40549
   DE

   EMail: walter.haeffner@vodafone.com










Li, et al.              Expires December 4, 2015               [Page 25]


Internet-Draft   Control Plane Components & Requirements       June 2015


   Seungik Lee
   ETRI
   218 Gajeong-ro Yuseung-Gu
   Daejeon  305-700
   Korea

   Phone: +82 42 860 1483
   EMail: seungiklee@etri.re.kr


   Ron Parker
   Affirmed Networks
   Acton
   MA  01720
   USA

   EMail: ron_parker@affirmednetworks.com


   Linda Dunbar
   Huawei Technologies
   USA

   EMail: ldunbar@huawei.com


   Andrew Malis
   Huawei Technologies
   USA

   EMail: agmalis@gmail.com


   Joel M. Halpern
   Ericsson

   EMail: joel.halpern@ericsson.com


   Tirumaleswar Reddy
   Cisco Systems, Inc.
   Cessna Business Park, Varthur Hobli
   Sarjapur Marathalli Outer Ring Road
   Bangalore, Karnataka  560103
   India

   EMail: tireddy@cisco.com




Li, et al.              Expires December 4, 2015               [Page 26]


Internet-Draft   Control Plane Components & Requirements       June 2015


   Prashanth Patil
   Cisco Systems, Inc.
   Bangalore
   India

   EMail: praspati@cisco.com













































Li, et al.              Expires December 4, 2015               [Page 27]