rfc-4204

Link Management Protocol (LMP)

J. Lang (Editor)
date2005-10 streamIETF areartg wgccamp statusPROPOSED STANDARD pages86 canonicalhttps://www.rfc-editor.org/rfc/rfc4204 doi10.17487/RFC4204 errataview
For scalability purposes, multiple data links can be combined to form a single traffic engineering (TE) link. Furthermore, the management of TE links is not restricted to in-band messaging, but instead can be done using out-of-band techniques. This document specifies a link management protocol (LMP) that runs between a pair of nodes and is used to manage TE links. Specifically, LMP will be used to maintain control channel connectivity, verify the physical connectivity of the data links, correlate the link property information, suppress downstream alarms, and localize link failures for protection/restoration purposes in multiple kinds of networks. [STANDARDS-TRACK]

updated by

Extracted elements (31)

design-rationale §9

Config messages for in-band control channels are sent to the multicast address (224.0.0.1 or ff02::1) rather than a unicast destination, enabling dynamic discovery of the far-end IP address without prior manual configuration. ConfigAck and ConfigNack are then sent back to the source IP address found in the received Config's IP header.

routing, ip

design-rationale §1

LMP was designed to explicitly separate the fate of control channels from data links. In GMPLS, control channels may be physically diverse from data links (separate fiber, Ethernet, IP tunnel), so the health of one does not correlate to the other, necessitating dedicated mechanisms for data link management and fault localization.

routing

design-rationale §5

The Verify_Id scoping mechanism was designed to allow parallel link verification across different link bundles or LMP sessions. The Verify_Id is node-unique and MUST NOT overlap any currently active Verify_Id, enabling the remote node to unambiguously correlate Test messages from concurrent verification procedures.

routing

interoperability-note §1

LMP-capable devices SHOULD allow sub-channels of a component link to be locally configured as logical data links to ensure interworking between data links with different multiplexing capabilities. For example, a cross-connect with OC-192 interfaces connected through a 4:1 SONET MUX should configure each OC-48 sub-channel as a separate data link.

routing

normative-requirement §4 MUST

A LinkSummaryAck or LinkSummaryNack MUST be sent in response to every LinkSummary message. If a LinkSummaryNack includes negotiable parameters, acceptable values for those parameters MUST be included.

routing

normative-requirement §8 MUST

After a control plane restart, once a control channel is up, the LMP neighbor MUST send a LinkSummary message for each TE link across the adjacency with all N-bits set to 0 (non-negotiable). The allocated/de-allocated flag from the received LinkSummary MUST take precedence over any local value.

routing

normative-requirement §6.4 MUST

An upstream node receiving a ChannelStatus message MUST send a ChannelStatusAck. Upon Channel Activation Indication, the corresponding data links MUST be put into the Active state; upon Channel Deactivation Indication, they MUST be taken out of the Active state.

routing

normative-requirement §3 MUST

Control channel parameters MUST be individually negotiated for each control channel, and LMP Hello packets MUST be exchanged over each control channel to maintain LMP connectivity if lower-level failure detection mechanisms are not available.

routing

normative-requirement §5 MUST

If a BeginVerify message is received and link verification is not supported for the TE link, a BeginVerifyNack MUST be transmitted with Error Code indicating 'Link Verification Procedure not supported for this TE Link.'

routing

normative-requirement §10 MUST

Implementations MUST use exponential back-off procedures or their equivalent for retransmission of unacknowledged messages. Suggested defaults are Ri=500ms, Delta=1 (power-of-2 back-off), and retry limit Rl=3.

routing

normative-requirement §4 MUST

TE link Link_Id identifiers MUST be the same type (IPv4, IPv6, or unnumbered) at both ends. If a LinkSummary is received with mismatched types, a LinkSummaryNack MUST be sent with Error Code 'Bad TE Link Object'. Similarly, Interface_Id types MUST match at both ends.

routing

normative-requirement §3.2.1 MUST

The HelloDeadInterval MUST be greater than the HelloInterval and SHOULD be at least 3 times the HelloInterval value. If the fast keep-alive mechanism is not used, both parameters MUST be set to zero.

routing

normative-requirement §7 MUST

The Message_Id field in the MESSAGE_ID object MUST be monotonically increasing and scoped to the CC_Id for control-channel-specific messages, or to the LMP adjacency for TE-link-specific messages. No more than one MESSAGE_ID object may be included in any LMP message.

routing

normative-requirement §5 MUST

The remote node MUST send either a TestStatusSuccess or TestStatusFailure message for each data link tested. A TestStatusAck MUST be sent to confirm receipt of those messages. Unacknowledged TestStatus messages SHOULD be retransmitted until acknowledged or retry limit is reached.

routing

normative-requirement §3.1 MUST

To activate a control channel, a Config message MUST be transmitted to the remote node and a ConfigAck MUST be received. When both nodes initiate simultaneously, the node with the higher Node_Id wins contention; the lower-Node_Id node MUST stop transmitting Config and respond to the received Config.

routing

normative-requirement §3.2.2 MUST NOT

TxSeqNum MUST NOT ever be 0. TxSeqNum=1 indicates the sender has just started or restarted. When TxSeqNum reaches (2^32)-1, the next sequence number used is 2, skipping 0 and 1 which have special meanings.

routing

normative-requirement §3.2.3 MUST

When bringing a control channel down administratively, a node MUST set the ControlChannelDown flag in all LMP messages sent over that control channel.

routing

protocol-element §3.2.4

A TE link enters the Degraded state when all LMP control channels are down but the TE link still includes data links allocated to user traffic. In this state, routing and signaling SHOULD be notified so new connections are not accepted and the TE link is advertised with no unreserved resources.

routing

protocol-element §3

An LMP control channel is a pair of mutually reachable IP interfaces identified by a 32-bit node-wide unique CC_Id. All LMP packets run over UDP with an LMP port number, except Test messages which may use in-band transport over data links.

routing, udp

protocol-element §5

The BeginVerify message initiates link connectivity verification, carrying the count of data links to verify, VerifyInterval, supported encoding and transport mechanisms, data rate, and optionally a wavelength identifier. The BeginVerifyAck response includes a node-unique 32-bit Verify_Id used to correlate all subsequent verification messages.

routing

protocol-element §6

The ChannelStatus message is sent unsolicited to notify an LMP neighbor about the status of one or more data channels of a TE link. It serves fault notification (failure localization), Channel Activation Indication, and Channel Deactivation Indication.

routing

protocol-element §4

The LinkSummary message includes a TE_LINK object followed by one or more DATA_LINK objects. It is used to aggregate data links into a TE link, exchange and correlate TE link parameters, and exchange Interface_Ids. It carries negotiable and non-negotiable objects identified by the N flag.

routing

protocol-element §3.2.2

The LMP Hello message contains TxSeqNum (sequence number of the sent Hello) and RcvSeqNum (last Hello sequence number received from the adjacent node). This fast keep-alive mechanism allows each node to verify its peer is receiving its transmissions and detects control channel failures.

routing

protocol-element §5

The Test message is the only LMP message transmitted over a data link (rather than a control channel). It carries the Verify_Id and the local Interface_Id, enabling data plane discovery, Interface_Id exchange, and physical connectivity verification for each data link.

routing

registry §16

Section 16 defines IANA registries for LMP including message type values, LMP object class and C-type values, sub-object types for DATA_LINK objects, error code values, and the assigned LMP UDP port number. New values require IETF Consensus or Standards Action depending on the registry.

registry, routing, udp

security-consideration §15

Section 15 identifies LMP security requirements including authentication of LMP messages to prevent spoofing that could disrupt control channels or corrupt TE link state. The document describes security mechanisms such as IPsec to protect LMP messages, noting that unauthenticated LMP is vulnerable to man-in-the-middle attacks.

security, routing, ipsec

state-machine §11.1

The Control Channel FSM defines six states: Down (initial), ConfSnd (sending Config messages), ConfRcv (waiting for Config from remote), Active (exchanging Hellos), Up (operational), and GoingDown (administrative shutdown). Transition from Active to Up requires receiving a valid Hello with expected sequence numbers; evCCDn always forces the FSM to Down.

routing

state-machine §11.3

The Data Link FSM defines five states: Down (not in service), Test (sending Test messages over the link), PasvTest (listening for Test messages), Up/Free (verified and in service, not allocated), and Up/Alloc (allocated for data traffic). Separate active-mode and passive-mode FSM descriptions cover the transmit and receive directions respectively.

routing

state-machine §11.2

The TE Link FSM defines four states: Down (no data links allocated), Init (data links allocated but not synchronized with neighbor; LinkSummary messages sent periodically), Up (operational; at least one control channel active), and Degraded (all control channels down but data links still allocated). Transitions are triggered by data channel, control channel, and LinkSummary ACK/NACK events.

routing

wire-format §12.2

Each LMP object carries an N bit in its header identifying whether it is negotiable (N=1, peers may propose alternate values) or non-negotiable (N=0, announces a specific value that must be accepted or rejected outright). Object class and C-type fields further categorize the object.

routing

wire-format §12.1

The LMP Common Header contains a ControlChannelDown flag (set in all messages when administratively shutting down a control channel) and an LMP Restart bit (set after a nodal failure where LMP control state is lost, cleared once a Hello with matching RcvSeqNum is received).

routing