<?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" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced. 
     An alternate method (rfc include) is described in the references. --><!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY RFC3552 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3552.xml">
<!ENTITY RFC5226 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml">
<!ENTITY RFC3654 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3654.xml">
<!ENTITY RFC3746 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3746.xml">
<!ENTITY I-D.narten-iana-considerations-rfc2434bis SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.narten-iana-considerations-rfc2434bis.xml">
<!ENTITY FE-MODEL SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-forces-model-16.xml">
<!ENTITY FORCES-PROTOCOL SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-forces-protocol-21.xml">
<!ENTITY FORCES-SCTP-TML SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-forces-sctptml-02.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 http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?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="no" ?>
<!-- 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="info" docName="draft-ietf-forces-interoperability-00" ipr="trust200902">
  <!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     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="ForCES Interoperability Draft">ForCES Interoperability Draft</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->

    <author fullname="Evangelos Haleplidis" initials="E.H." surname="Haleplidis">
      <organization>University of Patras</organization>
      
      <address>
        <postal>
          <street/>

          <!-- Reorder these if your country does things differently -->

          <city>Patras</city>

          <region/>

          <code/>

          <country>Greece</country>
        </postal>

        <email>ehalep@ece.upatras.gr</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <author fullname="Kentaro Ogawa" initials="K.O." surname="Ogawa">
      <organization>NTT Corporation</organization>
      
      <address>
        <postal>
          <street/>

          <!-- Reorder these if your country does things differently -->

          <city>Tokyo</city>

          <region/>

          <code/>

          <country>Japan</country>
        </postal>

        <email>ogawa.kentaro@lab.ntt.co.jp</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <author fullname="Xin-ping Wang" initials="X.W." surname="Wang">
      <organization>Huawei Technologies Co., Ltd.</organization>
      
      <address>
        <postal>
          <street/>

          <!-- Reorder these if your country does things differently -->

          <city></city>

          <region/>

          <code/>

          <country>China</country>
        </postal>

        <email>carly.wang@huawei.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>
    
    <date year="2009"/>

    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
         in the current day for you. If only the current year is specified, xml2rfc will fill 
	 in the current day and month for you. If the year is not the current one, it is 
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to 
	 specify just the year. -->

    <!-- Meta-data Declarations -->

    <area>Routing</area>

    <workgroup>Internet Engineering Task Force</workgroup>

    <!-- WG name at the upperleft corner of the doc,
         IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. -->

    <keyword>ForCES</keyword>
    <keyword>Interoperability</keyword>

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

    <abstract>
      <t>This document describes the details of the interoperability test of the Forward and Control
      Element Separation (ForCES) protocol that will take place in the University of Patras in Rio, 
      Greece, in the fourth week of July 2009. This informational draft provides necessary information, 
      for all parties who wish to participate in the interoperability test.
</t>
    </abstract>
  </front>

  <middle>
    <section title="Terminology and Conventions">
      <t/>

      <section 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>
      </section>
    </section>

    <section title="Introduction">
      <t> Forwarding and Control Element Separation (ForCES) defines an
   architectural framework and associated protocols to standardize
   information exchange between the control plane and the forwarding
   plane in a ForCES Network Element (ForCES NE).  <xref target="RFC3654"></xref> has defined
   the ForCES requirements, and <xref target="RFC3746"></xref>  has defined the ForCES
   framework.</t>
   
      <section title="ForCES Protocol">
      <t>The ForCES protocol works in a master-slave mode in which FEs are slaves and CEs
   are masters.  The protocol includes commands for transport of Logical Function Block (LFB) configuration information, association setup,
   status, and event notifications, etc. The reader is encouraged to read <xref target="I-D.ietf-forces-protocol">FE-protocol</xref> for further
   information.</t>
      </section>

      <section title="ForCES Model">
      <t>The <xref target="I-D.ietf-forces-model">FE-MODEL</xref> presents a formal way to define FE
   Logical Function Blocks (LFBs) using XML.  LFB configuration
   components, capabilities, and associated events are defined when the
   LFB is formally created.  The LFBs within the FE are accordingly
   controlled in a standardized way by the ForCES protocol.</t>
      </section>

      <section title="Transport mapping layer">
      <t>The TML transports the PL messages.  The TML is where the issues of
   how to achieve transport level reliability, congestion control,
   multicast, ordering, etc. are handled.  It is expected that more than
   one TML will be standardized.  The various possible TMLs could vary
   their implementations based on the capabilities of underlying media
   and transport.  However, since each TML is standardized,
   interoperability is guaranteed as long as both endpoints support the
   same TML.  All ForCES Protocol Layer implementations MUST be portable
  across all TMLs.  Although more than one TML may be standardized
  for the ForCES Protocol, for the purposes of the interoperability test,
  the mandated MUST IMPLEMENT SCTP TML <xref target="RFC3654"></xref>
   which will be used.</t>
      </section>
    </section>

  <section title="Definitions">
	<t> This document follows the terminology defined by the ForCES
   Requirements in <xref target="RFC3654"></xref> and by the ForCES framework in <xref target="RFC3746"></xref>.
   The definitions below are repeated below for clarity.</t>
  
      <t><list style="hanging">
		  <t>Control Element (CE) - A logical entity that implements the ForCES
   protocol and uses it to instruct one or more FEs on how to process
   packets.  CEs handle functionality such as the execution of control
   and signaling protocols.</t>
   
		   <t>CE Manager (CEM) - A logical entity responsible for generic CE
   management tasks.  It is particularly used during the pre-association
   phase to determine with which FE(s) a CE should communicate.  This
   process is called FE discovery and may involve the CE manager
   learning the capabilities of available FEs.</t>
   
   <t>Forwarding Element (FE) - A logical entity that implements the ForCES
   protocol.  FEs use the underlying hardware to provide per-packet
   processing and handling as directed/controlled by one or more CEs via
   the ForCES protocol.</t>

<t>FE Manager (FEM) - A logical entity responsible for generic FE
   management tasks.  It is used during pre-association phase to
   determine with which CE(s) an FE should communicate.  This process is
   called CE discovery and may involve the FE manager learning the
   capabilities of available CEs.  An FE manager may use anything from a
   static configuration to a pre-association phase protocol (see below)
   to determine which CE(s) to use.  Being a logical entity, an FE
   manager might be physically combined with any of the other logical
   entities such as FEs.</t>
   
   <t>ForCES Network Element (NE) - An entity composed of one or more CEs
   and one or more FEs.  To entities outside an NE, the NE represents a
   single point of management.  Similarly, an NE usually hides its
   internal organization from external entities.</t>
   
   <t>LFB (Logical Function Block) - The basic building block that is
   operated on by the ForCES protocol.  The LFB is a well defined,
   logically separable functional block that resides in an FE and is
   controlled by the CE via ForCES protocol.  The LFB may reside at the
   FE's datapath and process packets or may be purely an FE control or
   configuration entity that is operated on by the CE.  Note that the
   LFB is a functionally accurate abstraction of the FE's processing
   capabilities, but not a hardware-accurate representation of the FE
   implementation.</t>
   
   <t>FE Topology - A representation of how the multiple FEs within a
   single NE are interconnected.  Sometimes this is called inter-FE
   topology, to be distinguished from intra-FE topology (i.e., LFB
   topology).</t>
   
   <t>LFB Class and LFB Instance - LFBs are categorized by LFB Classes.  An
   LFB Instance represents an LFB Class (or Type) existence.  There may
   be multiple instances of the same LFB Class (or Type) in an FE.  An
   LFB Class is represented by an LFB Class ID, and an LFB Instance is
   represented by an LFB Instance ID.  As a result, an LFB Class ID
   associated with an LFB Instance ID uniquely specifies an LFB
   existence.</t>
   
   <t>LFB Metadata - Metadata is used to communicate per-packet state from
   one LFB to another, but is not sent across the network.  The FE model
   defines how such metadata is identified, produced and consumed by the
   LFBs.  It defines the functionality but not how metadata is encoded
   within an implementation.</t>
   
   <t>LFB Attribute - Operational parameters of the LFBs that must be
   visible to the CEs are conceptualized in the FE model as the LFB
   attributes.  The LFB attributes include, for example, flags, single
   parameter arguments, complex arguments, and tables that the CE can
   read and/or write via the ForCES protocol (see below).</t>

<t>LFB Topology - Representation of how the LFB instances are logically
   interconnected and placed along the datapath within one FE. Sometimes
    it is also called intra-FE topology, to be distinguished from inter-FE topology.</t>   
    
    <t>Pre-association Phase - The period of time during which an FE Manager
   and a CE Manager are determining which FE(s) and CE(s) should be part
   of the same network element.</t>

   <t>Post-association Phase - The period of time during which an FE knows
   which CE is to control it and vice versa.  This includes the time
   during which the CE and FE are establishing communication with one
   another.</t>
   
   <t>ForCES Protocol - While there may be multiple protocols used within
   the overall ForCES architecture, the term "ForCES protocol" and
   "protocol" refer to the Fp reference points in the ForCES Framework
   in [RFC3746].  This protocol does not apply to CE-to-CE
   communication, FE-to-FE communication, or to communication between FE
   and CE managers.  Basically, the ForCES protocol works in a master-
   slave mode in which FEs are slaves and CEs are masters.  This
   document defines the specifications for this ForCES protocol.</t>

   <t>ForCES Protocol Transport Mapping Layer (ForCES TML) - A layer in
   ForCES protocol architecture that uses the capabilities of existing
   transport protocols to specifically address protocol message
   transportation issues, such as how the protocol messages are mapped
   to different transport media (like TCP, IP, ATM, Ethernet, etc), and
   how to achieve and implement reliability, multicast, ordering, etc.
   The ForCES TML specifications are detailed in separate ForCES
   documents, one for each TML.</t>
   
		</list></t>
  </section>

    <section title="Testbed architecture">
      <t>Most FEs and CEs should be located locally at the University of Patras premises. But if some parties would like to 
      participate but cannot attend the interoperability test locally a connection over the internet MAY be created.
      </t>
      
      <t>The actual test will take place between FEs and CEs of different implementors with different permutations. </t>

		<section title="Local configuration">
		<t>Hardware/Software (CEs and FEs) that will be located within the University of Patras premises, will be connected together
		 using switches and hubs. For each permutation there would be a different subnet ranging starting from 192.168.1.xxx to 192.168.255.xxx to distinguish them.</t>
		 
		 <t>For each subnet there will be a machine with IP 192.168.xxx.2 which will act as a network monitor using a network analyzer that should be able
		 to show the packets that are traversing the network.The IPs of CEs and FEs will range from 192.168.xxx.3 to 192.168.xxx.254</t>
		
		<t>This will help minimize packet interference with other machines and make the testing and the validation easier</t>		
		</section>

		<section title="Distributed configuration">
		<t>For parties that cannot participate locally there are two current propositions:</t>		
		<t><list style="numbers">
			<t>A SCTP over IPsec (VPN) case, where CE and FE are part of a VPN.</t>
			<t>SCTP over IP with a firewall that will allow only the CEs and FEs IPs.</t>
		</list></t>
		<t>A number of public IPs will be provided by the University of Patras will be provided for such a case.</t>
		</section>
    </section>
    
   <section title="Scenarios">
     <t>All protocol messages of each scenario will be monitored using a protocol network analyzer to test validity.</t>
      
		<section title="Scenario 1 - Pre-association Setup">
		
		<t>While the Pre-association setup is not in the ForCES current scope it is an
      essential step before CEs and FEs communicate. As the first part in a succesfull CE-FE connection
      the participating CEs and FEs should be able to be configured.

      In the Pre-association Phase the following configuration items MUST be setup regarding the CEs:</t>
      
      <t><list style="symbols">
        
        <t>Which FE IDs should they be connected</t>
        
        <t>The IP of the corresponsing FEs</t>
        
      </list></t>
      
      <t>In the Pre-association Phase the following configuration items MUST be setup regarding the FEs:</t>
       
      <t><list style="symbols">
        
        <t>Which CE IDs should they be connected</t>
        
        <t>The IP of the corresponsing CEs</t>
        
      </list></t>

		<t>Once each element is configured, Scenario 1 is successfull.</t>
		</section>

		<section title="Scenario 2 - TML connection">
		<t>For the current interoperability test, the SCTP will be used as TML.
			The TML connection with the associating element is needed for the scenario 2 to be successfull.</t>		
		</section>

		<section title="Scenario 3 - TML priority channel connection">
		<t>The <xref target="I-D.ietf-forces-sctptml">SCTP-TML draft</xref> defines 3 priority channels, with specific ports:</t>		
		
		<t><list style="symbols">
			<t>High priority - Port number: 6700</t>
			<t>Medium priority - Port number: 6701</t>
			<t>Lower priority - Port number: 6702</t>
		</list></t>
		
		<t>Once these channels have been established with each associated element, will the Scenario 3 be successfull.</t>
		</section>

		<section title="Scenario 4 - Association Setup - Association Complete">
		<t>Once the Pre-association phase has been complete in the previous 3 scenarios, CEs and FEs are ready to communicate
		using the ForCES protocol, and enter the Association Setup stage. In this stage the FEs attempts to join the NE. The 
		following ForCES protocol messages will be exchanged for each CE-FE pair:</t>		
		<t><list style="symbols">
			<t>Association Setup Message (from FE to CE)</t>
			<t>Association Setup Response Message (from CE to FE)</t>
		</list></t>
		
		<t>Once the associations has been initialized scenario 4 will have been successfull.</t>
		</section>

		<section title="Scenario 5 - CE query">
		<t>Once the Association Phase stage has been complete, the FEs and CEs will enter the Established stage.
		In this stage the FE is continuously updated or queried. The CE should query the FE a specific value from the FE Object LFB and from the FE Protocol LFB.
		An example from the FE Protocol LFB is the HeartBeat Timer (FEHI) and from the FE Object LFB is the State of the LFB (FEState)</t>		
		<t>The following ForCES protocol messages will be exchanged:</t>		
		<t><list style="symbols">
			<t>Query Message</t>
			<t>Query Response Message</t>
		</list></t>
		</section>

		<section title="Scenario 6 - Heartbeat monitoring">
		<t>The Heartbeat (HB) Message is used for one ForCES element (FE or CE)
	   to asynchronously notify one or more other ForCES elements in the same ForCES NE on its liveness.
	  The default configuration of the Heartbeat Policy of the FE is set to 0 which means, that the FE should not generate any Heartbeat messages.
	   the CE is responsible for checking FE liveness by setting the PL header ACK flag of the message it sends to AlwaysACK.
	   In this Scenario the CE should send a Heartbeat message with the ACK flag set to AlwaysACK and the FE should respond.</t>
	   <t>The following ForCES protocol messages will be exchanged:</t>		
		<t><list style="symbols">
			<t>Heartbeat Message</t>
		</list></t>
		</section>

		<section title="Scenario 7 - Simple Config Command">
		<t>A config message is sent by the CE to the FE to configure LFB components in the FE. A simple config command easily visilble and metered would be to change the Heartbeat configuration. This will be done in two steps:</t>		
		<t><list style="numbers">
			<t>Change the FE Heartbeat Policy (FEHBPolicy) to value 1, to force the FE to send heartbeats.</t>
			<t>After some heartbeats from the FE, the FE Heartbeat Interval (FEHI) will be changed.</t>
		</list></t>
		<t>The following ForCES protocol messages will be exchanged:</t>		
		<t><list style="symbols">
			<t>Config Message</t>
			<t>Config Response Message</t>
		</list></t>
		</section>

		<section title="Scenario 8 - Association Teardown">
		<t>In the end, the association must be terminated. There are two scenarios by which the association maybe terminated:</t>		
		<t><list style="numbers">
			<t>By stopping heartbeats from a FE or a CE.</t>
			<t>By externally shutting down/rebooting a FE or a CE.</t>
		</list></t>
		<t>Both scenarios may be tested in the interoperability test.</t>
		<t>The following ForCES protocol messages will be exchanged:</t>		
		<t><list style="symbols">
			<t>Association Teardown Message</t>
		</list></t>
		</section>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>TBA</t>
    </section>

    <!-- Possibly a 'Contributors' section ... -->

    <section anchor="IANA" title="IANA Considerations">
      <t>This memo includes no request to IANA.</t>

    </section>

    <section anchor="Security" title="Security Considerations">
      <t>We should consider security issues if we have connections when there are associations between CEs and FEs over the internet. Perhaps SCTP over IPsec may be used.</t>
      
      <t>TBA.</t>
    </section>
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
     1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
     2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
        (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

     Both are cited textually in the same manner: by using xref elements.
     If you use the PI option, xml2rfc will, by default, try to find included files in the same
     directory as the including file. You can also define the XML_LIBRARY environment variable
     with a value containing a set of directories to search.  These can be either in the local
     filing system or remote ones accessed by http (http://domain/dir/... ).-->

    <references title="Normative References">
      <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
      &FE-MODEL;
      
      &FORCES-PROTOCOL;
      
      &FORCES-SCTP-TML;

    </references>

    <references title="Informative References">
      <!-- Here we use entities that we defined at the beginning. -->

	  &RFC3654;
	  
	  &RFC3746;

      &RFC2629;

      &RFC3552;
      
      &RFC5226;

      &RFC2119;

      <!-- A reference written by by an organization not a person. -->

    </references>

    <!-- Change Log

v00 2009-02-17  EH   Initial version
  -->
  </back>
</rfc>
