One document matched: draft-dong-forces-lfblib-00.txt



   ForCES Working Group                                     Ligang Dong 
   Internet-Draft                               Zhejiang Gongshang Univ. 
   Expires: Sept., 2007                                       Fengen Jia 
                                                                    NDSC 
                                                            Weiming Wang 
                                               Zhejiang Gongshang Univ. 
                                                              Mar. 2007 
    
                          A LFB Library for ForCES 
     
                        draft-dong-forces-lfblib-00.txt 
    
    
    
Status of this Memo 
    
   By submitting this Internet-Draft, each author represents that any 
   applicable patent or other IPR claims of which he or she is aware 
   have been or will be disclosed, and any of which he or she becomes 
   aware will be disclosed, in accordance with Section 6 of BCP 79. 
    
   Internet-Drafts are working documents of the Internet Engineering 
   Task Force (IETF), its areas, and its working groups.  Note that 
   other groups may also distribute working documents as Internet-Drafts. 
    
   Internet-Drafts are draft documents valid for a maximum of six 
   months and may be updated, replaced, or obsoleted by other documents 
   at any time.  It is inappropriate to use Internet-Drafts as reference 
   material or to cite them other than as "work in progress." 
    
   The list of current Internet-Drafts can be accessed at 
   http://www.ietf.org/ietf/1id-abstracts.txt. 
    
   The list of Internet-Draft Shadow Directories can be accessed at 
   http://www.ietf.org/shadow.html. 
    
 
Conventions used in this document 
    
   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 [RFC2119]. 
 
Abstract 
 
   This document defines a set of ForCES FE LFBs by use of the XML 
   schema defined in ForCES FE model. 
    
 
 
L.Dong et al.               Expires Sept., 2007               [Page 1] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
Table of Contents 
 
   1. Introduction....................................................2 
   2. Definitions of Types............................................3 
      2.1. Frame Type.................................................3 
      2.2. Data Type..................................................4 
      2.3. Metadata Type.............................................25 
   3. LFB Definitions................................................30 
      3.1. Port LFBs.................................................30 
         3.1.1. EtherPort LFB........................................30 
         3.1.2. EtherEncap LFB.......................................34 
         3.1.3. EtherDecap LFB.......................................36 
      3.2. IPv4 unicast forwarding LFBs..............................37 
         3.2.1. IPv4Validator LFB....................................38 
         3.2.2. IPv4UcastLPM LFB.....................................40 
         3.2.3. IPv4NextHopApplicator LFB............................43 
         3.2.4. ARP LFB..............................................44 
         3.2.5. ICMPProc LFB.........................................45 
         3.2.6. OptionProc LFB.......................................46 
      3.3. IPv6 unicast forwarding LFBs..............................47 
         3.3.1. IPv6Validator LFB....................................47 
         3.3.2. IPv6UcastLPM LFB.....................................49 
         3.3.3. IPv6UcastNexthopApplicator LFB.......................51 
         3.3.4. IPv6AddrResolution LFB...............................53 
         3.3.5. ICMPv6Proc LFB.......................................54 
         3.3.6. ExtendHeaderProc LFB.................................55 
      3.4. Queue manager & scheduler LFBs............................56 
         3.4.1. Scheduler LFB........................................56 
         3.4.2. Queue LFB............................................57 
      3.5. LFBs for Multi-FE.........................................59 
         3.5.1. InterFECommEncap LFB.................................59 
         3.5.2. InterFECommDecap LFB.................................60 
      3.6. Common Function LFBs......................................61 
         3.6.1. RedirectSink LFB.....................................61 
         3.6.2. RedirectSource LFB...................................62 
         3.6.3. MetaClassifier LFB...................................63 
   4. Use Case.......................................................64 
   5. IANA Considerations............................................64 
   6. References.....................................................64 
   7. Author's Address...............................................65 
   Copyright Statement...............................................65 
 
 1. Introduction 
    
   ForCES provides an architectural framework, in which a Network 
   Element (NE) consists of Forwarding Elements (FEs) and Control 
   Elements (CEs). FEs are further abstracted by a set of basic building 
   blocks, called Logical Function Blocks (LFBs). RFC 3654 has defined 
 
 L.Dong et al.               Expires Sept., 2007              [Page 2] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
   the ForCES requirements, and RFC 3746 has defined the ForCES 
   framework. ForCES protocol [ForCES-PL] is defining the information 
   exchange protocol between CEs and FEs. LFBs in FEs are controlled by 
   a CE via ForCES protocol. ForCES FE model [FE-Model] specifies a 
   formal way to model LFBs, in which an XML schema is provided for 
   definition of LFB attributes, capabilities, and events.  
          
   This document provides a set of LFBs by use of the XML schema 
   defined in [FE-Model]. Section 2 defines the data types used in the 
   following LFB description. Section 3 presents the definitions of a 
   set of LFBs according the LFB XML schema.  
    
 2. Definitions of Types 
    
   This section provides a set of LFB frame, data type, and metadata 
   definitions for use by all LFB Class definitions in this document.  
    
    2.1. Frame Type  
    
   <frameDefs> 
        <frameDef> 
                <name>EthernetII</name> 
                <synopsis>an Ethernet II frame type</synopsis> 
        </frameDef> 
        <frameDef> 
                <name>Ethernet802.3</name> 
                <synopsis>An Ethernet 802.3 frame type</synopsis> 
        </frameDef> 
        <frameDef> 
                <name>Ethernet802.2</name> 
                <synopsis>An Ethernet 802.2 frame type</synopsis> 
        </frameDef> 
        <frameDef> 
                <name>Ethernet802.2SNAP</name> 
                <synopsis>An Ethernet 802.2 with SNAP frame</synopsis> 
        </frameDef> 
        <frameDef> 
                <name>IPv4</name> 
                <synopsis>An IPv4 packet</synopsis> 
        </frameDef> 
        <frameDef> 
                <name>IPv6</name> 
                <synopsis>An IPv6 packet</synopsis> 
        </frameDef> 
        <frameDef> 
                <name>MetadataFrame</name> 
                <synopsis>Frame only contains metadata</synopsis> 
        </frameDef> 
        <frameDef> 
 
 L.Dong et al.               Expires Sept., 2007              [Page 3] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                <name>Arbitrary</name> 
                <synopsis> 
                Any kind of frame except Metadata Frame 
                </synopsis> 
        </frameDef> 
   </frameDefs> 
    
    2.2. Data Type 
    
   <dataTypeDefs> 
        <dataTypeDef> 
                <name>IEEEMAC</name> 
                <synopsis>IEEE mac</synopsis> 
                <typeRef>byte[6]</typeRef> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>LANSpeedType</name> 
                <synopsis>LAN speed values</synopsis> 
                <atomic> 
                        <baseType>uint32</baseType> 
                        <specialValues> 
                                <specialValue value="0x00000001"> 
                                        <name>LAN_speed_10M</name> 
                                        <synopsis> 
                                                10M Ethernet 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="0x00000002"> 
                                        <name>LAN_speed_100M</name> 
                                        <synopsis> 
                                                100M Ethernet 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="0x00000003"> 
                                        <name>LAN_speed_1G</name> 
                                        <synopsis> 
                                                1000M Ethernet 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="0x00000004"> 
                                        <name>LAN_speed_10G</name> 
                                        <synopsis> 
                                                10G Ethernet 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="0x00000005"> 
                                        <name>LAN_speed_Auto</name> 
                                        <synopsis> 
                                                LAN speed Auto 
 
 L.Dong et al.               Expires Sept., 2007              [Page 4] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                                        </synopsis> 
                                </specialValue> 
                        </specialValues> 
                </atomic> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>NegotiationType</name> 
                <synopsis>Negotiation types</synopsis> 
                <atomic> 
                        <baseType>uint32</baseType> 
                        <specialValues> 
                                <specialValue value="0x00000001"> 
                                        <name>Auto</name> 
                                        <synopsis> 
                                                Auto negotiation 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="0x00000002"> 
                                        <name>Half-duplex</name> 
                                        <synopsis> 
                                        Port negotiation half duplex 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="0x00000003"> 
                                        <name>Full-duplex</name> 
                                        <synopsis> 
                                        Port negotiation full duplex 
                                        </synopsis> 
                                </specialValue> 
                        </specialValues> 
                </atomic> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>PortStatsType</name> 
                <synopsis>port statistics</synopsis> 
                <struct> 
                        <element elementID="1"> 
                                <name>InUcastPkts</name> 
                                <synopsis> 
                                Number of unicast packets received 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name>InMulticastPkts</name> 
                                <synopsis> 
                                Number of multicast packets received 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
 
 L.Dong et al.               Expires Sept., 2007              [Page 5] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                        </element> 
                        <element elementID="3"> 
                                <name>InBroadcastPkts</name> 
                                <synopsis> 
                                Number of broadcast packets received 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                        <element elementID="4"> 
                                <name>InOctets</name> 
                                <synopsis> 
                                number of octets received 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                        <element elementID="5"> 
                                <name>OutUcastPkts</name> 
                                <synopsis> 
                                Number of unicast packets transmitted 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                        <element elementID="6"> 
                                <name>OutMulticastPkts</name> 
                                <synopsis> 
                                Number of multicast packets transmitted 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                        <element elementID="7"> 
                                <name>OutBroadcastPkts</name> 
                                <synopsis> 
                                Number of broadcast packets transmitted 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                        <element elementID="8"> 
                                <name>OutOcetes</name> 
                                <synopsis> 
                                Number of octets transmitted 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                        <element elementID="9"> 
                                <name>InErrorPkts</name> 
                                <synopsis> 
                                Number of input error packets 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
 
 L.Dong et al.               Expires Sept., 2007              [Page 6] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                        </element> 
                        <element elementID="10"> 
                                <name>OutErrorPkts</name> 
                                <synopsis> 
                                Number of output error packets 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>PortStatusValues</name> 
                <synopsis>   
             The possible values of status.  Used for both   
             administrative and operation status  
                </synopsis> 
                <atomic> 
                        <baseType>uchar</baseType> 
                        <specialValues> 
                                <specialValue value="0"> 
                                        <name>Disabled </name> 
                                        <synopsis> 
                                The port is operatively disabled. 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="1"> 
                                        <name>UP</name> 
                                        <synopsis> 
                                        The port is up. 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="2"> 
                                        <name>Down</name> 
                                        <synopsis> 
                                        The port is down. 
                                        </synopsis> 
                                </specialValue> 
                        </specialValues> 
                </atomic> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>IPAddr</name> 
                <synopsis>IPv4 address</synopsis> 
                <typeRef>uint32</typeRef> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>MacFilterTableEntryType</name> 
                <synopsis>MAC filter table entry</synopsis> 
                <typeRef>IEEEMAC</typeRef> 
 
 L.Dong et al.               Expires Sept., 2007              [Page 7] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>LocalIpAddrType</name> 
                <synopsis> 
                The device local IP address information 
                </synopsis> 
                <struct> 
                        <element elementID="1"> 
                                <name>FEID</name> 
                                <synopsis> 
                                The FE on which the port ip resides 
                                </synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name>IfIndex</name> 
                                <synopsis> 
                                port index on the specified FE 
                                </synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                        <element elementID="3"> 
                                <name>IPaddr</name> 
                                <synopsis> 
                                IP address of the port 
                                </synopsis> 
                                <typeRef>IPAddr</typeRef> 
                        </element> 
                        <element elementID="4"> 
                                <name>netmask</name> 
                                <synopsis> 
                                Netmask of this ip address 
                                </synopsis> 
                                <typeRef>IPAddr</typeRef> 
                        </element> 
                        <element elementID="5"> 
                                <name>BcastAddr</name> 
                                <synopsis> 
   The associated Broadcast address of the ip address  
                                </synopsis> 
                                <typeRef>IPAddr</typeRef> 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>LocalIpv6AddrType</name> 
                <synopsis>The device local IPv6 address 
   infomation</synopsis> 
                <struct> 
 
 L.Dong et al.               Expires Sept., 2007              [Page 8] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                        <element elementID="1"> 
                                <name>FEID</name> 
                                <synopsis> 
                                The FE on which the port ip resides 
                                </synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name>IfIndex</name> 
                                <synopsis> 
                                Port index on the specified FE 
                                </synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                        <element elementID="3"> 
                                <name>IPv6addr</name> 
                                <synopsis> 
                                IP address of the port 
                                </synopsis> 
                                <typeRef>IPv6Addr</typeRef> 
                        </element> 
                        <element elementID="4"> 
                                <name>prefixlen</name> 
                                <synopsis> 
                                Prefix length of this ip address 
                                </synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>IPv4Addr</name> 
                <synopsis>IPv4 address</synopsis> 
                <typeRef> uint32</typeRef> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>IPv6Addr</name> 
                <synopsis>IPv6 address</synopsis> 
                <typeRef>byte[16]</typeRef> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>IPv4Prefix</name> 
                <synopsis>  
                IPv4 prefix defined by an address and a prefix length  
                </synopsis> 
                <struct> 
                        <element elementID="1"> 
                                <name>address</name> 
                                <synopsis>Address part</synopsis> 
 
 L.Dong et al.               Expires Sept., 2007              [Page 9] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                                <typeRef>IPv4addr</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name>prefixlen</name> 
                                <synopsis>Prefix length part</synopsis> 
                                <atomic> 
                                        <baseType>uchar</baseType> 
                                        <rangeRestriction> 
                                                <allowedRange min="0" 
   max="32"/> 
                                        </rangeRestriction> 
                                </atomic> 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>LFBStatusValues</name> 
                <synopsis>The possible values of LFB status</synopsis> 
                <atomic> 
                        <baseType>uchar</baseType> 
                        <specialValues> 
                                <specialValue value="1"> 
                                        <name>OperDisable</name> 
                                        <synopsis>The LFB is removed 
   from the FE data processing path, not process packets</synopsis> 
                                </specialValue> 
                                <specialValue value="2"> 
                                        <name> OperEnable </name> 
                                        <synopsis>The LFB is operable 
   and on the FE data processing path</synopsis> 
                                </specialValue> 
                        </specialValues> 
                </atomic> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name> IPv4NextHopInfoType </name> 
                <synopsis> 
   IPv4 nexthop information, include nexthop ip address, output FE and 
   interface etc. 
                </synopsis> 
                <struct> 
                        <element elementID="1"> 
                                <name>FEID</name> 
                                <synopsis>Output FE ID</synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name>OutputPortID</name> 
                                <synopsis>output port index</synopsis> 
 
L.Dong et al.               Expires Sept., 2007              [Page 10] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                                <typeRef>uint32</typeRef> 
                        </element> 
                        <element elementID="3"> 
                                <name>MTU</name> 
                                <synopsis> 
   The maximum transmission unit of the nexthop link. 
                                </synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                        <element elementID="4"> 
                                <name> Flags </name> 
                                <synopsis> 
   Associated flags of the nexthop, such as local delivery, multicast 
   etc. 
                                </synopsis> 
                                <typeRef>NextHopFlagsType</typeRef> 
                        </element> 
                        <element elementID="5"> 
                                <name> NexthopIPaddr </name> 
                                <synopsis> 
                                IP address of the nexthop 
                                </synopsis> 
                                <typeRef>IPv4Addr</typeRef> 
                        </element> 
                        <element elementID="6"> 
                                <name> L2Index </name> 
                                <synopsis>Index into the L2 link layer 
   table, such as IPv4 ARP table or IPv6 NBR table.</synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                        <element elementID="7"> 
                                <name> EncapNeeded </name> 
                                <synopsis> 
   The type of encapsulation needed on the packet. 
                                </synopsis> 
                                <typeRef>EncapType</typeRef> 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>IPv4PrefixTableEntry</name> 
                <synopsis>IPv4 prefix table entry</synopsis> 
                <struct> 
                        <element elementID="1"> 
                                <name> Prefix </name> 
                                <synopsis>IPv4 address prefix</synopsis> 
                                <typeRef> IPv4Prefix </typeRef> 
                        </element> 
                        <element elementID="2"> 
 
L.Dong et al.               Expires Sept., 2007              [Page 11] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                                <name> NexthopID </name> 
                                <synopsis> 
                                Index into the nexthop table 
                                </synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name> IPv4UcastLPMStatisticsType </name> 
                <synopsis>Statistics of IPv4UcastLPM LFB</synopsis> 
                <struct> 
                        <element elementID="1"> 
                                <name> InRcvdPkts </name> 
                                <synopsis> 
   The total number of input packets received from interfaces, 
   including those received in error 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name> FwdPkts </name> 
                                <synopsis> 
                                IPv4 packet forwarded by this LFB 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                        <element elementID="3"> 
                                <name> NoRoutePkts </name> 
                                <synopsis> 
                        The number of IP datagrams discarded because no 
                        route could be found to transmit them to their 
                        destination.  
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                        <element elementID="4"> 
                                <name>InDeliverPkts</name> 
                                <synopsis> 
                        The total number of input datagrams successfully 
                        delivered to IP user-protocols (including ICMP). 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name> IPv4ValidatorStatisticsType </name> 
                <synopsis>IPv4 validator LFB statistics type</synopsis> 
 
L.Dong et al.               Expires Sept., 2007              [Page 12] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                <struct> 
                        <element elementID="1"> 
                                <name> badHeaderPkts </name> 
                                <synopsis> 
                The total number of input datagrams with bad ip header 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name> badTotalLengthPkts </name> 
                                <synopsis> 
   The total number of input datagrams with bad length 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                        <element elementID="3"> 
                                <name> badTTLPkts </name> 
                                <synopsis> 
   The total number of input datagrams with bad TTL 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                        <element elementID="4"> 
                                <name> badChecksum</name> 
                                <synopsis> 
   The total number of input datagrams with bad checksum 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>IPv6Prefix</name> 
                <synopsis>IPv6 prefix</synopsis> 
                <struct> 
                        <element elementID="1"> 
                                <name>IPv6addr</name> 
                                <synopsis> 
                                Address part of the prefix 
                                </synopsis> 
                                <typeRef>IPv6Addr</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name>prefixlen</name> 
                                <synopsis> 
                                Length of the prefix 
                                </synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
 
L.Dong et al.               Expires Sept., 2007              [Page 13] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name> IPv6NextHopInfoType </name> 
                <synopsis>IPv4 nexthop information, include nexthop ip 
   address, output FE and interface etc.</synopsis> 
                <struct> 
                        <element elementID="1"> 
                                <name>FEID</name> 
                                <synopsis>Output FE ID</synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name>OutputPortID</name> 
                                <synopsis>output port index</synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                        <element elementID="3"> 
                                <name>MTU</name> 
                                <synopsis> 
                The maximum transmission unit of the nexthop link 
                                </synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                        <element elementID="4"> 
                                <name> Flags </name> 
                                <synopsis> 
   Associated flags of the nexthop, such as local delivery, multicast 
   etc 
                                </synopsis> 
                                <typeRef>NextHopFlagsType</typeRef> 
                        </element> 
                        <element elementID="5"> 
                                <name> NexthopIPv6addr </name> 
                                <synopsis> 
                                IP address of the nexthop 
                                </synopsis> 
                                <typeRef>IPv6Addr</typeRef> 
                        </element> 
                        <element elementID="6"> 
                                <name> L2Index </name> 
                                <synopsis> 
                                Index into the L2 table 
                                </synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                        <element elementID="7"> 
                                <name> EncapNeeded </name> 
                                <synopsis> 
 
L.Dong et al.               Expires Sept., 2007              [Page 14] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                        The type of encapsulation needed on the packet. 
                                </synopsis> 
                                <typeRef>EncapType</typeRef> 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>IPv6PrefixTableEntry</name> 
                <synopsis>IPv6 prefix table entry</synopsis> 
                <struct> 
                        <element elementID="1"> 
                                <name> Prefix </name> 
                                <synopsis>IPv6 address prefix</synopsis> 
                                <typeRef> IPv6Prefix </typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name> NexthopID </name> 
                                <synopsis> 
                                Index to the nexthop table 
                                </synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name> IPv6LPMClassiferStatisticsType </name> 
                <synopsis>statistics of IPv6LPMClassifier LFB</synopsis> 
                <struct> 
                        <element elementID="1"> 
                                <name> InRcvdPkts </name> 
                                <synopsis> 
   The total number of input packets received from interfaces, 
   including those received in error. 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name> FwdPkts </name> 
                                <synopsis> 
                                IPv4 packet forwarded by this LFB 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                        <element elementID="3"> 
                                <name> NoRoutePkts </name> 
                                <synopsis> 
   The number of IP datagrams discarded because no route could be found 
   to transmit them to their destination.  
                                </synopsis> 
 
L.Dong et al.               Expires Sept., 2007              [Page 15] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                                <typeRef>uint64</typeRef> 
                        </element> 
                        <element elementID="4"> 
                                <name>InDeliverPkts</name> 
                                <synopsis> 
                The total number of input datagrams successfully 
                delivered to IP user-protocols (including ICMP). 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name> IPv6ValidatorStatisticsType </name> 
                <synopsis>IPv6 validator LFB statistics type</synopsis> 
                <struct> 
                        <element elementID="1"> 
                                <name> badHeaderPkts </name> 
                                <synopsis> 
   The total number of input datagrams with bad ip header 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name> badTotalLengthPkts </name> 
                                <synopsis> 
   The total number of input datagrams with bad length 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                        <element elementID="3"> 
                                <name> badTTLPkts </name> 
                                <synopsis> 
   The total number of input datagrams with bad TTL 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                        <element elementID="4"> 
                                <name> badChecksum</name> 
                                <synopsis> 
   The total number of input datagrams with bad checksum 
                                </synopsis> 
                                <typeRef>uint64</typeRef> 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name> NextHopFlagsType </name> 

 
L.Dong et al.               Expires Sept., 2007              [Page 16] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                <synopsis>Flags used to define different nexthop 
   behaviors</synopsis> 
                <atomic> 
                        <baseType>uint32</baseType> 
                        <specialValues> 
                                <specialValue value="0x00000001"> 
                                        <name>local</name> 
                                        <synopsis> 
   Packets matching the nexthop entry with this flag are delivered to 
   the higher level protocols. 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="0x00000002"> 
                                        <name>drop</name> 
                                        <synopsis> 
   Packets that match the nexthop entry with this flag are to be 
   dropped. 
                                </synopsis> 
                                </specialValue> 
                                <specialValue value="0x00000004"> 
                                        <name>broadcast</name> 
                                        <synopsis> 
   The route associated with this nexthop is a broadcast. 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="0x00000008"> 
                                        <name>multicast</name> 
                                        <synopsis> 
   The route associated with this nexthop is multicast. 
                                        </synopsis> 
                                </specialValue> 
                        </specialValues> 
                </atomic> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>WeightTableEntryType</name> 
                <synopsis>Weight table for queues</synopsis> 
                <struct> 
                        <element elementID="1"> 
                                <name>QueueID</name> 
                                <synopsis>Queue ID</synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name>weight</name> 
                                <synopsis> 
                                Weight of the queue 
                                </synopsis> 
                                <typeRef>uint32</typeRef> 
 
L.Dong et al.               Expires Sept., 2007              [Page 17] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>NbrState</name> 
                <synopsis>IPv6 neighbor entry resolution 
   state</synopsis> 
                <atomic> 
                        <baseType>uchar</baseType> 
                        <specialValues> 
                                <specialValue value="0x01"> 
                                        <name>INCOMPLETE </name> 
                                        <synopsis> 
   Address resolution is being performed on the entry. Specifically, a 
   Neighbor Solicitation has been sent to the solicited-node multicast 
   address of the target, but the corresponding Neighbor Advertisement 
   has not yet been received. 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="0x02"> 
                                        <name>REACHABLE</name> 
                                        <synopsis> 
   Positive confirmation was received within the last ReachableTime 
   milliseconds that the forward path to the neighbor was functioning 
   properly. While REACHABLE, no special action takes place as packets 
   are sent. 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="0x03"> 
                                        <name>STALE</name> 
                                        <synopsis> 
   More than ReachableTime milliseconds have elapsed since the last 
   positive confirmation was received that the forward path was 
   functioning properly. While stale, no action takes place until a 
   packet is sent. 
   The STALE state is entered upon receiving an solicited Neighbor 
   Discovery message that updates the cached link-layer address.  
   Receipt of such a message does not confirm reachability, and entering 
   the STALE state insures reachability is verified quickly if the entry 
   is actually being used. However, reachability is not actually 
   verified until the entry is actually used. 
                                </synopsis> 
                                </specialValue> 
                                <specialValue value="0x04"> 
                                        <name>DELAY</name> 
                                        <synopsis>More than 
   ReachableTime milliseconds have elapsed since the last positive 
   confirmation was received that the forward path was functioning 
   properly, and a packet was sent within the last  
 
L.Dong et al.               Expires Sept., 2007              [Page 18] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
   DELAY_FIRST_PROBE_TIME seconds.  If no reachability confirmation is 
   received within DELAY_FIRST_PROBE_TIME seconds of entering the               
   DELAY state, send a Neighbor Solicitation and change the state to 
   PROBE. 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="0x05"> 
                                        <name>PROBE</name> 
                                        <synopsis> 
   A reachability confirmation is actively sought by retransmitting 
   Neighbor Solicitations every RetransTimer milliseconds until a 
   reachability confirmation is received. 
                                        </synopsis> 
                                </specialValue> 
                        </specialValues> 
                </atomic> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>ArpTableEntryType</name> 
                <synopsis>Arp entry</synopsis> 
                <struct> 
                        <element elementID="1"> 
                                <name>Index</name> 
                                <synopsis> 
                                Index of the arp table 
                                </synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name>NeighborIP</name> 
                                <synopsis> 
                        IP address of the neighbour 
                                </synopsis> 
                                <typeRef>IPv4Addr</typeRef> 
                        </element> 
                        <element elementID="3"> 
                                <name>SrcMac</name> 
                                <synopsis>Source MAC</synopsis> 
                                <typeRef>IEEEMAC</typeRef> 
                        </element> 
                        <element elementID="4"> 
                                <name>NeighborMac</name> 
                                <synopsis>Mac of the Neighbor</synopsis> 
                                <typeRef>IEEEMAC</typeRef> 
                        </element> 
                        <element elementID="5"> 
                                <name>State</name> 
                                <synopsis> 
                        The state of the address resolution progress 
 
L.Dong et al.               Expires Sept., 2007              [Page 19] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                                </synopsis> 
                                <typeRef>ArpStateType</typeRef> 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>NbrTableEntryType</name> 
                <synopsis>IPv6 neighbor table entry</synopsis> 
                <struct> 
                        <element elementID="1"> 
                                <name>Index</name> 
                                <synopsis> 
                                Index of the arp table 
                                </synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name>NeighborIPv6</name> 
                                <synopsis> 
                                IP address of the neighbor 
                                </synopsis> 
                                <typeRef>IPv6Addr</typeRef> 
                        </element> 
                        <element elementID="3"> 
                                <name>SrcMac</name> 
                                <synopsis>Source MAC</synopsis> 
                                <typeRef>IEEEMAC</typeRef> 
                        </element> 
                        <element elementID="4"> 
                                <name>NeighborMac</name> 
                                <synopsis> 
                                Mac of the Neighbor 
                                </synopsis> 
                                <typeRef>IEEEMAC</typeRef> 
                        </element> 
                        <element elementID="5"> 
                                <name>State</name> 
                                <synopsis> 
                        The state of the entry's resolution progress 
                                </synopsis> 
                                <typeRef>NbrState</typeRef> 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>DCHostTableEntryTypev4</name> 
                <synopsis> 
                Directly connected arp table entry for IPv4 
                </synopsis> 
 
L.Dong et al.               Expires Sept., 2007              [Page 20] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                <struct> 
                        <element elementID="1"> 
                                <name>NeighbourIP</name> 
                                <synopsis> 
                                IP address of the neighbor 
                                </synopsis> 
                                <typeRef>IPv4Addr</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name>SrcMac</name> 
                                <synopsis>Source MAC</synopsis> 
                                <typeRef>IEEEMAC</typeRef> 
                        </element> 
                        <element elementID="3"> 
                                <name>NeighborMac</name> 
                                <synopsis> 
                                Mac of the Neighbor 
                                </synopsis> 
                                <typeRef>IEEEMAC</typeRef> 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>DCHostTableEntryTypev6</name> 
                <synopsis>Direct connected arp table entry for IPv4. 
   </synopsis> 
                <struct> 
                        <element elementID="1"> 
                                <name>NeighbourIPv6</name> 
                                <synopsis> 
                                IP address of the neighbor 
                                </synopsis> 
                                <typeRef>IPv4Addr</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name>SrcMac</name> 
                                <synopsis>Source MAC</synopsis> 
                                <typeRef>IEEEMAC</typeRef> 
                        </element> 
                        <element elementID="3"> 
                                <name>NeighborMac</name> 
                                <synopsis> 
                                Mac of the Neighbor 
                                </synopsis> 
                                <typeRef>IEEEMAC</typeRef> 
                        </element> 
                </struct> 
        </dataTypeDef> 
         
 
L.Dong et al.               Expires Sept., 2007              [Page 21] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
        <dataTypeDef> 
                <name>PacketType</name> 
                <synopsis>The packet type code</synopsis> 
                <atomic> 
                        <baseType>uchar</baseType> 
                        <specialValues> 
                                <specialValue value="1"> 
                                        <name>IPv4Ucast</name> 
                                        <synopsis> 
                                        IPv4 unicast packet 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="2"> 
                                        <name>IPv4Mcast</name> 
                                        <synopsis> 
                                        IPv4 multicast packet 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="3"> 
                                        <name>IPv6Ucast</name> 
                                        <synopsis> 
                                        IPv6 unicast packet 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="4"> 
                                        <name>IPv6Mcast</name> 
                                        <synopsis> 
                                        IPv6 multicast packet 
                                        </synopsis> 
                                </specialValue> 
                        </specialValues> 
                </atomic> 
                 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>DispatchTableType</name> 
                <synopsis>The dispatch table type</synopsis> 
                <struct> 
                        <element elementID="1"> 
                                <name>PacketType</name> 
                                <synopsis> 
   The type of the packe, e.g., IPv4Uncast, IPv6Ucast, IPv4Mulcast, 
   IPv6Mulcast, etc. 
                                </synopsis> 
                                <typeRef>PacketType</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name>index</name> 
                                <synopsis> 
 
L.Dong et al.               Expires Sept., 2007              [Page 22] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
   The index of the output group to output the packets. 
                                </synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>MetaType</name> 
                <synopsis>Metadata type definition</synopsis> 
                <struct> 
                        <element elementID="1"> 
                                <name>MetadataID</name> 
                                <synopsis> 
   The ID of the metadata. The value is standarized in the 
   corresponding LFB definition RFCs. 
                                </synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name>MetadataName</name> 
                                <synopsis> 
                                The name of the metadata 
                                </synopsis> 
                                <typeRef>String</typeRef> 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>MetadataClassyTableType</name> 
                <synopsis>The metadata classifying table</synopsis> 
                <struct> 
                        <element elementID="1"> 
                                <name>value</name> 
                                <synopsis> 
                                Value of the metadata 
                                </synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name>index</name> 
                                <synopsis> 
   The index of the port in the output group to use for outputing the 
   packets 
                                </synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
 
L.Dong et al.               Expires Sept., 2007              [Page 23] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                <name>InterFECommMsgsType</name> 
                <synopsis> 
                Inter FE communication messageds type 
                </synopsis> 
                <struct> 
                        <element elementID="1"> 
                                <name>FEID</name> 
                                <synopsis> 
                                The FEID this message format relates 
                                </synopsis> 
                                <typeRef>uint32</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name>MessageFormat</name> 
                                <synopsis> 
                                The inter FE message format 
                                </synopsis> 
                                <array> 
                                        <typeRef>MetadatasType</typeRef> 
                                </array> 
                        </element> 
                </struct> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>EncapType</name> 
                <synopsis>Encapsulation type</synopsis> 
                <atomic> 
                        <baseType>uchar</baseType> 
                        <specialValues> 
                                <specialValue value="1"> 
                                        <name>Link</name> 
                                        <synopsis> 
   Link layer encapsulation such as Ethernet and PPP 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="2"> 
                                        <name>InterFE</name> 
                                        <synopsis> 
                                        Inter FE communication 
                                encapsulation 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue> 
                                        <name>Tunnel</name> 
                                        <synopsis> 
                        Tunnel encapsulation such as IP-in-IP 
                                        </synopsis> 
                                </specialValue> 
                        </specialValues> 
 
L.Dong et al.               Expires Sept., 2007              [Page 24] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                </atomic> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>IPAddress</name> 
                <synopsis>IP layer address</synopsis> 
                <union> 
                        <element elementID="1"> 
                                <name>Ipv4</name> 
                                <synopsis>IPv4 address</synopsis> 
                                <typeRef>IPv4Addr</typeRef> 
                        </element> 
                        <element elementID="2"> 
                                <name>Ipv6</name> 
                                <synopsis>IPv6 address</synopsis> 
                                <typeRef>IPv6Addr</typeRef> 
                        </element> 
                </union> 
        </dataTypeDef> 
        <dataTypeDef> 
                <name>ArpStateType</name> 
                <synopsis>The arp entry state</synopsis> 
                <atomic> 
                        <baseType>uchar</baseType> 
                        <specialValues> 
                                <specialValue value="1"> 
                                        <name>Manual</name> 
                                        <synopsis> 
                                        The entry is manually set. 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="2"> 
                                        <name>InSolicit</name> 
                                        <synopsis> 
                   The peer's level 2 address is still in requesting. 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="4"> 
                                        <name>Vaild</name> 
                                        <synopsis> 
   The address resolution has been completed successfully, it now can 
   be used in the data packets forwarding. 
                                        </synopsis> 
                                </specialValue> 
                        </specialValues> 
                </atomic> 
        </dataTypeDef> 
   </dataTypeDefs> 
    
    2.3. Metadata Type  
 
L.Dong et al.               Expires Sept., 2007              [Page 25] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
    
   <metadataDefs> 
        <metadataDef> 
                <name>NextHopID</name> 
                <synopsis> 
   An index into a Next Hop entry in Nexthop table 
                </synopsis> 
                <metadataID>1</metadataID> 
                <typeRef>int32</typeRef> 
        </metadataDef> 
        <metadataDef> 
                <name>ExceptionID</name> 
                <synopsis>Exception Types</synopsis> 
                <metadataID>2</metadataID> 
                <atomic> 
                        <baseType>uint32</baseType> 
                        <specialValues> 
                                <specialValue value="0x00000001"> 
                                        <name>Options</name> 
                                        <synopsis> 
   Packets with options, for IPv6 Packet with next-header set to hop-
   by-hop header(0) 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="0x00000002"> 
                                        <name>LengthMismatch</name> 
                                        <synopsis> 
   The packet length reported by link layer is less than the total 
   length field. 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="0x00000003"> 
                                        <name> BadTTL </name> 
                                        <synopsis> 
   The packet can't be forwarded as the TTL has expired. 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="0x00000004"> 
                                        <name> Multicast </name> 
                                        <synopsis> 
   The packet received is a multicast packet. 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="0x00000005"> 
                                        <name>FragRequired</name> 
                                        <synopsis> 
   The MTU for outgoing interface is less than the packet size. 
                                        </synopsis> 
                                </specialValue> 
 
L.Dong et al.               Expires Sept., 2007              [Page 26] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                                <specialValue value="0x00000006"> 
                                        <name>Redirect</name> 
                                        <synopsis> 
   The outgoing port is same as the one on which the packet is received. 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="0x00000007"> 
                                        <name>LocalDelivery</name> 
                                        <synopsis> 
   The packet is for a local interface 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="0x00000008"> 
                                        <name>LimitedBroadcast</name> 
                                        <synopsis> 
   The packet received as limited broadcast 
                                        </synopsis> 
                                </specialValue> 
                        </specialValues> 
                </atomic> 
        </metadataDef> 
        <metadataDef> 
                <name>InputPortID</name> 
                <synopsis> 
                At which interface the packet arrive 
                </synopsis> 
                <metadataID>3</metadataID> 
                <typeRef> uint32</typeRef> 
        </metadataDef> 
        <metadataDef> 
                <name>OutputPortID</name> 
                <synopsis> 
   The interface out which the packet will be emitted 
                </synopsis> 
                <metadataID>4</metadataID> 
                <typeRef> uint32</typeRef> 
        </metadataDef> 
        <metadataDef> 
                <name> NextHopIP </name> 
                <synopsis>Nexthop IPv4 address</synopsis> 
                <metadataID>5</metadataID> 
                <typeRef> IP4Addr </typeRef> 
        </metadataDef> 
        <metadataDef> 
                <name> L2Type </name> 
                <synopsis> 
   Level 2 table type, which can be a true link layer table or others 
                </synopsis> 
                <metadataID>5</metadataID> 
 
L.Dong et al.               Expires Sept., 2007              [Page 27] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                <typeRef> uint32 </typeRef> 
        </metadataDef> 
        <metadataDef> 
                <name>NexthopIPv6</name> 
                <synopsis>Nexthop IPv6 address</synopsis> 
                <metadataID>6</metadataID> 
                <typeRef>IPv6Addr</typeRef> 
        </metadataDef> 
        <metadataDef> 
                <name>PacketLength</name> 
                <synopsis>The length of the packet in octets</synopsis> 
                <metadataID>7</metadataID> 
                <typeRef>uint32</typeRef> 
        </metadataDef> 
        <metadataDef> 
                <name> PacketType </name> 
                <synopsis>Type of the packet</synopsis> 
                <metadataID>8</metadataID> 
                <atomic> 
                        <baseType>uint32</baseType> 
                        <specialValues> 
                                <specialValue value="0x8000"> 
                                        <name> IPv4 </name> 
                                        <synopsis>IPv4 packet</synopsis> 
                                </specialValue> 
                                <specialValue value="0x86DD"> 
                                        <name> IPv6 </name> 
                                        <synopsis>IPv6 packet</synopsis> 
                                </specialValue> 
                                <specialValue value="3"> 
                                        <name> TaggedFrame </name> 
                                        <synopsis> 
                                        Packet with metadata 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="4"> 
                                        <name> MetaDataFrame </name> 
                                        <synopsis>metadata 
   only</synopsis> 
                                </specialValue> 
                        </specialValues> 
                </atomic> 
        </metadataDef> 
        <metadataDef> 
                <name> QueueID </name> 
                <synopsis>The queue ID</synopsis> 
                <metadataID>9</metadataID> 
                <typeRef> uint32</typeRef> 
        </metadataDef> 
 
L.Dong et al.               Expires Sept., 2007              [Page 28] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
        <metadataDef> 
                <name>QueueOperationCmd</name> 
                <synopsis> 
   The type of operation on the queue, there are two types defined here: 
   enqueue and dequeue. 
                </synopsis> 
                <metadataID>10</metadataID> 
                <atomic> 
                        <baseType>uchar</baseType> 
                        <specialValues> 
                                <specialValue value="1"> 
                                        <name>Enqueue</name> 
                                        <synopsis> 
                                        Enqueue command 
                                        </synopsis> 
                                </specialValue> 
                                <specialValue value="2"> 
                                        <name>Dequeue</name> 
                                        <synopsis> 
                                        Dequeue command 
                                        </synopsis> 
                                </specialValue> 
                        </specialValues> 
                </atomic> 
        </metadataDef> 
        <metadataDef> 
                <name>SrcBladeID</name> 
                <synopsis>Source blade ID</synopsis> 
                <metadataID>11</metadataID> 
                <typeRef>uchar</typeRef> 
        </metadataDef> 
        <metadataDef> 
                <name>DstBladeID</name> 
                <synopsis>Destination blade ID</synopsis> 
                <metadataID>12</metadataID> 
                <typeRef>uchar</typeRef> 
        </metadataDef> 
        <metadataDef> 
                <name>NexthopIndex</name> 
                <synopsis> 
   Nexthop index into the link layer address resolution table 
                </synopsis> 
                <metadataID>13</metadataID> 
                <typeRef>uint</typeRef> 
        </metadataDef> 
        <metadataDef> 
                <name>EncapMethod</name> 
                <synopsis> 

 
L.Dong et al.               Expires Sept., 2007              [Page 29] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
   What should the following LFBs do to encapsulate the packets, such 
   as link encapsulation which means the packets need to encapsulate 
   link layer header before sending to media; inter FE communication 
   encapsulation which means the packets need to first encapsulate inter 
   FE communication header before transmitting to other FEs; tunnel 
   encapsulation which means the packet need do extra tunnel 
   encapsulation before sending out to media. 
                </synopsis> 
                <metadataID>14</metadataID> 
                <typeRef>EncapType</typeRef> 
        </metadataDef> 
   </metadataDefs> 
    
 3. LFB Definitions 
    
   The LFB is only logical representation of a specified FE function, 
   it has nothing to do with how the LFB is implemented. Therefore, we 
   should define the LFBs in vendor-neutral way. 
    
    3.1. Port LFBs 
    
   This document only define LFB for Ethernet ports, other types of 
   port LFBs will be added.  
    
     3.1.1. EtherPort LFB 
    
   <LFBClassDef LFBClassID="0x00011001"> 
        <name>EtherPort</name> 
        <synopsis>LFB for Ethernet ports</synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort> 
                        <name>PacketsFromProcessingUnit</name> 
                        <synopsis>  
               Ports for receiving packets from processing unit such as 
   NP, which will be sent to media.  
                        </synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>EthernetII</ref> 
                                </frameExpected> 
                                <metadataExpected> 
                                        <ref>OutputPort</ref> 
                                </metadataExpected> 
                        </expectation> 
                </inputPort> 
                <inputPort> 
                        <name>PacketsFromMedia</name> 
                        <synopsis>  
 
L.Dong et al.               Expires Sept., 2007              [Page 30] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
               Ports for receiving packets from Ethernet media.  
                        </synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>EthernetII</ref> 
                                </frameExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
                <outputPort> 
                        <name>PacketsToProcessingUnit</name> 
                        <synopsis>  
   Ports for sending packets to processing unit such as NP for further 
   processing 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>EthernetII</ref> 
                                </frameProduced> 
                                <metadataProduced> 
                                        <ref>InputPort</ref> 
                                </metadataProduced> 
                        </product> 
                </outputPort> 
                <outputPort> 
                        <name>PacketsToMedia</name> 
                        <synopsis>Ports for sending packets to media 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>EthernetII</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
        </outputPorts> 
        <attributes> 
                <attribute elementID="1"> 
                        <name>IfIndex</name> 
                        <synopsis> 
   A unique value for each interface. Its value ranges between 1 and 
   the value of total number of interfaces in the system. The value for 
   each interface must remain constant at least from one re-
   initialization of the entity's network management system to the next 
   re-initialization.  
                        </synopsis> 
                        <typeRef>uint32</typeRef> 
                </attribute> 
                <attribute elementID="2"> 
 
L.Dong et al.               Expires Sept., 2007              [Page 31] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                        <name>IfName</name> 
                        <synopsis>Name of this port</synopsis> 
                        <typeRef>string[16]</typeRef> 
                </attribute> 
                <attribute elementID="3"> 
                        <name>LinkSpeed</name> 
                        <synopsis>Speed of this port</synopsis> 
                        <typeRef>LANSpeedType</typeRef> 
                </attribute> 
                <attribute elementID="4"> 
                        <name>MTU</name> 
                        <synopsis>Maximum transmission unit</synopsis> 
                        <typeRef>uint32</typeRef> 
                </attribute> 
                <attribute elementID="5"> 
                        <name>OperaStatus</name> 
                        <synopsis>Operate state of this port</synopsis> 
                        <typeRef>PortStatusValues</typeRef> 
                        <defaultValue>"down"</defaultValue> 
                </attribute> 
                <attribute elementID="6"> 
                        <name>AdminStatus</name> 
                        <synopsis> 
                        Administrator's state of this port 
                        </synopsis> 
                        <typeRef>PortStatusValues</typeRef> 
                        <defaultValue>"down"</defaultValue> 
                </attribute> 
                <attribute elementID="7"> 
                        <name>PromiscuousMode</name> 
                        <synopsis> 
                        Whether the interface is in promiscuous mode 
                        </synopsis> 
                        <typeRef>BooleanType</typeRef> 
                        <defaultValue>"no"</defaultValue> 
                </attribute> 
                <attribute elementID="8"> 
                        <name>CarrierStatus</name> 
                        <synopsis> 
                        Whether the port is linked with a connector 
                        </synopsis> 
                        <typeRef>BooleanType</typeRef> 
                        <defaultValue>"no"</defaultValue> 
                </attribute> 
                <attribute elementID="9"> 
                        <name>NegotiationState</name> 
                        <synopsis> 
   The port negotiation state, which must be one of the following 
   values: auto, half-duplex, full-duplex 
 
L.Dong et al.               Expires Sept., 2007              [Page 32] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                        </synopsis> 
                        <typeRef>NegotiationType</typeRef> 
                        <defaultValue>"auto"</defaultValue> 
                </attribute> 
                <attribute elementID="10"> 
                        <name>SrcMACAddr</name> 
                        <synopsis>Source MAC</synopsis> 
                        <typeRef>IEEEMAC</typeRef> 
                </attribute> 
                <attribute elementID="11"> 
                        <name>MacAliasTable</name> 
                        <synopsis> 
   A series of MACs that the port can receive frame  
                        </synopsis> 
                        <array> 
                                <typeRef>IEEEMAC</typeRef> 
                        </array> 
                </attribute> 
                <attribute elementID="12"> 
                        <name>StatsEnable</name> 
                        <synopsis> 
                        Whether enable the statistics in this LFB 
                        </synopsis> 
                        <typeRef>BooleanType</typeRef> 
                        <defaultValue>"no"</defaultValue> 
                </attribute> 
                <attribute elementID="13"> 
                        <name>PortStats</name> 
                        <synopsis>port statistics</synopsis> 
                        <typeRef>PortStatsType</typeRef> 
                </attribute> 
                <attribute elementID="14"> 
                        <name>IpAddr</name>  
                        <synopsis>IP layer Address</synopsis>  
                        <typeRef>IPAddress</typeRef>  
                </attribute> 
        </attributes> 
        <events baseID="100"> 
                <event eventID="1"> 
                        <name>PortStatusChanged</name> 
                        <synopsis> 
                     Port status has changed since last time reporting 
                        </synopsis> 
                        <eventTarget> 
                                <eventField>OperaStatus</eventField> 
                        </eventTarget> 
                        <eventChanged/> 
                        <eventReports> 
                                <eventReport> 
 
L.Dong et al.               Expires Sept., 2007              [Page 33] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                                        <eventField> 
                                                OperaStatus 
                                        </eventField> 
                                </eventReport> 
                        </eventReports> 
                </event> 
        </events> 
   </LFBClassDef> 
    
     3.1.2. EtherEncap LFB 
    
   <LFBClassDef LFBClassID="0x00011009"> 
        <name>EtherEncap</name> 
        <synopsis> 
   An LFB classifier definition for completes Ethernet encapsulation 
   functions 
        </synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort> 
                        <name>EncapIn</name> 
                        <synopsis> 
   Port for receiving packets needed to build Ethernet encapsulation 
                        </synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>IPv4</ref> 
                                        <ref>IPv6</ref> 
                                </frameExpected> 
                                <metadataExpected> 
                                        <ref>L2Index</ref> 
                                        <ref>L2Type</ref> 
                                </metadataExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
                <outputPort> 
                        <name>SuccessOut</name> 
                        <synopsis/> 
                        <product> 
                                <frameProduced> 
                                        <ref>EthernetII</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
                <outputPort group="yes"> 
                        <name>ExceptionOut</name> 
                        <synopsis> 
 
L.Dong et al.               Expires Sept., 2007              [Page 34] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
   Packet can't find the associated L2 information 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>IPv4</ref> 
                                        <ref>IPv6</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
        </outputPorts> 
        <attributes> 
                <attribute elementID="1"> 
                        <name>ArpTable</name> 
                        <synopsis>Ethernet arp table</synopsis> 
                        <array> 
                                <typeRef>ArpTableEntryType</typeRef> 
                        </array> 
                </attribute> 
                <attribute elementID="2"> 
                        <name>NbrTable</name> 
                        <synopsis>IPv6 neighbor table</synopsis> 
                        <array> 
                                <typeRef>NbrTableEntryType</typeRef> 
                        </array> 
                </attribute> 
                <attribute elementID="3"> 
                        <name>DCHostTablev4</name> 
                        <synopsis> 
   Direct connected host arp table for IPv4 
                        </synopsis> 
                        <array> 
                 
        <typeRef>DCHostTableEntryTypev4</typeRef> 
                        </array> 
                </attribute> 
                <attribute elementID="4"> 
                        <name>DCHostTablev6</name> 
                        <synopsis> 
   Direct connected host arp table for IPv6 
                        </synopsis> 
                        <array> 
                 
        <typeRef>DCHostTableEntryTypev6</typeRef> 
                        </array> 
                </attribute> 
        </attributes> 
        <capabilities> 
                <capability elementID="1"> 
                        <name>ArpTableLimit</name> 
 
L.Dong et al.               Expires Sept., 2007              [Page 35] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                        <synopsis> 
   Max number of arp entries in arp table 
                        </synopsis> 
                        <typeRef>uint32</typeRef> 
                </capability> 
                <capability elementID="2"> 
                        <name>NbrTableLimit</name> 
                        <synopsis> 
   Max number of neighbors in neighbor table 
                        </synopsis> 
                        <typeRef>uint32</typeRef> 
                </capability> 
                <capability elementID="3"> 
                        <name>DCHostTablev4Limit</name> 
                        <synopsis> 
   The limit on Direct connected host table for IPv4 
                        </synopsis> 
                        <typeRef>uint32</typeRef> 
                </capability> 
                <capability elementID="4"> 
                        <name>DCHostTablev6Limit</name> 
                        <synopsis>The limit on Direct connected host 
   table for IPv6 
                        </synopsis> 
                        <typeRef>uint32</typeRef> 
                </capability> 
        </capabilities> 
   </LFBClassDef> 
    
    
     3.1.3. EtherDecap LFB 
    
   <LFBClassDef LFBClassID="0x00011002"> 
        <name>EtherDecap</name> 
        <synopsis> 
   An LFB class for definition of Ethernet decapsulation and Ethernet 
   filtering functions 
        </synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort> 
                        <name>PacketsIn</name> 
                        <synopsis>Packets from other LFB</synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>EthernetII</ref> 
                                </frameExpected> 
                        </expectation> 
                </inputPort> 
 
L.Dong et al.               Expires Sept., 2007              [Page 36] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
        </inputPorts> 
        <outputPorts> 
                <outputPort group="yes"> 
                        <name>DecapOut</name> 
                        <synopsis> 
   Ethernet decapsulation output 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>Arbitrary</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
        </outputPorts> 
        <attributes> 
                <attribute elementID="1"> 
                        <name>DispatchTable</name> 
                        <synopsis> 
   This table is used for selecting output in the ouput group for the 
   incoming packet stream. 
                        </synopsis> 
                        <typeRef>DispatchTableType</typeRef> 
                </attribute> 
                 
        </attributes> 
   </LFBClassDef> 
    
    3.2. IPv4 unicast forwarding LFBs 
    
   The forwarding of IPv4 packets is logically composed of the 
   following three stages:  
    
   (1)  Validating stage: In this stage, the IP header is checked to 
        make sure the packet is well-formed, that is to say without any 
        header errors, no option is included, then the packet is ready 
        to send to the next stage for processing, error packets are 
        sent to CE or processed by some offloading LFBs in the FE.   
    
   (2)  Forwarding stage: In this stage, destination IP address is 
        extracted from the packet and used to consult the forwarding 
        table, when it success, a block of routing information is 
        produced such as nexthop IP address, output interface etc which 
        will be used to send the packet to its next station to the 
        destination. When the lookup operation fails, the packet is 
        dropped or sent to CE for further processing. The important 
        data in this stage is forwarding table, different 
        implementations may have different organizations on forwarding 
        table. In summary, there are two schemes: unified table model 
        and discrete table model. Implementations that utilize the 
 
L.Dong et al.               Expires Sept., 2007              [Page 37] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
        unified table model to represent IPv4 unicast forwarding 
        information use a single data entity, which shall be 
        subsequently referred to as a "FIB Table". This table is 
        comprised of entries, each one consisting of a prefix and an 
        array of next hop information. Implementations that utilize the 
        discrete table model to represent IPv4 unicast forwarding 
        information use two separate data entities, which shall be 
        subsequently referred to as the "Prefix Table" and the "NextHop 
        Table". The prefix table is comprised of entries, each one 
        consisting of a prefix and a next hop identifier that uniquely 
        indicates an entry in a next hop table. The next hop table is 
        comprised of entries, each one consisting of a next hop 
        identifier and an array of next hop information. As with the 
        unified mode FIB table, the next hop array can contain one or 
        more elements of next hop information. In order to forward a 
        packet, each IP destination address specified in the prefix 
        must have one or more next hops associated with it. In the 
        discrete model, this association is provided by the next hop 
        identifier,  which correlates a prefix table entry to an entry 
        in the next hop table.  
    
   (3)  Sending stage: the packet arrive this stage have got the 
        correct routing information and after appending the correct 
        level 2 headers such as Ethernet header, the packet will be 
        sent to media. The important data in this stage is IP-Level2 
        address mapping table which is consulted by the packet to find 
        the correct Level 2 address of the nexthop station. 
 
   According to the above discussion on the forwarding stages of a 
   unicast IPv4 packet, we can see that the forwarding table modeling is 
   an important issue in the modeling of IPv4 unicast forwarding LFBs. 
   The diverse table model provides several benefits in some system 
   designs. For example, some classes of high-performance networking 
   nodes (e.g. – BGP routers) require optimal FIB updates when a set of 
   routes change. With a discrete model implementation, it may be 
   possible to efficiently update forwarding information by altering a 
   subset of next hop table entries. Whereas, in a unified model, it may 
   be required that a larger set of FIB table entries be modified to 
   accomplish the same forwarding information update. This document 
   adopt the diverse forwarding table model in the modeling of IPv4 
   unicast forwarding LFBs, the following LFBs are defined: 
   IPv4Validator LFB, IPv4UcastLPM LFB, and IPv4NexthopApplicator LFB. 
   The prefix table is maintained in IPv4UcastLPM LFB and the nexthop 
   table is maintained in the IPv4NexthopApplicator LFB. 
    
   Besides, the auxiliary LFBs such as ICMPGenerator, OptionProc and ARP 
   are defined to complete the whole picture. 
    
     3.2.1. IPv4Validator LFB 
 
L.Dong et al.               Expires Sept., 2007              [Page 38] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
    
   <LFBClassDef LFBClassID="0x00011003"> 
        <name>IPv4Validator</name> 
        <synopsis> 
   An LFB Class definition for validates the IPv4 packets 
        </synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort> 
                        <name>ValidatePktsIn</name> 
                        <synopsis> 
   Port used to receive IPv4 packet for validation 
                        </synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>IPv4</ref> 
                                </frameExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
                <outputPort> 
                        <name>SuccessOut</name> 
                        <synopsis> 
   Out port for the packets passing the validation 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>IPv4</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
                <outputPort> 
                        <name>ExceptionOut</name> 
                        <synopsis> 
   Output port for the packets needed to be dealt by higher level 
   protocol stacks. The following packets are identified as exception 
   packets: 
   1. Packet with header length>5; 
   2. Packet with destination address equal to 255.255.255.255; 
   3. Packet with expired TTL (checked after a forwarding decision is 
   made); 
   4 Packet length error. 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>ExceptionID</ref> 
                                </frameProduced> 
                        </product> 
 
L.Dong et al.               Expires Sept., 2007              [Page 39] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                </outputPort> 
                <outputPort> 
                        <name>FailOutput</name> 
                        <synopsis> 
   Output for packets failed to pass the validation 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref> IPv4 </ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
        </outputPorts> 
        <attributes> 
                <attribute elementID="1"> 
                        <name>StatsEnable</name> 
                        <synopsis> 
   Whether to gather statistics in this LFB 
                        </synopsis> 
                        <typeRef>BooleanType</typeRef> 
                        <defaultValue>"no"</defaultValue> 
                </attribute> 
                <attribute elementID="2"> 
                        <name>IPv4ValidatorStats</name> 
                        <synopsis> 
   Ipv4 validator LFB statistics 
                        </synopsis> 
                        <typeRef>IPv4ValidatorStatisticsType</typeRef> 
                </attribute> 
        </attributes> 
        <description> 
   Please refer to RFC1812 and RFC2644 for detailed validation process. 
        </description> 
   </LFBClassDef> 
    
     3.2.2. IPv4UcastLPM LFB 
    
   <LFBClassDef LFBClassID="0x00011004"> 
        <name>IPv4UcastLPM</name> 
        <synopsis>IPv4 Longest Prefix Match Lookup LFB</synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort> 
                        <name>PktIn</name> 
                        <synopsis> 
   The port to receive IPv4 packets from other LFBs 
                        </synopsis> 
                        <expectation> 
                                <frameExpected> 
 
L.Dong et al.               Expires Sept., 2007              [Page 40] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                                        <ref>IPv4</ref> 
                                </frameExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
                <outputPort> 
                        <name>SuccessOut</name> 
                        <synopsis> 
                        Successful output when all is fine 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>IPv4</ref> 
                                </frameProduced> 
                                <metadataProduced> 
                                        <ref>NextHopID</ref> 
                                </metadataProduced> 
                        </product> 
                </outputPort> 
                <outputPort> 
                        <name>ExceptionOut</name> 
                        <synopsis>Exception output</synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>IPv4</ref> 
                                </frameProduced> 
                                <metadataProduced> 
                                        <ref>InputPortID </ref> 
                                        <ref>ExceptionID</ref> 
                                </metadataProduced> 
                        </product> 
                </outputPort> 
                <outputPort> 
                        <name>FailOutput</name> 
                        <synopsis>Drop output</synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref> IPv4 </ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
        </outputPorts> 
        <attributes> 
                <attribute elementID="1"> 
                        <name> PrefixTable </name> 
                        <synopsis>IPv4 prefix table</synopsis> 
                        <array type="variable-size"> 
                                <typeRef>IPv4PrefixTableEntry</typeRef> 
 
L.Dong et al.               Expires Sept., 2007              [Page 41] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                                <contentKey contentKeyID="1"> 
                                        <contentKeyField> 
                                        IPv4PrefixTableEntry.prefix 
                                        </contentKeyField> 
                                </contentKey> 
                        </array> 
                </attribute> 
                <attribute elementID="2"> 
                        <name>LocalIpAddrTable</name> 
                        <synopsis> 
   The table of interfaces' ip address information on the local device 
                        </synopsis> 
                        <typeRef>LocalIpAddrType</typeRef> 
                </attribute> 
                <attribute elementID="3"> 
                        <name>StatsEnable</name> 
                        <synopsis> 
   Whether enable the statistics in this LFB 
                        </synopsis> 
                        <typeRef>BooleanType</typeRef> 
                </attribute> 
                <attribute elementID="4"> 
                        <name>IPv4Stats</name> 
                        <synopsis> 
   The IPv4 associated statistics 
                        </synopsis> 
                        <typeRef> IPv4UcastLPMStatisticsType </typeRef> 
                </attribute> 
        </attributes> 
        <capabilities> 
                <capability elementID="1"> 
                        <name>PrefixTableLimit</name> 
                        <synopsis> 
                     Maximum number of prefix supported by this LFB 
                        </synopsis> 
                        <typeRef>uint32</typeRef> 
                </capability> 
                <capability elementID="2"> 
                        <name>LocalIpAddrTableLimit</name> 
                        <synopsis> 
        Maximum number of IP address entries supported by this LFB 
                        </synopsis> 
                        <typeRef>uint32</typeRef> 
                </capability> 
        </capabilities> 
        <description> 
   This LFB represents the IPv4 longest prefix match lookup operation.       
        </description> 
   </LFBClassDef> 
 
L.Dong et al.               Expires Sept., 2007              [Page 42] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
    
     3.2.3. IPv4NextHopApplicator LFB 
    
   <LFBClassDef LFBClassID="0x00011005"> 
        <name> IPv4NextHopApplicator </name> 
        <synopsis>An LFB definition for applying next hop action to IPv4 
   packets</synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort> 
                        <name>PktIn</name> 
                        <synopsis>Port used to receive IPv4 packets from 
   other LFBs</synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref> IPv4 </ref> 
                                </frameExpected> 
                                <metadataExpected> 
                                        <ref>NextHopID</ref> 
                                </metadataExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
                <outputPort> 
                        <name>SuccessOut</name> 
                        <synopsis> 
   Output port for packet successfully fulfill the nexthop application 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref> IPv4 </ref> 
                                </frameProduced> 
                                <metadataProduced> 
                                        <ref>FEID</ref> 
                                        <ref>OutputPortID</ref> 
                                        <ref>L2Index</ref> 
                                        <ref>NextHopIP</ref> 
                                        <ref>EncapMethod</ref> 
                                </metadataProduced> 
                        </product> 
                </outputPort> 
                <outputPort> 
                        <name>ExceptionOut</name> 
                        <synopsis> 
   Output for packets need deep dealt by higher level protocol stacks 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
 
L.Dong et al.               Expires Sept., 2007              [Page 43] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                                        <ref> IPv4 </ref> 
                                </frameProduced> 
                                <metadataProduced> 
                                        <ref>InputPortID</ref> 
                                        <ref>ExceptionID</ref> 
                                </metadataProduced> 
                        </product> 
                </outputPort> 
                <outputPort> 
                        <name>FailOutput</name> 
                        <synopsis> 
   Output for packets failed the nexthop application operation 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref> IPv4 </ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
        </outputPorts> 
        <attributes> 
                <attribute elementID="1"> 
                        <name> NextHopTable </name> 
                        <synopsis>Nexthop table</synopsis> 
                        <array type="variable-size"> 
                                <typeRef> IPv4NextHopInfoType </typeRef> 
                        </array> 
                </attribute> 
        </attributes> 
        <capabilities> 
                <capability elementID="2"> 
                        <name>NextHopTableLimit</name> 
                        <synopsis> 
   Maximum number of nexthops this LFB supports 
                        </synopsis> 
                        <typeRef>uint32</typeRef> 
                </capability> 
        </capabilities> 
   </LFBClassDef> 
    
     3.2.4. ARP LFB 
    
   <LFBClassDef LFBClassID="0x00011013"> 
        <name>ARP</name> 
        <synopsis> 
   This LFB class provides the function of address resolution. 
        </synopsis> 
        <version>1.0</version> 
        <inputPorts> 
 
L.Dong et al.               Expires Sept., 2007              [Page 44] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                <inputPort> 
                        <name>AddrResDataPktIn</name> 
                        <synopsis> 
   The IPv4 data packet that need to do the address resolution 
                        </synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>IPv4</ref> 
                                </frameExpected> 
                        </expectation> 
                </inputPort> 
                <inputPort> 
                        <name>ArpPktIn</name> 
                        <synopsis> 
   The neighbor discovery packet related to address resolution 
                        </synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>IPv4</ref> 
                                </frameExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
                <outputPort> 
                        <name>AddrResDataPktOut</name> 
                        <synopsis> 
   The IPv4 packet that have been encapsulated with the correct 
   ethernet L2 info and need to be sent out to link 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>EthernetII</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
                <outputPort> 
                        <name>ArpOut</name> 
                        <synopsis>The arp packet out</synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>EthernetII</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
        </outputPorts> 
   </LFBClassDef> 
    
     3.2.5. ICMPProc LFB 
 
L.Dong et al.               Expires Sept., 2007              [Page 45] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
    
   <LFBClassDef LFBClassID="0x00011014"> 
        <name>ICMPGenerator</name> 
        <synopsis> 
   This LFB class provide some basic ICMP function,it only generate the 
   following ICMP messages:ICMP destination unreachable and time 
   excceeded. 
        </synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort> 
                        <name>PktIn</name> 
                        <synopsis>The IPv4 packet that need icmp 
   processing</synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>IPv4</ref> 
                                </frameExpected> 
                                <metadataExpected> 
                                        <ref>ExceptionID</ref> 
                                </metadataExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
                <outputPort> 
                        <name>ICMPPktOut</name> 
                        <synopsis> 
   The output for the ICMP packets generated according to the input 
   packet and the ExceptionID. 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>IPv6</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
        </outputPorts> 
   </LFBClassDef>  
    
     3.2.6. OptionProc LFB 
    
   <LFBClassDef LFBClassID="0x00011017"> 
        <name>OptionProc</name> 
        <synopsis>This LFB class process the IPv4 packet with options,it 
   can process on the following options:Router-alert option.</synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort> 
 
L.Dong et al.               Expires Sept., 2007              [Page 46] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                        <name>PktIn</name> 
                        <synopsis> 
   The IPv4 packet with options in 
                        </synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>IPv4</ref> 
                                </frameExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
                <outputPort group="yes"> 
                        <name>PktOut</name> 
                        <synopsis> 
   According to the Option type the packet may have different next 
   proccesing LFB.Now by default we send all the packet with extended 
   header to CE. 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>IPv6</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
        </outputPorts> 
   </LFBClassDef> 
    
    3.3. IPv6 unicast forwarding LFBs 
    
   The ideas behind modeling of IPv6 unicast forwarding LFBs is totally 
   the same as IPv4 unicast forwarding LFBs. 
    
     3.3.1. IPv6Validator LFB 
    
   <LFBClassDef LFBClassID="0x00011006"> 
        <name>IPv6Validator</name> 
        <synopsis> 
   A LFB class definition for validating correctness of IPv6 packets 
        </synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort> 
                        <name>ValidateIn</name> 
                        <synopsis>Input port for packets to be 
   validated</synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>IPv6</ref> 
 
L.Dong et al.               Expires Sept., 2007              [Page 47] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                                </frameExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
                <outputPort> 
                        <name>SuccessOut</name> 
                        <synopsis> 
   Output port for packets passing the validation 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>IPv6</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
                <outputPort> 
                        <name>ExceptionOut</name> 
                        <synopsis> 
   Output port for exception packet.The following packets are 
   identified as Exception packet: 
   1 Packet with next header set to Hop-by-Hop. 
   2 The packet length reported by link layer is less than the total 
   length field. 
   3 Packet with a link local destination address. 
   4 The packet received as limited broadcast. 
   5 Packet with multicast destination address (the MSB of the 
   destination address is 0xFF). 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>IPv6</ref> 
                                </frameProduced> 
                                <metadataProduced> 
                                        <ref>ExceptionID</ref> 
                                </metadataProduced> 
                        </product> 
                </outputPort> 
                <outputPort> 
                        <name>FailOut</name> 
                        <synopsis> 
   Output port for packet failing the validation 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>IPv6</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
 
L.Dong et al.               Expires Sept., 2007              [Page 48] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
        </outputPorts> 
        <attributes> 
                <attribute elementID="1"> 
                        <name>StatsEnable</name> 
                        <synopsis> 
   Whether to gather statistics in this LFB 
                        </synopsis> 
                        <typeRef>BooleanType</typeRef> 
                        <defaultValue>"no"</defaultValue> 
                </attribute> 
                <attribute elementID="2"> 
                        <name>IPv6ValidatorStats</name> 
                        <synopsis> 
   IPv6 validator LFB statistics 
                        </synopsis> 
                        <typeRef>IPv6ValidatorStatisticsType</typeRef> 
                </attribute> 
        </attributes> 
        <description>Detailed validation process could refer to RFC2460 
   and RFC2373.</description> 
   </LFBClassDef> 
    
     3.3.2. IPv6UcastLPM LFB 
    
   <LFBClassDef LFBClassID="0x00011007"> 
        <name>IPv6UcastLPM</name> 
        <synopsis> 
   An LFB class definition for IPv6 longest prefix lookup function 
        </synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort> 
                        <name>PktIn</name> 
                        <synopsis> 
   The port to receive IPv6 packets needed to do IPv4 LPM 
                        </synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>IPv6</ref> 
                                </frameExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
                <outputPort> 
                        <name>SuccessOut</name> 
                        <synopsis> 
   Output for packets that have find the correct route 
                        </synopsis> 
 
L.Dong et al.               Expires Sept., 2007              [Page 49] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                        <product> 
                                <frameProduced> 
                                        <ref>IPv6</ref> 
                                </frameProduced> 
                                <metadataProduced> 
                                        <ref>NextHopID</ref> 
                                </metadataProduced> 
                        </product> 
                </outputPort> 
                <outputPort> 
                        <name>FailOutput</name> 
                        <synopsis>LPM failed</synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>IPv6</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
        </outputPorts> 
        <attributes> 
                <attribute elementID="1"> 
                        <name> PrefixTable </name> 
                        <synopsis>IPv6 prefix table</synopsis> 
                        <array type="variable-size"> 
                                <typeRef>IPv6PrefixTableEntry</typeRef> 
                                <contentKey contentKeyID="1"> 
                                        <contentKeyField> 
                                        IPv6PrefixTableEntry.prefix 
                                        </contentKeyField> 
                                </contentKey> 
                        </array> 
                </attribute> 
                <attribute elementID="2"> 
                        <name>LocalIpv6AddrTable</name> 
                        <synopsis> 
   The table of interfaces's ip address infomation on the local device 
                        </synopsis> 
                        <typeRef>LocalIpv6AddrType</typeRef> 
                </attribute> 
                <attribute elementID="3"> 
                        <name>StatsEnable</name> 
                        <synopsis> 
   Whether enable the statistics in this LFB 
                        </synopsis> 
                        <typeRef>BooleanType</typeRef> 
                </attribute> 
                <attribute elementID="4"> 
                        <name>IPv6Stats</name> 
                        <synopsis> 
 
L.Dong et al.               Expires Sept., 2007              [Page 50] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
   The IPv6 associated statistics 
                        </synopsis> 
                        <typeRef> 
                        IPv6LPMClassiferStatisticsType 
                        </typeRef> 
                </attribute> 
        </attributes> 
        <capabilities> 
                <capability elementID="1"> 
                        <name>PrefixTableLimit</name> 
                        <synopsis> 
   Maxium number of prefix supported by this LFB 
                        </synopsis> 
                        <typeRef>uint32</typeRef> 
                </capability> 
                <capability elementID="2"> 
                        <name>LocalIpv6AddrTableLimit</name> 
                        <synopsis> 
             Maxium number of IPv6 address entrys supported by this LFB 
                        </synopsis> 
                        <typeRef>uint32</typeRef> 
                </capability> 
        </capabilities> 
   </LFBClassDef> 
    
     3.3.3. IPv6UcastNexthopApplicator LFB 
    
   <LFBClassDef LFBClassID="0x00011008"> 
        <name>IPv6UcastNexthopApplicator</name> 
        <synopsis>An LFB for applicating next hop action to IPv6 
   packets</synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort> 
                        <name>PktIn</name> 
                        <synopsis> 
   Input port for packets to be applicate nexthop 
                        </synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref> IPv6 </ref> 
                                </frameExpected> 
                                <metadataExpected> 
                                        <ref>NextHopID</ref> 
                                </metadataExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
 
L.Dong et al.               Expires Sept., 2007              [Page 51] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                <outputPort> 
                        <name>SuccessOut</name> 
                        <synopsis> 
   Output port for packet successfully fulfill the nexthop application 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref> IPv6 </ref> 
                                </frameProduced> 
                                <metadataProduced> 
                                        <ref>FEID</ref> 
                                        <ref>OutputPortID</ref> 
                                        <ref>L2Index</ref> 
                                        <ref>NextHopIP</ref> 
                                        <ref>EncapMethod</ref> 
                                </metadataProduced> 
                        </product> 
                </outputPort> 
                <outputPort> 
                        <name>ExceptionOut</name> 
                        <synopsis> 
   Output port for exception packet.The following packets are 
   identified as Exception packet: 
   1 Packet with Hop Limit zero. 
   2 The MTU for outgoing interface is less than the packet size. 
   3 The outgoing port is same as the one on which the packet is 
   received. 
   4 The packet is for a local interface. 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref> IPv6 </ref> 
                                </frameProduced> 
                                <metadataProduced> 
                                        <ref>InputPortID</ref> 
                                        <ref>ExceptionID</ref> 
                                </metadataProduced> 
                        </product> 
                </outputPort> 
                <outputPort> 
                        <name>FailOutput</name> 
                        <synopsis> 
   Output for packets failed the nexthop application operation 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref> IPv6 </ref> 
                                </frameProduced> 
                        </product> 
 
L.Dong et al.               Expires Sept., 2007              [Page 52] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                </outputPort> 
        </outputPorts> 
        <attributes> 
                <attribute elementID="1"> 
                        <name> NextHopTable </name> 
                        <synopsis>Nexthop table</synopsis> 
                        <array type="variable-size"> 
                                <typeRef> IPv6NextHopInfoType </typeRef> 
                        </array> 
                </attribute> 
        </attributes> 
        <capabilities> 
                <capability elementID="1"> 
                        <name>NextHopTableLimit</name> 
                        <synopsis> 
   Maxium number of nexthops this LFB supports 
                        </synopsis> 
                        <typeRef>uint32</typeRef> 
                </capability> 
        </capabilities> 
   </LFBClassDef> 
    
     3.3.4. IPv6AddrResolution LFB 
    
   <LFBClassDef LFBClassID="0x00011010"> 
        <name>IPv6AddrResolution</name> 
        <synopsis> 
   This LFB class provides the function of IPv6 address resolution part 
   of neighbor discovery protocol.It provides an offload of ND protocol 
   processing to FE. It process the following ND messages:neighbour 
   solicitation and neighbour advertisement. 
        </synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort> 
                        <name>AddrResDataPktIn</name> 
                        <synopsis> 
   The IPv6 data packet that need to do the address resolution 
                        </synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>IPv6</ref> 
                                </frameExpected> 
                        </expectation> 
                </inputPort> 
                <inputPort> 
                        <name>AddrResProtoPktIn</name> 
                        <synopsis> 
 
L.Dong et al.               Expires Sept., 2007              [Page 53] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
   The neighbour discovery packet related to addresolution 
                        </synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>IPv6</ref> 
                                </frameExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
                <outputPort> 
                        <name>AddrResDataPktOut</name> 
                        <synopsis> 
   The IPv6 packet that have encapsulated with the correct ethernet L2 
   info and need to be sent out to link 
                        </synopsis> 
                        <product> 
                                <frameProduced>          
                                        <ref>EthernetII</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
                <outputPort> 
                        <name>AddrResProtoPktOut</name> 
                        <synopsis> 
   The IPv6 neighbour discovey packet wich has been encapsulation with 
   the correct ethernet L2 info 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>EthernetII</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
        </outputPorts> 
        <attributes> 
                <attribute elementID="1"> 
                        <name>Nbrtable</name> 
                        <synopsis> 
   This table is an alias to the IPv6 neighbour table in the EtherEncap 
   LFB. 
                        </synopsis> 
                        <alias>NbrTable</alias> 
                </attribute> 
        </attributes> 
   </LFBClassDef> 
    
     3.3.5. ICMPv6Proc LFB 

 
L.Dong et al.               Expires Sept., 2007              [Page 54] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
    
   <LFBClassDef LFBClassID="0x00011011"> 
        <name>ICMPv6Generator</name> 
        <synopsis> 
   This LFB class provide some basic ICMPv6 function,it only generate 
   the following ICMP messages for the packets that need some basic icmp 
   processing:destination not reachable and time excceeded. 
        </synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort> 
                        <name>PktIn</name> 
                        <synopsis> 
   The IPv6 packet that need icmp processing 
                        </synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>IPv6</ref> 
                                </frameExpected> 
                                <metadataExpected> 
                                        <ref>ExceptionID</ref> 
                                </metadataExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
                <outputPort> 
                        <name>ICMPv6PktOut</name> 
                        <synopsis> 
   The output for the ICMPv6 packets generated according to the input 
   IPv6 packet and the ExceptionID 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>IPv6</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
        </outputPorts> 
   </LFBClassDef> 
    
     3.3.6. ExtendHeaderProc LFB 
    
   <LFBClassDef LFBClassID="0x00011012"> 
        <name>ExtendHeaderProc</name> 
        <synopsis> 
   This LFB class process the IPv6 packet with extended header,For the 
   moment,the packets to this LFB are redirect to RedirectSink LFB by 
   default. 
 
L.Dong et al.               Expires Sept., 2007              [Page 55] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
        </synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort> 
                        <name>PktIn</name> 
                        <synopsis> 
   The IPv6 packet with extended header in 
                        </synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>IPv6</ref> 
                                </frameExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
                <outputPort group="yes"> 
                        <name>PktOut</name> 
                        <synopsis> 
   According to the Extended header type the packet may have different 
   next processing LFB. Now by default we send all the packet with 
   extended header to CE. 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>IPv6</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
        </outputPorts> 
   </LFBClassDef> 
    
    3.4. Queue manager & scheduler LFBs 
    
   A basic queue and scheduler LFBs is defined here. 
    
     3.4.1. Scheduler LFB 
    
   <LFBClassDef LFBClassID="0x0001100a"> 
        <name>Scheduler</name> 
        <synopsis>Base scheduler LFB</synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort group="yes"> 
                        <name>Watcher</name> 
                        <synopsis> 
   Input for watching the queues to be scheduled. Queues to be 
   scheduled can transmit packet enqueue and dequeue infomation to 
   scheduler through these ports. 
 
L.Dong et al.               Expires Sept., 2007              [Page 56] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                        </synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>MetadataFrame</ref> 
                                </frameExpected> 
                                <metadataExpected> 
                                        <ref>QueueID</ref> 
                                        <ref>PacketLength</ref> 
                                        <ref>QueueOperationCmd</ref> 
                                </metadataExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
                <outputPort group="yes"> 
                        <name>OutControl</name> 
                        <synopsis> 
   Control output, this output is used by scheduler to communicate 
   commands to controlled queues such as dequeue a packet. 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>MetadataFrame</ref> 
                                </frameProduced> 
                                <metadataProduced> 
                                        <ref>QueueOperationCmd</ref> 
                                </metadataProduced> 
                        </product> 
                </outputPort> 
        </outputPorts> 
        <capabilities> 
                <capability elementID="1"> 
                        <name>QueueScheduledLimit</name> 
                        <synopsis> 
   Max number of queues that can be scheduled by this scheduler 
                        </synopsis> 
                        <typeRef>uint32</typeRef> 
                </capability> 
        </capabilities> 
   </LFBClassDef> 
    
     3.4.2. Queue LFB 
    
   <LFBClassDef LFBClassID="0x0001100b"> 
        <name> Queue </name> 
        <synopsis>Queue LFB</synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort> 
 
L.Dong et al.               Expires Sept., 2007              [Page 57] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                        <name>InControl</name> 
                        <synopsis>Input from scheduler</synopsis> 
                        <expectation> 
                                <metadataExpected> 
                                        <ref>QueueOperationCmd</ref> 
                                </metadataExpected> 
                        </expectation> 
                </inputPort> 
                <inputPort> 
                        <name>InData</name> 
                        <synopsis>Input port for data packet</synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>Arbitrary</ref> 
                                </frameExpected> 
                                <metadataExpected> 
                                        <ref>PacketLength</ref> 
                                </metadataExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
                <outputPort> 
                        <name>OutToController</name> 
                        <synopsis>Output to queue controller</synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>MetadataFrame</ref> 
                                </frameProduced> 
                                <metadataProduced> 
                                        <ref>QueueID</ref> 
                                        <ref>PacketLength</ref> 
                                        <ref>QueueOperationCmd</ref> 
                                </metadataProduced> 
                        </product> 
                </outputPort> 
                <outputPort> 
                        <name>OutData</name> 
                        <synopsis>Data packet output</synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>Arbitrary</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
        </outputPorts> 
        <attributes> 
                <attribute elementID="1"> 
                        <name>CurrentLen</name> 
 
L.Dong et al.               Expires Sept., 2007              [Page 58] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                        <synopsis> 
   Current length of the queue in number of packets 
                        </synopsis> 
                        <typeRef>uint32</typeRef> 
                </attribute> 
        </attributes> 
        <capabilities> 
                <capability elementID="1"> 
                        <name>QueueLenLimit</name> 
                        <synopsis> 
   Maximum length of the queue in number of packets 
                        </synopsis> 
                        <typeRef>uint32</typeRef> 
                </capability> 
        </capabilities> 
   </LFBClassDef> 
    
    3.5. LFBs for Multi-FE 
    
     3.5.1. InterFECommEncap LFB 
    
   <LFBClassDef LFBClassID="0x00011018"> 
        <name> InterFECommEncap </name> 
        <synopsis> 
   This LFB class is used for encapsulating traffic that needs to be 
   sent over switch fabric to other FEs. 
        </synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort> 
                        <name>EncapIn</name> 
                        <synopsis> 
   Packets needed to be sent to other FE through switch fabric. 
                        </synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>IPv4</ref> 
                                        <ref>IPv6</ref> 
                                </frameExpected> 
                                <metadataExpected> 
                                        <ref>SrcBladeID</ref> 
                                        <ref>InputPort</ref> 
                                        <ref>FrameType</ref> 
                                        <ref>DstBladeID</ref> 
                                        <ref>OutputPortID</ref> 
                                        <ref>NexthopIndex</ref> 
                                        <ref>NexthopIP</ref> 
                                        <ref>NexthopIPv6</ref> 
                                </metadataExpected> 
 
L.Dong et al.               Expires Sept., 2007              [Page 59] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
                <outputPort> 
                        <name>EncapOut</name> 
                        <synopsis> 
   Packets that have been added the inter-FE communication header 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>TaggedFrame</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
        </outputPorts> 
        <attributes> 
                <attribute elementID="1"> 
                        <name>InterFECommMsgs</name> 
                        <synopsis> 
   Inter FE communication messages config table. There maybe multiple 
   message types exchanged between every pair of FEs. Now, only one 
   message type can be set between two communicating FEs. 
                        </synopsis> 
                        <typeRef>InterFECommMsgsType 
                        </typeRef> 
                </attribute> 
        </attributes> 
   </LFBClassDef> 
    
     3.5.2. InterFECommDecap LFB 
    
   <LFBClassDef LFBClassID="0x00011019"> 
        <name>InterFECommDecap</name> 
        <synopsis> 
   This LFB class is used for decapsulating traffic that comes from 
   switch fabric to this FE. 
        </synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort> 
                        <name>DecapIn</name> 
                        <synopsis> 
   Packets come from switch fabric and need to strip the inter FE 
   communication header for further processing. 
                        </synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>TaggedFrame</ref> 
 
L.Dong et al.               Expires Sept., 2007              [Page 60] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                                </frameExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
                <outputPort> 
                        <name>DecapOut</name> 
                        <synopsis> 
   Packets that have been stripped the inter FE communication header 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>IPv4</ref> 
                                        <ref>IPv6</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
        </outputPorts> 
        <attributes> 
                <attribute elementID="1"> 
                        <name>InterFECommMsgs</name> 
                        <synopsis> 
   Inter FE communication messages config table. There maybe multiple 
   message types exchanged between every pair of FEs. Now, only one 
   message type is supported between two communicating FEs. 
                        </synopsis>      
                        <typeRef>InterFECommMsgsType</typeRef> 
                </attribute> 
        </attributes> 
   </LFBClassDef> 
    
    3.6. Common Function LFBs 
    
     3.6.1. RedirectSink LFB 
    
   <LFBClassDef LFBClassID="0x0001100c"> 
        <name>RedirectSink</name> 
        <synopsis> 
   This class definition provides the function of sinking data packets 
   that needed to be sent to CE.  
        </synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort group="yes"> 
                        <name>InFromOtherLFBs</name> 
                        <synopsis> 
   Packets input from other LFBs and needed to sent to CE. 
                        </synopsis> 
                        <expectation> 
 
L.Dong et al.               Expires Sept., 2007              [Page 61] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                                <frameExpected> 
                                        <ref>TaggedFrame</ref> 
                                </frameExpected> 
                                <metadataExpected> 
                                        <ref>InputPortID</ref> 
                                        <ref>PacketLength</ref> 
                                        <ref>PacketType</ref> 
                                </metadataExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
   </LFBClassDef> 
    
     3.6.2. RedirectSource LFB 
    
   <LFBClassDef LFBClassID="0x0001100d"> 
        <name>RedirectSource</name> 
        <synopsis> 
   This class provides the function of sinking data packets that comes 
   from CE and needed to be sent out by this FE. 
        </synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort> 
                        <name>PktIn</name> 
                        <synopsis>Packet from CE</synopsis> 
                        <expectation> 
                                <metadataExpected> 
                                        <ref>PacketType</ref> 
                                        <ref>OutputPortID</ref> 
                                        <ref>PacketLength</ref> 
                                </metadataExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
                <outputPort group="yes"> 
                        <name>OutputToOtherLFBs</name> 
                        <synopsis>Packets input received from 
   CE</synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>TaggedFrame</ref> 
                                </frameProduced> 
                                <metadataProduced> 
                                        <ref>PacketType</ref> 
                                        <ref>OutputPortID</ref> 
                                        <ref>PacketLength</ref> 
                                </metadataProduced> 
 
L.Dong et al.               Expires Sept., 2007              [Page 62] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                        </product> 
                </outputPort> 
        </outputPorts> 
        <attributes> 
                <attribute elementID="1"> 
                        <name>DispatchTable</name> 
                        <synopsis>The table to dispatch the packets to 
   different LFB./</synopsis> 
                        <typeRef>DispatchTableType</typeRef> 
                </attribute> 
                <attribute elementID="2"> 
                        <name>OutGroupNumOfPorts</name> 
                        <synopsis>The number of ports in output 
   group</synopsis> 
                        <typeRef>uint32</typeRef> 
                </attribute> 
        </attributes> 
   </LFBClassDef> 
    
     3.6.3. MetaClassifier LFB 
    
   <LFBClassDef LFBClassID="0x00011016"> 
        <name>MetaClassifier</name> 
        <synopsis> 
   This LFB class provides the function of classifying packets 
   according to the metadata. Now it only works on one metadata. 
        </synopsis> 
        <version>1.0</version> 
        <inputPorts> 
                <inputPort> 
                        <name>PktIn</name> 
                        <synopsis> 
                        Packets need to do the classification 
                        </synopsis> 
                        <expectation> 
                                <frameExpected> 
                                        <ref>Arbitrary</ref> 
                                </frameExpected> 
                                <metadataExpected> 
                                        <ref>Arbitrary</ref> 
                                </metadataExpected> 
                        </expectation> 
                </inputPort> 
        </inputPorts> 
        <outputPorts> 
                <outputPort group="yes"> 
                        <name>ClassifiedOut</name> 
                        <synopsis> 
                The output group for the classified packets 
 
L.Dong et al.               Expires Sept., 2007              [Page 63] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
                        </synopsis> 
                        <product> 
                                <frameProduced> 
                                        <ref>Arbitrary</ref> 
                                </frameProduced> 
                        </product> 
                </outputPort> 
        </outputPorts> 
        <attributes> 
                <attribute elementID="1"> 
                        <name>MetaDataID</name> 
                        <synopsis> 
                The metadata ID that this classifier works on 
                        </synopsis> 
                        <typeRef>uint32</typeRef> 
                </attribute> 
                <attribute elementID="2"> 
                        <name>MetaDataName</name> 
                        <synopsis> 
                The name of the metadata that this classifier works on 
                        </synopsis> 
                        <typeRef>string</typeRef> 
                </attribute> 
                <attribute elementID="3"> 
                        <name>MetadataClassifyTable</name> 
                        <synopsis> 
                        The metadata classifying table 
                        </synopsis> 
                        <typeRef>MetadataClassyTableType</typeRef> 
                </attribute> 
                <attribute elementID="4"> 
                        <name>OutNumOfPorts</name> 
                        <synopsis> 
                        The number of ports in the output group 
                        </synopsis> 
                        <typeRef>uint32</typeRef> 
                </attribute> 
        </attributes> 
   </LFBClassDef> 
    
    
 4. Use Case 
 
   (TBD) 
    
 5. IANA Considerations 
   The Following Assigned Numbers are considered: 
    
 6. References 
 
L.Dong et al.               Expires Sept., 2007              [Page 64] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
    
   [RFC3654] H. Khosravi, et al., Requirements for Separation of IP 
   Control and Forwarding, RFC 3654, November 2003. 
    
   [RFC3746] L. Yang, et al., Forwarding and Control Element Separation 
   (ForCES) Framework, RFC 3746, April 2004. 
     
   [ForCES-PL] A. Doria, et al., ForCES protocol specifications, draft-
   ietf-forces-protocol-09.txt, work-in-progress, Mar. 2007.  
    
   [FE-Model] J. Halpern, E. Deleganes, ForCES Forwarding Element Model, 
   draft-ietf-forces-model-07.txt. work-in-progress, Oct. 2006. 
    
    
 7. Author's Address 
    
   Ligang Dong 
   Zhejiang Gongshang University 
   149 Jiaogong Road 
   Hangzhou 310035 
   P.R.China 
   Phone: +86-571-28877751 
   EMail: donglg@mail.zjgsu.edu.cn 
    
   Fengen Jia 
   National Digital Switching System Engineering & Technological R&D 
   Center(NDSC) 
   Jianxue Road 
   Zhengzhou 452000 
   P.R.China 
   Phone: +86-571-28877751 
   EMail: jfg@mail.ndsc.com.cn,fgjia@mail.zjgsu.edu.cn 
    
   Weiming Wang 
   Zhejiang Gongshang University 
   149 Jiaogong Road 
   Hangzhou  310035 
   P.R.China 
   Phone: +86-571-28877721 
   EMail: wmwang@mail.zjgsu.edu.cn 
    
Copyright Statement  
    
   Copyright (C) The IETF Trust (2007). 
    
   This document is subject to the rights, licenses and restrictions 
   contained in BCP 78, and except as set forth therein, the authors 
   retain all their rights.  
    
 
L.Dong et al.               Expires Sept., 2007              [Page 65] 
                                    
Internet Draft              A LFB Library for ForCES          Mar. 2007 
 
 
   This document and the information contained herein are provided on 
   an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE 
   REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE 
   IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM 
   ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
   ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT 
   INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY 
   OR FITNESS FOR A PARTICULAR PURPOSE. 
    
 







































 
L.Dong et al.               Expires Sept., 2007              [Page 66] 
                                    


PAFTECH AB 2003-20262026-04-24 05:46:59