Internet Engineering Task Force W. Wang Internet-Draft Zhejiang Gongshang University Intended status: Informational E. Haleplidis Expires: December 31, 2009 University of Patras K. Ogawa NTT Corporation F. Jia National Digital Switching Center(NDSC) J. Halpern Ericsson June 29, 2009 ForCES LFB Library draft-ietf-forces-lfb-lib-00 Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and 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. This Internet-Draft will expire on December 31, 2009. Copyright Notice Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents in effect on the date of publication of this document (http://trustee.ietf.org/license-info). Wang, et al. Expires December 31, 2009 [Page 1] Internet-Draft ForCES LFB Library June 2009 Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Wang, et al. Expires December 31, 2009 [Page 2] Internet-Draft ForCES LFB Library June 2009 Abstract The forwarding and Control Element Separation (ForCES) protocol defines a standard communication and control mechanism through which a Control Element (CE) can control the behavior of a Forwarding Element (FE). That control is accomplished through manipulating components of Logical Function Blocks (LFBs), whose structure is defined in a model RFC produced by the working group.In order to build an actual solution using this protocol, there needs to be a set of Logical Function Block definitions that can be instantiated by FEs and controlled by CEs. This document provides a sample space of such definitions. It is anticipated that additional defining documents will be produced over time. Table of Contents 1. Terminology and Conventions . . . . . . . . . . . . . . . . . 5 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 5 2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 6 3. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 8 4. Base Definitions . . . . . . . . . . . . . . . . . . . . . . 10 4.1. Framedefs . . . . . . . . . . . . . . . . . . . . . . . . 10 4.2. DataTypeDefs . . . . . . . . . . . . . . . . . . . . . . 11 4.3. MetaDataDefs . . . . . . . . . . . . . . . . . . . . . . 38 5. LFB Descriptions . . . . . . . . . . . . . . . . . . . . . . 44 5.1. Core LFBs . . . . . . . . . . . . . . . . . . . . . . . . 44 5.1.1. FEObject LFB . . . . . . . . . . . . . . . . . . . . 44 5.1.2. FEProtocol LFB . . . . . . . . . . . . . . . . . . . 45 5.2. Port LFBs . . . . . . . . . . . . . . . . . . . . . . . . 45 5.2.1. GenericConnectivityLFB . . . . . . . . . . . . . . . 45 5.2.2. EtherPort . . . . . . . . . . . . . . . . . . . . . . 45 5.2.3. EtherDecap . . . . . . . . . . . . . . . . . . . . . 46 5.2.4. EtherEncap . . . . . . . . . . . . . . . . . . . . . 46 5.3. Address LFBs . . . . . . . . . . . . . . . . . . . . . . 46 5.3.1. IPv6AddrResolution . . . . . . . . . . . . . . . . . 46 5.3.2. Arp . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.3.3. ICMPGenerator . . . . . . . . . . . . . . . . . . . . 46 5.3.4. ICMPv6Generator . . . . . . . . . . . . . . . . . . . 46 5.3.5. IPv4Validator . . . . . . . . . . . . . . . . . . . . 47 5.3.6. IPv6Validator . . . . . . . . . . . . . . . . . . . . 47 5.4. Forwarding LFBs . . . . . . . . . . . . . . . . . . . . . 47 5.4.1. IPv4UcastLPM . . . . . . . . . . . . . . . . . . . . 47 5.4.2. IPv4NextHopApplicator . . . . . . . . . . . . . . . . 47 5.4.3. IPv6UcastLPM . . . . . . . . . . . . . . . . . . . . 47 5.4.4. IPv6UcastNexthopApplicator . . . . . . . . . . . . . 47 5.5. Queue and scheduler LFBs . . . . . . . . . . . . . . . . 48 5.5.1. Scheduler . . . . . . . . . . . . . . . . . . . . . . 48 Wang, et al. Expires December 31, 2009 [Page 3] Internet-Draft ForCES LFB Library June 2009 5.5.2. Queue . . . . . . . . . . . . . . . . . . . . . . . . 49 5.5.3. WRRSched . . . . . . . . . . . . . . . . . . . . . . 49 5.6. Miscellanious LFBs . . . . . . . . . . . . . . . . . . . 49 5.6.1. ExtendHeaderProc . . . . . . . . . . . . . . . . . . 49 5.6.2. MetadataClassifier . . . . . . . . . . . . . . . . . 49 5.6.3. OptionProc . . . . . . . . . . . . . . . . . . . . . 49 5.6.4. RedirectLFB . . . . . . . . . . . . . . . . . . . . . 50 5.6.5. PacketTrimmer . . . . . . . . . . . . . . . . . . . . 50 5.6.6. Duplicator . . . . . . . . . . . . . . . . . . . . . 50 5.6.7. ArbitraryClassifierLFB . . . . . . . . . . . . . . . 50 6. LFB Library Definition . . . . . . . . . . . . . . . . . . . 51 7. LFB Use Case . . . . . . . . . . . . . . . . . . . . . . . . 112 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 113 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 114 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 115 11. Security Considerations . . . . . . . . . . . . . . . . . . . 116 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 117 12.1. Normative References . . . . . . . . . . . . . . . . . . 117 12.2. Informative References . . . . . . . . . . . . . . . . . 117 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 118 Wang, et al. Expires December 31, 2009 [Page 4] Internet-Draft ForCES LFB Library June 2009 1. Terminology and Conventions 1.1. Requirements Language 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]. Wang, et al. Expires December 31, 2009 [Page 5] Internet-Draft ForCES LFB Library June 2009 2. Definitions This document follows the terminology defined by the ForCES Requirements in [RFC3654]and by the ForCES framework in [RFC3746]. The definitions below are repeated below for clarity. Control Element (CE) - A logical entity that implements the ForCES protocol and uses it to instruct one or more FEs on how to process packets. CEs handle functionality such as the execution of control and signaling protocols. Forwarding Element (FE) - A logical entity that implements the ForCES protocol. FEs use the underlying hardware to provide per- packet processing and handling as directed/controlled by one or more CEs via the ForCES protocol. ForCES Network Element (NE) - An entity composed of one or more CEs and one or more FEs. To entities outside an NE, the NE represents a single point of management. Similarly, an NE usually hides its internal organization from external entities. LFB (Logical Function Block) - The basic building block that is operated on by the ForCES protocol. The LFB is a well defined, logically separable functional block that resides in an FE and is controlled by the CE via ForCES protocol. The LFB may reside at the FE's datapath and process packets or may be purely an FE control or configuration entity that is operated on by the CE. Note that the LFB is a functionally accurate abstraction of the FE's processing capabilities, but not a hardware-accurate representation of the FE implementation. FE Topology - A representation of how the multiple FEs within a single NE are interconnected. Sometimes this is called inter-FE topology, to be distinguished from intra-FE topology (i.e., LFB topology). LFB Class and LFB Instance - LFBs are categorized by LFB Classes. An LFB Instance represents an LFB Class (or Type) existence. There may be multiple instances of the same LFB Class (or Type) in an FE. An LFB Class is represented by an LFB Class ID, and an LFB Instance is represented by an LFB Instance ID. As a result, an LFB Class ID associated with an LFB Instance ID uniquely specifies an LFB existence. LFB Metadata - Metadata is used to communicate per-packet state from one LFB to another, but is not sent across the network. The FE model defines how such metadata is identified, produced and consumed by the LFBs. It defines the functionality but not how Wang, et al. Expires December 31, 2009 [Page 6] Internet-Draft ForCES LFB Library June 2009 metadata is encoded within an implementation. LFB Component - Operational parameters of the LFBs that must be visible to the CEs are conceptualized in the FE model as the LFB components. The LFB components include, for example, flags, single parameter arguments, complex arguments, and tables that the CE can read and/or write via the ForCES protocol (see below). LFB Topology - Representation of how the LFB instances are logically interconnected and placed along the datapath within one FE. Sometimes it is also called intra-FE topology, to be distinguished from inter-FE topology. ForCES Protocol - While there may be multiple protocols used within the overall ForCES architecture, the term "ForCES protocol" and "protocol" refer to the Fp reference points in the ForCES Framework in [RFC3746]. This protocol does not apply to CE-to-CE communication, FE-to-FE communication, or to communication between FE and CE managers. Basically, the ForCES protocol works in a master- slave mode in which FEs are slaves and CEs are masters. This document defines the specifications for this ForCES protocol. Wang, et al. Expires December 31, 2009 [Page 7] Internet-Draft ForCES LFB Library June 2009 3. Introduction XXX: Editorial Note: This is an initial rough copy of the document which will undergo heavy review and modification. It was published to beat the meeting deadline. Forwarding and Control Element Separation (ForCES) defines an architectural framework and associated protocols to standardize information exchange between the control plane and the forwarding plane in a ForCES Network Element (ForCES NE). [RFC3654]has defined the ForCES requirements, and [RFC3746] has defined the ForCES framework. The ForCES protocol Protocol FE-protocol [I-D.ietf-forces-protocol] defines a protocol by which Control Elements (CEs) communicated with and control the behavior of Forwarding Elements (FEs). That control is expressed in terms of manipulations of components of Logical Function Blocks (LFBs). The structure and abstract semantics of LFBs is defined in Model FE-MODEL [I-D.ietf-forces-model]. That document also defines a single LFB Class for gaining access to FE properties including the set of LFBs and their interconnection. The Protocol document defines an LFB class for manipulating the protocol properties of the FE. In order for the protocol to be useful to control any behavior, there must be a set of LFB class definitions for the LFBs which provide that behavior. This document provides a set of such definitions. This document is intended to provide an initial LFB library. It is expected that other definitions will be developed over time, and documented in other RFCs. An LFB performs a well-defined action or computation on the packets passing through it. Upon completion of its prescribed function, either the packets are modified in certain ways (e.g., decapsulator, marker), or some results are generated and stored, often in the form of metadata (e.g., classifier). Each LFB typically performs a single action. Classifiers, shapers and meters are all examples of such LFBs. In general, multiple LFBs are contained in one FE. An LFB, may have inputs, outputs and components that can be queried and manipulated by the CE via the ForCES Protocol. An LFB can have one or more inputs. Each input takes a pair of a packet and its associated metadata. The LFB processes the input, and produces one or more outputs, each of which is a pair of a packet and its associated metadata. For further information regarding the LFB model, the reader is referenced to FE-MODEL [I-D.ietf-forces-model]. Wang, et al. Expires December 31, 2009 [Page 8] Internet-Draft ForCES LFB Library June 2009 XXX: The above text is redundant. The definition gives some intro to LFBs and the model and all the other docs before this tell us what an LFB is In this document we first define base structures used in building the LFBs in section 4 then use those base definitions to define various LFBs. To simplify the understanding of these LFBs - we have chosen to group them by functionality. The following groups of LFBs will be described in section 5: 1. Core LFBs. 2. Port LFBs. 3. Address LFBs. 4. Forwarding LFBs. 5. Queue manager and scheduler LFBs. 6. Miscellanious LFBs. Wang, et al. Expires December 31, 2009 [Page 9] Internet-Draft ForCES LFB Library June 2009 4. Base Definitions This section povides a base set of LFB frame, data type, and meta data definitions for use by all any LFB Class definitions (in this or other documents. This section provides no actual LFB Class definitions. These are then used in each subsequent definition by the statement: 4.1. Framedefs The following Frames are defined: 1. EthernetII - An Ethernet II frame type. 2. Ethernet802.3 - An Ethernet 802.3 frame type. 3. Ethernet802.2 - An Ethernet 802.2 frame type. 4. Ethernet802.2SNAP - An Ethernet 802.2 with SNAP frame. 5. IPv4Frame - An IPv4 packet. 6. IPv6Frame - An IPv6 packet. 7. TaggedFrame - A frame of any type with associated metadata. 8. MetadataFrame - Frame only contains meta data. 9. Arbitrary - Any kind of frame except Metadata Frame. Wang, et al. Expires December 31, 2009 [Page 10] Internet-Draft ForCES LFB Library June 2009 EthernetII An Ethernet II frame type Ethernet802.3 An Ethernet 802.3 frame type Ethernet802.2 An Ethernet 802.2 frame type Ethernet802.2SNAP An Ethernet 802.2 with SNAP frame IPv4Frame An IPv4 packet IPv6Frame An IPv6 packet taggedFrame A frame of any type with associated metadata. MetadataFrame Frame only contains meta data Arbitrary Any kind of frame except Metadata Frame. 4.2. DataTypeDefs The following Data Types are defined: 1. ifIndex - A Port Identifier. 2. IEEEMAC - IEEE MAC Address. Wang, et al. Expires December 31, 2009 [Page 11] Internet-Draft ForCES LFB Library June 2009 3. NetSpeedType - Network speed values. 4. IEEENegotiationType - IEEENegotiation types. 5. PortStatsType - Port statistics. 6. PortStatusValues - The possible values of status Used for both administrative and operation status. 7. LocalIpAddrType - Local IP address belonging to FE. 8. LocalIpv6AddrType - The device local IPv6 address infomation. 9. IPv4Addr - IPv4 address. 10. IPv6Addr - IPv6 address. 11. IPv4Prefix - IPv4 prefix defined by an address and a prefix length. 12. IPv4NextHopInfoType - IPv4 nexthop information,include nexthop ip address,output FE and interface etc. 13. IPv4FibEntryType - IPv4 forwarding table entry. 14. IPv4PrefixTableEntry - IPv4 prefix table entry. 15. IPv4UcastLPMStatisticsType - Statistics of IPv4UcastLPM LFB. 16. IPv4ValidatorStatisticsType - IPv4 validator LFB statistics type. 17. IPv6Prefix - IPv6 prefix defined by an address and a prefix length. 18. IPv6NextHopInfoType - IPv6 next hop information, include next hop ip address,output FE and interfac eetc. 19. IPv6PrefixTableEntry - IPv6 prefix table entry. 20. IPv6LPMClassiferStatisticsType - Statistics of IPv6 LPM ClassifierLFB. 21. IPv6ValidatorStatisticsType - IPv6 validator LFB statistics type. 22. NextHopFlagsType - Flags used to define different next hop behaviors. Wang, et al. Expires December 31, 2009 [Page 12] Internet-Draft ForCES LFB Library June 2009 23. WeightTableEntryType - Weight table for queues. 24. NbrState - IPv6 neighbour entry resolution state. 25. ArpTableEntryType - Arp Entry. 26. NbrTableEntryType - IPv6 neighbour table entry. 27. DCHostTableEntryTypev4 - Direct connected arp table entry for IPv4. 28. DCHostTableEntryTypev6 - Direct connected arp table entry for IPv6. 29. IPPacketType - The packet type code. 30. IPDispatchTableType - The dispatch table type. 31. MetaType - Metadata type definition. 32. MetadataClassTableType - The meta data classifying table. 33. LinkEncapType - Encapsulation type. 34. IPAddress - IP layer address. 35. ArpStateType - The arp entry state. 36. MatchTargetType - Indicator for the kind of field to be matched by this entry in a classifier. 37. MatchTargetIdentifier - Identify the specific target of a match condition. 38. MatchBitString - A bit string for use in a match condition. 39. MatchCondition - Structure for a single condition to be applied. 40. MatchConditiontType - Indicator for the kind of match condition to be applied. 41. MatchMetaDataAction - An action to set a metadata item to either a specific value or a field from the incoming meta data or packet. 42. NextHopIndex - An index used by the next hop table Typically stored in and generated as metadata by the longest-prefix-match LFB. Wang, et al. Expires December 31, 2009 [Page 13] Internet-Draft ForCES LFB Library June 2009 ifIndex A Port Identifier uint32 IEEEMAC IEEE MAC Address byte[6] NetSpeedType Network speed values uint32 LAN_SPEED_10M 10M Ethernet LAN_SPEED_100M 100M Ethernet LAN_SPEED_1G 1000M Ethernet LAN_SPEED_10G 10G Ethernet LAN_SPEED_AUTO LAN speed auto Wang, et al. Expires December 31, 2009 [Page 14] Internet-Draft ForCES LFB Library June 2009 IEEENegotiationType IEEENegotiation types uint32 Auto Auto negotitation. Half-duplex port negotitation half duplex Full-duplex port negotitation full duplex PortStatsType Port statistics InUcastPkts Number of unicast packets received uint64 InMulticastPkts Number of multicast packets received uint64 InBroadcastPkts Number of broadcast packets received uint64 InOctets number of octets received uint64 OutUcastPkts Number of unicast packets transmitted Wang, et al. Expires December 31, 2009 [Page 15] Internet-Draft ForCES LFB Library June 2009 uint64 OutMulticastPkts Number of multicast packets transmitted uint64 OutBroadcastPkts Number of broadcast packets transmitted uint64 OutOcetes Number of octets transmitted uint64 InErrorPkts Number of input error packets uint64 OutErrorPkts Number of output error packets uint64 PortStatusValues The possible values of status. Used for both administrative and operation status uchar Disabled the port is operatively disabled. UP the port is up. Down Wang, et al. Expires December 31, 2009 [Page 16] Internet-Draft ForCES LFB Library June 2009 The port is down. LocalIpAddrType Local IP address belonging to FE. FEID The FE on which the port ip resides uint32 IfIndex port index on the specified FE uint32 IPaddr IP address of the port IPAddr netmask netmask of this ip address IPAddr BcastAddr The associated Broadcast address of the ip address IPAddr LocalIpv6AddrType The device local IPv6 address infomation FEID The FE on which the port ip resides Wang, et al. Expires December 31, 2009 [Page 17] Internet-Draft ForCES LFB Library June 2009 uint32 IfIndex port index on the specified FE uint32 IPv6addr IP address of the port IPv6Addr prefixlen prefix length of this ip address uint32 IPv4Addr IPv4 address byte[4] IPv6Addr IPv6 address byte[16] IPv4Prefix IPv4 prefix defined by an address and a prefix length address Address part IPv4addr prefixlen Prefix length part uchar Wang, et al. Expires December 31, 2009 [Page 18] Internet-Draft ForCES LFB Library June 2009 IPv4NextHopInfoType IPv4 nexthop information,include nexthop ip address, output FE and interface etc. NexthopID nexthop id uint32 FEID output FE id uint32 Egress output port index uint32 MTU The maximum transmition unit of the nexthop link. uint32 Flags Associated flags of the nexthop,such as local delivery,multicast etc. NextHopFlagsType NexthopIPaddr IP address of the nexthop IPv4Addr L2Index index into the L2 link layer table,such as IPv4 ARP table or IPv6 NBR table. Wang, et al. Expires December 31, 2009 [Page 19] Internet-Draft ForCES LFB Library June 2009 uint32 EncapNeeded The type of encapsulation needed on the packet. LinkEncapType IPv4FibEntryType IPv4 forwarding table entry. prefix IPv4 prefix. IPv4Prefix FEID output FE id uint32 Egress output port index uint32 MTU The maximum transmition unit of the nexthop link. uint32 Flags Associated flags of the nexthop,such as local delivery,multicast etc. NextHopFlagsType NexthopIPaddr IP address of the nexthop IPv4Addr Wang, et al. Expires December 31, 2009 [Page 20] Internet-Draft ForCES LFB Library June 2009 L2Index index into the L2 link layer table,such as IPv4 ARP table or IPv6 NBR table. uint32 EncapNeeded Type of encapsulation needed on the packet LinkEncapType IPv4PrefixTableEntry IPv4 prefix table entry Prefix IPv4 address prefix IPv4Prefix NexthopID Index into the nexthop table. uint32 IPv4UcastLPMStatisticsType statistics of IPv4UcastLPM LFB InRcvdPkts The total number of input packets received from interfaces, including those received in error uint64 FwdPkts IPv4 packet forwarded by this LFB uint64 NoRoutePkts The number of IP datagrams discarded because no route Wang, et al. Expires December 31, 2009 [Page 21] Internet-Draft ForCES LFB Library June 2009 could be found to transmit them to their destination. uint64 InDeliverPkts The total number of input datagrams successfully delivered to IP user-protocols (including ICMP). uint64 IPv4ValidatorStatisticsType IPv4 validator LFB statistics type badHeaderPkts The total number of input datagrams with bad ip header uint64 badTotalLengthPkts The total number of input datagrams with bad length uint64 badTTLPkts The total number of input datagrams with bad TTL uint64 badChecksum The total number of input datagrams with bad checksum uint64 IPv6Prefix IPv6 prefix IPv6addr Wang, et al. Expires December 31, 2009 [Page 22] Internet-Draft ForCES LFB Library June 2009 address part of the prefix IPv6Addr prefixlen length of the prefix uint32 IPv6NextHopInfoType IPv6 nexthop information,including nexthop ip address, output FE and interface etc. NexthopID nexthop id uint32 FEID output FE id uint32 Egress output port index uint32 MTU The maximum transmition unit of the nexthop link. uint32 Flags Associated flags of the nexthop,such as local delivery,multicast etc. NextHopFlagsType NexthopIPv6addr IP address of the nexthop IPv6Addr Wang, et al. Expires December 31, 2009 [Page 23] Internet-Draft ForCES LFB Library June 2009 L2Index index into the L2 table uint32 EncapNeeded Type of encapsulation needed on the packet LinkEncapType IPv6PrefixTableEntry IPv6 prefix table entry Prefix IPv6 address prefix IPv6Prefix NexthopID index to the nexthop table. uint32 IPv6LPMClassiferStatisticsType statistics of IPv6LPMClassifier LFB InRcvdPkts The total number of input packets received from interfaces, including those received in error uint64 FwdPkts IPv4 packet forwarded by this LFB uint64 NoRoutePkts The number of IP datagrams discarded because no route Wang, et al. Expires December 31, 2009 [Page 24] Internet-Draft ForCES LFB Library June 2009 could be found to transmit them to their destination. uint64 InDeliverPkts The total number of input datagrams successfully delivered to IP user-protocols (including ICMP). uint64 IPv6ValidatorStatisticsType IPv6 validator LFB statistics type badHeaderPkts The total number of input datagrams with bad ip header uint64 badTotalLengthPkts The total number of input datagrams with bad length uint64 badTTLPkts The total number of input datagrams with bad TTL uint64 badChecksum The total number of input datagrams with bad checksum uint64 NextHopFlagsType Flags to define different nexthop behaviors uint32 Wang, et al. Expires December 31, 2009 [Page 25] Internet-Draft ForCES LFB Library June 2009 local Packets match the nexthop entry with this flag are delivered to the higher level protocols. drop Packets match the nexthop entry with this flag are to be dropped. broadcast The route associated with this nexthop is a broadcast. multicast The route associated with this nexthop is multicast WeightTableEntryType Weight table for queues. QueueID queue id uint32 weight weight of the queue. uint32 NbrState IPv6 neighbour entry resolution state. uchar Wang, et al. Expires December 31, 2009 [Page 26] Internet-Draft ForCES LFB Library June 2009 INCOMPLETE 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. REACHABLE 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. STALE 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 unsolicited 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. DELAY 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 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. PROBE A reachability confirmation is actively sought by retransmitting Neighbor Solicitations every RetransTimer milliseconds until a reachability confirmation is received. Wang, et al. Expires December 31, 2009 [Page 27] Internet-Draft ForCES LFB Library June 2009 ArpTableEntryType Arp entry. Index Index of the arp table. uint32 NeighborIP IP address of the neighbour. IPv4Addr SrcMac Source MAC. IEEEMAC NeighborMac Mac of the Neighbor. IEEEMAC State State of the address resolution progress. ArpStateType NbrTableEntryType IPv6 neighbour table entry. Index Index of the arp table. uint32 NeighborIPv6 IP address of the neighbour. Wang, et al. Expires December 31, 2009 [Page 28] Internet-Draft ForCES LFB Library June 2009 IPv6Addr SrcMac Source MAC. IEEEMAC NeighborMac Mac of the Neighbor. IEEEMAC State State of the entry's resolution progress. NbrState DCHostTableEntryTypev4 Direct connected arp table entry for IPv4. NeighbourIP IP address of the neighbour. IPv4Addr SrcMac Source MAC. IEEEMAC NeighborMac Mac of the Neighbor. IEEEMAC DCHostTableEntryTypev6 Direct connected arp table entry for IPv6. NeighbourIPv6 Wang, et al. Expires December 31, 2009 [Page 29] Internet-Draft ForCES LFB Library June 2009 IP address of the neighbour. IPv6Addr SrcMac Source MAC. IEEEMAC NeighborMac Mac of the Neighbor. IEEEMAC IPPacketType The packet type code. uchar IPv4Ucast IPv4 unicast packet. IPv4Mcast IPv4 multicast packet. IPv6Ucast IPv6 unicast packet. IPv6Mcast IPv6 multicast packet. IPDispatchTableType The dispatch table type. IPPacketType Wang, et al. Expires December 31, 2009 [Page 30] Internet-Draft ForCES LFB Library June 2009 The type of the packet.IPv4Uncast,IPv6Ucast, IPv4Mulcast,IPv6Mulcast etc. IPPacketType index The index of the output group to output the packets uint32 MetaType Metadata type definition. MetadataID The ID of the metadata,the value is standardalized in the corresponding LFB definition RFCs. uint32 MetadataName The name of the metadata. String MetadataClassTableType The meta data classifying table. value Value of the meta data. uint32 index The index of the port in the output group to use for outputing the packets. uint32 Wang, et al. Expires December 31, 2009 [Page 31] Internet-Draft ForCES LFB Library June 2009 LinkEncapType Encapsulation type. uchar Link Link layer encapsulation such as Ethernet and PPP. InterFE Inter FE communication encapsulation. Tunnel Tunnel encapsulation such as IP-in-IP. IPAddress IP layer address. Ipv4 IPv4 address. IPv4Addr Ipv6 IPv6 address. IPv6Addr ArpStateType The arp entry state. uchar Manual Wang, et al. Expires December 31, 2009 [Page 32] Internet-Draft ForCES LFB Library June 2009 The entry is manually set. InSolicit The peer's level 2 address is still in requesting. Valid The address resolution have been completed successfully.Now it can be used in the data packets forwarding MatchTargetType Indicator for the kind of field to be matched by this entry in a classifier. uchar MatchNone A matcher against no field MatchMetaData A matcher against a metadata item MatchPacketField A matcher that works against an identified packet field. MatchOffsetLength The match target is a specified portion of the packet. Wang, et al. Expires December 31, 2009 [Page 33] Internet-Draft ForCES LFB Library June 2009 MatchTargetIdentifier Identify the specific target of a match condition. MetaDataID The ID of a metadata item uint32 packetFieldID The identifier for a packet Field, such as SA, DA, Protocol, SPort, DPort, etc. These identifiers allow references to fields with varialbe amounts before them. uint32 OffSetLengthPacketField A field in the packet identified by its offset and length in bits. This does not allow for matching fields whose position depends upon earlier field sizes. fieldOffset The offset in bits from the start of the packet to the start of the field. uint32 fieldLength The length of the field, in bits uint32 MatchBitString A bit string for use in a match condition. Wang, et al. Expires December 31, 2009 [Page 34] Internet-Draft ForCES LFB Library June 2009 MatchBits The bits to match octetstring[16] MatchLength The number of bits to match uchar MatchCondition Structure for a single condition to be applied TargetType The category of target to match MatchTargetType TargetID The specific target to compare MatchTargetIdentifier MatchType The kind of match to apply. MatchConditionType MatchParamOne The first parameter for the match MatchBitString MatchParamTwo The second parameter for the match MatchBitString MatchConditiontType Wang, et al. Expires December 31, 2009 [Page 35] Internet-Draft ForCES LFB Library June 2009 Indicator for the kind of match condition to be applied. uchar MatchNone A matcher which always fails MatchExact The target and the match value must be the same, with no padding. Only the first value of the match condition is used. The first match value must be occur. MatchLeft The target must begin with the first match value. If there is a second match value, the remainder of the target must match repeated occurrances of the second value. Thus, this can be used to allow any terminal content, or specific ending pad. The first match value must occur. MatchRight The target must end with the first match value. If there is a second match value, the preceding part of the target must match repeated occurrances of the second value. Thus, this can be used to allow any leading content, or specific leading fill. The first match value must occur. MatchRange The match values will be considered as numbers, and the target must be greater than or equal to the first match value, and less than or equal to the second match value. An omitted match value means that end of the range is unlimitted. Wang, et al. Expires December 31, 2009 [Page 36] Internet-Draft ForCES LFB Library June 2009 MatchMaskedValue The target the the first value are each anded with the second value. The match succeeds if the results of these and operations are identical. Both values are required. MatchSucceed A Match which always succeeds MatchMetaDataAction An action to set a metadata item to either a specific value or a field from the incoming meta data or packet. MetaDataToSet The Meta Data Item to set uint32 ExplicitValueToSet A value to set the metadata to octetstring[16] ValueFromCondition This is an index into the corresponding match conditions, and the meta data will be set to the value that was tested by that condition. uint32 NextHopIndex An index used by the next hop table. Wang, et al. Expires December 31, 2009 [Page 37] Internet-Draft ForCES LFB Library June 2009 Typically stored in and generated as metadata by the longest-prefix-match LFB. int32 4.3. MetaDataDefs The following MetaData Types are defined: 1. NextHopID - An index into a Next Hop entry in Nexthop table. 2. ExceptionID - Exception Types. 3. IngressPort - At which interface the packet arrive. 4. EgressPort - The interface out which the packet will emmit. 5. NextHopIP - Nexthop IPv4 address. 6. NexthopIPv6 - Nexthop IPv6 address. 7. PacketLength - The length of the packet in octets. 8. IPPacketType - Type of the packet. 9. QueueID - The queue ID. 10. QueueOperationCmd - The type of operation on the queue,there are two types defined here: enqueue and dequeue. 11. SrcFEID - Source FE ID. 12. DstFEID - Destination FE ID. 13. NexthopIndex - Next hop index into the link layer address resolution table. 14. NHEncapMethod - How should the following LFBs do to encapsulate the packets. 15. ErrorId - Error Type. NextHopID An index into a Next Hop entry in Nexthop table Wang, et al. Expires December 31, 2009 [Page 38] Internet-Draft ForCES LFB Library June 2009 1 NextHopIndex ExceptionID Exception Types 2 uint32 Options Packets with options,for IPv6 Packet with next-header set to hop-by-hop header(0). LengthMismatch The packet length reported by link layer is less than the total length field. BadTTL The packet can't be forwarded as the TTL has expired. Multicast Packet received is a multicast packet. FragRequired The MTU for outgoing interface is less than the packet size. Redirect The outgoing port is same as the one on which the packet is received. LocalDelivery The packet is for a local interface. LimitedBroadcast The packet received as limited broadcast Wang, et al. Expires December 31, 2009 [Page 39] Internet-Draft ForCES LFB Library June 2009 IngressPort At which interface the packet arrive. 3 ifIndex EgressPort The interface out which the packet will emmit. 4 ifIndex NextHopIP Nexthop IPv4 address 5 IP4Addr NexthopIPv6 Nexthop IPv6 address 6 IPv6Addr PacketLength The length of the packet in octets. 7 uint32 IPPacketType Type of the packet 8 uint32 IPv4 IPv4 packet Wang, et al. Expires December 31, 2009 [Page 40] Internet-Draft ForCES LFB Library June 2009 IPv6 IPv6 packet TaggedFrame packet with metadata MetaDataFrame meta data only QueueID The queue ID 9 uint32 QueueOperationCmd The type of operation on the queue,there are two types defined here: enqueue and dequeue. 10 uchar Enqueue Enqueue command. Dequeue Dequeue command. SrcFEID Source FE ID. 11 uint32 Wang, et al. Expires December 31, 2009 [Page 41] Internet-Draft ForCES LFB Library June 2009 DstFEID Destination FE ID. 12 uint32 NexthopIndex Nexthop index into the link layer address resolution table. 13 uint NHEncapMethod how 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 transimiting to other FEs;tunnel encapsulation which means the packet need do extra tunnel encapsulation before sending out to media. 14 LinkEncapType ErrorId Error Type. 15 int32 WrongIpVersion the IP version wrong WrongLength the packet length is not as long as the header indicates otherError The errors we not defined now Wang, et al. Expires December 31, 2009 [Page 42] Internet-Draft ForCES LFB Library June 2009 Wang, et al. Expires December 31, 2009 [Page 43] Internet-Draft ForCES LFB Library June 2009 5. LFB Descriptions As specified in section 3.1.2 the LFBs have been grouped together for better understanding. The following groups have been created 1. Core LFBs, including FE Object LFB and FE Protocol LFB. 2. Port LFBs. These LFBs are intended to provide media and encapsulation oriented capabilities associated with an interface. The interfaces may be between FEs inside NE or to the outside world. Allowing for the complicated features of different interface technology. 3. Address LFBs. LFBs to model Addresses like IPv4, IPv6 addresses. 4. Forwarding LFBs. LFBs to model the IPv4 and IPv6 forwarding function, e.g., IPv4Validor LFB, IPv4UcastLPM LFB, IPv4NextHopApplicator LFB, ARP LFB, ICMPProc LFB, OptionProc LFB, IPv6Validator LFB, IPv6UcastLPM LFB, ExtendHeaderProc LFB, IPv6NexthopApplicator LFB,IPv6AddrResolutionLFB LFB, ICMPv6Proc LFB. 5. Queue manager and scheduler LFBs. LFB that model queues and schedulers. A basic queue LFB and scheduler LFB are defined. Queues and scheduler can be cascaded together to build more complicated schedulers. 6. Miscellanious LFBs. LFBs that capture the functionality broadly used in FEs but are not part of any category, e.g., RedirectSink LFB, RedirectSource LFB, MetaClassifier LFB, GeneralClassifier LFB. 5.1. Core LFBs Currently there are only two core LFBs defined. These two LFBs are core LFBs for ForCES. It's required that each FE must implement these two LFBs for CE to control it. 1. FEObjectLFB 2. FEProtocolLFB 5.1.1. FEObject LFB The FEObject LFB is described in detail in the FE-MODEL [I-D.ietf-forces-model]. The reader is refered there for further detail. Wang, et al. Expires December 31, 2009 [Page 44] Internet-Draft ForCES LFB Library June 2009 5.1.2. FEProtocol LFB The FEProtocol LFB is described in detail in the FE-protocol [I-D.ietf-forces-protocol]. The reader is refered there for further detail. 5.2. Port LFBs The Port LFBs that are defined in this library are: 1. GenericConnectivityLFB 2. EtherPort 3. EtherDecap 4. EtherEncap 5.2.1. GenericConnectivityLFB This LFB Class provides a generic basis for representing connectivity between the FE and the outside world. The LFB has one or more ports for packets that the FE processing logic is forwrding for transmission by this Connectivity LFB. It has one or more ports for packets that the Connectivity LFB has received and is handing to the FE processing logic. Multiple ports for handline packets are supported so that protocol specific encapsulation and demultiplexing can be provided by this LFB. This LFB also has ports for sending packets to lower layer Connectivity LFBs and receiving packets from such lower layer Connectivity LFBs. This enables support for the processing components of interface stacks, such as PPP over Ethernet or Ethernet over MPLS. For packets arriving from Media or lower layer connectivity, this LFB will perform appropriate media validation, then remove media specific headers, and place the relevant information in meta-data. For ethernet, the Source MAC would be in meta-data. For Frame Relay or ATM, a circuit identifier would be in meta-data. For Ethernet with VLANs, this meta-data would indicate which VLAN the packet came from. For packets to be transmitted, meta-data indicating the destination (destination MAC or outgoing circuit, etc.) is required. This LFB will also include statistical components such as the number of octets and packets sent and received, the number of various input and output errors, etc. 5.2.2. EtherPort LFB for Ethernet ports Wang, et al. Expires December 31, 2009 [Page 45] Internet-Draft ForCES LFB Library June 2009 5.2.3. EtherDecap An LFB class for definition of Ethernet decapsulation and Ethernet filtering functions. 5.2.4. EtherEncap An LFB classifier definition for completes ethernet encapsulation fuctions. 5.3. Address LFBs The Address LFBs that are defined in this library are: 1. IPv6AddrResolution 2. Arp 3. ICMPGenerator 4. ICMPv6Generator 5. IPv4Validator 6. IPv6Validator 5.3.1. IPv6AddrResolution 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. 5.3.2. Arp This LFB class provides the function of address resolution for IPv4 nodes. 5.3.3. ICMPGenerator This LFB class provide some basic ICMP function,it only generate the following ICMP messages:ICMP destination unreachable and time excceeded. 5.3.4. ICMPv6Generator This LFB class provide some basic ICMPv6 function,it only generate the following ICMP messages for the packets that need some basic icmp Wang, et al. Expires December 31, 2009 [Page 46] Internet-Draft ForCES LFB Library June 2009 processing:destination not reachable and time excceeded. 5.3.5. IPv4Validator An LFB Class definition for validates the IPv4 packet. This LFB validates the IP version and header length fields, including verifying that the packet length is at least as long as the header indicates. 5.3.6. IPv6Validator An LFB Class definition for validates the IPv6 packet. This LFB validates the IP version and header length fields, including verifying that the packet length is at least as long as the header indicates. 5.4. Forwarding LFBs The Forwarding LFBs that are defined in this library are: 1. IPv4UcastLPM 2. IPv4NextHopApplicator 3. IPv6UcastLPM 4. IPv6UcastNexthopApplicator 5.4.1. IPv4UcastLPM IPv4 Longest Prefix Match Lookup LFB 5.4.2. IPv4NextHopApplicator An LFB definition for applicating next hop action to IPv4 packets,the actions include:TTL operation,checksum recalculation. 5.4.3. IPv6UcastLPM An LFB class definition for IPv6 longest prefix lookup function. 5.4.4. IPv6UcastNexthopApplicator An LFB for applicating next hop action to IPv6 packets,actions mainly inlcude TTL incrementation and checksum recalculation. Wang, et al. Expires December 31, 2009 [Page 47] Internet-Draft ForCES LFB Library June 2009 5.5. Queue and scheduler LFBs To build an actual forwarder, one must include some limited for of queueing and scheduling. Queues are entities which store packets. Schedulers are entities which react to the state of queues and cause packets to be emitted from queues. The actual interaction between queues and schedulers (and their real world degree of separation) is quite complex. A very complex LFB model would be required to represent all the complexity. Additionally, there is the issue of representing the relationship between the queue and the scheduler. A simple approach has been taken in these class definitions. A queue element consists of an input port (called InData) on which it receives data packets, and output port (called OutData) on which it will send packets when permitted by its definition or the scheduler. Its relationship to scheduluers is represented by a set of output ports (the group OutCountrol) and an input port (called InControl). These ports are defined to carry packets consisting only of meta- data. In fact, these ports are an abstraction, and what one might call a legal fiction. An element of the OutControl group represents the fact that a scheduler is aware of the state of that queue element. The InControl port represents the fact that one or more schedulers connected to that port are controlling that queue. There is no meta-data defined for actual exchange on these ports, as their real world realization is highly implementation dependent. To complete this picture, a schedule has a group of input ports (Watchers) representing the connectivity to queues it is aware of, and a group of output ports (Controllers) representing control over queues. This allows for the simple case of a controller who monitors and controls a single set of queues, and more interesting cases where the control of certain queues may depend upon the state of queues whihc are not under the control of the scheduler. The Queues and schedulers LFBs that are defined in this library are: 1. Scheduler 2. Queue 3. WRRSched 5.5.1. Scheduler This defines a base LFB class for schedulers. Schedulers have an Input Port group called Watchers for representing the queues they watch, and an Output Port group called Controllers fro representing Wang, et al. Expires December 31, 2009 [Page 48] Internet-Draft ForCES LFB Library June 2009 the queues they control. 5.5.2. Queue Queues have a packet input, a packet output, a control input, and a group of control outputs. The control ports represent the control relationships with scheduluers. 5.5.3. WRRSched Weighted round robin scheduler. 5.6. Miscellanious LFBs The Miscellanious LFBs that are defined in this library are: 1. ExtendHeaderProc 2. MetadataClassifier 3. OptionProc 4. RedirectLFB 5. PacketTrimmer 6. Duplicator 7. ArbitraryClassifierLfb 5.6.1. ExtendHeaderProc 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. 5.6.2. MetadataClassifier This LFB class provides the function of classify packets according to the meta data.Now it only works on one meta data. 5.6.3. OptionProc This LFB class process the IPv4 packet with options,it can process on the following options:Router-alert option. Wang, et al. Expires December 31, 2009 [Page 49] Internet-Draft ForCES LFB Library June 2009 5.6.4. RedirectLFB An LFB Class definition for exchanging data packets between the FE and the CE. This LFB represents a point of exchagne of data packets between the CE and the FE. Packets with meta-data are exchanged. It is expected that the output port of a RedirectLFB, if it is connected at all, will be connected to a meta-data redirector. 5.6.5. PacketTrimmer LFB removes data from the front of a packet. 5.6.6. Duplicator An LFB Class definition for packet duplicator LFB. Any packet received on an input port is logically copied and sent to all output ports. 5.6.7. ArbitraryClassifierLFB This is a class definition for an Arbitrary Classifier LFB. The input is a port group, and the match conditions can include the port in their test. This allows the topology to carry some information if desired. The match conditions can select an output from the SuccessOuput output port group. If no condition matches, the packet will be sesnt to the FailOutput port. Wang, et al. Expires December 31, 2009 [Page 50] Internet-Draft ForCES LFB Library June 2009 6. LFB Library Definition EthernetII an Ethernet II frame type Ethernet802.3 An Ethernet 802.3 frame type Ethernet802.2 An Ethernet 802.2 frame type Ethernet802.2SNAP An Ethernet 802.2 with SNAP frame IPv4Frame An IPv4 packet IPv6Frame An IPv6 packet taggedFrame A frame of any type with associated metadata MetadataFrame Frame only contains meta data Arbitrary Any kind of frame except Metadata Frame. Wang, et al. Expires December 31, 2009 [Page 51] Internet-Draft ForCES LFB Library June 2009 ifIndex A Port Identifier uint32 IEEEMAC IEEE MAC Address byte[6] NetSpeedType Network speed values uint32 LAN_SPEED_10M 10M Ethernet LAN_SPEED_100M 100M Ethernet LAN_SPEED_1G 1000M Ethernet LAN_SPEED_10G 10G Ethernet LAN_SPEED_AUTO LAN speed auto IEEENegotiationType IEEENegotiation types Wang, et al. Expires December 31, 2009 [Page 52] Internet-Draft ForCES LFB Library June 2009 uint32 Auto Auto negotitation. Half-duplex port negotitation half duplex Full-duplex port negotitation full duplex PortStatsType Port statistics InUcastPkts Number of unicast packets received uint64 InMulticastPkts Number of multicast packets received uint64 InBroadcastPkts Number of broadcast packets received uint64 InOctets number of octets received uint64 OutUcastPkts Number of unicast packets transmitted uint64 Wang, et al. Expires December 31, 2009 [Page 53] Internet-Draft ForCES LFB Library June 2009 OutMulticastPkts Number of multicast packets transmitted uint64 OutBroadcastPkts Number of broadcast packets transmitted uint64 OutOcetes Number of octets transmitted uint64 InErrorPkts Number of input error packets uint64 OutErrorPkts Number of output error packets uint64 PortStatusValues The possible values of status. Used for both administrative and operation status uchar Disabled the port is operatively disabled. UP the port is up. Down The port is down. Wang, et al. Expires December 31, 2009 [Page 54] Internet-Draft ForCES LFB Library June 2009 LocalIpAddrType Local IP address belonging to FE. FEID The FE on which the port ip resides uint32 IfIndex port index on the specified FE uint32 IPaddr IP address of the port IPAddr netmask netmask of this ip address IPAddr BcastAddr The associated Broadcast address of the ip address IPAddr LocalIpv6AddrType The device local IPv6 address infomation FEID The FE on which the port ip resides uint32 Wang, et al. Expires December 31, 2009 [Page 55] Internet-Draft ForCES LFB Library June 2009 IfIndex port index on the specified FE uint32 IPv6addr IP address of the port IPv6Addr prefixlen prefix length of this ip address uint32 IPv4Addr IPv4 address byte[4] IPv6Addr IPv6 address byte[16] IPv4Prefix IPv4 prefix defined by an address and a prefix length address Address part IPv4addr prefixlen Prefix length part uchar Wang, et al. Expires December 31, 2009 [Page 56] Internet-Draft ForCES LFB Library June 2009 IPv4NextHopInfoType IPv4 nexthop information,include nexthop ip address, output FE and interface etc. NexthopID nexthop id uint32 FEID output FE id uint32 Egress output port index uint32 MTU The maximum transmition unit of the nexthop link. uint32 Flags Associated flags of the nexthop,such as local delivery,multicast etc. NextHopFlagsType NexthopIPaddr IP address of the nexthop IPv4Addr L2Index index into the L2 link layer table,such as IPv4 ARP table or IPv6 NBR table. uint32 Wang, et al. Expires December 31, 2009 [Page 57] Internet-Draft ForCES LFB Library June 2009 EncapNeeded The type of encapsulation needed on the packet. LinkEncapType IPv4FibEntryType IPv4 forwarding table entry. prefix IPv4 prefix. IPv4Prefix FEID output FE id uint32 Egress output port index uint32 MTU The maximum transmition unit of the nexthop link. uint32 Flags Associated flags of the nexthop,such as local delivery,multicast etc. NextHopFlagsType NexthopIPaddr IP address of the nexthop IPv4Addr L2Index Wang, et al. Expires December 31, 2009 [Page 58] Internet-Draft ForCES LFB Library June 2009 index into the L2 link layer table,such as IPv4 ARP table or IPv6 NBR table. uint32 EncapNeeded The type of encapsulation needed on the packet. LinkEncapType IPv4PrefixTableEntry IPv4 prefix table entry Prefix IPv4 address prefix IPv4Prefix NexthopID Index into the nexthop table. uint32 IPv4UcastLPMStatisticsType statistics of IPv4UcastLPM LFB InRcvdPkts The total number of input packets received from interfaces, including those received in error uint64 FwdPkts IPv4 packet forwarded by this LFB uint64 NoRoutePkts The number of IP datagrams discarded because no Wang, et al. Expires December 31, 2009 [Page 59] Internet-Draft ForCES LFB Library June 2009 route could be found to transmit them to their destination. uint64 InDeliverPkts The total number of input datagrams successfully delivered to IP user-protocols (including ICMP). uint64 IPv4ValidatorStatisticsType IPv4 validator LFB statistics type badHeaderPkts The total number of input datagrams with bad ip header uint64 badTotalLengthPkts The total number of input datagrams with bad length uint64 badTTLPkts The total number of input datagrams with bad TTL uint64 badChecksum The total number of input datagrams with bad checksum uint64 IPv6Prefix IPv6 prefix Wang, et al. Expires December 31, 2009 [Page 60] Internet-Draft ForCES LFB Library June 2009 IPv6addr address part of the prefix IPv6Addr prefixlen length of the prefix uint32 IPv6NextHopInfoType IPv6 nexthop information,include nexthop ip address, output FE and interface etc. NexthopID nexthop id uint32 FEID output FE id uint32 Egress output port index uint32 MTU The maximum transmition unit of the nexthop link. uint32 Flags Associated flags of the nexthop,such as local delivery,multicast etc. NextHopFlagsType NexthopIPv6addr IP address of the nexthop IPv6Addr Wang, et al. Expires December 31, 2009 [Page 61] Internet-Draft ForCES LFB Library June 2009 L2Index index into the L2 table uint32 EncapNeeded The type of encapsulation needed on the packet. LinkEncapType IPv6PrefixTableEntry IPv6 prefix table entry Prefix IPv6 address prefix IPv6Prefix NexthopID index to the nexthop table. uint32 IPv6LPMClassiferStatisticsType statistics of IPv6LPMClassifier LFB InRcvdPkts The total number of input packets received from interfaces, including those received in error uint64 FwdPkts IPv4 packet forwarded by this LFB uint64 Wang, et al. Expires December 31, 2009 [Page 62] Internet-Draft ForCES LFB Library June 2009 NoRoutePkts The number of IP datagrams discarded because no route could be found to transmit them to their destination. uint64 InDeliverPkts The total number of input datagrams successfully delivered to IP user-protocols (including ICMP). uint64 IPv6ValidatorStatisticsType IPv6 validator LFB statistics type badHeaderPkts The total number of input datagrams with bad ip header uint64 badTotalLengthPkts The total number of input datagrams with bad length uint64 badTTLPkts The total number of input datagrams with bad TTL uint64 badChecksum The total number of input datagrams with bad checksum uint64 NextHopFlagsType Wang, et al. Expires December 31, 2009 [Page 63] Internet-Draft ForCES LFB Library June 2009 Flags used to define different nexthop behaviors uint32 local Packets match the nexthop entry with this flag are delivered to the higher level protocols. drop Packets match the nexthop entry with this flag are to be dropped. broadcast The route associated with this nexthop is a broadcast. multicast The route associated with this nexthop is multicast. WeightTableEntryType Weight table for queues. QueueID queue id uint32 weight weight of the queue. uint32 NbrState Wang, et al. Expires December 31, 2009 [Page 64] Internet-Draft ForCES LFB Library June 2009 IPv6 neighbour entry resolution state. uchar INCOMPLETE Address resolution is being performed on 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. REACHABLE 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. STALE 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 unsolicited 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. DELAY 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 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. PROBE A reachability confirmation is actively sought by retransmitting Neighbor Solicitations every RetransTimer Wang, et al. Expires December 31, 2009 [Page 65] Internet-Draft ForCES LFB Library June 2009 milliseconds until a reachability confirmation is received. ArpTableEntryType Arp entry. Index Index of the arp table. uint32 NeighborIP IP address of the neighbour. IPv4Addr SrcMac Source MAC. IEEEMAC NeighborMac Mac of the Neighbor. IEEEMAC State State of the address resolution progress ArpStateType NbrTableEntryType IPv6 neighbour table entry. Index Index of the arp table. uint32 Wang, et al. Expires December 31, 2009 [Page 66] Internet-Draft ForCES LFB Library June 2009 NeighborIPv6 IP address of the neighbour. IPv6Addr SrcMac Source MAC. IEEEMAC NeighborMac Mac of the Neighbor. IEEEMAC State State of the entry's resolution progress NbrState DCHostTableEntryTypev4 Direct connected arp table entry for IPv4. NeighbourIP IP address of the neighbour. IPv4Addr SrcMac Source MAC. IEEEMAC NeighborMac Mac of the Neighbor. IEEEMAC DCHostTableEntryTypev6 Direct connected arp table entry for IPv6. Wang, et al. Expires December 31, 2009 [Page 67] Internet-Draft ForCES LFB Library June 2009 NeighbourIPv6 IP address of the neighbour. IPv6Addr SrcMac Source MAC. IEEEMAC NeighborMac Mac of the Neighbor. IEEEMAC IPPacketType The packet type code. uchar IPv4Ucast IPv4 unicast packet. IPv4Mcast IPv4 multicast packet. IPv6Ucast IPv6 unicast packet. IPv6Mcast IPv6 multicast packet. IPDispatchTableType The dispatch table type. Wang, et al. Expires December 31, 2009 [Page 68] Internet-Draft ForCES LFB Library June 2009 IPPacketType The type of the packet.IPv4Uncast,IPv6Ucast, IPv4Mulcast,IPv6Mulcast etc. IPPacketType index The index of the output group to output the packets uint32 MetaType Metadata type definition. MetadataID The ID of the metadata,the value is standardalized in the corresponding LFB definition RFCs. uint32 MetadataName The name of the metadata. String MetadataClassTableType The meta data classifying table. value Value of the meta data. uint32 index The index of the port in the output group to use for outputing the packets. uint32 Wang, et al. Expires December 31, 2009 [Page 69] Internet-Draft ForCES LFB Library June 2009 LinkEncapType Encapsulation type. uchar Link Link layer encapsulation such as Ethernet and PPP. InterFE Inter FE communication encapsulation. Tunnel Tunnel encapsulation such as IP-in-IP. IPAddress IP layer address. Ipv4 IPv4 address. IPv4Addr Ipv6 IPv6 address. IPv6Addr ArpStateType The arp entry state. uchar Wang, et al. Expires December 31, 2009 [Page 70] Internet-Draft ForCES LFB Library June 2009 Manual The entry is manually set. InSolicit The peer's level 2 address is still in requesting Valid The address resolution have been completed successfully,it now can be used in the data packets forwarding. MatchTargetType Indicator for the kind of field to be matched by this entry in a classifier. uchar MatchNone A matcher against no field MatchMetaData A matcher against a metadata item MatchPacketField A matcher that works against an identified packet field. MatchOffsetLength The match target is a specified portion of the packet. Wang, et al. Expires December 31, 2009 [Page 71] Internet-Draft ForCES LFB Library June 2009 MatchTargetIdentifier Identify the specific target of a match condition. MetaDataID The ID of a metadata item uint32 packetFieldID The identifier for a packet Field, such as SA, DA, Protocol, SPort, DPort, etc. These identifiers allow references to fields with varialbe amounts before them. uint32 OffSetLengthPacketField A field in the packet identified by its offset and length in bits. This does not allow for matching fields whose position depends upon earlier field sizes. fieldOffset The offset in bits from the start of the packet to the start of the field. uint32 fieldLength The length of the field, in bits uint32 MatchBitString A bit string for use in a match condition. Wang, et al. Expires December 31, 2009 [Page 72] Internet-Draft ForCES LFB Library June 2009 MatchBits The bits to match octetstring[16] MatchLength The number of bits to match uchar MatchCondition structure for a single condition to be applied. TargetType The category of target to match MatchTargetType TargetID The specific target to compare MatchTargetIdentifier MatchType The kind of match to apply. MatchConditionType MatchParamOne The first parameter for the match MatchBitString MatchParamTwo The second parameter for the match MatchBitString Wang, et al. Expires December 31, 2009 [Page 73] Internet-Draft ForCES LFB Library June 2009 MatchConditiontType Indicator for the kind of match condition to be applied. uchar MatchNone A matcher which always fails MatchExact The target and the match value must be the same, with no padding.Only the first value of the match condition is used. The first match value must be occur. MatchLeft The target must begin with the first match value. If there is a second match value, the remainder of the target must match repeated occurrances of the second value. Thus, this can be used to allow any terminal content, or specific ending pad. The first match value must occur. MatchRight The target must end with the first match value. If there is a second match value, the preceding part of the target must match repeated occurrances of the second value. Thus, this can be used to allow any leading content, or specific leading fill. The first match value must occur. MatchRange The match values will be considered as numbers, and the target must be greater than or equal to the first match value, and less than or equal to the second match value. An omitted match value means that end of the range is unlimitted. MatchMaskedValue The target the the first value are each anded Wang, et al. Expires December 31, 2009 [Page 74] Internet-Draft ForCES LFB Library June 2009 with the second value. The match succeeds if the results of these and operations are identical. Both values are required. MatchSucceed A Match which always succeeds MatchMetaDataAction An action to set a metadata item to either a specific value or a field from the incoming meta data or packet MetaDataToSet The Meta Data Item to set uint32 ExplicitValueToSet A value to set the metadata to octetstring[16] ValueFromCondition This is an index into the corresponding match conditions, and the meta data will be set to the value that was tested by that condition. uint32 NextHopIndex An index used by the next hop table.Typically stored in and generated as metadata by the longest-prefix-match LFB int32 Wang, et al. Expires December 31, 2009 [Page 75] Internet-Draft ForCES LFB Library June 2009 NextHopID Index into a Next Hop entry in Nexthop table 1 NextHopIndex ExceptionID Exception Types 2 uint32 Options Packets with options,for IPv6 Packet with next-header set to hop-by-hop header(0). LengthMismatch The packet length reported by link layer is less than the total length field. BadTTL The packet can't be forwarded as the TTL has expired. Multicast The packet received is a multicast packet. FragRequired The MTU for outgoing interface is less than the packet size. Redirect The outgoing port is same as the one on which the packet is received. LocalDelivery The packet is for a local interface. Wang, et al. Expires December 31, 2009 [Page 76] Internet-Draft ForCES LFB Library June 2009 LimitedBroadcast Packet received as limited broadcast. IngressPort At which interface the packet arrive. 3 ifIndex EgressPort Interface out which the packet will emmit. 4 ifIndex NextHopIP Nexthop IPv4 address 5 IP4Addr NexthopIPv6 Nexthop IPv6 address 6 IPv6Addr PacketLength The length of the packet in octets. 7 uint32 IPPacketType Type of the packet 8 uint32 IPv4 Wang, et al. Expires December 31, 2009 [Page 77] Internet-Draft ForCES LFB Library June 2009 IPv4 packet IPv6 IPv6 packet TaggedFrame packet with metadata MetaDataFrame meta data only QueueID The queue ID 9 uint32 QueueOperationCmd The type of operation on the queue,there are two types defined here: enqueue and dequeue. 10 uchar Enqueue Enqueue command. Dequeue Dequeue command. SrcFEID Source FE ID. 11 Wang, et al. Expires December 31, 2009 [Page 78] Internet-Draft ForCES LFB Library June 2009 uint32 DstFEID Destination FE ID. 12 uint32 NexthopIndex Nexthop index into the link layer address resolution table. 13 uint NHEncapMethod how 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 transimiting to other FEs;tunnel encapsulation which means the packet need do extra tunnel encapsulation before sending out to media 14 LinkEncapType ErrorId Error Type. 15 int32 WrongIpVersion the IP version wrong WrongLength the packet length is not as long as the header indicates Wang, et al. Expires December 31, 2009 [Page 79] Internet-Draft ForCES LFB Library June 2009 otherError The errors we not defined now EtherPort LFB for Ethernet ports 1.0 GenericConnectivityLFB PacketsFromProcessingUnit Ports for receiving packets from processing unit such as NP,that will be sent to media. EthernetII OutputPort PacketsFromMedia Ports for receiving packets from ethernet media. EthernetII PacketsToProcessingUnit Ports for sending packets to processing unit such as NP for further processing. EthernetII Wang, et al. Expires December 31, 2009 [Page 80] Internet-Draft ForCES LFB Library June 2009 InputPort PacketsToMedia Ports for sending packets to media. EthernetII IfIndex 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. uint32 IfName Name of this port string[16] LinkSpeed Speed of this port NetSpeedType MTU Maximum transmition unit uint32 OperaStatus Operate state of this port. PortStatusValues "down" Wang, et al. Expires December 31, 2009 [Page 81] Internet-Draft ForCES LFB Library June 2009 AdminStatus Administrator's state of this port PortStatusValues "down" PromiscuousMode Whether the interface is in promiscuous mode booleanType "no" CarrierStatus whether the port is linked with an connector. booleanType "no" OperMode The port operation mode,must be one of the following values:Auto,Half-duplex,Full-duplex IEEENegotiationType "auto" SrcNegotiationTypeMACAddr source MAC IEEEMAC MacAliasTable A series of MACs that the port can receive frame on. IEEEMAC StatsEnable whether enable the statistics in this LFB. booleanType "no" Wang, et al. Expires December 31, 2009 [Page 82] Internet-Draft ForCES LFB Library June 2009 PortStats port statistics. PortStatsType Ipaddr IP layer Address. IPAddress PortStatusChanged Port status has changed since last time reporting. OperaStatus OperaStatus EtherDecap An LFB class for definition of Ethernet decapsulation and Ethernet filtering functions 1.0 GenericConnectivityLFB PacketsIn Packets from other LFB. EthernetII Wang, et al. Expires December 31, 2009 [Page 83] Internet-Draft ForCES LFB Library June 2009 DecapOut Ethernet decapsulation output. Arbitrary DispatchTable This table is used for selecting output in the ouput group for the incoming packet stream. IPDispatchTableType IPv4UcastLPM IPv4 Longest Prefix Match Lookup LFB 1.0 PktIn The port to receive IPv4 packets from other LFBs IPv4 SuccessOut Successful output when all is fine. IPv4 NextHopID FEID Egress MTU Flags Wang, et al. Expires December 31, 2009 [Page 84] Internet-Draft ForCES LFB Library June 2009 NexthopIPAddr NHEncapMethod ExceptionOut Exception output IPv4 Ingress ExceptionID FailOutput Dropper IPv4 PrefixTable IPv4 prefix table IPv4PrefixTableEntry IPv4PrefixTableEntry.prefix Fib IPv4 unicast forwarding table. IPv4FibEntryType IPv4FibEntryType.prefix Wang, et al. Expires December 31, 2009 [Page 85] Internet-Draft ForCES LFB Library June 2009 LocalIpAddrTable The table of interfaces's ip address infomation on the local device LocalIpAddrType IPv4Stats The IPv4 associated statistics IPv4UcastLPMStatisticsType PrefixTableLimit maxium number of prefix supported by this LFB uint32 LocalIpAddrTableLimit maxium number of IP address entrys supported by this LFB uint32 This LFB represents the IPv4 longest prefix match lookup operation. IPv4NextHopApplicator An LFB definition for applicating next hop action to IPv4 packets,the actions include:TTL operation,checksum recalculation. 1.0 PktIn Port used to receive IPv4 packets from other LFBs IPv4 Wang, et al. Expires December 31, 2009 [Page 86] Internet-Draft ForCES LFB Library June 2009 NextHopID FEID Egress MTU Flags NexthopIPAddr NHEncapMethod SuccessOut Output port for packet successfully fulfill the nexthop application. IPv4 DstFEID Egress L2Index NextHopIP NHEncapMethod ExceptionOut Output for packets need deep dealt by higher level protocol stacks. IPv4 Ingress ExceptionID Wang, et al. Expires December 31, 2009 [Page 87] Internet-Draft ForCES LFB Library June 2009 FailOutput Output for packets failed the nexthop application operation. IPv4 NextHopTable Nexthop table IPv4NextHopInfoType NextHopTableLimit Maxium number of nexthops this LFB supports uint32 IPv6UcastLPM An LFB class definition for IPv6 longest prefix lookup function. 1.0 PktIn The port to receive IPv6 packets needed to do IPv4 LPM. IPv6 Wang, et al. Expires December 31, 2009 [Page 88] Internet-Draft ForCES LFB Library June 2009 SuccessOut Output for packets that have find the correct route. IPv6 NextHopID FailOutput LPM failed. IPv6 PrefixTable IPv6 prefix table IPv6PrefixTableEntry IPv6PrefixTableEntry.prefix LocalIpv6AddrTable The table of interfaces's ip address infomation on the local device LocalIpv6AddrType IPv6Stats The IPv6 associated statistics IPv6LPMClassiferStatisticsType Wang, et al. Expires December 31, 2009 [Page 89] Internet-Draft ForCES LFB Library June 2009 PrefixTableLimit maxium number of prefix supported by this LFB uint32 LocalIpv6AddrTableLimit maxium number of IPv6 address entrys supported by this LFB uint32 IPv6UcastNexthopApplicator An LFB for applicating next hop action to IPv6 packets, actions mainly inlcude TTL incrementation and checksum recalculation. 1.0 PktIn Input port for packets to be applicate nexthop. IPv6 NextHopID SuccessOut Output port for packet successfully fulfill the nexthop application. IPv6 Wang, et al. Expires December 31, 2009 [Page 90] Internet-Draft ForCES LFB Library June 2009 FEID Egress L2Index NextHopIPv6 NHEncapMethod ExceptionOut 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. IPv6 Ingress ExceptionID FailOutput Output for packets failed the nexthop application operation. IPv6 NextHopTable Nexthop table IPv6NextHopInfoType Wang, et al. Expires December 31, 2009 [Page 91] Internet-Draft ForCES LFB Library June 2009 NextHopTableLimit Maxium number of nexthops this LFB supports uint32 EtherEncap An LFB classifier definition for completes ethernet encapsulation fuctions 1.0 GenericConnectivityLFB EncapIn Port for receiving packets needed to build Ethernet encapsulation. IPv4 IPv6 L2Index NextHopIP NextHopIPv6 IPPacketType SuccessOut EthernetII ExceptionOut packet can't find the associated L2 information Wang, et al. Expires December 31, 2009 [Page 92] Internet-Draft ForCES LFB Library June 2009 IPv4 IPv6 ArpTable Ethernet arp table. ArpTableEntryType NbrTable IPv6 neighbour table. NbrTableEntryType DCHostTablev4 Direct connected host arp table for IPv4 DCHostTableEntryTypev4 DCHostTablev6 Direct connected host arp table for IPv6 DCHostTableEntryTypev6 ArpTableLimit Max number of arp entries in arp table. uint32 Wang, et al. Expires December 31, 2009 [Page 93] Internet-Draft ForCES LFB Library June 2009 NbrTableLimit Max number of neighbours in neighbour table. uint32 DCHostTablev4Limit The limit on Direct connected host table for IPv4. uint32 DCHostTablev6Limit The limit on Direct connected host table for IPv6. uint32 Scheduler Base scheduler LFB. 1.0 Watcher Input for watching the queues to be scheduled. Queues to be scheduled can transmit packet enqueue and dequeue infomation to scheduler through these port MetadataFrame QueueID PacketLength QueueOperationCmd OutControl Control output,this output is used by scheduler to communicate commands to it's controlled queues such as Wang, et al. Expires December 31, 2009 [Page 94] Internet-Draft ForCES LFB Library June 2009 dequeue a packet. MetadataFrame QueueOperationCmd QueueScheduledLimit Max number of queues that can be scheduled by this scheduler. uint32 This defines a base LFB class for schedulers. Schedulers have an Input Port group called Watchers for representing the queues they watch, and an Output Port group called Controllers fro representing the queues they control. Queue Queue LFB. 1.0 InControl Input from scheduler QueueOperationCmd InData Input port for data packet. Arbitrary PacketLength Wang, et al. Expires December 31, 2009 [Page 95] Internet-Draft ForCES LFB Library June 2009 OutToController Output to queue controller MetadataFrame QueueID PacketLength QueueOperationCmd OutData Data packet output Arbitrary CurLen Current length of the queue in number of packets. uint32 QueueLenLimit Maximum length of the queue in number of packets. uint32 Queues have a packet input, a packet output, a control input, and a group of control outputs. The control ports represent the control relationships with scheduluers. Wang, et al. Expires December 31, 2009 [Page 96] Internet-Draft ForCES LFB Library June 2009 WRRSched Weighted round robin scheduler. 1.0 Scheduler WeightTable Weight table for queues to be scheduled. WeightTableEntryType IPv6AddrResolution 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. 1.0 AddrResDataPktIn The IPv6 data packet that need to do the address resolution. IPv6 AddrResProtoPktIn The neighbour discovery packet related to address resolution. IPv6 Wang, et al. Expires December 31, 2009 [Page 97] Internet-Draft ForCES LFB Library June 2009 AddrResDataPktOut The IPv6 packet that have encapsulated with the correct ethernet L2 info and need to be sent out to link. EthernetII AddrResProtoPktOut The IPv6 neighbour discovey packet wich has been encapsulation with the correct ethernet L2 info. EthernetII Nbrtable This table is an alias to the IPv6 neighbour table in the EtherEncap LFB. NbrTable ICMPv6Generator 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. 1.0 PktIn The IPv6 packet that need icmp processing. IPv6 Wang, et al. Expires December 31, 2009 [Page 98] Internet-Draft ForCES LFB Library June 2009 ExceptionID ICMPv6PktOut The output for the ICMPv6 packets generated according to the input IPv6 packet and the ExceptionID. IPv6 ExtendHeaderProc 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. 1.0 PktIn The IPv6 packet with extended header in. IPv6 PktOut According to the Extended header type the packet may have different next proccesing LFB.Now by default we send all the packet with extended header to CE. IPv6 Wang, et al. Expires December 31, 2009 [Page 99] Internet-Draft ForCES LFB Library June 2009 arp This LFB class provides the function of address resolution for IPv4 nodes. 1.0 AddrResDataPktIn The IPv4 data packet that need to do the address resolution. IPv4 ArpPktIn The neighbour discovery packet related to address resolution. IPv4 AddrResDataPktOut The IPv4 packet that have been encapsulated with the correct ethernet L2 info and need to be sent out to link. EthernetII ArpOut The arp packet out. EthernetII Wang, et al. Expires December 31, 2009 [Page 100] Internet-Draft ForCES LFB Library June 2009 Arptable This table is an alias of the arp table in the EtherEncap LFB. ArpTable ICMPGenerator This LFB class provide some basic ICMP function,it only generate the following ICMP messages:ICMP destination unreachable and time excceeded. 1.0 PktIn IPv4 packet that need icmp processing. IPv4 ExceptionID ICMPPktOut The output for the ICMP packets generated according to the input packet and the ExceptionID. IPv4 MetadataClassifier Wang, et al. Expires December 31, 2009 [Page 101] Internet-Draft ForCES LFB Library June 2009 This LFB class provides the function of classify packets according to the meta data.Now it only works on one meta data. 1.0 PktIn Packets need to do the classification. Arbitrary Arbitrary ClassifiedOut Output group for the classified packets. Arbitrary MetaDataID The metadata id that this classifier works on. uint32 MetaDataName The name of the meta data that this classifier works on. string MetadataClassifyTable The meta data classifying table. Wang, et al. Expires December 31, 2009 [Page 102] Internet-Draft ForCES LFB Library June 2009 MetadataClassTableType OutNumOfPorts The number of ports in the output group. uint32 MaxOutNumOfPorts Maxium number of ports in the output group. uint32 OptionProc This LFB class process the IPv4 packet with options,it can process on the following options:Router-alert option. 1.0 PktIn The IPv4 packet with options in. IPv4 PktOut 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. IPv4 Wang, et al. Expires December 31, 2009 [Page 103] Internet-Draft ForCES LFB Library June 2009 GenericConnectivityLFB An LFB Class for providing connectivity between an FE and communications media. 1.0 This LFB Class provides a generic basis for representing connectivity between the FE and the outside world. The LFB has one or more ports for packets that the FE processing logic is forwrding for transmission by this Connectivity LFB. It has one or more ports for packets that the Connectivity LFB has received and is handing to the FE processing logic. Multiple ports for handline packets are supported so that protocol specific encapsulation and demultiplexing can be provided by this LFB. This LFB also has ports for sending packets to lower layer Connectivity LFBs and receiving packets from such lower layer Connectivity LFBs. This enables support for the processing components of interface stacks, such as PPP over Ethernet or Ethernet over MPLS.For packets arriving from Media or lower layer connectivity, this LFB will perform appropriate media validation, then remove media specific headers, and place the relevant information in meta-data. For ethernet, the Source MAC would be in meta-data. For Frame Relay or ATM, a circuit identifier would be in meta-data. For Ethernet with VLANs, this meta-data would indicate which VLAN the packet came from. For packets to be transmitted, meta-data indicating the destination (destination MAC or outgoing circuit, etc.) is required. This LFB will also include statistical components such as the number of octets and packets sent and received, the number of various input and output errors, etc. RedirectLFB An LFB Class definition for exchanging data packets between the FE and the CE. 1.0 RedirectToCE Port for frames to send to the CE. taggedFrame Wang, et al. Expires December 31, 2009 [Page 104] Internet-Draft ForCES LFB Library June 2009 RedirectFromCE Port for frames to send to the CE taggedFrame This LFB represents a point of exchagne of data packets between the CE and the FE. Packets with meta-data are exchanged. It is expected that the output port of a RedirectLFB, if it is connected at all, will be connected to a meta-data redirector IPv4Validator An LFB Class definition for validates the IPv4 packet. 1.0 ValidatorIn Normal packet input. IPv4 ValidatorOut Normal packet Output. IPv4packet Wang, et al. Expires December 31, 2009 [Page 105] Internet-Draft ForCES LFB Library June 2009 FailOutput The port to send packets that do not match any entries. taggedFrame errorid This LFB validates the IP version and header length fields, including verifying that the packet length is at least as long as the header indicates. IPv6Validator An LFB Class definition for validates the IPv6 packet. 1.0 ValidatorIn Normal packet input. IPv6 ValidatorOut Normal packet Output. IPv6packet Wang, et al. Expires December 31, 2009 [Page 106] Internet-Draft ForCES LFB Library June 2009 FailOutput The port to send packets that do not match any entries. taggedFrame errorid This LFB validates the IP version and header length fields, including verifying that the packet length is at least as long as the header indicates. PacketTrimmer LFB removes data from the front of a packet. 1.0 PacketIn Normal packet input. Packet PacketOut Normal packet Output. Packet Wang, et al. Expires December 31, 2009 [Page 107] Internet-Draft ForCES LFB Library June 2009 FailOut For packets without enough bytes to remove Packet TrimLength amount to trim from each packet uint32 Duplicator An LFB Class definition for packet duplicator LFB. Any packet received on an input port is logically copied and sent to all output ports. 1.0 PacketIn Normal packet input. IPv4 IPv6 PacketOut Normal packet output port group Wang, et al. Expires December 31, 2009 [Page 108] Internet-Draft ForCES LFB Library June 2009 IPv4 IPv6 ArbitraryClassifierLFB A classifier which can test packet or metadata, and on that basis set meta-data a pick an output port. 1.0 PacketsToClassify The group of ports to received packets over taggedFrame SuccessOutput The group of ports used by the classifer for output when a successful match is found. taggedFrame FailOutput The port to send packets that do not match any entries. Wang, et al. Expires December 31, 2009 [Page 109] Internet-Draft ForCES LFB Library June 2009 taggedFrame ClassifierTable The table of classifier entries. Each entry is tested until one succeeds. Each entry contains an optional port test, an array of packet and meta data tests, an array of metadata actions, and an exit selection. InputPortTest If present,this match will only match packets arriving over the specified port. uint32 TestConditions The array of conditions to test MatchCondition MetaDataActions The array of meta data modifications to make when the match succeeds. MatchMetaDataAction MatchOutputPort The port within the success group to send packets which match these tests. uint32 Wang, et al. Expires December 31, 2009 [Page 110] Internet-Draft ForCES LFB Library June 2009 Wang, et al. Expires December 31, 2009 [Page 111] Internet-Draft ForCES LFB Library June 2009 7. LFB Use Case Editorial:This section is supposed to discuss how we can build some basic applications define by WG charter such as IPV4 forwarding etc. Putting together LFBs to form a specific packet processing application Wang, et al. Expires December 31, 2009 [Page 112] Internet-Draft ForCES LFB Library June 2009 8. Contributors The authors would like to thank Jamal Hadi Salim and Ligang Dong who made a major contribution to the development of this document. Jamal Hadi Salim Mojatatu Networks Ottawa, Ontario Canada Email: hadi@mojatatu.com Ligang Dong Zhejiang Gongshang University 149 Jiaogong Road Hangzhou 310035 P.R.China Phone: +86-571-28877751 EMail: donglg@mail.zjgsu.edu.cn Wang, et al. Expires December 31, 2009 [Page 113] Internet-Draft ForCES LFB Library June 2009 9. Acknowledgements This document is based on earlier documents from Joel Halpern, Ligang Dong, Fenggen Jia and Weiming Wang. Wang, et al. Expires December 31, 2009 [Page 114] Internet-Draft ForCES LFB Library June 2009 10. IANA Considerations This memo includes no request to IANA. Wang, et al. Expires December 31, 2009 [Page 115] Internet-Draft ForCES LFB Library June 2009 11. Security Considerations These definitions if used by an FE to support ForCES create manipulable entities on the FE. Manipulation of such objects can produce almost unlimited effects on the FE. FEs should ensure that only properly authenticated ForCES protocol participants are performing such manipulations. Thus the security issues with this protocol are defined in the FE-protocol [I-D.ietf-forces-protocol]. Wang, et al. Expires December 31, 2009 [Page 116] Internet-Draft ForCES LFB Library June 2009 12. References 12.1. Normative References [I-D.ietf-forces-model] Halpern, J. and J. Salim, "ForCES Forwarding Element Model", draft-ietf-forces-model-16 (work in progress), October 2008. [I-D.ietf-forces-protocol] Dong, L., Doria, A., Gopal, R., HAAS, R., Salim, J., Khosravi, H., and W. Wang, "ForCES Protocol Specification", draft-ietf-forces-protocol-22 (work in progress), March 2009. 12.2. Informative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2629] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629, June 1999. [RFC3552] Rescorla, E. and B. Korver, "Guidelines for Writing RFC Text on Security Considerations", BCP 72, RFC 3552, July 2003. [RFC3654] Khosravi, H. and T. Anderson, "Requirements for Separation of IP Control and Forwarding", RFC 3654, November 2003. [RFC3746] Yang, L., Dantu, R., Anderson, T., and R. Gopal, "Forwarding and Control Element Separation (ForCES) Framework", RFC 3746, April 2004. [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 5226, May 2008. Wang, et al. Expires December 31, 2009 [Page 117] Internet-Draft ForCES LFB Library June 2009 Authors' Addresses Weiming Wang Zhejiang Gongshang University 18, Xuezheng Str., Xiasha University Town Hangzhou, 310018 P.R.China Phone: +86-571-28877721 Email: wmwang@mail.zjgsu.edu.cn Evangelos Haleplidis University of Patras Patras, Greece Email: ehalep@ece.upatras.gr Kentaro Ogawa NTT Corporation Tokyo, Japan Email: ogawa.kentaro@lab.ntt.co.jp Fenggen Jia National Digital Switching Center(NDSC) Jianxue Road Zhengzhou, 452000 P.R.China Phone: +86-571-28877751 Email: jfg@mail.ndsc.com.cn,fgjia@mail.zjgsu.edu.cn Halpern Joel Ericsson P.O. Box 6049 Leesburg, 20178 VA Phone: +1 703 371 3043 Email: jhalpern@redback.com Wang, et al. Expires December 31, 2009 [Page 118]