<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<!-- $Id: draft-khasnabish-sfc-dsi-apps-00.xml 4340 2012-12-20 17:55:58Z khasnabish $ -->

<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc strict="no" ?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc rfcedstyle="yes"?>


<rfc category="info" ipr="trust200902" docName="draft-kmw-sfc-dsi-apps-00.txt">


<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>


<front>

<title abbrev="Deep Stats Inspection (DSI) and SFC">
Deep Stats Inspection (DSI) and its Applications to Dynamic Service Function Chaining (D-SFC)
</title>


<!-- ************** AUTHORS LIST  *************** -->
<author fullname="Bhumip Khasnabish" initials="B." surname="Khasnabish">
<organization> ZTE TX, Inc.</organization>
<address>
<postal>
	<street>55 Madison Avenue, Suite 160</street>
	<!-- Reorder these if your country does things differently -->
	<city>Morristown</city>
	<region>New Jersey</region>
	<code>07960</code>
	<country>USA </country>
</postal>
<phone>+001-781-752-8003</phone>
<email>vumip1@gmail.com, bhumip.khasnabish@ztetx.com</email>
<uri>http://tinyurl.com/bhumip/</uri>
</address>
</author>

	   <author initials="W" surname="Meng" fullname="Wei Meng">
      <organization>ZTE Corporation</organization>
      <address>
	   <postal>
        <street>No.50 Software Avenue, Yuhuatai District</street>
	  <region>Nanjing</region>
	  <country>China</country>
	  </postal>
	<email>meng.wei2@zte.com.cn,vally.meng@gmail.com</email>
      </address>
    </author>

	  <author initials="C" surname="Wang" fullname="Cui Wang">
      <organization>ZTE Corporation</organization>
      <address>
	   <postal>
        <street>No.50 Software Avenue, Yuhuatai District</street>
	  <region>Nanjing</region>
	  <country>China</country>
	  </postal>
	<email>wang.cui1@zte.com.cn</email>
      </address>
    </author>

<date year="2015" />
<keyword>Internet-Draft</keyword>

<abstract>
<t>
This draft focuses on using Deep Statistics Inspection (DSI) for smart analytics in Service function chaining. 
DSI can be utilized for service chaining in multi-tenant (Data centers) environment, automated load balancing (ALB), 
and automated disaster recovery (ADR). 
</t>
</abstract>


</front>

<middle>

<section title="Introduction">

<t>
Statistics can help SFC to make a right decision on packet forwarding behavior. For example, statistics about overload 
packets on one Service Function Instance will help SFC to switch path.
</t>
<t>
DSI is a method of statistics, it can help the service function forwarder (SFF) with additional smartness for analyzing packet-stream's 
(or flow's) path/routing/processing history, forecasted transit nodes, and destination. The SFF can be 
physical or virtual or a combination of both in the chained path.
</t>

<t>
Network/Service Function Grouping (N/SFG): Random grouping of network/service functions is commonly utilized for load distribution and balancing.
</t>

<t>
Network/Service Function Chaining (N/SFC): Sequential grouping of network/service functions is commonly utilized for service chaining (ordered processing).  
</t>

<t>
Benefits:
The comprehensive deep stats knowledge help achieve load balancing dynamically and efficiently. This ultimately will result in improved (a) resources utilization, and (b) user experience and satisfaction.
</t>

<section title="Scope">
<t>
The scope of this document is inspection of deep stats and its utilization in 
service function chaining (SFC). 
</t>
<t>
Ongoing discussions on virtualization and service chaining in network can be found in the following IETF and IRTF Websites:
SFC [http://datatracker.ietf.org/wg/sfc/], 
I2RS [http://datatracker.ietf.org/wg/i2rs/], 
SPRING [http://datatracker.ietf.org/wg/spring/],and 
SDN-RG [http://irtf.org/sdnrg]. 
</t>

<t>
Traditional deep packet inspection (DPI) can help service chaining and load balancing only to a certain extent because the actions are taken only after inspecting the packet (header, trailer, payload, etc.)  
</t>

<t>
The proposed deep stats inspection (DSI) invokes the concept of both historical and predicted (based on estimation, time series analysis, etc.) information about the life-cycle of packets and flows in the network. 
</t>

<t>
The intelligence obtained from DSI and DPI can be utilized for cost-effective and efficient management of (a) the time packets/flows spend in the network and (b) physical and virtualized network resources.   
</t>

<t>
Virtual resources management in the context of Cloud and Data Center (DC) environment using unified API has been discussed in <xref target="I-D.junsheng-opsawg-virtual-resource-management" />.
</t>



</section>

<section title="Abbreviations">
<t>

<list style="symbols">
 <t>ADR:	Automated Disaster Recovery </t>
 <t>ALB:	Automated Load Balancing </t>
 <t>API:	Application Programming Interface </t>
 <t>AR:	Auto Regressive </t>
 <t>ARIMA:	Auto Regressive Integrated Moving Average </t>
 <t>ARMA:	Auto Regressive Moving Average </t>

 <t>DC:	Data Center</t>
 <t>DLB:	Dynamic Load Balancing </t>
 <t>DPI:	Deep Packet Inspection </t>
 <t>DR:	Disaster Recovery </t>
 <t>DSI:	Deep Stats Inspection </t>

 <t>I2RS:	Interface to Routing System </t>
 <t>LB:	Load Balancing </t>
 <t>MA:	Moving Average</t>

 <t>NC:	Network Coding</t>
 <t>NE:	Network Element</t>

 <t>PDP:	Policy Decision Point</t> 
 <t>PEP:	Policy Enforcement Point</t> 

 <t>SDN:	Software-Defined Network/Networking</t>
 <t>SE:	Service Element </t>
 <t>SFC:	Service Function Chaining </t>


 <t>VDC:	Virtual DC</t>
 <t>VM:	Virtual Machine</t>
 <t>VNE:	Virtual NE</t>
 <t>VSE:	Virtual SE</t>

</list>
</t>
</section>

<section title="Conventions and Definitions">
<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 [RFC2119].
</t>

<t>
The following definitions and descriptions of terms are utilized throughout this draft. When applicable, descriptions of some of the terms are repeated here from other IETF/IRTF document for convenience.

<list style="symbols">
          
<t>
APP:	This refers to Application and/or service. This could be as simple as a script or software package or a module of an executable for a specific application/ service. 
</t>

<t>
APP Interface:	This refers to an interface (e.g., RESTful Java/Web interface) over which the Apps/Services interact with a control platform or an infrastructure element or a management domain or a combination of these.
</t>

<t> 
DPI:	Deep packet inspection refers to inspecting beyond the contents of header of a packet for making policy enforcement and routing decisions.  
</t>

<t> 
SFC: Service function chaining refers to serial (based on a set of pre-specified criteria) or random chaining of a set of service functions to be executed on a stream of packets or a flow of information. 
</t>

<t> 
Multi-Tenant Service Chaining:	This is similar to SFC except that the service functions are executed over streams of packets or flows of information of multiple tenants.
</t>

<t>   
I2RS:	This refers to the interface to the routing system; an open interface for facilitating interaction of a client (in Apps/Service domain) with routing agents resident to the routing module.
</t>

<t>
VNE:	This refers to a virtualized network entity. Recently, VNE has been mentioned as virtualized network function (VNF) as well. 
</t>

<t>
VSE:	This refers to a virtualized service (e.g., a firewall) function or entity. A VSE is commonly hosted in one or more virtual machines (VMs). 
</t>

<t>
PDP: This refers to a point (an entity or a host) that stores all of the policy decision rules.  
</t>

<t>
PEP:	This refers to a point (an entity or a host) that enforces all of the policy decision rules. 
</t>

<t>
DSI:	This refers to a gathering (pre-processing) and inspecting the first, second, and third order statistics related to a stream of packets or a flow in order to better manage routing, traffic, analytics, etc.   
</t>

<t>
LB:	This refers to balancing the offered load to a host, server, or network/service function using one or more static rules. 
</t>

<t>
DLB: 	This refers to balancing the offered load to a host, server, or network/service function using one or more dynamic (evolves based on a set of criteria) rules.  
</t>

<t>
ALB:	This refers to balancing the offered load to a host, server, or network/service function using one or more automated criteria and/or rules. 
</t>

<t>
DR:	This refers to recovering from disasters by using redundant and/or standby local or remote "equivalent" resources.
</t>

<t>
ADR:	This refers to automated recovery from natural and/or man-made disasters.
</t>

</list>
</t>
</section>


</section>

 

<section title="Deep Stats Inspection (DSI)">

<t>
The major differences between DPI and DSI:
</t>
<t>
Traditional deep packet inspection (DPI) can help service chaining and load balancing only to a certain extent because the actions are taken only after inspecting the packet (header, trailer, payload, etc.)
</t>
<t>
The proposed deep stats inspection (DSI) invokes the concept of both historical and predicted (based on estimation, time series analysis, etc.) information about the life-cycle of packets and flows in the network.
</t> 
<t>
Figure 1 describes a smart (with coded intelligence) flow (or packet stream) classifier. The intelligence 
about health, security, loading, etc. conditions of SFFs, SFs are gathered and stored 
in a database and then coded in manner that can be easily utilized by the flow classifier during inspection 
of the tags/stats of the incoming flows and can be adjusted accordingly without impacting user/service experience. 
This database provides inputs directly to the flow director/classifier for dynamically adjusting the tags/stats of the incoming flows. 
</t>

      <figure anchor="fig1" title="A Smart Classifier based on Deep Stats Inspection (DSI)">
         <artwork><![CDATA[
  coded        +-----------+     +-------------------------------------+ 
intelligence-->|  Database |     |    ,---.       ,---.       ,---.    |
               +-----^-----+     |   /     \     /     \     /     \   |
                     |           |  (  SF1  |   (  SF2  )   (  SF3  )  |
                 /---v---\       |   \     /     \     /     \     /   |
                /    |    \      |    `---'       `---'       `---'    |
packet-stream->|Classifier +---->|                                     |
 or a flow      \    |    /      |    ,---.       ,---.       ,---.    |
                 \-------/       |   /     \     /     \     /     \   |
                                 |  (  SFF  )   (  SFF  )   (  SFF  )  |
                                 |   \     /     \     /     \     /   |
                                 |    `---'       `---'       `---'    |
                                 +-------------------------------------+
   ]]></artwork></figure>

   
<t>
The classifier categorizes the incoming flows based on the tags associated with the flows. 
It may be also be possible to utilize some minor statistics that may be available in the flowĄŻs header. 
The categorized flows are sent through a series of service functions (SFs) or through the network 
functions (NFs) via the SFF/NF. Note that both SF/SFF and NF can be physical or virtual or a combination 
of both in the path of the service chain. The classifier usually does not have any knowledge of the loading 
or other conditions of any of the forwarders (SFF or NFF) which may cause serious performance and service 
bottlenecks or impairments in user experience.
</t>

<t>
 if with a smart (with coded intelligence) flow (or packet stream) classifier, as mentioned before, 
the coded intelligence is derived from monitoring (health, loading, security, etc. conditions) the SFFs and NFFs.
</t>
<t>
The following is one possibility for defining the granularity of monitoring of the conditions.  
</t>
<t>
SFF (or NFF)  Health condition = {frail, modest, steady}
</t>
<t>
SFF (or NFF)  Loading condition = {low, medium, high}
</t>
<t>
SFF (or NFF)  Security condition = {at-risk, vulnerable, safe} 
</t>
<t>
The monitoring frequency can be preconfigured to a default value or dynamically adjusted based on ay set of criteria. 
</t>

<t>
A flow can be routed to an SF through an NF in addition to being routed directly from an SFF. 
The SFF can process the incoming flows in a round-robin fashion or on a first-come-first-serve basis 
or using any other intelligent incoming flow processing mechanism. The statistics tag of the flows can be 
utilized for intelligent servicing of the flows in the service function (SFs) which can be physical or 
virtual or a combination of both. 
</t>

</section> 


<section title="Management and Orchestration">
<t>
TBD
</t>
</section>

  
<section title="API to Deep Stats Storage">
<t>
The added flexibility (due to using an open API) will allow dynamic navigation of sessions/flows through a variety of network operations systems and physical/virtual infrastructure network/service elements. This will help achieve unified and seamless user experience irrespective of what the underlying network infrastructure is. 
</t>
</section>


<section title="Deep Stats Lifecycle Management">
<t>
TBD
</t>
</section>


<section title="Security Considerations">
<t>
TBD
</t>

</section>


<section title="IANA Considerations">
<t>
 This document introduces no additional considerations for IANA.
</t>
</section>


<section title="Acknowledgments">
<t>
The author(s) would like to thank many colleagues for their discussions and support.
</t>
</section>

</middle>


<back>

<references title='Normative References'>

 <?rfc include='reference.RFC.2119' ?>

 <?rfc include='reference.I-D.junsheng-opsawg-virtual-resource-management' ?>

 <?rfc include='reference.I-D.khasnabish-cloud-reference-framework' ?>

 <?rfc include='reference.I-D.karavettil-vdcs-security-framework' ?>
  
</references>

<references title='Informative References'>
  
 <?rfc include='reference.RFC.3654' ?> 
 <?rfc include='reference.RFC.3746' ?> 
 
 
</references>

</back>


</rfc>
