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]