<?xml version="1.0" encoding="US-ASCII"?>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

    <!ENTITY rfc1157 PUBLIC ""
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.1157.xml'>
    <!ENTITY rfc2119 PUBLIC ""
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
    <!ENTITY rfc3164 PUBLIC ""
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3164.xml'>
    <!ENTITY rfc3972 PUBLIC ""
      "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3972.xml">
    <!ENTITY rfc4295 PUBLIC ""
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4295.xml'>
    <!ENTITY rfc4877 PUBLIC ""
      "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4877.xml">
    <!ENTITY rfc5213 PUBLIC ""
      "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5213.xml">
    <!ENTITY rfc6020 PUBLIC ""
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6020.xml'>
    <!ENTITY rfc6241 PUBLIC ""
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6241.xml'>
    <!ENTITY rfc6275 PUBLIC ""
      "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6275.xml">
    <!ENTITY rfc6475 PUBLIC ""
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6475.xml'>
    <!ENTITY rfc6632 PUBLIC ""
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6632.xml'>
    <!ENTITY rfc7011 PUBLIC ""
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.7011.xml'>
    <!ENTITY rfc7012 PUBLIC ""
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.7012.xml'>
    <!ENTITY rfc7333 PUBLIC ""
	  "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7333.xml">
	<!ENTITY rfc7429 PUBLIC ""
	  "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7429.xml">
    <!ENTITY I-D.ietf-dmm-fpc-cpdp PUBLIC ""
	  "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-dmm-fpc-cpdp-00.xml">
    <!ENTITY I-D.yang-dmm-sdn-dmm PUBLIC ""
	  "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-yang-dmm-sdn-dmm-03.xml">
<!ENTITY rfc3315 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3315.xml">
<!ENTITY rfc4620 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4620.xml">
]>
<?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-giust-dmm-cpdp-deployment-00" ipr="trust200902">
  <front>
    <title abbrev="Deployment of CPDP">Deployment of Control-/Data-Plane separation in DMM</title>

    <!-- AUTHORS -->
    <author fullname="Fabio Giust" initials="F." surname="Giust">
     <organization abbrev="NEC">NEC Laboratories Europe</organization>
      <address>
        <postal>
          <street>NEC Europe Ltd.</street>
	  <street>Kurfuersten-Anlage 36</street>
          <city>Heidelberg</city>
          <code>D-69115</code>
          <country>Germany</country>
        </postal>
        <phone>+49 6221 4342216</phone>
        <email>fabio.giust@neclab.eu</email>
	<!--uri>http://www.something.com</uri-->
      </address>
    </author>
    
    <author fullname="Marco Liebsch" initials="M." surname="Liebsch">
     <organization abbrev="NEC">NEC Laboratories Europe</organization>
      <address>
        <postal>
	  <street>NEC Europe Ltd.</street>
          <street>Kurfuersten-Anlage 36</street>
          <city>Heidelberg</city>
          <code>D-69115</code>
          <country>Germany</country>
        </postal>
        <phone>+49 6221 4342146</phone>
        <email>liebsch@neclab.eu</email>
        <!--uri>http://www.something.com</uri-->
      </address>
    </author>    

    <date month="July" day="6" year="2015" />

    <area>Internet</area>

    <workgroup>DMM Working Group</workgroup>

    <abstract>
      <t>
The DMM working group is currently looking at solutions for mobility management based on control
and data plane separation.
In this context, the network entities in charge for the mobility control function
are separated from the data plane nodes, responsible mainly for, but not limited to,
data packet forwarding.
This vision allows for the design of different interaction methods between
the mobility control function and the data plane nodes.

One of such mechanisms being currently discussed devises an SDN-based abstraction layer
between control and data planes, embodied by an SDN Network Controller.
This latter interfaces to the mobility control function through a
north-bound interface (NBI), and programs the underneath infrastructure through a
south-bound interface (SBI), e.g., OpenFlow.
      </t>

      <t>
This draft describes multiple deployment scenarios for NBI and SBI interworking,
given that multiple network controllers could be deployed in order to meet
performance requirements e.g., related to latency.
      </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>The Distributed Mobility Management (DMM) working group is currently investigating solutions,
     which are based on the separation of mobility management functions' Control- and Data-Plane.
     The network functions in charge of the mobility control are separated
     from the data plane nodes, responsible mainly for, but not limited to, data packet forwarding.
     In this scenario, it is possible to design different mechanisms for the interaction between
     the mobility control function and the data plane nodes.</t>

     <t>One of these mechanisms devises a Software Defined Networking (SDN)
     abstraction layer between control and data planes, embodied by an SDN Network Controller (NC).
     The NC enforces instructions from different mobility control functions, which operate on top of a
     Network Controller and hold the mobility states, to Data-Plane nodes (DPNs), such as switches or routers,
     within a defined network scope. DPNs in different networks may be controlled by physically
     separated NCs. The NC configures Data-Plane nodes with forwarding and policy
     enforcement related rules, either with the accuracy of a single data flow or as aggregated rule, such as
     for an IP address prefix.</t>

     <t>An example of a Control-Plane function is
     the Control-Plane of a Local Mobility Anchor (LMA-C) as per the Proxy Mobile IPv6 (PMIPv6) architecture <xref
      target="RFC5213"></xref> or a Packet Data Network (PDN) Gateway's Control-Plane functions as per the 3rd Generation Partnership
     Project's architecture for cellular mobile communications. These functions perform protocol operation
     with remote Control-Plane functions for mobility management, e.g. the Control-Plane of a Mobile Access
     Gateway (MAG) as per the PMIPv6 protocol.</t>
   
     <t>Control-Plane functions associated with mobility management need to interact with the NC
     to enforce forwarding and policy rules in the Data-Plane.
     By taking again the PMIPv6 architecture as an example, the Data-Plane nodes have the role of the Data-Plane
     functions within an LMA or MAG.
     </t>

    <t>
     This document discusses various deployment
     options for mobility management in a Control-/Data-Plane separated setup utilizing SDN and how results of the
     chartered work about Forwarding Policy Control (FPC) <xref target="I-D.ietf-dmm-fpc-cpdp"></xref> can
     be used in such setup. 
     </t>

    <t>The diagrams and descriptions as per this document are meant for discussion and consideration in the DMM
    working group's chartered item about DMM deployment options.
    </t>

<!--</t>-->



      <t>
	  The WG document <xref target="I-D.ietf-dmm-fpc-cpdp"></xref> specifies
	  an abstraction and information model for DMM control and data plane separation. The specified
          functional architecture comprises a Client function, which is associated with the mobility management
          Control-Plane, and an Agent function, which is associated with Data-Plane configuration. Client and
          Agent interact with each other as per the specification in <xref target="I-D.ietf-dmm-fpc-cpdp"></xref>
          to enforce forwarding and policy rules from the mobility management Control-Plane in the Data-Plane.
          Such rules comprise, for example, forwarding of defined traffic through a GRE tunnel to a remote
          Data-Plane node while the traffic should experience prioritization as per a defined Quality-of-Service class.
	  Such interaction is illustrated in <xref target="fig:fpc_model"></xref>
	  </t>
         <figure anchor="fig:fpc_model" title="Illustration of the functional reference architecture for DMM Forwarding Policy Configuration (FPC)"><artwork><![CDATA[
                              +-------------------------+
                              | Mobility Control-Plane  |
                              |                         |
                              |+--------[API]----------+|
                              ||  FPC Client Function  ||
                              |+----------^------------+|
                              +-----------|-------------+
                                          |
                                          | DMM FPC protocol
                                          |
                              +-----------|-------------+
                              |+----------v------------+|
                              ||  FPC Agent Function   ||
                              |+-----------------------+|
                              |                         |
                              |  DPN Configuration API  |
                              +-------------------------+
        ]]></artwork></figure>
	  
      <t>
	  In the present document we describe a base reference model from
	  <xref target="I-D.ietf-dmm-fpc-cpdp"></xref>, to then propose
	  some sub-scenarios of interest for practical deployment.
	  In the base reference model, as depicted in <xref target="fig:base_model"></xref>, the Control-/Data-Plane interaction is
	  performed through an NC that exhibits a southbound interface (SBI), e.g. the OpenFlow protocol,
          to configure DPNs, and exposes a northbound interface (NBI) towards mobility management Control-Plane functions
	  utilizing the Client and Agent functions as well as the abstraction and configuration model as
          per <xref target="I-D.ietf-dmm-fpc-cpdp"></xref>. 
          This enables the mobility management Control-Plane using the NC's NBI to enforce rules and policies in the
          Data-Plane, which are relevant for the Control-Plane's operation, without the need to be aware of a Data-Plane node's
          configuration details and whether the Data-Plane node is a switch or a router.
	  </t>
	  
	  <t>
	  An SDN-based Control- and Data-plane separation for DMM has been proposed also in <xref target="I-D.yang-dmm-sdn-dmm"></xref>.
	  In such draft the mobility function is co-located with the SDN Network Controller.
	  By doing so, the mobility protocol is highly coupled with the NC and the SBI interface.
	  The present draft extends <xref target="I-D.yang-dmm-sdn-dmm"></xref> by introducing the use 
	  of an NBI as an additional abstraction layer.
	  In this way the architecture gains in flexibility as the mobility function is independent from the specific SBI and NC used.
	  The NBI hides Data-Plane configuration details from Control-Plane functions and is represented by a protocol implementation as per
	  <xref target="I-D.ietf-dmm-fpc-cpdp"></xref>.
	  </t>
          <!--
	  <t>Note: Following figures in <xref target="sec:scenarios"></xref> assume the Client and Agent as per
	  <xref target="I-D.ietf-dmm-fpc-cpdp"></xref> being deployed as depicted in <xref target="fig:base_model"></xref>
	  but omit showing them in each figure.</t>
	  -->
	  <figure anchor="fig:base_model" title="Reference communication model"><artwork><![CDATA[
                        ___.......___
                     ,-'  mobility   `-.
                    |     control       |
                    `._   function    _,
                       `--[Client]---'
                             |
                             |
                             |        NBI
                       +--[Agent]---+
                       |  network   |
                       | controller |
                       `,----+---+--'
                   ____/     |    \   SBI
                  |    |     |     \____
                  +----+     |     |    | data
                          +----+   +----+ plane
                          |    |          nodes
                          +----+
       ]]></artwork>
        </figure>
		
	  <t>
	  The flexibility introduced by splitting the Control-/Data-Plane reference point into
	  two different interfaces, namely the NBI and the SBI, may lead to practical
          limitations for a single network controller to handle the whole set of data plane nodes.
	  As a consequence, when multiple NCs are to be deployed, different scenarios
	  arise with different characteristics. This documents explores three possible deployment scenarios.
	  </t>
	
    </section>

    <section anchor="sec:terminology" title="Terminology">
      <t>The following terms are defined and used in this document: <list
          style="hanging">
		  <t hangText="FPCP (Forwarding Policy Configuration Protocol)"></t>
          <t hangText="MCF (Mobility Control Function)"></t>
		  <t hangText="NC (Network Controller)"></t>
		  <t hangText="NBI (North-bound Interface)"></t>
		  <t hangText="SBI (South-bound Interface)"></t>
          <t hangText="DPN (Data Plane Node)"></t>
          <t hangText="MN (Mobile Node)"></t>
        </list></t>
    </section>

    <section anchor="sec:scenarios" title="Control plane and data plane separation: deployment scenarios">
      <t>
	  A single network controller may lead to practical limitations when it
	  comes to handle the operations in large network, like scalability
	  issues and protocol promptness.
	  </t>
	  <t>
	  The mobility management protocol should execute quickly in order
	  to guarantee optimal service to users. For this reason the network controller
	  should not be too distant from the DPNs.
	  Therefore, a network administrator might deploy multiple NCs, each
	  responsible for a network sub-domain or site.
	  </t>

	  <t>
	  By deploying multiple NCs, the Control-/Data-Plane reference model as depicted in 
	  <xref target="fig:base_model"></xref> suffers some variations
	  as described in the following subsections.
      </t>
	  
      <section anchor="subsec:scenario1" title="Scenario 1">
        <t>
		In this scenario the NCs from different sites are directly interacting with
		the mobility control function by means of the NBI interface.
		The mobility control function possesses a holistic view of the network
		domain and propagates the instruction to the NCs accordingly.
		The mobility control function, which is associated with the Client function as per
		<xref target="I-D.ietf-dmm-fpc-cpdp"></xref>, connects to two Agent functions, each
		associated with one NC.
		This scenario is illustrated in <xref target="fig:scenario1"></xref>.
		</t>
	  <figure anchor="fig:scenario1" title="Scenario 1"><artwork><![CDATA[
                _______________________________
             ,-'           mobility            `-.
            |           control function         |
            `.        _____________________     _,
              `------[______ Client _______]---'
                      |                   |
                      |           NBI     |
            +----[Agent]-+             +-[Agent]----+
            |     NC     |             |     NC     |
            |   site 1   |             |   site 2   |
            `,----+---+--'             `,----+---+--'
        ____/     |    \           ____/     |    \   
       |DPN |     | SBI \____     |DPN |     | SBI \____
       +----+     |     |    |    +----+     |     |    | 
               +----+   +----+            +----+   +----+ 
               |    |                     |    |           
               +----+                     +----+
]]></artwork>
        </figure>
        
      </section>

      <section anchor="subsec:scenario2" title="Scenario 2">
        <t>
		In this scenario, the mobility control Client function interacts with
		a single Agent co-located with one NC, which in turns propagates the configuration through
		an east-west interface (EWI) to other NCs. This
		scenario is illustrated in <xref target="fig:scenario2"></xref>.
		</t>
        <figure anchor="fig:scenario2" title="Scenario 2"><artwork><![CDATA[
                 __________
              ,-' mobility `-.
       	     |    control     |
             `._  function   _,
                `-[Client]--'
                   |
                   | NBI
            +---[Agent]--+             +-----+------+
            |     NC     |_____________|     NC     |
            |   site 1   |    EWI      |   site 2   |
            `,----+---+--'             `,----+---+--'
        ____/     |    \           ____/     |    \
       |DPN |     | SBI \____     |DPN |     | SBI \____
       +----+     |     |    |    +----+     |     |    |
               +----+   +----+            +----+   +----+
               |    |                     |    |
               +----+                     +----+
]]></artwork></figure>
      </section>

      <section anchor="subsec:scenario3" title="Scenario 3">
        <t>
		In this scenario, each NC interacts through an Agent with a dedicated instance of the
		mobility function Client. It is then up to the different mobility control
		entities to coordinate the operations among different sites. This
		scenario is illustrated in <xref target="fig:scenario3"></xref>.
		</t>
		<figure anchor="fig:scenario3" title="Scenario 3"><artwork><![CDATA[
                 _________                  _________
              ,-' mobility`-.             / mobility \
             |    support    |___________|  control   |
             `._  entity    _,           \_ entity   /
                `-[Client]-'               `[Client]'
                   |                          |
                   | NBI                  NBI |
            +---[Agent]--+             +---[Agent]--+
            |     NC     |             |     NC     |
            |   site 1   |             |   site 2   |
            `,----+---+--'             `,----+---+--'
        ____/     |    \           ____/     |    \   
       |DPN |     | SBI \____     |DPN |     | SBI \____
       +----+     |     |    |    +----+     |     |    | 
               +----+   +----+            +----+   +----+ 
               |    |                     |    |           
               +----+                     +----+
       ]]></artwork>
        </figure>
      </section>
      </section>

  

    <!-- end of section "PMIPv6-based" -->

<!--    <section anchor="Acknowledgments" title="Acknowledgments">
      <t>.</t>

      </section>  -->
  </middle>

  <back>
    <references title="Normative References">
      <!--include="reference.RFC.2119"-->
      &rfc2119;
      &rfc5213;
      <!--&rfc3315;
      &rfc6275;-->
    </references>

    <references title="Informative References">
      <!--
      &rfc1157;      
      &rfc3164;
      &rfc4295;
      &rfc4620;
      &rfc6020;
      &rfc6241;
      &rfc6475;      
      &rfc6632;
      &rfc7011;
      &rfc7012;
      &rfc7333;
	  &rfc7429;-->
	  &I-D.ietf-dmm-fpc-cpdp;
	  &I-D.yang-dmm-sdn-dmm;
    </references>
	<!---->
  </back>
</rfc>
