<?xml version='1.0'?>   
    <!DOCTYPE rfc SYSTEM 'rfc2629.dtd'>
<?rfc strict="yes"?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="info" docName="draft-cheng-supa-applicability-01"
     ipr="trust200902">
  <!-- ***** FRONT MATTER ***** -->
  <front>
    <title abbrev="Applicability of SUPA">Applicability of SUPA</title>
	
	<author fullname="Ying Cheng (Editor)" initials="Y." surname="Cheng">
      <organization>China Unicom</organization>
 
      <address>
        <postal>
          <street>No.21 Financial Street, XiCheng District</street>
          
          <city>Beijing</city>
          
          <region></region>
  
          <code>100033</code>

          <country>China</country>
        </postal>

        <phone>+86-010-66259394</phone>

        <email>chengying10@chinaunicom.cn</email>
      </address>
    </author>
	
	<author fullname="Dapeng Liu" initials="D." surname="Liu">
      <organization>Alibaba Group</organization>

      <address>
        <postal>
          <street></street>
          
          <city>Beijing</city>
          
          <region></region>
  
          <code>100022</code>

          <country>China</country>
        </postal>

        <phone></phone>

        <email>max.ldp@alibaba-inc.com</email>
      </address>
    </author>
	
    <author fullname="Borui Fu (Editor)" initials="B." surname="Fu">
      <organization>China Telecom</organization> 
	
      <address>
	   <postal>
	     <street></street>
		 
        <region>Beijing</region>
	    
		<country>China</country>
	   </postal>
	   
	   <phone></phone>
	   <email>fubr@ctbri.com.cn</email>
      </address>
    </author>
	
	<author fullname="Dacheng Zhang" initials="D." surname="Zhang">
      <organization>Freelancer</organization> 
	
      <address>
	   <postal>
	     <street></street>
		 
        <region>Beijing</region>
	    
		<country>China</country>
	   </postal>
	   
	   <phone></phone>
	   <email>Dacheng.zhang@gmail.com</email>
      </address>
    </author>
	
	<author fullname="Narasimha Vadrevu" initials="N." surname="Vadrevu">
      <organization>VN Telecom Consultancy</organization>

      <address>
        <postal>
          <street></street>
          
          <city></city>
          
          <region></region>
  
          <code></code>

          <country></country>
        </postal>

        <phone></phone>

        <email>vadrevun@von20.com</email>
      </address>
    </author>
	
	<date  month="March" year="2017"/>	
    <area>OPS</area>
    <workgroup>SUPA</workgroup>
    <keyword>applicability</keyword>
    <abstract>
     <t>SUPA will define a generic policy model, an imperative ECA (Event
     Condition Action) policy information model and a declarative (intent-
     based) policy information model which is the extension of the generic
     model, and a set of policy data models which will make use of the
     common concepts defined in the generic model.  This memo will explore
     some typical use cases and demonstrate the applicability of SUPA
     policy models.
     </t>
    </abstract>
  </front>

  <!-- ***** MIDDLE MATTER ***** -->

  <middle>
    <section title="Introduction">
     <t>One of the ways for network service automation is using network
     management and operation software applications.  The applications may
     not be able to directly communicate with each network element; a
     hierarchical and extensible framework should be considered to hide 
	 the protocol specific and/or vendor specific details, high level
     network and service abstraction, and standardized programming API
     will be necessary.
	 </t> 
	 
	 <t>SUPA will define policy generic models and data models, for service
     management and operation applications.  [I-D.ietf-supa-generic-
     policy-info-model] defines a common set of concepts for various data
     models which may use different languages, protocols, and
     repositories. The generic policy information model (GPIM)[I-D.ietf-supa-generic-policy-info-model] is defined for use in 
     network operations and management applications. The ECA Policy Rule Information Model (EPRIM) [I-D.ietf-supa-generic-policy-
	 info-model] extends the GPIM to define how to build policy rules
	 according to the event-condition-action paradigm. The GPIM and the EPRIM
	 will both be translated into corresponding YANG modules that define policy 
	 concepts, terminology, and rules in a generic and interoperable manner; 
	 additional YANG modules may also be defined from the GPIM and/or EPRIM to manage 
	 specific Functions, see [I-D.ietf-supa-generic-policy-data-model].
	 </t> 
	 
	 <t>The generic data models will be used for domain or service specific
	 data model.  And there is no interoperability requirement for domain
	 specific data models.  The interoperability is guaranteed at the
	 generic data model level via the common concepts.
	 </t>
	 
	  </section>	 

	 <section title="Terminology">
	 <t>DC Data Center</t> 
	 
	 <t>PCE Path Computation Element</t> 
	  
	 <t>SP Service Provider</t> 
	 
	 <t>SUPA Simplified Use of Policy Abstractions</t> 
	 
	 <t>VM Virtual Machine</t> 
	 
	 <t>VPC Virtual Private Cloud</t> 
	 
	 </section>	 
	 
	 
	 <section title="Framework"> 
	 
	 <t> The SUPA Policy-based Management Framework is described in [I-D.ietf-supa
     -policy-based-management-framework]. Figure 1 is copied from 
     [I-D.ietf-supa-policy-based-management-framework], for clarity reasons.
	 </t>
	 
     <figure  align="center">
            <artwork align="center"><![CDATA[			

												  +
									  |  SUPA Policy Model
									  |
									  |  +----------------------------------+
									  |  | Generic Policy Information Model |
									  |  +----------------------------------+
									  |        D                 D
									  |        D   +-------------v-------------+
		 +----------------------+     |        D   | ECAPolicyRule Information |
		 | OSS/BSS/Orchestrator <--+  |        D   | Model (EPRIM)             |
		 +----------^-----------+  |  |        D   +---------------------------+
					C              |  |  +----+D+------------------------+D+---+
					C              +-----+     D   SUPA Policy DM         D    |
		 +----------v-----------+     |  | ----v-----------------------+  D    |
		 |  EMS/NMS/Controller  <--------+ | Generic Policy Data Model |  D    |
		 +----------^-----------+     |  | ----------------------------+  D    |
					C              +-----+              D                 D    |
					C              |  |  |     +--------v-----------------v--+ |
		 +----------v-----------+  |  |  |     |  ECA PolicyRule Data Model  | |
		 |  Network Element     <--+  |  |     +-----------------------------+ |
		 +----------------------+     |  +-------------------------------------+
									  |
									  +
			
      Figure 1: SUPA Policy Model Framework, copied from 
                   [I-D.ietf-supa-policy-based-management-framework]
            ]]></artwork>
       <postamble></postamble>
      </figure>	 	
	
	 <t>In Figure 1:</t>

	 <t>The double-headed arrow with Cs means communication;</t>

	 <t>The arrow with Ds means derived from.</t>
	 
	 <t>The components within this framework are:</t>

     <t>SUPA Policy Model: represents one or more policy modules that contain
        the following entities:
	 </t>

     <t>Generic Policy Information Model: a model for defining policy rules
	   that are independent of data repository, data definition, query,
	   implementation languages, and protocol.  This model is abstract and
	   is used for design; it MUST be turned into a data model for
	   implementation.
	 </t>

	 <t>Generic Policy Data Model: a model of policy rules that are dependent
	   on data repository, data definition, query, implementation languages,
	   and protocol.
     </t>

	 <t>ECA Policy Rule Information Data Model (EPRIM): represents a policy
		rule as a statement that consists of an event clause, a condition
	    clause, and an action clause.  This type of Policy Rule explicitly
	    defines the current and desired states of the system being managed.
	    This model is abstract and is used for design; it MUST be turned into
	    a data model for implementation.
     </t>
	 
	 <t>ECA Policy Rule Data Model: a model of policy rules, derived from
	    EPRIM, that consist of an event clause, a condition clause, and an
	    action clause.
     </t>

	 <t>EMS/NMS/Controller: represents one or more entities that are able to
	   control the operation and management of a network infrastructure
	   (e.g., a network topology that consists of Network Elements).
	 </t>

	 <t>Network Service and Resource Data Models: models of the service as
	   well as physical and virtual network topology including the resource
	   attributes (e.g., data rate or latency of links) and operational
	   parameters needed to support service deployment over the network
	   topology.
	 </t>

	 <t>Network Element (NE), which can interact with local or remote
	   EMS/NMS/Controller in order to exchange information, such as
	   configuration information, policy enforcement capabilities, and
	   network status.
	 </t>

	 
	 
   
	 <t>As shown in Figure 1, SUPA will define generic policy models, which
	   are independent of services and use cases.  Policy data models can be
	   derived from the generic models.  The data model will define high
	   level, maybe network-wide policies.  Policy data model will be used
	   in conjunction with service data models to generate configurations
	   for network elements.  The service data model is use case specific
	   and will be developed by operators or third parties, which is out the
	   scope of SUPA.
	 </t> 
	 
	 <t>The service management applications will send SUPA data models to the
	   service management system, where policy making and automated policy
	   enforcement will be performed, and the data models will be mapped to
	   configuration of network elements.  Configuration of network elements
	   is vendor specific, using various protocols, such Netconf, Restconf,
	   etc.
	 </t> 

	 <t>SUPA also make use of information collected from network elements.
	   The information may include warning or fault event, load status,
	   traffic statistics, etc, which can be used to adjust network
	   configurations.  This kind of automation is done through ECA data
	   models.
	 </t>
	 
	 <section title="Network Manager/Controller">
		 
	 <figure  align="center">
            <artwork align="center"><![CDATA[			
         +------------------------+   +---------------+
         |   SUPA Generic Model   |   | Administrator |
         +------------------------+   +---------------+
                     |                        |
                     |                        | Policy Update
                     V                        V
     +---------------------------------------------------------------+
     |  +-------------------+                 +-------------------+  |
     |  | SUPA Data Model A |        ...      | SUPA Data Model N |  |
     |  +-------------------+                 +-------------------+  |
     |                                                               |
     |          Network Management / Controller                      |
     |                                                               |
     |  +----------------------------+  +-------------------------+  |
     |  |     Network Resources      |  | Information Collecting  |  |
     |  | (Topology, inventory, etc) |  | (Event, Statistic, etc) |  |
     |  +----------------------------+  +---------^---------------+  |
     +--------------------------------------------|------------------+
                          |                       | SNMP TRAP
                          | NETCONF               | Syslog
                          | RESTCONF              | Netconf Notification
                          V                       |
                     +--------------------------------+
                     |     Network Infrastructure     |
                     +--------------------------------+
      Figure 2: Network Manager / Controller
            ]]></artwork>
       <postamble></postamble>
      </figure>	 	 
	 
	 <t>The internal details of the network manager / controller may be out
	   of the scope of SUPA, but explaining how it works may help people to
	   understand and implement SUPA.
	 </t>
	 
	 <t>Network administrator can send service deployment and management
	   request to network manager / controller via SUPA data models.  The
	   data models will be converted into network elements configuration
	   snippets.  The configuration change may be performed instantly, or
	   later triggered by events.  The network manager / controller has the
	   intelligence to decide which network devices should be configured,
	   and what the configuration will be, which is derived from the actions
	   specific in the data models explicitly or implicitly.
	 </t>
	 
	 <t>Network management related resources and information are stored in
		the network manager/controller, which contains the network topology
		(physical and virtual interconnection of network elements, etc),
		inventory (database of network elements, ports, device type,
		capabilities, etc.), protocol specific information, etc.
	 </t>
	 
	 <t>SUPA will make use of the existing work of other IETF WGs and other
		SDOs, such as if the topology data model is already defined in
		another IETF WG, SUAP will reference it rather than trying to define
		it again.
	 </t>
	 
	 <t>The network manager / controller will find out the list of network
		devices which should be configured for a specific demand or service.
	 </t>

	 <t>For example, there is a configuration request:</t>

	 <t>All edge routers shall have SSH disabled.</t>	
	 
	 <t>An edge router is a router with connection to network(s) outside of
	   the current network domain.  The controller will query the topology
	   database and find out all the routers with the attribute of "device-
	   role == edge", or the controller may use more complicated algorithms
	   to find out if a router is an edge route, which is implementation
	   specific.
	 </t>
	 
	 <t>Similarly, another example is, the controller can make use of PCE
	   engine to plan the links between DCs, and make sure the links are
	   disjoint for better availability in case of failure.  The PCE engine
	   will be used in conjunction with the topology database to find out
	   possible disjoint links.
	 </t>
	 
	 <t>The network manager / controller will also have other information,
	   such as protocol specific information, traffic with TCP destination
	   port 22 is SNMP traffic.
	 </t>
	 
	 <t>The network manager / controller also collect information from the
	   network device, such events, logs, statistics, etc.  The information
	   may come from SNMP TRAP, Syslog, NETCONF notification, and other
	   sources such as vendor specific protocols or extensions.  The
	   collected information may be used in conjunction with SUPA ECA data
	   models for dynamic configuration change.  An example use of the
	   information is, if the load on a link between two DC exceeds a
	   threshold, and there are multiple disjoint links between the two DCs,
	   traffic steering will be triggered.
	 </t>

	 <t>Event: link_load > threshold </t>

	 <t>Condition: there are disjoint links </t>

	 <t>Action: perform traffic steering</t>

     <t>Some of the events are already standardized, such SNMP TRAP and
		NETCONF notification; some are implementation specific.
	 </t>

	 <t>SUPA data models explicitly or implicitly specify network actions,
	   and the actions may be expanded into more detail actions if
	   necessary, and finally converted into protocol specific, vendor
	   specific network element configuration snippets.
	 </t>

	 <t>In the previous example shown below again:</t>

	 <t>All edge routers shall have SSH disabled.</t>

	 <t>The action in this case is "disable SSH traffic", the network manager
	   / controller should converted this action into configuration "disable
	   traffic on TCP port 22" in the IP stack, or an ACL rule which will
	   drop traffic with TCP destination port 22.
	 </t>

	 <t>The network manager / controller can support various types of
	   southbound interface, such as NETCONF, RESTCONF, SNMP, OpenFLow, etc,
	   which make it possible to support devices from different vendors.
	   This is implementation specific and out of the scope of SUPA.
	 </t>
	 
	   </section>	

	 </section>	
	 
	 <section title="Use Cases of SUPA">
		
		<section title="Use Case 1: SNMP blocking">

			<section title="Introduction">
	
	 <t>This example will illustrate how to use the SUPA information model
        to block inbound and outbound SNMP traffic.
	 </t>
	 
     <t>The following exemplar policy was posted to the SUPA mailing list:
	 </t>

     <t>ensures that SNMP is blocked on ports at the edge </t>
     <t>of the administrative domain to prevent SNMP going </t>
     <t>out or coming in from outside the enterprise.                 (1)  </t>

     <t>While this is simple for a human to understand, it is actually
	   quite difficult for a machine to understand in its original form.
	   This is because:
	 </t> 

     <t> 1) the text must be translated to a form that the device can
         understand
	 </t> 
     <t> 2) the nature of the policy is not clear (due to the inherent
         ambiguity of English)
     </t> 
		</section>

		<section title="Solution Approach">
		
	 <t> First, let's assume the following context:</t>
	 <figure  align="center">
				<artwork align="center"><![CDATA[			
      +-----------------------------+       +--------------+
      |      Enterprise Domain      |       | Other Domain |
      |                             |       |              |
      |    +-----+ +-----+ +-----+  |/     \|              |
      |    | NE1 | | NE2 | | NE3 +--+-------+              |
      |    +-----+ +-----+ +-----+  |\     /|              |
      +-----------------------------+       +--------------+
		  Figure 3: Blocking inbound and outbound SNMP traffic
				]]></artwork>
		   <postamble></postamble>
		  </figure>	
		  
	 <t> In the above example, the only "edge" interface is that of NE3. This
	   enables us to simplify (1) to:
	 </t>

     <t> block SNMP on NE3                                             (2)
     </t>
	 
	 <t>This assumes that NE3 exists and is operational. This is a **big**
	   assumption. This leads to the observation that in both (1) and (2),
	   there are at least two different interpretations for each:
	 </t>

     <t>1) apply a set of actions directly to a SUPAPolicyTarget, assuming
        that the SUPAPolicyTarget understands SUPAPolicies, or
	 </t>
     <t>2) apply a set of desired actions that are already translated to
        a form that a SUPAPolicyTarget can understand
	 </t>
     <t>Note that a SUPAPolicyTarget could be the network device or a proxy
	    for the network device.
	 </t>

	 <t>The difference between these interpretations is whether a SUPAPolicy
	   applies one or more SUPAPolicyActions **directly** to a
	   SUPAPolicyTarget (that is without translation to, for example, CLI
	   or YANG) versus whether a SUPAPolicy, as part of its action(s),
	   produces something that the device (or its proxy) can understand.
	 </t>

	 <t>Put another way, the first alternative shows how SUPAPolicies can
	   directly control behavior, while the second alternative shows how a
	   SUPAPolicy can invoke a set of actions that the device (or its proxy)
	   can understand. Thus, policy (1) can be formulated as either:
     </t>

     <t> - IF any network element has a port that meets the criterion of
        the role "edge interface", AND it is inside the
        EnterpriseDomain, then block SNMP traffic                   (3)
	 </t>
     <t> - IF a network element is added within the EnterpriseDomain </t>
         <t>  IF any of its ports take on the role "edge interface"</t>
          <t>    Add a filter to block SNMP traffic for that port      (4) </t>

     <t> The first case is the simplest, and likely what most people thought.
		Conceptually, it could look as follows:
	 </t>
	 
     <t>  Event:      SNMP traffic is sent or received </t>
     <t>  Condition:  IF this port implements the "edgeInterface" role </t>
                  <t> AND IF this port is IN the EnterpriseDomain </t>
     <t>  Action:     Block SNMP traffic                                (5) </t>

     <t> (We will define "edgeInterface" role and "EnterpriseDomain"
		later in this note.) 
	</t>

     <t> A possible drawback of (5) is that it is activated by the arrival
	   of a packet event. Such events will be VERY common, meaning that
	   the Policy Engine will be doing a lot of work when most of the
	   time, no policy action is  needed. 
     </t>

	 <t> The second case could be addressed as follows: </t>

      <t> Event:      A new port is going to be enabled </t>
      <t> Condition:  IF this interface implements the "edgeInterface" 
                  role AND IF this port is IN the EnterpriseDomain </t>
      <t>Action:     InstallFilter("SNMP traffic filter", "block")     (6) </t>

		</section>

			
			
	</section>
	
	
		<section title="Use Case 2: VPC">
			<section title="Generic">
			
	   <t>In practice, a public cloud operator can virtualize the cloud
	   resources into multiple isolated virtualized private clouds and
	   provide them to different tenants.  Such a Virtualized Private Cloud
	   is referred to as a VPC.  In a typical VPC provided by, e.g., Alibaba
	   or Amazon, through a control portal, tenants can establish and manage
	   their VPC networks easily, for instance, deploying or removing
	   virtualized network devices (e.g., virtualized routers and
	   virtualized switches), adjusting the topologies of VPC networks,
	   specifying packet forwarding policies, and deploying or removing
	   virtual services (e.g., load balancers, firewalls, databases, DNS,
	   etc.).  The network functionalities that the tenant can access are
	   virtualized and actually could be performed by the VMs located on the
	   servers connected through physical or overlay networks.  Note that
	   the servers may be located in different data centers which are
	   geographically distributed.
	   </t> 

	   <t>The manipulation of the virtualized VPC network may also affect the
	   configuration of physical networks.  For instance, when a tenant
	   cloud networks and specify the policies to steer the traffics through
	   different VPNs in different conditions.  Note that the VPCs that the
	   tenant may be located in different geographic regions and the VPNs to
	   those VPCs may need to be generated at run time. newly deploys two
	   VMs in the VPC which are located in different DCs, the VPC control
	   mechanism may have to generate a VPN between two DCs for the internal
	   VPC communication.  Therefore, the control mechanism for a VPC should
	   be able to adjust the underlying network when a tenant changes the
	   network or service deployment of the virtual VPC network.
	   </t> 
	   
	   <t>In addition, a VPC, often provides other value added services (e.g.,
	   database Services, DNS) for VMs in certain VPCs.  The VMs and the
	   value added services could be located in different DCs, or even
	   provided by different vendors.  VPNs are configured for the VPCs to
	   provide connection to the internal services in a tenant's own DC or
	   organization.  The access of such services should be controlled.  For
	   instance, the VMs in a VPC can access the database services only when
	   the tenant has deployed a database within its VPC through the control
	   portal.
	   </t>

	   <t>In many cases, a tenant may need to specify how the VPCs are
	   connected to its enterprise cloud networks.  For instance, a tenant
	   wants to deploy multiple VPNs to connect the VPC with its private
	   cloud networks and specify the policies to steer the traffics through
	   different VPNs in different conditions.  Note that the VPCs that the
	   tenant may be located in different geographic regions and the VPNs to
	   those VPCs may need to be generated at run time.	   
	   </t>

	   <t>In addition, a VPC, often provides other value added services (e.g.,
	   database Services, DNS) for VMs in certain VPCs.  The VMs and the
	   value added services could be located in different DCs, or even
	   provided by different vendors.  VPNs are configured for the VPCs to
	   provide connection to the internal services in tenant's own DC or
	   organization, and to create and manage VPNs to internal services.
	   The access of VMs to data resources should be controlled.  For
	   instance, the VMs in a VPC can access a database service only when	   
	   the tenant has deployed a database service into its VPC through the
	   control portal.	   
	   </t>
	   
			</section>

			<section title="Example 1">	
			
	 <figure  align="center">
            <artwork align="center"><![CDATA[			
                          +--------------------+
                          | DC2                |
                          | +----------------+ |
                          | |Tenant x (vDC)  | |
                          | +----------------+ |
                          |                    |
                          | +----------------+ |
                          | | Tenant 1 (vDC) | |
                          | +----------------+ |
                          +----------|---------+
                                     |
                                    |
                              +-------------+
                              |    Cloud    |
                             /|             |\
                            / +-------------+ \
                           /                   \
                          /                     \
       +-----------------/--+               +----\---------------+
       | DC1            /   |               | DC3 \              |
       | +----------------+ |               | +----------------+ |
       | | Tenant 1 (vDC) | |               | | Tenant 1 (vDC) | |
       | +----------------+ |               | +----------------+ |
       |                    |               |                    |
       | +----------------+ |               | +----------------+ |
       | | Tenant n (VDC) | |               | | Tenant k (vDC) | |
       | +----------------+ |               | +----------------+ |
       +--------------------+               +--------------------+
      Figure 4: Resource Inter-connection for a VPC Tenant
            ]]></artwork>
       <postamble></postamble>
      </figure>	 			
			
	   <t>When a cloud / DC operator signs a contract with customers, resource
	   information such as network bandwidth, storage size, number of CPU,
	   memory size, etc, will be specified.
	   </t>
	   
	   <t>But in deployment, the resources may be located in multiple
	   distributed data centers, and tunnels will be created to connect
	   these resources, which makes it look like one seamless entity - a
	   virtual DC.  There could be quite a number of tunnels, and the
	   tunnels are dynamic, either for the reason of load balancing purpose
	   or VM migration, or other reasons.  This will make it difficult to
	   configure the service statically or manually, service automation is
	   very necessary.
	   </t>
	   
	   <t>The service management system will have a repository of available
	   resources, including the topology.  And also the management system
	   will have the customer specific information (location, SLA, agreed
	   resources, etc).
	   </t>

	   <t>The administrator can send the service requirement to the management
	   system by a high level data model, which can further be mapped to low
	   level detail data models, then finally mapped to configurations of
	   network devices.
	   </t>

	   <t>Target: Provide VPC service to customer A with specified resources
	   and function (storage, computing, DNS, etc)
	   </t>

	   <t>Declarative policy:</t>

	   <t>1.  Allocate the required services on DCs according to a user's
	   profile
	   </t>

	   <t>2.  Services located in multiple distributed DCs must be
	   interconnected via VPNs
	   </t>

	   <t>3.  The VPNs associated to the services provided for a user must
	   match the user's profile in terms of latency, speed and bandwidth
	   </t>

			</section>			
		
			<section title="Example 2">	
			
	        <figure  align="center">
            <artwork align="center"><![CDATA[			
          +----------+      Tenant move to         +----------+
          | Tenant A |    ------------------>      | Tenant A |
          +----------+     another location        +----------+
               |                                         |
               |                                         |
               |                                         |
      +--------V-------+                       _+--------V-------+
      |  +----------+  |                        |  +----------+  |
      |  | VM for   |  |     VM Migration       |  | VM for   |  |
      |  | Tenant A |  |   ----------------->   |  | Tenant A |  |
      |  +----------+  |   if network load      |  +----------+  |
      |  DC-Location1  |   between DCs is low   |  DC-Location2  |
      +----------------+                        +----------------+
      Figure 5: VM Migration if Tenant Move
            ]]></artwork>
       <postamble></postamble>
       </figure>	
	   
	   <t>As shown in the above figure, when a VPC tenant move from one
	   location to another, where it is near to another DC, and the network
	   load between the new DC and the previous DC is low, the tenant's VM
	   should be migrated to the new DC in order for better user experience.
	   After the VM is moved to the new DC, the network related to the VM
	   must be updated accordingly.	   
	   </t>
	   

	   
                <figure align="left" >
                    <artwork><![CDATA[     
 
	   Target: Perform VM migration when user location changed and the
	   network load between the DCs is low.
	   

	   ECA Policy:

	   Event: a VPC user's location is changed (near to another DC).

	   Condition: network_load(DC_old, DC_new) < threshold.

	   Action:

	   1.  Migrate the VM to the new data center (DC_new).

	   2.  Update the VPNs connecting the user's services.
                                                                                                                                                                    
                    ]]></artwork>
                </figure>       	   
	   

	   <t>In the above model it is assumed that the network management/
	   controller has the network topology, including attributes of the
	   links, such as bandwidth.  The network management/controller also
	   monitors the real-time load on the links in the network topology.
	   </t>

	   <t>The user's location can be identified by the user's IP address.  When
	   a user login, the network management/controller will check the user's
	   IP address against an IP address database, such as the IP address
	   assignments by IANA.
	   </t>

	   <t>The network management/controller also maintain a mapping of DCs and
	   IP address segments, say, a DC should serve users in a near location
	   which can be identified by IP address segments.  Though this is not
	   always the case, sometimes the geographical distribution of network
	   resource will also need to be considered besides the location (IP
	   address).  But, anyway, a mapping of DC and the IP address it should
	   serve should be maintained.
	   </t>

	   <t>If the controller detects a location change and a new DC is possible
	   for the user, and the network load between the new DC and the old DC
	   is low, then VM migration will be triggered and related network
	   configuration will be performed.
	   </t>
	
			</section>	

		</section>
		

		
		<section title="Use Case 3: Instant VPN">

	 <figure  align="center">
            <artwork align="center"><![CDATA[			
                          +------------------------+
                          |   SUPA Generic Model   |
                          +------------------------+
                                       |
                                       |
                       +-------------------------------+
                       | +---------------------------+ |
                       | |      SUPA Data Model      | |
                       | +---------------------------+ |
                       | +---------------------------+ |
                       | | SUPA Translation Function | |
                       | +---------------------------+ |
                       +-------------------------------+
                            /
                           /VPN Req Forwarded to Management System
                          /
       +------+  VPN  +------+      +------+      +------+
       |  CE  |-------|  PE  |------|  PE  |------|  PE  |
       +------+  Req  +------+      +------+      +------+
                         |              |             |
                         |              |             |
                      +------+      +------+      +------+
                      |  PE  |------|  PE  |------|  PE  |
                      +------+      +------+      +------+
      Figure 6: Instant VPN
            ]]></artwork>
       <postamble></postamble>
      </figure>	 

	   <t>Traditionally, when an operator needs to deploy VPN services for an
	   enterprise customer, they will send a service staff to the customer
	   site and make the wire connection between the CE and PE.  The service
	   staff will also collect the configuration information, e.g.	  
	   port/frame/slot of PE, PE ID, etc, and then send the collected
	   information back to the management system.  The management system
	   will configure the network according to this information as well as
	   the customer' information (such as bandwidth, SLA, etc).  The problem
	   of this approach is that the service staff needs to collect the
	   connection information and feedback to the management system, and
	   MUST make sure the information matches the actual connection.  This
	   process is error prone.
	   </t>

	   <t>New approach should not count on the physical / geographical
	   information feedback by the service staff, minimize the operation
	   procedures.  The CE should send authentication (with credentials)
	   request to the PE, and PE should forward the request to the
	   management system together with port/frame/slot on which the request
	   is received, the PE ID etc.
	   </t>

	   <t>Target: Configure VPN for an enterprise customer to connect its
	   enterprise network with VPC
	   </t>

	   <t>ECA Policy:</t>

	   <t>Event: service management system receive a CE request for VPN
	   creation (forwarded by PE).
	   </t>

	   <t>Condition: Authentication and Authorization results are OK.</t>

	   <t>Action: Configure VPN based on received request, including the user's
	   grade and physical info (port/slot/frame/route id, etc, from which
	   the request is received).		
	   </t>

		</section>
		
	</section>	
	
	 <section title="IANA Considerations">
	   <t>This document makes no request of IANA.</t>

	   <t>Note to RFC Editor: this section may be removed on publication as an
	   RFC.
	   </t> 

	 </section>
	 
	 <section title="Security Considerations">
	   <t>Since SUPA models can be used to generate configurations for network
	   elements, the management applications which send models to service
	   management system must go through authentication and authorization.
	   </t> 

	   <t>The handling of confliction of different polcies is out of scope of
	   this memo.
	   </t> 

	 </section>
	 
	 
	 <section title="Acknowledgements">
	   <t>This document has benefited from reviews, suggestions, comments and
	   proposed text provided by the following members, listed in
	   alphabetical order: Joel M. Halpern, Juergen Schoenwaelder, John Strassner, James
	   Huang, Georgios Karagiannis.
	   </t> 

	 </section>
	 
	 
  </middle>

    <back>

        <references title="Normative References">
			<?rfc include="reference.RFC.2119" ?>
			<?rfc include="reference.RFC.6020" ?>
		</references>

		<references title="Informative References">
			<?rfc include="reference.I-D.ietf-supa-generic-policy-info-model" ?>
			<?rfc include="reference.I-D.ietf-supa-policy-based-management-framework" ?>
			<?rfc include="reference.I-D.ietf-supa-generic-policy-data-model" ?>	
		</references>

    </back>

</rfc>
	 
 