diff --git a/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/p1.md b/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/p1.md index ecffbb63c65..ed184f2bacf 100644 --- a/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/p1.md +++ b/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/p1.md @@ -29,6 +29,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS Device Configuration](#mpls-device-configuration) - [VRF Instances](#vrf-instances) - [VRF Instances Summary](#vrf-instances-summary) - [VRF Instances Device Configuration](#vrf-instances-device-configuration) @@ -406,7 +407,17 @@ router isis CORE | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Ethernet1 | True | True | True | +| Ethernet2 | True | True | True | +| Ethernet3 | True | True | True | +| Ethernet4 | True | True | True | +| Loopback0 | - | True | - | + +### MPLS Device Configuration ```eos ! @@ -419,16 +430,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Ethernet2 | True | True | True | -| Ethernet3 | True | True | True | -| Ethernet4 | True | True | True | -| Loopback0 | - | True | - | - ## VRF Instances ### VRF Instances Summary diff --git a/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/p2.md b/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/p2.md index c3ccc8a1e8d..a79968d4e34 100644 --- a/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/p2.md +++ b/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/p2.md @@ -29,6 +29,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS Device Configuration](#mpls-device-configuration) - [VRF Instances](#vrf-instances) - [VRF Instances Summary](#vrf-instances-summary) - [VRF Instances Device Configuration](#vrf-instances-device-configuration) @@ -406,7 +407,17 @@ router isis CORE | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Ethernet1 | True | True | True | +| Ethernet2 | True | True | True | +| Ethernet3 | True | True | True | +| Ethernet4 | True | True | True | +| Loopback0 | - | True | - | + +### MPLS Device Configuration ```eos ! @@ -419,16 +430,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Ethernet2 | True | True | True | -| Ethernet3 | True | True | True | -| Ethernet4 | True | True | True | -| Loopback0 | - | True | - | - ## VRF Instances ### VRF Instances Summary diff --git a/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/p3.md b/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/p3.md index bbf5417b18e..836d4c987d1 100644 --- a/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/p3.md +++ b/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/p3.md @@ -29,6 +29,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS Device Configuration](#mpls-device-configuration) - [VRF Instances](#vrf-instances) - [VRF Instances Summary](#vrf-instances-summary) - [VRF Instances Device Configuration](#vrf-instances-device-configuration) @@ -386,7 +387,16 @@ router isis CORE | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Ethernet1 | True | True | True | +| Ethernet2 | True | True | True | +| Ethernet4 | True | True | True | +| Loopback0 | - | True | - | + +### MPLS Device Configuration ```eos ! @@ -399,15 +409,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Ethernet2 | True | True | True | -| Ethernet4 | True | True | True | -| Loopback0 | - | True | - | - ## VRF Instances ### VRF Instances Summary diff --git a/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/p4.md b/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/p4.md index 3c21028bfd9..288cccefff6 100644 --- a/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/p4.md +++ b/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/p4.md @@ -29,6 +29,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS Device Configuration](#mpls-device-configuration) - [VRF Instances](#vrf-instances) - [VRF Instances Summary](#vrf-instances-summary) - [VRF Instances Device Configuration](#vrf-instances-device-configuration) @@ -386,7 +387,16 @@ router isis CORE | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Ethernet2 | True | True | True | +| Ethernet3 | True | True | True | +| Ethernet4 | True | True | True | +| Loopback0 | - | True | - | + +### MPLS Device Configuration ```eos ! @@ -399,15 +409,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet2 | True | True | True | -| Ethernet3 | True | True | True | -| Ethernet4 | True | True | True | -| Loopback0 | - | True | - | - ## VRF Instances ### VRF Instances Summary diff --git a/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/pe1.md b/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/pe1.md index c91703c5eb5..498a9b55673 100644 --- a/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/pe1.md +++ b/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/pe1.md @@ -34,6 +34,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS Device Configuration](#mpls-device-configuration) - [Multicast](#multicast) - [IP IGMP Snooping](#ip-igmp-snooping) - [VRF Instances](#vrf-instances) @@ -572,7 +573,15 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Ethernet1 | True | True | True | +| Ethernet2 | True | True | True | +| Loopback0 | - | True | - | + +### MPLS Device Configuration ```eos ! @@ -585,14 +594,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Ethernet2 | True | True | True | -| Loopback0 | - | True | - | - ## Multicast ### IP IGMP Snooping diff --git a/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/pe2.md b/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/pe2.md index bbf4d262812..5270e0da226 100644 --- a/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/pe2.md +++ b/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/pe2.md @@ -34,6 +34,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS Device Configuration](#mpls-device-configuration) - [Multicast](#multicast) - [IP IGMP Snooping](#ip-igmp-snooping) - [VRF Instances](#vrf-instances) @@ -572,7 +573,15 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Ethernet1 | True | True | True | +| Ethernet2 | True | True | True | +| Loopback0 | - | True | - | + +### MPLS Device Configuration ```eos ! @@ -585,14 +594,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Ethernet2 | True | True | True | -| Loopback0 | - | True | - | - ## Multicast ### IP IGMP Snooping diff --git a/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/pe3.md b/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/pe3.md index 2117e948c81..8cf190d9f1a 100644 --- a/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/pe3.md +++ b/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/pe3.md @@ -34,6 +34,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS Device Configuration](#mpls-device-configuration) - [Multicast](#multicast) - [IP IGMP Snooping](#ip-igmp-snooping) - [VRF Instances](#vrf-instances) @@ -561,7 +562,15 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Ethernet1 | True | True | True | +| Ethernet3 | True | True | True | +| Loopback0 | - | True | - | + +### MPLS Device Configuration ```eos ! @@ -574,14 +583,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Ethernet3 | True | True | True | -| Loopback0 | - | True | - | - ## Multicast ### IP IGMP Snooping diff --git a/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/rr1.md b/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/rr1.md index e5e89c395b7..8476820617b 100644 --- a/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/rr1.md +++ b/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/rr1.md @@ -32,6 +32,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS Device Configuration](#mpls-device-configuration) - [VRF Instances](#vrf-instances) - [VRF Instances Summary](#vrf-instances-summary) - [VRF Instances Device Configuration](#vrf-instances-device-configuration) @@ -513,7 +514,16 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Ethernet2 | True | True | True | +| Ethernet3 | True | True | True | +| Ethernet4 | True | True | True | +| Loopback0 | - | True | - | + +### MPLS Device Configuration ```eos ! @@ -526,15 +536,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet2 | True | True | True | -| Ethernet3 | True | True | True | -| Ethernet4 | True | True | True | -| Loopback0 | - | True | - | - ## VRF Instances ### VRF Instances Summary diff --git a/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/rr2.md b/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/rr2.md index 6dc046656db..a987f7714be 100644 --- a/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/rr2.md +++ b/ansible_collections/arista/avd/examples/isis-ldp-ipvpn/documentation/devices/rr2.md @@ -32,6 +32,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS Device Configuration](#mpls-device-configuration) - [VRF Instances](#vrf-instances) - [VRF Instances Summary](#vrf-instances-summary) - [VRF Instances Device Configuration](#vrf-instances-device-configuration) @@ -513,7 +514,16 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Ethernet2 | True | True | True | +| Ethernet3 | True | True | True | +| Ethernet4 | True | True | True | +| Loopback0 | - | True | - | + +### MPLS Device Configuration ```eos ! @@ -526,15 +536,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet2 | True | True | True | -| Ethernet3 | True | True | True | -| Ethernet4 | True | True | True | -| Loopback0 | - | True | - | - ## VRF Instances ### VRF Instances Summary diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host1.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host1.md index cc723a80616..b11846fbce9 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host1.md +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host1.md @@ -123,7 +123,10 @@ - [Router BFD](#router-bfd) - [BFD Interfaces](#bfd-interfaces) - [MPLS](#mpls) + - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS RSVP](#mpls-rsvp) + - [MPLS Device Configuration](#mpls-device-configuration) - [Patch Panel](#patch-panel) - [Patch Panel Summary](#patch-panel-summary) - [Patch Panel Device Configuration](#patch-panel-device-configuration) @@ -2772,6 +2775,9 @@ interface Ethernet1 ip igmp host-proxy report-interval 2 ip igmp host-proxy version 2 tcp mss ceiling ipv4 70 ipv6 75 egress + mpls ldp igp sync + mpls ldp interface + mpls ip switchport port-security switchport port-security mac-address maximum disabled priority-flow-control on @@ -4387,6 +4393,7 @@ interface Port-Channel132 interface Loopback0 description EVPN_Overlay_Peering ip address 192.168.255.3/32 + mpls ldp interface comment Comment created from eos_cli under loopback_interfaces.Loopback0 EOF @@ -5652,16 +5659,124 @@ router bfd ## MPLS +### MPLS and LDP + +#### MPLS and LDP Summary + +| Setting | Value | +| -------- | ---- | +| MPLS IP Enabled | True | +| LDP Enabled | True | +| LDP Router ID | 192.168.1.1 | +| LDP Interface Disabled Default | True | +| LDP Transport-Address Interface | Loopback0 | +| ICMP Fragmentation-Needed Tunneling Enabled | True | + ### MPLS Interfaces | Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | | --------- | --------------- | ----------- | -------- | +| Ethernet1 | True | True | True | | Ethernet9 | True | True | - | | Ethernet10 | False | False | - | +| Loopback0 | - | True | - | | Loopback99 | - | True | - | | Port-Channel113 | True | True | True | | Port-Channel114 | False | False | - | +### MPLS RSVP + +#### MPLS RSVP Summary + +| Setting | Value | +| ------- | ----- | +| Refresh interval | 3 | +| Authentication type | - | +| Authentication sequence-number window | - | +| Authentication active index | - | +| IPv4 access-group | RSVP_access_group_ipv4 | +| IPv6 access-group | RSVP_access_group_ipv6 | +| SRLG strict | enabled | +| Label local-termination | explicit-null | +| Preemption method | soft | +| Preemption timer | 444 | +| MTU signaling | True | +| Fast reroute mode | - | +| Fast reroute reversion | local | +| Fast reroute bypass tunnel optimization interval | 65535 | +| Hitless restart | Active | +| Hitless restart recovery timer | 222 | +| Shutdown | Active | + +##### RSVP Neighbor Authentication + +| Neighbor IP | Index | Type | +| ----------- | ----- | ---- | +| 1.1.1.1 | 3 | md5 | +| 1.1.12.2 | 30 | none | +| 1.10.1.2 | - | none | +| 1.21.1.20 | - | md5 | +| 10.1.1.2 | 303 | - | +| 2::11.22.33.44 | 3133 | none | +| 2001::db8 | 31 | none | + +##### RSVP Graceful Restart + +| Role | Recovery timer | Restart timer | +| ---- | -------------- | ------------- | +| Speaker | 35 | 36 | + +### MPLS Device Configuration + +```eos +! +mpls ip +! +mpls ldp + router-id 192.168.1.1 + transport-address interface Loopback0 + interface disabled default + no shutdown +! +mpls icmp fragmentation-needed tunneling +! +mpls rsvp + refresh interval 3 + authentication index 55 password 7 + authentication index 766 password 7 + authentication index 999 password + neighbor 1.1.1.1 authentication type md5 + neighbor 1.1.1.1 authentication index 3 active + neighbor 1.1.12.2 authentication type none + neighbor 1.1.12.2 authentication index 30 active + neighbor 1.10.1.2 authentication type none + neighbor 1.21.1.20 authentication type md5 + neighbor 10.1.1.2 authentication index 303 active + neighbor 2::11.22.33.44 authentication type none + neighbor 2::11.22.33.44 authentication index 3133 active + neighbor 2001::db8 authentication type none + neighbor 2001::db8 authentication index 31 active + ip access-group RSVP_access_group_ipv4 + ipv6 access-group RSVP_access_group_ipv6 + fast-reroute reversion local + fast-reroute bypass tunnel optimization interval 65535 seconds + srlg strict + label local-termination explicit-null + preemption method soft timer 444 + mtu signaling + ! + hitless-restart + timer recovery 222 seconds + ! + graceful-restart role speaker + timer restart 35 seconds + timer recovery 36 seconds + ! + p2mp + disabled + shutdown +``` + ## Patch Panel ### Patch Panel Summary diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host2.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host2.md index c5ad3df6800..c6d1255e760 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host2.md +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host2.md @@ -42,6 +42,10 @@ - [PBR Policy Maps](#pbr-policy-maps) - [BFD](#bfd) - [Router BFD](#router-bfd) +- [MPLS](#mpls) + - [MPLS and LDP](#mpls-and-ldp) + - [MPLS RSVP](#mpls-rsvp) + - [MPLS Device Configuration](#mpls-device-configuration) - [Queue Monitor](#queue-monitor) - [Queue Monitor Length](#queue-monitor-length) - [Queue Monitor Configuration](#queue-monitor-configuration) @@ -502,6 +506,74 @@ router bfd session stats snapshot interval dangerous 8 ``` +## MPLS + +### MPLS and LDP + +#### MPLS and LDP Summary + +| Setting | Value | +| -------- | ---- | +| MPLS IP Enabled | True | +| LDP Enabled | False | +| LDP Router ID | - | +| LDP Interface Disabled Default | False | +| LDP Transport-Address Interface | - | +| ICMP TTL-Exceeded Tunneling Enabled | True | + +### MPLS RSVP + +#### MPLS RSVP Summary + +| Setting | Value | +| ------- | ----- | +| Refresh method | explicit | +| Authentication type | md5 | +| Authentication sequence-number window | 234 | +| Authentication active index | 766 | +| SRLG | enabled | +| Preemption method | hard | +| Fast reroute mode | link-protection | +| Fast reroute reversion | - | +| Fast reroute bypass tunnel optimization interval | - | +| Hitless restart | Active | +| Hitless restart recovery timer | - | + +##### RSVP Graceful Restart + +| Role | Recovery timer | Restart timer | +| ---- | -------------- | ------------- | +| Helper | 32 | 33 | + +### MPLS Device Configuration + +```eos +! +mpls ip +! +mpls ldp + shutdown +! +mpls icmp ttl-exceeded tunneling +! +mpls rsvp + refresh method explicit + authentication type md5 + authentication sequence-number window 234 + authentication index 766 active + fast-reroute mode link-protection + srlg + preemption method hard + ! + hitless-restart + ! + graceful-restart role helper + timer restart maximum 32 seconds + timer recovery maximum 33 seconds + ! + p2mp +``` + ## Queue Monitor ### Queue Monitor Length diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/mpls-3.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host3.md similarity index 79% rename from ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/mpls-3.md rename to ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host3.md index d8608e69a60..2bd128cb796 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/mpls-3.md +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host3.md @@ -1,4 +1,4 @@ -# mpls-3 +# host3 ## Table of Contents @@ -6,6 +6,8 @@ - [Management Interfaces](#management-interfaces) - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) + - [MPLS RSVP](#mpls-rsvp) + - [MPLS Device Configuration](#mpls-device-configuration) ## Management @@ -49,7 +51,16 @@ interface Management1 | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | - | -#### MPLS and LDP Device Configuration +### MPLS RSVP + +#### MPLS RSVP Summary + +| Setting | Value | +| ------- | ----- | +| Hello interval | 30 | +| Timeout multiplier | 254 | + +### MPLS Device Configuration ```eos ! @@ -58,4 +69,7 @@ mpls ip mpls ldp router-id 192.168.1.2 interface disabled default +! +mpls rsvp + hello interval 30 multiplier 254 ``` diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/mpls-2.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/mpls-2.md deleted file mode 100644 index fc946b56c34..00000000000 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/mpls-2.md +++ /dev/null @@ -1,63 +0,0 @@ -# mpls-2 - -## Table of Contents - -- [Management](#management) - - [Management Interfaces](#management-interfaces) -- [MPLS](#mpls) - - [MPLS and LDP](#mpls-and-ldp) - -## Management - -### Management Interfaces - -#### Management Interfaces Summary - -##### IPv4 - -| Management Interface | Description | Type | VRF | IP Address | Gateway | -| -------------------- | ----------- | ---- | --- | ---------- | ------- | -| Management1 | OOB_MANAGEMENT | oob | MGMT | 10.73.255.122/24 | 10.73.255.2 | - -##### IPv6 - -| Management Interface | Description | Type | VRF | IPv6 Address | IPv6 Gateway | -| -------------------- | ----------- | ---- | --- | ------------ | ------------ | -| Management1 | OOB_MANAGEMENT | oob | MGMT | - | - | - -#### Management Interfaces Device Configuration - -```eos -! -interface Management1 - description OOB_MANAGEMENT - vrf MGMT - ip address 10.73.255.122/24 -``` - -## MPLS - -### MPLS and LDP - -#### MPLS and LDP Summary - -| Setting | Value | -| -------- | ---- | -| MPLS IP Enabled | True | -| LDP Enabled | False | -| LDP Router ID | - | -| LDP Interface Disabled Default | False | -| LDP Transport-Address Interface | - | -| ICMP TTL-Exceeded Tunneling Enabled | True | - -#### MPLS and LDP Device Configuration - -```eos -! -mpls ip -! -mpls ldp - shutdown -! -mpls icmp ttl-exceeded tunneling -``` diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/mpls.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/mpls.md deleted file mode 100644 index 873a6158a63..00000000000 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/mpls.md +++ /dev/null @@ -1,133 +0,0 @@ -# mpls - -## Table of Contents - -- [Management](#management) - - [Management Interfaces](#management-interfaces) -- [Interfaces](#interfaces) - - [Ethernet Interfaces](#ethernet-interfaces) - - [Loopback Interfaces](#loopback-interfaces) -- [MPLS](#mpls-1) - - [MPLS and LDP](#mpls-and-ldp) - - [MPLS Interfaces](#mpls-interfaces) - -## Management - -### Management Interfaces - -#### Management Interfaces Summary - -##### IPv4 - -| Management Interface | Description | Type | VRF | IP Address | Gateway | -| -------------------- | ----------- | ---- | --- | ---------- | ------- | -| Management1 | OOB_MANAGEMENT | oob | MGMT | 10.73.255.122/24 | 10.73.255.2 | - -##### IPv6 - -| Management Interface | Description | Type | VRF | IPv6 Address | IPv6 Gateway | -| -------------------- | ----------- | ---- | --- | ------------ | ------------ | -| Management1 | OOB_MANAGEMENT | oob | MGMT | - | - | - -#### Management Interfaces Device Configuration - -```eos -! -interface Management1 - description OOB_MANAGEMENT - vrf MGMT - ip address 10.73.255.122/24 -``` - -## Interfaces - -### Ethernet Interfaces - -#### Ethernet Interfaces Summary - -##### L2 - -| Interface | Description | Mode | VLANs | Native VLAN | Trunk Group | Channel-Group | -| --------- | ----------- | ---- | ----- | ----------- | ----------- | ------------- | - -*Inherited from Port-Channel Interface - -##### IPv4 - -| Interface | Description | Channel Group | IP Address | VRF | MTU | Shutdown | ACL In | ACL Out | -| --------- | ----------- | ------------- | ---------- | ----| ---- | -------- | ------ | ------- | -| Ethernet1 | - | - | 192.168.100.1/31 | default | - | - | - | - | - -#### Ethernet Interfaces Device Configuration - -```eos -! -interface Ethernet1 - no switchport - ip address 192.168.100.1/31 - mpls ldp igp sync - mpls ldp interface - mpls ip -``` - -### Loopback Interfaces - -#### Loopback Interfaces Summary - -##### IPv4 - -| Interface | Description | VRF | IP Address | -| --------- | ----------- | --- | ---------- | -| Loopback0 | - | default | 192.168.1.1/32 | - -##### IPv6 - -| Interface | Description | VRF | IPv6 Address | -| --------- | ----------- | --- | ------------ | -| Loopback0 | - | default | - | - -#### Loopback Interfaces Device Configuration - -```eos -! -interface Loopback0 - ip address 192.168.1.1/32 - mpls ldp interface -``` - -## MPLS - -### MPLS and LDP - -#### MPLS and LDP Summary - -| Setting | Value | -| -------- | ---- | -| MPLS IP Enabled | True | -| LDP Enabled | True | -| LDP Router ID | 192.168.1.1 | -| LDP Interface Disabled Default | True | -| LDP Transport-Address Interface | Loopback0 | -| ICMP Fragmentation-Needed Tunneling Enabled | True | - -#### MPLS and LDP Device Configuration - -```eos -! -mpls ip -! -mpls ldp - router-id 192.168.1.1 - transport-address interface Loopback0 - interface disabled default - no shutdown -! -mpls icmp fragmentation-needed tunneling -``` - -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Loopback0 | - | True | - | diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/host1.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/host1.cfg index 7f0ea8a15e5..536609ca9d5 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/host1.cfg +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/host1.cfg @@ -1532,6 +1532,9 @@ interface Ethernet1 ip igmp host-proxy report-interval 2 ip igmp host-proxy version 2 tcp mss ceiling ipv4 70 ipv6 75 egress + mpls ldp igp sync + mpls ldp interface + mpls ip switchport port-security switchport port-security mac-address maximum disabled priority-flow-control on @@ -2401,6 +2404,7 @@ interface Ethernet81/10 interface Loopback0 description EVPN_Overlay_Peering ip address 192.168.255.3/32 + mpls ldp interface comment Comment created from eos_cli under loopback_interfaces.Loopback0 EOF @@ -3454,6 +3458,52 @@ ipv6 route vrf TENANT_A_PROJECT01 2a01:cb04:4e6:a400::/64 Vlan1001 2a01:cb04:4e6 ipv6 route vrf TENANT_A_PROJECT01 2b01:cb04:4e6:a400::/64 Vlan102 2a01:cb04:4e6:102::1 track bfd 201 tag 102 name Track-BFD metric 100 ipv6 route vrf TENANT_A_PROJECT01 2c01:cb04:4e6:a400::/64 Vlan102 201 tag 102 name No-Track-BFD ! +mpls ip +! +mpls ldp + router-id 192.168.1.1 + transport-address interface Loopback0 + interface disabled default + no shutdown +! +mpls icmp fragmentation-needed tunneling +! +mpls rsvp + refresh interval 3 + authentication index 55 password 7 14241B062114062E142900260B1D23133B + authentication index 766 password 7 13361E3F1B20011A2A173B + authentication index 999 password simplePassword + neighbor 1.1.1.1 authentication type md5 + neighbor 1.1.1.1 authentication index 3 active + neighbor 1.1.12.2 authentication type none + neighbor 1.1.12.2 authentication index 30 active + neighbor 1.10.1.2 authentication type none + neighbor 1.21.1.20 authentication type md5 + neighbor 10.1.1.2 authentication index 303 active + neighbor 2::11.22.33.44 authentication type none + neighbor 2::11.22.33.44 authentication index 3133 active + neighbor 2001::db8 authentication type none + neighbor 2001::db8 authentication index 31 active + ip access-group RSVP_access_group_ipv4 + ipv6 access-group RSVP_access_group_ipv6 + fast-reroute reversion local + fast-reroute bypass tunnel optimization interval 65535 seconds + srlg strict + label local-termination explicit-null + preemption method soft timer 444 + mtu signaling + ! + hitless-restart + timer recovery 222 seconds + ! + graceful-restart role speaker + timer restart 35 seconds + timer recovery 36 seconds + ! + p2mp + disabled + shutdown +! ip nat pool prefix_16 prefix-length 16 range 10.0.0.1 10.0.255.254 range 10.1.0.0 10.1.255.255 1024 65535 diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/host2.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/host2.cfg index c80f2fcebce..62795c1dff9 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/host2.cfg +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/host2.cfg @@ -106,6 +106,30 @@ monitor connectivity ! arp persistent ! +mpls ip +! +mpls ldp + shutdown +! +mpls icmp ttl-exceeded tunneling +! +mpls rsvp + refresh method explicit + authentication type md5 + authentication sequence-number window 234 + authentication index 766 active + fast-reroute mode link-protection + srlg + preemption method hard + ! + hitless-restart + ! + graceful-restart role helper + timer restart maximum 32 seconds + timer recovery maximum 33 seconds + ! + p2mp +! ip nat synchronization ! policy-map type pbr POLICY_DROP_THEN_NEXTHOP diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/mpls-3.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/host3.cfg similarity index 78% rename from ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/mpls-3.cfg rename to ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/host3.cfg index c5cf1779079..3753705e2ea 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/mpls-3.cfg +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/host3.cfg @@ -9,3 +9,6 @@ mpls ip mpls ldp router-id 192.168.1.2 interface disabled default +! +mpls rsvp + hello interval 30 multiplier 254 diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/mpls-2.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/mpls-2.cfg deleted file mode 100644 index 83d5dcbf41c..00000000000 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/mpls-2.cfg +++ /dev/null @@ -1,12 +0,0 @@ -! -interface Management1 - description OOB_MANAGEMENT - vrf MGMT - ip address 10.73.255.122/24 -! -mpls ip -! -mpls ldp - shutdown -! -mpls icmp ttl-exceeded tunneling diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/mpls.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/mpls.cfg deleted file mode 100644 index a60504954f9..00000000000 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/mpls.cfg +++ /dev/null @@ -1,26 +0,0 @@ -! -interface Ethernet1 - no switchport - ip address 192.168.100.1/31 - mpls ldp igp sync - mpls ldp interface - mpls ip -! -interface Loopback0 - ip address 192.168.1.1/32 - mpls ldp interface -! -interface Management1 - description OOB_MANAGEMENT - vrf MGMT - ip address 10.73.255.122/24 -! -mpls ip -! -mpls ldp - router-id 192.168.1.1 - transport-address interface Loopback0 - interface disabled default - no shutdown -! -mpls icmp fragmentation-needed tunneling diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/ethernet-interfaces.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/ethernet-interfaces.yml index 568d6dc87c7..d3f0b82291a 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/ethernet-interfaces.yml +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/ethernet-interfaces.yml @@ -130,6 +130,11 @@ ethernet_interfaces: - name: ACL1 - name: ACL2 version: 2 + mpls: + ip: true + ldp: + interface: true + igp_sync: true - name: Ethernet2 ip_address: 10.1.255.3/24 diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/loopbacks-interfaces.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/loopbacks-interfaces.yml index 91db3f17379..2cd5d81ac6c 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/loopbacks-interfaces.yml +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/loopbacks-interfaces.yml @@ -3,6 +3,9 @@ loopback_interfaces: - name: Loopback0 description: EVPN_Overlay_Peering ip_address: 192.168.255.3/32 + mpls: + ldp: + interface: true eos_cli: | comment Comment created from eos_cli under loopback_interfaces.Loopback0 diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/mpls.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/mpls.yml new file mode 100644 index 00000000000..c259ae67932 --- /dev/null +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/mpls.yml @@ -0,0 +1,72 @@ +--- +mpls: + ip: true + ldp: + interface_disabled_default: true + router_id: 192.168.1.1 + shutdown: false + transport_address_interface: Loopback0 + icmp: + fragmentation_needed_tunneling: true + rsvp: + refresh: + interval: 3 + authentication: + password_indexes: + - index: 766 + password_type: 7 + password: 13361E3F1B20011A2A173B + - index: 55 + password_type: '7' + password: 14241B062114062E142900260B1D23133B + - index: 999 + password: simplePassword + fast_reroute: + reversion: local + bypass_tunnel_optimization_interval: 65535 + srlg: + enabled: true + strict: true + graceful_restart: + role_speaker: + enabled: true + timer_recovery: 35 + timer_restart: 36 + hitless_restart: + enabled: true + timer_recovery: 222 + ip_access_group: RSVP_access_group_ipv4 + ipv6_access_group: RSVP_access_group_ipv6 + label_local_termination: explicit-null + mtu_signaling: true + p2mp_enabled: false + preemption_method: + preemption: soft + timer: 444 + shutdown: true + neighbors: + - ip_address: 1.1.1.1 + authentication: + index: 3 + type: md5 + - ipv6_address: 2::11.22.33.44 + authentication: + index: 3133 + type: none + - ip_address: 10.1.1.2 + authentication: + index: 303 + - ip_address: 1.1.12.2 + authentication: + index: 30 + type: none + - ipv6_address: 2001::db8 + authentication: + index: 31 + type: none + - ip_address: 1.21.1.20 + authentication: + type: md5 + - ip_address: 1.10.1.2 + authentication: + type: none diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host2/mpls-2.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host2/mpls-2.yml new file mode 100644 index 00000000000..59ee3cc4be2 --- /dev/null +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host2/mpls-2.yml @@ -0,0 +1,30 @@ +--- +# test for mpls.ldp.shutdown: true and mpls.icmp.ttl_exceeded_tunneling: true +mpls: + ip: true + ldp: + interface_disabled_default: false + shutdown: true + icmp: + ttl_exceeded_tunneling: true + rsvp: + p2mp_enabled: true + authentication: + active_index: 766 + sequence_number_window: 234 + type: md5 + fast_reroute: + mode: link-protection + refresh: + method: explicit + srlg: + enabled: true + preemption_method: + preemption: hard + hitless_restart: + enabled: true + graceful_restart: + role_helper: + enabled: true + timer_recovery: 32 + timer_restart: 33 diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/mpls-3.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host3/mpls-3.yml similarity index 69% rename from ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/mpls-3.yml rename to ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host3/mpls-3.yml index 5bb6b0c88f1..c7f9ca40c8a 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/mpls-3.yml +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host3/mpls-3.yml @@ -1,6 +1,11 @@ +--- # test for mpls.ldp.shutdown and mpls.icmp not defined mpls: ip: true ldp: interface_disabled_default: true router_id: 192.168.1.2 + rsvp: + hello: + interval: 30 + multiplier: 254 diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/mpls-2.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/mpls-2.yml deleted file mode 100644 index c83c8df227a..00000000000 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/mpls-2.yml +++ /dev/null @@ -1,8 +0,0 @@ -# test for mpls.ldp.shutdown: true and mpls.icmp.ttl_exceeded_tunneling: true -mpls: - ip: true - ldp: - interface_disabled_default: false - shutdown: true - icmp: - ttl_exceeded_tunneling: true diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/mpls.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/mpls.yml deleted file mode 100644 index c1198c6e203..00000000000 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/mpls.yml +++ /dev/null @@ -1,27 +0,0 @@ -mpls: - ip: true - ldp: - interface_disabled_default: true - router_id: 192.168.1.1 - shutdown: false - transport_address_interface: Loopback0 - icmp: - fragmentation_needed_tunneling: true - -ethernet_interfaces: - - name: Ethernet1 - switchport: - enabled: false - ip_address: 192.168.100.1/31 - mpls: - ip: true - ldp: - interface: true - igp_sync: true - -loopback_interfaces: - - name: Loopback0 - ip_address: 192.168.1.1/32 - mpls: - ldp: - interface: true diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.yml index cb6cf6b13d5..8d9638e084d 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.yml +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.yml @@ -9,6 +9,7 @@ test_hosts: hosts: host1: host2: + host3: host4_inline_jinja: address-locking: base: @@ -39,9 +40,6 @@ test_hosts: management-defaults: management-interfaces: mac-security-eth-po-entropy: - mpls: - mpls-2: - mpls-3: platform: poe: prefix-lists: diff --git a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-LER1.md b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-LER1.md index 369217c6de9..078f9a4efb2 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-LER1.md +++ b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-LER1.md @@ -35,6 +35,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS Device Configuration](#mpls-device-configuration) - [Patch Panel](#patch-panel) - [Patch Panel Summary](#patch-panel-summary) - [Patch Panel Device Configuration](#patch-panel-device-configuration) @@ -811,7 +812,15 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Ethernet1 | True | True | True | +| Ethernet2 | True | True | True | +| Loopback0 | - | True | - | + +### MPLS Device Configuration ```eos ! @@ -824,14 +833,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Ethernet2 | True | True | True | -| Loopback0 | - | True | - | - ## Patch Panel ### Patch Panel Summary diff --git a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-LER2.md b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-LER2.md index 16a779d9a78..ced04d2bdd9 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-LER2.md +++ b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-LER2.md @@ -34,6 +34,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS Device Configuration](#mpls-device-configuration) - [Patch Panel](#patch-panel) - [Patch Panel Summary](#patch-panel-summary) - [Patch Panel Device Configuration](#patch-panel-device-configuration) @@ -815,7 +816,15 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Ethernet1 | True | True | True | +| Ethernet2 | True | True | True | +| Loopback0 | - | True | - | + +### MPLS Device Configuration ```eos ! @@ -828,14 +837,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Ethernet2 | True | True | True | -| Loopback0 | - | True | - | - ## Patch Panel ### Patch Panel Summary diff --git a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-LSR1.md b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-LSR1.md index c86c25023af..c9bcdc2ff3e 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-LSR1.md +++ b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-LSR1.md @@ -25,6 +25,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS Device Configuration](#mpls-device-configuration) - [VRF Instances](#vrf-instances) - [VRF Instances Summary](#vrf-instances-summary) - [VRF Instances Device Configuration](#vrf-instances-device-configuration) @@ -412,7 +413,16 @@ router isis CORE | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Ethernet1 | True | True | True | +| Ethernet3 | True | True | True | +| Ethernet4 | True | True | True | +| Loopback0 | - | True | - | + +### MPLS Device Configuration ```eos ! @@ -425,15 +435,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Ethernet3 | True | True | True | -| Ethernet4 | True | True | True | -| Loopback0 | - | True | - | - ## VRF Instances ### VRF Instances Summary diff --git a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-LSR2.md b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-LSR2.md index 4637afb8364..cff1d43fd9e 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-LSR2.md +++ b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-LSR2.md @@ -25,6 +25,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS Device Configuration](#mpls-device-configuration) - [VRF Instances](#vrf-instances) - [VRF Instances Summary](#vrf-instances-summary) - [VRF Instances Device Configuration](#vrf-instances-device-configuration) @@ -387,7 +388,15 @@ router isis CORE | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Ethernet1 | True | True | True | +| Ethernet3 | True | True | True | +| Loopback0 | - | True | - | + +### MPLS Device Configuration ```eos ! @@ -400,14 +409,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Ethernet3 | True | True | True | -| Loopback0 | - | True | - | - ## VRF Instances ### VRF Instances Summary diff --git a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-RR1.md b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-RR1.md index dac31e03698..6e45b8ddbd7 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-RR1.md +++ b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE1-RR1.md @@ -28,6 +28,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS Device Configuration](#mpls-device-configuration) - [VRF Instances](#vrf-instances) - [VRF Instances Summary](#vrf-instances-summary) - [VRF Instances Device Configuration](#vrf-instances-device-configuration) @@ -526,7 +527,14 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Ethernet4 | True | True | True | +| Loopback0 | - | True | - | + +### MPLS Device Configuration ```eos ! @@ -539,13 +547,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet4 | True | True | True | -| Loopback0 | - | True | - | - ## VRF Instances ### VRF Instances Summary diff --git a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE2-LER1.md b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE2-LER1.md index f927542bff6..9bf3b125862 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE2-LER1.md +++ b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE2-LER1.md @@ -35,6 +35,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS Device Configuration](#mpls-device-configuration) - [Patch Panel](#patch-panel) - [Patch Panel Summary](#patch-panel-summary) - [Patch Panel Device Configuration](#patch-panel-device-configuration) @@ -921,7 +922,16 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Ethernet1 | True | True | True | +| Loopback0 | - | True | - | +| Port-Channel11 | True | True | True | +| Port-Channel220 | True | True | True | + +### MPLS Device Configuration ```eos ! @@ -934,15 +944,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Loopback0 | - | True | - | -| Port-Channel11 | True | True | True | -| Port-Channel220 | True | True | True | - ## Patch Panel ### Patch Panel Summary diff --git a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE2-LSR1.md b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE2-LSR1.md index 396b394736f..d58b0dbc100 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE2-LSR1.md +++ b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE2-LSR1.md @@ -25,6 +25,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS Device Configuration](#mpls-device-configuration) - [VRF Instances](#vrf-instances) - [VRF Instances Summary](#vrf-instances-summary) - [VRF Instances Device Configuration](#vrf-instances-device-configuration) @@ -412,7 +413,16 @@ router isis CUSTOM_NAME | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Ethernet1 | True | True | True | +| Ethernet3 | True | True | True | +| Ethernet4 | True | True | True | +| Loopback0 | - | True | - | + +### MPLS Device Configuration ```eos ! @@ -425,15 +435,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Ethernet3 | True | True | True | -| Ethernet4 | True | True | True | -| Loopback0 | - | True | - | - ## VRF Instances ### VRF Instances Summary diff --git a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE2-LSR2.md b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE2-LSR2.md index c8d33865e97..4c5f8f5fe01 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE2-LSR2.md +++ b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE2-LSR2.md @@ -26,6 +26,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS Device Configuration](#mpls-device-configuration) - [VRF Instances](#vrf-instances) - [VRF Instances Summary](#vrf-instances-summary) - [VRF Instances Device Configuration](#vrf-instances-device-configuration) @@ -473,7 +474,16 @@ router isis CUSTOM_NAME | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Ethernet3 | True | True | True | +| Loopback0 | - | True | - | +| Port-Channel12 | True | True | True | +| Port-Channel110 | True | True | True | + +### MPLS Device Configuration ```eos ! @@ -486,15 +496,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet3 | True | True | True | -| Loopback0 | - | True | - | -| Port-Channel12 | True | True | True | -| Port-Channel110 | True | True | True | - ## VRF Instances ### VRF Instances Summary diff --git a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE2-RR1.md b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE2-RR1.md index 1bde5c38323..0786972dd03 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE2-RR1.md +++ b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE2-RR1.md @@ -28,6 +28,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS Device Configuration](#mpls-device-configuration) - [VRF Instances](#vrf-instances) - [VRF Instances Summary](#vrf-instances-summary) - [VRF Instances Device Configuration](#vrf-instances-device-configuration) @@ -526,7 +527,14 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Ethernet4 | True | True | True | +| Loopback0 | - | True | - | + +### MPLS Device Configuration ```eos ! @@ -539,13 +547,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet4 | True | True | True | -| Loopback0 | - | True | - | - ## VRF Instances ### VRF Instances Summary diff --git a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE3-LER1.md b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE3-LER1.md index 380f046bbfc..92069ff8d26 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE3-LER1.md +++ b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/documentation/devices/SITE3-LER1.md @@ -25,6 +25,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS Device Configuration](#mpls-device-configuration) - [Multicast](#multicast) - [IP IGMP Snooping](#ip-igmp-snooping) - [VRF Instances](#vrf-instances) @@ -328,7 +329,13 @@ router isis CORE | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Loopback0 | - | True | - | + +### MPLS Device Configuration ```eos ! @@ -341,12 +348,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Loopback0 | - | True | - | - ## Multicast ### IP IGMP Snooping diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/mpls.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/mpls.md index 41e3c3e221f..20b75edd5d4 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/mpls.md +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/mpls.md @@ -17,6 +17,55 @@ | [  icmp](## "mpls.icmp") | Dictionary | | | | Enables the LSRs to generate ICMP reply messages and deliver them to the originating host. | | [    fragmentation_needed_tunneling](## "mpls.icmp.fragmentation_needed_tunneling") | Boolean | | | | Enables the MPLS tunneling of MTU exceeded ICMP replies (fragmentation needed, packet too big). | | [    ttl_exceeded_tunneling](## "mpls.icmp.ttl_exceeded_tunneling") | Boolean | | | | Enables the MPLS tunneling of TTL exceeded ICMP replies. | + | [  rsvp](## "mpls.rsvp") | Dictionary | | | | | + | [    refresh](## "mpls.rsvp.refresh") | Dictionary | | | | | + | [      interval](## "mpls.rsvp.refresh.interval") | Integer | | | Min: 1
Max: 65535 | Time between refreshes. | + | [      method](## "mpls.rsvp.refresh.method") | String | | | Valid Values:
- bundled
- explicit | Neighbor refresh mechanism.
bundled: Refresh states using message identifier lists.
explicit: Send each message individually. | + | [    authentication](## "mpls.rsvp.authentication") | Dictionary | | | | Cryptographic authentication. | + | [      password_indexes](## "mpls.rsvp.authentication.password_indexes") | List, items: Dictionary | | | | | + | [        - index](## "mpls.rsvp.authentication.password_indexes.[].index") | Integer | Required, Unique | | Min: 1
Max: 4294967295 | Password index. | + | [          password_type](## "mpls.rsvp.authentication.password_indexes.[].password_type") | String | | | Valid Values:
- 0
- 7
- 8a | Authentication password type. | + | [          password](## "mpls.rsvp.authentication.password_indexes.[].password") | String | Required | | | Password string. | + | [      active_index](## "mpls.rsvp.authentication.active_index") | Integer | | | | Use index as active password. | + | [      sequence_number_window](## "mpls.rsvp.authentication.sequence_number_window") | Integer | | | Min: 1
Max: 255 | Size of reorder window for index in the sequence. | + | [      type](## "mpls.rsvp.authentication.type") | String | | | Valid Values:
- md5
- none | Authentication mechanism. | + | [    neighbors](## "mpls.rsvp.neighbors") | List, items: Dictionary | | | | | + | [      - ip_address](## "mpls.rsvp.neighbors.[].ip_address") | String | | | | Neighbor's interface IPv4 address. | + | [        ipv6_address](## "mpls.rsvp.neighbors.[].ipv6_address") | String | | | | Neighbor's interface IPv6 address. | + | [        authentication](## "mpls.rsvp.neighbors.[].authentication") | Dictionary | Required | | | Cryptographic authentication. | + | [          index](## "mpls.rsvp.neighbors.[].authentication.index") | Integer | | | Min: 1
Max: 4294967295 | Password index. | + | [          type](## "mpls.rsvp.neighbors.[].authentication.type") | String | | | Valid Values:
- md5
- none | Authentication mechanism. | + | [    ip_access_group](## "mpls.rsvp.ip_access_group") | String | | | | IPv4 Access list name. | + | [    ipv6_access_group](## "mpls.rsvp.ipv6_access_group") | String | | | | IPv6 access list name. | + | [    fast_reroute](## "mpls.rsvp.fast_reroute") | Dictionary | | | | | + | [      mode](## "mpls.rsvp.fast_reroute.mode") | String | | | Valid Values:
- link-protection
- node-protection
- none | Fast reroute mode.
link-protection: Protect against failure of the next link.
node-protection: Protect against failure of the next node.
none: Disable fast reroute. | + | [      reversion](## "mpls.rsvp.fast_reroute.reversion") | String | | | Valid Values:
- global
- local | Reversion behavior.
Global revertive repair.
Local revertive repair. | + | [      bypass_tunnel_optimization_interval](## "mpls.rsvp.fast_reroute.bypass_tunnel_optimization_interval") | Integer | | | Min: 1
Max: 65535 | Fast-reroute bypass configuration.
Interval between each re-optimization attempt in seconds. | + | [    srlg](## "mpls.rsvp.srlg") | Dictionary | | | | | + | [      enabled](## "mpls.rsvp.srlg.enabled") | Boolean | Required | | | Select SRLG behavior. | + | [      strict](## "mpls.rsvp.srlg.strict") | Boolean | | | | Apply strict SRLG constraint. | + | [    label_local_termination](## "mpls.rsvp.label_local_termination") | String | | | Valid Values:
- implicit-null
- explicit-null | Local termination label to be advertised. | + | [    preemption_method](## "mpls.rsvp.preemption_method") | Dictionary | | | | | + | [      preemption](## "mpls.rsvp.preemption_method.preemption") | String | Required | | Valid Values:
- hard
- soft | | + | [      timer](## "mpls.rsvp.preemption_method.timer") | Integer | | | Min: 1
Max: 65535 | Timer value in units of seconds. | + | [    mtu_signaling](## "mpls.rsvp.mtu_signaling") | Boolean | | | | Enable MTU signaling. | + | [    graceful_restart](## "mpls.rsvp.graceful_restart") | Dictionary | | | | RSVP graceful restart. | + | [      role_helper](## "mpls.rsvp.graceful_restart.role_helper") | Dictionary | | | | | + | [        enabled](## "mpls.rsvp.graceful_restart.role_helper.enabled") | Boolean | Required | | | | + | [        timer_recovery](## "mpls.rsvp.graceful_restart.role_helper.timer_recovery") | Integer | | | Min: 1
Max: 320 | Maximum recovery timer value in seconds. | + | [        timer_restart](## "mpls.rsvp.graceful_restart.role_helper.timer_restart") | Integer | | | Min: 1
Max: 320 | Maximum restart timer value in seconds. | + | [      role_speaker](## "mpls.rsvp.graceful_restart.role_speaker") | Dictionary | | | | | + | [        enabled](## "mpls.rsvp.graceful_restart.role_speaker.enabled") | Boolean | Required | | | | + | [        timer_recovery](## "mpls.rsvp.graceful_restart.role_speaker.timer_recovery") | Integer | | | Min: 1
Max: 320 | Maximum recovery timer value in seconds. | + | [        timer_restart](## "mpls.rsvp.graceful_restart.role_speaker.timer_restart") | Integer | | | Min: 1
Max: 320 | Maximum restart timer value in seconds. | + | [    hello](## "mpls.rsvp.hello") | Dictionary | | | | | + | [      interval](## "mpls.rsvp.hello.interval") | Integer | Required | | Min: 1
Max: 60 | Time between hello messages in seconds. | + | [      multiplier](## "mpls.rsvp.hello.multiplier") | Integer | Required | | Min: 1
Max: 255 | Number of missed hellos after which the neighbor is expired. | + | [    hitless_restart](## "mpls.rsvp.hitless_restart") | Dictionary | | | | RSVP hitless restart. | + | [      enabled](## "mpls.rsvp.hitless_restart.enabled") | Boolean | | | | | + | [      timer_recovery](## "mpls.rsvp.hitless_restart.timer_recovery") | Integer | | | Min: 1
Max: 320 | Time stale states will be preserved after restart.
Value in seconds. | + | [    p2mp_enabled](## "mpls.rsvp.p2mp_enabled") | Boolean | | | | | + | [    shutdown](## "mpls.rsvp.shutdown") | Boolean | | | | Make `shutdown` key false for `no shutdown` cli. | === "YAML" @@ -39,4 +88,130 @@ # Enables the MPLS tunneling of TTL exceeded ICMP replies. ttl_exceeded_tunneling: + rsvp: + refresh: + + # Time between refreshes. + interval: + + # Neighbor refresh mechanism. + # bundled: Refresh states using message identifier lists. + # explicit: Send each message individually. + method: + + # Cryptographic authentication. + authentication: + password_indexes: + + # Password index. + - index: + + # Authentication password type. + password_type: + + # Password string. + password: + + # Use index as active password. + active_index: + + # Size of reorder window for index in the sequence. + sequence_number_window: + + # Authentication mechanism. + type: + neighbors: + + # Neighbor's interface IPv4 address. + - ip_address: + + # Neighbor's interface IPv6 address. + ipv6_address: + + # Cryptographic authentication. + authentication: # required + + # Password index. + index: + + # Authentication mechanism. + type: + + # IPv4 Access list name. + ip_access_group: + + # IPv6 access list name. + ipv6_access_group: + fast_reroute: + + # Fast reroute mode. + # link-protection: Protect against failure of the next link. + # node-protection: Protect against failure of the next node. + # none: Disable fast reroute. + mode: + + # Reversion behavior. + # Global revertive repair. + # Local revertive repair. + reversion: + + # Fast-reroute bypass configuration. + # Interval between each re-optimization attempt in seconds. + bypass_tunnel_optimization_interval: + srlg: + + # Select SRLG behavior. + enabled: + + # Apply strict SRLG constraint. + strict: + + # Local termination label to be advertised. + label_local_termination: + preemption_method: + preemption: + + # Timer value in units of seconds. + timer: + + # Enable MTU signaling. + mtu_signaling: + + # RSVP graceful restart. + graceful_restart: + role_helper: + enabled: + + # Maximum recovery timer value in seconds. + timer_recovery: + + # Maximum restart timer value in seconds. + timer_restart: + role_speaker: + enabled: + + # Maximum recovery timer value in seconds. + timer_recovery: + + # Maximum restart timer value in seconds. + timer_restart: + hello: + + # Time between hello messages in seconds. + interval: + + # Number of missed hellos after which the neighbor is expired. + multiplier: + + # RSVP hitless restart. + hitless_restart: + enabled: + + # Time stale states will be preserved after restart. + # Value in seconds. + timer_recovery: + p2mp_enabled: + + # Make `shutdown` key false for `no shutdown` cli. + shutdown: ``` diff --git a/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/mpls-and-ldp.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/mpls-and-ldp.j2 index 663ecf21f02..ab66e3ccad5 100644 --- a/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/mpls-and-ldp.j2 +++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/mpls-and-ldp.j2 @@ -23,10 +23,4 @@ {% if mpls.icmp.ttl_exceeded_tunneling is arista.avd.defined %} | ICMP TTL-Exceeded Tunneling Enabled | {{ mpls.icmp.ttl_exceeded_tunneling }} | {% endif %} - -#### MPLS and LDP Device Configuration - -```eos -{% include 'eos/mpls.j2' %} -``` {% endif %} diff --git a/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/mpls-rsvp.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/mpls-rsvp.j2 new file mode 100644 index 00000000000..57c0fadb94a --- /dev/null +++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/mpls-rsvp.j2 @@ -0,0 +1,100 @@ +{# + Copyright (c) 2023-2024 Arista Networks, Inc. + Use of this source code is governed by the Apache License 2.0 + that can be found in the LICENSE file. +#} +{# doc - mpls interfaces #} +{% if mpls.rsvp is arista.avd.defined %} + +### MPLS RSVP + +#### MPLS RSVP Summary + +| Setting | Value | +| ------- | ----- | +{% if mpls.rsvp.refresh is arista.avd.defined %} +{% if mpls.rsvp.refresh.interval is arista.avd.defined %} +| Refresh interval | {{ mpls.rsvp.refresh.interval }} | +{% endif %} +{% if mpls.rsvp.refresh.method is arista.avd.defined %} +| Refresh method | {{ mpls.rsvp.refresh.method }} | +{% endif %} +{% endif %} +{% if mpls.rsvp.hello.interval is arista.avd.defined and mpls.rsvp.hello.multiplier is arista.avd.defined %} +| Hello interval | {{ mpls.rsvp.hello.interval }} | +| Timeout multiplier | {{ mpls.rsvp.hello.multiplier }} | +{% endif %} +{% if mpls.rsvp.authentication is arista.avd.defined %} +{% set auth = mpls.rsvp.authentication %} +| Authentication type | {{ auth.type | arista.avd.default('-') }} | +| Authentication sequence-number window | {{ auth.sequence_number_window | arista.avd.default('-') }} | +| Authentication active index | {{ auth.active_index | arista.avd.default('-') }} | +{% endif %} +{% if mpls.rsvp.ip_access_group is arista.avd.defined or mpls.rsvp.ipv6_access_group is arista.avd.defined %} +| IPv4 access-group | {{ mpls.rsvp.ip_access_group | arista.avd.default('-') }} | +| IPv6 access-group | {{ mpls.rsvp.ipv6_access_group | arista.avd.default('-') }} | +{% endif %} +{% if mpls.rsvp.srlg.strict is arista.avd.defined(true) %} +| SRLG strict | enabled | +{% elif mpls.rsvp.srlg.enabled is arista.avd.defined(true) %} +| SRLG | enabled | +{% endif %} +{% if mpls.rsvp.label_local_termination is arista.avd.defined %} +| Label local-termination | {{ mpls.rsvp.label_local_termination }} | +{% endif %} +{% if mpls.rsvp.preemption_method.preemption is arista.avd.defined %} +| Preemption method | {{ mpls.rsvp.preemption_method.preemption }} | +{% if mpls.rsvp.preemption_method.timer is arista.avd.defined %} +| Preemption timer | {{ mpls.rsvp.preemption_method.timer }} | +{% endif %} +{% endif %} +{% if mpls.rsvp.mtu_signaling is arista.avd.defined %} +| MTU signaling | {{ mpls.rsvp.mtu_signaling | arista.avd.default('-') }} | +{% endif %} +{% if mpls.rsvp.fast_reroute is arista.avd.defined %} +{% set fast_reroute = mpls.rsvp.fast_reroute %} +| Fast reroute mode | {{ fast_reroute.mode | arista.avd.default('-') }} | +| Fast reroute reversion | {{ fast_reroute.reversion | arista.avd.default('-') }} | +| Fast reroute bypass tunnel optimization interval | {{ fast_reroute.bypass_tunnel_optimization_interval | arista.avd.default('-') }} | +{% endif %} +{% if mpls.rsvp.hitless_restart is arista.avd.defined %} +| Hitless restart | Active | +| Hitless restart recovery timer | {{ mpls.rsvp.hitless_restart.timer_recovery | arista.avd.default('-') }} | +{% endif %} +{% if mpls.rsvp.shutdown is arista.avd.defined(true) %} +| Shutdown | Active | +{% elif mpls.rsvp.shutdown is arista.avd.defined(false) %} +| No shutdown | Active | +{% endif %} +{% if mpls.rsvp.neighbors is arista.avd.defined %} + +##### RSVP Neighbor Authentication + +| Neighbor IP | Index | Type | +| ----------- | ----- | ---- | +{% set with_neighbor_ipv4_address = mpls.rsvp.neighbors | selectattr('ip_address', 'arista.avd.defined') | arista.avd.natural_sort('ip_address') %} +{% set with_neighbor_ipv6_address = mpls.rsvp.neighbors | selectattr('ipv6_address', 'arista.avd.defined') | arista.avd.natural_sort('ipv6_address') %} +{% set sorted_ip_addresses = with_neighbor_ipv4_address | list + with_neighbor_ipv6_address | list %} +{% for neighbor in sorted_ip_addresses %} +{% if neighbor.ip_address is arista.avd.defined %} +| {{ neighbor.ip_address }} | {{ neighbor.authentication.index | arista.avd.default('-') }} | {{ neighbor.authentication.type | arista.avd.default('-') }} | +{% elif neighbor.ipv6_address is arista.avd.defined %} +| {{ neighbor.ipv6_address }} | {{ neighbor.authentication.index | arista.avd.default('-') }} | {{ neighbor.authentication.type | arista.avd.default('-') }} | +{% endif %} +{% endfor %} +{% endif %} +{% if mpls.rsvp.graceful_restart is arista.avd.defined %} +{% set graceful_restart = mpls.rsvp.graceful_restart %} + +##### RSVP Graceful Restart + +| Role | Recovery timer | Restart timer | +| ---- | -------------- | ------------- | +{% if graceful_restart.role_helper.enabled is arista.avd.defined(true) %} +| Helper | {{ graceful_restart.role_helper.timer_recovery | arista.avd.default('-') }} | {{ graceful_restart.role_helper.timer_restart | arista.avd.default('-') }} | +{% endif %} +{% if graceful_restart.role_speaker.enabled is arista.avd.defined(true) %} +| Speaker | {{ graceful_restart.role_speaker.timer_recovery | arista.avd.default('-') }} | {{ graceful_restart.role_speaker.timer_restart | arista.avd.default('-') }} | +{% endif %} +{% endif %} +{% endif %} diff --git a/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/mpls.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/mpls.j2 index a3a1bb6601a..5b9ef049231 100644 --- a/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/mpls.j2 +++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/mpls.j2 @@ -20,11 +20,21 @@ {% set mpls_configured.port_channel_interfaces = true %} {% endif %} {% endfor %} -{% if mpls is arista.avd.defined or mpls_configured.ethernet_interfaces or mpls_configured.loopback_interfaces or mpls_configured.port_channel_interfaces %} +{% if mpls is arista.avd.defined or mpls_configured.ethernet_interfaces or mpls_configured.loopback_interfaces or mpls_configured.port_channel_interfaces or mpls.rsvp is arista.avd.defined %} ## MPLS {## MPLS and LDP #} {% include 'documentation/mpls-and-ldp.j2' %} {## MPLS Interfaces #} {% include 'documentation/mpls-interfaces.j2' %} +{## MPLS Rsvp #} +{% include 'documentation/mpls-rsvp.j2' %} +{% endif %} +{% if mpls is arista.avd.defined or mpls.rsvp is arista.avd.defined %} + +### MPLS Device Configuration + +```eos +{% include 'eos/mpls.j2' %} +``` {% endif %} diff --git a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/mpls.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/mpls.j2 index 659a1b1c88e..2729bf9292c 100644 --- a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/mpls.j2 +++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/mpls.j2 @@ -35,3 +35,136 @@ mpls icmp fragmentation-needed tunneling mpls icmp ttl-exceeded tunneling {% endif %} {% endif %} +{% if mpls.rsvp is arista.avd.defined %} +! +mpls rsvp +{% if mpls.rsvp.refresh is arista.avd.defined %} +{% if mpls.rsvp.refresh.interval is arista.avd.defined %} + refresh interval {{ mpls.rsvp.refresh.interval }} +{% endif %} +{% if mpls.rsvp.refresh.method is arista.avd.defined %} + refresh method {{ mpls.rsvp.refresh.method }} +{% endif %} +{% endif %} +{% if mpls.rsvp.hello is arista.avd.defined %} + hello interval {{ mpls.rsvp.hello.interval }} multiplier {{ mpls.rsvp.hello.multiplier }} +{% endif %} +{% if mpls.rsvp.authentication is arista.avd.defined %} +{% set auth = mpls.rsvp.authentication %} +{% if auth.type is arista.avd.defined %} + authentication type {{ auth.type }} +{% endif %} +{% if auth.sequence_number_window is arista.avd.defined %} + authentication sequence-number window {{ auth.sequence_number_window }} +{% endif %} +{% for password_index in auth.password_indexes | arista.avd.natural_sort('index') %} +{% if password_index.password_type is arista.avd.defined %} + authentication index {{ password_index.index }} password {{ password_index.password_type }} {{ password_index.password | arista.avd.hide_passwords(hide_passwords) }} +{% else %} + authentication index {{ password_index.index }} password {{ password_index.password | arista.avd.hide_passwords(hide_passwords) }} +{% endif %} +{% endfor %} +{% if auth.active_index is arista.avd.defined %} + authentication index {{ auth.active_index }} active +{% endif %} +{% endif %} +{% if mpls.rsvp.neighbors is arista.avd.defined %} +{% set with_neighbor_ipv4_address = mpls.rsvp.neighbors | selectattr('ip_address', 'arista.avd.defined') | arista.avd.natural_sort('ip_address') %} +{% set with_neighbor_ipv6_address = mpls.rsvp.neighbors | selectattr('ipv6_address', 'arista.avd.defined') | arista.avd.natural_sort('ipv6_address') %} +{% set sorted_ip_addresses = with_neighbor_ipv4_address | list + with_neighbor_ipv6_address | list %} +{% for neighbor in sorted_ip_addresses | arista.avd.default([]) %} +{% if neighbor.ip_address is arista.avd.defined %} +{% set ipaddress = neighbor.ip_address %} +{% elif neighbor.ipv6_address is arista.avd.defined %} +{% set ipaddress = neighbor.ipv6_address %} +{% endif %} +{% if neighbor.authentication.type is arista.avd.defined %} + neighbor {{ ipaddress }} authentication type {{ neighbor.authentication.type }} +{% endif %} +{% if neighbor.authentication.index is arista.avd.defined %} + neighbor {{ ipaddress }} authentication index {{ neighbor.authentication.index }} active +{% endif %} +{% endfor %} +{% endif %} +{% if mpls.rsvp.ip_access_group is arista.avd.defined %} + ip access-group {{ mpls.rsvp.ip_access_group }} +{% endif %} +{% if mpls.rsvp.ipv6_access_group is arista.avd.defined %} + ipv6 access-group {{ mpls.rsvp.ipv6_access_group }} +{% endif %} +{% if mpls.rsvp.fast_reroute is arista.avd.defined %} +{% set fast_reroute = mpls.rsvp.fast_reroute %} +{% if fast_reroute.mode is arista.avd.defined %} + fast-reroute mode {{ fast_reroute.mode }} +{% endif %} +{% if fast_reroute.reversion is arista.avd.defined %} + fast-reroute reversion {{ fast_reroute.reversion }} +{% endif %} +{% if fast_reroute.bypass_tunnel_optimization_interval is arista.avd.defined %} + fast-reroute bypass tunnel optimization interval {{ fast_reroute.bypass_tunnel_optimization_interval }} seconds +{% endif %} +{% endif %} +{% if mpls.rsvp.srlg.enabled is arista.avd.defined(true) %} +{% set srlg_cli = "srlg" %} +{% if mpls.rsvp.srlg.strict is arista.avd.defined(true) %} +{% set srlg_cli = srlg_cli ~ " strict" %} +{% endif %} + {{ srlg_cli }} +{% endif %} +{% if mpls.rsvp.label_local_termination is arista.avd.defined %} + label local-termination {{ mpls.rsvp.label_local_termination }} +{% endif %} +{% if mpls.rsvp.preemption_method.preemption is arista.avd.defined %} +{% set preemption_cli = "preemption method " ~ mpls.rsvp.preemption_method.preemption %} +{% if mpls.rsvp.preemption_method.timer is arista.avd.defined %} +{% set preemption_cli = preemption_cli ~ " timer " ~ mpls.rsvp.preemption_method.timer %} +{% endif %} + {{ preemption_cli }} +{% endif %} +{% if mpls.rsvp.mtu_signaling is arista.avd.defined %} + mtu signaling +{% endif %} +{% if mpls.rsvp.hitless_restart.enabled is arista.avd.defined(true) %} + ! + hitless-restart +{% if mpls.rsvp.hitless_restart.timer_recovery is arista.avd.defined %} + timer recovery {{ mpls.rsvp.hitless_restart.timer_recovery }} seconds +{% endif %} +{% endif %} +{% if mpls.rsvp.graceful_restart is arista.avd.defined %} +{% set graceful_restart = mpls.rsvp.graceful_restart %} +{% if graceful_restart.role_helper.enabled is arista.avd.defined(true) %} + ! + graceful-restart role helper +{% if graceful_restart.role_helper.timer_recovery is arista.avd.defined %} + timer restart maximum {{ graceful_restart.role_helper.timer_recovery }} seconds +{% endif %} +{% if graceful_restart.role_helper.timer_restart is arista.avd.defined %} + timer recovery maximum {{ graceful_restart.role_helper.timer_restart }} seconds +{% endif %} +{% endif %} +{% if graceful_restart.role_speaker.enabled is arista.avd.defined(true) %} + ! + graceful-restart role speaker +{% if graceful_restart.role_speaker.timer_recovery is arista.avd.defined %} + timer restart {{ graceful_restart.role_speaker.timer_recovery }} seconds +{% endif %} +{% if graceful_restart.role_speaker.timer_restart is arista.avd.defined %} + timer recovery {{ graceful_restart.role_speaker.timer_restart }} seconds +{% endif %} +{% endif %} +{% endif %} +{% if mpls.rsvp.p2mp_enabled is arista.avd.defined(true) %} + ! + p2mp +{% elif mpls.rsvp.p2mp_enabled is arista.avd.defined(false) %} + ! + p2mp + disabled +{% endif %} +{% if mpls.rsvp.shutdown is arista.avd.defined(true) %} + shutdown +{% elif mpls.rsvp.shutdown is arista.avd.defined(false) %} + no shutdown +{% endif %} +{% endif %} diff --git a/python-avd/pyavd/_eos_cli_config_gen/schema/eos_cli_config_gen.schema.yml b/python-avd/pyavd/_eos_cli_config_gen/schema/eos_cli_config_gen.schema.yml index 30ded4736ae..7eb37a454fe 100644 --- a/python-avd/pyavd/_eos_cli_config_gen/schema/eos_cli_config_gen.schema.yml +++ b/python-avd/pyavd/_eos_cli_config_gen/schema/eos_cli_config_gen.schema.yml @@ -8595,6 +8595,263 @@ keys: ttl_exceeded_tunneling: type: bool description: Enables the MPLS tunneling of TTL exceeded ICMP replies. + rsvp: + type: dict + keys: + refresh: + type: dict + keys: + interval: + description: Time between refreshes. + type: int + convert_types: + - str + min: 1 + max: 65535 + method: + description: 'Neighbor refresh mechanism. + + bundled: Refresh states using message identifier lists. + + explicit: Send each message individually.' + type: str + valid_values: + - bundled + - explicit + authentication: + description: Cryptographic authentication. + type: dict + keys: + password_indexes: + type: list + primary_key: index + items: + type: dict + keys: + index: + description: Password index. + type: int + convert_types: + - str + min: 1 + max: 4294967295 + password_type: + description: Authentication password type. + type: str + convert_types: + - int + valid_values: + - '0' + - '7' + - 8a + password: + type: str + required: true + description: Password string. + active_index: + description: Use index as active password. + type: int + convert_types: + - str + sequence_number_window: + description: Size of reorder window for index in the sequence. + type: int + convert_types: + - str + min: 1 + max: 255 + type: + description: Authentication mechanism. + type: str + valid_values: + - md5 + - none + neighbors: + type: list + items: + type: dict + keys: + ip_address: + description: Neighbor's interface IPv4 address. + type: str + ipv6_address: + description: Neighbor's interface IPv6 address. + type: str + authentication: + description: Cryptographic authentication. + type: dict + required: true + keys: + index: + description: Password index. + type: int + min: 1 + max: 4294967295 + type: + description: Authentication mechanism. + type: str + valid_values: + - md5 + - none + ip_access_group: + description: IPv4 Access list name. + type: str + ipv6_access_group: + description: IPv6 access list name. + type: str + fast_reroute: + type: dict + keys: + mode: + description: 'Fast reroute mode. + + link-protection: Protect against failure of the next link. + + node-protection: Protect against failure of the next node. + + none: Disable fast reroute.' + type: str + valid_values: + - link-protection + - node-protection + - none + reversion: + description: 'Reversion behavior. + + Global revertive repair. + + Local revertive repair.' + type: str + valid_values: + - global + - local + bypass_tunnel_optimization_interval: + description: 'Fast-reroute bypass configuration. + + Interval between each re-optimization attempt in seconds.' + type: int + convert_types: + - str + min: 1 + max: 65535 + srlg: + type: dict + keys: + enabled: + description: Select SRLG behavior. + type: bool + required: true + strict: + description: Apply strict SRLG constraint. + type: bool + label_local_termination: + description: Local termination label to be advertised. + type: str + valid_values: + - implicit-null + - explicit-null + preemption_method: + type: dict + keys: + preemption: + type: str + required: true + valid_values: + - hard + - soft + timer: + description: Timer value in units of seconds. + type: int + convert_types: + - str + min: 1 + max: 65535 + mtu_signaling: + description: Enable MTU signaling. + type: bool + graceful_restart: + description: RSVP graceful restart. + type: dict + keys: + role_helper: + type: dict + keys: + enabled: + type: bool + required: true + timer_recovery: + type: int + convert_types: + - str + min: 1 + max: 320 + description: Maximum recovery timer value in seconds. + timer_restart: + type: int + convert_types: + - str + min: 1 + max: 320 + description: Maximum restart timer value in seconds. + role_speaker: + type: dict + keys: + enabled: + type: bool + required: true + timer_recovery: + type: int + convert_types: + - str + min: 1 + max: 320 + description: Maximum recovery timer value in seconds. + timer_restart: + type: int + convert_types: + - str + min: 1 + max: 320 + description: Maximum restart timer value in seconds. + hello: + type: dict + keys: + interval: + description: Time between hello messages in seconds. + type: int + required: true + convert_types: + - str + min: 1 + max: 60 + multiplier: + description: Number of missed hellos after which the neighbor is expired. + type: int + required: true + convert_types: + - str + min: 1 + max: 255 + hitless_restart: + description: RSVP hitless restart. + type: dict + keys: + enabled: + type: bool + timer_recovery: + description: 'Time stale states will be preserved after restart. + + Value in seconds.' + type: int + convert_types: + - str + min: 1 + max: 320 + p2mp_enabled: + type: bool + shutdown: + type: bool + description: Make `shutdown` key false for `no shutdown` cli. name_server: documentation_options: table: ip-name-servers diff --git a/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/mpls.schema.yml b/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/mpls.schema.yml index fff1128b5c6..d1519835a1e 100644 --- a/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/mpls.schema.yml +++ b/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/mpls.schema.yml @@ -33,3 +33,256 @@ keys: ttl_exceeded_tunneling: type: bool description: Enables the MPLS tunneling of TTL exceeded ICMP replies. + rsvp: + type: dict + keys: + refresh: + type: dict + keys: + interval: + description: Time between refreshes. + type: int + convert_types: + - str + min: 1 + max: 65535 + method: + description: |- + Neighbor refresh mechanism. + bundled: Refresh states using message identifier lists. + explicit: Send each message individually. + type: str + valid_values: + - bundled + - explicit + authentication: + description: Cryptographic authentication. + type: dict + keys: + password_indexes: + type: list + primary_key: index + items: + type: dict + keys: + index: + description: Password index. + type: int + convert_types: + - str + min: 1 + max: 4294967295 + password_type: + description: Authentication password type. + type: str + convert_types: + - int + valid_values: + - '0' + - '7' + - '8a' + password: + type: str + required: true + description: Password string. + active_index: + description: Use index as active password. + type: int + convert_types: + - str + sequence_number_window: + description: Size of reorder window for index in the sequence. + type: int + convert_types: + - str + min: 1 + max: 255 + type: + description: Authentication mechanism. + type: str + valid_values: + - md5 + - none + neighbors: + type: list + items: + type: dict + keys: + ip_address: + description: Neighbor's interface IPv4 address. + type: str + ipv6_address: + description: Neighbor's interface IPv6 address. + type: str + authentication: + description: Cryptographic authentication. + type: dict + required: true + keys: + index: + description: Password index. + type: int + min: 1 + max: 4294967295 + type: + description: Authentication mechanism. + type: str + valid_values: + - md5 + - none + ip_access_group: + description: IPv4 Access list name. + type: str + ipv6_access_group: + description: IPv6 access list name. + type: str + fast_reroute: + type: dict + keys: + mode: + description: |- + Fast reroute mode. + link-protection: Protect against failure of the next link. + node-protection: Protect against failure of the next node. + none: Disable fast reroute. + type: str + valid_values: + - link-protection + - node-protection + - none + reversion: + description: |- + Reversion behavior. + Global revertive repair. + Local revertive repair. + type: str + valid_values: + - global + - local + bypass_tunnel_optimization_interval: + description: |- + Fast-reroute bypass configuration. + Interval between each re-optimization attempt in seconds. + type: int + convert_types: + - str + min: 1 + max: 65535 + srlg: + type: dict + keys: + enabled: + description: Select SRLG behavior. + type: bool + required: true + strict: + description: Apply strict SRLG constraint. + type: bool + label_local_termination: + description: Local termination label to be advertised. + type: str + valid_values: + - implicit-null + - explicit-null + preemption_method: + type: dict + keys: + preemption: + type: str + required: true + valid_values: + - hard + - soft + timer: + description: Timer value in units of seconds. + type: int + convert_types: + - str + min: 1 + max: 65535 + mtu_signaling: + description: Enable MTU signaling. + type: bool + graceful_restart: + description: RSVP graceful restart. + type: dict + keys: + role_helper: + type: dict + keys: + enabled: + type: bool + required: true + timer_recovery: + type: int + convert_types: + - str + min: 1 + max: 320 + description: Maximum recovery timer value in seconds. + timer_restart: + type: int + convert_types: + - str + min: 1 + max: 320 + description: Maximum restart timer value in seconds. + role_speaker: + type: dict + keys: + enabled: + type: bool + required: true + timer_recovery: + type: int + convert_types: + - str + min: 1 + max: 320 + description: Maximum recovery timer value in seconds. + timer_restart: + type: int + convert_types: + - str + min: 1 + max: 320 + description: Maximum restart timer value in seconds. + hello: + type: dict + keys: + interval: + description: Time between hello messages in seconds. + type: int + required: true + convert_types: + - str + min: 1 + max: 60 + multiplier: + description: Number of missed hellos after which the neighbor is expired. + type: int + required: true + convert_types: + - str + min: 1 + max: 255 + hitless_restart: + description: RSVP hitless restart. + type: dict + keys: + enabled: + type: bool + timer_recovery: + description: |- + Time stale states will be preserved after restart. + Value in seconds. + type: int + convert_types: + - str + min: 1 + max: 320 + p2mp_enabled: + type: bool + shutdown: + type: bool + description: Make `shutdown` key false for `no shutdown` cli.