diff --git a/ansible_collections/arista/avd/examples/campus-fabric/documentation/devices/SPINE1.md b/ansible_collections/arista/avd/examples/campus-fabric/documentation/devices/SPINE1.md index 1fcac74e690..6f79d4ff3de 100644 --- a/ansible_collections/arista/avd/examples/campus-fabric/documentation/devices/SPINE1.md +++ b/ansible_collections/arista/avd/examples/campus-fabric/documentation/devices/SPINE1.md @@ -658,10 +658,10 @@ ip route vrf MGMT 0.0.0.0/0 172.16.100.1 router ospf 100 router-id 172.16.1.1 passive-interface default - no passive-interface Vlan4093 no passive-interface Ethernet52/1 - max-lsa 12000 + no passive-interface Vlan4093 redistribute connected + max-lsa 12000 ``` ## Multicast diff --git a/ansible_collections/arista/avd/examples/campus-fabric/documentation/devices/SPINE2.md b/ansible_collections/arista/avd/examples/campus-fabric/documentation/devices/SPINE2.md index b20b61ec27c..fa81bef0c94 100644 --- a/ansible_collections/arista/avd/examples/campus-fabric/documentation/devices/SPINE2.md +++ b/ansible_collections/arista/avd/examples/campus-fabric/documentation/devices/SPINE2.md @@ -658,10 +658,10 @@ ip route vrf MGMT 0.0.0.0/0 172.16.100.1 router ospf 100 router-id 172.16.1.2 passive-interface default - no passive-interface Vlan4093 no passive-interface Ethernet52/1 - max-lsa 12000 + no passive-interface Vlan4093 redistribute connected + max-lsa 12000 ``` ## Multicast diff --git a/ansible_collections/arista/avd/examples/campus-fabric/intended/configs/SPINE1.cfg b/ansible_collections/arista/avd/examples/campus-fabric/intended/configs/SPINE1.cfg index 7dd6c6d9e99..201f15cccdf 100644 --- a/ansible_collections/arista/avd/examples/campus-fabric/intended/configs/SPINE1.cfg +++ b/ansible_collections/arista/avd/examples/campus-fabric/intended/configs/SPINE1.cfg @@ -248,9 +248,9 @@ ntp server vrf MGMT time.google.com prefer router ospf 100 router-id 172.16.1.1 passive-interface default - no passive-interface Vlan4093 no passive-interface Ethernet52/1 - max-lsa 12000 + no passive-interface Vlan4093 redistribute connected + max-lsa 12000 ! end diff --git a/ansible_collections/arista/avd/examples/campus-fabric/intended/configs/SPINE2.cfg b/ansible_collections/arista/avd/examples/campus-fabric/intended/configs/SPINE2.cfg index ef5daac52e1..0442c756a55 100644 --- a/ansible_collections/arista/avd/examples/campus-fabric/intended/configs/SPINE2.cfg +++ b/ansible_collections/arista/avd/examples/campus-fabric/intended/configs/SPINE2.cfg @@ -248,9 +248,9 @@ ntp server vrf MGMT time.google.com prefer router ospf 100 router-id 172.16.1.2 passive-interface default - no passive-interface Vlan4093 no passive-interface Ethernet52/1 - max-lsa 12000 + no passive-interface Vlan4093 redistribute connected + max-lsa 12000 ! end diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/ethernet-interfaces.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/ethernet-interfaces.md index 001d0487ce8..14982956c7a 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/ethernet-interfaces.md +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/ethernet-interfaces.md @@ -965,14 +965,23 @@ interface Ethernet58 interface Ethernet60 description IP NAT Testing switchport + ip nat destination static 1.0.0.1 2.0.0.1 + ip nat destination static 1.0.0.2 22 2.0.0.2 + ip nat destination static 1.0.0.3 22 2.0.0.3 23 + ip nat destination static 1.0.0.4 22 2.0.0.4 23 protocol udp + ip nat destination static 1.0.0.7 access-list ACL21 2.0.0.7 ip nat source static 3.0.0.1 4.0.0.1 ip nat source static 3.0.0.2 22 4.0.0.2 ip nat source static 3.0.0.3 22 4.0.0.3 23 ip nat source static 3.0.0.4 22 4.0.0.4 23 protocol udp - ip nat source static 3.0.0.5 22 4.0.0.5 23 protocol tcp group 1 - ip nat source static 3.0.0.6 22 4.0.0.6 23 protocol tcp group 2 comment Comment Test ip nat source static 3.0.0.7 access-list ACL21 4.0.0.7 ip nat source ingress static 3.0.0.8 4.0.0.8 + ip nat destination egress static 239.0.0.1 239.0.0.2 + ip nat source static 3.0.0.5 22 4.0.0.5 23 protocol tcp group 1 + ip nat destination static 1.0.0.5 22 2.0.0.5 23 protocol tcp group 1 + ip nat source static 3.0.0.6 22 4.0.0.6 23 protocol tcp group 2 comment Comment Test + ip nat destination static 1.0.0.6 22 2.0.0.6 23 protocol tcp group 2 comment Comment Test + ip nat destination dynamic access-list ACL1 pool POOL1 ip nat source dynamic access-list ACL11 pool POOL11 ip nat source dynamic access-list ACL12 pool POOL11 comment POOL11 shared with ACL11/12 ip nat source dynamic access-list ACL13 pool POOL13 priority 10 @@ -982,15 +991,6 @@ interface Ethernet60 ip nat source dynamic access-list ACL17 overload priority 10 comment Priority_10 ip nat source dynamic access-list ACL18 pool POOL18 address-only priority 10 comment Priority_10 ip nat source dynamic access-list ACL19 pool POOL19 full-cone priority 10 comment Priority_10 - ip nat destination static 1.0.0.1 2.0.0.1 - ip nat destination static 1.0.0.2 22 2.0.0.2 - ip nat destination static 1.0.0.3 22 2.0.0.3 23 - ip nat destination static 1.0.0.4 22 2.0.0.4 23 protocol udp - ip nat destination static 1.0.0.5 22 2.0.0.5 23 protocol tcp group 1 - ip nat destination static 1.0.0.6 22 2.0.0.6 23 protocol tcp group 2 comment Comment Test - ip nat destination static 1.0.0.7 access-list ACL21 2.0.0.7 - ip nat destination egress static 239.0.0.1 239.0.0.2 - ip nat destination dynamic access-list ACL1 pool POOL1 ip nat destination dynamic access-list ACL2 pool POOL1 comment POOL1 shared with ACL1/2 ip nat destination dynamic access-list ACL3 pool POOL3 priority 10 ip nat destination dynamic access-list ACL4 pool POOL4 priority 1 comment Priority low end diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/ip-nat.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/ip-nat.md index 8ba53e1cd70..ab991667fe9 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/ip-nat.md +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/ip-nat.md @@ -163,14 +163,23 @@ ip nat kernel buffer size 64 ip nat profile NAT-PROFILE-NO-VRF-1 ! ip nat profile NAT-PROFILE-NO-VRF-2 + ip nat destination static 1.0.0.1 2.0.0.1 + ip nat destination static 1.0.0.2 22 2.0.0.2 + ip nat destination static 1.0.0.2 23 2.0.0.3 23 + ip nat destination static 1.0.0.4 22 2.0.0.4 23 protocol udp + ip nat destination static 1.0.0.7 access-list ACL21 2.0.0.7 ip nat source static 3.0.0.1 4.0.0.1 ip nat source static 3.0.0.2 22 4.0.0.2 ip nat source static 3.0.0.3 22 4.0.0.3 23 ip nat source static 3.0.0.4 22 4.0.0.4 23 protocol udp - ip nat source static 3.0.0.5 22 4.0.0.5 23 protocol tcp group 1 - ip nat source static 3.0.0.6 22 4.0.0.6 23 protocol tcp group 2 comment Comment Test ip nat source static 3.0.0.7 access-list ACL21 4.0.0.7 ip nat source ingress static 3.0.0.8 4.0.0.8 + ip nat destination egress static 239.0.0.1 239.0.0.2 + ip nat source static 3.0.0.5 22 4.0.0.5 23 protocol tcp group 1 + ip nat destination static 1.0.0.5 22 2.0.0.5 23 protocol tcp group 1 + ip nat source static 3.0.0.6 22 4.0.0.6 23 protocol tcp group 2 comment Comment Test + ip nat destination static 1.0.0.6 22 2.0.0.6 23 protocol tcp group 2 comment Comment Test + ip nat destination dynamic access-list ACL1 pool POOL1 ip nat source dynamic access-list ACL11 pool POOL11 ip nat source dynamic access-list ACL12 pool POOL11 comment POOL11 shared with ACL11/12 ip nat source dynamic access-list ACL13 pool POOL13 priority 10 @@ -180,15 +189,6 @@ ip nat profile NAT-PROFILE-NO-VRF-2 ip nat source dynamic access-list ACL17 overload priority 10 comment Priority_10 ip nat source dynamic access-list ACL18 pool POOL18 address-only priority 10 comment Priority_10 ip nat source dynamic access-list ACL19 pool POOL19 full-cone priority 10 comment Priority_10 - ip nat destination static 1.0.0.1 2.0.0.1 - ip nat destination static 1.0.0.2 22 2.0.0.2 - ip nat destination static 1.0.0.2 23 2.0.0.3 23 - ip nat destination static 1.0.0.4 22 2.0.0.4 23 protocol udp - ip nat destination static 1.0.0.5 22 2.0.0.5 23 protocol tcp group 1 - ip nat destination static 1.0.0.6 22 2.0.0.6 23 protocol tcp group 2 comment Comment Test - ip nat destination static 1.0.0.7 access-list ACL21 2.0.0.7 - ip nat destination egress static 239.0.0.1 239.0.0.2 - ip nat destination dynamic access-list ACL1 pool POOL1 ip nat destination dynamic access-list ACL2 pool POOL1 comment POOL1 shared with ACL1/2 ip nat destination dynamic access-list ACL3 pool POOL3 priority 10 ip nat destination dynamic access-list ACL4 pool POOL4 priority 1 comment Priority low end diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/port-channel-interfaces.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/port-channel-interfaces.md index 1e66a628753..3138e494b1a 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/port-channel-interfaces.md +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/port-channel-interfaces.md @@ -783,10 +783,10 @@ interface Port-Channel122 interface Port-Channel130 description IP NAT Testing switchport - ip nat source static 3.0.0.1 4.0.0.1 - ip nat source dynamic access-list ACL2 pool POOL2 ip nat destination static 1.0.0.1 2.0.0.1 + ip nat source static 3.0.0.1 4.0.0.1 ip nat destination dynamic access-list ACL1 pool POOL1 + ip nat source dynamic access-list ACL2 pool POOL2 ! interface Port-Channel131 description dot1q-tunnel mode diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-ospf.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-ospf.md index 12e552f8c8c..e148f8768a8 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-ospf.md +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-ospf.md @@ -232,6 +232,9 @@ interface Vlan24 ! router ospf 100 router-id 192.168.255.3 + auto-cost reference-bandwidth 100 + bfd default + bfd adjacency state any distance ospf intra-area 50 distance ospf external 60 distance ospf inter-area 70 @@ -239,28 +242,25 @@ router ospf 100 no passive-interface Ethernet1 no passive-interface Ethernet2 no passive-interface Vlan4093 + redistribute bgp + redistribute connected + redistribute static + distribute-list route-map RM-OSPF-DIST-IN in network 198.51.100.0/24 area 0.0.0.1 network 203.0.113.0/24 area 0.0.0.2 - bfd default - bfd adjacency state any - distribute-list route-map RM-OSPF-DIST-IN in max-lsa 12000 - default-information originate - redistribute static - redistribute connected - redistribute bgp - auto-cost reference-bandwidth 100 maximum-paths 10 + default-information originate mpls ldp sync default ! router ospf 101 vrf CUSTOMER01 - log-adjacency-changes detail router-id 1.0.1.1 passive-interface default no passive-interface Ethernet2.101 + log-adjacency-changes detail + timers spf delay initial 100 200 300 timers lsa rx min interval 100 timers lsa tx delay initial 100 200 300 - timers spf delay initial 100 200 300 summary-address 10.0.0.0/8 summary-address 20.0.0.0/8 tag 10 summary-address 30.0.0.0/8 attribute-map RM-OSPF_SUMMARY @@ -269,28 +269,28 @@ router ospf 101 vrf CUSTOMER01 ! router ospf 200 vrf ospf_zone - log-adjacency-changes detail router-id 192.168.254.1 + redistribute bgp include leaked route-map rm-ospf-bgp + redistribute connected include leaked route-map rm-ospf-connected + redistribute static include leaked route-map rm-ospf-static area 0.0.0.2 filter 1.1.1.0/24 area 0.0.0.2 filter 2.2.2.0/24 area 3 filter prefix-list PL-OSPF-FILTERING max-lsa 5 + log-adjacency-changes detail timers lsa rx min interval 100 default-information originate always metric 100 metric-type 1 - redistribute static include leaked route-map rm-ospf-static - redistribute connected include leaked route-map rm-ospf-connected - redistribute bgp include leaked route-map rm-ospf-bgp ! router ospf 300 - redistribute static route-map rm-ospf-static - redistribute connected route-map rm-ospf-connected redistribute bgp route-map rm-ospf-bgp + redistribute connected route-map rm-ospf-connected + redistribute static route-map rm-ospf-static max-metric router-lsa ! router ospf 400 - redistribute static include leaked - redistribute connected include leaked redistribute bgp include leaked + redistribute connected include leaked + redistribute static include leaked max-metric router-lsa external-lsa include-stub on-startup wait-for-bgp summary-lsa ! router ospf 500 diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/vlan-interfaces.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/vlan-interfaces.md index 92afd1ef134..b26ef8eff17 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/vlan-interfaces.md +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/vlan-interfaces.md @@ -283,10 +283,10 @@ interface Vlan44 ! interface Vlan50 description IP NAT Testing - ip nat source static 3.0.0.1 4.0.0.1 - ip nat source dynamic access-list ACL2 pool POOL2 ip nat destination static 1.0.0.1 2.0.0.1 + ip nat source static 3.0.0.1 4.0.0.1 ip nat destination dynamic access-list ACL1 pool POOL1 + ip nat source dynamic access-list ACL2 pool POOL2 isis authentication mode text rx-disabled level-2 isis authentication key 0 password level-2 ! diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/ethernet-interfaces.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/ethernet-interfaces.cfg index fb54bc7fa1b..0a19e1a927b 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/ethernet-interfaces.cfg +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/ethernet-interfaces.cfg @@ -581,14 +581,23 @@ interface Ethernet58 interface Ethernet60 description IP NAT Testing switchport + ip nat destination static 1.0.0.1 2.0.0.1 + ip nat destination static 1.0.0.2 22 2.0.0.2 + ip nat destination static 1.0.0.3 22 2.0.0.3 23 + ip nat destination static 1.0.0.4 22 2.0.0.4 23 protocol udp + ip nat destination static 1.0.0.7 access-list ACL21 2.0.0.7 ip nat source static 3.0.0.1 4.0.0.1 ip nat source static 3.0.0.2 22 4.0.0.2 ip nat source static 3.0.0.3 22 4.0.0.3 23 ip nat source static 3.0.0.4 22 4.0.0.4 23 protocol udp - ip nat source static 3.0.0.5 22 4.0.0.5 23 protocol tcp group 1 - ip nat source static 3.0.0.6 22 4.0.0.6 23 protocol tcp group 2 comment Comment Test ip nat source static 3.0.0.7 access-list ACL21 4.0.0.7 ip nat source ingress static 3.0.0.8 4.0.0.8 + ip nat destination egress static 239.0.0.1 239.0.0.2 + ip nat source static 3.0.0.5 22 4.0.0.5 23 protocol tcp group 1 + ip nat destination static 1.0.0.5 22 2.0.0.5 23 protocol tcp group 1 + ip nat source static 3.0.0.6 22 4.0.0.6 23 protocol tcp group 2 comment Comment Test + ip nat destination static 1.0.0.6 22 2.0.0.6 23 protocol tcp group 2 comment Comment Test + ip nat destination dynamic access-list ACL1 pool POOL1 ip nat source dynamic access-list ACL11 pool POOL11 ip nat source dynamic access-list ACL12 pool POOL11 comment POOL11 shared with ACL11/12 ip nat source dynamic access-list ACL13 pool POOL13 priority 10 @@ -598,15 +607,6 @@ interface Ethernet60 ip nat source dynamic access-list ACL17 overload priority 10 comment Priority_10 ip nat source dynamic access-list ACL18 pool POOL18 address-only priority 10 comment Priority_10 ip nat source dynamic access-list ACL19 pool POOL19 full-cone priority 10 comment Priority_10 - ip nat destination static 1.0.0.1 2.0.0.1 - ip nat destination static 1.0.0.2 22 2.0.0.2 - ip nat destination static 1.0.0.3 22 2.0.0.3 23 - ip nat destination static 1.0.0.4 22 2.0.0.4 23 protocol udp - ip nat destination static 1.0.0.5 22 2.0.0.5 23 protocol tcp group 1 - ip nat destination static 1.0.0.6 22 2.0.0.6 23 protocol tcp group 2 comment Comment Test - ip nat destination static 1.0.0.7 access-list ACL21 2.0.0.7 - ip nat destination egress static 239.0.0.1 239.0.0.2 - ip nat destination dynamic access-list ACL1 pool POOL1 ip nat destination dynamic access-list ACL2 pool POOL1 comment POOL1 shared with ACL1/2 ip nat destination dynamic access-list ACL3 pool POOL3 priority 10 ip nat destination dynamic access-list ACL4 pool POOL4 priority 1 comment Priority low end diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/ip-nat.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/ip-nat.cfg index 50492f74d94..bddd1f544e5 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/ip-nat.cfg +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/ip-nat.cfg @@ -14,14 +14,23 @@ ip nat kernel buffer size 64 ip nat profile NAT-PROFILE-NO-VRF-1 ! ip nat profile NAT-PROFILE-NO-VRF-2 + ip nat destination static 1.0.0.1 2.0.0.1 + ip nat destination static 1.0.0.2 22 2.0.0.2 + ip nat destination static 1.0.0.2 23 2.0.0.3 23 + ip nat destination static 1.0.0.4 22 2.0.0.4 23 protocol udp + ip nat destination static 1.0.0.7 access-list ACL21 2.0.0.7 ip nat source static 3.0.0.1 4.0.0.1 ip nat source static 3.0.0.2 22 4.0.0.2 ip nat source static 3.0.0.3 22 4.0.0.3 23 ip nat source static 3.0.0.4 22 4.0.0.4 23 protocol udp - ip nat source static 3.0.0.5 22 4.0.0.5 23 protocol tcp group 1 - ip nat source static 3.0.0.6 22 4.0.0.6 23 protocol tcp group 2 comment Comment Test ip nat source static 3.0.0.7 access-list ACL21 4.0.0.7 ip nat source ingress static 3.0.0.8 4.0.0.8 + ip nat destination egress static 239.0.0.1 239.0.0.2 + ip nat source static 3.0.0.5 22 4.0.0.5 23 protocol tcp group 1 + ip nat destination static 1.0.0.5 22 2.0.0.5 23 protocol tcp group 1 + ip nat source static 3.0.0.6 22 4.0.0.6 23 protocol tcp group 2 comment Comment Test + ip nat destination static 1.0.0.6 22 2.0.0.6 23 protocol tcp group 2 comment Comment Test + ip nat destination dynamic access-list ACL1 pool POOL1 ip nat source dynamic access-list ACL11 pool POOL11 ip nat source dynamic access-list ACL12 pool POOL11 comment POOL11 shared with ACL11/12 ip nat source dynamic access-list ACL13 pool POOL13 priority 10 @@ -31,15 +40,6 @@ ip nat profile NAT-PROFILE-NO-VRF-2 ip nat source dynamic access-list ACL17 overload priority 10 comment Priority_10 ip nat source dynamic access-list ACL18 pool POOL18 address-only priority 10 comment Priority_10 ip nat source dynamic access-list ACL19 pool POOL19 full-cone priority 10 comment Priority_10 - ip nat destination static 1.0.0.1 2.0.0.1 - ip nat destination static 1.0.0.2 22 2.0.0.2 - ip nat destination static 1.0.0.2 23 2.0.0.3 23 - ip nat destination static 1.0.0.4 22 2.0.0.4 23 protocol udp - ip nat destination static 1.0.0.5 22 2.0.0.5 23 protocol tcp group 1 - ip nat destination static 1.0.0.6 22 2.0.0.6 23 protocol tcp group 2 comment Comment Test - ip nat destination static 1.0.0.7 access-list ACL21 2.0.0.7 - ip nat destination egress static 239.0.0.1 239.0.0.2 - ip nat destination dynamic access-list ACL1 pool POOL1 ip nat destination dynamic access-list ACL2 pool POOL1 comment POOL1 shared with ACL1/2 ip nat destination dynamic access-list ACL3 pool POOL3 priority 10 ip nat destination dynamic access-list ACL4 pool POOL4 priority 1 comment Priority low end diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/port-channel-interfaces.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/port-channel-interfaces.cfg index 6f046689c8e..d3b8505ead3 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/port-channel-interfaces.cfg +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/port-channel-interfaces.cfg @@ -403,10 +403,10 @@ interface Port-Channel122 interface Port-Channel130 description IP NAT Testing switchport - ip nat source static 3.0.0.1 4.0.0.1 - ip nat source dynamic access-list ACL2 pool POOL2 ip nat destination static 1.0.0.1 2.0.0.1 + ip nat source static 3.0.0.1 4.0.0.1 ip nat destination dynamic access-list ACL1 pool POOL1 + ip nat source dynamic access-list ACL2 pool POOL2 ! interface Port-Channel131 description dot1q-tunnel mode diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-ospf.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-ospf.cfg index 56a141b3eee..c86e0218a5c 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-ospf.cfg +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-ospf.cfg @@ -32,6 +32,9 @@ interface Vlan24 ! router ospf 100 router-id 192.168.255.3 + auto-cost reference-bandwidth 100 + bfd default + bfd adjacency state any distance ospf intra-area 50 distance ospf external 60 distance ospf inter-area 70 @@ -39,28 +42,25 @@ router ospf 100 no passive-interface Ethernet1 no passive-interface Ethernet2 no passive-interface Vlan4093 + redistribute bgp + redistribute connected + redistribute static + distribute-list route-map RM-OSPF-DIST-IN in network 198.51.100.0/24 area 0.0.0.1 network 203.0.113.0/24 area 0.0.0.2 - bfd default - bfd adjacency state any - distribute-list route-map RM-OSPF-DIST-IN in max-lsa 12000 - default-information originate - redistribute static - redistribute connected - redistribute bgp - auto-cost reference-bandwidth 100 maximum-paths 10 + default-information originate mpls ldp sync default ! router ospf 101 vrf CUSTOMER01 - log-adjacency-changes detail router-id 1.0.1.1 passive-interface default no passive-interface Ethernet2.101 + log-adjacency-changes detail + timers spf delay initial 100 200 300 timers lsa rx min interval 100 timers lsa tx delay initial 100 200 300 - timers spf delay initial 100 200 300 summary-address 10.0.0.0/8 summary-address 20.0.0.0/8 tag 10 summary-address 30.0.0.0/8 attribute-map RM-OSPF_SUMMARY @@ -69,28 +69,28 @@ router ospf 101 vrf CUSTOMER01 ! router ospf 200 vrf ospf_zone - log-adjacency-changes detail router-id 192.168.254.1 + redistribute bgp include leaked route-map rm-ospf-bgp + redistribute connected include leaked route-map rm-ospf-connected + redistribute static include leaked route-map rm-ospf-static area 0.0.0.2 filter 1.1.1.0/24 area 0.0.0.2 filter 2.2.2.0/24 area 3 filter prefix-list PL-OSPF-FILTERING max-lsa 5 + log-adjacency-changes detail timers lsa rx min interval 100 default-information originate always metric 100 metric-type 1 - redistribute static include leaked route-map rm-ospf-static - redistribute connected include leaked route-map rm-ospf-connected - redistribute bgp include leaked route-map rm-ospf-bgp ! router ospf 300 - redistribute static route-map rm-ospf-static - redistribute connected route-map rm-ospf-connected redistribute bgp route-map rm-ospf-bgp + redistribute connected route-map rm-ospf-connected + redistribute static route-map rm-ospf-static max-metric router-lsa ! router ospf 400 - redistribute static include leaked - redistribute connected include leaked redistribute bgp include leaked + redistribute connected include leaked + redistribute static include leaked max-metric router-lsa external-lsa include-stub on-startup wait-for-bgp summary-lsa ! router ospf 500 diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/vlan-interfaces.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/vlan-interfaces.cfg index 11941e36150..8773cc2f395 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/vlan-interfaces.cfg +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/vlan-interfaces.cfg @@ -72,10 +72,10 @@ interface Vlan44 ! interface Vlan50 description IP NAT Testing - ip nat source static 3.0.0.1 4.0.0.1 - ip nat source dynamic access-list ACL2 pool POOL2 ip nat destination static 1.0.0.1 2.0.0.1 + ip nat source static 3.0.0.1 4.0.0.1 ip nat destination dynamic access-list ACL1 pool POOL1 + ip nat source dynamic access-list ACL2 pool POOL2 isis authentication mode text rx-disabled level-2 isis authentication key 0 password level-2 ! diff --git a/ansible_collections/arista/avd/molecule/eos_designs-l2ls/documentation/devices/OSPF-SPINE1.md b/ansible_collections/arista/avd/molecule/eos_designs-l2ls/documentation/devices/OSPF-SPINE1.md index 70763a9a4d8..449d14b737e 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-l2ls/documentation/devices/OSPF-SPINE1.md +++ b/ansible_collections/arista/avd/molecule/eos_designs-l2ls/documentation/devices/OSPF-SPINE1.md @@ -413,10 +413,10 @@ ip route vrf MGMT 0.0.0.0/0 172.31.0.1 router ospf 100 router-id 192.168.255.1 passive-interface default - no passive-interface Vlan4094 no passive-interface Ethernet5 - max-lsa 12000 + no passive-interface Vlan4094 redistribute connected + max-lsa 12000 ``` ## Multicast diff --git a/ansible_collections/arista/avd/molecule/eos_designs-l2ls/documentation/devices/OSPF-SPINE2.md b/ansible_collections/arista/avd/molecule/eos_designs-l2ls/documentation/devices/OSPF-SPINE2.md index 15302a68838..9195ffed613 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-l2ls/documentation/devices/OSPF-SPINE2.md +++ b/ansible_collections/arista/avd/molecule/eos_designs-l2ls/documentation/devices/OSPF-SPINE2.md @@ -416,11 +416,11 @@ ip route 10.0.0.0/8 10.1.100.100 router ospf 100 router-id 192.168.255.2 passive-interface default - no passive-interface Vlan4094 no passive-interface Ethernet5 - max-lsa 12000 - redistribute static + no passive-interface Vlan4094 redistribute connected + redistribute static + max-lsa 12000 ``` ## Multicast diff --git a/ansible_collections/arista/avd/molecule/eos_designs-l2ls/intended/configs/OSPF-SPINE1.cfg b/ansible_collections/arista/avd/molecule/eos_designs-l2ls/intended/configs/OSPF-SPINE1.cfg index 080faeaeb92..d0e47ebd0b6 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-l2ls/intended/configs/OSPF-SPINE1.cfg +++ b/ansible_collections/arista/avd/molecule/eos_designs-l2ls/intended/configs/OSPF-SPINE1.cfg @@ -129,9 +129,9 @@ ip route vrf MGMT 0.0.0.0/0 172.31.0.1 router ospf 100 router-id 192.168.255.1 passive-interface default - no passive-interface Vlan4094 no passive-interface Ethernet5 - max-lsa 12000 + no passive-interface Vlan4094 redistribute connected + max-lsa 12000 ! end diff --git a/ansible_collections/arista/avd/molecule/eos_designs-l2ls/intended/configs/OSPF-SPINE2.cfg b/ansible_collections/arista/avd/molecule/eos_designs-l2ls/intended/configs/OSPF-SPINE2.cfg index 4ed325e81e8..0d3424a36eb 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-l2ls/intended/configs/OSPF-SPINE2.cfg +++ b/ansible_collections/arista/avd/molecule/eos_designs-l2ls/intended/configs/OSPF-SPINE2.cfg @@ -130,10 +130,10 @@ ip route 10.0.0.0/8 10.1.100.100 router ospf 100 router-id 192.168.255.2 passive-interface default - no passive-interface Vlan4094 no passive-interface Ethernet5 - max-lsa 12000 - redistribute static + no passive-interface Vlan4094 redistribute connected + redistribute static + max-lsa 12000 ! end 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 7fcdfde3214..9d93112e9aa 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 @@ -535,8 +535,8 @@ router ospf 19 vrf TENANT_B_INTRA router-id 10.123.1.0 passive-interface default no passive-interface Ethernet6.10 - max-lsa 10000 redistribute bgp + max-lsa 10000 ``` ### Router ISIS 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 9e37b8075d4..cab766edcfe 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 @@ -607,8 +607,8 @@ router ospf 99 vrf TENANT_B_WAN router-id 192.168.48.4 passive-interface default no passive-interface Ethernet6.100 - max-lsa 10000 redistribute bgp + max-lsa 10000 ``` ### Router ISIS diff --git a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/intended/configs/SITE1-LER1.cfg b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/intended/configs/SITE1-LER1.cfg index 16fbbf4a30c..486d7ad976b 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/intended/configs/SITE1-LER1.cfg +++ b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/intended/configs/SITE1-LER1.cfg @@ -324,8 +324,8 @@ router ospf 19 vrf TENANT_B_INTRA router-id 10.123.1.0 passive-interface default no passive-interface Ethernet6.10 - max-lsa 10000 redistribute bgp + max-lsa 10000 ! management security password encryption-key common diff --git a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/intended/configs/SITE2-LER1.cfg b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/intended/configs/SITE2-LER1.cfg index ad7adb7183c..58a4a688fce 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/intended/configs/SITE2-LER1.cfg +++ b/ansible_collections/arista/avd/molecule/eos_designs-mpls-isis-sr-ldp/intended/configs/SITE2-LER1.cfg @@ -396,8 +396,8 @@ router ospf 99 vrf TENANT_B_WAN router-id 192.168.48.4 passive-interface default no passive-interface Ethernet6.100 - max-lsa 10000 redistribute bgp + max-lsa 10000 ! management security password encryption-key common diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/DC1-BL1A.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/DC1-BL1A.cfg index 76ae5cdf39a..e196fff3dff 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/DC1-BL1A.cfg +++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/DC1-BL1A.cfg @@ -473,8 +473,8 @@ router ospf 14 vrf Tenant_A_WAN_Zone passive-interface default no passive-interface Ethernet7 no passive-interface Vlan150 - max-lsa 15000 - redistribute connected route-map RM_TEST redistribute bgp + redistribute connected route-map RM_TEST + max-lsa 15000 ! end diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/DC1-BL1B.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/DC1-BL1B.cfg index abb9794cc4d..6524e5a3ffd 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/DC1-BL1B.cfg +++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/DC1-BL1B.cfg @@ -450,8 +450,8 @@ router ospf 14 vrf Tenant_A_WAN_Zone router-id 192.168.255.15 passive-interface default no passive-interface Vlan150 - max-lsa 15000 - redistribute connected route-map RM_TEST redistribute bgp + redistribute connected route-map RM_TEST + max-lsa 15000 ! end diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/SVI_PROFILE_NODE_1.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/SVI_PROFILE_NODE_1.cfg index 0a29c05ba26..2be05008aa5 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/SVI_PROFILE_NODE_1.cfg +++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/SVI_PROFILE_NODE_1.cfg @@ -391,7 +391,7 @@ router ospf 1 vrf svi_profile_tests_vrf no passive-interface Vlan510 no passive-interface Vlan511 no passive-interface Vlan512 - max-lsa 15000 redistribute bgp + max-lsa 15000 ! end diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/SVI_PROFILE_NODE_2.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/SVI_PROFILE_NODE_2.cfg index 4e998e06c39..dc690d217b7 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/SVI_PROFILE_NODE_2.cfg +++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/SVI_PROFILE_NODE_2.cfg @@ -312,7 +312,7 @@ router ospf 1 vrf svi_profile_tests_vrf no passive-interface Vlan510 no passive-interface Vlan511 no passive-interface Vlan512 - max-lsa 15000 redistribute bgp + max-lsa 15000 ! end diff --git a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/core-2-ospf-ldp.cfg b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/core-2-ospf-ldp.cfg index 3258c48de8c..f9c9b3ad4f9 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/core-2-ospf-ldp.cfg +++ b/ansible_collections/arista/avd/molecule/eos_designs_unit_tests/intended/configs/core-2-ospf-ldp.cfg @@ -214,6 +214,7 @@ mpls ldp ! router ospf 101 router-id 10.0.0.2 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 @@ -225,7 +226,6 @@ router ospf 101 no passive-interface Port-Channel12 no passive-interface Port-Channel14 no passive-interface Port-Channel16 - bfd default max-lsa 12000 ! end diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-BL1A.md b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-BL1A.md index 736fb3f646c..cd56d592ca4 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-BL1A.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-BL1A.md @@ -556,13 +556,13 @@ ip route vrf MGMT 0.0.0.0/0 192.168.200.5 ! router ospf 101 router-id 192.168.255.10 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 no passive-interface Ethernet3 no passive-interface Ethernet4 no passive-interface Vlan4093 - bfd default max-lsa 12000 ``` diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-BL1B.md b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-BL1B.md index e0c945f11e1..73d2b59149e 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-BL1B.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-BL1B.md @@ -556,13 +556,13 @@ ip route vrf MGMT 0.0.0.0/0 192.168.200.5 ! router ospf 101 router-id 192.168.255.11 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 no passive-interface Ethernet3 no passive-interface Ethernet4 no passive-interface Vlan4093 - bfd default max-lsa 12000 ``` diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-LEAF1A.md b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-LEAF1A.md index 8b1cacb7fd0..6c2ccd0cbe9 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-LEAF1A.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-LEAF1A.md @@ -425,12 +425,12 @@ ip route vrf MGMT 0.0.0.0/0 192.168.200.5 ! router ospf 101 router-id 192.168.255.5 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 no passive-interface Ethernet3 no passive-interface Ethernet4 - bfd default max-lsa 12000 ``` diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-LEAF2A.md b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-LEAF2A.md index 25502c15c90..27bb8fe62d2 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-LEAF2A.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-LEAF2A.md @@ -617,13 +617,13 @@ ip route vrf MGMT 0.0.0.0/0 192.168.200.5 ! router ospf 101 router-id 192.168.255.6 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 no passive-interface Ethernet3 no passive-interface Ethernet4 no passive-interface Vlan4093 - bfd default max-lsa 12000 ``` diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-LEAF2B.md b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-LEAF2B.md index 1e75652a1a3..15fa9da18ce 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-LEAF2B.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-LEAF2B.md @@ -617,13 +617,13 @@ ip route vrf MGMT 0.0.0.0/0 192.168.200.5 ! router ospf 101 router-id 192.168.255.7 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 no passive-interface Ethernet3 no passive-interface Ethernet4 no passive-interface Vlan4093 - bfd default max-lsa 12000 ``` diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SPINE1.md b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SPINE1.md index 6d1d99b5a01..b95efa2b2f9 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SPINE1.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SPINE1.md @@ -412,6 +412,7 @@ ip route vrf MGMT 0.0.0.0/0 192.168.200.5 ! router ospf 101 router-id 192.168.255.1 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 @@ -420,7 +421,6 @@ router ospf 101 no passive-interface Ethernet5 no passive-interface Ethernet6 no passive-interface Ethernet7 - bfd default max-lsa 12000 ``` diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SPINE2.md b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SPINE2.md index 59d77b96357..3160c38bbe7 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SPINE2.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SPINE2.md @@ -412,6 +412,7 @@ ip route vrf MGMT 0.0.0.0/0 192.168.200.5 ! router ospf 101 router-id 192.168.255.2 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 @@ -420,7 +421,6 @@ router ospf 101 no passive-interface Ethernet5 no passive-interface Ethernet6 no passive-interface Ethernet7 - bfd default max-lsa 12000 ``` diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SPINE3.md b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SPINE3.md index 10aa4ed82ce..636700110b6 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SPINE3.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SPINE3.md @@ -412,6 +412,7 @@ ip route vrf MGMT 0.0.0.0/0 192.168.200.5 ! router ospf 101 router-id 192.168.255.3 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 @@ -420,7 +421,6 @@ router ospf 101 no passive-interface Ethernet5 no passive-interface Ethernet6 no passive-interface Ethernet7 - bfd default max-lsa 12000 ``` diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SPINE4.md b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SPINE4.md index 46bd2593ea8..34e768e48ae 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SPINE4.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SPINE4.md @@ -412,6 +412,7 @@ ip route vrf MGMT 0.0.0.0/0 192.168.200.5 ! router ospf 101 router-id 192.168.255.4 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 @@ -420,7 +421,6 @@ router ospf 101 no passive-interface Ethernet5 no passive-interface Ethernet6 no passive-interface Ethernet7 - bfd default max-lsa 12000 ``` diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SVC3A.md b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SVC3A.md index 8daa055e356..96172fea12a 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SVC3A.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SVC3A.md @@ -610,13 +610,13 @@ ip route vrf MGMT 0.0.0.0/0 192.168.200.5 ! router ospf 101 router-id 192.168.255.8 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 no passive-interface Ethernet3 no passive-interface Ethernet4 no passive-interface Vlan4094 - bfd default max-lsa 12000 ``` diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SVC3B.md b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SVC3B.md index 9c44c9256f9..8750c69c045 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SVC3B.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/documentation/devices/DC1-SVC3B.md @@ -610,13 +610,13 @@ ip route vrf MGMT 0.0.0.0/0 192.168.200.5 ! router ospf 101 router-id 192.168.255.9 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 no passive-interface Ethernet3 no passive-interface Ethernet4 no passive-interface Vlan4094 - bfd default max-lsa 12000 ``` diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-BL1A.cfg b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-BL1A.cfg index ac04213ea81..db442119fa6 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-BL1A.cfg +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-BL1A.cfg @@ -196,13 +196,13 @@ router bgp 65104 ! router ospf 101 router-id 192.168.255.10 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 no passive-interface Ethernet3 no passive-interface Ethernet4 no passive-interface Vlan4093 - bfd default max-lsa 12000 ! end diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-BL1B.cfg b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-BL1B.cfg index 36ac516d6e6..0314e8199c3 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-BL1B.cfg +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-BL1B.cfg @@ -196,13 +196,13 @@ router bgp 65104 ! router ospf 101 router-id 192.168.255.11 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 no passive-interface Ethernet3 no passive-interface Ethernet4 no passive-interface Vlan4093 - bfd default max-lsa 12000 ! end diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-LEAF1A.cfg b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-LEAF1A.cfg index 39599403374..bda03cd96be 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-LEAF1A.cfg +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-LEAF1A.cfg @@ -146,12 +146,12 @@ router bgp 65101 ! router ospf 101 router-id 192.168.255.5 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 no passive-interface Ethernet3 no passive-interface Ethernet4 - bfd default max-lsa 12000 ! end diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-LEAF2A.cfg b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-LEAF2A.cfg index c367ba7e138..397b7f7aa3d 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-LEAF2A.cfg +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-LEAF2A.cfg @@ -271,13 +271,13 @@ router bgp 65102 ! router ospf 101 router-id 192.168.255.6 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 no passive-interface Ethernet3 no passive-interface Ethernet4 no passive-interface Vlan4093 - bfd default max-lsa 12000 ! end diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-LEAF2B.cfg b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-LEAF2B.cfg index 836072541d5..4ac029d2760 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-LEAF2B.cfg +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-LEAF2B.cfg @@ -271,13 +271,13 @@ router bgp 65102 ! router ospf 101 router-id 192.168.255.7 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 no passive-interface Ethernet3 no passive-interface Ethernet4 no passive-interface Vlan4093 - bfd default max-lsa 12000 ! end diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SPINE1.cfg b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SPINE1.cfg index f89e150c2a6..801f6a0aa30 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SPINE1.cfg +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SPINE1.cfg @@ -174,6 +174,7 @@ router bgp 65001 ! router ospf 101 router-id 192.168.255.1 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 @@ -182,7 +183,6 @@ router ospf 101 no passive-interface Ethernet5 no passive-interface Ethernet6 no passive-interface Ethernet7 - bfd default max-lsa 12000 ! end diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SPINE2.cfg b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SPINE2.cfg index 29dcb079ba4..9c73cf50c1e 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SPINE2.cfg +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SPINE2.cfg @@ -174,6 +174,7 @@ router bgp 65001 ! router ospf 101 router-id 192.168.255.2 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 @@ -182,7 +183,6 @@ router ospf 101 no passive-interface Ethernet5 no passive-interface Ethernet6 no passive-interface Ethernet7 - bfd default max-lsa 12000 ! end diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SPINE3.cfg b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SPINE3.cfg index 192ceac48c5..598c8320bb7 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SPINE3.cfg +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SPINE3.cfg @@ -174,6 +174,7 @@ router bgp 65001 ! router ospf 101 router-id 192.168.255.3 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 @@ -182,7 +183,6 @@ router ospf 101 no passive-interface Ethernet5 no passive-interface Ethernet6 no passive-interface Ethernet7 - bfd default max-lsa 12000 ! end diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SPINE4.cfg b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SPINE4.cfg index 0a11dd603e1..1f344eff0d9 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SPINE4.cfg +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SPINE4.cfg @@ -174,6 +174,7 @@ router bgp 65001 ! router ospf 101 router-id 192.168.255.4 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 @@ -182,7 +183,6 @@ router ospf 101 no passive-interface Ethernet5 no passive-interface Ethernet6 no passive-interface Ethernet7 - bfd default max-lsa 12000 ! end diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SVC3A.cfg b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SVC3A.cfg index 05ef5efdbb8..cdb3827d8de 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SVC3A.cfg +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SVC3A.cfg @@ -266,13 +266,13 @@ router bgp 65103 ! router ospf 101 router-id 192.168.255.8 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 no passive-interface Ethernet3 no passive-interface Ethernet4 no passive-interface Vlan4094 - bfd default max-lsa 12000 ! end diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SVC3B.cfg b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SVC3B.cfg index d1b2c65d3ae..d9e3b5345c6 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SVC3B.cfg +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ospf_overlay_ebgp/intended/configs/DC1-SVC3B.cfg @@ -266,13 +266,13 @@ router bgp 65103 ! router ospf 101 router-id 192.168.255.9 + bfd default passive-interface default no passive-interface Ethernet1 no passive-interface Ethernet2 no passive-interface Ethernet3 no passive-interface Ethernet4 no passive-interface Vlan4094 - bfd default max-lsa 12000 ! end diff --git a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/interface-ip-nat.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/interface-ip-nat.j2 index 0a20a3516d7..5711330b5bc 100644 --- a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/interface-ip-nat.j2 +++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/interface-ip-nat.j2 @@ -4,18 +4,22 @@ that can be found in the LICENSE file. #} {# eos - interface ip nat #} +{# Print NAT entries in the following order: #} +{# without-group-sort-by-original-ip -> with-group-source-sort-by-group -> with-group-destination-sort-by-group -> dynamic-unnatural-sort-by-acl #} +{% set unsorted_nat_entries = [] %} {# Static source nat entries #} -{# Sequence of eos_cli does not exactly match with EOS cli #} -{% for nat in interface_ip_nat.source.static | arista.avd.default([]) | arista.avd.natural_sort('original_ip') %} +{% for nat in interface_ip_nat.source.static | arista.avd.default([]) %} {% if not (nat.access_list is arista.avd.defined and nat.group is arista.avd.defined) and not (nat.original_port is not arista.avd.defined and nat.translated_port is arista.avd.defined) %} {% set nat_cli = 'ip nat source' %} +{% set sort_key = 'a_' ~ nat.original_ip %} {% if nat.direction is arista.avd.defined %} {% set nat_cli = nat_cli ~ ' ' ~ nat.direction %} {% endif %} {% set nat_cli = nat_cli ~ ' static ' ~ nat.original_ip %} {% if nat.original_port is arista.avd.defined %} {% set nat_cli = nat_cli ~ ' ' ~ nat.original_port %} +{% set sort_key = sort_key ~ '_' ~ nat.original_port %} {% endif %} {% if nat.access_list is arista.avd.defined %} {% set nat_cli = nat_cli ~ ' access-list ' ~ nat.access_list %} @@ -29,50 +33,27 @@ {% endif %} {% if nat.group is arista.avd.defined %} {% set nat_cli = nat_cli ~ ' group ' ~ nat.group %} +{% set sort_key = 'c_' ~ nat.group %} {% endif %} {% if nat.comment is arista.avd.defined %} {% set nat_cli = nat_cli ~ ' comment ' ~ nat.comment %} {% endif %} - {{ nat_cli }} -{% endif %} -{% endfor %} -{# Dynamic source nat entries #} -{% for nat in interface_ip_nat.source.dynamic | arista.avd.default([]) | arista.avd.natural_sort('access_list') %} -{% set valid = false %} -{% set nat_cli = 'ip nat source dynamic access-list ' ~ nat.access_list %} -{% if nat.nat_type == 'overload' %} -{% set nat_cli = nat_cli ~ ' overload' %} -{% set valid = true %} -{% elif nat.pool_name is arista.avd.defined %} -{% set nat_cli = nat_cli ~ ' pool ' ~ nat.pool_name %} -{% set valid = true %} -{% if nat.nat_type == 'pool-address-only' %} -{% set nat_cli = nat_cli ~ ' address-only' %} -{% elif nat.nat_type == 'pool-full-cone' %} -{% set nat_cli = nat_cli ~ ' full-cone' %} -{% endif %} -{% endif %} -{% if valid %} -{% if nat.priority | arista.avd.default(0) > 0 %} -{% set nat_cli = nat_cli ~ ' priority ' ~ nat.priority %} -{% endif %} -{% if nat.comment is arista.avd.defined %} -{% set nat_cli = nat_cli ~ ' comment ' ~ nat.comment %} -{% endif %} - {{ nat_cli }} +{% do unsorted_nat_entries.append({"sort_key": sort_key, "cli": nat_cli}) %} {% endif %} {% endfor %} {# Static destination nat entries #} -{% for nat in interface_ip_nat.destination.static | arista.avd.default([]) | arista.avd.natural_sort('original_ip') %} +{% for nat in interface_ip_nat.destination.static | arista.avd.default([]) %} {% if not (nat.access_list is arista.avd.defined and nat.group is arista.avd.defined) and not (nat.original_port is not arista.avd.defined and nat.translated_port is arista.avd.defined) %} {% set nat_cli = 'ip nat destination' %} +{% set sort_key = 'a_' ~ nat.original_ip %} {% if nat.direction is arista.avd.defined %} {% set nat_cli = nat_cli ~ ' ' ~ nat.direction %} {% endif %} {% set nat_cli = nat_cli ~ ' static ' ~ nat.original_ip %} {% if nat.original_port is arista.avd.defined %} {% set nat_cli = nat_cli ~ ' ' ~ nat.original_port %} +{% set sort_key = sort_key ~ '_' ~ nat.original_port %} {% endif %} {% if nat.access_list is arista.avd.defined %} {% set nat_cli = nat_cli ~ ' access-list ' ~ nat.access_list %} @@ -86,21 +67,55 @@ {% endif %} {% if nat.group is arista.avd.defined %} {% set nat_cli = nat_cli ~ ' group ' ~ nat.group %} +{% set sort_key = 'c_' ~ nat.group %} {% endif %} {% if nat.comment is arista.avd.defined %} {% set nat_cli = nat_cli ~ ' comment ' ~ nat.comment %} {% endif %} - {{ nat_cli }} +{% do unsorted_nat_entries.append({"sort_key": sort_key, "cli": nat_cli}) %} +{% endif %} +{% endfor %} +{# Dynamic source nat entries #} +{% for nat in interface_ip_nat.source.dynamic | arista.avd.default([]) %} +{% set valid = false %} +{% set nat_cli = 'ip nat source dynamic access-list ' ~ nat.access_list %} +{# Exploding the access-list name to avoid natural sorting on it. #} +{% set sort_key = 'd_' ~ nat.access_list | join(".") %} +{% if nat.nat_type == 'overload' %} +{% set nat_cli = nat_cli ~ ' overload' %} +{% set valid = true %} +{% elif nat.pool_name is arista.avd.defined %} +{% set nat_cli = nat_cli ~ ' pool ' ~ nat.pool_name %} +{% set valid = true %} +{% if nat.nat_type == 'pool-address-only' %} +{% set nat_cli = nat_cli ~ ' address-only' %} +{% elif nat.nat_type == 'pool-full-cone' %} +{% set nat_cli = nat_cli ~ ' full-cone' %} +{% endif %} +{% endif %} +{% if valid %} +{% if nat.priority | arista.avd.default(0) > 0 %} +{% set nat_cli = nat_cli ~ ' priority ' ~ nat.priority %} +{% endif %} +{% if nat.comment is arista.avd.defined %} +{% set nat_cli = nat_cli ~ ' comment ' ~ nat.comment %} +{% endif %} +{% do unsorted_nat_entries.append({"sort_key": sort_key, "cli": nat_cli}) %} {% endif %} {% endfor %} {# Dynamic destination nat entries #} -{% for nat in interface_ip_nat.destination.dynamic | arista.avd.default([]) | arista.avd.natural_sort('access_list') %} +{% for nat in interface_ip_nat.destination.dynamic | arista.avd.default([]) %} {% set nat_cli = 'ip nat destination dynamic access-list ' ~ nat.access_list ~ ' pool ' ~ nat.pool_name %} +{# Exploding the access-list name to avoid natural sorting on it. #} +{% set sort_key = 'd_' ~ nat.access_list | join(".") %} {% if nat.priority | arista.avd.default(0) > 0 %} {% set nat_cli = nat_cli ~ ' priority ' ~ nat.priority %} {% endif %} {% if nat.comment is arista.avd.defined %} {% set nat_cli = nat_cli ~ ' comment ' ~ nat.comment %} {% endif %} - {{ nat_cli }} +{% do unsorted_nat_entries.append({"sort_key": sort_key, "cli": nat_cli}) %} +{% endfor %} +{% for nat_entry in unsorted_nat_entries | arista.avd.natural_sort("sort_key") %} + {{ nat_entry.cli }} {% endfor %} diff --git a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/roles.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/roles.j2 index 0b1bb8e7682..cc1fb751d17 100644 --- a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/roles.j2 +++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/roles.j2 @@ -4,27 +4,23 @@ that can be found in the LICENSE file. #} {# eos - roles #} -{% if roles is arista.avd.defined %} +{% for role in roles | arista.avd.natural_sort("name") %} ! -{% for role in roles %} -{% if role.name is arista.avd.defined %} role {{ role.name }} -{% if role.sequence_numbers is arista.avd.defined %} -{% for sequence in role.sequence_numbers %} -{% if sequence.action is arista.avd.defined and sequence.command is arista.avd.defined %} -{% set sequence_cli = "" %} -{% if sequence.sequence is arista.avd.defined %} -{% set sequence_cli = sequence.sequence ~ " " %} -{% endif %} -{% set sequence_cli = sequence_cli ~ sequence.action %} -{% if sequence.mode is arista.avd.defined %} -{% set sequence_cli = sequence_cli ~ " mode " ~ sequence.mode %} -{% endif %} -{% set sequence_cli = sequence_cli ~ " command " ~ sequence.command %} +{% if role.sequence_numbers is arista.avd.defined %} +{% for sequence in role.sequence_numbers %} +{% if sequence.action is arista.avd.defined and sequence.command is arista.avd.defined %} +{% set sequence_cli = "" %} +{% if sequence.sequence is arista.avd.defined %} +{% set sequence_cli = sequence.sequence ~ " " %} +{% endif %} +{% set sequence_cli = sequence_cli ~ sequence.action %} +{% if sequence.mode is arista.avd.defined %} +{% set sequence_cli = sequence_cli ~ " mode " ~ sequence.mode %} +{% endif %} +{% set sequence_cli = sequence_cli ~ " command " ~ sequence.command %} {{ sequence_cli }} -{% endif %} -{% endfor %} {% endif %} -{% endif %} -{% endfor %} -{% endif %} +{% endfor %} +{% endif %} +{% endfor %} diff --git a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/router-ospf.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/router-ospf.j2 index 6933b7baac1..dfc44f7b848 100644 --- a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/router-ospf.j2 +++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/router-ospf.j2 @@ -11,12 +11,18 @@ router ospf {{ process_id.id }} vrf {{ process_id.vrf }} {% else %} router ospf {{ process_id.id }} {% endif %} -{% if process_id.log_adjacency_changes_detail is arista.avd.defined(true) %} - log-adjacency-changes detail -{% endif %} {% if process_id.router_id is arista.avd.defined %} router-id {{ process_id.router_id }} {% endif %} +{% if process_id.auto_cost_reference_bandwidth is arista.avd.defined %} + auto-cost reference-bandwidth {{ process_id.auto_cost_reference_bandwidth }} +{% endif %} +{% if process_id.bfd_enable is arista.avd.defined(true) %} + bfd default +{% endif %} +{% if process_id.bfd_adjacency_state_any is arista.avd.defined(true) %} + bfd adjacency state any +{% endif %} {% if process_id.distance is arista.avd.defined %} {% if process_id.distance.intra_area is arista.avd.defined %} distance ospf intra-area {{ process_id.distance.intra_area }} @@ -32,18 +38,42 @@ router ospf {{ process_id.id }} passive-interface default {% endif %} {% if process_id.no_passive_interfaces is arista.avd.defined %} -{% for interface in process_id.no_passive_interfaces %} +{% for interface in process_id.no_passive_interfaces | arista.avd.natural_sort %} no passive-interface {{ interface }} {% endfor %} {% endif %} -{% for network_prefix in process_id.network_prefixes | arista.avd.natural_sort('ipv4_prefix') %} - network {{ network_prefix.ipv4_prefix }} area {{ network_prefix.area }} -{% endfor %} -{% if process_id.bfd_enable is arista.avd.defined(true) %} - bfd default +{% if process_id.redistribute.bgp.enabled is arista.avd.defined(true) %} +{% set redistribute_bgp_cli = "redistribute bgp" %} +{% if process_id.redistribute.bgp.include_leaked is arista.avd.defined(true) %} +{% set redistribute_bgp_cli = redistribute_bgp_cli ~ " include leaked" %} +{% endif %} +{% if process_id.redistribute.bgp.route_map is arista.avd.defined %} +{% set redistribute_bgp_cli = redistribute_bgp_cli ~ " route-map " ~ process_id.redistribute.bgp.route_map %} +{% endif %} + {{ redistribute_bgp_cli }} {% endif %} -{% if process_id.bfd_adjacency_state_any is arista.avd.defined(true) %} - bfd adjacency state any +{% if process_id.redistribute.connected.enabled is arista.avd.defined(true) %} +{% set redistribute_connected_cli = "redistribute connected" %} +{% if process_id.redistribute.connected.include_leaked is arista.avd.defined(true) %} +{% set redistribute_connected_cli = redistribute_connected_cli ~ " include leaked" %} +{% endif %} +{% if process_id.redistribute.connected.route_map is arista.avd.defined %} +{% set redistribute_connected_cli = redistribute_connected_cli ~ " route-map " ~ process_id.redistribute.connected.route_map %} +{% endif %} + {{ redistribute_connected_cli }} +{% endif %} +{% if process_id.redistribute.static.enabled is arista.avd.defined(true) %} +{% set redistribute_static_cli = "redistribute static" %} +{% if process_id.redistribute.static.include_leaked is arista.avd.defined(true) %} +{% set redistribute_static_cli = redistribute_static_cli ~ " include leaked" %} +{% endif %} +{% if process_id.redistribute.static.route_map is arista.avd.defined %} +{% set redistribute_static_cli = redistribute_static_cli ~ " route-map " ~ process_id.redistribute.static.route_map %} +{% endif %} + {{ redistribute_static_cli }} +{% endif %} +{% if process_id.distribute_list_in.route_map is arista.avd.defined %} + distribute-list route-map {{ process_id.distribute_list_in.route_map }} in {% endif %} {% for area in process_id.areas | arista.avd.natural_sort('id') %} {# OSPF stub area configuration #} @@ -89,23 +119,16 @@ router ospf {{ process_id.id }} area {{ area.id }} filter prefix-list {{ area.filter.prefix_list }} {% endif %} {% endfor %} -{% if process_id.distribute_list_in.route_map is arista.avd.defined %} - distribute-list route-map {{ process_id.distribute_list_in.route_map }} in -{% endif %} +{% for network_prefix in process_id.network_prefixes | arista.avd.natural_sort('ipv4_prefix') %} +{% if network_prefix.area is arista.avd.defined %} + network {{ network_prefix.ipv4_prefix }} area {{ network_prefix.area }} +{% endif %} +{% endfor %} {% if process_id.max_lsa is arista.avd.defined %} max-lsa {{ process_id.max_lsa }} {% endif %} -{% if process_id.timers.lsa.rx_min_interval is arista.avd.defined %} - timers lsa rx min interval {{ process_id.timers.lsa.rx_min_interval }} -{% endif %} -{% if process_id.timers.lsa.tx_delay.initial is arista.avd.defined - and process_id.timers.lsa.tx_delay.min is arista.avd.defined - and process_id.timers.lsa.tx_delay.max is arista.avd.defined %} -{% set timer_ospf_lsa_tx = "timers lsa tx delay initial" %} -{% set timer_ospf_lsa_tx = timer_ospf_lsa_tx ~ " " ~ process_id.timers.lsa.tx_delay.initial %} -{% set timer_ospf_lsa_tx = timer_ospf_lsa_tx ~ " " ~ process_id.timers.lsa.tx_delay.min %} -{% set timer_ospf_lsa_tx = timer_ospf_lsa_tx ~ " " ~ process_id.timers.lsa.tx_delay.max %} - {{ timer_ospf_lsa_tx }} +{% if process_id.log_adjacency_changes_detail is arista.avd.defined(true) %} + log-adjacency-changes detail {% endif %} {% if process_id.timers.spf_delay.initial is arista.avd.defined and process_id.timers.spf_delay.min is arista.avd.defined @@ -116,51 +139,17 @@ router ospf {{ process_id.id }} {% set timer_ospf_spf_delay = timer_ospf_spf_delay ~ " " ~ process_id.timers.spf_delay.max %} {{ timer_ospf_spf_delay }} {% endif %} -{% if process_id.default_information_originate is defined %} -{% set default_information_originate_cli = "default-information originate" %} -{% if process_id.default_information_originate.always is arista.avd.defined(true) %} -{% set default_information_originate_cli = default_information_originate_cli ~ " always" %} -{% endif %} -{% if process_id.default_information_originate.metric is arista.avd.defined %} -{% set default_information_originate_cli = default_information_originate_cli ~ " metric " ~ process_id.default_information_originate.metric %} -{% endif %} -{% if process_id.default_information_originate.metric_type is arista.avd.defined %} -{% set default_information_originate_cli = default_information_originate_cli ~ " metric-type " ~ process_id.default_information_originate.metric_type %} -{% endif %} - {{ default_information_originate_cli }} -{% endif %} -{% if process_id.redistribute.static.enabled is arista.avd.defined(true) %} -{% set redistribute_static_cli = "redistribute static" %} -{% if process_id.redistribute.static.include_leaked is arista.avd.defined(true) %} -{% set redistribute_static_cli = redistribute_static_cli ~ " include leaked" %} -{% endif %} -{% if process_id.redistribute.static.route_map is arista.avd.defined %} -{% set redistribute_static_cli = redistribute_static_cli ~ " route-map " ~ process_id.redistribute.static.route_map %} -{% endif %} - {{ redistribute_static_cli }} -{% endif %} -{% if process_id.redistribute.connected.enabled is arista.avd.defined(true) %} -{% set redistribute_connected_cli = "redistribute connected" %} -{% if process_id.redistribute.connected.include_leaked is arista.avd.defined(true) %} -{% set redistribute_connected_cli = redistribute_connected_cli ~ " include leaked" %} -{% endif %} -{% if process_id.redistribute.connected.route_map is arista.avd.defined %} -{% set redistribute_connected_cli = redistribute_connected_cli ~ " route-map " ~ process_id.redistribute.connected.route_map %} -{% endif %} - {{ redistribute_connected_cli }} -{% endif %} -{% if process_id.redistribute.bgp.enabled is arista.avd.defined(true) %} -{% set redistribute_bgp_cli = "redistribute bgp" %} -{% if process_id.redistribute.bgp.include_leaked is arista.avd.defined(true) %} -{% set redistribute_bgp_cli = redistribute_bgp_cli ~ " include leaked" %} -{% endif %} -{% if process_id.redistribute.bgp.route_map is arista.avd.defined %} -{% set redistribute_bgp_cli = redistribute_bgp_cli ~ " route-map " ~ process_id.redistribute.bgp.route_map %} -{% endif %} - {{ redistribute_bgp_cli }} +{% if process_id.timers.lsa.rx_min_interval is arista.avd.defined %} + timers lsa rx min interval {{ process_id.timers.lsa.rx_min_interval }} {% endif %} -{% if process_id.auto_cost_reference_bandwidth is arista.avd.defined %} - auto-cost reference-bandwidth {{ process_id.auto_cost_reference_bandwidth }} +{% if process_id.timers.lsa.tx_delay.initial is arista.avd.defined + and process_id.timers.lsa.tx_delay.min is arista.avd.defined + and process_id.timers.lsa.tx_delay.max is arista.avd.defined %} +{% set timer_ospf_lsa_tx = "timers lsa tx delay initial" %} +{% set timer_ospf_lsa_tx = timer_ospf_lsa_tx ~ " " ~ process_id.timers.lsa.tx_delay.initial %} +{% set timer_ospf_lsa_tx = timer_ospf_lsa_tx ~ " " ~ process_id.timers.lsa.tx_delay.min %} +{% set timer_ospf_lsa_tx = timer_ospf_lsa_tx ~ " " ~ process_id.timers.lsa.tx_delay.max %} + {{ timer_ospf_lsa_tx }} {% endif %} {% if process_id.maximum_paths is arista.avd.defined %} maximum-paths {{ process_id.maximum_paths }} @@ -187,23 +176,32 @@ router ospf {{ process_id.id }} {% endif %} {{ max_metric_router_lsa_cli }} {% endif %} -{% if process_id.mpls_ldp_sync_default is arista.avd.defined(true) %} - mpls ldp sync default +{% if process_id.default_information_originate is defined %} +{% set default_information_originate_cli = "default-information originate" %} +{% if process_id.default_information_originate.always is arista.avd.defined(true) %} +{% set default_information_originate_cli = default_information_originate_cli ~ " always" %} +{% endif %} +{% if process_id.default_information_originate.metric is arista.avd.defined %} +{% set default_information_originate_cli = default_information_originate_cli ~ " metric " ~ process_id.default_information_originate.metric %} +{% endif %} +{% if process_id.default_information_originate.metric_type is arista.avd.defined %} +{% set default_information_originate_cli = default_information_originate_cli ~ " metric-type " ~ process_id.default_information_originate.metric_type %} +{% endif %} + {{ default_information_originate_cli }} {% endif %} -{% if process_id.summary_addresses is arista.avd.defined %} -{% for summary_address in process_id.summary_addresses %} -{% if summary_address.prefix is arista.avd.defined %} -{% if summary_address.tag is arista.avd.defined %} +{% for summary_address in process_id.summary_addresses | arista.avd.natural_sort("prefix") %} +{% if summary_address.tag is arista.avd.defined %} summary-address {{ summary_address.prefix }} tag {{ summary_address.tag }} -{% elif summary_address.attribute_map is arista.avd.defined %} +{% elif summary_address.attribute_map is arista.avd.defined %} summary-address {{ summary_address.prefix }} attribute-map {{ summary_address.attribute_map }} -{% elif summary_address.not_advertise is arista.avd.defined(true) %} +{% elif summary_address.not_advertise is arista.avd.defined(true) %} summary-address {{ summary_address.prefix }} not-advertise -{% else %} +{% else %} summary-address {{ summary_address.prefix }} -{% endif %} -{% endif %} -{% endfor %} +{% endif %} +{% endfor %} +{% if process_id.mpls_ldp_sync_default is arista.avd.defined(true) %} + mpls ldp sync default {% endif %} {% if process_id.eos_cli is arista.avd.defined %} {{ process_id.eos_cli | indent(3, false) }}