<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="exp" docName="draft-barkai-lisp-nfv-00" ipr="trust200902">
  <front>
    <title abbrev="">LISP Based FlowMapping for Scaling NFV</title>

    <author fullname="Sharon Barkai" initials="S." surname="Barkai">
      <organization>ConteXtream Inc.</organization>

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

          <city></city>

          <code></code>

          <region>California</region>

          <country>USA</country>
        </postal>

        <email>Sharon@Contextream.c</email>
      </address>
    </author>

    <author fullname="Dino Farinacci" initials="D." surname="Farinacci">
      <organization>.</organization>

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

          <city></city>

          <code></code>

          <region>California</region>

          <country>USA</country>
        </postal>

        <email>farinacci@gmail.com</email>
      </address>
    </author>

    <author fullname="David Meyer" initials="D." surname="Meyer">
      <organization>Brocade</organization>

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

          <city></city>

          <code></code>

          <region>California</region>

          <country>USA</country>
        </postal>

        <email>dmm@1-4-5.net</email>
      </address>
    </author>

    <author fullname="Fabio Maino" initials="F." surname="Maino">
      <organization>Cisco Systems</organization>

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

          <city></city>

          <code></code>

          <region>California</region>

          <country>USA</country>
        </postal>

        <email>fmaino@cisco.com</email>
      </address>
    </author>

    <author fullname="Vina Ermagan" initials="V." surname="Ermagan">
      <organization>Cisco Systems</organization>

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

          <city></city>

          <code></code>

          <region>California</region>

          <country>USA</country>
        </postal>

        <email>vermagan@cisco.com</email>
      </address>
    </author>

    <date day="11" month="March" year="2013" />

    <area>Internet</area>

    <workgroup>LISP Working Group</workgroup>

    <keyword>LISP; deployment</keyword>

    <abstract>
      <t>This draft describes distributed flow-mapping applied according to
      RFC 6830 Locator ID Separation Protocol (LISP) for dynamic scaling of
      virtualized network functions (NFV) . Network functions such as
      subscriber management-mobility-security-quality, are typically delivered
      using proprietary appliances topologically embedded into the network as
      service-nodes or service-blades. Next generation virtualized network
      functions are pure software instances running on standard servers -
      unbundled building blocks of processing capacity and modular
      functionality. LISP based flow-mapping dynamically wires VNF instances
      into the data-path, and scales virtualized functions by steering the
      right traffic in the right sequence to the right process.</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"></xref>.</t>
    </note>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>This draft describes distributed flow-mapping applied according to
      RFC 6830 Locator ID Separation Protocol (LISP) for dynamic scaling of
      virtualized network functions (NFV) .<xref
      target="RFC6830"></xref>Network functions such as subscriber
      management-mobility-security-quality are typically delivered using
      proprietary appliances topologically embedded into the network as
      service-nodes or service-blades.</t>

      <t>This monolithic service delivery method increases the complexity of
      roll-out and capacity planning, limits functional choices, and inhibits
      service innovation. Next generation virtualized network functions are
      pure software instances running on standard servers - unbundled building
      blocks of compute capacity and modular functionality. This component
      based model opens up service provider networks to the savings of
      elasticity and the innovation of an open architectures. However this
      model also presents the network (or the virtual network rather) with the
      brand new challenges of assembling components into whole solutions by
      forwarding the right traffic to the right process at the right sequence
      and the right time.</t>

      <t>While it is possible, to some extent, to use traditional virtual
      networking mechanisms such as virtual-LANs (VLAN) and
      virtual-private-networks (VPN) in-order to map traffic to
      functions-processes, these mechanisms are relatively static and require
      complex and intense configuration of physical network interfaces with
      vbridge vrf configuration. NGN software-defined flow based models on the
      other hand are much more programmable and dynamic, and if orchestrated
      properly offer a better fit to next generation service-provider
      data-centers. LISP based flow-mapping enables such a dynamic global
      orchestration of flows. LISP xTRs wire virtual function instances into
      the data-path, based on dynamic identity-function and identity-location
      mappings, perform these actions in a dynamically programmable and
      elastic manner, and operate based on subscriber-profiles and
      function-demand global information.</t>
    </section>

    <section anchor="connectivity_models" title="Connectivity Models Used">
      <t>The basic connectivity model used to map flows to function is an
      identity-matrix forwarding. Unlike topological forwarding models which
      are based on source-subnet &gt;&gt; routed hop by hop &gt;&gt; to
      destination-subnet, identity-matrices are based on flow-identity
      "patched" to function-identity. This model is implemented using the LISP
      distributed overlay and LISP distributed database mechanisms. These
      mechanisms are applied over in-place physical networks in a manner
      described bellow:</t>

      <t><list style="symbols">
          <t>The topological network basis or the "location" network is
          assumed to be implemented using standard bridging and routing. Basic
          design principles are applied in order to achieve both physical
          capacity and physical availability of connectivity. Typical examples
          of these practices include spine-leafs switching for cluster many
          server racks that are used as the compute and virtual compute
          foundations to functions. These practices also include core-edge
          routing for inter-connecting server clusters across points of
          presence, as well as for inter-connecting these points of presence
          to the access networks and to the public Internet.</t>

          <t>The functional network or the "identity" matrix is there to map
          identified subscriber-flows carrying an application thread to the
          right function task or instance. This identity-matrix enables
          scaling and massive concurrency of the logical compute functions. By
          mapping each subscriber-application flow to the correct processes
          based on global definitions of the service and application, the
          system can engage as many functional components as there are
          available within and across data canters. Applied recursively
          flow-function matrix mapping can chain as many distinct functional
          components that make up a service as defined globally by the
          operator.</t>

          <t>The overlay network or the location-identity fabric enables the
          implementation of the functional network on the physical in-place
          bridge-routed network. The overlay forms a virtualization ring
          around the core-spine physical networks. All subscriber flows and
          function flows are aggregated at the outer interfaces of this
          virtualization ring, and are encapsulated over the inner interfaces
          of this ring in order to reach each of the locations.
          Ingress-Aggregation, Flow-Seperation, Matrix-Mapping,
          Encapsulation-Decapsulation, Egress-Delivry are all based on LISP
          xTRs and LISP mmap architecture and services.</t>
        </list><figure align="center" title="Topological Location Network">
          <artwork align="center"><![CDATA[
                                                
               POP3    POP4                           
               \ /     \ /                      
              EdgeR -- EdgeRouter               
                 |      |                       
   Access ...    | Core |    ... Internet             
                 |      |                                         
              EdgeR -- EdgeR                    
                / \                                         
               /   \                            
    ^      Spine1 Spine2 ... Spine5             
    |       /  \  /  \    __/ / .. |            
    |       |   \/   | __/   /     |            
    P       |   /\   ||     /      |            
    O      Leaf1   Leaf2  ... Leaf300           
    P       |-PC1   |-PC1                       
    1       |-PC2   |-PC2                       
    |       |..     |..                         
    |       |-PC40  |-PC40                      
    v                                                                                           


]]></artwork>
        </figure></t>

      <t><figure align="center" title="Functional Identity Matrix">
          <artwork align="center"><![CDATA[
                                                
                                                
     v <<  FunctionA   FunctionB ..  FunctionN  
     v                                          
Recursion Instance1..i Instance1..j Instance1..k
     v      | | | |      | | | |      | | | |  
     v      | | | |      | | | |      | | | |   
Subscriber1 o o o o - - -+ o o o - - -o o o o   
            | | | |      | | | |      | | | |   
Subscriber2 o + o o - - -o o o o - - -o o o o   
            | | | |      | | | |      | | | |   
    .         ...          ...          ...     
    .         ...          ...          ...     
    .         ...          ...          ...     
            | | | |      | | | |      | | | |   
SubscriberM o o o o - - -o o o o - - -+ o o o   
            | | | |      | | | |      | | | |   
                                                


]]></artwork>
        </figure></t>

      <t></t>

      <t><figure align="center" title="Identity-Location Overlay">
          <artwork align="center"><![CDATA[
                                                
   AoF AoF AoF Access or Functions AoF AoF AoF  
      \ | /          \ | /           \ | /      
       BoR            BoR             BoR       
        |              |               |        
       XTR            XTR             XTR       
        ||             ||              ||       
         ===============================        
        ||                             ||      
 B     _||                             ||_     B
 o -XTR_ |                             | _XTR- o
 R      ||     Bridges or Routers      ||      R
       _||                             ||_      
 B -XTR_ |                             | _XTR- B
 o      ||                             ||      o
 R      ||                             ||      R
         ===============================        
        ||             ||              ||                                                       
       XTR             XTR             XTR      
        |               |               |       
       BoR             BoR             BoR      
      / | \           / | \           / | \     


]]></artwork>
        </figure></t>
    </section>

    <section anchor="architecture"
             title="XTR FlowMapping Reference Architecture">
      <t>In order to map subscriber flows to virtualized function instances
      and essentially to overlay identity grid onto topology based
      bridge-routed network we use the following XTR 3-tier reference
      architecture:</t>

      <t><list style="numbers">
          <t>Flow-Switching: is a set of n-tuple LOCALLY defined masks, BEST
          matched against each packet in-order to separate traffic to LOCALLY
          significant sequences representing application threads. Flows are
          either Encapsulated in-to the overlay, Decapsulated out-of the
          overlay, Forwarded up-to xTR internally registered Flow-Handlers
          ..</t>

          <t>Flow-Handlers: are a set of control processes invoked for each
          flow where a specific identity-location mapping has not been defined
          and provisioned into the Flow-Switching. The default "catch-all"
          Flow-Handler maps IP flows to locations and gateways based on RFC
          6830. In addition protocol-specific handlers can be loaded into the
          xTR for dealing with specific mapping and AFFINITY requirements of
          network functions such as SIP, GTP, S1X etc.</t>

          <t>Global-Mappers: is how GLOBALLY significant key-value mappings is
          translated by Flow-Handlers to LOCALLY defines masks and
          encapsulation headers. Examples of such mappings include functional
          VIP to actual function processes EIDs, application specific
          SubscriberIDs to function EIDs, public IP-Port to SubscriberID, and
          EIDs to RLOCs.</t>
        </list></t>

      <t><figure align="center" title="Identity-Location Overlay Ring">
          <artwork align="center"><![CDATA[
                                                
   Orchestration    Authorization    OSS/BSS    
      Mappings       Mappings        Mappings   
          v               v              v      
    (NFVMs etc.)     (3A etc.)     (Subs. etc)     
          v               v              v      
         _________________________________      
        |                                 |     
        |            LISP-MMAP            |     
        |_________________________________|     
                                                
           ^            ^             ^         
Runtime Mappings(location, affinity, load, etc.)
           ^            ^             ^         
           ^            ^             ^         
  ^     -------      -------       -------      
  |    |MMapper|    |MMapper|     |MMapper|     
  |    |-------|    |-------|     |-------|     
  X    |F F F F|    |F F F F|     |F F F F|     
  T    |H H H H|    |H H H H|     |H H H H|     
  R    |n n n n|    |n n n n|     |n n n n|     
  |    |d d d d|    |d d d d|     |d d d d|     
  |    |-------|    |-------|     |-------|     
  v    | FlowX |    | FlowX |     | FlowX |     
        -------      -------       -------      


]]></artwork>
        </figure></t>

      <section title="">
        <t></t>
      </section>
    </section>

    <section anchor="intra-provider" title="Intra-Provider Mappings">
      <t></t>
    </section>

    <section anchor="subscription" title="LCAF Mapping Subscription ">
      <t></t>
    </section>

    <section anchor="inter-provider" title="Inter-Provider Mappings">
      <t></t>
    </section>

    <section anchor="qos" title="QOS and Echo Measurements">
      <t></t>
    </section>

    <section anchor="security" title="Security Considerations">
      <t>There are no security considerations related with this memo.</t>
    </section>

    <section anchor="iana" title="IANA Considerations">
      <t>There are no IANA considerations related with this memo.</t>
    </section>

    <section anchor="acknowledgements" title="Acknowledgements">
      <t></t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"
?>

      <?rfc include="reference.RFC.6830"
?>
    </references>
  </back>
</rfc>
