<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc, which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC793 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.0793.xml">
<!ENTITY RFC2460 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2460.xml">
<!ENTITY RFC3986 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3986.xml">

]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt'?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), please see ttp://xml.resource.org/authoring/README.html. -->
<?rfc strict="yes"?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->

<rfc category="std" docName="draft-bao-oftest-cont-latency-00" ipr="trust200902">

<!-- category values: std, bcp, info, exp, and historic ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902, or pre5378Trust200902 you can add the attributes updates="NNNN" and obsoletes="NNNN" they will automatically be output with "(if approved)" -->


  <!-- ***** FRONT MATTER ***** -->
  <front>
  <!-- The abbreviated title is used in the page header - it is only necessary if the full title is longer than 39 characters -->

    <title abbrev="Message Processing Latency Test">    
    Message Processing Latency Test for OpenFlow Controller
    </title>

    <author fullname="Yaming Bao" initials="Y." surname="Bao">
      <organization>BII Group Holdings Ltd.</organization>
      <address>
        <postal>
          <street></street>
          <city>Beijing</city>
          <region></region>
          <code></code>
          <country>P. R. China</country>
        </postal>
        <email>ymbao@biigroup.cn</email>
      </address>
    </author>    

    <author fullname="Mike Cheng" initials="M." surname="Cheng">
      <organization>BII Group Holdings Ltd.</organization>
      <address>
        <postal>
          <street></street>
          <city>Beijing</city>
          <region></region>
          <code></code>
          <country>P. R. China</country>
        </postal>
        <email>mikecheng@biigroup.com</email>
      </address>
    </author>

    <date year="2016"/>

    <!-- Meta-data Declarations -->
    <area>Internet</area>
    <keyword>Openflow controller, Message Processing Latency</keyword>


<abstract>
<t>
This document proposes the test method and test process for controller about the message processing latency.
</t>
</abstract>


  </front>

  <!-- ***** MIDDLE MATTER ***** -->

<middle>


  <section anchor="s1" title="Introduction">

   <t>OpenFlow is an implementation of Software Defined Network. The controller represents the network operating system. It provides north bound API for application development. The controller becomes the central and key component of an OpenFlow network. The operational behavior and efficiency of the controller is a significantly influencing factor for the Software Defined Network. This document proposes the test method and test process for controller about the message processing latency.</t>

   </section>


<section anchor="s2" title="Controller Message Processing Latency">
  <section anchor="s2.1" title="Objective">

      <t>The purpose of this test is to find out the time taken by a controller to respond to different types of messages (For example, Packet_in, Echo Request) received from the switch. The test is done with single switch and then with multiple switches, to compare how it fares with minimum load and with high load.</t>
     </section>
  <section anchor="s2.2" title="Test Setup">
    <section anchor="s2.2.1" title="Topology">
      <t>S number of switches connected to a controller.</t>
    </section>

    <section anchor="s2.2.2" title="Prerequisites and Recommendations for the test">
      <t>1. The controller is directly connected (no additional IP hops) to all the switches (simulated by the test tool) to remove any error condition due to the other network activity and congestion.</t>
      <t>2. Use same switch simulator or real switches when testing with different controllers, so that switch side latencies remain a common factor for benchmarking different controllers from different vendors.</t>
      <t>3. Controller should run an application that sends packet_out messages in response to packet_in message with ARP Request header.</t>

   </section>
</section>

  <section anchor="s2.3" title="Test Configuration">
    <section anchor="s2.3.1" title="Controller Configuration">
       <t>The controller must be configured with following configuration parameters to meet the objective of the test. Other configuration parameters must be kept at default. A few example iterations are defined in this document below,but there can be multiple iterations with different combination of these parameters.</t>
       <t>Channel Type: TCP or TLS</t>
       <t>Stats Request: Controller sends periodic Stats Request message to switch. Stats Reply from the switch acts as an indicator that channels established are in good health.</t>
       <t>Echo Request/Reply:Optional parameter.</t>
      </section>

    <section anchor="s2.3.2" title="Switch Configuration">
       <t>On the test tool side, following switch parameters must be set before proceeding with the test case. Few example set of values for iteration are illustrated below, but there can be different combinations over which the test can be iterated.</t>
       <t>Channel Type:TCP or TLS</t>
       <t>Stats Request:Controller sends periodic Stats Request message to switch. Stats Reply from the switch acts as an indicator that channels established are in good health.</t>
       <t>Echo Request/Reply:Optional parameter.</t>
            
       </section>
   </section>

  <section anchor="s2.4" title="Test Steps">
     <t>1. Start the controller.</t>
     <t>2. Start packet capture on the test-tool port.</t>
     <t>3. Start only a single switch.</t>
     <t>4. Once the channel is established, send preconfigured n number of packet_in messages with ARP Request header.</t>
     <t>5. Wait 5 min and then stop capture.</t>
     <t>6. Measure the Latency</t>
     <t>7. Re-iterate the test with multiple switches, with all the switches are sending packet_in messages.</t>
     <t>8. Re-iterate step 4 to step 7 with echo request message.</t>
     </section>


 </section>


<section anchor="s3" title="Acknowledgements">

  <t>Funding for the RFC Editor function is currently provided by BII Group. </t>
</section>

</middle>


<!-- ***** BACK MATTER ***** -->

<back>

</back>
</rfc>


