Forwarding and Control Element Separation (ForCES) Logical Functional Block (LFB) Subsidiary Management
Extracted elements (21)
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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).
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.
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.
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.
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).
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).
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).
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.
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.