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

Available Formats

Range Registration Procedures
0x00000000-0x000000FF IETF Review
0x00000100-0x0000FFFF Specification Required
Value Name Reference
0x00000000 Success RFC 5810
0x00000001 FE ID Invalid RFC 5810
0x00000002 Permission Denied RFC 5810
0x00000003-0x0000FFFF Unassigned
0x00010000-0xFFFFFFFF Reserved for Private Use RFC 5810

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