Constraint-Based LSP Setup using LDP
updated by
Extracted elements (28)
The default setup and holding priority is set to 4 (the middle of the 0-7 range) so that preemption can be enabled gradually in an operational network by incrementally increasing or decreasing priorities from the midpoint, avoiding disruption during rollout.
The LSPID ER-Hop (type 0x0804) allows splicing or stacking CR-LSPs to eliminate the need to store the full remaining ER-TLV at each end of a loosely routed segment: the upstream LSR needs only the next ER-Hop and LSPID, while the downstream LSR needs only the LSPID.
Traffic parameters (PDR, PBS, CDR, CBS, EBS) are encoded as 32-bit IEEE single-precision floating-point numbers; positive infinity (exponent all-ones, sign and mantissa all-zeros) represents an unlimited/unconstrained value, simplifying the encoding of best-effort and unconstrained parameters.
CR-LDP depends on specific LDP behaviors from RFC 3036: Basic and/or Extended Discovery, Label Request in downstream-on-demand ordered control mode, Label Mapping in downstream-on-demand ordered control mode, Notification, Withdraw/Release messages, and Loop Detection for loosely routed CR-LSP segments.
A node receiving a Label Request Message with an ER-Hop type that is not supported MUST NOT forward the message to the downstream LSR and MUST send back a 'No Route' Notification Message.
A single FEC element MUST be included in the Label Request Message; the CR-LSP FEC Element (type 0x04) SHOULD be used, though other FEC elements from RFC 3036 MAY be used for certain applications.
If, after possible Traffic Parameter negotiation, an LSR can support the CR-LSP Traffic Parameters then the LSR MUST reserve the corresponding resources. If it cannot, the LSR MUST send a Notification with 'Resource Unavailable' status code.
If the negotiation flag was set in the Label Request Message, the egress LSR MUST include the (possibly negotiated) Traffic Parameters and Weight in the Label Mapping message. The Traffic Parameters and Weight in a Label Mapping message MUST be forwarded unchanged.
Notification Messages MUST be forwarded toward the LSR originating the Label Request at each hop whenever procedures specify sending a Notification in response to a Label Request Message. All new CR-LDP status codes require the F bit to be set.
On receiving a Notification Message for a CR-LSP, an LSR SHOULD release any reserved resources. When propagating a Notification upstream from a downstream LSR in response to a Label Request, the local LSR MUST propagate it per LDP procedures with the F bit set.
The Label Request Message MUST carry the LSPID TLV and MAY carry one or more optional Constraint-based Routing TLVs (CR-TLVs). Optional TLVs MUST be implemented to be compliant with the protocol, though they are optionally carried in messages.
The path between a strict ER-Hop node and its prior abstract node MUST include only network nodes from those two abstract nodes. A loose hop's path MAY include other network nodes not part of those abstract nodes.
The value of PDR MUST be greater than or equal to the value of CDR in a correctly encoded Traffic Parameters TLV. If an LSR receives a TLV where PDR < CDR in a Label Request, it MUST send a Notification with status 'Traffic Parameters Unavailable'.
When a Label Request Message includes CR-TLVs, ordered control MUST be used to set up the CR-LSP. An LSR implicitly infers ordered control from the existence of one or more CR-TLVs, even if configured for independent control for dynamically routed LSPs.
The Explicit Route TLV (ER-TLV, type 0x0800) specifies the path to be taken by the LSP being established. It is composed of one or more ER-Hop TLVs, each identifying a node or abstract node (group of nodes) along the constraint-based route.
The LSPID TLV (type 0x0821) provides a network-unique identifier for a CR-LSP, composed of the ingress LSR Router ID and a locally unique CR-LSP ID. It also carries an Action Indicator Flag (0000=initial setup, 0001=modify) enabling in-service bandwidth modification.
The Preemption TLV (type 0x0820) carries SetPrio and HoldPrio fields (0-7, where 0 is highest priority). LSPs without an explicit Preemption TLV SHOULD be treated as having default priority 4. When an established LSP is preempted, the initiating LSR sends a Withdraw upstream and Release downstream.
The Resource Class (Color) TLV (type 0x0822) carries a 32-bit bitmask (RsCls) indicating which administrative groups or 'colors' of links the CR-LSP may traverse, enabling topology pruning during path selection.
CR-LDP FEC Type Name Space: assigns CR-LSP FEC Element type 0x04 within the RFC 3036 FEC type space. Values 0-127 are assigned through IETF consensus.
CR-LDP Status Code Space: subdivides RFC 3036 status code space in range 0x04000000-0x040000FF, allocated through IETF Consensus. Defines: Bad Explicit Routing TLV Error (0x04000001), Bad Strict Node Error (0x04000002), Bad Loose Node Error (0x04000003), Bad Initial ER-Hop Error (0x04000004), Resource Unavailable (0x04000005), Traffic Parameters Unavailable (0x04000006), LSP Preempted (0x04000007), Modify Request Not Supported (0x04000008).
CR-LDP TLV Type Name Space: subdivides RFC 3036 LDP TLV space in range 0x0800-0x08FF, allocated through IETF Consensus. Initial assignments: ER-TLV (0x0800), IPv4 ER-Hop (0x0801), IPv6 ER-Hop (0x0802), AS Number ER-Hop (0x0803), LSP-ID ER-Hop (0x0804), Traffic Parameters (0x0810), Preemption (0x0820), LSPID (0x0821), Resource Class (0x0822), Route Pinning (0x0823).
CR-LDP inherits the security mechanism described in Section 4.0 of RFC 3036 (LDP) to protect against introduction of spoofed TCP segments into LDP session connection streams. No additional security mechanisms are defined.
CR-LSP setup uses downstream-on-demand ordered control triggered by receipt of a Label Request with CR-TLVs. A Label Mapping is sent upstream either when (1) the LSR is the egress and a mapping was requested, or (2) a mapping was received from downstream for a CR-LSP with a pending upstream request.
The CR-LSP FEC Element (type 0x04) has no value field (0 value octets). The CR-LSP FEC TLV encoding uses outer type 0x0100 with length=1 containing the single byte 0x04 FEC element type.
The ER-Hop IPv4 TLV (type 0x0801, length=8) contains: L bit (loose/strict), Reserved bits, 8-bit PreLen (prefix length 1-32), and a 4-byte IPv4 address. A prefix length of 32 identifies a single node.
The ER-Hop IPv6 TLV (type 0x0802, length=20) contains: L bit (loose/strict), Reserved bits, 8-bit PreLen (prefix length 1-128), and a 16-byte IPv6 unicast host address.
The LSPID TLV (type 0x0821, length=4+4=8 bytes value) encodes: 12 Reserved bits, 4-bit ActFlg (action indicator), 16-bit Local CR-LSP ID, and 32-bit Ingress LSR Router ID (any IPv4 address of the ingress LSR).
The Traffic Parameters TLV (type 0x0810, length=24) encodes: 8-bit Flags (negotiable flags F1-F6 per parameter), 8-bit Frequency, 8-bit Reserved, 8-bit Weight, and five 32-bit IEEE single-precision floats: PDR, PBS, CDR, CBS, EBS. Rates are in bytes/second; burst sizes in bytes.