<?xml version="1.0" encoding="US-ASCII"?>
<!--used xml2rfc v1 -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

	<!ENTITY RFC1812 SYSTEM "reference.RFC.1812.xml">
	<!ENTITY RFC2119 SYSTEM "reference.RFC.2119.xml">
	<!ENTITY RFC2629 SYSTEM "reference.RFC.2629.xml">
	<!ENTITY RFC3552 SYSTEM "reference.RFC.3552.xml">
	<!ENTITY RFC5226 SYSTEM "reference.RFC.5226.xml">
	<!ENTITY RFC3654 SYSTEM "reference.RFC.3654.xml">
	<!ENTITY RFC3746 SYSTEM "reference.RFC.3746.xml">
	<!ENTITY RFC5810 SYSTEM "reference.RFC.5810.xml">
	<!ENTITY RFC5811 SYSTEM "reference.RFC.5811.xml">
	<!ENTITY RFC5812 SYSTEM "reference.RFC.5812.xml">
	<!ENTITY RFC5813 SYSTEM "reference.RFC.5813.xml">
	<!ENTITY RFC6053 SYSTEM "reference.RFC.6053.xml">		
	<!ENTITY RFC2404 SYSTEM "reference.RFC.2404.xml">		
	<!ENTITY RFC6956 SYSTEM "reference.RFC.6956.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc rfcedstyle="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="3"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc number="6984" category="info" consensus="yes" submissionType="IETF" ipr="trust200902" updates="6053">

	<front>
		<title abbrev="ForCES Interop Report">Interoperability Report for&nbsp;Forwarding&nbsp;and&nbsp;Control&nbsp;Element&nbsp;Separation&nbsp;(ForCES)</title>
		<author fullname="Weiming Wang" initials="W" surname="Wang">
			<organization>Zhejiang Gongshang University</organization>
			<address>
				<postal>
					<street>18 Xuezheng Str., Xiasha University Town </street>
					<city>Hangzhou</city>

					<code>310018</code>
					<country>P.R. China</country>
				</postal>
				<phone>+86-571-28877721</phone>
				<email>wmwang@zjsu.edu.cn</email>
			</address>
		</author>
		<author fullname="Kentaro Ogawa" initials="K" surname="Ogawa">
			<organization>NTT Corporation</organization>
			<address>
				<postal>
					<street/>
					<city>Tokyo</city>

					<code/>
					<country>Japan</country>
				</postal>
				<email>ogawa.kentaro@lab.ntt.co.jp</email>
			</address>
		</author>
    <author fullname="Evangelos Haleplidis" initials="E.H." surname="Haleplidis">
      <organization>University of Patras</organization>
      <address>
        <postal>
          <street>Department of Electrical &amp; Computer Engineering</street>
          <city>Patras</city>

          <code>26500</code>
          <country>Greece</country>
        </postal>
        <email>ehalep@ece.upatras.gr</email>
      </address>
    </author>
		<author fullname="Ming Gao" initials="M" surname="Gao">
			<organization>Hangzhou BAUD Networks </organization>
			<address>
				<postal>
					<street>408 Wen-San Road </street>
					<city>Hangzhou</city>

					<code>310012</code>
					<country>P.R. China</country>
				</postal>			
				<email>gaoming@mail.zjgsu.edu.cn</email>
			</address>
		</author>
		<author fullname="Jamal Hadi Salim" initials="J" surname="Hadi Salim">
			<organization>Mojatatu Networks</organization>
			<address>
				<postal>
					<street></street>
					<city>Ottawa</city>
					<country>Canada</country>
				</postal>
				<email>hadi@mojatatu.com</email>
			</address>
		</author>
		<date month="July" year="2013"/>
		<area>Routing</area>
		<workgroup>Internet Engineering Task Force</workgroup>

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

		<abstract>
			<t>This document captures the results of the second Forwarding and Control Element Separation (ForCES) interoperability test that took place on February 24-25, 2011, in the Internet Technology Lab (ITL) at Zhejiang Gongshang University, China. The results of the first ForCES interoperability test were reported in RFC 6053, and this document updates RFC 6053 by providing further interoperability results.</t>
		</abstract>
	</front>
	<middle>		

 <section title="Introduction">
	 
   <t>This document captures the results of the second interoperability test of
   the Forwarding and Control Element Separation (ForCES) that took
   place on February 24-25, 2011, in the Internet Technology Lab (ITL) at
   Zhejiang Gongshang University, China.  The test involved protocol
   elements described in several documents, namely: 

<?rfc text-list-symbols="-"?>

  <list style="symbols">
	<t>ForCES Protocol <xref target="RFC5810"/></t>
	<t>ForCES Forwarding Element (FE) Model <xref target="RFC5812"/></t>
	<t>ForCES Transport Mapping Layer (TML) <xref target="RFC5811"/></t>
  </list>
		</t>	
   
   <t>The test also involved protocol elements described in the then-current versions of two Internet-Drafts.  Although these documents
   have subsequently been revised and advanced, it is important to 
   understand which versions of the work were used during this test. The then-current Internet-Drafts are:

  <list style="symbols">	
 <t>"ForCES Logical Function Block (LFB) Library" (December 2010) <xref target="LFB-LIB"/></t>
 <t>"ForCES Intra-NE High Availability" (October 2010) <xref target="CEHA"/></t>
</list>
		</t>	

<t>Note: The ForCES Logical Function Block (LFB) Library document 
was published as <xref target="RFC6956"/>.</t>
  
   <t>Three independent ForCES implementations participated in the test.</t>
	 	 
<t>
Scenarios of ForCES LFB Operation, TML with IPsec, Control Element High Availability (CEHA), 
and Packet Forwarding were constructed. Series of testing items for every 
scenario were carried out and interoperability results were achieved. 
The popular packet analyzers Ethereal/Wireshark <xref target="Ethereal"/> and Tcpdump <xref target="Tcpdump"/> were used to verify the wire results. 
</t>   
<t>   
This document is an update to <xref target="RFC6053"/>, which captured the results of the first ForCES interoperability test. The first test on ForCES was held in July 2008 at the 
University of Patras, Greece. That test focused on validating the basic 
semantics of the ForCES protocol and ForCES Forwarding Element (FE) model.
<!-- Not important, but you should probably use proper xref here.
Wang: fixed almost all references.                                              
 -->
<!-- Since this document is going to be RFC6053-bis, should we be repeating     
the text in 6053?                                                               
-->
</t>   
<section title="ForCES Protocol">
 <t>The ForCES protocol works in a master-slave mode in which FEs are
   slaves and Control Elements (CEs) are masters.  The protocol includes commands for
   transport of Logical Function Block (LFB) configuration information,
   association setup, status, event notifications, etc.  The reader
   is encouraged to read the ForCES protocol specification <xref target="RFC5810"/>  
   for further information.</t>
  
 </section>
	 <section title="ForCES FE Model">
	 <t>The ForCES FE model <xref target="RFC5812"/> presents a formal way to define
   FE 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 ForCES Transport Mapping Layer (TML) transports the ForCES protocol layer 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.  RFC 5811 specifies a TML that
is based on the Stream Control
   Transmission Protocol (SCTP) and is a mandated TML for ForCES. See RFC 5811 for more details.</t>
	 </section>	
			<section title="Definitions">
			<t>This document follows the terminology defined by ForCES-related documents, including <xref target="RFC3654"/>, <xref target="RFC3746"/>, <xref target="RFC5810"/>, <xref target="RFC5811"/>, <xref target="RFC5812"/>, <xref target="RFC5813"/>, etc.</t> 
			</section> 
  </section>
 <section title="Overview">
 <section title="Date, Location, and Participants">
 	<t>The second ForCES interoperability test meeting was held by the IETF ForCES Working Group on February 24-25, 2011, and was chaired by Jamal Hadi Salim.
Three independent ForCES implementations participated in the test:
	</t>

<?rfc text-list-symbols="o*"?>

	 <t>
	 <list style="symbols">
 	<t>Zhejiang Gongshang University/Hangzhou BAUD Corporation of Information and Networks Technology (Hangzhou BAUD Networks), China. This implementation is referred to as "ZJSU" or "Z"  in this document for the sake of brevity. </t>
 	<t>NTT Corporation, Japan. This implementation is referred to as "NTT" or "N" in this document for the sake of brevity. </t>
 	<t>The University of Patras, Greece. This implementation is referred to as "UoP" or "P"  in this document for the sake of brevity. </t>
 	</list>
 	</t> 	 
 	<t> Two other organizations, Mojatatu Networks and
   Hangzhou BAUD Networks Corporation, which
   independently extended two different well-known public domain
   protocol analyzers, Ethereal/Wireshark <xref target="Ethereal" /> and
Tcpdump <xref target="Tcpdump" />, also participated in the interoperability
test. During the test, the two protocol analyzers were used to verify the
validity (and in some cases, the semantics) of ForCES protocol messages. </t>

<t>Some issues related to interoperability 
among implementations were discovered. Most of the issues were solved on 
site during the test. The most contentious issue found was on the format 
of encapsulation for the protocol TLVs (refer to <xref target="On-Data-Encapsulation-Format"/>). </t>

<t>Some errata related to the ForCES document were found by the interoperability 
test. The errata found in related RFCs have also been reported.</t>

<!--
What errata? -Is this also discussed in section 6.1?
Wang: we may refer to errata to recall something.
-->
<t>At times, interoperability testing was exercised between two instead of 
all three representative implementations because the third one lacked a 
specific feature; however, in ensuing discussions, all 
implementers mentioned they would be implementing any missing features 
in the future.</t>

 </section>
 <section title="Testbed Configuration">
 	<section title="Participants' Access">
 	<t> NTT and ZJSU were physically present for the testing at the Internet 
        Technology Lab (ITL) at Zhejiang Gongshang University in China. The
implementation team from the University
 	 of Patras joined remotely from Greece.  The
        chair, Jamal Hadi Salim, joined remotely 
   from Canada by using TeamViewer as the monitoring tool <xref
target="TeamViewer" />. The approach was as
   shown in <xref target="Figure-1"/>. In the figure, FE/CE refers to the FE or CE that the implementer may act as alternatively.
   	</t>
   	<figure anchor="Figure-1" align="left" title="Access for Participants ">
		<artwork><![CDATA[
 
     +---------+     +----+                    +------------+
     |  FE/CE  |     |    |                +---| Monitoring |
     |  ZJSU   |-----|    |    /\/\/\/\/\  |   |(TeamViewer)|  
     +---------+     |    |    \Internet/  |   |  Mojatatu  |
                     |LAN |----/        \--|   +------------+
     +---------+     |    |    \/\/\/\/\/  |   +------------+
     |  FE/CE  |-----|    |                |   |    FE/CE   |
     |   NTT   |     |    |                +---|     UoP    |
     +---------+     +----+                    +------------+
     ]]></artwork>
	</figure>
	<t>As specified in <xref target="RFC5811"/>, all CEs and FEs
implemented IPsec in the TML.
</t>

<t>On the Internet boundary, gateways used must allow for IPsec, the SCTP protocol, 
   and SCTP ports as defined in the ForCES SCTP-based TML document <xref target="RFC5811"/>.
   	</t>		
 	</section>
 	<section title="Testbed Configuration">
 		<t>The CEs and FEs from ZJSU's and NTT's implementations were physically located within the ITL Lab at Zhejiang Gongshang University and connected 
   together using Ethernet switches. The configuration can be seen in <xref target="Figure-2"/>. 
In the figure, SmartBits <xref target="SmartBits"/> is a third-party routing protocol testing machine that acts 
as a router running Open Shortest Path First (OSPF) and RIP, and exchanges routing protocol messages with ForCES routers 
in the network. Connection to the Internet was via an Asymmetric Digital Subscriber Line (ADSL) channel.
</t>
<figure anchor="Figure-2" align="left" title="Testbed Configuration Located in the ITL Lab, China">
<artwork><![CDATA[
                           /\/\/\/\/\
                           \Internet/
                           /        \
                           \/\/\/\/\/ 
                               |	
                               |(ADSL)
                               |
+-------------------------------------------------------------------+
|                      LAN  (10.20.0.0/24)                          |
+-------------------------------------------------------------------+
   |        |        |               |               |         |
   |        |        |               |               |         |
   |.222    |.230    |.221           |.179           |.231     |.220
+-----+  +-----+  +-----+         +-----+         +-----+ +---------+
| CE  |  | CE  |  |     |         |     |         |     | | Protocol|
|ZJSU |  | NTT |  | FE1 |.1     .2| FE  |.1     .2| FE2 | | Analyzer|
+-----+  +-----+  |ZJSU |---------| NTT |---------|ZJSU | +---------+
        +---------|     |192.169. |     | 192.168.|     |------+
        |      .2 +-----+ 20.0.24 +-----+  30.0/24+-----+ .2   |
        |         .12|                               |.12      |
        |            |                               |         |
  192.168.50.0/24    |                               |192.168.60.0/24
        |       192.168.10.0/24              192.168.40.0/24   |
     .1 |            |.11                            |.11      |.1
   +--------+     +--------------------------------------+ +--------+
   |Terminal|     |               SmartBits              | |Terminal|
   +--------+     +--------------------------------------+ +--------+
     ]]></artwork>
		</figure>
 		<t>The CE and FE from the UoP implementation were located within the
   University of Patras, Greece, and were connected together using LAN, as 
   shown in <xref target="Figure-3"/>. Connection to the Internet was via a VPN channel.
   		</t>
   		
   		<figure anchor="Figure-3" align="left" title="Testbed Configuration Located&nbsp;in&nbsp;the&nbsp;University&nbsp;of&nbsp;Patras,&nbsp;Greece">
		<artwork><![CDATA[
                            /\/\/\/\/\
                            \Internet/
                            /        \
                            \/\/\/\/\/ 
                                    |   
                                |(VPN)
                                |
             +------------------------------------+
             |                LAN                 |
             +------------------------------------+
                  |           |              |
                  |           |              |
              +------+    +--------+     +------+
              |  FE  |    |Protocol|     |  CE  |
              | UoP  |    |Analyzer|     |  UoP |
              +------+    +--------+     +------+
     ]]></artwork>
		</figure>
<t>The testbeds above were then able to satisfy the requirements of all interoperability test scenarios in this document.
   		</t>   	
   	</section>
 </section>
</section>

<section title="Scenarios">
	<section title="Scenario 1 - LFB Operation">
		<t>This scenario was designed to test the interoperability of LFB operations among the participants. The connection diagram for the participants is shown in <xref target="Figure-4"/>.</t>
		
		<figure anchor="Figure-4" align="left" title="Scenario for LFB Operation">
                <artwork><![CDATA[
 +------+    +------+    +------+    +------+    +------+    +------+
 |  CE  |    |  CE  |    |  CE  |    |  CE  |    |  CE  |    |  CE  |
 | ZJSU |    | NTT  |    | ZJSU |    |  UoP |    |  NTT |    |  UoP |
 +------+    +------+    +------+    +------+    +------+    +------+
    |           |           |           |           |           |
    |           |           |           |           |           |
 +------+    +------+    +------+    +------+    +------+    +------+
 |  FE  |    |  FE  |    |  FE  |    |  FE  |    |  FE  |    |  FE  |
 | NTT  |    | ZJSU |    | UoP  |    | ZJSU |    |  UoP |    |  NTT |
 +------+    +------+    +------+    +------+    +------+    +------+
     ]]></artwork>
		</figure>
	 
	 			<t>In order to make interoperability more credible, the three 
   implementers were required to carry out the test acting as a CE or FE alternatively. As a result, every LFB operation was combined with six scenarios, as shown by <xref target="Figure-4"/>. 
   			</t>
	<t>The test scenario was designed with the following purposes.</t>
			<t>Firstly, the scenario was designed to
   verify all kinds of protocol messages with their complex data formats, which
were defined in  <xref target="RFC5810"/>. 

Specifically, we tried to verify the data format of a PATH-DATA-TLV with nested PATH-DATA-TLVs, and the operation (SET, GET, and DEL) of an array or an array with a nested array.
			</t>
			<t>Secondly, the scenario was designed to verify the definition of ForCES 
   LFB Library <xref target="LFB-LIB" />, which defined a base set of ForCES LFB classes for typical router functions. Successful tests under this scenario would help the validity of the LFB definitions. 
			</t>
		</section>
		
	<section title="Scenario 2 - TML with IPsec">
<t>This scenario was designed to implement a TML with IPsec, which was the
requirement defined by RFC 5811.
TML with IPsec was not implemented and tested in the first ForCES
interoperability test, as reported in RFC 6053. For this reason, in this interoperability test, we specifically designed the test scenario to 
verify the TML over IPsec channel.</t>

<t>In this scenario, tests on LFB operations for Scenario 1 were repeated with the difference 
that TML was secured via IPsec. This setup scenario allowed us to verify whether all interactions between the CE and FE could be made correctly under an IPsec TML environment.
    			</t>	
    				
	<t>The connection diagram for this scenario is shown in <xref target="Figure-5"/>. Because an unfortunate problem with the test system in the UoP prevented the deployment of IPsec over TML, this test only took place between the test systems in ZJSU and NTT.</t>
<!--
Can you specify what the difficulties are?
Wang: changed difficulty to deficiency.
stopped following Jamal's comments here. May start again in next 04 update.
-->
			<figure anchor="Figure-5" align="left" 
			title="Scenario for LFB Operation with TML over IPsec">
			<artwork><![CDATA[
              +------+                 +------+   
              |  CE  |                 |  CE  |  
              | ZJSU |                 |  NTT | 
              +------+                 +------+ 
                 |                        |     
                 |TML over IPsec          |TML over IPsec      
              +------+                 +------+ 
              |  FE  |                 |  FE  | 
              | NTT  |                 | ZJSU | 
              +------+                 +------+  
    			 ]]></artwork>
			</figure>
			
<t>In this scenario, ForCES TML was run over the IPsec channel. Implementers joined in this 
interoperability test using the same third-party software 'Racoon' <xref target="Racoon" /> to establish
the IPsec channel. </t>

<t>The Racoon in NetBSD is an Internet Key Exchange (IKE) daemon that performs
the key exchange with the peers. Both IKEv1 and IKEv2 are supported by Racoon in
Linux 2.6, and IKEv2 was adopted in the interop test. The Security
Association Database (SAD) and Security Policy Database (SPD) were necessary
for the test, setups of which were in the Racoon configuration file. The Encapsulating Security Payload (ESP) was specified in the SAD and SPD in the Racoon configuration file.</t>

<!-- We need a reference to racoon                                              
-->
<t>ZJSU and NTT conducted a successful test with the scenario, and the 
IPsec requirement items in <xref target="RFC5812"/> were realized.
</t>
</section>

	<section title="Scenario 3 - CE High Availability" anchor="Scenario3CEHA">

			<t>CE High Availability (CEHA) was tested
based on the ForCES CEHA document <xref target="CEHA"/>. </t>
			<t>The design of the setup and the scenario for the
CEHA were simplified so as to focus mostly on the mechanics of the CEHA,
which were:</t>
			<t><list style="symbols">
				<t>Associating with more than one CE.</t>
				<t>Switching to a backup CE on a master CE failure.</t>
			</list></t>
	<t>The connection diagram for the scenario is shown in <xref target="Figure-6"/>.</t>
	
			<figure anchor="Figure-6" align="left"
title="Scenario for CE High Availability">
			<artwork><![CDATA[
         master      standby           master      standby
         +------+    +------+          +------+    +------+
         |  CE  |    |  CE  |          |  CE  |    |  CE  |
         | ZJSU |    |  UoP |          | NTT  |    |  UoP |
         +------+    +------+          +------+    +------+
            |          |                  |           |     
            +----------+                  +-----------+
            |                             |                   
         +------+                      +------+   
         |  FE  |                      |  FE  |  
         | UoP  |                      | UoP  |  
         +------+                      +------+   
                (a)                           (b)
    			 ]]></artwork>
			</figure>
			
		<t>In this scenario, one FE was connected and associated
to a master CE and a backup CE. In the pre-association phase, the FE would
be configured to have ZJSU's or NTT's CE as the master CE and the UoP's CE as
the standby CE. The CEFailoverPolicy component of the FE Protocol Object LFB
that specified whether the FE was in High Availability mode (value 2 or 3)
would be set either in the pre-association phase by the FE interface or in the
post-association phase by the master CE.</t>
	<t> If the CEFailoverPolicy value was set
to 2 or 3, the FE (in the post-association phase) would attempt to connect and associate 
with the standby CE.</t>
	<t>When the master CE was deemed disconnected, either by a
TearDown, Loss of Heartbeats, or physically disconnected, the FE would assume that the
standby CE was now the master CE. The FE would then send an Event Notification,
Primary CE Down, to all associated CEs (only the standby CE in this case) with
the value of the new master Control Element ID (CEID). The standby CE would then respond by
sending a configuration message to the CEID component of the FE Protocol Object with
its own ID to confirm that the CE considered itself the master as well.</t>
		<t>The steps of the CEHA test scenario were as follows:</t>
		<t><list style="numbers">
			<t>In the pre-association phase, the FE is set up with
the master CE and the backup CE.</t>
			<t>The FE connects and associates with the master CE.</t>
			<t>When CEFailoverPolicy is set to 2 or 3, the FE
connects and associates with the backup CE.</t>
			<t>Once the master CE is considered disconnected,
then the FE chooses the first associated backup CE.</t>
			<t>It sends an Event Notification that specifies
the master CE is down and identifies the new master CE.</t>
			<t>The new master CE sends a SET Configuration
message to the FE; the FE then sets the CEID value to the new master CE
completing the switch.</t>
		</list></t>
	
	</section>
	<section title="Scenario 4 - Packet Forwarding">
<t>This test scenario was conducted to verify LFBs like RedirectIn, RedirectOut, IPv4NextHop, and IPv4UcastLPM, which were defined by the ForCES LFB library document <xref target="LFB-LIB"/>, and more importantly, to verify the combination of the LFBs to implement IP packet forwarding.</t>
		<t>The connection diagram for this scenario is shown in <xref target="Figure-7"/>.</t>
		<figure anchor="Figure-7" align="left" title="Scenario for IP Packet Forwarding">
			<artwork><![CDATA[
                            +------+
                            |  CE  |
                            |  NTT |
                            +------+
                               |  ^
                               |  | OSPF 
                               |  +------->
                            +------+       +------+
            +--------+      |  FE  |       | OSPF |      +--------+
            |Terminal|------| ZJSU |-------|Router|------|Terminal|
            +--------+      +------+       +------+      +--------+
            
              <-------------------------------------------->
                          Packet Forwarding
                                 
                                 (a)
                                 
                                 
                                   +------+
                                   |  CE  |
                                   | ZJSU |
                                   +------+
                                    ^  |  ^
                               OSPF |  |  | OSPF 
                              <-----+  |  +----->
                      +-------+    +------+     +------+
        +--------+    | OSPF  |    |  FE  |     | OSPF |  +--------+
        |Terminal|----|Router |----| NTT  |-----|Router|--|Terminal|
        +--------+    +-------+    +------+     +------+  +--------+
            
              <-------------------------------------------->
                          Packet Forwarding
                                 
                                 (b)
                                 
                                             
                            +------+       +------+
                            |  CE  |       |  CE  |
                            | NTT  |       | ZJSU |
                            +------+       +------+
                               |  ^          ^ |
                               |  |   OSPF   | |
                               |  +----------+ |
                            +------+       +------+
            +--------+      |  FE  |       |  FE  |      +--------+
            |Terminal|------| ZJSU |-------|  NTT |------|Terminal|
            +--------+      +------+       +------+      +--------+
              
              <-------------------------------------------->
                          Packet Forwarding
                                                   
                                 (c)
     			 ]]></artwork>
			</figure>			

<t>In case (a), NTT's CE was connected to ZJSU's FE to form a ForCES router. A
SmartBits <xref target="SmartBits"/> test machine equipped with routing protocol software was used to simulate an OSPF router and was connected with the ForCES router to try to exchange OSPF Hello packets and Link State Advertisement (LSA) packets among them. Terminals were simulated by SmartBits to send and receive packets. As a result, the CE in the ForCES router needed to be configured to run and support the OSPF routing protocol.</t>

<t>In case (b), ZJSU'S CE was connected to NTT'S FE to form a ForCES router. Two routers running OSPF were simulated and connected to the ForCES router to test if the ForCES router could support the OSPF protocol and support packet forwarding.</t>

<t>
   In case (c), two ForCES routers were constructed; one was with 
   NTT's CE and ZJSU's FE, and the other was with NTT's FE and 
   ZJSU's CE. 

OSPF and packet forwarding were tested in the environment.</t>
		<t>The testing process for this scenario is shown below:</t>
		<t><list style="numbers">
			<t>Boot terminals and routers, and set the IP addresses of their interfaces.</t>
			<t>Boot the CE and FE.</t>
			<t>Establish an association between the CE and FE, and set the IP addresses of the FE interfaces.</t>
			<t>Start OSPF among the CE and routers, and set the Forwarding Information Base (FIB) on the FE.</t>

			<t>Send packets between terminals.</t>
		 </list>
		 </t>
	</section>	
</section>
 
<section title="Test Results">
	<section title="Test of LFB Operation">
		<t>The test results are reported in <xref
target="Figure-8"/>. As mentioned earlier, for convenience, the following
abbreviations are used in the table: "Z" for the implementation from ZJSU, "N"
for the implementation from NTT, and "P" for the implementation from the UoP.</t>	
	 
		<figure anchor="Figure-8" align="left" title="Test Results for LFB Operation">
		<artwork><![CDATA[
+-----+----+-----+-----+--------------+-------------------+---------+
|Test#| CE |FE(s)|Oper |      LFB     |     Component     | Result  |
|     |    |     |     |              |    /Capability    |         |
+-----+----+-----+-----+--------------+-------------------+---------+
|  1  | Z  |  N  | GET |   FEObject   |    LFBTopology    | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  2  | Z  |  N  | GET |   FEObject   |    LFBSelector    | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  3  | Z  |  N  | GET |  EtherPHYCop |     PHYPortID     | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  4  | Z  |  N  | GET |  EtherPHYCop |    AdminStatus    | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  5  | Z  |  N  | GET |  EtherPHYCop |     OperStatus    | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  6  | Z  |  N  | GET |  EtherPHYCop |  AdminLinkSpeed   | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  7  | Z  |  N  | GET |  EtherPHYCop |   OperLinkSpeed   | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  8  | Z  |  N  | GET |  EtherPHYCop |  AdminDuplexSpeed | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  9  | Z  |  N  | GET |  EtherPHYCop |  OperDuplexSpeed  | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  10 | Z  |  N  | GET |  EtherPHYCop |   CarrierStatus   | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  11 | Z  |  N  | GET |  EtherMACIn  |    AdminStatus    | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  12 | Z  |  N  | GET |  EtherMACIn  | LocalMacAddresses | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  13 | Z  |  N  | GET |  EtherMACIn  |    L2Bridging     | Success |
|     | N  |  Z  |     |              |   PathEnable      | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  14 | Z  |  N  | GET |  EtherMACIn  |  PromiscuousMode  | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  15 | Z  |  N  | GET |  EtherMACIn  |   TxFlowControl   | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  16 | Z  |  N  | GET |  EtherMACIn  |   RxFlowControl   | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  17 | Z  |  N  | GET |  EtherMACIn  |     MACInStats    | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
| 18  | Z  |  N  | GET | EtherMACOut  |     AdminStatus   | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
| 19  | Z  |  N  | GET |  EtherMACOut |          MTU      | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  20 | Z  |  N  | GET |  EtherMACOut |    TxFlowControl  | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  21 | Z  |  N  | GET |  EtherMACOut |    TxFlowControl  | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  22 | Z  |  N  | GET |  EtherMACOut |     MACOutStats   | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  23 | Z  |  N  | GET |      ARP     |PortV4AddrInfoTable| Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  24 | Z  |  N  | SET |      ARP     |PortV4AddrInfoTable| Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  25 | Z  |  N  | DEL |      ARP     |PortV4AddrInfoTable| Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  26 | Z  |  N  | SET |  EtherMACIn  | LocalMACAddresses | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  27 | Z  |  N  | SET |  EtherMACIn  |          MTU      | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  28 | Z  |  N  | SET |  IPv4NextHop |  IPv4NextHopTable | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  29 | Z  |  N  | SET | IPv4UcastLPM |  IPv4PrefixTable  | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  30 | Z  |  N  | DEL |  IPv4NextHop |  IPv4NextHopTable | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  31 | Z  |  N  | DEL | IPv4UcastLPM |  IPv4PrefixTable  | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  32 | Z  |  N  | SET |  EtherPHYCop |     AdminStatus   | Success |
|     | N  |  Z  |     |              |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  33 | Z  |  N  | SET |     Ether    |   VlanInputTable  | Success |
|     | N  |  Z  |     |  Classifier  |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  34 | Z  |  N  | DEL |     Ether    |   VlanInputTable  | Success |
|     | N  |  Z  |     |  Classifier  |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  35 | Z  |  N  | SET |   Ether      |  VlanOutputTable  | Success |
|     | N  |  Z  |     | Encapsulator |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  36 | Z  |  N  | DEL |    Ether     |   VlanOutputTable | Success |
|     | N  |  Z  |     | Encapsulator |                   | Success |
|     | Z  |  P  |     |              |                   | Success |
|     | P  |  Z  |     |              |                   | Success |
|     | N  |  P  |     |              |                   | Success |
|     | P  |  N  |     |              |                   | Success |
+-----+----+-----+-----+--------------+-------------------+---------+
       		]]></artwork>
		</figure>
<t>Note on tests #1 and #2:</t>
<!--
The proper description should be #1 not 1#. I think you should fix all the text
for this.
-->

<t>On the wire format of encapsulation on array, only the case of FULLDATA-TLV vs. SPARSEDATA-TLV was tested. </t>
<!-- I think you should use the term FULLDATA vs SPARSEDATA instead of FULLDATA-in-FULLDATA
-->

<t>When we use the ForCES protocol, it is very common for the CE to use the FEobject LFB to get information on LFBs and their topology in the FE.
Hence, the two tests were specifically made. </t>

<!-- removed the note on v08.   
<t>Note on test #30 and #31:</t>
<t>Corresponding nexthop entry must be deleted before prefix entry which is decided by FE's 
routing management.</t>
-->
<!--
Again, please provide some clarity; i did not understand what is being written above.
-->
	
	</section>
	<section title="Test of TML with IPsec" anchor="TMLIPsec">
		<t>In this scenario, the ForCES TML was run over IPsec. 
Implementers joined this interoperability test and used the same third-party tool software 'Racoon' 
<xref target="Racoon" /> to establish the IPsec channel. 
<!--
Please provide reference to racoon
-->
Typical LFB operation tests as in Scenario 1 were repeated with the IPsec&nbhy;enabled TML.</t>

<t>As mentioned, this scenario only took place between implementers from ZJSU and NTT. 
</t>

<t>The TML with IPsec test results are reported in <xref target="Figure-9"/>.</t>
	<figure align="left"  anchor="Figure-9" title="Test Results for TML with IPsec">
	<artwork><![CDATA[
+-----+----+-----+-----+--------------+-------------------+---------+
|Test#| CE |FE(s)|Oper |     LFB      |     Component/    | Result  |
|     |    |     |     |              |     Capability    |         |
+-----+----+-----+-----+--------------+-------------------+---------+
|  1  | Z  |  N  | GET |   FEObject   |   LFBTopology     | Success |
|     | N  |  Z  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  2  | Z  |  N  | GET |   FEObject   |   LFBSelectors    | Success |
|     | N  |  Z  |     |              |                   | Success |
|     |    |     |     |              |                   |         |
|  3  | Z  |  N  | SET |   Ether      |   VlanInputTable  | Success |
|     | N  |  Z  |     |   Classifier |                   | Success |
|     |    |     |     |              |                   |         |
|  4  | Z  |  N  | DEL |   Ether      |   VlanInputTable  | Success |
|     | N  |  Z  |     |   Classifier |                   | Success |
+-----+----+-----+-----+--------------+-------------------+---------+
    		]]></artwork>
		</figure>
	</section>
	<section title="Test of CE High Availability">
		<t>In this scenario, one FE connected and associated with a
master CE and a backup CE. When the master CE was deemed disconnected, the
FE attempted to find another associated CE to become the master CE.</t>
<t>The CEHA scenario, as described in Scenario 3, was completed successfully for both
setups.</t>
	<t>Due to a bug in one of the FEs, an interesting issue was caught: it was
observed that the buggy FE took up to a second to failover. It was eventually
found that the issue was due to the FE's prioritization of the different CEs.
All messages from the backup CE were being ignored unless the master CE
was disconnected.</t>
<!--
The master
CE was sending Heartbeats at a rate of one every 500milliseconds (2 per
second). As heartbeats are of very low priority, the FE was working fine
with associated only with the master CE. However when the FE attempted to
associate with the backup CE the following issue occured.</t>
<t>The FE was checking first for messages from all
priorities from the master CE and if the master CE hasn't sent any messages
then it would check the backup CE. So, when the FE was ordered to begin
associating with the backup CE , it sent the Association setup message, the
backup CE received it, responded back with an Association Setup result, but
the FE never processed managed to process it.</t>
XXX: I was not sure how the above added value to the explanation, so commented
out. It reduces confusion i had..
If i missed the point please fix it.
-->
	<t>While the bug was fixed and the CEHA scenario was
completed successfully, the authors felt it was important to capture the implementation
issue in this document.  The recommended approach is the following:</t>
	<t><list style="symbols">
	<t>The FE should receive and handle messages first
from the master CE on all priority channels to maintain proper functionality
and then receive and handle messages from the backup CEs.</t>
	<t>Only when the FE is attempting to associate with
the backup CEs should the FE receive and handle messages per priority
channel from all CEs. When all backup CEs are associated with or deemed
unreachable, then the FE should return to receiving and handling messages
first from the master CE.</t>
	</list></t>
	</section>

<section title="Test of Packet Forwarding">
<t>As described in the ForCES LFB library <xref target="LFB-LIB"/>, packet 
forwarding is implemented by a set of LFB classes that compose a processing path for packets. In this test 
scenario, as shown in <xref target="Figure-7"/>, a ForCES router running the OSPF protocol was constructed. 
In addition, a set of LFBs including RedirectIn, RedirectOut, IPv4UcastLPM, and IPv4NextHop were used. 
RedirectIn and RedirectOut LFBs redirected OSPF Hello and LSA packets from and to the CE. 
A SmartBits <xref target="SmartBits"/> test machine was used to simulate an OSPF router and exchange the OSPF Hello and LSA packets
with the CE in the ForCES router.</t>
	
<t>In <xref target="Figure-7"/>, cases (a) and (b) both need a RedirectIn LFB to send OSPF packets generated by the CE to the FE by use of ForCES packet redirect messages. The OSPF packets were further sent to an outside OSPF router by the FE via forwarding LFBs, including IPv4NextHop and IPv4UcastLPM. A RedirectOut LFB in the FE was used to send OSPF packets received from outside the OSPF router to the CE by ForCES packet redirect messages.</t>
<t>By running OSPF, the CE in the ForCES router could generate new routes and load them to the routing table 
in the FE. The FE was then able to forward packets according to the routing table.</t>		 

		<t>The test results are shown in <xref target="Figure-10" />. </t>
		<figure  align="left" anchor="Figure-10" title="Test Results
for Packet Forwarding">
		<artwork><![CDATA[
+-----+----+-----+-------------------------+--------------+---------+
|Test#| CE |FE(s)|           Item          | LFBs Related | Result  |
+-----+----+-----+-------------------------+--------------+---------+
|  1  | N  |  Z  |  IPv4NextHopTable SET   | IPv4NextHop  | Success |
|     |    |     |                         |              |         |
|  2  | N  |  Z  |   IPv4PrefixTable SET   | IPv4UcastLPM | Success |
|     |    |     |                         |              |         |
|  3  | N  |  Z  |Redirect OSPF packet from|  RedirectIn  | Success |
|     |    |     |     CE to SmartBits     |              |         |
|     |    |     |                         |              |         |
|  4  | N  |  Z  |Redirect OSPF packet from|  RedirectOut | Success |
|     |    |     |     SmartBits to CE     |              |         |
|     |    |     |                         |              |         |
|  5  | N  |  Z  |       Metadata in       |  RedirectOut | Success |
|     |    |     |     redirect message    |  RedirectIn  |         |
|     |    |     |                         |              |         |
|  6  | N  |  Z  | OSPF neighbor discovery |  RedirectOut | Success |
|     |    |     |                         |  RedirectIn  |         |
|     |    |     |                         |              |         |
|  7  | N  |  Z  |     OSPF DD exchange    |  RedirectOut | Success |
|     |    |     |                         |  RedirectIn  |         |
|     |    |     |                         |  IPv4NextHop |         |
|     |    |     |                         |              |         |
|  8  | N  |  Z  |    OSPF LSA exchange    |  RedirectOut | Success |
|     |    |     |                         |  RedirectIn  |         |
|     |    |     |                         |  IPv4NextHop |         |
|     |    |     |                         |  IPv4UcastLPM|         |
|     |    |     |                         |              |         |
|  9  | N  |  Z  |     Data Forwarding     |  RedirectOut | Success |
|     |    |     |                         |  RedirectIn  |         |
|     |    |     |                         |  IPv4NextHop |         |
|     |    |     |                         |  IPv4UcastLPM|         |
|     |    |     |                         |              |         |
|  10 | Z  |  N  |  IPv4NextHopTable SET   |  IPv4NextHop | Success |
|     |    |     |                         |              |         |
|  11 | Z  |  N  |   IPv4PrefixTable SET   |  IPv4UcastLPM| Success |
|     |    |     |                         |              |         |
|  12 | Z  |  N  |Redirect OSPF packet from|  RedirectIn  | Success |
|     |    |     | CE to other OSPF router |              |         |
|     |    |     |                         |              |         |
|  13 | Z  |  N  |Redirect OSPF packet from|  RedirectOut | Success |
|     |    |     |other OSPF router to CE  |              |         |
|     |    |     |                         |              |         |
|  14 | Z  |  N  |       Metadata in       |  RedirectOut | Success |
|     |    |     |     redirect message    |  RedirectIn  |         |
|     |    |     |                         |              |         |
|  15 | Z  |  N  |OSPF neighbor discovery  |  RedirectOut | Success |
|     |    |     |                         |  RedirectIn  |         |
|     |    |     |                         |              |         |
|  16 | Z  |  N  |    OSPF DD exchange     |  RedirectOut | Failure |
|     |    |     |                         |  RedirectIn  |         |
|     |    |     |                         |  IPv4NextHop |         |
|     |    |     |                         |              |         |
|  17 | Z  |  N  |    OSPF LSA exchange    |  RedirectOut | Failure |
|     |    |     |                         |  RedirectIn  |         |
|     |    |     |                         |  IPv4NextHop |         |
|     |    |     |                         |  IPv4UcastLPM|         |
+-----+----+-----+-------------------------+--------------+---------+
    		]]></artwork>
		</figure>
 
   
<t>Note on tests #3 to #9: </t>
   <t>During the test, OSPF packets received from the CE were found by
Ethereal/Wireshark to have checksum errors in the FE. Because the test time was
quite limited, the implementer of the CE did not make an effort to find and
solve the checksum error; instead, the FE had tried to correct the checksum in
order to not let the SmartBits drop the packets. Note that such a solution does not affect the test results. 
    </t> 

<t>Comment on tests #16 and #17:</t>
  <t> The two test items failed. Note that tests #7 and #8 were identical to tests #16 and #17, only with CE and FE implementers being exchanged. Moreover, tests #12 and #13 showed that the redirect channel worked well. Therefore, it can be reasonably inferred that the problem caused by the failure was from the implementations, rather than from the ForCES protocol itself or the misunderstanding of implementations on the protocol specification. Although the failure made the OSPF interoperability test incomplete, it did not show an interoperability problem. More test work is needed to verify the OSPF interoperability.</t>


</section>			
</section>
 
<section title="Discussions">
	<section title="On Data Encapsulation Format" anchor="On-Data-Encapsulation-Format">
		<t> On the first day of the test, it was found that the LFB interoperations pertaining to tables all failed. It was eventually found that the failure occurred because different data encapsulation methods for ForCES protocol messages were used by different implementations. The issue is described in detail below. </t>
		<t>Assuming that an LFB has two components, one is a struct with ID=1 and the other is an array with ID=2; in addition, both have two components of u32 inside, as shown below: </t>
  		<figure align="left">
                <artwork><![CDATA[
struct1: type struct, ID=1
        components are:
        a, type u32, ID=1
        b, type u32, ID=2

table1: type array, ID=2
        components for each row are (a struct of):
        x, type u32, ID=1
        y, type u32, ID=2
		]]></artwork>
		</figure>
		<t>1. On Response of PATH-DATA-TLV Format</t> 
		<t>When a CE sends a config/query ForCES protocol message to an
FE from a different implementer, the CE probably receives a response from the
FE with a different PATH-DATA-TLV encapsulation format. For example, if a CE sends
a query message with a path of 1 to a third-party FE to manipulate struct1 as
defined above, it is probable that the FE will generate a response with two
different PATH-DATA-TLV encapsulation formats: one is the value with FULLDATA-TLV/SPARSEDATA-TLV and the other is the value with many parallel PATH-DATA-TLVs and nested PATH-DATA-TLVs, as shown below: </t>
		<figure align="left">
		<artwork><![CDATA[
format 1:
    OPER = GET-RESPONSE-TLV
        PATH-DATA-TLV:
            IDs=1
            FULLDATA-TLV containing valueof(a),valueof(b)
format 2:
    OPER = GET-RESPONSE-TLV
        PATH-DATA-TLV:
            IDs=1
            PATH-DATA-TLV:
                IDs=1 
                FULLDATA-TLV containing valueof(a)
            PATH-DATA-TLV:
                IDs=2
                FULLDATA-TLV containing valueof(b)
		]]></artwork>
		</figure>
		
	<t>The interoperability testers witnessed that a ForCES element (CE or FE) sender is free to choose whatever data structure that IETF ForCES documents define and best suits the element, while a ForCES element (CE or FE) should be able to accept and process information (requests and responses) that use any legitimate structure defined by IETF ForCES documents. While in the case where a ForCES element is free to choose any legitimate data structure as a response, it is preferred that the ForCES element responds in the same format that the request was made, as it is most likely the data structure that the request sender looks to receive. 
	</t>

		<t>2. On Operation to Array</t>
		<t>An array operation may also have several different data encapsulation formats. For instance, if a CE sends a config message to table1 with a path of (2.1), which refers to the component with ID=2 (an array), and the second ID is the row, then row 1 may be encapsulated with three formats as shown below: </t>
		<figure align="left"> 
		<artwork><![CDATA[
format 1:
    OPER = SET-TLV
        PATH-DATA-TLV:
            IDs=2.1
            FULLDATA-TLV containing valueof(x),valueof(y)
format 2:
    OPER = SET-TLV
        PATH-DATA-TLV:
            IDs=2.1
            PATH-DATA-TLV:
                IDs=1
                FULLDATA-TLV containing valueof(x)
            PATH-DATA-TLV
                IDs=2
                FULLDATA-TLV containing valueof(y)
		]]></artwork>
		</figure>
		<t>Moreover, if the CE is targeting the whole array, for example, if the array is empty and the CE wants to add the first row to the table, it could also adopt another format:</t>
		<figure align="left"> 
		<artwork><![CDATA[
format 3:
    OPER = SET-TLV
        PATH-DATA-TLV:
            IDs=2
            FULLDATA-TLV containing rowindex=1,valueof(x),valueof(y)

		]]></artwork>
		</figure>		
		<t>The interoperability test experience has shown that formats 1 and 3, which take full advantage of the multiple data elements description in one TLV of FULLDATA-TLV, are more efficient, although format 2 can also achieve the same operating goal.
		</t>
	</section>

</section>
	
		<section anchor="Security" title="Security Considerations">
			<t>
	Developers of ForCES FEs and CEs must take the security
   	considerations of the ForCES Framework <xref target="RFC3746"/> and ForCES
   	Protocol Specification <xref target="RFC5810"/> into account.
	Also, as specified in the security considerations of
   	SCTP-Based TML for the ForCES Protocol <xref target="RFC5811"/>, the transport-level
   	security has to be ensured by IPsec. Test results of TML with IPsec supported have been shown in <xref target="TMLIPsec"/> in this document. </t>
		<t>The tests described in this document used only simple password security mode. Testing using more sophisticated security is for future study. </t>
		<t>Further testing using key agility is encouraged. The tests reported here used SCTP TML running over an IPsec tunnel, which was established by Racoon. Key negotiation formed part of this process, but we believe that the SCTP TML used does not include key agility or renegotiation.</t>
		</section>
	</middle>
	<!--  *****BACK MATTER *****-->
	<back>
	
	
	<references title="Normative References">
			<!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
       
    &RFC5810;
    &RFC5811;     
    &RFC5812;
    &RFC5813;


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

    &RFC3654;
    &RFC3746;   
    &RFC6053;
    &RFC6956;

<!--draft-ietf-forces-ceha-00, expired 4/20/11-->      
<reference anchor="CEHA">
<front>
<title>ForCES Intra-NE High Availability</title>
<author surname="Ogawa" initials="K" />
<author surname="Wang" initials="W"/>
<author surname="Haleplidis" initials="E"/>
<author surname="Salim" initials="J" />
<date  month="October" year="2010"/>
</front>
<seriesInfo name="Work in" value="Progress"/>
</reference>

<!--draft-ietf-forces-lfb-lib-03, Expired 6/4/11-->
<reference anchor="LFB-LIB">
<front>
<title>ForCES Logical Function Block (LFB) Library</title>
<author surname="Wang" initials="W"/>
<author surname="Haleplidis" initials="E"/>
<author surname="Ogawa" initials="K" />
<author surname="Li" initials="C" />
<author surname="Halpern" initials="J" />
<date  month="December" year="2010"/>
</front>
<seriesInfo name="Work in" value="Progress"/>
</reference>


<reference anchor="SmartBits" target="http://www.spirent.com/~/media/Datasheets/Broadband/Obsolete_SMB-TM/TeraRouting%20Tester.pdf">
<front>
<title>The Highly-Scalable Router Performance Tester: TeraRouting Tester</title>
<author><organization>Spirent Inc.</organization></author>

<date year="2005"/>
</front>

</reference>

<reference anchor="Ethereal" target="http://www.ietf.org/mail-archive/web/forces/current/msg03687.html">
<front>
<title>Subject: Release of a test version of ForCES dissector based on Ethereal 0.99.0</title>
<!--Ethereal, also named Wireshark, 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-->
<author surname="Fenggen" initials="J" />
<date month="11 June" year="2009" />
</front>
<seriesInfo name="message to the" value="IETF forces mailing list"/>
</reference>

<reference anchor="Tcpdump" target="http://www.ietf.org/mail-archive/web/forces/current/msg03811.html">
<front>
<title>Subject: tcpdump 4.1.1</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-->
<author surname="Hadi Salim" initials="J" />
<date month="20 May" year="2010" />
</front>
<seriesInfo name="message to the" value="IETF forces mailing list"/>
</reference>

<reference anchor="TeamViewer" target="http://www.teamviewer.com/">
<front>
<title>TeamViewer - the All-In-One Software for Remote Support and Online Meetings</title>
<!--TeamViewer connects to any PC or server around the
              world within a few seconds. -->
<author>
<organization>TeamViewer Inc.</organization></author>
<date />
</front>
</reference>

<reference anchor="Racoon" target="http://www.netbsd.org/docs/network/ipsec/rasvpn.html">
<front>
<title>How to build a remote user access VPN with Racoon</title>
<author>
<organization>The NetBSD Foundation</organization></author>
<date />
</front>
</reference>
   
<!-- A reference written by an organization not a person.-->
		</references>
		<!-- Change Log
 
 -->

		<section anchor="Acknowledgements" title="Acknowledgements">
			<t>The authors thank the following test participants: 
			 </t>
			 <t>
				<list style="hanging">
					<t>
      Chuanhuang Li, Hangzhou BAUD Networks<vspace blankLines="0"/>
      Ligang Dong, Zhejiang Gongshang University<vspace blankLines="0"/>
      Bin Zhuge, Zhejiang Gongshang University<vspace blankLines="0"/>
      Jingjing Zhou, Zhejiang Gongshang University<vspace blankLines="0"/>
      Liaoyuan Ke, Hangzhou BAUD Networks<vspace blankLines="0"/>
      Kelei Jin, Hangzhou BAUD Networks<vspace blankLines="0"/>
      </t>
		</list>
		</t>
			<t>The authors also thank very much Adrian Farrel, Joel Halpern, Ben Campbell, Nevil Brownlee, and Sean Turner for their important help in the document publication process.</t>
</section>

 		<section anchor="Contributors" title="Contributors">
			<t>
       Contributors who have made major contributions to the interoperability test are listed below.

<figure><artwork>
Hirofumi Yamazaki
NTT Corporation
Tokyo
Japan
EMail: yamazaki.horofumi@lab.ntt.co.jp

Rong Jin
Zhejiang Gongshang University
Hangzhou
P.R. China
EMail: jinrong@zjsu.edu.cn

Yuta Watanabe
NTT Corporation
Tokyo
Japan
EMail: yuta.watanabe@ntt-at.co.jp

Xiaochun Wu
Zhejiang Gongshang University
Hangzhou
P.R. China
EMail: spring-403@zjsu.edu.cn
</artwork></figure>
		</t> 		
		</section>

	</back>
</rfc>


