<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="4"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="info" docName="draft-contreras-layered-sdn-03"
     ipr="trust200902">
  <front>
    <title abbrev="Layered SDN Architecture">Cooperating Layered Architecture
    for Software Defined Networking (CLAS)</title>

    <!-- AUTHORS -->

    <author fullname="Luis M. Contreras" initials="LM." surname="Contreras">
      <organization abbrev="Telefonica">Telefonica</organization>

      <address>
        <postal>
          <street>Ronda de la Comunicacion, s/n</street>

          <street>Sur-3 building, 3rd floor</street>

          <city>Madrid</city>

          <code>28050</code>

          <country>Spain</country>
        </postal>

        <email>luismiguel.contrerasmurillo@telefonica.com</email>

        <uri>http://lmcontreras.com</uri>
      </address>
    </author>

    <author fullname="Carlos J. Bernardos" initials="CJ." surname="Bernardos">
      <organization abbrev="UC3M">Universidad Carlos III de
      Madrid</organization>

      <address>
        <postal>
          <street>Av. Universidad, 30</street>

          <city>Leganes, Madrid</city>

          <code>28911</code>

          <country>Spain</country>
        </postal>

        <phone>+34 91624 6236</phone>

        <email>cjbc@it.uc3m.es</email>

        <uri>http://www.it.uc3m.es/cjbc/</uri>
      </address>
    </author>

    <author fullname="Diego R. Lopez" initials="D." surname="Lopez">
      <organization abbrev="Telefonica">Telefonica</organization>

      <address>
        <postal>
          <street>Ronda de la Comunicacion, s/n</street>

          <street>Sur-3 building, 3rd floor</street>

          <city>Madrid</city>

          <code>28050</code>

          <country>Spain</country>
        </postal>

        <email>diego.r.lopez@telefonica.com</email>
      </address>
    </author>

    <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
      <organization abbrev="Orange">Orange</organization>

      <address>
        <postal>
          <street></street>

          <street></street>

          <city>Rennes</city>

          <code>35000</code>

          <country>France</country>
        </postal>

        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>

    <author fullname="Paola Iovanna" initials="P." surname="Iovanna">
      <organization abbrev="Ericsson">Ericsson</organization>

      <address>
        <postal>
          <street></street>

          <street></street>

          <city>Pisa</city>

          <code></code>

          <country>Italy</country>
        </postal>

        <email>paola.iovanna@ericsson.com</email>
      </address>
    </author>

    <date day="21" month="November" year="2018" />

    <keyword>SDN</keyword>

    <keyword>Control</keyword>

    <keyword>Programmability</keyword>

    <keyword>Intelligence</keyword>

    <keyword>Transport</keyword>

    <keyword>Service</keyword>

    <keyword>Flexibility</keyword>

    <keyword>Cooperation</keyword>

    <abstract>
      <t>Software Defined Networking adheres to the separation of the control
      plane from the data plane in the network nodes and its logical
      centralization on one or a set of control entities. Most of the network
      and/or sevice intelligence is moved to these control entities.
      Typically, such entity is seen as a compendium of interacting control
      functions in a vertical, tight integrated fashion. The relocation of the
      control functions from a number of distributed network nodes to a
      logical central entity conceptually places together a number of control
      capabilities with different purposes. As a consequence, the existing
      solutions do not provide a clear separation between transport control
      and services that relies upon transport capabilities.</t>

      <t>This document describes an approach named Cooperating Layered
      Architecture for Software Defined Networking. The idea behind that is to
      differentiate the control functions associated to transport from those
      related to services, in such a way that they can be provided and
      maintained independently, and can follow their own evolution path.</t>
    </abstract>

    <!--
    <note title="Requirements Language">

      <t>
      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 <xref
      target="RFC2119">RFC 2119</xref>.
      </t> 

    </note>
     -->
  </front>

  <middle>
    <section anchor="sec:introduction" title="Introduction">
      <t>Network softwarization advances are facilitating the introduction of
      programmability in services and infrastructures of telco operators. This
      is achieved generically through the introduction of Software Defined
      Networking (SDN, <xref target="RFC7149"></xref><xref
      target="RFC7426"></xref>) capabilities in the network, including
      controllers and orchestrators.</t>

      <t>However, there are concerns of different nature that these SDN
      capabilities have to resolve. In one hand there is a need for actions
      focused on programming the network for handle the connectivity or
      forwarding of digital data between distant nodes. On the other hand,
      there is a need for actions devoted to program the functions or services
      that process (or manipulate) such digital data.</t>

      <t>SDN adheres to the separation of the control plane from the data
      plane in the network nodes by introducing abstraction among both planes,
      allowing to centralize the control logic on a functional entity which is
      commonly referred as SDN Controller; one or multiple controllers may be
      deployed. A programmatic interface is then defined between a forwarding
      entity (at the network node) and a control entity. Through that
      interface, a control entity instructs the nodes involved in the
      forwarding plane and modifies their traffic forwarding behavior
      accordingly. Additional capabilities (e.g., performance monitoring,
      fault management, etc.) could be expected to be supported through such
      kind of programmatic interface <xref target="RFC7149"></xref>.</t>

      <t>Most of the intelligence is moved to such functional entity.
      Typically, such entity is seen as a compendium of interacting control
      functions in a vertical, tight integrated fashion.</t>

      <t>The approach of considering an omnipotent control entity governing
      the overall aspects of a network, especially both the transport network
      and the services to be supported on top of it, presents a number of
      issues: <list style="symbols">
          <t>From a provider perspective, where usually different departments
          are responsible of handling service and connectivity (i.e.,
          transport capabilities for the service on top), the mentioned
          approach offers unclear responsibilities for complete service
          provision and delivery.</t>

          <t>Complex reuse of functions for the provision of services.</t>

          <t>Closed, monolithic control architectures.</t>

          <t>Difficult interoperability and interchangeability of functional
          components.</t>

          <t>Blurred business boundaries among providers, especially in
          situations where a provider provides just connectivity while another
          provider offers a more sophisticated service on top of that
          connectivity.</t>

          <t>Complex service/network diagnosis and troubleshooting,
          particularly to determine which segment is responsible for a
          failure.</t>
        </list></t>

      <t>The relocation of the control functions from a number of distributed
      network nodes to another entity conceptually places together a number of
      control capabilities with different purposes. As a consequence, the
      existing SDN solutions do not provide a clear separation between
      services and transport control. Here, the separation between service and
      transport follows the distinction provided by <xref
      target="Y.2011"></xref>, and also defined in Section 2 of this
      document.</t>

      <t>This document describes an approach named Cooperating Layered
      Architecture for SDN (CLAS). The idea behind that is to differentiate
      the control functions associated to transport from those related to
      services, in such a way that they can be provided and maintained
      independently, and can follow their own evolution path.</t>

      <t>Despite such differentiation it is required a close cooperation
      between service and transport layers (or strata in <xref
      target="Y.2011"></xref>) and associated components to provide an
      efficient usage of the resources.</t>
    </section>

    <section anchor="sec:terminology" title="Terminology">
      <!--
      <t> 
      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
      <xref target='RFC2119'>RFC2119</xref>.
      </t>
     -->

      <t>This document makes use of the following terms: <list style="symbols">
          <t>Transport: denotes the transfer capabilities offered by a
          networking infrastructure. The transfer capabilities can rely upon
          pure IP techniques, or other means such as MPLS or optics.</t>

          <t>Service: denotes a logical construct that makes use of transport
          capabilities. <vspace blankLines="1" />This document does not make
          any assumption on the functional perimeter of a service that can be
          built above a transport infrastructure. As such, a service can be an
          offering that is offered to customers or be invoked for the delivery
          of another (added-value) service.</t>

          <t>Layer: refers to the set of elements comprised for enabling
          either transport or service capabilities as defined before. In <xref
          target="Y.2011"></xref>, this is referred to as stratum, and both
          are used interchangeably.</t>

          <t>Domain: is a set of elements which share a common property or
          characteristic. In this document this applies to administrative
          domain (i.e., elements pertaining to the same organization),
          technological domain (elements implementing the same kind of
          technology, as for example optical nodes), etc.</t>

          <t>SDN Intelligence: refers to the decision-making process that is
          hosted by a node or a set of nodes. These nodes are called SDN
          controllers.<vspace blankLines="1" />The intelligence can be
          centralized or distributed. Both schemes are within the scope of
          this document. <vspace blankLines="1" />The SDN intelligence relies
          on inputs form various functional blocks such as: network topology
          discovery, service topology discovery, resource allocation, business
          guidelines, customer profiles, service profiles, etc. <vspace
          blankLines="1" />The exact decomposition of an SDN intelligence,
          apart from the layering discussed in this document, is out of
          scope.</t>
        </list></t>

      <t>Additionally, the following acronyms are used in this document:</t>

      <t><list style="empty">
          <t>CLAS: Cooperating Layered Architecture for SDN</t>

          <t>FCAPS: Fault, Configuration, Accounting, Performance and
          Security</t>

          <t>SDN: Software Defined Networking</t>

          <t>SLA: Service Level Agreement</t>
        </list></t>
    </section>

    <!-- "Architecture" -->

    <section anchor="sec:architecture" title="Architecture Overview">
      <t>Current operator networks support multiple services (e.g., VoIP,
      IPTV, mobile VoIP, critical mission applications, etc.) on a variety of
      transport technologies. The provision and delivery of a service
      independently of the underlying transport capabilities require a
      separation of the service related functionalities and an abstraction of
      the transport network to hide the specificities of underlying transfer
      techniques while offering a common set of capabilities.</t>

      <t>Such separation can provide configuration flexibility and
      adaptability from the point of view of either the services or the
      transport network. Multiple services can be provided on top of a common
      transport infrastructure, and similarly, different technologies can
      accommodate the connectivity requirements of a certain service. A close
      coordination among them is required for a consistent service delivery
      (inter-layer cooperation).</t>

      <t>This document focuses particularly on: <list style="symbols">
          <t>Means to expose transport capabilities to services.</t>

          <t>Means to capture service requirements of services.</t>

          <t>Means to notify service intelligence with underlying transport
          events, for example to adjust service decision-making process with
          underlying transport events.</t>

          <t>Means to instruct the underlying transport capabilities to
          accommodate new requirements, etc.</t>
        </list></t>

      <t>An example is to guarantee some Quality of Service (QoS) levels.
      Different QoS-based offerings could be present at both service and
      transport layers. Vertical mechanisms for linking both service and
      transport QoS mechanisms should be in place to provide the quality
      guarantees to the end user.</t>

      <t>CLAS architecture assumes that the logically centralized control
      functions are separated in two functional layers. One of the functional
      layers comprises the service-related functions, whereas the other one
      contains the transport-related functions. The cooperation between the
      two layers is expected to be implemented through standard
      interfaces.</t>

      <t><xref target="fig:clas"></xref> shows the CLAS architecture. It is
      based on functional separation in the NGN architecture defined by the
      ITU-T in <xref target="Y.2011"></xref>, where two strata of
      functionality are defined, namely the Service Stratum, comprising the
      service-related functions, and the Connectivity Stratum, covering the
      transport ones. The functions on each of these layers are further
      grouped on control, management and user (or data) planes.</t>

      <t>CLAS adopts the same structured model described in <xref
      target="Y.2011"></xref> but applying it to the objectives of
      programmability through SDN <xref target="RFC7149"></xref>. To this
      respect, CLAS advocates for addressing services and transport in a
      separated manner because of their differentiated concerns.</t>

      <figure anchor="fig:clas"
              title="Cooperating Layered Architecture for SDN">
        <artwork><![CDATA[
                                    Applications
                                         /\
                                         ||
                                         ||
   +-------------------------------------||-------------+
   | Service Stratum                     ||             |
   |                                     \/             |
   |                       ...........................  |
   |                       . SDN Intelligence        .  |
   |                       .                         .  |
   |  +--------------+     .        +--------------+ .  |
   |  | Resource Pl. |     .        |  Mngmt. Pl.  | .  |
   |  |              |<===>.  +--------------+     | .  |
   |  |              |     .  |  Control Pl. |     | .  |
   |  +--------------+     .  |              |-----+ .  |
   |                       .  |              |       .  |
   |                       .  +--------------+       .  |
   |                       ...........................  |
   |                                     /\             |
   |                                     ||             |
   +-------------------------------------||-------------+
                                         ||    Standard
                                      -- || --    API 
                                         ||
   +-------------------------------------||-------------+
   | Transport Stratum                   ||             |
   |                                     \/             |
   |                       ...........................  |
   |                       . SDN Intelligence        .  |
   |                       .                         .  |
   |  +--------------+     .        +--------------+ .  |
   |  | Resource Pl. |     .        |  Mngmt. Pl.  | .  |
   |  |              |<===>.  +--------------+     | .  |
   |  |              |     .  |  Control Pl. |     | .  |
   |  +--------------+     .  |              |-----+ .  |
   |                       .  |              |       .  |
   |                       .  +--------------+       .  |
   |                       ...........................  |
   |                                                    |
   |                                                    |
   +----------------------------------------------------+

]]></artwork>
      </figure>

      <t>In the CLAS architecture both the control and management functions
      are considered to be performed by one or a set of SDN controllers (due
      to, e.g., scalability, reliability) providing the SDN Intelligence, in
      such a way that separated SDN controllers are present in the Service and
      Transport strata. Management functions are considered to be part of the
      SDN Intelligence to allow the effective operation in a service provider
      ecosystem <xref target="RFC7149"></xref> despite some initial
      propositions did not consider such management as part of the SDN
      environment <xref target="ONFArch"></xref>.</t>

      <t>Furthermore, the generic user or data plane functions included in the
      NGN architecture are referred here as resource plane functions. The
      resource plane in each stratum is controlled by the corresponding SDN
      Intelligence through a standard interface.</t>

      <t>The SDN controllers cooperate for the provision and delivery of
      services. There is a hierarchy in which the Service SDN Intelligence
      requests transport capabilities to the Transport SDN Intelligence.</t>

      <t>The Service SDN Intelligence acts as a client of the Transport SDN
      Intelligence.</t>

      <t>Furthermore, the Transport SDN Intelligence interacts with the
      Service SDN Intelligence to inform it about events in the transport
      network that can motivate actions in the service layer.</t>

      <t>Despite it is not shown in <xref target="fig:clas"></xref>, the
      resource planes of each stratum could be connected. This will depend on
      the kind of service provided. Furthermore, the Service stratum could
      offer an interface towards applications to expose network service
      capabilities to those applications or customers.</t>

      <section anchor="subsec:functional" title="Functional Strata">
        <t>As described before, the functional split separates
        transport-related functions from service-related functions. Both
        strata cooperate for a consistent service delivery.</t>

        <t>Consistency is determined and characterized by the service
        layer.</t>

        <!--
        <t>
       Communication between these two components could be implemented using a variety of means (such 
       as <xref target="I-D.boucadair-connectivity-provisioning-protocol" />, Intermediate-Controller Plane 
       Interface (I-CPI) <xref target="ONFArch" />, etc).
        </t>
     -->

        <section anchor="subsec:transp_str" title="Transport Stratum">
          <t>The Transport Stratum comprises the functions focused on the
          transfer of data between the communication end points (e.g., between
          end-user devices, between two service gateways, etc.). The data
          forwarding nodes are controlled and managed by the Transport SDN
          component. </t>

          <t>The Control plane in the SDN Intelligence is in charge of
          instructing the forwarding devices to build the end to end data path
          for each communication or to make sure forwarding service is
          appropriately setup. Forwarding may not be rely on the sole
          pre-configured entries; dynamic means can be enabled so that
          involved nodes can build dynamically routing and forwarding paths
          (this would require that the nodes retain some of the control and
          management capabilities for enabling this). Finally, the Management
          plane performs management functions (i.e., FCAPS) on those devices,
          like fault or performance management, as part of the Transport
          Stratum capabilities.</t>
        </section>

        <section anchor="subsec:serv_str" title="Service Stratum">
          <t>The Service stratum contains the functions related to the
          provision of services and the capabilities offered to external
          applications. The Resource plane consists of the resources involved
          in the service delivery, such as computing resources, registries,
          databases, etc. </t>

          <t>The Control plane is in charge of controlling and configuring
          those resources, as well as interacting with the Control plane of
          the Transport stratum in client mode for requesting transport
          capabilities for a given service. In the same way, the Management
          plane implements management actions on the service-related resources
          and interacts with the Management plane in the Transport Stratum for
          a cooperating management between layers.</t>
        </section>

        <section anchor="subsec:resursiveness" title="Recursiveness">
          <t>Recursive layering can happen in some usage scenarios in which
          the Transport Stratum is itself structured in Service and Transport
          Stratum. This could be the case of the provision of a transport
          service complemented with advanced capabilities additional to the
          pure data transport (e.g., maintenance of a given SLA <xref
          target="RFC7297"></xref>).</t>

          <t>Recursiveness has been also discussed in [ONFArch] as a way of
          reaching scalability and modularity, when each higher level can
          provide greater abstraction capabilities. Additionally,
          recursiveness can allow some scenarios for multi-domain where single
          or multiple administrative domains are involved, as the ones
          described in Section 6.3.</t>
        </section>
      </section>

      <section anchor="subsec:planes" title="Plane Separation">
        <t>The CLAS architecture leverages on plane separation. As mentioned
        before, three different planes are considered for each stratum. The
        communication among these three planes (and with the corresponding
        plane in other strata) is based on open, standard interfaces.</t>

        <section anchor="subsec:control_pl" title="Control Plane">
          <t>The Control plane logically centralizes the control functions of
          each stratum and directly controls the corresponding resources.
          <xref target="RFC7426"></xref> introduces the role of the control
          plane in a SDN architecture. This plane is part of an SDN
          Intelligence, and can interact with other control planes in the same
          or different strata for accomplishing control functions.</t>
        </section>

        <section anchor="subsec:mngmt_pl" title="Management Plane">
          <t>The Management plane logically centralizes the management
          functions for each stratum, including the management of the Control
          and Resource planes. <xref target="RFC7426"></xref> describes the
          functions of the management plane in a SDN environment. This plane
          is also part of the SDN Intelligence, and can interact with the
          corresponding management planes residing in SDN controllers of the
          same or different strata.</t>
        </section>

        <section anchor="subsec:resource_pl" title="Resource Plane">
          <t>The Resource plane comprises the resources for either the
          transport or the service functions. In some cases the service
          resources can be connected to the transport ones (e.g., being the
          terminating points of a transport function) whereas in other cases
          it can be decoupled from the transport resources (e.g., one database
          keeping some register for the end user). Both forwarding and
          operational planes proposed in <xref target="RFC7426"></xref> would
          be part of the Resource plane in this architecture.</t>
        </section>
      </section>
    </section>

    <!-- end of section "Architecture" -->

    <!-- Required features -->

    <section anchor="subsec:req_features" title="Required Features">
      <t>Since the CLAS architecture implies the interaction of different
      layers with different purposes and responsibilities, a number of
      features are required to be supported:<list style="symbols">
          <t>Abstraction: the mapping of physical resources into the
          corresponding abstracted resources.</t>

          <t>Service parameter translation: translation of service parameters
          (e.g., in the form of SLAs) to transport parameters (or
          capabilities) according to different policies.</t>

          <t>Monitoring: mechanisms (e.g., event notifications) available in
          order to dynamically update the (abstracted) resources' status
          taking in to account, e.g., the traffic load.</t>

          <t>Resource computation: functions able to decide which resources
          will be used for a given service request. As an example, functions
          like PCE could be used to compute/select/decide a certain path.</t>

          <t>Orchestration: ability to combine diverse resources (e.g., IT and
          network resources) in an optimal way.</t>

          <t>Accounting: record of resource usage.</t>

          <t>Security: secure communication among components, preventing,
          e.g., DoS attacks.</t>
        </list></t>
    </section>

    <!-- end of Required features -->

    <!-- Inter-Controller Communication -->

    <section anchor="subsec:inter_ctrller"
             title="Communication Between SDN Controllers">
      <t>The SDN controllers residing respectively in the Service and the
      Transport Stratum need to establish a tight coordination. Mechanisms for
      transfer relevant information for each stratum should be defined.</t>

      <t>From the service perspective, the Service SDN Intelligence needs to
      easily access transport resources through well-defined APIs to retrieve
      the capabilities offered by the Transport Stratum. There could be
      different ways of obtaining such transport-aware information, i.e., by
      discovering or publishing mechanisms. In the former case the Service SDN
      Intelligence could be able of handling complete information about the
      transport capabilities (including resources) offered by the Transport
      Stratum. In the latter case, the Transport Stratum exposes available
      capabilities, e.g., through a catalog, reducing the amount of detail of
      the underlying network.</t>

      <t>On the other hand, the Transport Stratum requires to properly capture
      Service requirements. These can include SLA requirements with specific
      metrics (such as delay), level of protection to be provided, max/min
      capacity, applicable resource constraints, etc.</t>

      <t>The communication between controllers must be also secure, e.g., by
      preventing denial of service or any other kind of threats (similarly,
      the communications with the network nodes must be secure).</t>
    </section>

    <!-- end of Inter-Controller Communication -->

    <!-- "Deployment scenarios" -->

    <section anchor="sec:scenarios" title="Deployment Scenarios">
      <t>Different situations can be found depending on the characteristics of
      the networks involved in a given deployment.</t>

      <section anchor="subsec:full_sdn" title="Full SDN Environments">
        <t>This case considers that the networks involved in the provision and
        delivery of a given service have SDN capabilities.</t>

        <section anchor="subsec:mult_serv_sing_trans"
                 title="Multiple Service Strata Associated to a Single Transport Stratum">
          <t>A single Transport Stratum can provide transfer functions to more
          than one Service strata. The Transport Stratum offers a standard
          interface(s) to each of the Service strata. The Service strata are
          the clients of the Transport Stratum. Some of the capabilities
          offered by the Transport stratum can be isolation of the transport
          resources (slicing), independent routing, etc.</t>
        </section>

        <section anchor="subsec:sing_serv_mult_trans"
                 title="Single Service Stratum associated to multiple Transport Strata">
          <t>A single Service stratum can make use of different Transport
          Strata for the provision of a certain service. The Service stratum
          interfaces each of the Transport Strata with standard protocols, and
          orchestrates the provided transfer capabilities for building the end
          to end transport needs.</t>
        </section>
      </section>

      <section anchor="subsec:hybrid" title="Hybrid Environments">
        <t>This case considers scenarios where one of the strata is legacy
        totally or in part.</t>

        <section anchor="subsec:sdn_serv_leg_trans"
                 title="SDN Service Stratum associated to a Legacy Transport Stratum">
          <t>An SDN service stratum can interact with a legacy Transport
          Stratum through some interworking function able to adapt SDN-based
          control and management service-related commands to legacy
          transport-related protocols, as expected by the legacy Transport
          Stratum. </t>

          <t>The SDN Intelligence in the Service stratum is not aware of the
          legacy nature of the underlying Transport Stratum.</t>
        </section>

        <section anchor="subsec:leg_serv_sdn_trans"
                 title="Legacy Service Stratum Associated to an SDN Transport Stratum">
          <t>A legacy Service stratum can work with an SDN-enabled Transport
          Stratum through the mediation of and interworking function capable
          to interpret commands from the legacy service functions and
          translate them into SDN protocols for operating with the SDN-enabled
          Transport Stratum.</t>
        </section>
      </section>

      <section anchor="subsec:multi-domain"
               title="Multi-domain Scenarios in Transport Stratum">
        <t>The Transport Stratum can be composed by transport resources being
        part of different administrative, topological or technological
        domains. The Service Stratum can yet interact with a single entity in
        the Transport Stratum in case some abstraction capabilities are
        provided in the transport part to emulate a single stratum.</t>

        <t>Those abstraction capabilities constitute a service itself offered
        by the Transport Stratum to the services making use of it. This
        service is focused on the provision of transport capabilities, then
        different of the final communication service using such
        capabilities.</t>

        <t>In this particular case this recursion allows multi-domain
        scenarios at transport level.</t>

        <t>Multi-domain situations can happen in both single-operator and
        multi-operator scenarios.</t>

        <t>In single operator scenarios a multi-domain or end-to-end
        abstraction component can provide an homogeneous abstract view of the
        underlying heterogeneous transport capabilities for all the
        domains.</t>

        <t>Multi-operator scenarios, at the Transport Stratum, should support
        the establishment of end-to-end paths in a programmatic manner across
        the involved networks. This could be accomplished, for example, by the
        exchange of traffic-engineered information of each of the
        administrative domains <xref target="RFC7926"></xref>.</t>
      </section>
    </section>

    <!-- end of section "Deployment scenarios" -->

    <!-- "Use cases" -->

    <section anchor="use_cases" title="Use Cases">
      <t>This section presents a number of use cases as examples of
      applicability of the CLAS approach.</t>

      <section anchor="nfv" title="Network Function Virtualization (NFV)">
        <t>NFV environments offer two possible levels of SDN control <xref
        target="ETSI_NFV_EVE005"></xref>. One level is the need for
        controlling the NFV Infrastructure (NFVI) to provide connectivity
        end-to- end among VNFs (Virtual Network Functions) or among VNFs and
        PNFs (Physical Network Functions). A second level is the control and
        configuration of the VNFs themselves (in other words, the
        configuration of the network service implemented by those VNFs),
        taking profit of the programmability brought by SDN. Both control
        concerns are separated in nature. However, interaction between both
        could be expected in order to optimize, scale or influence each
        other.</t>
      </section>

      <section anchor="actn"
               title="Abstraction and Control of Transport Networks">
        <t>Abstraction and Control of Transport Networks (ACTN) <xref
        target="RFC8453"></xref> presents a framework to allow the creation of
        virtual networks to be offered to customers. The concept of provider
        in ACTN is limited to the offering of virtual network services. These
        services are essentially transport services, and would correspond to
        the Transport Stratum in CLAS. On the other hand, the Service Stratum
        in CLAS can be assimilated as a customer in the context of ACTN.</t>

        <t>ACTN defines a hierarchy of controllers for facilitating the
        creation and operation of the virtual networks. An interface is
        defined for the relation of the customers requesting these virtual
        networks services with the controller in charge of orchestrating and
        serving such request. Such interface is equivalent to the one defined
        in Figure 1 (<xref target="sec:architecture"></xref>) between Service
        and Transport Strata.</t>
      </section>
    </section>

    <!-- end of section "Use cases" -->

    <!-- Challenges -->

    <section anchor="challenges"
             title="Challenges for Implementing Actions Between Service and Transport Strata">
      <t>The distinction of service and transport concerns raises a number of
      challenges in the communication between both strata. The following is a
      work-in-progress list reflecting some of the identified challenges:
      <list style="symbols">
          <t>Standard mechanisms for interaction between layers: Nowadays
          there are a number of proposals that could accommodate requests from
          the service stratum to the transport stratum. <vspace
          blankLines="1" />Some of them could be solutions like the
          Connectivity Provisioning Protocol <xref
          target="I-D.boucadair-connectivity-provisioning-protocol"></xref> or
          the Intermediate-Controller Plane Interface (I-CPI) <xref
          target="ONFArch"></xref>. <vspace blankLines="1" />Other potential
          candidates could be the Transport API <xref target="TAPI"></xref> or
          the Transport Transport Northbound Interface <xref
          target="I-D.ietf-ccamp-transport-nbi-app-statement"></xref>. Each of
          these options has a different status of maturity and scope.</t>

          <t>Multi-provider awareness: In multi-domain scenarios involving
          more than one provider at transport level, the service stratum could
          have or not awareness of such multiplicity of domains. <vspace
          blankLines="1" />If the service stratum is unaware of the
          multi-domain situation, then the Transport Stratum acting as entry
          point of the service stratum request should be responsible of
          managing the multi-domain issue. <vspace blankLines="1" />On the
          contrary, if the service stratum is aware of the multi-domain
          situation, it should be in charge of orchestrating the requests to
          the different underlying Transport Strata for composing the final
          end-to-end path among service end-points (i.e., service
          functions).</t>

          <t>SLA mapping: Both strata will handle SLAs but the nature of those
          SLAs could differ. Then it is required for the entities in each
          stratum to map service SLAs to connectivity SLAs in order to ensure
          proper service delivery.</t>

          <t>Association between strata: The association between strata could
          be configured beforehand, or could be dynamic following mechanisms
          of discovery, that could be required to be supported by both strata
          with this purpose.</t>

          <t>Security: As reflected before, the communication between strata
          must be secure preventing attacks and threats. Additionally, privacy
          should be enforced, especially when addressing multi-provider
          scenarios at transport level.</t>

          <t>Accounting: The control and accountancy of resources used and
          consumed by services should be supported in the communication among
          strata.</t>
        </list></t>
    </section>

    <!-- end of section "Challenges" -->

    <section anchor="IANA" title="IANA Considerations">
      <t>This document does not request any action from IANA.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>The CLAS architecture relies upon the functional entities that are
      introduced in <xref target="RFC7149"></xref> and <xref
      target="RFC7426"></xref>. As such security considerations discussed in
      Section 5 of <xref target="RFC7149"></xref>, in particular, must be
      taken into account.</t>

      <t>The communication between the service and transport SDN controllers
      must rely on secure means which achieve the following: <list
          style="symbols">
          <t>Mutual authentication must be enabled before taking any
          action.</t>

          <t>Message integrity protection.</t>
        </list></t>

      <t>Each of the controllers must be provided with instructions about the
      set of information (and granularity) that can be disclosed to a peer
      controller. Means to prevent leaking privacy data (e.g., from the
      service stratum to the transport stratum) must be enabled. The exact set
      of information to be shared is deployment-specific.</t>

      <t>A corrupted controller may induce some disruption on another
      controller. Guards against such attacks should be enabled.</t>

      <t>Security in the communication between the strata here described
      should apply on the APIs (and/or protocols) to be defined among them. In
      consequence, security concerns will correspond to the specific
      solution.</t>
    </section>

    <!-- Acknowledgements -->

    <section anchor="sec:acks" title="Acknowledgements">
      <t>This document was previously discussed and adopted in the IRTF SDN RG
      as <xref target="I-D.irtf-sdnrg-layered-sdn"></xref>. After the closure
      of the IRTF SDN RG this document is being progressed as Individual
      Submission to record (some of) that group's disucussions.</t>

      <t>The authors would like to thank (in alphabetical order) Bartosz
      Belter, Gino Carrozzo, Ramon Casellas, Gert Grammel, Ali Haider,
      Evangelos Haleplidis, Zheng Haomian, Giorgios Karagianis, Gabriel Lopez,
      Maria Rita Palatella, Christian Esteve Rothenberg, and Jacek Wytrebowicz
      for their comments and suggestions.</t>

      <t>Thanks to Adrian Farrel for the review. </t>
    </section>

    <!-- end Acknowledgements -->
  </middle>

  <back>
    <references title="Normative References">
      <!--include="reference.RFC.2119"-->

      <reference anchor="Y.2011">
        <front>
          <title>General principles and general reference model for Next
          Generation Networks</title>

          <author></author>

          <date month="October" year="2004" />
        </front>

        <seriesInfo name="ITU-T Recommendation Y.2011" value="" />
      </reference>
    </references>

    <references title="Informative References">
      <reference anchor="ONFArch"
                 target="https://www.opennetworking.org/images/stories/downloads/sdn-resources/technical-reports/TR_SDN_ARCH_1.0_06062014.pdf">
        <front>
          <title>SDN Architecture, Issue 1</title>

          <author>
            <organization>Open Networking Foundation</organization>
          </author>

          <date month="June" year="2014" />
        </front>
      </reference>

      <?rfc include='reference.I-D.boucadair-connectivity-provisioning-protocol'?>

      <?rfc include='reference.RFC.8453'?>

      <?rfc include='reference.I-D.irtf-sdnrg-layered-sdn'?>

      <?rfc include='reference.I-D.ietf-ccamp-transport-nbi-app-statement'?>

      <?rfc include='reference.RFC.7149'?>

      <?rfc include='reference.RFC.7297'?>

      <?rfc include='reference.RFC.7426'?>

      <?rfc include='reference.RFC.7926'?>

      <reference anchor="ETSI_NFV_EVE005">
        <front>
          <title>Report on SDN Usage in NFV Architectural Framework</title>

          <author fullname="ETSI GS NFV EVE 005"></author>

          <date month="December" year="2015" />
        </front>
      </reference>

      <reference anchor="TAPI">
        <front>
          <title>Functional Requirements for Transport API</title>

          <author fullname="ONF Technical Recommendation TR-527"></author>

          <date month="June" year="2016" />
        </front>
      </reference>
    </references>

    <!-- Relation to RFC7426 -->

    <section anchor="relationRFC7426" title="Relationship with RFC7426">
      <t><xref target="RFC7426"></xref> introduces an SDN taxonomy by defining
      a number of planes, abstraction layers, and interfaces or APIs among
      them, as a means of clarifying how the different parts constituent of
      SDN (network devices, control and management) relate among them. A
      number of planes are defined, namely: <list style="symbols">
          <t>Forwarding Plane: focused on delivering packets in the data path
          based on the instructions received from the control plane.</t>

          <t>Operational Plane: centered on managing the operational state of
          the network device.</t>

          <t>Control Plane: devoted to instruct the device on how packets
          should be forwarded.</t>

          <t>Management Plane: in charge of monitoring and maintaining network
          devices.</t>

          <t>Application Plane: enabling the usage for different purposes (as
          determined by each application) of all the devices controlled in
          this manner.</t>
        </list></t>

      <t>Apart from that, <xref target="RFC7426"></xref> proposes a number of
      abstraction layers that permit the integration of the different planes
      through common interfaces. CLAS focuses on Control, Management and
      Resource planes as the basic pieces of its architecture. Essentially,
      the control plane modifies the behavior and actions of the controlled
      resources. The management plane monitors and retrieves the status of
      those resources. And finally, the resource plane groups all the
      resources related to the concerns of each strata.</t>

      <t>From this point of view, CLAS planes can be seen as a superset of
      <xref target="RFC7426"></xref>, even though in some cases not all the
      planes as considered in <xref target="RFC7426"></xref> could not be
      totally present in CLAS representation (e.g., forwarding plane in
      Service Stratum).</t>

      <t>Being said that, internal structure of CLAS strata could follow the
      taxonomy defined in <xref target="RFC7426"></xref>. Which is
      differential is the specialization of the SDN environments, through the
      distinction between service and transport.</t>
    </section>

    <!-- end Relation to RFC7426 -->

    <!---->
  </back>
</rfc>
