<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml2rfc.tools.ietf.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://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3654 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3654.xml">
<!ENTITY RFC3746 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3746.xml">
<!ENTITY RFC5657 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5657.xml">
<!ENTITY I-D.narten-iana-considerations-rfc2434bis SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.narten-iana-considerations-rfc2434bis.xml">
<!ENTITY RFC5812 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5812.xml">
<!ENTITY RFC5810 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5810.xml">
<!ENTITY RFC5811 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5811.xml">
<!ENTITY RFC6956 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6956.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://xml2rfc.tools.ietf.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="yes" ?>
<!-- Start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std" docName="draft-ietf-forces-interfelfb-01" ipr="trust200902">
  <!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN" 
     they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
         full title is longer than 39 characters -->

    <title abbrev="ForCES Inter-FE LFB">ForCES Inter-FE LFB</title>

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

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

	<author fullname="Damascane M. Joachimpillai" initials="D.J." surname="Joachimpillai">
		<organization>Verizon</organization>
		<address>
			<postal>
				<street>60 Sylvan Rd</street>
				<!-- Reorder these if your country does things differently -->
				<city>Waltham</city>
				<region>Mass.</region>
				<code>02451</code>
				<country>USA</country>
			</postal>
			<email>damascene.joachimpillai@verizon.com</email>
			<!-- uri and facsimile elements may also be added -->
		</address>
	</author>
 
	<author fullname="Jamal Hadi Salim" initials="J." surname="Hadi Salim">
		<organization>Mojatatu Networks</organization>
		<address>
			<postal>
				<street>Suite 400, 303 Moodie Dr.</street>
				<city>Ottawa</city>
				<code>K2H 9R4</code>
				<region>Ontario</region>
				<country>Canada</country>
			</postal>
			<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="2015" />

    <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>InterFE</keyword>

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

    <abstract>
   <t>
    This document describes extending the ForCES LFB topology across
    FEs i.e inter-FE connectivity without needing any changes to the
    ForCES specification by defining the Inter-FE LFB. The Inter-FE LFB
    provides ability to pass data, metadata and exceptions across FEs.
    The document describes a generic way to transport the mentioned
    details but focuses on ethernet transport.
   </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 reiterates the terminology defined in several ForCES
		documents <xref target="RFC3746"></xref>,
		<xref target="RFC5810"></xref>,
		<xref target="RFC5811"></xref>, and
		<xref target="RFC5812"></xref> 
	for the sake of contextual clarity.</t>

  
      <t><list style="hanging">
      
<t>
Control Engine (CE)
</t>
<t>
Forwarding Engine (FE)
</t>
<t>
FE Model
</t>
<t>
LFB (Logical Functional Block) Class (or type)
</t>
<t>
LFB Instance
</t>
<t>
LFB Model
</t>
<t>
LFB Metadata
</t>
<t>ForCES Component
</t>
<t>
LFB Component
</t>
<t>
	ForCES Protocol Layer (ForCES PL)
</t>
<t>
	ForCES Protocol Transport Mapping Layer (ForCES TML)
</t>
	</list></t>

  </section>

    </section>

<section title="Introduction">
    <t> 
    In the ForCES architecture, a packet service can be modelled by composing
    a graph of one or more LFB instances. The reader is referred to the details 
    in <xref target="RFC5812"> the ForCES Model</xref>.
    </t>
    <t> The FEObject LFB capabilities in <xref target="RFC5812">the ForCES 
    Model</xref> define component ModifiableLFBTopology which, when advertised
    by the FE, implies that the advertising FE is capable of allowing 
    creation and modification of LFB graph(s) by the control plane. Details
    on how a graph of LFB class instances can be created can be derived by
    the control plane by looking at the FE's FEObject LFB class
    table component SupportedLFBs.
    The SupportedLFBs table contains information about each LFB class that 
    the FE supports.
    For each LFB class supported, details are provided on 
    how the supported LFB class may be connected to other LFB classes.
    The SupportedLFBs table describes which LFB class a specified LFB
    class may succeed or precede in an LFB class instance topology.
    Each link connecting two LFB class instances is described in 
    the LFBLinkType dataTypeDef and has sufficient details to identify
    precisely the end points of a link of a service graph.
    </t>
   <t>
   The CE may therefore create a packet service by describing an LFB instance
   graph connection; this is achieved by updating the FEOBject LFBTopology table.
   </t>
   <t>
    Often there are requirements for the packet service graph to cross FE 
    boundaries. This could be from a desire to scale the service or need to 
    interact with LFBs which reside in a separate FE (eg lookaside 
    interface to a shared TCAM, an interconnected chip, or as coarse 
    grained functionality as an external NAT FE box being part of the 
    service graph etc).
   </t>
   <t>
    Given that the ForCES inter-LFB architecture calls out for ability to pass
    metadata between LFBs, it is imperative therefore to define mechanisms to 
    extend that existing feature and allow passing the metadata between LFBs
    across FEs.
   </t>
   <t>
    This document describes extending the LFB topology across
    FEs i.e inter-FE connectivity without needing any changes to the
    ForCES definitions. It focusses on using Ethernet as the interconnection
    as a starting point while leaving room for other protocols (such as 
    directly on top of IP, UDP, VXLAN, etc) to be addressed by other
    future documents.
   </t>

  </section>

  <section title="Problem Scope And Use Cases">
  <t> 
  The scope of this document is to solve the challenge of passing ForCES
  defined metadata and exceptions across FEs (be they physical or virtual).
  To illustrate the problem scope we present two use cases where we start
  with a single FE running all the functionality then split it into
  multiple FEs.
  </t> 

  <section title="Basic Router">
  <t> 
  A sample LFB topology <xref target="fig1"></xref> demonstrates
  a service graph for delivering basic IPV4 forwarding service
  within one FE. For the purpose of illustration, the diagram shows 
  LFB classes as graph nodes instead of multiple LFB class instances.
  </t>
  <t>
  Since the illustration is meant only as an exercise to showcase how data
  and metadata are sent down or upstream on a graph of LFBs,
  it abstracts out any ports in both directions
  and talks about a generic ingress and egress LFB. Again, for illustration
  purposes, the diagram does not show exception or error paths.
  Also left out are details on Reverse Path Filtering, ECMP, multicast
  handling etc. In other words, this is not meant to be a complete description
  of an IPV4 forwarding application; for a more complete example, please refer 
  to the LFBlib document [RFC6956].
  <!--
  to <xref target="RFC6956"> the LFBlib document</xref>.
-->
  </t>
  <t>
  The output of the ingress LFB(s) coming into the IPv4 Validator LFB 
  will have both the IPV4 packets and, depending on the implementation,
  a variety of ingress metadata such as offsets into the different headers, any 
  classification metadata, physical and virtual ports encountered,
  tunnelling information etc. These metadata are lumped together as
  "ingress metadata".
  </t>
  <t>
  Once the IPV4 validator vets the packet (example ensures that no expired TTL etc), 
  it feeds the packet and inherited metadata into the IPV4 unicast LPM LFB. 
  </t>
  <t>
   <figure title="Basic IPV4 packet service LFB topology" align="left" anchor="fig1">
   <artwork><![CDATA[

                    +----+                           
                    |    |                           
         IPV4 pkt   |    | IPV4 pkt     +-----+             +---+    
     +------------->|    +------------->|     |             |   |    
     |  + ingress   |    | + ingress    |IPv4 |   IPV4 pkt  |   |    
     |   metadata   |    | metadata     |Ucast+------------>|   +--+ 
     |              +----+              |LPM  |  + ingress  |   |  | 
   +-+-+             IPv4               +-----+  + NHinfo   +---+  | 
   |   |             Validator                   metadata   IPv4   | 
   |   |             LFB                                    NextHop| 
   |   |                                                     LFB   | 
   |   |                                                           | 
   |   |                                                  IPV4 pkt |
   |   |                                               + {ingress  |
   +---+                                                  + NHdetails}
   Ingress                                                metadata |
    LFB                                +--------+                  | 
                                       | Egress |                  | 
                                    <--+        |<-----------------+ 
                                       |  LFB   |
                                       +--------+     
    ]]></artwork>
   </figure>
  </t>

<t>
The IPV4 unicast LPM LFB does a longest prefix match lookup on the
IPV4 FIB using the destination IP address as a search key. The result is 
typically a next hop selector which is passed downstream as metadata.
</t>
<t>
The Nexthop LFB receives the IPv4 packet with an associated next hop
info metadata. The NextHop LFB consumes the NH info metadata and 
derives from it a table index to look up the next hop table in order to 
find the appropriate egress information. The lookup result
is used to build the next hop details to be used
downstream on the egress. This information may include any source 
and destination information (MAC address to use, if ethernet;) as well egress 
ports.
[Note: It is also at this LFB where typically the forwarding TTL decrement
and IP checksum recalculation occurs.]
</t>
<t>
The details of the egress LFB are considered out of scope for this discussion.
Suffice it is to say that somewhere within or beyond the Egress LFB the
IPV4 packet will be sent out a port (ethernet, virtual or physical etc).
</t>
<section title="Distributing The LFB Topology">
<t>
<xref target="fig2"></xref> demonstrates one way the router LFB topology
in <xref target="fig1"></xref> may be split across two FEs (eg two ASICs).
<xref target="fig2"></xref> shows the LFB topology split across FEs after the
IPV4 unicast LPM LFB.
</t>
  <t>
   <figure title="Split IPV4 packet service LFB topology" align="left" anchor="fig2">
   <artwork><![CDATA[
   FE1
 +-------------------------------------------------------------+
 |                            +----+                           |
 | +----------+               |    |                           |
 | | Ingress  |    IPV4 pkt   |    | IPV4 pkt     +-----+      |
 | |  LFB     +-------------->|    +------------->|     |      |
 | |          |  + ingress    |    | + ingress    |IPv4 |      |
 | +----------+    metadata   |    |   metadata   |Ucast|      |
 |      ^                     +----+              |LPM  |      |
 |      |                      IPv4               +--+--+      |
 |      |                     Validator              |         |
 |                             LFB                   |         |
 +---------------------------------------------------|---------+
                                                     |
                                                IPv4 packet +
                                              {ingress + NHinfo}
                                                  metadata
   FE2                                               |
 +---------------------------------------------------|---------+
 |                                                   V         | 
 |             +--------+                       +--------+     |
 |             | Egress |     IPV4 packet       | IPV4   |     |
 |       <-----+  LFB   |<----------------------+NextHop |     |
 |             |        |{ingress + NHdetails}  | LFB    |     |
 |             +--------+      metadata         +--------+     |
 +-------------------------------------------------------------+
    ]]></artwork>
   </figure>
   </t>

   <t>
   Some proprietary inter-connect (example Broadcom Higig over XAUI
   <xref target="brcm-higig"></xref>)
   are known to exist to carry both the IPV4 packet and the related
   metadata between the IPV4 Unicast LFB and IPV4 NextHop LFB across the two
   FEs.
   </t>

   <t>
   The purpose of the inter-FE LFB is to define standard mechanisms for
   interconnecting FEs and for that reason we are not going to touch
   anymore on proprietary chip-chip  interconnects other
   than state the fact they exist and that it is feasible to have translation
   to and from proprietary approaches. The document focus is the 
   FE-FE interconnect where the FE could be physical or virtual and
   the interconnecting technology runs a standard protocol such as ethernet,
   IP or other protocols on top of IP.
   </t>

</section>
</section>

  <section title="Arbitrary Network Function">
  <t>
  In this section we show an example of an arbitrary network function
  which is more coarse grained in terms of functionality. Each
  Network function may constitute more than one LFB.

   <figure title="A Network Function Service Chain within one FE" align="left" anchor="fig31">
   <artwork><![CDATA[
   FE1
 +-------------------------------------------------------------+
 |                            +----+                           |
 | +----------+               |    |                           |
 | | Network  |   pkt         |NF2 |    pkt       +-----+      |
 | | Function +-------------->|    +------------->|     |      |
 | |    1     |  + NF1        |    | + NF1/2      |NF3  |      |
 | +----------+    metadata   |    |   metadata   |     |      |
 |      ^                     +----+              |     |      |
 |      |                                         +--+--+      |
 |      |                                            |         |
 |                                                   |         |
 +---------------------------------------------------|---------+
                                                     V         
    ]]></artwork>
   </figure>
  </t>

  <t>
  The setup in <xref target="fig31"></xref> is a typical of most packet processing
  boxes where we have functions like DPI, NAT, Routing, etc connected in
  such a topology to deliver a packet processing service to flows.
  </t>
   <section title="Distributing The Arbitrary Network Function">
  <t>
  The setup in <xref target="fig31"></xref> can be split out across
  3 FEs instead as demonstrated in <xref target="fig32"></xref>.
  This could be motivated by scale out reasons or because different
  vendors provide different functionality which is plugged-in to provide
  such functionality. The end result is to have the same packet service 
  delivered to the different flows passing through.
  </t>
  <t>
   <figure title="A Network Function Service Chain Distributed Across Multiple FEs" align="left" anchor="fig32">
   <artwork><![CDATA[

   FE1                        FE2
   +----------+               +----+               FE3             
   | Network  |   pkt         |NF2 |    pkt       +-----+       
   | Function +-------------->|    +------------->|     |       
   |    1     |  + NF1        |    | + NF1/2      |NF3  |       
   +----------+    metadata   |    |   metadata   |     |       
        ^                     +----+              |     |       
        |                                         +--+--+       
                                                     |          
                                                     V         
    ]]></artwork>
   </figure>
   </t>
    </section>

  </section>
</section>

<section title="Proposal Overview">
<t>
We address the inter-FE connectivity requirements by proposing the 
inter-FE LFB class.
Using a standard LFB class definition implies no change to the basic 
ForCES architecture in the form of the core LFBs (FE Protocol or Object LFBs).
This design choice
was made after considering an alternative approach that would have 
required changes to both the FE Object capabilities
(SupportedLFBs) as well LFBTopology component to describe the inter-FE
connectivity capabilities as well as runtime topology of the LFB instances.
</t>
  <section title="Inserting The Inter-FE LFB">
   <t>
   The distributed LFB topology described in  <xref target="fig2"></xref> is
   re-illustrated in <xref target="fig3"></xref> to show the topology
   location where the inter-FE LFB would fit in.
   </t>

  <t>
   <figure title="Split IPV4 forwarding service with Inter-FE LFB" align="left" anchor="fig3">
   <artwork><![CDATA[
   FE1
 +-------------------------------------------------------------+
 | +----------+               +----+                           |
 | | Ingress  |    IPV4 pkt   |    | IPV4 pkt     +-----+      |
 | |  LFB     +-------------->|    +------------->|     |      |
 | |          |  + ingress    |    | + ingress    |IPv4 |      |
 | +----------+    metadata   |    |   metadata   |Ucast|      |
 |      ^                     +----+              |LPM  |      |
 |      |                      IPv4               +--+--+      |
 |      |                     Validator              |         |
 |      |                      LFB                   |         |
 |      |                                  IPv4 pkt + metadata |
 |      |                        {ingress + NHinfo + InterFEid}|
 |      |                                            |         |
 |                                              +----V----+    |
 |                                              | InterFE |    |
 |                                              |   LFB   |    |
 |                                              +----+----+    |
 +---------------------------------------------------|---------+
                                                     |
                                      IPv4 packet and metadata
                             {ingress + NHinfo + Inter FE info}
  FE2                                                |
 +---------------------------------------------------|---------+
 |                                              +----V----+    |
 |                                              | InterFE |    |
 |                                              |   LFB   |    |
 |                                              +----+----+    |
 |                                                   |         | 
 |                                         IPv4 pkt + metadata |
 |                                          {ingress + NHinfo} |
 |                                                   |         | 
 |             +--------+                       +----V---+     |
 |             | Egress |     IPV4 packet       | IPV4   |     |
 |       <-----+  LFB   |<----------------------+NextHop |     |
 |             |        |{ingress + NHdetails}  | LFB    |     |
 |             +--------+      metadata         +--------+     |
 +-------------------------------------------------------------+
    ]]></artwork>
   </figure>
   </t>

  <t>
  As can be observed in <xref target="fig3"></xref>, the same details
  passed between IPV4 unicast LPM LFB and the IPV4 NH LFB are passed
  to the egress side of the Inter-FE LFB. In addition an index for
  the inter-FE LFB (interFEid) is passed as metadata.
  </t> 

  <t> 
  The egress of the inter-FE LFB uses the received Inter-FE index (InterFEid
  metadata) to select details for encapsulation when sending 
  messages towards the selected neighboring FE.
  These details will include what to communicate as the 
  source and destination FEID; in addition the original metadata and
  any exception IDs may be passed along with the original IPV4
  packet.
  </t> 
  <t> 
  On the ingress side of the inter-FE LFB the received packet and its associated
  details are used
  to decide the packet graph continuation. This includes what of the
  of the original metadata and exception IDs to restore and what next
  LFB class instance to continue processing on.
  In the illustrated case above, an IPV4 Nexthop LFB is selected and
  metadata is passed on to it.
  </t> 
  <t> 
  The ingress side of the inter-FE LFB consumes some of the information passed
  (eg the destination FEID)
  and passes on the IPV4 packet alongside with the ingress + NHinfo 
  metadata to the IPV4 NextHop LFB as was done earlier in both 
   <xref target="fig1"></xref> and  <xref target="fig2"></xref>.
  </t> 
  </section>
  </section>
  <section title="Generic Inter-FE connectivity">
   <t>
   In this section
   we describe the generic encapsulation format in <xref target="fig4"></xref> as
   extended from the ForCES redirect packet format. We intend for the
   described encapsulation
   to be a generic guideline of the different needed fields to be made available
   by any used transport for inter-FE LFB connectivity. We expect that for 
   any transport mechanism used, a description of how the different fields 
   will be encapsulated to be correlated to the information described in
   <xref target="fig4"></xref>. The goal of this document is to provide 
   ethernet encapsulation, and to that end in <xref target="etherencap"></xref> we 
   illustrate how we use the guidelines provided in this section to describe
   the fit for inter-FE LFB interfacing over ethernet.
   </t>
  <t>
   <figure title="Packet format suggestion" align="left" anchor="fig4">
   <artwork><![CDATA[
          +-- Main ForCES header
          |   |
          |   +---- msg type = REDIRECT
          |   +---- Destination FEID
          |   +---- Source FEID
          |   +---- NEID (first word of Correlator)
          |
          +-- T = ExceptionID-TLV
             |  |
             |  +-- +-Exception Data ILV (I = exceptionID , L= length)
             |  |   |  |
             |  |   |  +----- V= Metadata value
             |  .   |
             |  .   |
             |  .   +-Exception Data ILV
             .
             |
             +- T = METADATA-TLV
             |  |
             |  +-- +-Meta Data ILV (I = metaid, L= length)
             |  |   |  |
             |  |   |  +----- V= Metadata value
             |  .   |
             |  .   |
             |  .   +-Meta Data ILV
             .
             +- T = REDIRECTDATA-TLV
                |
                +--  Redirected packet Data
    ]]></artwork>
   </figure>
   </t>

   <!--
   <t>
	   XXX: We are going to need ExceptionID-TLV to be defined. XXX: This
	   is needed regardless of this LFB given the namespace for Exception
	   per IANA definitions is distinct and separate from the metadata 
	   namespace.
   </t>
-->

   <t>
   <list style="symbols">
   <t>
   The ForCES main header as described in RFC5810 is used as a fixed 
   header to describe the Inter-FE encapsulation.

   <list style="symbols">
   <t>
   The Source FEID field
   is mapped to the originating FE and the destination FEID is mapped to
   the destination FEID.
   </t>
   <t>
   The first 32 bits of the correlator field are used to carry the NEID. 
   The 32-bit NEID defaults to 0. 
   </t>
   </list>
   </t>

   <t>
   The  ExceptionID TLV carries one or more exception IDs within
   ILVs. The I in the ILV carries a globally defined exceptionID
   as per-ForCES specification defined by IANA.
   This TLV is new to ForCES and sits in the global ForCES TLV namespace.
   </t>

   <t>
   The METADATA and REDIRECTDATA TLV encapsulations are taken directly from
   <xref target="RFC5810"></xref> section 7.9.
   </t>

   </list>
   </t>

   <t>
   It is expected that a variety of transport encapsulations would be applicable
   to carry the format described in 
   <xref target="fig4"></xref>. In such a case,
   a description of a mapping to interpret the inter-FE details and translate 
   into proprietary or legacy formatting would need to be defined. 
   For any mapping towards these definitions
   a different document to describe the mapping, one per transport, is expected 
   to be defined. 
   </t>


  <section title="Inter-FE Ethernet Connectivity" anchor="etherencap">

   <t>
   In this document, we describe a format that is to be used 
   over Ethernet. An existing implementation of this specification
   on top of Linux Traffic Control <xref target="linux-tc"></xref> 
   is described in <xref target="tc-ife"></xref>.
   </t>

<t>
The following describes the mapping from <xref target="fig4"></xref>
to ethernet wire encapsulation illustrated in <xref target="fige1"></xref>.
<list style="symbols">
<t>
  When an NE tag is needed, a VLAN tag will be used.
  Note: that the NEID as per <xref target="fig4"></xref> 
  is described as being 32 bits while a vlan tag
  is 12 bits. It is however thought to be sufficient to use 12 bits
  within the scope of a LAN NE cluster.
</t>
<t>
An ethernet type will be used to imply that a wire format is carrying 
an inter-FE LFB packet. The ethernet type to be used is 0xFEFE
(XXX: Note to editor, to be updated when issued by IEEE Standards Association).
</t>
<t>
  The destination FEID will be mapped to the destination MAC
  address of the target FEID.
</t>
<t>
  The source FEID will be mapped to the source MAC
  address of the originating FEID.
</t>
<t>
In this version of the specification, we only focus on data
and metadata. Therefore we are not going to describe how to 
carry the ExceptionID information (future versions may). We are also
not going to use METADATA-TLV or REDIRECTDATA-TLV in order to save
shave off some overhead bytes.
<xref target="fige1"></xref> describes the payload.
</t>
</list>

</t>

  <t>
   <figure title="Packet format suggestion" align="left" anchor="fige1">
   <artwork><![CDATA[

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Outer Destination MAC Address  (Destination FEID)            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Outer Destination MAC Address | Outer Source MAC Address      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Outer Source MAC Address  (Source FEID)                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Optional 802.1Q info (NEID)   | Inter-FE ethertype            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Metadata length               | TLV encoded Metadata          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | TLV encoded Metadata ~~~..............~~                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Original Ethernet payload ~~................~~                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    ]]></artwork>
   </figure>
   </t>

<t>
An outer Ethernet header is introduced to carry the information
on Destination FEID, Source FEID and optional NEID. 
<list style="symbols">
<t>
The Outer Destination MAC Address carries the Destination FEID identification.
</t>
<t>
Outer Source MAC Address carries the Source FEID identification.
</t>
<t>
When an NEID is needed, an optional 802.1Q is carried with 12-bit VLANid 
representing the NEID.
</t>
<t>
The ethernet type is used to identify the frame as inter-FE LFB type. 
Ethertype 0xFEFE is to be used (XXX: Note, to editor update when available).

</t>
<t>
The 16-bit metadata length is used to described the total encoded metadata
length (including the 16 bits used to encode the metadata length).
</t>
<t>
One or more TLV encoded metadatum follows the metadata length field. The TLV type 
identifies the Metadata id. ForCES IANA-defined Metadata ids will be used.

We recognize that using a 16 bit TLV restricts the metadata 
id to 16 bits
instead of ForCES define space of 32 bits. However, at the time of publication
we believe this is sufficient to carry all the info we need and approach 
taken would save us 4 bytes per Metadatum transferred.
</t>
<t>
	The original ethernet payload is appended at the end of the metadata as
	shown.
</t>
</list>
</t>

  <section title="Inter-FE Ethernet Connectivity Issues" anchor="etherissues">
  <t>
	  There are several issues that may arise due to using direct ethernet
	  encapsulation. 
   <list style="symbols">
	   <t>
	   Because we are adding data to existing ethernet frames, MTU issues
	   may arise. We recommend:
		   <list>
		   <t>
		   To use large MTUs when possible (example with jumbo frames).
		   </t>
		   <t>
		   Limit the amount of metadata that could
		   be transmitted; our definition allows for filtering of
		   which metadata is to be encapsulated in the frame. 
		   We recommend implementing this by setting the egress
		   port MTU to allow space for maximum size of the metadata
		   total size you wish to allow between FEs. In such a setup,
		   the port is configured to "lie" to the upper layers by
		   claiming to have a lower MTU than it is capable of.
		   MTU setting can be achieved by ForCES control of
		   the port LFB(or other config). 
		   In essence, the control plane making
		   a decision for the MTU settings of the egress port 
		   is implicitly deciding how much metadata will be allowed.
		   </t>
		   </list>
	   </t>
	   <t>
	 The frame may be dropped if there is congestion on the receiving
	 FE side. One approach to mitigate this issue is to make sure that
	 inter-FE LFB frames receive the highest priority treatment
	 when scheduled on the wire. Typically protocols that tunnel in
	 the middle box do not care and depend on the packet originator to
	 resend if the originator cares about reliability.
	 We do not expect to be any different.
	   </t>

	   <t>
	   While we expect to use a unique IEEE-issued ethertype for 
	   the inter-FE traffic, we use
	   lessons learnt from VXLAN deployment xref to be more flexible
	   on the settings of the ethertype value used. We make the ether type
	   an LFB read-write component.  Linux VXLAN implementation uses UDP port
	   8472 because the deployment happened much earlier than the point
	   of RFC publication where the IANA assigned udp port issued was
	   4789 <xref target="vxlan-udp"></xref>. For this reason we make it possible to define at control
	   time what ethertype  to use and default to the
	   IEEE issued ethertype. We justify this by assuming that a given 
	   ForCES NE is likely to be owned by a single organization and that the 
	   organization's CE(or CE cluster) could program all participating 
	   FEs via the inter-FE LFB (described in this document) to recognize 
	   a private ethernet type used for inter-LFB traffic (possibly those 
	   defined as available for private use by the IEEE, namely: IDs 
	   0x88B5 and 0x88B6)
	   </t>
   </list>

  </t>
   </section>
   </section>

  </section>
  <section title="Detailed Description of the Ethernet inter-FE LFB">
  <t>
  The ethernet inter-FE LFB has two LFB input ports and three
  LFB output ports.
  </t>
  <t>
   <figure title="Inter-FE LFB" align="left" anchor="fig6">
   <artwork><![CDATA[
                 +-----------------+
  Inter-FE LFB   |                 |
  Encapsulated   |             OUT2+--> decapsulated Packet + metadata
  -------------->|IN2              |     
  Packet         |                 |
                 |                 |
  raw Packet +   |             OUT1+--> encapsulated Packet
  -------------->|IN1              |
  Metadata       |                 |
                 |    EXCEPTIONOUT +--> ExceptionID, packet + metadata
                 |                 |
                 +-----------------+

    ]]></artwork>
   </figure>
   </t>
    <section title="Data Handling">
    <t>
    The Inter-FE LFB can be positioned at the egress of a source FE.
    In such a case an Inter-FE LFB instance receives via port IN1, raw 
    packet and metadata IDs from the preceding LFB instance.
    The InterFEid metadatum MAY be present on the incoming raw data. 
    The processed encapsulated packet will go out on either LFB port
    OUT1 to a downstream LFB or EXCEPTIONOUT port in the case of a failure.
    </t>
    <t> 
    The Inter-FE LFB can be positioned at the ingress of a receiving FE.
    In such a case an Inter-FE LFB receives, via port IN2, an encapsulated packet.
    Successful processing of the packet will result in a raw packet with 
    associated metadata IDs going downstream to an LFB connected on OUT2.
    On failure the data is sent out EXCEPTIONOUT.
    </t>
    <t> 
     
    </t> 
    <t>
    The Inter-FE LFB may use the 
    InterFEid metadatum on egress of an FE to lookup the IFETable table.
    The interFEid in such a case will be generated by 
    an upstream LFB instance (i.e one preceding the Inter-FE LFB).
    The output result constitutes a matched table row which has the InterFEinfo
    details i.e.
    the tuple {NEID,Destination FEID,Source FEID, inter FE type, metafilters}. 
    The metafilters lists define which Metadatum
    are to be passed to the neighboring FE. 
    </t>

    <t>	

    The component names used in describing processing are defined in 
	    <xref target="comps"></xref>
    </t>

    <section title="Egress Processing">
    <t>
     The egress Inter-FE LFB will receive an ethernet frame and accompanying
     metadatum (including optionally the InterFEid metadatum) at LFB port
     IN1. The ethernet frame may be 802.1Q tagged.
    </t>
    <t>
    The InterFEid may be used to lookup IFETable table. If lookup is successful, the 
    inter-FE LFB will perform the following actions using the resulting
    tuple: 
    <list style="symbols">

       <t>
       Increment statistics for packet and byte count observed.
       </t>
       <t>
       Walk each packet metadatum and apply against the relevant MetaFilterList.
       If no legitimate metadata is found that needs to be passed downstream
       then the processing stops and the packet is allowed through as is.
       </t>
       <t>
	Check that the additional overhead of the outer header and encapsulated
	metadata will not exceed MTU. If it does, increment the error packet
	count statistics and return allowing the packet to pass through.
       </t>

       <t>
	 create the outer ethernet header which is a duplicate of the incoming
	 frame's ethernet header. The outer ethernet header may have an optional
	 802.1q header (if one was included in the original frame).
       </t>
       <t>
       If the NEID field is present (not 0) and the original header had
       a vlan tag, replace the vlan tag on the outer header with the value
       from the matched NEID field. If the NEID field is present (not 0)
       and the original header did not have a vlan tag, create one that matches
       the NEID field and appropriately add it to the outer header. If
       the NEID field is absent or 0, do nothing.
	</t>
       <t>
       If the optional DSTFE is present, 
       set the Destination MAC address of the outer header with value
       found in the DSTFE field. When
       absent, then the inner destination MAC address is used (at this point
       already copied).      
       </t>
       <t>
       If the optional SRCFE is present, set the Source MAC address of 
       the outer header with value found in the SRCFE field. If SRCFE is
       absent then the inner source MAC address is used (at this point
       already copied).      
       </t>
       <t>
       If the optional IFETYPE is present, set the outer ethernet type to
       the value found in IFETYPE.  If IFETYPE is absent then the standard
       ethernet type is used (XXX: Note to editor, to be updated).      
       </t>
       <t>
        encapsulate each allowed metadatum in a TLV. Use the 
       Metaid as the "type" field in the TLV header.
       The TLV should be aligned to 32 bits. This means you may
       need to add padding of zeroes to ensure alignment.
	</t>

       <t>
       Update the Metadata length to the sum of each TLV's space
       + 2 bytes (for the Metadata length field 16 bit space).
	</t>

</list>
	The resulting packet is sent to the next LFB instance connected to the 
	OUT1 LFB-port; typically a port LFB.
    </t>

    <t>
	In the case of a failed lookup or a zero-value InterFEid, (or absence
	of InterFEid when needed by the implementation) the packet is sent
	out unchanged via the OUT1 LFB Class instance port (typically towards
	a Port LFB).
    </t>

    </section>

    <section title="Ingress Processing">
    <t>
      An inter-FE LFB packet is recognized by looking at the etherype
      received on  LFB instance port IN2. The IFETable table may be 
      optionally utilized to provide metadata filters.
    <list style="symbols">
    <t>
    Increment statistics for packet and byte count observed.
    </t>
    <t>
    Look at the metadata length field and
    walk the packet data extracting from the TLVs the metadata values.
    For each metadatum extracted, the metaid is
    compared against the relevant IFETable row metafilter list.
    If the metadatum is recognized, and is allowed by the filter
    the corresponding implementation 
    metadatum field is set. If an unknown metadatum id is encountered,
    or if the metaid is not found in the option allowed filter list
    the implementation is expected to ignore it, increment the packet error
    statistic and proceed processing other metadatum.
    </t>
    <t>
    Upon completion of processing all the metadata, the inter-FE LFB instance 
    resets the header to point to the original (inner) ethernet header
    i.e skips the IFE header information. At this point the the original
    ethernet frame that
    was passed to the egress Inter-FE LFB at the source FE is
    reconstructed. This data is then passed along with the reconstructed
    metadata downstream to the next LFB instance in the graph.
    </t>
</list>
    </t>
    <t>
    In the case of processing failure of either ingress or
    egress positioning of the LFB, the packet and metadata are 
    sent out the EXCEPTIONOUT LFB port with appropriate error id.
    Note that the EXCEPTIONOUT LFB port is merely an abstraction
    and implementation may in fact drop packets as described above.
    </t>
    </section>

    </section>
<!--
    <section title="Metadata">
    <t>
    A single (to be define from IANA space) metadatum, InterFEid, is defined.
    </t>
    </section>
-->
    <section title="Components" anchor="comps">
    <t>
	    There are two LFB component populated by the CE. 
 </t>
     <t>
	    The CE optionally programs LFB instances in a service graph that require 
	    inter-FE connectivity with InterFEid values to correspond to the 
	    inter-FE LFB IFETable table entries to use.
    </t>
    <t>
	    The first component is an array known as the IFETable table.
	    The array rows are made up of IFEInfo structure.
	    The IFEInfo structure constitutes:
	    optional NEID, optional IFETYPE,  optional Destination FEID(DSTFE),
	    optional Source FEID (SRCFE), optional 
	    array of allowed Metaids (MetaFilterList).
	    The table is looked up by a 32 bit
	    index passed from an upstream LFB class instance in the form of
	    InterFEid metadatum.
    </t>
    <t>
    The second component(ID 2) is IFEStats table which carries the basic
    stats structure bstats. The table index value used to lookup this table is
    the same one as in IFETable table; in other words for a table row index
    10 in the IFETable table, its corresponding stats will be found in row
    index of the IFEStats table.
    </t>
    </section>

    <section title="Inter-FE LFB XML Model">

  <t>

   <figure title="Inter-FE LFB XML" align="left" anchor="fig8">
   <artwork><![CDATA[
<LFBLibrary xmlns="urn:ietf:params:xml:ns:forces:lfbmodel:1.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       provides="IFE">
  <frameDefs>

     <frameDef>
	 <name>EthernetAny</name>
	  <synopsis>Packet with any Ethernet type</synopsis>
     </frameDef>
     <frameDef>
	 <name>InterFEFrame</name>
	 <synopsis>
		 Packet with an encapsulate IFE Ethernet type
	 </synopsis>
     </frameDef>

  </frameDefs>

  <dataTypeDefs>

    <dataTypeDef>
       <name>bstats</name>
       <synopsis>Basic stats</synopsis>
    <struct>
	<component componentID="1">
	 <name>bytes</name>
	 <synopsis>The total number of bytes seen</synopsis>
	 <typeRef>uint64</typeRef>
	</component>

	<component componentID="2">
	 <name>packets</name>
	 <synopsis>The total number of packets seen</synopsis>
	 <typeRef>uint32</typeRef>
	</component>

	<component componentID="3">
	 <name>errors</name>
	 <synopsis>The total number of packets with errors</synopsis>
	 <typeRef>uint32</typeRef>
	</component>
    </struct>

   </dataTypeDef>

     <dataTypeDef>
        <name>IFEInfo</name>
	<synopsis>Describing IFE table row Information</synopsis>
        <struct>
           <component componentID="1">
             <name>NEID</name>
	     <synopsis>
		  The VLAN Id 12 bits part of the 802.1q TCI field.
	     </synopsis>
	     <optional/>
             <typeRef>uint16</typeRef>
           </component>
           <component componentID="2">
             <name>IFETYPE</name>
	     <synopsis>
		 the ethernet type to be used for outgoing IFE frame
	     </synopsis>
	     <optional/>
             <typeRef>uint16</typeRef>
           </component>
           <component componentID="3">
             <name>DSTFE</name>
	     <synopsis>
		     the destination MAC address of destination FE
	     </synopsis>
	     <optional/>
             <typeRef>byte[6]</typeRef>
           </component>
           <component componentID="4">
             <name>SRCFE</name>
	     <synopsis>
		     the source MAC address used for the source FE
	     </synopsis>
	     <optional/>
             <typeRef>byte[6]</typeRef>
           </component>
           <component componentID="5">
             <name>MetaFilterList</name>
	     <synopsis>
		     the allowed metadata filter table
	     </synopsis>
	     <optional/>
             <array type="variable-size">
               <typeRef>uint32</typeRef>
             </array>
            </component>


        </struct>
     </dataTypeDef>

  </dataTypeDefs>

   <metadataDefs>
      <metadataDef>
        <name>InterFEid</name>
	<synopsis>
		Metadata identifying the index of the NexFE table
	</synopsis>
          <metadataID>16</metadataID>
          <typeRef>uint32</typeRef>
       </metadataDef>
   </metadataDefs>

  <LFBClassDefs>
    <LFBClassDef LFBClassID="6612">
      <name>IFE</name>
      <synopsis>
         This LFB describes IFE connectivity parameterization
      </synopsis>
      <version>1.0</version>

	<inputPorts>

	  <inputPort>
	   <name>IN1</name>
	   <synopsis>
		   The input port of the egress side.
		   It expects any type of Ethernet frame.
	   </synopsis>
	   <expectation>
		<frameExpected>
		<ref>EthernetAny</ref>
		</frameExpected>
	   </expectation>
	  </inputPort>
	  <inputPort>
	   <name>IN2</name>
	   <synopsis>
		   The input port of the ingress side.
		   It expects an inter-FE encapsulated Ethernet frame
		   with associated metadata.
	   </synopsis>
	   <expectation>
		<frameExpected>
		  <ref>InterFEFrame</ref>
		</frameExpected>
                <metadataExpected>
                  <ref>InterFEid</ref>
                </metadataExpected>
	 </expectation>
	</inputPort>

       </inputPorts>

       <outputPorts>

            <outputPort>
               <name>OUT1</name>
               <synopsis>
                 The output port of the egress side.
               </synopsis>
               <product>
                  <frameProduced>
                     <ref>InterFEFrame</ref>
                  </frameProduced>
                  <metadataProduced>
                     <ref>InterFEid</ref>
                  </metadataProduced>
               </product>
            </outputPort>

            <outputPort>
               <name>OUT2</name>
               <synopsis>
                 The output port of the Ingress side.
               </synopsis>
               <product>
                  <frameProduced>
                     <ref>EthernetAny</ref>
                  </frameProduced>
                  <metadataProduced>
                     <ref>InterFEid</ref>
                  </metadataProduced>
               </product>
            </outputPort>

            <outputPort>
               <name>EXCEPTIONOUT</name>
               <synopsis>
                 The exception handling path
               </synopsis>
               <product>
                  <frameProduced>
                     <ref>EthernetAny</ref>
                  </frameProduced>
                  <metadataProduced>
                     <ref>ExceptionID</ref>
                     <ref>InterFEid</ref>
                  </metadataProduced>
               </product>
            </outputPort>

       </outputPorts>

      <components>

         <component componentID="1" access="read-write">
            <name>IFETable</name>
            <synopsis>
               the table of all InterFE relations
            </synopsis>
            <array type="variable-size">
               <typeRef>IFEInfo</typeRef>
            </array>
         </component>
         <component componentID="2">
             <name>IFEStats</name>
	     <synopsis>
		     the stats corresponding to the IFETable table
	     </synopsis>
             <typeRef>bstats</typeRef>
         </component>

     </components>

    </LFBClassDef>
   </LFBClassDefs>
</LFBLibrary>
    ]]></artwork>
   </figure>
   </t>

    </section>

  </section>
  <section anchor="Acknowledgements" title="Acknowledgements">
	  <t>
	  The authors would like to thank Joel Halpern and Dave Hood for
	  the stimulating discussions. Evangelos Haleplidis contributed
	  to improving this document.
	  </t>
  </section>

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

    <section anchor="IANA" title="IANA Considerations">
    <t>
    This memo includes two IANA requests within the registry
    https://www.iana.org/assignments/forces
    </t>
    <t>
    The first request is for the sub-registry "Logical Functional Block (LFB) 
    Class Names and Class Identifiers" to request for the reservation of
    LFB class name IFE with LFB classid 6112 with version 1.0.
    </t>
    <t>
    The second request is for the sub-registry "Metadata ID" to request
    for the InterFEid metadata the value 0x00000010.
    </t>

    </section>

    <section anchor="IEEE" title="IEEE Assignment Considerations">
    <t>
    This memo includes a request for a new ethernet protocol type
    as described in <xref target="etherencap"/>.
    </t>
    </section>

    <section anchor="Security" title="Security Considerations">
    <t>
    This document does not alter either the ForCES model 
    <xref target="RFC5812"> the ForCES Model</xref>
    or
    <xref target="RFC5810"> the ForCES Protocol</xref>
    As such, it has no impact on their security considerations.  This 
    document simply defines the operational parameters and capabilities of 
    an LFB that performs LFB class instance extensions across nodes
    under a single administrative control.
this document does not attempt to analyze the presence or possibility
of security interactions created by allowing LFB graph extension on
packets.  Any such issues, if they exist, are for the designers of
the particular data path, not the general mechanism.
    </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://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
      &RFC5810;
      &RFC5811;
      &RFC5812;
      &RFC3746;

    </references>

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

    &RFC2119;
    &RFC6956;

    <reference anchor="brcm-higig" target="http://www.broadcom.com/products/brands/HiGig">
	<front>
	<title>Higig</title>
	<author/>
	<date/>
	</front>
    </reference>



    <reference anchor="vxlan-udp" target="https://www.kernel.org/pub/linux/utils/net/iproute2/">
	<front>
		<title>iproute2 and kernel code (drivers/net/vxlan.c)</title>
	<author/>
	<date/>
	</front>
    </reference>

<reference anchor="linux-tc">
<front>
	<title>Linux Traffic Control Classifier-Action Subsystem Architecture
	</title>
<author fullname="Jamal Hadi Salim" initials="J." surname="Hadi Salim">
	<organization />
  </author>
  <date month="Feb" year="2015" />
</front>
<seriesInfo name="netdev" value="01" />
</reference>

<reference anchor="tc-ife">
<front>
	<title>Distributing Linux Traffic Control Classifier-Action Subsystem
	</title>
<author fullname="Jamal Hadi Salim" initials="J." surname="Hadi Salim">
  </author>
	<author fullname="Damascane M. Joachimpillai" initials="D.J." surname="Joachimpillai">
  </author>
  <date month="Feb" year="2015" />
</front>
<seriesInfo name="netdev" value="01" />
</reference>

    </references>

    <!-- Change Log

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