<?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 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 RFC5657 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5657.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 RFC5812 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5812.xml">
<!ENTITY RFC5810 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5810.xml">
<!ENTITY RFC5811 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5811.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-implementation-report-02" 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="Implementation Report for ForCES">Implementation Report for ForCES</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="Weiming Wang" initials="W." surname="Wang">
      <organization>Zhejiang Gongshang University</organization>
      <address>
        <postal>
          <street>18, Xuezheng Str., Xiasha University Town </street>
          <!-- Reorder these if your country does things differently-->
          <city>Hangzhou</city>
          <region/>
          <code>310018</code>
          <country>P.R.China</country>
        </postal>
        <phone>+86-571-28877721</phone>
        <email>wmwang@mail.zjgsu.edu.cn</email>
        <!-- uri and facsimile elements may also be added-->
      </address>
    </author>
     <author fullname="Jamal Hadi Salim" initials="J.H.S" surname="Hadi Salim">
      <organization>Mojatatu Networks</organization>
      <address>
        <postal>
          <street></street>
          <!-- Reorder these if your country does things differently-->
          <city>Ottawa, Ontario</city>
          <region/>
          <code></code>
          <country>Canada</country>
        </postal>
        <phone></phone>
        <email>hadi@mojatatu.com</email>
        <!-- uri and facsimile elements may also be added-->
      </address>
    </author>
    
    <!-- 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 -->
    <date year="2010" />

    <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>Implementation</keyword>
    <keyword>Report</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> 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).  RFC3654 has defined
      the ForCES requirements, and RFC3746 has defined the ForCES framework.</t>
      <t>This document is an implementation report of the ForCES Protocol, Model and SCTP-TML, including the report on
      interoperability testing and the current state of ForCES implementations.</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 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>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>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>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 Components - Operational parameters of the LFBs that must be
   visible to the CEs are conceptualized in the FE model as the LFB
   components.  The LFB components include, for example, flags, single
   parameter arguments, complex arguments, and tables that the CE can
   read and/or Components write via the ForCES protocol (see below).</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>

    <section title="Introduction">
   <t>This is an implementation report for the ForCES protocol, model and SCTP-TML documents and includes an interoperability report.</t>
   <t>It follows the outline suggested by <xref target="RFC5657"></xref>.</t>
   
   <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 the <xref target="RFC5810">ForCES Protocol</xref> for further
   information.</t>
			</section>
			<section title="ForCES Model">
				<t>The <xref target="RFC5812">ForCES 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. All ForCES Protocol Layer implementations MUST be portable
  across all TMLs.  Although more than one TML may be standardized
  for the ForCES Protocol, all implementations MUST implement the <xref target="RFC5811">SCTP-TML</xref>.</t>
			</section>
    </section>
<section title="Summary">
  <t>The authors attest that the ForCES Protocol, Model and SCTP-TML meet the requirements for Draft Standard.</t>
  <t>Three independent implementations, NTT Japan, University of Patras and Zhejiang Gongshang University,
  were surveyed and found to already implement all the major features. All implementors
  mentioned they will be implementing all missing features in the future.</t>
  <t>An interop test was conducted in July, 2009 for all three implementations.
  Two other organizations, Mojatatu Networks and Hangzhou Baud Information and Networks Technology Corporation,
  which independently extended two different well known
  public domain protocol analyzers, Ethereal/Wireshark and tcpdump,
  also participated in the interop for a total of five
  independent organizations implementing. The two protocol analyzers were used to
  verify validity of ForCEs protocol messages (and in some cases semantics).</t>
  <t>There were no notable difficulties in the interoperability test and almost
  all issues were code bugs that were dealt with mostly on site and tests repeated
  successfully as stated in <xref target="Interoperability_Results"></xref>.</t>
</section>

<section title="Methodology">
  <t>This report has both an implementation experience survey as well as the results of the interoperability test.</t>
  <t>The survey information was gathered after implementors answered a brief questionnaire with all ForCES Protocol, Model and SCTP-TML features. The results can be seen in <xref target="ForCES_Features"></xref></t>
  <t>The interoperability results were part of the interoperability test. Extended Ethereal and extended Tcpdump were used to verify the results. The results can be seen in <xref target="Interoperability_Report"></xref></t>
</section>

<section title="Exceptions">
<t>The core features of the ForCES Protocol, Model and SCTP-TML have
   been implemented and tested in an interop in July, 2009.
   The intention of the interop testing was to validate that all the
   main features of the 3 core documents were inter-operable amongst
   different implementations. The tested features can be seen in <xref target="Tested_Features"></xref>.
</t>
<t>
   Different organizations surveyed have implemented certain features
   but not others. This approach is driven by presence of different LFBs
   the different organizations have currently implemented. All organizations
   surveyed have indicated intention to implement all outstanding features
   in due time. The implemented features can be seen in <xref target="ForCES_Features"></xref>.
</t>
<t>
The mandated TML security requirement, IPSec, was not validated during the interop and is not discussed in this document. 
Since IPSec is well known and widely deployed not testing in presence of IPSec does not invalidate the tests done. Note that 
<xref target="TML_Security_Feature"></xref> indicates that none of the implementations
reporting included support for IPSec, but all indicated their intention to implement.</t>

<t>Although the SCTP priority ports have been changed since the interoperability test with the latest SCTP-TML draft, 
the change has no impact in the validity of the interoperability test.</t>
</section>

<section title="Detail Section">
<section title="Implementation Experience" anchor="ForCES_Features">
  <t>Three different organizations have implemented the ForCES Protocol, Model and SCTP-TML and answered a questionnaire. These are:</t>
  <t><list style="symbols">
    <t>NTT Japan.</t>
    <t>University of Patras.</t>
    <t>Zhejiang Gongshang University.</t>
  </list></t>
  <t>Also, not actual implementations, but extensions on protocol analyzers capable of understanding ForCES protocol
  messages, also are considered part of an implementation as they can offer validation of exchanged protocol messages.
  Two such extensions have been created:</t>
  <t><list style="symbols">
    <t>Extension to Ethereal/Wireshark <xref target="ethereal"/>.</t>
    <t>Extension to Tcpdump <xref target="tcpdump"/>.</t>
  </list></t>
  <t>All implementors were asked regarding the ForCES features they have implemented.
  For every item listed the respondents indicated whether they had implemented, will implement, or won't implement
  at all.</t>
  <section title="ForCES Protocol Features">
    <section title="Protocol Messages">
      <texttable title="ForCES Protocol Message">
        <ttcol align="center">Protocol Message</ttcol>
        <ttcol align="center">NTT Japan</ttcol>
        <ttcol align="center">University of Patras</ttcol>
        <ttcol align="center">Zhejiang Gongshang University</ttcol>
          <!-- Association Setup -->            
          <c>Association Setup</c>
          <c>Implemented</c>
          <c>Implemented</c>
          <c>Implemented</c>
          <!-- Association Setup Response -->
          <c>Association Setup Response</c>
          <c>Implemented</c>
          <c>Implemented</c>
          <c>Implemented</c>
          <!-- Association TearDown -->            
          <c>Association TearDown</c>
          <c>Implemented</c>
          <c>Implemented</c>
          <c>Implemented</c>
          <!-- Configuration -->            
          <c>Configuration</c>
          <c>Implemented</c>
          <c>Implemented</c>
          <c>Implemented</c>
          <!-- Configuration Response -->            
          <c>Configuration Response</c>
          <c>Implemented</c>
          <c>Implemented</c>
          <c>Implemented</c>
          <!-- Query -->            
          <c>Query</c>
          <c>Implemented</c>
          <c>Implemented</c>
          <c>Implemented</c>
          <!-- Query Response -->            
          <c>Query Response</c>
          <c>Implemented</c>
          <c>Implemented</c>
          <c>Implemented</c>
          <!-- Event Notification -->            
          <c>Event Notification</c>
          <c>Implemented</c>
          <c>Will Implement</c>
          <c>Implemented</c>
          <!-- Packet Redirect -->            
          <c>Packet Redirect</c>
          <c>Implemented</c>
          <c>Will Implement</c>
          <c>Implemented</c>
          <!-- HeartBeat -->            
          <c>HeartBeat</c>
          <c>Implemented</c>
          <c>Implemented</c>
          <c>Implemented</c>
      </texttable>
    </section>
    <section title="MainHeader Handling">
          <texttable title="MainHeader Handling">
            <ttcol align="center">Header Field</ttcol>
            <ttcol align="center">NTT Japan</ttcol>
            <ttcol align="center">University of Patras</ttcol>
            <ttcol align="center">Zhejiang Gongshang University</ttcol>
            <!-- Correlator -->            
            <c>Correlator</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Acknowledge Flag -->
            <c>Acknowledge Flag</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Priority Flag -->            
            <c>Priority Flag</c>
            <c>Will Implement</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Execution Mode Flag -->            
            <c>Execution Mode Flag</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <c>Implemented</c>
            <!-- Atomic Flag -->            
            <c>Atomic Flag</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <c>Implemented</c>
            <!-- Transaction Flag -->            
            <c>Transaction Flag</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <c>Implemented</c>
        </texttable>
    </section>      
    <section title="TLV Handling">
          <texttable title="TLVs Supported">
            <ttcol align="center">TLV</ttcol>
            <ttcol align="center">NTT Japan</ttcol>
            <ttcol align="center">University of Patras</ttcol>
            <ttcol align="center">Zhejiang Gongshang University</ttcol>
            <!-- Redirect TLV -->            
            <c>Redirect TLV</c>
            <c>Implemented</c>
            <c>Will Implement</c>
            <c>Implemented</c>
            <!-- Association Setup Result TLV -->
            <c>Association Setup Result TLV</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Association TearDown Reason TLV -->            
            <c>Association TearDown Reason TLV</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- LFBSelector TLV -->            
            <c>LFBSelector TLV</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Operation TLV -->            
            <c>Operation TLV</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- PathData TLV -->            
            <c>PathData TLV</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- KeyInfo TLV -->            
            <c>KeyInfo TLV</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <c>Implemented</c>
            <!-- FullData TLV -->            
            <c>FullData TLV</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- SparseData TLV -->            
            <c>SparseData TLV</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <c>Implemented</c>
            <!-- ILV -->            
            <c>ILV</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <c>Implemented</c>
            <!-- Metadata TLV -->            
            <c>Metadata TLV</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <c>Implemented</c>
            <!-- Result TLV -->            
            <c>Result TLV</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Redirect Data TLV -->            
            <c>Redirect Data TLV</c>
            <c>Implemented</c>
            <c>Will Implement</c>
            <c>Implemented</c>
       </texttable>
    </section>
    <section title="Operation Types Supported">
          <texttable title="Operation Type Supported">
            <ttcol align="center">Operation</ttcol>
            <ttcol align="center">NTT Japan</ttcol>
            <ttcol align="center">University of Patras</ttcol>
            <ttcol align="center">Zhejiang Gongshang University</ttcol>
            <!-- Set -->            
            <c>Set</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Set Prop-->
            <c>Set Prop</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <c>Implemented</c>
            <!-- Set Response -->            
            <c>Set Response</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Set Prop Response -->            
            <c>Set Prop Response</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <c>Implemented</c>
            <!-- Del -->            
            <c>Del</c>
            <c>Implemented</c>
            <c>Will Implement</c>
            <c>Implemented</c>
            <!-- Del Response -->            
            <c>Del Response</c>
            <c>Implemented</c>
            <c>Will Implement</c>
            <c>Implemented</c>
            <!-- Get -->            
            <c>Get</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Get Prop -->            
            <c>Get Prop</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <c>Implemented</c>
            <!-- Get Response -->            
            <c>Get Response</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Get Prop Response -->            
            <c>Get Prop Response</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <c>Implemented</c>
            <!-- Report -->            
            <c>Report</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Commit -->            
            <c>Commit</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <c>Implemented</c>
            <!-- Commit Response -->            
            <c>Commit Response</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <c>Implemented</c>
            <!-- TRComp -->            
            <c>TRComp</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <c>Implemented</c>
        </texttable>
    </section>
    <section title="ForCES Protocol Advanced Features">
          <texttable title="ForCES Protocol Advanced Features">
            <ttcol align="center">Feature</ttcol>
            <ttcol align="center">NTT Japan</ttcol>
            <ttcol align="center">University of Patras</ttcol>
            <ttcol align="center">Zhejiang Gongshang University</ttcol>
            <!-- Execution Mode -->            
            <c>Execute Mode</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <c>Implemented</c>
            <!-- Transaction -->
            <c>Transaction</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <c>Implemented</c>
            <!-- Batching -->
            <c>Batching</c>
            <c>Will Implement</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Command Pipelining -->
            <c>Command Pipelining</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <!-- Heartbeats -->
            <c>HeartBeats</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
          </texttable>
    </section>
  </section>
  <section title="ForCES Model Features">
      <section title="Basic Atomic Types Supported">
          <texttable title="Basic Atomic Types Supported">
            <ttcol align="center">Atomic Type</ttcol>
            <ttcol align="center">NTT Japan</ttcol>
            <ttcol align="center">University of Patras</ttcol>
            <ttcol align="center">Zhejiang Gongshang University</ttcol>
            <!-- char -->            
            <c>char</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Will Implement</c>
            <!-- uchar-->
            <c>uchar</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- int16 -->            
            <c>int16</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Will Implement</c>
            <!-- uint16 -->            
            <c>uint16</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Will Implement</c>
            <!-- int32 -->
            <c>int32</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- uint32 -->
            <c>uint32</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- int64 -->            
            <c>int16</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Will Implement</c>
            <!-- uint64 -->            
            <c>uint64</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Will Implement</c>
            <!-- boolean -->            
            <c>boolean</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- string[N] -->            
            <c>string[N]</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- string -->            
            <c>string</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- byte[N] -->            
            <c>byte[N]</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- octetstring[N] -->            
            <c>octetstring[N]</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Will Implement</c>
            <!-- float32 -->
            <c>float32</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Will Implement</c>
            <!-- float64 -->
            <c>float64</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Will Implement</c>
       </texttable>
      </section>
      <section title="Compound Types Supported">
          <texttable title="Compound Types Supported">
            <ttcol align="center">Compound Type</ttcol>
            <ttcol align="center">NTT Japan</ttcol>
            <ttcol align="center">University of Patras</ttcol>
            <ttcol align="center">Zhejiang Gongshang University</ttcol>
            <!-- structs -->            
            <c>structs</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- arrays-->
            <c>arrays</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
          </texttable>
      </section>
      <section title="LFBs Supported">
        <section title="FE Protocol LFB">
          <texttable title="FE Protocol LFB Datatypes">
            <ttcol align="center">Protocol DataTypes</ttcol>
            <ttcol align="center">NTT Japan</ttcol>
            <ttcol align="center">University of Patras</ttcol>
            <ttcol align="center">Zhejiang Gongshang University</ttcol>
            <!-- CEHBPolicy -->            
            <c>CEHBPolicy</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- FEHIBPolicy-->
            <c>FEHIBPolicy</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- FERestarPolicy -->            
            <c>FERestarPolicy</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- CEFailoverPolicy-->
            <c>CEFailoverPolicy</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- FEHACapab -->            
            <c>FEHACapab</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Will Implement</c>
          </texttable>
          <texttable title="FE Protocol LFB Components">
            <ttcol align="center">Protocol Components</ttcol>
            <ttcol align="center">NTT Japan</ttcol>
            <ttcol align="center">University of Patras</ttcol>
            <ttcol align="center">Zhejiang Gongshang University</ttcol>
            <!-- CurrentRunningVersion -->            
            <c>CurrentRunningVersion</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- FEID-->
            <c>FEID</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- MulticastFEIDs -->            
            <c>MulticastFEIDs</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- CEHBPolicy-->
            <c>CEHBPolicy</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- CEHDI -->            
            <c>CEHDI</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- FEHBPolicy -->            
            <c>FEHBPolicy</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- FEHI-->
            <c>FEHI</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- CEID -->            
            <c>CEID</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- BackupCEs-->
            <c>BackupCEs</c>
            <c>Implemented</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <!-- CEFailoverPolicy -->            
            <c>CEFailoverPolicy</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- CEFTI -->
            <c>CEFTI</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- FERestartPolicy -->            
            <c>FERestartPolicy</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Will Implement</c>
            <!-- LastCEID -->            
            <c>LastCEID</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Will Implement</c>
          </texttable>
          <texttable title="Capabilities Supported">
            <ttcol align="center">Capabilities</ttcol>
            <ttcol align="center">NTT Japan</ttcol>
            <ttcol align="center">University of Patras</ttcol>
            <ttcol align="center">Zhejiang Gongshang University</ttcol>
            <!-- SupportableVersions -->            
            <c>SupportableVersions</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- HACapabilities-->
            <c>HACapabilities</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Will Implement</c>
          </texttable>
          <texttable title="Events Supported">
            <ttcol align="center">Events</ttcol>
            <ttcol align="center">NTT Japan</ttcol>
            <ttcol align="center">University of Patras</ttcol>
            <ttcol align="center">Zhejiang Gongshang University</ttcol>
            <!-- PrimaryCEDown -->            
            <c>PrimaryCEDown</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
          </texttable>
        </section>
        <section title="FE Object LFB">
          <texttable title="FE Object LFB Datatypes">
            <ttcol align="center">Object DataTypes</ttcol>
            <ttcol align="center">NTT Japan</ttcol>
            <ttcol align="center">University of Patras</ttcol>
            <ttcol align="center">Zhejiang Gongshang University</ttcol>
            <!-- LFBAdjacencyLimit -->            
            <c>LFBAdjacencyLimit</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- PortGroupLimitType-->
            <c>PortGroupLimitType</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- SupportedLFBType -->            
            <c>SupportedLFBType</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- FEStateValues-->
            <c>FEStateValues</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- FEConfiguredeighborType -->            
            <c>FEConfiguredeighborType</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- FEConfiguredeighborType-->
            <c>FEConfiguredeighborType</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- LFBSelectorType -->            
            <c>LFBSelectorType</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- LFBLinkType -->            
            <c>LFBLinkType</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
          </texttable>
          <texttable title="FE Object LFB Components">
            <ttcol align="center">Object Components</ttcol>
            <ttcol align="center">NTT Japan</ttcol>
            <ttcol align="center">University of Patras</ttcol>
            <ttcol align="center">Zhejiang Gongshang University</ttcol>
            <!-- LFBTopology -->            
            <c>LFBTopology</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- LFBSelectors-->
            <c>LFBSelectors</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- FEName -->            
            <c>FEName</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- FEID-->
            <c>FEID</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- FEVendor -->            
            <c>FEVendor</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- FEModel -->            
            <c>FEModel</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- FEState-->
            <c>FEState</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- FENeighbors -->            
            <c>FENeighbors</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
          </texttable>
          <texttable title="Capabilities Supported">
            <ttcol align="center">Capabilities</ttcol>
            <ttcol align="center">NTT Japan</ttcol>
            <ttcol align="center">University of Patras</ttcol>
            <ttcol align="center">Zhejiang Gongshang University</ttcol>
            <!-- ModifiableLFBTopology -->            
            <c>ModifiableLFBTopology</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- SupportedLFBs-->
            <c>SupportedLFBs</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
          </texttable>
        </section>
      </section>
    </section>
    <section title="ForCES SCTP-TML Features">
      <section title="TML Priority Ports">
          <texttable title="Priority Ports">
            <ttcol align="center">Port</ttcol>
            <ttcol align="center">NTT Japan</ttcol>
            <ttcol align="center">University of Patras</ttcol>
            <ttcol align="center">Zhejiang Gongshang University</ttcol>
            <!-- High priority (6700) -->            
            <c>High priority (6700)</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Medium priority (6701)-->
            <c>Medium priority (6701)</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Low priority (6702)-->
            <c>Low priority (6702)</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
          </texttable>
      </section>
      <section title="Message Handling at specific priorities">
          <texttable title="Message Handling at High priority (6700) Port">
            <ttcol align="center">ForCES Message</ttcol>
            <ttcol align="center">NTT Japan</ttcol>
            <ttcol align="center">University of Patras</ttcol>
            <ttcol align="center">Zhejiang Gongshang University</ttcol>
            <!-- Association Setup -->            
            <c>Association Setup</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Association Setup Response-->
            <c>Association Setup Response</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Association Teardown-->
            <c>Association Teardown</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Config-->
            <c>Config</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Config Response-->
            <c>Config Response</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Query-->
            <c>Query</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Query Response-->
            <c>Query Response</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
          </texttable>
          <texttable title="Message Handling at Medium priority (6701) Port">
            <ttcol align="center">ForCES Message</ttcol>
            <ttcol align="center">NTT Japan</ttcol>
            <ttcol align="center">University of Patras</ttcol>
            <ttcol align="center">Zhejiang Gongshang University</ttcol>
            <!-- Event Notification -->            
            <c>Event Notification</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
          </texttable>
          <texttable title="Message Handling at Low priority (6702) Port">
            <ttcol align="center">ForCES Message</ttcol>
            <ttcol align="center">NTT Japan</ttcol>
            <ttcol align="center">University of Patras</ttcol>
            <ttcol align="center">Zhejiang Gongshang University</ttcol>
            <!-- Packet Redirect -->            
            <c>Packet Redirect</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <!-- Heartbeat -->            
            <c>Heartbeats</c>
            <c>Implemented</c>
            <c>Implemented</c>
            <c>Implemented</c>
          </texttable>
      </section>
      <section title="TML Security Feature" anchor="TML_Security_Feature">
          <texttable title="Security Feature Support">
            <ttcol align="center">Security Feature</ttcol>
            <ttcol align="center">NTT Japan</ttcol>
            <ttcol align="center">University of Patras</ttcol>
            <ttcol align="center">Zhejiang Gongshang University</ttcol>
            <!-- IPSec-->            
            <c>IPSec</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
            <c>Will Implement</c>
          </texttable>
      </section>
    </section>
  </section>
<section title="Interoperability Report" anchor="Interoperability_Report">
  <t>The interoperability test took place at the University of Patras, in the Department of Electrical and Computer Engineering.</t>
  <t>There were two options to participate in the interoperability test.</t>
  <t>1. Locally at the University of Patras premises.</t>
  <t>2. Remotely via internet.</t>
  <t>Implementations from NTT and University of Patras, were present locally at the University of Patras premises in Greece, while the implementation from Zhejiang Gongshang University, which was behind a NAT, connected remotely from China.</t>
  <t>The interoperability test, tested the basic functionality of the ForCES protocol, mainly message exchanging and handling.</t>
  <t>The following scenarios were tested.</t>
		<section title="Scenarios">
				<t>The main goal of the interoperability test was to test the basic protocol functionality, the test parameters were limited.</t>
				<t><list style="numbers">
					<t>In the Association Setup Message, all report messages were ignored.</t>
					<t>In the Association Setup Phase, the messages, FEO OperEnable Event (FE to CE), Config FEO Adminup (CE to FE) and FEO Config-Resp (FE to CE) were ignored. The CEs assumed that the FEs were enabled once the LFBSelectors had been queried.</t>
					<t>Only FullDataTLVs were used and not SparseData TLVs.</t>
					<t>There were no transaction operations.</t>
					<t>Each message had only one LFBSelector TLV, one Operation TLV and one PathDataTLV per message when these were used.</t>
				</list></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 successful CE-FE connection
      the participating CEs and FEs had to be able to be configured.</t>
      <t>In the Pre-association Phase the following configuration items were setup regarding the CEs:</t>
				<t>
					<list style="symbols">
						<t>The CE ID.</t>
						<t>The FE IDs that were connected to this CE</t>
						<t>The IP of the FEs that connected</t>
						<t>The TML priority ports.</t>
					</list>
				</t>
				<t>In the Pre-association Phase the following configuration items were setup regarding the FEs:</t>
				<t>
					<list style="symbols">
						<t>The FE ID.</t>
						<t>The CE ID that this FE were connecting to.</t>
						<t>The IP of the CE that connected to</t>
						<t>The TML priority ports.</t>
					</list>
				</t>
			</section>
			<section title="Scenario 2 - TML priority channels connection">
				<t>For the interoperability test, the SCTP was used as TML.
			The TML connection with the associating element was needed for the scenario 2 to be successful.</t>
				<t>Although <xref target="RFC5811">SCTP-TML</xref> defines 3 priority channels, with specific ports:</t>
				<t>
					<list style="symbols">
						<t>High priority - Port number: 6704</t>
						<t>Medium priority - Port number: 6705</t>
						<t>Lower priority - Port number: 6706</t>
					</list>
				</t>
				<t>At the time of the interoperability test, the sctp ports of the three priority channels were the following:</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>As specified in the exceptions section, this does not invalidate the results of the interoperability test.</t>
			</section>
			<section title="Scenario 3 - Association Setup - Association Complete">
				<t>Once the Pre-association phase had been complete in the previous 2 scenarios, CEs and FEs would be ready to communicate
		using the ForCES protocol, and enter the Association Setup stage. In this stage the FEs would attempt to join the NE. The 
		following ForCES protocol messages would be exchanged for each CE-FE pair in the specified order:</t>
				<t>
					<list style="symbols">
						<t>Association Setup Message (from FE to CE)</t>
						<t>Association Setup Response Message (from CE to FE)</t>
						<t>Query Message: FEO LFBSelectors(from CE to FE)</t>
						<t>Query Response: FEO LFBSelectors response (from FE to CE)</t>
					</list>
				</t>
			</section>
			<section title="Scenario 4 - CE query">
				<t>Once the Association Phase stage has been complete, the FEs and CEs would enter the Established stage.
		In this stage the FE will be 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 were exchanged:</t>
				<t>
					<list style="symbols">
						<t>Query Message</t>
						<t>Query Response Message</t>
					</list>
				</t>
			</section>
			<section title="Scenario 5 - 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 will send a Heartbeat message with the ACK flag set to AlwaysACK and the FE should respond.</t>
				<t>The following ForCES protocol messages were exchanged:</t>
				<t>
					<list style="symbols">
						<t>Heartbeat Message</t>
					</list>
				</t>
			</section>
			<section title="Scenario 6 - 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 visible and metered would be to change the Heartbeat configuration. This was 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) was changed.</t>
					</list>
				</t>
				<t>The following ForCES protocol messages were exchanged:</t>
				<t>
					<list style="symbols">
						<t>Config Message</t>
						<t>Config Response Message</t>
					</list>
				</t>
			</section>
			<section title="Scenario 7 - Association Teardown">
				<t>In the end, the association must be terminated. There were three scenarios by which the association was terminated:</t>
				<t>
					<list style="numbers">
						<t>Normal tear down by exchanging Association Teardown Message</t>
						<t>Irregular tear down by stopping heartbeats from a FE or a CE.</t>
						<t>Irregular tear down by externally shutting down/rebooting a FE or a CE.</t>
					</list>
				</t>
				<t>All scenarios were tested in the interoperability test.</t>
				<t>The following ForCES protocol messages were exchanged:</t>
				<t>
					<list style="symbols">
						<t>Association Teardown Message</t>
					</list>
				</t>
			</section>
    </section>
		<section title="Tested Features" anchor="Tested_Features">
      <t>The features that were tested are:</t>
      <section title="ForCES Protocol Features">
      <section title="Protocol Messages">
          <texttable title="ForCES Protocol Message">
            <ttcol align="center">Protocol Message</ttcol>
            <!-- Association Setup -->            
            <c>Association Setup</c>
            <!-- Association Setup Response -->
            <c>Association Setup Response</c>
            <!-- Association TearDown -->            
            <c>Association TearDown</c>
            <!-- Configuration -->            
            <c>Configuration</c>
            <!-- Configuration Response -->            
            <c>Configuration Response</c>
            <!-- Query -->            
            <c>Query</c>
            <!-- Query Response -->            
            <c>Query Response</c>
            <!-- HeartBeat -->            
            <c>HeartBeat</c>
        </texttable>
          <t><list style="symbols">
        <t>PASS: All implementations handled the protocol messages and all protocol analyzers captured them.</t>
          </list></t>
      </section>
      <section title="MainHeader Handling">
          <texttable title="MainHeader Handling">
            <ttcol align="center">Header Field</ttcol>
            <!-- Correlator -->            
            <c>Correlator</c>
            <!-- Acknowledge Flag -->
            <c>Acknowledge Flag</c>
            <!-- Priority Flag -->            
            <c>Priority Flag</c>
        </texttable>
          <t><list style="symbols">
        <t>PASS: All implementations handled these main header flags and all protocol analyzers captured them.</t>
          </list></t>
      </section>      
      <section title="TLV Handling">
          <texttable title="TLVs Supported">
            <ttcol align="center">TLV</ttcol>
            <!-- Association Setup Result TLV -->
            <c>Association Setup Result TLV</c>
            <!-- Association TearDown Reason TLV -->            
            <c>Association TearDown Reason TLV</c>
            <!-- LFBSelector TLV -->            
            <c>LFBSelector TLV</c>
            <!-- Operation TLV -->            
            <c>Operation TLV</c>
            <!-- PathData TLV -->            
            <c>PathData TLV</c>
            <!-- FullData TLV -->            
            <c>FullData TLV</c>
            <!-- Result TLV -->            
            <c>Result TLV</c>
       </texttable>
         <t><list style="symbols">
       <t>PASS: All implementations handled these TLVs and all protocol analyzers captured them.</t>
         </list></t>
      </section>
      <section title="Operation Types Supported">
          <texttable title="Operation Type Supported">
            <ttcol align="center">Operation</ttcol>
            <!-- Set -->            
            <c>Set</c>
            <!-- Set Response -->            
            <c>Set Response</c>
            <!-- Get -->            
            <c>Get</c>
            <!-- Get Response -->            
            <c>Get Response</c>
            <!-- Report -->            
            <c>Report</c>
        </texttable>
          <t><list style="symbols">
        <t>PASS: All implementations handled these Operations and all protocol analyzers captured them.</t>
          </list></t>
      </section>
      <section title="ForCES Protocol Advanced Features">
          <texttable title="ForCES Protocol Advanced Features">
            <ttcol align="center">Feature</ttcol>
            <!-- Batching -->
            <c>Batching</c>
            <!-- Heartbeats -->
            <c>HeartBeats</c>
          </texttable>
      <t>Although Batching was not initially designed to be tested, it was tested during the interoperability test.</t>
        <t><list style="symbols">
      <t>PASS: Two implementations handled batching and all handled Heartbeats. The protocol analyzers captured both.</t>
        </list></t>
      </section>
    </section>
    <section title="ForCES Model Features">
      <section title="Basic Atomic Types Supported">
          <texttable title="Basic Atomic Types Supported">
            <ttcol align="center">Atomic Type</ttcol>
            <!-- uchar-->
            <c>uchar</c>
            <!-- uint32 -->
            <c>uint32</c>
       </texttable>
         <t><list style="symbols">
             <t>PASS: All implementations handled these basic atomic types.</t>
               </list></t>
      </section>
      <section title="Compound Types Supported">
          <texttable title="Compound Types Supported">
            <ttcol align="center">Compound Type</ttcol>
            <!-- structs -->            
            <c>structs</c>
            <!-- arrays-->
            <c>arrays</c>
          </texttable>
            <t><list style="symbols">
          <t>PASS: All implementations handled these compound types.</t>
            </list></t>
      </section>
      <section title="LFBs Supported">
        <section title="FE Protocol LFB">
          <texttable title="FE Protocol LFB Datatypes">
            <ttcol align="center">Protocol DataTypes</ttcol>
            <!-- CEHBPolicy -->            
            <c>CEHBPolicy</c>
            <!-- FEHIBPolicy-->
            <c>FEHIBPolicy</c>
          </texttable>
            <t><list style="symbols">
          <t>PASS: All implementations handled these FE Protocol LFB Datatypes.</t>
            </list></t>
          <texttable title="FE Protocol LFB Components">
            <ttcol align="center">Protocol Components</ttcol>
            <!-- FEID-->
            <c>FEID</c>
            <!-- CEHBPolicy-->
            <c>CEHBPolicy</c>
            <!-- CEHDI -->            
            <c>CEHDI</c>
            <!-- FEHBPolicy -->            
            <c>FEHBPolicy</c>
            <!-- FEHI-->
            <c>FEHI</c>
            <!-- CEID -->            
            <c>CEID</c>
          </texttable>
            <t><list style="symbols">
            <t>PASS: All implementations handled these FE Protocol LFB Components.</t>
              </list></t>
        </section>
        <section title="FE Object LFB">
          <texttable title="FE Object LFB Datatypes">
            <ttcol align="center">Object DataTypes</ttcol>
            <!-- FEStateValues-->
            <c>FEStateValues</c>
            <!-- LFBSelectorType -->            
            <c>LFBSelectorType</c>
          </texttable>
            <t><list style="symbols">
          <t>PASS: All implementations handled these FE Object LFB Datatypes.</t>
            </list></t>
          <texttable title="FE Object LFB Components">
            <ttcol align="center">Object Components</ttcol>
            <!-- LFBSelectors-->
            <c>LFBSelectors</c>
            <!-- FEState-->
            <c>FEState</c>
          </texttable>
            <t><list style="symbols">
          <t>PASS: All implementations handled these FE Object LFB Components.</t>
            </list></t>
          </section>
      </section>
    </section>
    <section title="ForCES SCTP-TML Features">
      <section title="TML Priority Ports">
          <texttable title="Priority Ports">
            <ttcol align="center">Port</ttcol>
            <!-- High priority (6700) -->            
            <c>High priority (6700)</c>
            <!-- Medium priority (6701)-->
            <c>Medium priority (6701)</c>
            <!-- Low priority (6702)-->
            <c>Low priority (6702)</c>
          </texttable>
            <t><list style="symbols">
          <t>PASS: All implementations opened and connected to all the SCTP priority ports. The protocol analyzers captured all ports and corresponding priority.</t>
            </list></t>
          </section>
      <section title="Message Handling at specific priorities">
          <texttable title="Message Handling at High priority (6700) Port">
            <ttcol align="center">ForCES Message</ttcol>
            <!-- Association Setup -->            
            <c>Association Setup</c>
            <!-- Association Setup Response-->
            <c>Association Setup Response</c>
            <!-- Association Teardown-->
            <c>Association Teardown</c>
            <!-- Config-->
            <c>Config</c>
            <!-- Config Response-->
            <c>Config Response</c>
            <!-- Query-->
            <c>Query</c>
            <!-- Query Response-->
            <c>Query Response</c>
          </texttable>
            <t><list style="symbols">
          <t>PASS: All implementations handled these messages at this SCTP priority port. The protocol analyzers captured these messages at these priority ports.</t>
            </list></t>
          <texttable title="Message Handling at Low priority (6702) Port">
            <ttcol align="center">ForCES Message</ttcol>
            <!-- Heartbeat -->            
            <c>Heartbeats</c>
          </texttable>
            <t><list style="symbols">
          <t>PASS: All implementations handled these messages at this SCTP priority port. The protocol analyzers captured these messages at these priority ports.</t>
            </list></t>
      </section>
      </section>
      </section>
    <section title="Interoperability Results" anchor="Interoperability_Results">
      <t>All implementations were found to be interoperable with each other.</t>
      <t>All scenarios were tested successfully.</t>
      <t>The following issues were found and dealt with.</t>
      <t><list style="numbers">
      <t>Some messages were sent on the wrong priority channels.  There
        were some ambiguities on the SCTP-TML document on how to deal with such a situation. The possibilities were: an FE response on the same (wrong) channel as 	a CE query; on the correctly documented channel for the message; or to simply drop the packet. This has been corrected by mandating the message to channel mapping to be a MUST in the <xref target="RFC5811">SCTP-TML document</xref> before it was published as an RFC.</t>
        <t>At some point, a CE sent a TearDown message to the FE. The CE expected the FE to shut down the connection, and the FE waited the CE to shut down the connection and were caught in a deadlock. This was a code bug and was fixed.</t>
        <t>Sometimes, only when the CE and FE were remote to each other (one being in China and another in Greece), the association setup message was not received by the CE side and therefore an association never completed. This was not an implementation issue, rather it was a network issue. This issue is solved with the retransmission of the non delivered messages.</t>
        <t>An implementation did not take into account that the padding in TLVs MUST NOT be included in the length of the TLV. This was a code bug and was fixed.</t>
        <t>EM Flag was set to reserved by a CE and was not ignored by the FE. This was a code bug and was fixed.</t>
        <t>After the FEHBPolicy was set to 1 the FE didn't send any HeartBeats. This was a code bug and was fixed.</t>
        <t>Some FEs sent HeartBeats with the ACK flag with a value other than NoACK. The CE responded. This was a code bug and was fixed.</t>
        <t>When a cable was disconnected, all TML implementation didn't detect it.  The association was eventually dropped due to heartbeats, this was a success, but this is an implementation issue implementers should keep in mind. This is a SCTP options issue. Nothing was needed to be done.</t>
        <t>A CE crashed due to unknown LFBSelector values. This was a code bug and was fixed.</t>
        <t>With the remote connection from China, which was behind a NAT, to Greece there were a lot of ForCES packet retransmission. The problem is that packets like Heartbeats were retransmitted. This was an implementation issue regarding SCTP usage implementers should keep in mind. SCTP-PR option was needed to be used. Nothing was needed to be done.
</t>
      </list></t>
      <t>The interoperability test went so well that  an additional extended test was added to test for batching messages.  This test was also done successfully.</t>
    </section>
  </section>
</section>
<section anchor="Acknowledgements" title="Acknowledgements">
      <t>The authors like to give thanks to Professors Odysseas Koufopavlou and Spyros Denazis, and the Department of Electrical and Computer Engineering in the University of Patras who hosted the ForCES interoperability test.</t>
      <t>Also the authors would like to give thanks to Chuanhuang Li, Ming Gao, and other participants from Zhejiang Gongshang University which connected remotely.  This allowed the discovery of a series of issues that would have been uncaught otherwise. </t>
      <t>The authors would like to thank also Hideaki Iwata and Yoshinobu Morimoto for participating locally at the interoperability test and also Hiroki Date and Hidefumi Otsuka all part of NTT Japan for contributing to the interoperability test.</t>
      <t>Additionally thanks are given to Xinping Wang for her help in writing the interoperability draft and Fenggen Jia for extending the Ethereal protocol analyzer.</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>No security elements of the protocol or the <xref target="RFC5811">SCTP TML</xref> specification were tested.</t>
	  <t>The survey indicated that no security elements were implemented but all participants indicated their intention to implement </t>
      <t>For security considerations regarding the ForCES Protocol and the SCTP-TML please see <xref target="RFC5810"></xref> and <xref target="RFC5811"></xref></t>
      <t></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"?-->
      &RFC5810;
      &RFC5811;
      &RFC5812;

    </references>

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

    &RFC5657;
    &RFC3654;
    &RFC3746;
    &RFC2119;

      <!-- A reference written by by an organization not a person. -->
	<reference anchor="tcpdump" target="http://peach.ease.lsoft.com/scripts/wa.exe?A2=ind0906&amp;L=FORCES&amp;T=0&amp;F=&amp;S=&amp;P=2262">
	<front>
		<title>Tcpdump is a linux protocol analyzer. The specific tcpdump that was used is a modified tcpdump, by Jamal Hadi Salim, that can analyze and decode the ForCES protocol messages.</title>
		<author>
			<organization></organization>
		</author>
		<date></date>
	</front>
</reference>
	<reference anchor="ethereal" target="http://peach.ease.lsoft.com/scripts/wa.exe?A2=ind0906&amp;L=FORCES&amp;T=0&amp;F=&amp;S=&amp;P=1048">
	<front>
		<title>Ethereal is a protocol analyzer. The specific ethereal that was used is an updated Ethereal, by Fenggen Jia, that can analyze and decode the ForCES protocol messages.</title>
		<author>
			<organization></organization>
		</author>
		<date></date>
	</front>
</reference>

    </references>

    <!-- Change Log

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