Forwarding and Control Element Separation (ForCES)
Created
- 2009-03-12
Last Updated
- 2017-02-23
Available Formats
Message Types
Expert(s)
- Jamal Hadi Salim, Joel Halpern
Reference
- RFC 5810: Forwarding and Control Element Separation (ForCES) Protocol Specification
Available Formats
| Range | Registration Procedures |
|---|---|
| 0x00-0x1F | IETF Review |
| 0x20-0x7F | Specification Required |
| Value | Name | Reference |
|---|---|---|
| 0x00 | Reserved | RFC 5810 |
| 0x01 | AssociationSetup | RFC 5810 |
| 0x02 | AssociationTeardown | RFC 5810 |
| 0x03 | Config | RFC 5810 |
| 0x04 | Query | RFC 5810 |
| 0x05 | EventNotification | RFC 5810 |
| 0x06 | PacketRedirect | RFC 5810 |
| 0x07-0x0E | Reserved | RFC 5810 |
| 0x0F | Heartbeat | RFC 5810 |
| 0x11 | AssociationSetupResponse | RFC 5810 |
| 0x12 | Reserved | RFC 5810 |
| 0x13 | ConfigResponse | RFC 5810 |
| 0x14 | QueryResponse | RFC 5810 |
| 0x15-0x7F | Unassigned | |
| 0x80-0xFF | Reserved for Private Use | RFC 5810 |
Operation Selection (OPER-TLV) Types
Expert(s)
- Jamal Hadi Salim, Joel Halpern
Reference
- RFC 5810: Forwarding and Control Element Separation (ForCES) Protocol Specification
Available Formats
| Range | Registration Procedures |
|---|---|
| 0x0000-0x00FF | IETF Review |
| 0x0100-0x7FFF | Specification Required |
| Value | Name | Reference |
|---|---|---|
| 0x0000 | Reserved | RFC 5810 |
| 0x0001 | SET | RFC 5810 |
| 0x0002 | SET-PROP | RFC 5810 |
| 0x0003 | SET-RESPONSE | RFC 5810 |
| 0x0004 | SET-PROP-RESPONSE | RFC 5810 |
| 0x0005 | DEL | RFC 5810 |
| 0x0006 | DEL-RESPONSE | RFC 5810 |
| 0x0007 | GET | RFC 5810 |
| 0x0008 | GET-PROP | RFC 5810 |
| 0x0009 | GET-RESPONSE | RFC 5810 |
| 0x000A | GET-PROP-RESPONSE | RFC 5810 |
| 0x000B | REPORT | RFC 5810 |
| 0x000C | COMMIT | RFC 5810 |
| 0x000D | COMMIT-RESPONSE | RFC 5810 |
| 0x000E | TRCOMP | RFC 5810 |
| 0x000F-0x7FFF | Unassigned | |
| 0x8000-0xFFFF | Reserved for Private Use | RFC 5810 |
Header Flags
Registration Procedure(s)
- IETF Review
Reference
- RFC 5810: Forwarding and Control Element Separation (ForCES) Protocol Specification
| Value | Name | Reference |
|---|---|---|
| No registrations at this time. | ||
TLV Types
Expert(s)
- Jamal Hadi Salim, Joel Halpern
Reference
- RFC 5810: Forwarding and Control Element Separation (ForCES) Protocol Specification
Available Formats
| Range | Registration Procedures |
|---|---|
| 0x0000-0x01FF | IETF Review |
| 0x0200-0x7FFF | Specification Required |
| Value | Name | Reference |
|---|---|---|
| 0x0000 | Reserved | RFC 5810 |
| 0x0001 | REDIRECT-TLV | RFC 5810 |
| 0x0002-0x000F | Unassigned | |
| 0x0010 | ASResult-TLV | RFC 5810 |
| 0x0011 | ASTreason-TLV | RFC 5810 |
| 0x0012-0x010F | Unassigned | |
| 0x0110 | PATH-DATA-TLV | RFC 5810 |
| 0x0111 | KEYINFO-TLV | RFC 5810 |
| 0x0112 | FULLDATA-TLV | RFC 5810 |
| 0x0113 | SPARSEDATA-TLV | RFC 5810 |
| 0x0114 | RESULT-TLV | RFC 5810 |
| 0x0115 | METADATA-TLV | RFC 5810 |
| 0x0116 | REDIRECTDATA-TLV | RFC 5810 |
| 0x0117 | TABLERANGE-TLV | RFC 7391 |
| 0x0118 | EXTENDEDRESULT-TLV | RFC 7391 |
| 0x0119-0x0FFF | Unassigned | |
| 0x1000 | LFBselect-TLV | RFC 5810 |
| 0x1001-0x7FFF | Unassigned | |
| 0x8000-0xFFFF | Reserved for Private Use | RFC 5810 |
RESULT-TLV Result Values
Registration Procedure(s)
- Expert Review
Expert(s)
- Jamal Hadi Salim, Joel Halpern
Reference
- RFC 5810: Forwarding and Control Element Separation (ForCES) Protocol Specification
Note
Closed to registration per RFC 7391.
Available Formats
| Value | Name | Reference |
|---|---|---|
| 0x00 | E_SUCCESS | RFC 5810 |
| 0x01 | E_INVALID_HEADER | RFC 5810 |
| 0x02 | E_LENGTH_MISMATCH | RFC 5810 |
| 0x03 | E_VERSION_MISMATCH | RFC 5810 |
| 0x04 | E_INVALID_DESTINATION_PID | RFC 5810 |
| 0x05 | E_LFB_UNKNOWN | RFC 5810 |
| 0x06 | E_LFB_NOT_FOUND | RFC 5810 |
| 0x07 | E_LFB_INSTANCE_ID_NOT_FOUND | RFC 5810 |
| 0x08 | E_INVALID_PATH | RFC 5810 |
| 0x09 | E_COMPONENT_DOES_NOT_EXIST | RFC 5810 |
| 0x0A | E_EXISTS | RFC 5810 |
| 0x0B | E_NOT_FOUND | RFC 5810 |
| 0x0C | E_READ_ONLY | RFC 5810 |
| 0x0D | E_INVALID_ARRAY_CREATION | RFC 5810 |
| 0x0E | E_VALUE_OUT_OF_RANGE | RFC 5810 |
| 0x0F | E_CONTENTS_TOO_LONG | RFC 5810 |
| 0x10 | E_INVALID_PARAMETERS | RFC 5810 |
| 0x11 | E_INVALID_MESSAGE_TYPE | RFC 5810 |
| 0x12 | E_INVALID_FLAGS | RFC 5810; RFC Errata 4188 |
| 0x13 | E_INVALID_TLV | RFC 5810 |
| 0x14 | E_EVENT_ERROR | RFC 5810 |
| 0x15 | E_NOT_SUPPORTED | RFC 5810 |
| 0x16 | E_MEMORY_ERROR | RFC 5810 |
| 0x17 | E_INTERNAL_ERROR | RFC 5810 |
| 0x18 | E_TIMED_OUT | RFC 7391 |
| 0x19 | E_INVALID_TFLAGS | RFC 7391 |
| 0x1A | E_INVALID_OP | RFC 7391 |
| 0x1B | E_CONGEST_NT | RFC 7391 |
| 0x1C | E_COMPONENT_NOT_A_TABLE | RFC 7391 |
| 0x1D | E_PERM | RFC 7391 |
| 0x1E | E_BUSY | RFC 7391 |
| 0x1F | E_EMPTY | RFC 7391 |
| 0x20 | E_UNKNOWN | RFC 7391 |
| 0x21-0xFE | Unassigned | |
| 0xFF | E_UNSPECIFIED_ERROR | RFC 5810 |
| 0x100-0x200 | Reserved for Private Use | RFC 7391 |
EXTENDEDRESULT-TLV Result Values
Registration Procedure(s)
- Specification Required
Expert(s)
- Unassigned
Reference
- RFC 7391: Forwarding and Control Element Separation (ForCES) Protocol Extensions
Available Formats
| Value | Name | Reference |
|---|---|---|
| 0x00 | E_SUCCESS | RFC 5810 |
| 0x01 | E_INVALID_HEADER | RFC 5810 |
| 0x02 | E_LENGTH_MISMATCH | RFC 5810 |
| 0x03 | E_VERSION_MISMATCH | RFC 5810 |
| 0x04 | E_INVALID_DESTINATION_PID | RFC 5810 |
| 0x05 | E_LFB_UNKNOWN | RFC 5810 |
| 0x06 | E_LFB_NOT_FOUND | RFC 5810 |
| 0x07 | E_LFB_INSTANCE_ID_NOT_FOUND | RFC 5810 |
| 0x08 | E_INVALID_PATH | RFC 5810 |
| 0x09 | E_COMPONENT_DOES_NOT_EXIST | RFC 5810 |
| 0x0A | E_EXISTS | RFC 5810 |
| 0x0B | E_NOT_FOUND | RFC 5810 |
| 0x0C | E_READ_ONLY | RFC 5810 |
| 0x0D | E_INVALID_ARRAY_CREATION | RFC 5810 |
| 0x0E | E_VALUE_OUT_OF_RANGE | RFC 5810 |
| 0x0F | E_CONTENTS_TOO_LONG | RFC 5810 |
| 0x10 | E_INVALID_PARAMETERS | RFC 5810 |
| 0x11 | E_INVALID_MESSAGE_TYPE | RFC 5810 |
| 0x12 | E_E_INVALID_FLAGS | RFC 5810 |
| 0x13 | E_INVALID_TLV | RFC 5810 |
| 0x14 | E_EVENT_ERROR | RFC 5810 |
| 0x15 | E_NOT_SUPPORTED | RFC 5810 |
| 0x16 | E_MEMORY_ERROR | RFC 5810 |
| 0x17 | E_INTERNAL_ERROR | RFC 5810 |
| 0x18 | E_TIMED_OUT | RFC 7391 |
| 0x19 | E_INVALID_TFLAGS | RFC 7391 |
| 0x1A | E_INVALID_OP | RFC 7391 |
| 0x1B | E_CONGEST_NT | RFC 7391 |
| 0x1C | E_COMPONENT_NOT_A_TABLE | RFC 7391 |
| 0x1D | E_PERM | RFC 7391 |
| 0x1E | E_BUSY | RFC 7391 |
| 0x1F | E_EMPTY | RFC 7391 |
| 0x20 | E_UNKNOWN | RFC 7391 |
| 0x21-0xFE | Unassigned | |
| 0xFF | E_UNSPECIFIED_ERROR | RFC 5810 |
| 0x100-0x200 | Reserved for Private Use | RFC 7391 |
| 0x201-0xFFFFFFFF | Unassigned |
Association Setup Response
Expert(s)
- Jamal Hadi Salim, Joel Halpern
Reference
- RFC 5810: Forwarding and Control Element Separation (ForCES) Protocol Specification
- RFC Errata 2568
Available Formats
| Range | Registration Procedures |
|---|---|
| 0x00000000-0x000000FF | IETF Review |
| 0x00000100-0x0000FFFF | Specification Required |
Association Teardown Message
Expert(s)
- Jamal Hadi Salim, Joel Halpern
Reference
- RFC 5810: Forwarding and Control Element Separation (ForCES) Protocol Specification
Available Formats
| Range | Registration Procedures |
|---|---|
| 0x00000000-0x0000FFFF | IETF Review |
| 0x00010000-0x7FFFFFFF | Specification Required |
| Value | Name | Reference |
|---|---|---|
| 0x00000000 | Normal - Teardown by Administrator | RFC 5810 |
| 0x00000001 | Error - loss of heartbeats | RFC 5810 |
| 0x00000002 | Error - loss of bandwidth | RFC 5810 |
| 0x00000003 | Error - Out of Memory | RFC 5810 |
| 0x00000004 | Error - Application Crash | RFC 5810 |
| 0x00000005-0x000000EF | Unassigned | |
| 0x000000FF | Error - Unspecified | RFC 5810 |
| 0x00000100-0x7FFFFFFF | Unassigned | |
| 0x80000000-0xFFFFFFFFF | Reserved for Private Use | RFC 5810 |
Logical Functional Block (LFB) Class Names and Class Identifiers
Reference
- RFC 5812: Forwarding and Control Element Separation (ForCES) Forwarding Element Model
- RFC 7121: High Availability within a Forwarding and Control Element Separation (ForCES) Network Element
Available Formats
| Range | Registration Procedures | Note |
|---|---|---|
| 0-65535 | Standards Action | |
| >65535 | First Come First Served with any publicly available specification | class names MUST start with the string "Ext-" |
| LFB Class Identifier | LFB Class Name | LFB Version | Description | Reference |
|---|---|---|---|---|
| 0 | Reserved | 1.0 | Reserved | RFC 5812 |
| 1 | FE Object | 1.0 | Defines ForCES Forwarding Element information | RFC 5812 |
| 2 | FE Protocol Object | 1.0 | Defines parameters for the ForCES protocol operation | RFC 5810 |
| 2 | FE Protocol Object | 1.1 | Defines parameters for the ForCES protocol operation | RFC 7121 |
| 2 | FE Protocol Object | 1.2 | Defines parameters for the ForCES protocol operation | RFC 7391 |
| 3 | EtherPHYCop | 1.0 | Define an Ethernet port abstracted at physical layer. | RFC 6956, Section 5.1.1 |
| 4 | EtherMACIn | 1.0 | Define an Ethernet input port at MAC data link layer. | RFC 6956, Section 5.1.2 |
| 5 | EtherClassifier | 1.0 | Define the process to decapsulate Ethernet packets and classify the packets. | RFC 6956, Section 5.1.3 |
| 6 | EtherEncap | 1.0 | Define the process to encapsulate IP packets to Ethernet packets. | RFC 6956, Section 5.1.4 |
| 7 | EtherMACOut | 1.0 | Define an Ethernet output port at MAC data link layer. | RFC 6956, Section 5.1.5 |
| 8 | IPv4Validator | 1.0 | Perform IPv4 packets validation. | RFC 6956, Section 5.2.1 |
| 9 | IPv6Validator | 1.0 | Perform IPv6 packets validation. | RFC 6956, Section 5.2.2 |
| 10 | IPv4UcastLPM | 1.0 | Perform IPv4 Longest Prefix Match Lookup. | RFC 6956, Section 5.3.1 |
| 11 | IPv6UcastLPM | 1.0 | Perform IPv6 Longest Prefix Match Lookup. | RFC 6956, Section 5.3.3 |
| 12 | IPv4NextHop | 1.0 | Define the process of selecting IPv4 next hop action. | RFC 6956, Section 5.3.2 |
| 13 | IPv6NextHop | 1.0 | Define the process of selecting IPv6 next hop action. | RFC 6956, Section 5.3.4 |
| 14 | RedirectIn | 1.0 | Define the process for CE to inject data packets into FE LFB topology. | RFC 6956, Section 5.4.1 |
| 15 | RedirectOut | 1.0 | Define the process for LFBs in FE to deliver data packets to CE. | RFC 6956, Section 5.4.2 |
| 16 | BasicMetadata Dispatch | 1.0 | Dispatch input packets to a group output according to a metadata. | RFC 6956, Section 5.5.1 |
| 17 | GenericScheduler | 1.0 | Define a preliminary generic scheduling process. | RFC 6956, Section 5.5.2 |
| 18 | IFE | 1.0 | An IFE LFB to standardize inter-FE LFB for ForCES Network Elements | RFC 8013 |
| 19 | SM | 1.0 | An SM LFB to standardize subsidiary management for ForCES Network Elements | RFC 7729 |
| 20-65536 | Unassigned | |||
| 65537 | Ext-Splitter | 1.0 | A splitter LFB will either send the same packet or chunks of one packet to multiple LFBs. | RFC 7409 |
| 65538 | Ext-Merger | 1.0 | A merger LFB receives multiple packets or multiple chunks of the same packet and merges them into one. | RFC 7409 |
| 65539 | Ext-CoreParallelization | 1.0 | A core LFB to signify the parallelization capability | RFC 7409 |
Metadata ID
Registration Procedure(s)
- Specification Required
Expert(s)
- Jamal Hadi Salim, Joel Halpern
Reference
- RFC 6956: Forwarding and Control Element Separation (ForCES) Logical Function Block (LFB) Library
Available Formats
| Value | Name | Reference |
|---|---|---|
| 0x00000000 | Reserved | RFC 6956 |
| 0x00000001 | PHYPortID | RFC 6956, Section 4.4 |
| 0x00000002 | SrcMAC | RFC 6956, Section 4.4 |
| 0x00000003 | DstMAC | RFC 6956, Section 4.4 |
| 0x00000004 | LogicalPortID | RFC 6956, Section 4.4 |
| 0x00000005 | EtherType | RFC 6956, Section 4.4 |
| 0x00000006 | VlanID | RFC 6956, Section 4.4 |
| 0x00000007 | VlanPriority | RFC 6956, Section 4.4 |
| 0x00000008 | NextHopIPv4Addr | RFC 6956, Section 4.4 |
| 0x00000009 | NextHopIPv6Addr | RFC 6956, Section 4.4 |
| 0x0000000a | HopSelector | RFC 6956, Section 4.4 |
| 0x0000000b | ExceptionID | RFC 6956, Section 4.4 |
| 0x0000000c | ValidateErrorID | RFC 6956, Section 4.4 |
| 0x0000000d | L3PortID | RFC 6956, Section 4.4 |
| 0x0000000e | RedirectIndex | RFC 6956, Section 4.4 |
| 0x0000000f | MediaEncapInfoIndex | RFC 6956, Section 4.4 |
| 0x00000010 | ParallelMetadataSet | RFC 7409 |
| 0x00000011-0x7fffffff | Unassigned | |
| 0x80000000-0xffffffff | Reserved for Private Use | RFC 6956, Section 4.4 |
Exception ID
Registration Procedure(s)
- Specification Required
Expert(s)
- Jamal Hadi Salim, Joel Halpern
Reference
- RFC 6956: Forwarding and Control Element Separation (ForCES) Logical Function Block (LFB) Library
Available Formats
| Value | Name | Reference |
|---|---|---|
| 0x00000000 | AnyUnrecognizedExceptionCase | RFC 6956, Section 4.4 |
| 0x00000001 | ClassifyNoMatching | RFC 6956, Section 4.4 |
| 0x00000002 | MediaEncapInfoIndexInvalid | RFC 6956, Section 4.4 |
| 0x00000003 | EncapTableLookupFailed | RFC 6956, Section 4.4 |
| 0x00000004 | BadTTL | RFC 6956, Section 4.4 |
| 0x00000005 | IPv4HeaderLengthMismatch | RFC 6956, Section 4.4 |
| 0x00000006 | RouterAlertOptions | RFC 6956, Section 4.4 |
| 0x00000007 | IPv6HopLimitZero | RFC 6956, Section 4.4 |
| 0x00000008 | IPv6NextHeaderHBH | RFC 6956, Section 4.4 |
| 0x00000009 | SrcAddressException | RFC 6956, Section 4.4 |
| 0x0000000a | DstAddressException | RFC 6956, Section 4.4 |
| 0x0000000b | LPMLookupFailed | RFC 6956, Section 4.4 |
| 0x0000000c | HopSelectorInvalid | RFC 6956, Section 4.4 |
| 0x0000000d | NextHopLookupFailed | RFC 6956, Section 4.4 |
| 0x0000000e | FragRequired | RFC 6956, Section 4.4 |
| 0x0000000f | MetadataNoMatching | RFC 6956, Section 4.4 |
| 0x00000010-0x7fffffff | Unassigned | |
| 0x80000000-0xffffffff | Reserved for Private Use | RFC 6956, Section 4.4 |
Validate Error ID
Registration Procedure(s)
- Specification Required
Expert(s)
- Jamal Hadi Salim, Joel Halpern
Reference
- RFC 6956: Forwarding and Control Element Separation (ForCES) Logical Function Block (LFB) Library
Available Formats
| Value | Name | Reference |
|---|---|---|
| 0x00000000 | AnyUnrecognizedValidateErrorCase | RFC 6956, Section 4.4 |
| 0x00000001 | InvalidIPv4PacketSize | RFC 6956, Section 4.4 |
| 0x00000002 | NotIPv4Packet | RFC 6956, Section 4.4 |
| 0x00000003 | InvalidIPv4HeaderLengthSize | RFC 6956, Section 4.4 |
| 0x00000004 | InvalidIPv4LengthFieldSize | RFC 6956, Section 4.4 |
| 0x00000005 | InvalidIPv4Checksum | RFC 6956, Section 4.4 |
| 0x00000006 | InvalidIPv4SrcAddr | RFC 6956, Section 4.4 |
| 0x00000007 | InvalidIPv4DstAddr | RFC 6956, Section 4.4 |
| 0x00000008 | InvalidIPv6PacketSize | RFC 6956, Section 4.4 |
| 0x00000009 | NotIPv6Packet | RFC 6956, Section 4.4 |
| 0x0000000a | InvalidIPv6SrcAddr | RFC 6956, Section 4.4 |
| 0x0000000b | InvalidIPv6DstAddr | RFC 6956, Section 4.4 |
| 0x0000000c-0x7fffffff | Unassigned | |
| 0x80000000-0xffffffff | Reserved for Private Use | RFC 6956, Section 4.4 |