rfc-7729

Forwarding and Control Element Separation (ForCES) Logical Functional Block (LFB) Subsidiary Management

B. Khasnabish, E. Haleplidis, J. Hadi Salim (Editor)
date2015-12 streamIETF wgnon working group statusPROPOSED STANDARD pages20 canonicalhttps://www.rfc-editor.org/rfc/rfc7729 doi10.17487/RFC7729
Deployment experience has demonstrated the value of using the Forwarding and Control Element Separation (ForCES) architecture to manage resources other than packet forwarding. In that spirit, the Forwarding Element Manager (FEM) is modeled by creating a Logical Functional Block (LFB) to represent its functionality. We refer to this LFB as the Subsidiary Mechanism (SM) LFB. A Control Element (CE) that controls a Forwarding Element's (FE) resources can also manage its configuration via the SM LFB. This document introduces the SM LFB class, an LFB class that specifies the configuration parameters of an FE. The configuration parameters include new LFB class loading and CE associations; they also provide manipulation of debug mechanisms along with a general purpose attribute definition to describe configuration information.

Extracted elements (21)

design-rationale §2.5

Debug log levels are derived directly from the IANA 'syslog Message Severities' registry (RFC 3164) rather than defining a new enumeration, aligning FE debug reporting with existing operational tooling.

routing

design-rationale §2.4

LFB loading parameters (LCRowtype.Parameters) and general-purpose attribute names (NameVal) are left as implementation-specific string placeholders in this LFB class so that future standardization can populate them without requiring new LFB class versions.

routing

design-rationale §1

The SM LFB models the FEM (FE Manager) as an LFB so that a CE can perform FEM-equivalent management via the standard Fp (CE-FE) interface, without replacing or moving away from the Ff (FEM-FE) interface defined in RFC 3746; the SM LFB is a subset of Ff operations.

routing

interoperability-note §3

Only one instance of the SM LFB class may exist per physical FE; however, in hierarchical virtual FE software, multiple SM LFB instances are permitted—one per virtual FE—making the LFB library applicable to both physical and virtual FE deployments.

routing

interoperability-note §4.4.2

When a CE adds a new row to the CEs component to establish a new CE association, how the FE interacts with the new CE (e.g., master/backup negotiation) is governed by the high-availability procedures defined in RFC 7121, not by this document.

routing

normative-requirement §4.4.2 MUST

Each row in the LFBLoad table MUST provide the LFB class ID; the LFB class ID version is optional, and when omitted the FE MUST assume version 1.0.

routing

protocol-element §4.4.4

Four events are defined on the SM LFB: CEAdded and CEDeleted (reporting the added/deleted CEs table row) and LFBLoaded and LFBUnloaded (reporting the added/deleted LFBLoad table row).

routing

protocol-element §4.4.2

The AttributeValues component (ID 3) is a read-write variable-size table of NameVal (string name / string value) pairs providing a general-purpose attribute definition mechanism for FE configuration information.

routing

protocol-element §4.4.2

The CEs component (ID 4) is a write-only variable-size table of CERow entries; adding a row instructs the FE to associate with the specified CE, and deleting a row instructs the FE to terminate that CE connection per RFC 7121.

routing

protocol-element §4.4.2

The Debug component (ID 1) is a read-write variable-size table of LogRowtype entries that supports changing per-module debug levels on the FE; altering a row changes the corresponding module's debug level.

routing

protocol-element §4.4.2

The LFBLoad component (ID 2) is a write-only variable-size table of LCRowtype entries; adding a row instructs the FE to load a new LFB class, and removing a row unloads it, thereby altering the SupportedLFBs capabilities of the FEObject LFB.

routing

protocol-element §4.4

The Subsidiary Mechanism (SM) LFB (LFBClassID=19, version 1.0) is defined to model FEM functionality within the ForCES architecture, allowing a CE to manage FE configuration parameters at runtime via the standard Fp interface.

routing, registry

protocol-element §4.4.3

Three capabilities are defined: DynamicLFBLoading (boolean, whether the FE supports dynamic LFB class loading), SupportedParameters (string array placeholder for standardized LFB-loading parameters), and SupportedAttributes (string array placeholder for standardized attribute names).

routing

registry §7.1

RFC 7729 registers LFB Class Identifier 19, Class Name 'SM', version 1.0 in the IANA 'Logical Functional Block (LFB) Class Names and Class Identifiers' registry. The registration procedure for identifiers 0–65535 is Standards Action; over 65535 is First Come First Served.

registry, routing

security-consideration §6

Security issues arising from misuse of the SM LFB—such as an attacker creating unauthorized CE associations—are not analyzed in this document and are left to designers of specific SM implementations. The ForCES framework (RFC 3746, Section 8) covers the broader ForCES threat analysis.

security, routing

security-consideration §6

The SM LFB does not alter the ForCES model (RFC 5812) or protocol (RFC 5810) security properties. The entity instructing FE CE associations must already be a trusted FE Manager or an associated CE; the FE has no mechanism to detect a faulty, rogue, or hacked CE and will execute any CE-issued command.

security, routing

wire-format §4.2

CERow is a struct with three fields: AddressFamily (uchar, value 2=IPv4 or 10=IPv6), CEIP (octetstring[16], the CE's IP address), and the optional CEID (uint32, the CE identifier).

routing

wire-format §4.2

LCRowtype is a struct with four fields: LFBClassID (uint32, required), LFBVersion (string[8], optional), LFBName (string, optional), and Parameters (string, optional, implementation-specific such as LFB location).

routing

wire-format §4.2

LogRowtype is a struct with three fields: lmodule (string, required log module name), filename (string, optional module file name), and deblvl (optional, one of the loglevels enumerated values).

routing

wire-format §4.2

NameVal is a struct with two string fields: AttrName (attribute name) and AttrVal (attribute value), providing a generic key-value pair for FE configuration attributes.

routing

wire-format §4.2

The loglevels atomic type is a char-based enumeration with values -1 (DEB_OFF) through 7 (DEB_DEBUG), aligned with syslog message severity levels from RFC 3164.

routing