-
Notifications
You must be signed in to change notification settings - Fork 2
rsvp te
Pre-Alpha. This page describes behavior that may change.
RSVP-TE (RFC 3209, on top of RFC 2205 RSVP) signals explicitly-routed MPLS LSP tunnels with bandwidth reservation. It runs directly over IP as protocol 46 and requires CAP_NET_RAW.
The control plane (signaling, admission, reroute, RFC 4090 fast reroute) and the dataplane wiring are implemented and unit-tested: the engine emits push/swap/pop forwarding entries on the mpls-fib event bus and fib-kernel programs them into the kernel (IP route plus label for push, AF_MPLS routes for swap/pop). End-to-end and FRR interop validation on a live kernel is still pending. Use for evaluation, not production forwarding.
rsvp-te {
router-id 10.0.0.1
interface eth0 {
max-bandwidth 10e9
max-reservable-bandwidth 8e9
address 10.0.0.4/30
}
tunnel to-egress {
destination 10.0.0.9
tunnel-id 1
bandwidth 1e9
explicit-route 1 {
address 10.0.0.5/32
}
explicit-route 2 {
address 10.0.0.9/32
}
fast-reroute {
backup facility
node-protection false
}
}
bypass around-eth0 {
merge-point 10.0.0.5
explicit-route 1 {
address 10.1.0.5/32
}
}
}
| Field | Meaning |
|---|---|
router-id |
This LSR's address; also the raw-socket source and the SESSION extended-tunnel-id. A reload that changes it is rejected (restart-class) and the running value is kept. |
interface |
Per-link max-bandwidth / max-reservable-bandwidth used by admission control. |
address |
The local link prefix (e.g. 10.0.0.4/30). Lets admission map an LSP to this interface when more than one is configured: the neighbor's address is matched against each interface's prefix. Optional with a single interface. An interface without it is not admission-enforced in a multi-interface config (a startup warning lists how many). |
tunnel |
An ingress (head-end) LSP. Each explicit-route <index> names a hop address (IPv4 prefix) from this node toward the destination (the egress tunnel endpoint); type strict|loose defaults to strict. |
fast-reroute (on a tunnel) |
Request RFC 4090 local protection. backup is facility (one bypass protects many LSPs, the default) or one-to-one; node-protection true asks for a backup around the next node (not just the next link); bandwidth-protection and hop-limit (default 16) tune the backup. Presence of the container enables protection. |
bypass |
A facility-backup bypass LSP from this node (a Point of Local Repair) to a merge-point along an explicit-route that avoids the protected resource. ze has no IGP/CSPF, so bypass paths are explicit. node-protection true marks a bypass that merges at a next-next hop. |
refresh-period / refresh-multiplier
|
Optional soft-state timers (defaults 30s / 3 missed refreshes). |
setup-priority / hold-priority (on a tunnel) |
RSVP setup/hold priority (0 = highest, default 7). |
- Ingress sends a PATH along the ERO toward the egress.
- Transit nodes consume their own ERO hop, relay the PATH downstream, and on the returning RESV allocate a local label, program a swap, and relay the RESV upstream.
- Egress allocates a label and returns a RESV.
- Ingress records the downstream label and the LSP comes up.
- Soft-state is maintained by periodic PATH refresh;
PathTearremoves it.
Admission control reserves the requested bandwidth per interface; an oversubscribed link is rejected with a PathErr (admission-control failure). Make-before-break reroute signals a replacement LSP (new LSP-ID, SHARED-EXPLICIT style) and tears the old one down only once the new one is up.
Fast Reroute pre-signals a backup so an LSP survives a link or node failure with local repair instead of waiting for the head-end to re-signal from scratch. ze implements facility backup (one bypass LSP protects every LSP crossing a resource):
- A tunnel with
fast-reroutesends a PATH carrying aFAST_REROUTEobject and aSESSION_ATTRIBUTEwith "local protection desired" set. - A transit node that can protect the next resource (a Point of Local Repair) selects a configured
bypasswhosemerge-pointis the next hop (link protection) or the next-next hop (node protection), arms it, and records "local protection available" in its RESVRECORD_ROUTE. - On a link failure the PLR redirects the protected LSP onto the bypass by pushing the bypass label over the protected label (a 2-label stack) and forwarding via the bypass next hop, within the link-down event handling and with no re-signaling round trip. It records "local protection in use".
- The PLR sends a
PathErr"Notify" (code 25, value 3 "Tunnel locally repaired") toward the head-end and keeps the LSP up (it does not tear it down). For node protection it pushes the next-next hop's recorded label (label recording is requested automatically). - The head-end re-optimizes onto a fresh path (make-before-break) and tears the locally-repaired LSP once the replacement is up.
An LSP with no matching bypass keeps the base behavior (tear down plus PathErr on a link failure). One-to-one (detour) backup is tracked separately and not yet implemented.
The signaling engine does not touch the kernel directly. It emits push/swap/pop forwarding entries on the mpls-fib event bus, and fib-kernel programs them (IP route plus label for push, AF_MPLS routes for swap/pop), keeping fib-kernel the single kernel-FIB owner.
rsvp-te reconciles its tunnel set on reload without restarting the engine:
| Change | Reload behaviour |
|---|---|
| Added tunnel | Signaled (PATH sent along its ERO). |
| Changed ERO / bandwidth | Rerouted make-before-break (new LSP-ID, old torn down once the new one is up). |
| Removed tunnel | Torn down with PathTear. |
| Interface bandwidth | Hot-applied to admission; live reservations are preserved (the link is not opened past max-reservable-bandwidth until pre-reload LSPs drain). |
| Bypass set | Reloaded; FRR re-arms against the new bypasses. |
router-id |
Restart-class. A configured change is rejected with a WARN and the running value is kept (no split-brain). |
The RSVP-TE component exposes four introspection commands that report LSP, interface, tunnel, and protection state as JSON, available both under the top-level show grammar and as direct plugin commands. The show forms proxy to the plugin commands through the dispatcher.
| Command | Reports |
|---|---|
show rsvp-te lsp (= show rsvp-te session) |
All LSPs: state, role, bandwidth, in/out labels. |
show rsvp-te interface |
Per-interface reserved / available / max bandwidth. |
show rsvp-te tunnel |
Configured tunnels and their state. |
show rsvp-te fast-reroute |
RFC 4090 protection state: each configured bypass LSP and each protected LSP with its armed bypass and whether protection is available / in use. |
ze_rsvpte_lsps_active, ze_rsvpte_lsps_total, ze_rsvpte_path_sent_total, ze_rsvpte_path_recv_total, ze_rsvpte_resv_sent_total, ze_rsvpte_resv_recv_total, ze_rsvpte_patherr_recv_total, ze_rsvpte_admission_denied_total, ze_rsvpte_local_repairs_total, ze_rsvpte_protected_lsps, ze_rsvpte_bypass_lsps.
- MPLS for the kernel MPLS FIB and LDP.
- FIB for the route-installation pipeline.
- Kernel FIB for the netlink backend that owns the kernel FIB.
Adapted from main/docs/guide/rsvp-te.md.
Unreviewed draft. This wiki was authored in bulk and has not been reviewed. File corrections on the issue tracker.
- Overview
- YANG Model
- Editor Workflow
- Archive and Rollback
- System
- Interfaces
- VRRP
- BFD
- FIB
- OSPF
- IS-IS
- MPLS / LDP / RSVP-TE
- RSVP-TE
- SRv6
- Static Routes
- Policy Routing
- Firewall
- Traffic Control
- Class of Service
- L2TP/PPP
- PPPoE
- VPP Data Plane
- RPKI
- IPsec VPN
- TACACS+ AAA
- RADIUS AAA
- AS112 DNS
- Authorization
- Fleet
- BGP
- Starting and Stopping
- Show Commands
- Monitoring
- Flow Export
- DDoS Mitigation
- Anomaly Detection
- Health Checks
- Audit Trail
- Production Diagnostics
- Logging
- Operational Reports
- Healthcheck
- Self-Update
- Zero-Touch Provisioning
- MRT Analysis
- Upgrade and Restart
- Storage
- Policy
- Core
- Resilience
- Validation
- Capabilities
- Address Families
- Protocol
- Subsystems
- Infrastructure
- Route Server at an IXP
- Transit Edge with RPKI
- Public Looking Glass
- ExaBGP Migration Walkthrough
- FlowSpec Injection
- Chaos-Tested Peering
- AS Path Topology