From 359ede176d3548879d59bb0202f47916b3401e21 Mon Sep 17 00:00:00 2001 From: Vibhu-gslab Date: Wed, 23 Oct 2024 17:21:00 +0530 Subject: [PATCH 01/12] Refactor(eos_cli_config_gen): Add support for MPLS RSVP --- .../documentation/devices/mpls.md | 61 ++++++ .../intended/configs/mpls.cfg | 30 +++ .../inventory/host_vars/mpls.yml | 39 ++++ .../eos_cli_config_gen/docs/tables/mpls.md | 130 +++++++++++ .../j2templates/documentation/mpls-rsvp.j2 | 65 ++++++ .../j2templates/documentation/mpls.j2 | 2 + .../j2templates/eos/mpls.j2 | 93 ++++++++ .../schema/eos_cli_config_gen.schema.yml | 202 ++++++++++++++++++ .../schema/schema_fragments/mpls.schema.yml | 199 +++++++++++++++++ 9 files changed, 821 insertions(+) create mode 100644 python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/mpls-rsvp.j2 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 index 873a6158a63..6c9851a964e 100644 --- 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 @@ -10,6 +10,7 @@ - [MPLS](#mpls-1) - [MPLS and LDP](#mpls-and-ldp) - [MPLS Interfaces](#mpls-interfaces) + - [MPLS RSVP](#mpls-rsvp) ## Management @@ -123,6 +124,36 @@ mpls ldp no shutdown ! mpls icmp fragmentation-needed tunneling +! +mpls rsvp + hello interval 30 multiplier 254 + authentication type md5 + authentication sequence-number window 234 + authentication index 55 password 7 SiMpLePaSsInDeX + authentication index 766 password 7 SiMpLePaSs + authentication index 766 active + ip access-group RSVP_access_group_ipv4 + ipv6 access-group RSVP_access_group_ipv4 + fast-reroute mode link-protection + fast-reroute reversion local + fast-reroute bypass tunnel optimization interval 65535 seconds + label local-termination explicit-null + preemption method soft timer 444 + mtu signaling + ! + hitless-restart + timer recovery 222 seconds + ! + graceful-restart role helper + timer restart maximum 32 seconds + timer recovery maximum 33 seconds + ! + graceful-restart role speaker + timer restart 35 seconds + timer recovery 36 seconds + ! + p2mp + disabled ``` ### MPLS Interfaces @@ -131,3 +162,33 @@ mpls icmp fragmentation-needed tunneling | --------- | --------------- | ----------- | -------- | | Ethernet1 | True | True | True | | Loopback0 | - | True | - | + +### MPLS RSVP + +#### MPLS RSVP Summary + +| Settings | Value | +| -------- | ----- | +| Hello interval | 30 | +| Timeout multiplier | 254 | +| Authentication type | md5 | +| Authentication sequence-number window | 234 | +| Authentication active index | 766 | +| IPv4 access-group | RSVP_access_group_ipv4 | +| IPv6 access-group | RSVP_access_group_ipv6 | +| Label local-termination | explicit-null | +| Preemption method | soft | +| Preemption timer | 444 | +| Mtu signaling | True | +| Fast reroute mode | link-protection | +| Fast reroute reversion | local | +| Fast reroute bypass tunnel optimization interval | 65535 | +| Hitless restart | Active | +| Hitless restart recovery timer | 222 | + +##### Graceful restart + +| Role | Recovery timer | Restart timer | +| ---- | -------------- | ------------- | +| Helper | 32 | 33 | +| Speaker | 35 | 36 | 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 index a60504954f9..154aa700d3e 100644 --- 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 @@ -24,3 +24,33 @@ mpls ldp no shutdown ! mpls icmp fragmentation-needed tunneling +! +mpls rsvp + hello interval 30 multiplier 254 + authentication type md5 + authentication sequence-number window 234 + authentication index 55 password 7 SiMpLePaSsInDeX + authentication index 766 password 7 SiMpLePaSs + authentication index 766 active + ip access-group RSVP_access_group_ipv4 + ipv6 access-group RSVP_access_group_ipv4 + fast-reroute mode link-protection + fast-reroute reversion local + fast-reroute bypass tunnel optimization interval 65535 seconds + label local-termination explicit-null + preemption method soft timer 444 + mtu signaling + ! + hitless-restart + timer recovery 222 seconds + ! + graceful-restart role helper + timer restart maximum 32 seconds + timer recovery maximum 33 seconds + ! + graceful-restart role speaker + timer restart 35 seconds + timer recovery 36 seconds + ! + p2mp + disabled 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 index c1198c6e203..0fc35790d79 100644 --- 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 @@ -7,6 +7,45 @@ mpls: transport_address_interface: Loopback0 icmp: fragmentation_needed_tunneling: true + rsvp: + hello: + interval: 30 + multiplier: 254 + authentication: + password_indexes: + - index: 766 + password_type: 7 + password: SiMpLePaSs + - index: 55 + password_type: '7' + password: SiMpLePaSsInDeX + active_index: 766 + sequence_number_window: 234 + type: md5 + fast_reroute: + mode: link-protection + reversion: local + bypass_tunnel_optimization_interval: 65535 + graceful_restart: + role_helper: + enabled: true + grace_period_recovery: 32 + grace_period_restart: 33 + role_speaker: + enabled: true + grace_period_recovery: 35 + grace_period_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 ethernet_interfaces: - name: Ethernet1 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..a6f65c5e7b6 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,42 @@ | [  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 | | | | RSVP configuration. | + | [    authentication](## "mpls.rsvp.authentication") | Dictionary | | | | Configure 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 | Required | | Valid Values:
- 0
- 7
- 8a | Configure 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 | Index in the sequence.
Size of reorder window. | + | [      type](## "mpls.rsvp.authentication.type") | String | | | Valid Values:
- md5
- none | Authentication mechanism. | + | [    ip_access_group](## "mpls.rsvp.ip_access_group") | String | | | | IP config commands.
Access list name. | + | [    ipv6_access_group](## "mpls.rsvp.ipv6_access_group") | String | | | | IPv6 config commands.
Access list name. | + | [    fast_reroute](## "mpls.rsvp.fast_reroute") | Dictionary | | | | Configure fast reroute. | + | [      mode](## "mpls.rsvp.fast_reroute.mode") | String | | | Valid Values:
- link-protection
- node-protection
- none | Fast reroute mode.
Protect against failure of the next link.
Protect against failure of the next node.
Disable fast reroute. | + | [      reversion](## "mpls.rsvp.fast_reroute.reversion") | String | | | Valid Values:
- global
- local | Select 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. | + | [    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 | | | | Configure preemption. | + | [      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 | | | | + | [        grace_period_recovery](## "mpls.rsvp.graceful_restart.role_helper.grace_period_recovery") | Integer | | | Min: 1
Max: 320 | | + | [        grace_period_restart](## "mpls.rsvp.graceful_restart.role_helper.grace_period_restart") | Integer | | | Min: 1
Max: 320 | | + | [      role_speaker](## "mpls.rsvp.graceful_restart.role_speaker") | Dictionary | | | | | + | [        enabled](## "mpls.rsvp.graceful_restart.role_speaker.enabled") | Boolean | Required | | | | + | [        grace_period_recovery](## "mpls.rsvp.graceful_restart.role_speaker.grace_period_recovery") | Integer | | | Min: 1
Max: 320 | | + | [        grace_period_restart](## "mpls.rsvp.graceful_restart.role_speaker.grace_period_restart") | Integer | | | Min: 1
Max: 320 | | + | [    hello](## "mpls.rsvp.hello") | Dictionary | | | | | + | [      interval](## "mpls.rsvp.hello.interval") | Integer | | | Min: 1
Max: 60 | Time between hello messages. | + | [      multiplier](## "mpls.rsvp.hello.multiplier") | Integer | | | 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. | + | [    p2mp_enabled](## "mpls.rsvp.p2mp_enabled") | Boolean | | | | P2MP configuration.
To disable P2MP make `p2mp_enabled` false. | === "YAML" @@ -39,4 +75,98 @@ # Enables the MPLS tunneling of TTL exceeded ICMP replies. ttl_exceeded_tunneling: + + # RSVP configuration. + rsvp: + + # Configure cryptographic authentication. + authentication: + password_indexes: + + # Password index. + - index: + + # Configure authentication password type. + password_type: + + # Password string. + password: + + # Use index as active password. + active_index: + + # Index in the sequence. + # Size of reorder window. + sequence_number_window: + + # Authentication mechanism. + type: + + # IP config commands. + # Access list name. + ip_access_group: + + # IPv6 config commands. + # Access list name. + ipv6_access_group: + + # Configure fast reroute. + fast_reroute: + + # Fast reroute mode. + # Protect against failure of the next link. + # Protect against failure of the next node. + # Disable fast reroute. + mode: + + # Select reversion behavior. + # Global revertive repair. + # Local revertive repair. + reversion: + + # Fast-reroute bypass configuration. + # Interval between each re-optimization attempt. + bypass_tunnel_optimization_interval: + + # Local termination label to be advertised. + label_local_termination: + + # Configure preemption. + preemption_method: + preemption: + + # Timer value in units of seconds. + timer: + + # Enable MTU signaling. + mtu_signaling: + + # RSVP graceful restart. + graceful_restart: + role_helper: + enabled: + grace_period_recovery: + grace_period_restart: + role_speaker: + enabled: + grace_period_recovery: + grace_period_restart: + hello: + + # Time between hello messages. + 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. + timer_recovery: + + # P2MP configuration. + # To disable P2MP make `p2mp_enabled` false. + p2mp_enabled: ``` 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..59264aca7d2 --- /dev/null +++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/mpls-rsvp.j2 @@ -0,0 +1,65 @@ +{# + 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 + +| Settings | Value | +| -------- | ----- | +{% 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.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.graceful_restart is arista.avd.defined %} +{% set graceful_restart = mpls.rsvp.graceful_restart %} + +##### Graceful restart + +| Role | Recovery timer | Restart timer | +| ---- | -------------- | ------------- | +{% if graceful_restart.role_helper.enabled is arista.avd.defined(true) %} +| Helper | {{ graceful_restart.role_helper.grace_period_recovery | arista.avd.default('-') }} | {{ graceful_restart.role_helper.grace_period_restart | arista.avd.default('-') }} | +{% endif %} +{% if graceful_restart.role_speaker.enabled is arista.avd.defined(true) %} +| Speaker | {{ graceful_restart.role_speaker.grace_period_recovery | arista.avd.default('-') }} | {{ graceful_restart.role_speaker.grace_period_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..2e2ff1b3b4e 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 @@ -27,4 +27,6 @@ {% include 'documentation/mpls-and-ldp.j2' %} {## MPLS Interfaces #} {% include 'documentation/mpls-interfaces.j2' %} +{## MPLS Rsvp #} +{% include 'documentation/mpls-rsvp.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..3e19940c7ea 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,96 @@ mpls icmp fragmentation-needed tunneling mpls icmp ttl-exceeded tunneling {% endif %} {% endif %} +{% if mpls.rsvp is arista.avd.defined %} +! +mpls rsvp +{% if mpls.rsvp.hello.interval is arista.avd.defined and mpls.rsvp.hello.multiplier 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.index is arista.avd.defined and password_index.password_type is arista.avd.defined and password_index.password is arista.avd.defined %} + authentication index {{ password_index.index }} password {{ password_index.password_type }} {{ password_index.password }} +{% endif %} +{% endfor %} +{% if auth.active_index is arista.avd.defined %} + authentication index {{ auth.active_index }} active +{% endif %} +{% endif %} +{% if mpls.rsvp.ip_access_group is arista.avd.defined %} + ip access-group {{ mpls.rsvp.ip_access_group }} +{% endif %} +{% if mpls.rsvp.ip_access_group is arista.avd.defined %} + ipv6 access-group {{ mpls.rsvp.ip_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.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.grace_period_recovery is arista.avd.defined %} + timer restart maximum {{ graceful_restart.role_helper.grace_period_recovery }} seconds +{% endif %} +{% if graceful_restart.role_helper.grace_period_restart is arista.avd.defined %} + timer recovery maximum {{ graceful_restart.role_helper.grace_period_restart }} seconds +{% endif %} +{% endif %} +{% if graceful_restart.role_speaker.enabled is arista.avd.defined(true) %} + ! + graceful-restart role speaker +{% if graceful_restart.role_speaker.grace_period_recovery is arista.avd.defined %} + timer restart {{ graceful_restart.role_speaker.grace_period_recovery }} seconds +{% endif %} +{% if graceful_restart.role_speaker.grace_period_restart is arista.avd.defined %} + timer recovery {{ graceful_restart.role_speaker.grace_period_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 %} +{% 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 a5811d8c40e..a654c41d62d 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 @@ -8511,6 +8511,208 @@ keys: ttl_exceeded_tunneling: type: bool description: Enables the MPLS tunneling of TTL exceeded ICMP replies. + rsvp: + description: RSVP configuration. + type: dict + keys: + authentication: + description: Configure 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: Configure authentication password type. + type: str + required: true + 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: 'Index in the sequence. + + Size of reorder window.' + type: int + convert_types: + - str + min: 1 + max: 255 + type: + description: Authentication mechanism. + type: str + valid_values: + - md5 + - none + ip_access_group: + description: 'IP config commands. + + Access list name.' + type: str + ipv6_access_group: + description: 'IPv6 config commands. + + Access list name.' + type: str + fast_reroute: + description: Configure fast reroute. + type: dict + keys: + mode: + description: 'Fast reroute mode. + + Protect against failure of the next link. + + Protect against failure of the next node. + + Disable fast reroute.' + type: str + valid_values: + - link-protection + - node-protection + - none + reversion: + description: 'Select 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.' + type: int + convert_types: + - str + min: 1 + max: 65535 + label_local_termination: + description: Local termination label to be advertised. + type: str + valid_values: + - implicit-null + - explicit-null + preemption_method: + description: Configure preemption. + 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 + grace_period_recovery: + type: int + convert_types: + - str + min: 1 + max: 320 + grace_period_restart: + type: int + convert_types: + - str + min: 1 + max: 320 + role_speaker: + type: dict + keys: + enabled: + type: bool + required: true + grace_period_recovery: + type: int + convert_types: + - str + min: 1 + max: 320 + grace_period_restart: + type: int + convert_types: + - str + min: 1 + max: 320 + hello: + type: dict + keys: + interval: + description: Time between hello messages. + type: int + convert_types: + - str + min: 1 + max: 60 + multiplier: + description: Number of missed hellos after which the neighbor is expired. + type: int + 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. + type: int + convert_types: + - str + min: 1 + max: 320 + p2mp_enabled: + type: bool + description: 'P2MP configuration. + + To disable P2MP make `p2mp_enabled` false.' 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..ed54737d66f 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,202 @@ keys: ttl_exceeded_tunneling: type: bool description: Enables the MPLS tunneling of TTL exceeded ICMP replies. + rsvp: + description: RSVP configuration. + type: dict + keys: + authentication: + description: Configure 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: Configure authentication password type. + type: str + required: true + 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: |- + Index in the sequence. + Size of reorder window. + type: int + convert_types: + - str + min: 1 + max: 255 + type: + description: Authentication mechanism. + type: str + valid_values: + - 'md5' + - 'none' + ip_access_group: + description: |- + IP config commands. + Access list name. + type: str + ipv6_access_group: + description: |- + IPv6 config commands. + Access list name. + type: str + fast_reroute: + description: Configure fast reroute. + type: dict + keys: + mode: + description: |- + Fast reroute mode. + Protect against failure of the next link. + Protect against failure of the next node. + Disable fast reroute. + type: str + valid_values: + - 'link-protection' + - 'node-protection' + - 'none' + reversion: + description: |- + Select 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. + type: int + convert_types: + - str + min: 1 + max: 65535 + label_local_termination: + description: Local termination label to be advertised. + type: str + valid_values: + - 'implicit-null' + - 'explicit-null' + preemption_method: + description: Configure preemption. + 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 + grace_period_recovery: + type: int + convert_types: + - str + min: 1 + max: 320 + grace_period_restart: + type: int + convert_types: + - str + min: 1 + max: 320 + role_speaker: + type: dict + keys: + enabled: + type: bool + required: true + grace_period_recovery: + type: int + convert_types: + - str + min: 1 + max: 320 + grace_period_restart: + type: int + convert_types: + - str + min: 1 + max: 320 + hello: + type: dict + keys: + interval: + description: Time between hello messages. + type: int + convert_types: + - str + min: 1 + max: 60 + multiplier: + description: Number of missed hellos after which the neighbor is expired. + type: int + 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. + type: int + convert_types: + - str + min: 1 + max: 320 + p2mp_enabled: + type: bool + description: |- + P2MP configuration. + To disable P2MP make `p2mp_enabled` false. From da98619ffabc7feb549984b78e47c6cc6d5e740d Mon Sep 17 00:00:00 2001 From: Vibhu-gslab Date: Thu, 24 Oct 2024 18:15:40 +0530 Subject: [PATCH 02/12] adding the remaining attributes --- .../documentation/devices/mpls.md | 37 +++++++++-- .../intended/configs/mpls.cfg | 17 ++++- .../inventory/host_vars/mpls.yml | 29 +++++++- .../eos_cli_config_gen/docs/tables/mpls.md | 46 +++++++++++++ .../j2templates/documentation/mpls-rsvp.j2 | 66 +++++++++++++------ .../j2templates/eos/mpls.j2 | 32 ++++++++- .../schema/eos_cli_config_gen.schema.yml | 56 ++++++++++++++++ .../schema/schema_fragments/mpls.schema.yml | 56 ++++++++++++++++ 8 files changed, 305 insertions(+), 34 deletions(-) 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 index 6c9851a964e..b37ff7547bd 100644 --- 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 @@ -126,17 +126,27 @@ mpls ldp mpls icmp fragmentation-needed tunneling ! mpls rsvp + refresh interval 3 + refresh method explicit hello interval 30 multiplier 254 authentication type md5 authentication sequence-number window 234 - authentication index 55 password 7 SiMpLePaSsInDeX - authentication index 766 password 7 SiMpLePaSs + authentication index 55 password 7 + authentication index 766 password 7 authentication index 766 active + 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 ip access-group RSVP_access_group_ipv4 - ipv6 access-group RSVP_access_group_ipv4 + ipv6 access-group RSVP_access_group_ipv6 fast-reroute mode link-protection 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 @@ -154,6 +164,7 @@ mpls rsvp ! p2mp disabled + shutdown ``` ### MPLS Interfaces @@ -167,8 +178,10 @@ mpls rsvp #### MPLS RSVP Summary -| Settings | Value | -| -------- | ----- | +| Setting | Value | +| ------- | ----- | +| Refresh interval | 3 | +| Refresh method | explicit | | Hello interval | 30 | | Timeout multiplier | 254 | | Authentication type | md5 | @@ -176,15 +189,27 @@ mpls rsvp | Authentication active index | 766 | | 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 | +| MTU signaling | True | | Fast reroute mode | link-protection | | Fast reroute reversion | local | | Fast reroute bypass tunnel optimization interval | 65535 | | Hitless restart | Active | | Hitless restart recovery timer | 222 | +| Shutdown | Active | + +##### Neighbor + +| 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 | - | ##### Graceful restart 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 index 154aa700d3e..8bc37b581f8 100644 --- 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 @@ -26,17 +26,27 @@ mpls ldp mpls icmp fragmentation-needed tunneling ! mpls rsvp + refresh interval 3 + refresh method explicit hello interval 30 multiplier 254 authentication type md5 authentication sequence-number window 234 - authentication index 55 password 7 SiMpLePaSsInDeX - authentication index 766 password 7 SiMpLePaSs + authentication index 55 password 7 14241B062114062E142900260B1D23133B + authentication index 766 password 7 13361E3F1B20011A2A173B authentication index 766 active + 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 ip access-group RSVP_access_group_ipv4 - ipv6 access-group RSVP_access_group_ipv4 + ipv6 access-group RSVP_access_group_ipv6 fast-reroute mode link-protection 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 @@ -54,3 +64,4 @@ mpls rsvp ! p2mp disabled + shutdown 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 index 0fc35790d79..630b7e4e59d 100644 --- 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 @@ -8,6 +8,9 @@ mpls: icmp: fragmentation_needed_tunneling: true rsvp: + refresh: + interval: 3 + method: explicit hello: interval: 30 multiplier: 254 @@ -15,10 +18,10 @@ mpls: password_indexes: - index: 766 password_type: 7 - password: SiMpLePaSs + password: 13361E3F1B20011A2A173B - index: 55 password_type: '7' - password: SiMpLePaSsInDeX + password: 14241B062114062E142900260B1D23133B active_index: 766 sequence_number_window: 234 type: md5 @@ -26,6 +29,9 @@ mpls: mode: link-protection reversion: local bypass_tunnel_optimization_interval: 65535 + srlg: + enabled: true + strict: true graceful_restart: role_helper: enabled: true @@ -46,6 +52,25 @@ mpls: preemption_method: preemption: soft timer: 444 + shutdown: true + neighbors: + - ip: 1.1.1.1 + authentication: + index: 3 + type: md5 + - ip: 10.1.1.2 + authentication: + index: 303 + - ip: 1.1.12.2 + authentication: + index: 30 + type: none + - ip: 1.21.1.20 + authentication: + type: md5 + - ip: 1.10.1.2 + authentication: + type: none ethernet_interfaces: - name: Ethernet1 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 a6f65c5e7b6..bef108031d5 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 @@ -18,6 +18,9 @@ | [    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 | | | | RSVP configuration. | + | [    refresh](## "mpls.rsvp.refresh") | Dictionary | | | | Configure neighbor state refresh. | + | [      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. | | [    authentication](## "mpls.rsvp.authentication") | Dictionary | | | | Configure 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. | @@ -26,12 +29,20 @@ | [      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 | Index in the sequence.
Size of reorder window. | | [      type](## "mpls.rsvp.authentication.type") | String | | | Valid Values:
- md5
- none | Authentication mechanism. | + | [    neighbors](## "mpls.rsvp.neighbors") | List, items: Dictionary | | | | Neighbor-specific configuration. | + | [      - ip](## "mpls.rsvp.neighbors.[].ip") | String | Required, Unique | | | Neighbor's interface IPv4 or IPv6 address. | + | [        authentication](## "mpls.rsvp.neighbors.[].authentication") | Dictionary | Required | | | Configure 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 | | | | IP config commands.
Access list name. | | [    ipv6_access_group](## "mpls.rsvp.ipv6_access_group") | String | | | | IPv6 config commands.
Access list name. | | [    fast_reroute](## "mpls.rsvp.fast_reroute") | Dictionary | | | | Configure fast reroute. | | [      mode](## "mpls.rsvp.fast_reroute.mode") | String | | | Valid Values:
- link-protection
- node-protection
- none | Fast reroute mode.
Protect against failure of the next link.
Protect against failure of the next node.
Disable fast reroute. | | [      reversion](## "mpls.rsvp.fast_reroute.reversion") | String | | | Valid Values:
- global
- local | Select 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. | + | [    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 | | | | Configure preemption. | | [      preemption](## "mpls.rsvp.preemption_method.preemption") | String | Required | | Valid Values:
- hard
- soft | | @@ -53,6 +64,7 @@ | [      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. | | [    p2mp_enabled](## "mpls.rsvp.p2mp_enabled") | Boolean | | | | P2MP configuration.
To disable P2MP make `p2mp_enabled` false. | + | [    shutdown](## "mpls.rsvp.shutdown") | Boolean | | | | Select SRLG behavior. | === "YAML" @@ -79,6 +91,15 @@ # RSVP configuration. rsvp: + # Configure neighbor state refresh. + refresh: + + # Time between refreshes. + interval: + + # Neighbor refresh mechanism. + method: + # Configure cryptographic authentication. authentication: password_indexes: @@ -102,6 +123,21 @@ # Authentication mechanism. type: + # Neighbor-specific configuration. + neighbors: + + # Neighbor's interface IPv4 or IPv6 address. + - ip: + + # Configure cryptographic authentication. + authentication: # required + + # Password index. + index: + + # Authentication mechanism. + type: + # IP config commands. # Access list name. ip_access_group: @@ -127,6 +163,13 @@ # Fast-reroute bypass configuration. # Interval between each re-optimization attempt. bypass_tunnel_optimization_interval: + srlg: + + # Select SRLG behavior. + enabled: + + # Apply strict SRLG constraint + strict: # Local termination label to be advertised. label_local_termination: @@ -169,4 +212,7 @@ # P2MP configuration. # To disable P2MP make `p2mp_enabled` false. p2mp_enabled: + + # Select SRLG behavior. + shutdown: ``` 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 index 59264aca7d2..910d13416ac 100644 --- 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 @@ -10,22 +10,35 @@ #### MPLS RSVP Summary -| Settings | Value | -| -------- | ----- | -{% if mpls.rsvp.hello.interval is arista.avd.defined and mpls.rsvp.hello.multiplier is arista.avd.defined%} +| 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 %} +{% 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 %} +{% 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 %} +{% 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 %} @@ -36,30 +49,43 @@ {% endif %} {% endif %} {% if mpls.rsvp.mtu_signaling is arista.avd.defined %} -| Mtu signaling | {{ mpls.rsvp.mtu_signaling | arista.avd.default('-') }} | +| 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 %} +{% 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 %} +{% 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.graceful_restart is arista.avd.defined %} -{% set graceful_restart = mpls.rsvp.graceful_restart %} +{% endif %} +{% if mpls.rsvp.shutdown is arista.avd.defined(true) %} +| Shutdown | Active | +{% endif %} +{% if mpls.rsvp.neighbors is arista.avd.defined %} + +##### Neighbor + +| Neighbor IP | Index | Type | +| ----------- | ----- | ---- | +{% for neighbor in mpls.rsvp.neighbors | arista.avd.natural_sort('ip') %} +| {{ neighbor.ip }} | {{ neighbor.authentication.index | arista.avd.default('-') }} | {{ neighbor.authentication.type | arista.avd.default('-') }} | +{% endfor %} +{% endif %} +{% if mpls.rsvp.graceful_restart is arista.avd.defined %} +{% set graceful_restart = mpls.rsvp.graceful_restart %} ##### Graceful restart | Role | Recovery timer | Restart timer | | ---- | -------------- | ------------- | -{% if graceful_restart.role_helper.enabled is arista.avd.defined(true) %} +{% if graceful_restart.role_helper.enabled is arista.avd.defined(true) %} | Helper | {{ graceful_restart.role_helper.grace_period_recovery | arista.avd.default('-') }} | {{ graceful_restart.role_helper.grace_period_restart | arista.avd.default('-') }} | -{% endif %} -{% if graceful_restart.role_speaker.enabled is arista.avd.defined(true) %} +{% endif %} +{% if graceful_restart.role_speaker.enabled is arista.avd.defined(true) %} | Speaker | {{ graceful_restart.role_speaker.grace_period_recovery | arista.avd.default('-') }} | {{ graceful_restart.role_speaker.grace_period_restart | arista.avd.default('-') }} | -{% endif %} +{% endif %} {% endif %} {% 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 3e19940c7ea..de529e4f9ca 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 @@ -38,6 +38,14 @@ mpls icmp ttl-exceeded tunneling {% 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.interval is arista.avd.defined and mpls.rsvp.hello.multiplier is arista.avd.defined %} hello interval {{ mpls.rsvp.hello.interval }} multiplier {{ mpls.rsvp.hello.multiplier }} {% endif %} @@ -51,18 +59,26 @@ mpls rsvp {% endif %} {% for password_index in auth.password_indexes | arista.avd.natural_sort('index') %} {% if password_index.index is arista.avd.defined and password_index.password_type is arista.avd.defined and password_index.password is arista.avd.defined %} - authentication index {{ password_index.index }} password {{ password_index.password_type }} {{ password_index.password }} + authentication index {{ password_index.index }} password {{ password_index.password_type }} {{ 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 %} +{% for neighbor in mpls.rsvp.neighbors | arista.avd.natural_sort('ip') %} +{% if neighbor.authentication.type is arista.avd.defined %} + neighbor {{ neighbor.ip }} authentication type {{ neighbor.authentication.type }} +{% endif %} +{% if neighbor.authentication.index is arista.avd.defined %} + neighbor {{ neighbor.ip }} authentication index {{ neighbor.authentication.index }} active +{% endif %} +{% endfor %} {% if mpls.rsvp.ip_access_group is arista.avd.defined %} ip access-group {{ mpls.rsvp.ip_access_group }} {% endif %} -{% if mpls.rsvp.ip_access_group is arista.avd.defined %} - ipv6 access-group {{ mpls.rsvp.ip_access_group }} +{% 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 %} @@ -76,6 +92,13 @@ mpls rsvp 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 %} @@ -127,4 +150,7 @@ mpls rsvp p2mp disabled {% endif %} +{% if mpls.rsvp.shutdown is arista.avd.defined(true) %} + 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 a654c41d62d..63008d414ac 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 @@ -8515,6 +8515,23 @@ keys: description: RSVP configuration. type: dict keys: + refresh: + description: Configure neighbor state refresh. + type: dict + keys: + interval: + description: Time between refreshes. + type: int + convert_types: + - str + min: 1 + max: 65535 + method: + description: Neighbor refresh mechanism. + type: str + valid_values: + - bundled + - explicit authentication: description: Configure cryptographic authentication. type: dict @@ -8566,6 +8583,32 @@ keys: valid_values: - md5 - none + neighbors: + description: Neighbor-specific configuration. + type: list + primary_key: ip + items: + type: dict + keys: + ip: + description: Neighbor's interface IPv4 or IPv6 address. + type: str + authentication: + description: Configure 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: 'IP config commands. @@ -8612,6 +8655,16 @@ keys: - 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 @@ -8713,6 +8766,9 @@ keys: description: 'P2MP configuration. To disable P2MP make `p2mp_enabled` false.' + shutdown: + description: Select SRLG behavior. + type: bool 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 ed54737d66f..e2f552a90fa 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 @@ -37,6 +37,23 @@ keys: description: RSVP configuration. type: dict keys: + refresh: + description: Configure neighbor state refresh. + type: dict + keys: + interval: + description: Time between refreshes. + type: int + convert_types: + - str + min: 1 + max: 65535 + method: + description: Neighbor refresh mechanism. + type: str + valid_values: + - 'bundled' + - 'explicit' authentication: description: Configure cryptographic authentication. type: dict @@ -88,6 +105,32 @@ keys: valid_values: - 'md5' - 'none' + neighbors: + description: Neighbor-specific configuration. + type: list + primary_key: ip + items: + type: dict + keys: + ip: + description: Neighbor's interface IPv4 or IPv6 address. + type: str + authentication: + description: Configure 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: |- IP config commands. @@ -131,6 +174,16 @@ keys: - 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 @@ -232,3 +285,6 @@ keys: description: |- P2MP configuration. To disable P2MP make `p2mp_enabled` false. + shutdown: + description: Select SRLG behavior. + type: bool From bf18a321847eb991c7d1c430a3a0b69235337616 Mon Sep 17 00:00:00 2001 From: Vibhu-gslab Date: Fri, 25 Oct 2024 12:34:11 +0530 Subject: [PATCH 03/12] improving coverage --- .../devices/ethernet-interfaces.md | 5 + .../devices/loopbacks-interfaces.md | 5 + .../documentation/devices/mpls-2.md | 44 ++++++- .../documentation/devices/mpls-3.md | 15 ++- .../documentation/devices/mpls.md | 110 ++++++++---------- .../devices/port-channel-interfaces.md | 5 + .../intended/configs/mpls-2.cfg | 17 +++ .../intended/configs/mpls-3.cfg | 3 + .../intended/configs/mpls.cfg | 10 -- .../inventory/host_vars/mpls-2.yml | 21 ++++ .../inventory/host_vars/mpls-3.yml | 4 + .../inventory/host_vars/mpls.yml | 12 -- .../eos_cli_config_gen/docs/tables/mpls.md | 8 +- .../j2templates/documentation/mpls-and-ldp.j2 | 6 - .../j2templates/documentation/mpls-rsvp.j2 | 4 +- .../j2templates/documentation/mpls.j2 | 6 + .../j2templates/eos/mpls.j2 | 4 +- .../schema/eos_cli_config_gen.schema.yml | 2 + .../schema/schema_fragments/mpls.schema.yml | 2 + python-avd/tox.ini | 1 + 20 files changed, 183 insertions(+), 101 deletions(-) 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 cdd060acbb7..dd268e793ed 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 @@ -1197,6 +1197,11 @@ interface Ethernet72 | Ethernet9 | True | True | - | | Ethernet10 | False | False | - | +#### MPLS Device Configuration + +```eos +``` + ## Multicast ### PIM Sparse Mode diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/loopbacks-interfaces.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/loopbacks-interfaces.md index 6c1cbfaf34a..64520148dd5 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/loopbacks-interfaces.md +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/loopbacks-interfaces.md @@ -113,3 +113,8 @@ interface Loopback100 | Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | | --------- | --------------- | ----------- | -------- | | Loopback99 | - | True | - | + +#### MPLS Device Configuration + +```eos +``` 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 index fc946b56c34..4f53c11e681 100644 --- 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 @@ -6,6 +6,7 @@ - [Management Interfaces](#management-interfaces) - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) + - [MPLS RSVP](#mpls-rsvp) ## Management @@ -50,7 +51,31 @@ interface Management1 | LDP Transport-Address Interface | - | | ICMP TTL-Exceeded Tunneling Enabled | True | -#### MPLS and LDP Device Configuration +### 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 ! @@ -60,4 +85,21 @@ 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 ``` 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/mpls-3.md index d8608e69a60..22f0b7b7c63 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/mpls-3.md @@ -6,6 +6,7 @@ - [Management Interfaces](#management-interfaces) - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) + - [MPLS RSVP](#mpls-rsvp) ## Management @@ -49,7 +50,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 +68,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.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/mpls.md index b37ff7547bd..5c78595e820 100644 --- 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 @@ -111,7 +111,54 @@ interface Loopback0 | LDP Transport-Address Interface | Loopback0 | | ICMP Fragmentation-Needed Tunneling Enabled | True | -#### MPLS and LDP Device Configuration +### MPLS Interfaces + +| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | +| --------- | --------------- | ----------- | -------- | +| Ethernet1 | True | True | True | +| Loopback0 | - | True | - | + +### 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 | - | + +##### RSVP Graceful Restart + +| Role | Recovery timer | Restart timer | +| ---- | -------------- | ------------- | +| Speaker | 35 | 36 | + +#### MPLS Device Configuration ```eos ! @@ -127,13 +174,8 @@ mpls icmp fragmentation-needed tunneling ! mpls rsvp refresh interval 3 - refresh method explicit - hello interval 30 multiplier 254 - authentication type md5 - authentication sequence-number window 234 authentication index 55 password 7 authentication index 766 password 7 - authentication index 766 active 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 @@ -143,7 +185,6 @@ mpls rsvp neighbor 10.1.1.2 authentication index 303 active ip access-group RSVP_access_group_ipv4 ipv6 access-group RSVP_access_group_ipv6 - fast-reroute mode link-protection fast-reroute reversion local fast-reroute bypass tunnel optimization interval 65535 seconds srlg strict @@ -154,10 +195,6 @@ mpls rsvp hitless-restart timer recovery 222 seconds ! - graceful-restart role helper - timer restart maximum 32 seconds - timer recovery maximum 33 seconds - ! graceful-restart role speaker timer restart 35 seconds timer recovery 36 seconds @@ -166,54 +203,3 @@ mpls rsvp disabled shutdown ``` - -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Loopback0 | - | True | - | - -### MPLS RSVP - -#### MPLS RSVP Summary - -| Setting | Value | -| ------- | ----- | -| Refresh interval | 3 | -| Refresh method | explicit | -| Hello interval | 30 | -| Timeout multiplier | 254 | -| Authentication type | md5 | -| Authentication sequence-number window | 234 | -| Authentication active index | 766 | -| 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 | link-protection | -| Fast reroute reversion | local | -| Fast reroute bypass tunnel optimization interval | 65535 | -| Hitless restart | Active | -| Hitless restart recovery timer | 222 | -| Shutdown | Active | - -##### Neighbor - -| 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 | - | - -##### Graceful restart - -| Role | Recovery timer | Restart timer | -| ---- | -------------- | ------------- | -| Helper | 32 | 33 | -| Speaker | 35 | 36 | 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 753a11173ee..3282e6d8e19 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 @@ -887,6 +887,11 @@ interface Port-Channel132 | Port-Channel113 | True | True | True | | Port-Channel114 | False | False | - | +#### MPLS Device Configuration + +```eos +``` + ## Multicast ### PIM Sparse Mode 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 index 83d5dcbf41c..1f55e7d64c4 100644 --- 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 @@ -10,3 +10,20 @@ 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 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/mpls-3.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/mpls-3.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.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/mpls.cfg index 8bc37b581f8..16aa0fc218a 100644 --- 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 @@ -27,13 +27,8 @@ mpls icmp fragmentation-needed tunneling ! mpls rsvp refresh interval 3 - refresh method explicit - hello interval 30 multiplier 254 - authentication type md5 - authentication sequence-number window 234 authentication index 55 password 7 14241B062114062E142900260B1D23133B authentication index 766 password 7 13361E3F1B20011A2A173B - authentication index 766 active 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 @@ -43,7 +38,6 @@ mpls rsvp neighbor 10.1.1.2 authentication index 303 active ip access-group RSVP_access_group_ipv4 ipv6 access-group RSVP_access_group_ipv6 - fast-reroute mode link-protection fast-reroute reversion local fast-reroute bypass tunnel optimization interval 65535 seconds srlg strict @@ -54,10 +48,6 @@ mpls rsvp hitless-restart timer recovery 222 seconds ! - graceful-restart role helper - timer restart maximum 32 seconds - timer recovery maximum 33 seconds - ! graceful-restart role speaker timer restart 35 seconds timer recovery 36 seconds 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 index c83c8df227a..f35cda6faa2 100644 --- 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 @@ -6,3 +6,24 @@ mpls: 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 + grace_period_recovery: 32 + grace_period_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/mpls-3.yml index 5bb6b0c88f1..1f794403b4e 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/mpls-3.yml @@ -4,3 +4,7 @@ mpls: 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.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/mpls.yml index 630b7e4e59d..1ad551c61a0 100644 --- 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 @@ -10,10 +10,6 @@ mpls: rsvp: refresh: interval: 3 - method: explicit - hello: - interval: 30 - multiplier: 254 authentication: password_indexes: - index: 766 @@ -22,21 +18,13 @@ mpls: - index: 55 password_type: '7' password: 14241B062114062E142900260B1D23133B - active_index: 766 - sequence_number_window: 234 - type: md5 fast_reroute: - mode: link-protection reversion: local bypass_tunnel_optimization_interval: 65535 srlg: enabled: true strict: true graceful_restart: - role_helper: - enabled: true - grace_period_recovery: 32 - grace_period_restart: 33 role_speaker: enabled: true grace_period_recovery: 35 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 bef108031d5..3adc32eed5d 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 @@ -58,8 +58,8 @@ | [        grace_period_recovery](## "mpls.rsvp.graceful_restart.role_speaker.grace_period_recovery") | Integer | | | Min: 1
Max: 320 | | | [        grace_period_restart](## "mpls.rsvp.graceful_restart.role_speaker.grace_period_restart") | Integer | | | Min: 1
Max: 320 | | | [    hello](## "mpls.rsvp.hello") | Dictionary | | | | | - | [      interval](## "mpls.rsvp.hello.interval") | Integer | | | Min: 1
Max: 60 | Time between hello messages. | - | [      multiplier](## "mpls.rsvp.hello.multiplier") | Integer | | | Min: 1
Max: 255 | Number of missed hellos after which the neighbor is expired. | + | [      interval](## "mpls.rsvp.hello.interval") | Integer | Required | | Min: 1
Max: 60 | Time between hello messages. | + | [      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. | @@ -197,10 +197,10 @@ hello: # Time between hello messages. - interval: + interval: # Number of missed hellos after which the neighbor is expired. - multiplier: + multiplier: # RSVP hitless restart. hitless_restart: 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 index 910d13416ac..4e020c5f08c 100644 --- 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 @@ -66,7 +66,7 @@ {% endif %} {% if mpls.rsvp.neighbors is arista.avd.defined %} -##### Neighbor +##### RSVP Neighbor Authentication | Neighbor IP | Index | Type | | ----------- | ----- | ---- | @@ -77,7 +77,7 @@ {% if mpls.rsvp.graceful_restart is arista.avd.defined %} {% set graceful_restart = mpls.rsvp.graceful_restart %} -##### Graceful restart +##### RSVP Graceful Restart | Role | Recovery timer | Restart timer | | ---- | -------------- | ------------- | 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 2e2ff1b3b4e..74f4efe5401 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 @@ -29,4 +29,10 @@ {% include 'documentation/mpls-interfaces.j2' %} {## MPLS Rsvp #} {% include 'documentation/mpls-rsvp.j2' %} + +#### 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 de529e4f9ca..32b4d1be28c 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 @@ -46,7 +46,7 @@ mpls rsvp 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 %} +{% 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 %} @@ -58,9 +58,7 @@ mpls rsvp authentication sequence-number window {{ auth.sequence_number_window }} {% endif %} {% for password_index in auth.password_indexes | arista.avd.natural_sort('index') %} -{% if password_index.index is arista.avd.defined and password_index.password_type is arista.avd.defined and password_index.password is arista.avd.defined %} authentication index {{ password_index.index }} password {{ password_index.password_type }} {{ 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 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 63008d414ac..0b3e11e6408 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 @@ -8737,6 +8737,7 @@ keys: interval: description: Time between hello messages. type: int + required: true convert_types: - str min: 1 @@ -8744,6 +8745,7 @@ keys: multiplier: description: Number of missed hellos after which the neighbor is expired. type: int + required: true convert_types: - str min: 1 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 e2f552a90fa..e6ffdb5c61c 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 @@ -256,6 +256,7 @@ keys: interval: description: Time between hello messages. type: int + required: true convert_types: - str min: 1 @@ -263,6 +264,7 @@ keys: multiplier: description: Number of missed hellos after which the neighbor is expired. type: int + required: true convert_types: - str min: 1 diff --git a/python-avd/tox.ini b/python-avd/tox.ini index 768f410200f..fd30413b574 100644 --- a/python-avd/tox.ini +++ b/python-avd/tox.ini @@ -43,3 +43,4 @@ dependency_groups = coverage commands = coverage report --rcfile=pyproject.toml + coverage html --rcfile=pyproject.toml From 09903b932c5d192ae8d7526116faa83c72e5f7d3 Mon Sep 17 00:00:00 2001 From: Vibhu-gslab Date: Fri, 25 Oct 2024 12:45:42 +0530 Subject: [PATCH 04/12] fixing CI --- .../documentation/devices/p1.md | 22 +++++++++---------- .../documentation/devices/p2.md | 22 +++++++++---------- .../documentation/devices/p3.md | 20 ++++++++--------- .../documentation/devices/p4.md | 20 ++++++++--------- .../documentation/devices/pe1.md | 18 +++++++-------- .../documentation/devices/pe2.md | 18 +++++++-------- .../documentation/devices/pe3.md | 18 +++++++-------- .../documentation/devices/rr1.md | 20 ++++++++--------- .../documentation/devices/rr2.md | 20 ++++++++--------- .../documentation/devices/SITE1-LER1.md | 18 +++++++-------- .../documentation/devices/SITE1-LER2.md | 18 +++++++-------- .../documentation/devices/SITE1-LSR1.md | 20 ++++++++--------- .../documentation/devices/SITE1-LSR2.md | 18 +++++++-------- .../documentation/devices/SITE1-RR1.md | 16 +++++++------- .../documentation/devices/SITE2-LER1.md | 20 ++++++++--------- .../documentation/devices/SITE2-LSR1.md | 20 ++++++++--------- .../documentation/devices/SITE2-LSR2.md | 20 ++++++++--------- .../documentation/devices/SITE2-RR1.md | 16 +++++++------- .../documentation/devices/SITE3-LER1.md | 14 ++++++------ 19 files changed, 179 insertions(+), 179 deletions(-) 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 332d3065cf1..c30f68d4a7d 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 @@ -406,7 +406,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 +429,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 e669742c420..f4ddee2a7fb 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 @@ -406,7 +406,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 +429,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 725050a140a..09f7b0ebf93 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 @@ -386,7 +386,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 +408,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 ce0ba9cf746..af85a967f4e 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 @@ -386,7 +386,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 +408,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 a5f4fa577ab..c4c1dca7164 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 @@ -572,7 +572,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 +593,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 ba14b449516..cd1de24fd48 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 @@ -572,7 +572,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 +593,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 bd24b24638e..096528745d6 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 @@ -561,7 +561,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 +582,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 af2d87f3f29..b57c6193dcf 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 @@ -513,7 +513,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 +535,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 bb36f030c76..3dfa24ecd6f 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 @@ -513,7 +513,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 +535,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_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 0eb9f15d5f2..5c09ad530ed 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 @@ -811,7 +811,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 +832,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 c6c71d4b749..1300846f733 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 @@ -815,7 +815,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 +836,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 1657aa260a1..da1fb328307 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 @@ -412,7 +412,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 +434,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 1d6a909ec98..c79268273e7 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 @@ -387,7 +387,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 +408,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 94352209b52..1c12211ed69 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 @@ -526,7 +526,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 +546,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 f463525b357..4371863a1bf 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 @@ -921,7 +921,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 +943,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 774da3217fa..02c617e2f0d 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 @@ -412,7 +412,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 +434,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 0420c63bbf6..2e4b04f72d6 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 @@ -473,7 +473,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 +495,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 112ebf34ba2..8aa60bd8295 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 @@ -526,7 +526,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 +546,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..fecfc084886 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 @@ -328,7 +328,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 +347,6 @@ mpls ldp no shutdown ``` -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Loopback0 | - | True | - | - ## Multicast ### IP IGMP Snooping From 0ed46b400e7deb6a47385dd4a78a53db0ab397bb Mon Sep 17 00:00:00 2001 From: Vibhu-gslab Date: Wed, 30 Oct 2024 15:40:48 +0530 Subject: [PATCH 05/12] addressing comments --- .../devices/ethernet-interfaces.md | 5 -- .../devices/loopbacks-interfaces.md | 5 -- .../documentation/devices/mpls.md | 1 + .../devices/port-channel-interfaces.md | 5 -- .../intended/configs/mpls.cfg | 1 + .../inventory/host_vars/mpls.yml | 12 ++-- .../eos_cli_config_gen/docs/tables/mpls.md | 69 ++++++++----------- .../j2templates/documentation/mpls-rsvp.j2 | 4 +- .../j2templates/documentation/mpls.j2 | 4 +- .../j2templates/eos/mpls.j2 | 10 ++- .../schema/eos_cli_config_gen.schema.yml | 43 +++++------- .../schema/schema_fragments/mpls.schema.yml | 59 +++++++--------- python-avd/tox.ini | 1 - 13 files changed, 95 insertions(+), 124 deletions(-) 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 dd268e793ed..cdd060acbb7 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 @@ -1197,11 +1197,6 @@ interface Ethernet72 | Ethernet9 | True | True | - | | Ethernet10 | False | False | - | -#### MPLS Device Configuration - -```eos -``` - ## Multicast ### PIM Sparse Mode diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/loopbacks-interfaces.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/loopbacks-interfaces.md index 64520148dd5..6c1cbfaf34a 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/loopbacks-interfaces.md +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/loopbacks-interfaces.md @@ -113,8 +113,3 @@ interface Loopback100 | Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | | --------- | --------------- | ----------- | -------- | | Loopback99 | - | True | - | - -#### MPLS Device Configuration - -```eos -``` 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 index 5c78595e820..daac7f64530 100644 --- 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 @@ -176,6 +176,7 @@ 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 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 3282e6d8e19..753a11173ee 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 @@ -887,11 +887,6 @@ interface Port-Channel132 | Port-Channel113 | True | True | True | | Port-Channel114 | False | False | - | -#### MPLS Device Configuration - -```eos -``` - ## Multicast ### PIM Sparse Mode 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 index 16aa0fc218a..9625234f0d3 100644 --- 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 @@ -29,6 +29,7 @@ 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 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 index 1ad551c61a0..fa16a74b391 100644 --- 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 @@ -18,6 +18,8 @@ mpls: - index: 55 password_type: '7' password: 14241B062114062E142900260B1D23133B + - index: 999 + password: simplePassword fast_reroute: reversion: local bypass_tunnel_optimization_interval: 65535 @@ -42,21 +44,21 @@ mpls: timer: 444 shutdown: true neighbors: - - ip: 1.1.1.1 + - ip_address: 1.1.1.1 authentication: index: 3 type: md5 - - ip: 10.1.1.2 + - ip_address: 10.1.1.2 authentication: index: 303 - - ip: 1.1.12.2 + - ip_address: 1.1.12.2 authentication: index: 30 type: none - - ip: 1.21.1.20 + - ip_address: 1.21.1.20 authentication: type: md5 - - ip: 1.10.1.2 + - ip_address: 1.10.1.2 authentication: type: none 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 3adc32eed5d..8ffd4301a0d 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,34 +17,34 @@ | [  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 | | | | RSVP configuration. | - | [    refresh](## "mpls.rsvp.refresh") | Dictionary | | | | Configure neighbor state refresh. | + | [  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. | - | [    authentication](## "mpls.rsvp.authentication") | Dictionary | | | | Configure cryptographic authentication. | + | [      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 | Required | | Valid Values:
- 0
- 7
- 8a | Configure authentication password type. | + | [          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 | Index in the sequence.
Size of reorder window. | + | [      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 | | | | Neighbor-specific configuration. | - | [      - ip](## "mpls.rsvp.neighbors.[].ip") | String | Required, Unique | | | Neighbor's interface IPv4 or IPv6 address. | - | [        authentication](## "mpls.rsvp.neighbors.[].authentication") | Dictionary | Required | | | Configure cryptographic authentication. | + | [      - ip_address](## "mpls.rsvp.neighbors.[].ip_address") | String | Required, Unique | | | Neighbor's interface IPv4 or 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 | | | | IP config commands.
Access list name. | - | [    ipv6_access_group](## "mpls.rsvp.ipv6_access_group") | String | | | | IPv6 config commands.
Access list name. | - | [    fast_reroute](## "mpls.rsvp.fast_reroute") | Dictionary | | | | Configure fast reroute. | - | [      mode](## "mpls.rsvp.fast_reroute.mode") | String | | | Valid Values:
- link-protection
- node-protection
- none | Fast reroute mode.
Protect against failure of the next link.
Protect against failure of the next node.
Disable fast reroute. | - | [      reversion](## "mpls.rsvp.fast_reroute.reversion") | String | | | Valid Values:
- global
- local | Select reversion behavior.
Global revertive repair.
Local revertive repair. | + | [    ip_access_group](## "mpls.rsvp.ip_access_group") | String | | | | IP 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. | | [    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 | + | [      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 | | | | Configure preemption. | + | [    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. | @@ -87,28 +87,26 @@ # Enables the MPLS tunneling of TTL exceeded ICMP replies. ttl_exceeded_tunneling: - - # RSVP configuration. rsvp: - - # Configure neighbor state refresh. refresh: # Time between refreshes. interval: # Neighbor refresh mechanism. + # bundled: Refresh states using message identifier lists. + # explicit: Send each message individually. method: - # Configure cryptographic authentication. + # Cryptographic authentication. authentication: password_indexes: # Password index. - index: - # Configure authentication password type. - password_type: + # Authentication password type. + password_type: # Password string. password: @@ -116,8 +114,7 @@ # Use index as active password. active_index: - # Index in the sequence. - # Size of reorder window. + # Size of reorder window for index in the sequence. sequence_number_window: # Authentication mechanism. @@ -127,9 +124,9 @@ neighbors: # Neighbor's interface IPv4 or IPv6 address. - - ip: + - ip_address: - # Configure cryptographic authentication. + # Cryptographic authentication. authentication: # required # Password index. @@ -138,24 +135,20 @@ # Authentication mechanism. type: - # IP config commands. - # Access list name. + # IP Access list name. ip_access_group: - # IPv6 config commands. - # Access list name. + # IPv6 access list name. ipv6_access_group: - - # Configure fast reroute. fast_reroute: # Fast reroute mode. - # Protect against failure of the next link. - # Protect against failure of the next node. - # Disable fast reroute. + # link-protection: Protect against failure of the next link. + # node-protection: Protect against failure of the next node. + # none: Disable fast reroute. mode: - # Select reversion behavior. + # Reversion behavior. # Global revertive repair. # Local revertive repair. reversion: @@ -168,13 +161,11 @@ # Select SRLG behavior. enabled: - # Apply strict SRLG constraint + # Apply strict SRLG constraint. strict: # Local termination label to be advertised. label_local_termination: - - # Configure preemption. preemption_method: preemption: 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 index 4e020c5f08c..a9f0cfdcc1a 100644 --- 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 @@ -70,8 +70,8 @@ | Neighbor IP | Index | Type | | ----------- | ----- | ---- | -{% for neighbor in mpls.rsvp.neighbors | arista.avd.natural_sort('ip') %} -| {{ neighbor.ip }} | {{ neighbor.authentication.index | arista.avd.default('-') }} | {{ neighbor.authentication.type | arista.avd.default('-') }} | +{% for neighbor in mpls.rsvp.neighbors | arista.avd.natural_sort('ip_address') %} +| {{ neighbor.ip_address }} | {{ neighbor.authentication.index | arista.avd.default('-') }} | {{ neighbor.authentication.type | arista.avd.default('-') }} | {% endfor %} {% endif %} {% if mpls.rsvp.graceful_restart is arista.avd.defined %} 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 74f4efe5401..f15e341e4e6 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,7 +20,7 @@ {% 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 #} @@ -29,6 +29,8 @@ {% 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 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 32b4d1be28c..9df50fb9660 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 @@ -58,18 +58,22 @@ mpls rsvp 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 %} -{% for neighbor in mpls.rsvp.neighbors | arista.avd.natural_sort('ip') %} +{% for neighbor in mpls.rsvp.neighbors | arista.avd.natural_sort('ip_address') %} {% if neighbor.authentication.type is arista.avd.defined %} - neighbor {{ neighbor.ip }} authentication type {{ neighbor.authentication.type }} + neighbor {{ neighbor.ip_address }} authentication type {{ neighbor.authentication.type }} {% endif %} {% if neighbor.authentication.index is arista.avd.defined %} - neighbor {{ neighbor.ip }} authentication index {{ neighbor.authentication.index }} active + neighbor {{ neighbor.ip_address }} authentication index {{ neighbor.authentication.index }} active {% endif %} {% endfor %} {% if mpls.rsvp.ip_access_group is arista.avd.defined %} 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 0b3e11e6408..79d383775b9 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 @@ -8512,11 +8512,9 @@ keys: type: bool description: Enables the MPLS tunneling of TTL exceeded ICMP replies. rsvp: - description: RSVP configuration. type: dict keys: refresh: - description: Configure neighbor state refresh. type: dict keys: interval: @@ -8527,13 +8525,17 @@ keys: min: 1 max: 65535 method: - description: Neighbor refresh mechanism. + description: 'Neighbor refresh mechanism. + + bundled: Refresh states using message identifier lists. + + explicit: Send each message individually.' type: str valid_values: - bundled - explicit authentication: - description: Configure cryptographic authentication. + description: Cryptographic authentication. type: dict keys: password_indexes: @@ -8550,9 +8552,8 @@ keys: min: 1 max: 4294967295 password_type: - description: Configure authentication password type. + description: Authentication password type. type: str - required: true convert_types: - int valid_values: @@ -8569,9 +8570,7 @@ keys: convert_types: - str sequence_number_window: - description: 'Index in the sequence. - - Size of reorder window.' + description: Size of reorder window for index in the sequence. type: int convert_types: - str @@ -8586,15 +8585,15 @@ keys: neighbors: description: Neighbor-specific configuration. type: list - primary_key: ip + primary_key: ip_address items: type: dict keys: - ip: + ip_address: description: Neighbor's interface IPv4 or IPv6 address. type: str authentication: - description: Configure cryptographic authentication. + description: Cryptographic authentication. type: dict required: true keys: @@ -8610,34 +8609,29 @@ keys: - md5 - none ip_access_group: - description: 'IP config commands. - - Access list name.' + description: IP Access list name. type: str ipv6_access_group: - description: 'IPv6 config commands. - - Access list name.' + description: IPv6 access list name. type: str fast_reroute: - description: Configure fast reroute. type: dict keys: mode: description: 'Fast reroute mode. - Protect against failure of the next link. + link-protection: Protect against failure of the next link. - Protect against failure of the next node. + node-protection: Protect against failure of the next node. - Disable fast reroute.' + none: Disable fast reroute.' type: str valid_values: - link-protection - node-protection - none reversion: - description: 'Select reversion behavior. + description: 'Reversion behavior. Global revertive repair. @@ -8663,7 +8657,7 @@ keys: type: bool required: true strict: - description: Apply strict SRLG constraint + description: Apply strict SRLG constraint. type: bool label_local_termination: description: Local termination label to be advertised. @@ -8672,7 +8666,6 @@ keys: - implicit-null - explicit-null preemption_method: - description: Configure preemption. type: dict keys: preemption: 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 e6ffdb5c61c..9a63fa456f9 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 @@ -34,11 +34,9 @@ keys: type: bool description: Enables the MPLS tunneling of TTL exceeded ICMP replies. rsvp: - description: RSVP configuration. type: dict keys: refresh: - description: Configure neighbor state refresh. type: dict keys: interval: @@ -49,13 +47,16 @@ keys: min: 1 max: 65535 method: - description: Neighbor refresh mechanism. + description: |- + Neighbor refresh mechanism. + bundled: Refresh states using message identifier lists. + explicit: Send each message individually. type: str valid_values: - - 'bundled' - - 'explicit' + - bundled + - explicit authentication: - description: Configure cryptographic authentication. + description: Cryptographic authentication. type: dict keys: password_indexes: @@ -72,9 +73,8 @@ keys: min: 1 max: 4294967295 password_type: - description: Configure authentication password type. + description: Authentication password type. type: str - required: true convert_types: - int valid_values: @@ -91,9 +91,7 @@ keys: convert_types: - str sequence_number_window: - description: |- - Index in the sequence. - Size of reorder window. + description: Size of reorder window for index in the sequence. type: int convert_types: - str @@ -103,20 +101,20 @@ keys: description: Authentication mechanism. type: str valid_values: - - 'md5' - - 'none' + - md5 + - none neighbors: description: Neighbor-specific configuration. type: list - primary_key: ip + primary_key: ip_address items: type: dict keys: - ip: + ip_address: description: Neighbor's interface IPv4 or IPv6 address. type: str authentication: - description: Configure cryptographic authentication. + description: Cryptographic authentication. type: dict required: true keys: @@ -129,36 +127,32 @@ keys: description: Authentication mechanism. type: str valid_values: - - 'md5' - - 'none' + - md5 + - none ip_access_group: - description: |- - IP config commands. - Access list name. + description: IP Access list name. type: str ipv6_access_group: description: |- - IPv6 config commands. - Access list name. + IPv6 access list name. type: str fast_reroute: - description: Configure fast reroute. type: dict keys: mode: description: |- Fast reroute mode. - Protect against failure of the next link. - Protect against failure of the next node. - Disable fast reroute. + 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' + - link-protection + - node-protection + - none reversion: description: |- - Select reversion behavior. + Reversion behavior. Global revertive repair. Local revertive repair. type: str @@ -182,7 +176,7 @@ keys: type: bool required: true strict: - description: Apply strict SRLG constraint + description: Apply strict SRLG constraint. type: bool label_local_termination: description: Local termination label to be advertised. @@ -191,7 +185,6 @@ keys: - 'implicit-null' - 'explicit-null' preemption_method: - description: Configure preemption. type: dict keys: preemption: diff --git a/python-avd/tox.ini b/python-avd/tox.ini index fd30413b574..768f410200f 100644 --- a/python-avd/tox.ini +++ b/python-avd/tox.ini @@ -43,4 +43,3 @@ dependency_groups = coverage commands = coverage report --rcfile=pyproject.toml - coverage html --rcfile=pyproject.toml From a46554d73ad912a37a4d724cb206b43c51a5cea4 Mon Sep 17 00:00:00 2001 From: Vibhu-gslab Date: Tue, 5 Nov 2024 13:14:43 +0530 Subject: [PATCH 06/12] Fixing order --- .../documentation/devices/mpls.md | 6 +++++ .../intended/configs/mpls.cfg | 4 +++ .../inventory/host_vars/mpls.yml | 8 ++++++ .../eos_cli_config_gen/docs/tables/mpls.md | 10 ++++--- .../j2templates/documentation/mpls-rsvp.j2 | 9 ++++++- .../j2templates/eos/mpls.j2 | 26 +++++++++++++------ .../schema/schema_fragments/mpls.schema.yml | 6 +++-- 7 files changed, 55 insertions(+), 14 deletions(-) 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 index daac7f64530..c11366f2774 100644 --- 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 @@ -151,6 +151,8 @@ interface Loopback0 | 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 @@ -184,6 +186,10 @@ mpls rsvp 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 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 index 9625234f0d3..793be53533e 100644 --- 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 @@ -37,6 +37,10 @@ mpls rsvp 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 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 index fa16a74b391..7a086588bf6 100644 --- 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 @@ -48,6 +48,10 @@ mpls: 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 @@ -55,6 +59,10 @@ mpls: authentication: index: 30 type: none + - ipv6_address: 2001::db8 + authentication: + index: 31 + type: none - ip_address: 1.21.1.20 authentication: type: md5 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 8ffd4301a0d..124ed66f3d1 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 @@ -30,7 +30,8 @@ | [      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 | | | | Neighbor-specific configuration. | - | [      - ip_address](## "mpls.rsvp.neighbors.[].ip_address") | String | Required, Unique | | | Neighbor's interface IPv4 or IPv6 address. | + | [      - 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. | @@ -123,8 +124,11 @@ # Neighbor-specific configuration. neighbors: - # Neighbor's interface IPv4 or IPv6 address. - - ip_address: + # Neighbor's interface IPv4 address. + - ip_address: + + # Neighbor's interface IPv6 address. + ipv6_address: # Cryptographic authentication. authentication: # required 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 index a9f0cfdcc1a..6130824496a 100644 --- 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 @@ -70,8 +70,15 @@ | Neighbor IP | Index | Type | | ----------- | ----- | ---- | -{% for neighbor in mpls.rsvp.neighbors | arista.avd.natural_sort('ip_address') %} +{% 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 %} 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 9df50fb9660..cf43b56d1de 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 @@ -68,14 +68,24 @@ mpls rsvp authentication index {{ auth.active_index }} active {% endif %} {% endif %} -{% for neighbor in mpls.rsvp.neighbors | arista.avd.natural_sort('ip_address') %} -{% if neighbor.authentication.type is arista.avd.defined %} - neighbor {{ neighbor.ip_address }} authentication type {{ neighbor.authentication.type }} -{% endif %} -{% if neighbor.authentication.index is arista.avd.defined %} - neighbor {{ neighbor.ip_address }} authentication index {{ neighbor.authentication.index }} active -{% endif %} -{% endfor %} +{% 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 %} +{% 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 %} 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 9a63fa456f9..d86684348bc 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 @@ -106,12 +106,14 @@ keys: neighbors: description: Neighbor-specific configuration. type: list - primary_key: ip_address items: type: dict keys: ip_address: - description: Neighbor's interface IPv4 or IPv6 address. + description: Neighbor's interface IPv4 address. + type: str + ipv6_address: + description: Neighbor's interface IPv6 address. type: str authentication: description: Cryptographic authentication. From 81c509b7365469189bb62fbf46ea3e707fa57f7b Mon Sep 17 00:00:00 2001 From: Vibhu-gslab Date: Thu, 7 Nov 2024 17:54:49 +0530 Subject: [PATCH 07/12] moving to hosts folder --- .../documentation/devices/host1.md | 175 +++++++++++++++ .../documentation/devices/host2.md | 71 ++++++ .../devices/{mpls-3.md => host3.md} | 2 +- .../documentation/devices/mpls-2.md | 105 --------- .../documentation/devices/mpls.md | 212 ------------------ .../intended/configs/host1.cfg | 57 +++++ .../intended/configs/host2.cfg | 24 ++ .../configs/{mpls-3.cfg => host3.cfg} | 0 .../intended/configs/mpls-2.cfg | 29 --- .../intended/configs/mpls.cfg | 62 ----- .../inventory/host_vars/{ => host1}/mpls.yml | 0 .../host_vars/{ => host2}/mpls-2.yml | 0 .../host_vars/{ => host3}/mpls-3.yml | 0 .../eos_cli_config_gen/inventory/hosts.yml | 4 +- .../schema/eos_cli_config_gen.schema.yml | 6 +- 15 files changed, 333 insertions(+), 414 deletions(-) rename ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/{mpls-3.md => host3.md} (99%) delete mode 100644 ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/mpls-2.md delete mode 100644 ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/mpls.md rename ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/{mpls-3.cfg => host3.cfg} (100%) delete mode 100644 ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/mpls-2.cfg delete mode 100644 ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/mpls.cfg rename ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/{ => host1}/mpls.yml (100%) rename ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/{ => host2}/mpls-2.yml (100%) rename ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/{ => host3}/mpls-3.yml (100%) 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 ead018feb9a..df1b801751d 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 @@ -35,10 +35,16 @@ - [Interfaces](#interfaces) - [Interface Profiles](#interface-profiles) - [DPS Interfaces](#dps-interfaces) + - [Ethernet Interfaces](#ethernet-interfaces) + - [Loopback Interfaces](#loopback-interfaces) - [Routing](#routing) - [IP Routing](#ip-routing) - [IPv6 Routing](#ipv6-routing) - [ARP](#arp) +- [MPLS](#mpls) + - [MPLS and LDP](#mpls-and-ldp) + - [MPLS Interfaces](#mpls-interfaces) + - [MPLS RSVP](#mpls-rsvp) - [Multicast](#multicast) - [IP IGMP Snooping](#ip-igmp-snooping) - [Filters](#filters) @@ -826,6 +832,60 @@ interface Dps1 load-interval 42 ``` +### 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 +``` + ## Routing ### IP Routing @@ -895,6 +955,121 @@ arp 43.42.42.42 DEAD.BEEF.CAFE arpa arp vrf defaulu 42.42.42.42 DEAD.BEEF.CAFE arpa ``` +## 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 | +| Loopback0 | - | True | - | + +### 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 +``` + ## Multicast ### IP IGMP Snooping 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 3d4f032a44e..ea40b317614 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 @@ -25,6 +25,9 @@ - [DPS Interfaces](#dps-interfaces) - [Routing](#routing) - [ARP](#arp) +- [MPLS](#mpls) + - [MPLS and LDP](#mpls-and-ldp) + - [MPLS RSVP](#mpls-rsvp) - [Multicast](#multicast) - [IP IGMP Snooping](#ip-igmp-snooping) - [Filters](#filters) @@ -251,6 +254,74 @@ ARP cache persistency is enabled. arp persistent ``` +## 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 +``` + ## Multicast ### IP IGMP Snooping 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 99% 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 22f0b7b7c63..a0dcb42c912 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 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 4f53c11e681..00000000000 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/mpls-2.md +++ /dev/null @@ -1,105 +0,0 @@ -# mpls-2 - -## Table of Contents - -- [Management](#management) - - [Management Interfaces](#management-interfaces) -- [MPLS](#mpls) - - [MPLS and LDP](#mpls-and-ldp) - - [MPLS RSVP](#mpls-rsvp) - -## 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 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 -``` 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 c11366f2774..00000000000 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/mpls.md +++ /dev/null @@ -1,212 +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) - - [MPLS RSVP](#mpls-rsvp) - -## 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 Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Loopback0 | - | True | - | - -### 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 -``` 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 1aefcc85032..4a887da5008 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 @@ -337,6 +337,17 @@ interface Dps1 tcp mss ceiling ipv4 666 ipv6 666 ingress load-interval 42 ! +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 @@ -586,6 +597,52 @@ arp 42.42.42.42 DEAD.BEEF.CAFE arpa arp 43.42.42.42 DEAD.BEEF.CAFE arpa arp vrf defaulu 42.42.42.42 DEAD.BEEF.CAFE arpa ! +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 +! class-map type qos match-any CM_IPv6_ACCESS_GROUP match ipv6 access-group ACL_REPLICATION_LD ! 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 924727ff0f1..a26374f6f4a 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 @@ -67,6 +67,30 @@ application traffic recognition ! 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 +! dot1x system-auth-control dot1x protocol lldp bypass dot1x protocol bpdu bypass 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 100% 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 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 1f55e7d64c4..00000000000 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/mpls-2.cfg +++ /dev/null @@ -1,29 +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 -! -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 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 793be53533e..00000000000 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/mpls.cfg +++ /dev/null @@ -1,62 +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 -! -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 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/host1/mpls.yml similarity index 100% rename from ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/mpls.yml rename to ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/mpls.yml 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/host2/mpls-2.yml similarity index 100% rename from ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/mpls-2.yml rename to ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host2/mpls-2.yml 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 100% 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 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 987972f2316..1171f5a92ad 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: acl: address-locking: @@ -77,9 +78,6 @@ test_hosts: monitor-session-default-encapsulation-gre: monitor-telemetry-influx: monitor-telemetry-postcard-policy: - mpls: - mpls-2: - mpls-3: none_configuration: ntp: object-tracking: 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 79d383775b9..bbf26bb0c97 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 @@ -8585,12 +8585,14 @@ keys: neighbors: description: Neighbor-specific configuration. type: list - primary_key: ip_address items: type: dict keys: ip_address: - description: Neighbor's interface IPv4 or IPv6 address. + description: Neighbor's interface IPv4 address. + type: str + ipv6_address: + description: Neighbor's interface IPv6 address. type: str authentication: description: Cryptographic authentication. From 5d94392c7b9727d333b49404dd6ca94d7563d0f7 Mon Sep 17 00:00:00 2001 From: Vibhu-gslab Date: Tue, 12 Nov 2024 16:50:43 +0530 Subject: [PATCH 08/12] addressing comments --- .../inventory/host_vars/host1/mpls.yml | 1 + .../inventory/host_vars/host2/mpls-2.yml | 1 + .../inventory/host_vars/host3/mpls-3.yml | 1 + .../eos_cli_config_gen/docs/tables/mpls.md | 17 +++++------------ .../schema/eos_cli_config_gen.schema.yml | 7 +------ .../schema/schema_fragments/mpls.schema.yml | 19 +++++++------------ 6 files changed, 16 insertions(+), 30 deletions(-) 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 index 7a086588bf6..aad51621aab 100644 --- 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 @@ -1,3 +1,4 @@ +--- mpls: ip: true ldp: 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 index f35cda6faa2..af53bf7ebc1 100644 --- 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 @@ -1,3 +1,4 @@ +--- # test for mpls.ldp.shutdown: true and mpls.icmp.ttl_exceeded_tunneling: true mpls: ip: true diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host3/mpls-3.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host3/mpls-3.yml index 1f794403b4e..c7f9ca40c8a 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host3/mpls-3.yml +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host3/mpls-3.yml @@ -1,3 +1,4 @@ +--- # test for mpls.ldp.shutdown and mpls.icmp not defined mpls: ip: true 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 124ed66f3d1..3049ba7c4fc 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 @@ -29,13 +29,13 @@ | [      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 | | | | Neighbor-specific configuration. | + | [    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 | | | | IP Access list name. | + | [    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. | @@ -64,8 +64,8 @@ | [    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. | - | [    p2mp_enabled](## "mpls.rsvp.p2mp_enabled") | Boolean | | | | P2MP configuration.
To disable P2MP make `p2mp_enabled` false. | - | [    shutdown](## "mpls.rsvp.shutdown") | Boolean | | | | Select SRLG behavior. | + | [    p2mp_enabled](## "mpls.rsvp.p2mp_enabled") | Boolean | | | | | + | [    shutdown](## "mpls.rsvp.shutdown") | Boolean | | | | | === "YAML" @@ -120,8 +120,6 @@ # Authentication mechanism. type: - - # Neighbor-specific configuration. neighbors: # Neighbor's interface IPv4 address. @@ -139,7 +137,7 @@ # Authentication mechanism. type: - # IP Access list name. + # IPv4 Access list name. ip_access_group: # IPv6 access list name. @@ -203,11 +201,6 @@ # Time stale states will be preserved after restart. timer_recovery: - - # P2MP configuration. - # To disable P2MP make `p2mp_enabled` false. p2mp_enabled: - - # Select SRLG behavior. shutdown: ``` 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 0c519bb964b..493b97e14d7 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 @@ -8601,7 +8601,6 @@ keys: - md5 - none neighbors: - description: Neighbor-specific configuration. type: list items: type: dict @@ -8629,7 +8628,7 @@ keys: - md5 - none ip_access_group: - description: IP Access list name. + description: IPv4 Access list name. type: str ipv6_access_group: description: IPv6 access list name. @@ -8778,11 +8777,7 @@ keys: max: 320 p2mp_enabled: type: bool - description: 'P2MP configuration. - - To disable P2MP make `p2mp_enabled` false.' shutdown: - description: Select SRLG behavior. type: bool name_server: documentation_options: 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 d86684348bc..1acd6b3d9d2 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 @@ -104,7 +104,6 @@ keys: - md5 - none neighbors: - description: Neighbor-specific configuration. type: list items: type: dict @@ -132,7 +131,7 @@ keys: - md5 - none ip_access_group: - description: IP Access list name. + description: IPv4 Access list name. type: str ipv6_access_group: description: |- @@ -159,8 +158,8 @@ keys: Local revertive repair. type: str valid_values: - - 'global' - - 'local' + - global + - local bypass_tunnel_optimization_interval: description: |- Fast-reroute bypass configuration. @@ -184,8 +183,8 @@ keys: description: Local termination label to be advertised. type: str valid_values: - - 'implicit-null' - - 'explicit-null' + - implicit-null + - explicit-null preemption_method: type: dict keys: @@ -193,8 +192,8 @@ keys: type: str required: true valid_values: - - 'hard' - - 'soft' + - hard + - soft timer: description: Timer value in units of seconds. type: int @@ -279,9 +278,5 @@ keys: max: 320 p2mp_enabled: type: bool - description: |- - P2MP configuration. - To disable P2MP make `p2mp_enabled` false. shutdown: - description: Select SRLG behavior. type: bool From 0416543706496c835ede501e7853122b673857f7 Mon Sep 17 00:00:00 2001 From: Vibhu-gslab Date: Wed, 13 Nov 2024 18:16:49 +0530 Subject: [PATCH 09/12] Addressing review comments --- .../documentation/devices/host1.md | 1722 ++++++++++++++--- .../documentation/devices/host2.md | 3 +- .../documentation/devices/host3.md | 3 +- .../intended/configs/host1.cfg | 909 ++++++++- .../host_vars/host1/ethernet-interfaces.yml | 5 + .../host_vars/host1/loopbacks-interfaces.yml | 3 + .../inventory/host_vars/host1/mpls.yml | 18 - .../j2templates/documentation/mpls.j2 | 2 +- .../schema/schema_fragments/mpls.schema.yml | 3 +- 9 files changed, 2416 insertions(+), 252 deletions(-) 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 c209ac6b1f6..a6b708adbba 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 @@ -44,6 +44,7 @@ - [DHCP Server](#dhcp-server) - [DHCP Servers Summary](#dhcp-servers-summary) - [DHCP Server Configuration](#dhcp-server-configuration) + - [DHCP Server Interfaces](#dhcp-server-interfaces) - [System Boot Settings](#system-boot-settings) - [Boot Secret Summary](#boot-secret-summary) - [System Boot Device Configuration](#system-boot-device-configuration) @@ -122,6 +123,7 @@ - [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) @@ -145,6 +147,8 @@ - [AS Path Lists](#as-path-lists) - [802.1X Port Security](#8021x-port-security) - [802.1X Summary](#8021x-summary) +- [Power Over Ethernet (PoE)](#power-over-ethernet-poe) + - [PoE Summary](#poe-summary) - [ACL](#acl) - [MAC Access-lists](#mac-access-lists) - [VRF Instances](#vrf-instances) @@ -1169,6 +1173,12 @@ dhcp server vrf VRF01 disabled ``` +### DHCP Server Interfaces + +| Interface name | DHCP IPv4 | DHCP IPv6 | +| -------------- | --------- | --------- | +| Ethernet64 | True | True | + ## System Boot Settings ### Boot Secret Summary @@ -1428,6 +1438,11 @@ sFlow hardware accelerated Sample Rate: 1024 | Interface | Ingress Enabled | Egress Enabled | | --------- | --------------- | -------------- | +| Ethernet50 | True | - | +| Ethernet51 | - | True | +| Ethernet52 | True | True (unmodified) | +| Ethernet53 | False | False | +| Ethernet54 | False | False (unmodified) | | Port-Channel117 | True | True | | Port-Channel118 | True | True (unmodified) | | Port-Channel119 | False | False | @@ -2004,238 +2019,1403 @@ vlan 3012 ```eos ! -mac address-table aging-time 100 +mac address-table aging-time 100 +! +mac address-table notification host-flap logging +mac address-table notification host-flap detection window 10 +mac address-table notification host-flap detection moves 2 +``` + +## IP Security + +- Hardware encryption is disabled + +### IKE policies + +| Policy name | IKE lifetime | Encryption | DH group | Local ID | Integrity | +| ----------- | ------------ | ---------- | -------- | -------- | --------- | +| IKE-1 | 24 | aes256 | 20 | 192.168.100.1 | md5 | +| IKE-2 | - | - | - | - | sha512 | +| IKE-FQDN | - | - | - | fqdn.local | - | +| IKE-UFQDN | - | - | - | my.awesome@fqdn.local | - | + +### Security Association policies + +| Policy name | ESP Integrity | ESP Encryption | Lifetime | PFS DH Group | +| ----------- | ------------- | -------------- | -------- | ------------ | +| SA-1 | - | aes128 | - | 14 | +| SA-2 | - | aes128 | 42 gigabytes | 14 | +| SA-3 | disabled | disabled | 8 hours | 17 | +| SA-4 | md5 | 3des | - | - | +| SA-5 | sha512 | - | - | - | +| SA-6 | sha384 | - | - | - | +| SA-7 | - | - | - | - | + +### IPSec profiles + +| Profile name | IKE policy | SA policy | Connection | DPD Interval | DPD Time | DPD action | Mode | Flow Parallelization | +| ------------ | ---------- | ----------| ---------- | ------------ | -------- | ---------- | ---- | -------------------- | +| Profile-1 | IKE-1 | SA-1 | start | - | - | - | transport | - | +| Profile-2 | - | SA-2 | start | - | - | - | tunnel | False | +| Profile-3 | - | SA-3 | start | - | - | - | tunnel | True | +| Profile-4 | - | - | - | - | - | - | - | - | + +### Key controller + +| Profile name | +| ------------ | +| Profile-1 | + +### IP Security Device Configuration + +```eos +! +ip security + ike policy IKE-1 + integrity md5 + ike-lifetime 24 + encryption aes256 + dh-group 20 + local-id 192.168.100.1 + ! + ike policy IKE-2 + integrity sha512 + ! + ike policy IKE-FQDN + local-id fqdn fqdn.local + ! + ike policy IKE-UFQDN + local-id fqdn my.awesome@fqdn.local + ! + sa policy SA-1 + esp encryption aes128 + pfs dh-group 14 + ! + sa policy SA-2 + esp encryption aes128 + sa lifetime 42 gigabytes + pfs dh-group 14 + ! + sa policy SA-3 + esp encryption null + esp integrity null + sa lifetime 8 hours + pfs dh-group 17 + ! + sa policy SA-4 + esp encryption 3des + esp integrity md5 + ! + sa policy SA-5 + esp integrity sha512 + ! + sa policy SA-6 + esp integrity sha384 + ! + sa policy SA-7 + ! + profile Profile-1 + ike-policy IKE-1 + sa-policy SA-1 + connection start + shared-key 7 + dpd 42 666 clear + mode transport + ! + profile Profile-2 + sa-policy SA-2 + connection start + shared-key 7 + mode tunnel + ! + profile Profile-3 + sa-policy SA-3 + connection start + shared-key 7 + flow parallelization encapsulation udp + mode tunnel + ! + profile Profile-4 + ! + key controller + profile Profile-1 + hardware encryption disabled +``` + +## Interfaces + +### Switchport Default + +#### Switchport Defaults Summary + +- Default Switchport Mode: access +- Default Switchport Phone COS: 0 +- Default Switchport Phone Trunk: tagged +- Default Switchport Phone VLAN: 69 + +#### Switchport Default Device Configuration + +```eos +! +switchport default mode access +! +switchport default phone cos 0 +! +switchport default phone vlan 69 +``` + +### Interface Profiles + +#### Interface Profiles Summary + +- TEST-PROFILE-1 +- TEST-PROFILE-2 + +#### Interface Profiles Device Configuration + +```eos +! +interface profile TEST-PROFILE-1 + command description Molecule + command no switchport + command no lldp transmit +! +interface profile TEST-PROFILE-2 + command mtu 9214 + command ptp enable +``` + +### DPS Interfaces + +#### DPS Interfaces Summary + +| Interface | IP address | Shutdown | MTU | Flow tracker(s) | TCP MSS Ceiling | +| --------- | ---------- | -------- | --- | --------------- | --------------- | +| Dps1 | 192.168.42.42/24 | True | 666 | Hardware: FT-HW
Sampled: FT-S | IPv4: 666
IPv6: 666
Direction: ingress | + +#### DPS Interfaces Device Configuration + +```eos +! +interface Dps1 + description Test DPS Interface + shutdown + mtu 666 + flow tracker hardware FT-HW + flow tracker sampled FT-S + ip address 192.168.42.42/24 + tcp mss ceiling ipv4 666 ipv6 666 ingress + load-interval 42 +``` + +### Ethernet Interfaces + +#### Ethernet Interfaces Summary + +##### L2 + +| Interface | Description | Mode | VLANs | Native VLAN | Trunk Group | Channel-Group | +| --------- | ----------- | ---- | ----- | ----------- | ----------- | ------------- | +| Ethernet1 | P2P_LINK_TO_DC1-SPINE1_Ethernet1 | dot1q-tunnel | 110-111,200,210-211 | tag | g1, g2 | - | +| Ethernet2 | SRV-POD02_Eth1 | trunk | 110-111,210-211 | - | - | - | +| Ethernet3 | P2P_LINK_TO_DC1-SPINE2_Ethernet2 | trunk | - | 5 | - | - | +| Ethernet5 | Molecule Routing | - | 220 | - | - | - | +| Ethernet6 | SRV-POD02_Eth1 | trunk | 110-111,210-211 | - | - | - | +| Ethernet7 | Molecule L2 | - | - | - | - | - | +| Ethernet11 | interface_in_mode_access_accepting_tagged_LACP | access | 200 | - | - | - | +| Ethernet12 | interface_with_dot1q_tunnel | dot1q-tunnel | 300 | - | - | - | +| Ethernet13 | interface_in_mode_access_with_voice | trunk phone | - | 100 | - | - | +| Ethernet14 | SRV-POD02_Eth1 | trunk | 110-111,210-211 | - | - | - | +| Ethernet15 | PVLAN Promiscuous Access - only one secondary | access | 110 | - | - | - | +| Ethernet16 | PVLAN Promiscuous Trunk - vlan translation out | trunk | 110-112 | - | - | - | +| Ethernet17 | PVLAN Secondary Trunk | trunk | 110-112 | - | - | - | +| Ethernet19 | Switched port with no LLDP rx/tx | access | 110 | - | - | - | +| Ethernet21 | 200MBit/s shape | - | - | - | - | - | +| Ethernet22 | 10% shape | - | - | - | - | - | +| Ethernet23 | Error-correction encoding | - | - | - | - | - | +| Ethernet24 | Disable error-correction encoding | - | - | - | - | - | +| Ethernet25 | Molecule MAC | - | - | - | - | - | +| Ethernet27 | EVPN-Vxlan single-active redundancy | - | - | - | - | - | +| Ethernet28 | EVPN-MPLS multihoming | - | - | - | - | - | +| Ethernet29 | DOT1X Testing - auto phone true | - | - | - | - | - | +| Ethernet30 | DOT1X Testing - force-authorized phone false | - | - | - | - | - | +| Ethernet31 | DOT1X Testing - force-unauthorized - no phone | - | - | - | - | - | +| Ethernet32 | DOT1X Testing - auto reauthentication | - | - | - | - | - | +| Ethernet33 | DOT1X Testing - pae mode authenticator | - | - | - | - | - | +| Ethernet34 | DOT1X Testing - authentication_failure allow | - | - | - | - | - | +| Ethernet35 | DOT1X Testing - authentication_failure drop | - | - | - | - | - | +| Ethernet36 | DOT1X Testing - host-mode single-host | - | - | - | - | - | +| Ethernet37 | DOT1X Testing - host-mode multi-host | - | - | - | - | - | +| Ethernet38 | DOT1X Testing - host-mode multi-host authenticated | - | - | - | - | - | +| Ethernet39 | DOT1X Testing - mac_based_authentication host-mode common true | - | - | - | - | - | +| Ethernet40 | DOT1X Testing - mac_based_authentication always | - | - | - | - | - | +| Ethernet41 | DOT1X Testing - mac_based_authentication always and host-mode common | - | - | - | - | - | +| Ethernet42 | DOT1X Testing - mac_based_authentication | - | - | - | - | - | +| Ethernet43 | DOT1X Testing - timeout values | - | - | - | - | - | +| Ethernet44 | DOT1X Testing - reauthorization_request_limit | - | - | - | - | - | +| Ethernet45 | DOT1X Testing - all features | - | - | - | - | - | +| Ethernet46 | native-vlan-tag-precedence | trunk | - | tag | - | - | +| Ethernet48 | Load Interval | - | - | - | - | - | +| Ethernet50 | SFlow Interface Testing - SFlow ingress enabled | - | - | - | - | - | +| Ethernet51 | SFlow Interface Testing - SFlow egress enabled | - | - | - | - | - | +| Ethernet52 | SFlow Interface Testing - SFlow ingress and egress unmodified enabled | - | - | - | - | - | +| Ethernet53 | SFlow Interface Testing - SFlow ingress and egress disabled | - | - | - | - | - | +| Ethernet54 | SFlow Interface Testing - SFlow ingress and egress unmodified disabled | - | - | - | - | - | +| Ethernet56 | Interface with poe commands and limit in class | - | - | - | - | - | +| Ethernet57 | Interface with poe commands and limit in watts | - | - | - | - | - | +| Ethernet58 | Interface with poe disabled and no other poe keys | - | - | - | - | - | +| Ethernet60 | IP NAT Testing | - | - | - | - | - | +| Ethernet61 | interface_in_mode_access_with_voice | trunk phone | - | 100 | - | - | +| Ethernet62 | interface_in_mode_access_with_voice | trunk phone | - | 100 | - | - | +| Ethernet67 | Custom_Transceiver_Frequency | - | - | - | - | - | +| Ethernet68 | Custom_Transceiver_Frequency | - | - | - | - | - | +| Ethernet69 | IP NAT service-profile | - | - | - | - | - | +| Ethernet73 | DC1-AGG01_Ethernet1 | *trunk | *110,201 | *- | *- | 5 | +| Ethernet74 | MLAG_PEER_DC1-LEAF1B_Ethernet3 | *trunk | *2-4094 | *- | *LEAF_PEER_L3, MLAG | 3 | +| Ethernet75 | MLAG_PEER_DC1-LEAF1B_Ethernet4 | *trunk | *2-4094 | *- | *LEAF_PEER_L3, MLAG | 3 | +| Ethernet76 | SRV-POD03_Eth1 | *trunk | *110,201 | *- | *- | 5 | +| Ethernet78 | DC1-AGG03_Ethernet1 | *trunk | *110,201 | *- | *- | 15 | +| Ethernet79 | DC1-AGG04_Ethernet1 | *trunk | *110,201 | *10 | *- | 16 | +| Ethernet80/1 | LAG Member | *access | *110 | *- | *- | 101 | +| Ethernet80/2 | LAG Member | *trunk | *110-112 | *- | *- | 102 | +| Ethernet80/3 | LAG Member | *trunk | *110-112 | *- | *- | 103 | +| Ethernet80/4 | LAG Member LACP fallback | *trunk | *112 | *- | *- | 104 | +| Ethernet81 | LAG Member | *access | *110 | *- | *- | 109 | +| Ethernet81/2 | LAG Member LACP fallback LLDP ZTP VLAN | *trunk | *112 | *- | *- | 112 | + +*Inherited from Port-Channel Interface + +##### Encapsulation Dot1q Interfaces + +| Interface | Description | Vlan ID | Dot1q VLAN Tag | Dot1q Inner VLAN Tag | +| --------- | ----------- | ------- | -------------- | -------------------- | +| Ethernet8.101 | to WAN-ISP-01 Ethernet2.101 - VRF-C1 | - | 101 | - | +| Ethernet67.1 | Test_encapsulation_dot1q | - | 4 | 34 | + +##### Flexible Encapsulation Interfaces + +| Interface | Description | Vlan ID | Client Encapsulation | Client Inner Encapsulation | Client VLAN | Client Outer VLAN Tag | Client Inner VLAN Tag | Network Encapsulation | Network Inner Encapsulation | Network VLAN | Network Outer VLAN Tag | Network Inner VLAN Tag | +| --------- | ----------- | ------- | --------------- | --------------------- | ----------- | --------------------- | --------------------- | ---------------- | ---------------------- |------------ | ---------------------- | ---------------------- | +| Ethernet26.1 | TENANT_A pseudowire 1 interface | - | unmatched | - | - | - | - | - | - | - | - | - | +| Ethernet26.100 | TENANT_A pseudowire 1 interface | 10 | dot1q | - | 100 | - | - | client | - | - | - | - | +| Ethernet26.200 | TENANT_A pseudowire 2 interface | - | dot1q | - | 200 | - | - | - | - | - | - | - | +| Ethernet26.300 | TENANT_A pseudowire 3 interface | - | dot1q | - | 300 | - | - | dot1q | - | 400 | - | - | +| Ethernet26.400 | TENANT_A pseudowire 3 interface | - | dot1q | - | - | 400 | 20 | dot1q | - | - | 401 | 21 | +| Ethernet26.500 | TENANT_A pseudowire 3 interface | - | dot1q | - | - | 500 | 50 | client | - | - | - | - | +| Ethernet68.1 | Test_encapsulation_vlan1 | - | dot1q | dot1q | - | 23 | 45 | dot1ad | dot1ad | - | 32 | 54 | +| Ethernet68.2 | Test_encapsulation_vlan2 | - | dot1q | - | 10 | - | - | dot1q | - | - | 32 | 54 | +| Ethernet68.3 | Test_encapsulation_vlan3 | - | dot1ad | - | 12 | - | - | dot1q | - | 25 | - | - | +| Ethernet68.4 | Test_encapsulation_vlan4 | - | dot1ad | dot1q | - | 35 | 60 | dot1q | dot1ad | - | 53 | 6 | +| Ethernet68.5 | Test_encapsulation_vlan5 | - | dot1ad | - | - | 35 | 60 | dot1ad | - | - | 52 | 62 | +| Ethernet68.6 | Test_encapsulation_vlan6 | - | dot1ad | - | - | 35 | 60 | client | - | - | - | - | +| Ethernet68.7 | Test_encapsulation_vlan7 | - | untagged | - | - | - | - | dot1ad | - | - | 35 | 60 | +| Ethernet68.8 | Test_encapsulation_vlan8 | - | untagged | - | - | - | - | dot1q | - | - | 35 | 60 | +| Ethernet68.9 | Test_encapsulation_vlan9 | - | untagged | - | - | - | - | untagged | - | - | - | - | +| Ethernet68.10 | Test_encapsulation_vlan9 | - | dot1q | - | - | 14 | 11 | client inner | - | - | - | - | + +##### Private VLAN + +| Interface | PVLAN Mapping | Secondary Trunk | +| --------- | ------------- | ----------------| +| Ethernet1 | 20-30 | True | +| Ethernet2 | - | False | +| Ethernet15 | 111 | - | +| Ethernet17 | - | True | + +##### VLAN Translations + +| Interface | Direction | From VLAN ID(s) | To VLAN ID | From Inner VLAN ID | To Inner VLAN ID | Network | Dot1q-tunnel | +| --------- | --------- | --------------- | ---------- | ------------------ | ---------------- | ------- | ------------ | +| Ethernet1 | both | 12 | 20 | - | - | - | - | +| Ethernet1 | both | 24 | 46 | 78 | - | True | - | +| Ethernet1 | both | 24 | 46 | 78 | - | False | - | +| Ethernet1 | both | 43 | 30 | - | - | - | True | +| Ethernet1 | in | 10 | 24 | - | - | - | - | +| Ethernet1 | in | 23 | 45 | - | - | - | True | +| Ethernet1 | in | 37 | 49 | 56 | - | - | - | +| Ethernet1 | out | 10 | 45 | - | 34 | - | - | +| Ethernet1 | out | 34 | 50 | - | - | - | - | +| Ethernet1 | out | 45 | all | - | - | - | True | +| Ethernet1 | out | 55 | - | - | - | - | - | +| Ethernet3 | out | 23 | 50 | - | - | - | True | +| Ethernet16 | out | 111-112 | 110 | - | - | - | - | + +##### TCP MSS Clamping + +| Interface | Ipv4 Segment Size | Ipv6 Segment Size | Direction | +| --------- | ----------------- | ----------------- | --------- | +| Ethernet1 | 70 | 75 | egress | +| Ethernet2 | 70 | - | ingress | +| Ethernet3 | - | 65 | - | +| Ethernet4 | 65 | - | - | + +##### Transceiver Settings + +| Interface | Transceiver Frequency | Media Override | +| --------- | --------------------- | -------------- | +| Ethernet7 | - | 100gbase-ar4 | +| Ethernet67 | 190050.000 | - | +| Ethernet68 | 190080.000 ghz | 100gbase-ar4 | +| Ethernet73 | - | 100gbase-ar4 | + +##### Link Tracking Groups + +| Interface | Group Name | Direction | +| --------- | ---------- | --------- | +| Ethernet1 | EVPN_MH_ES1 | upstream | +| Ethernet1 | EVPN_MH_ES3, EVPN_MH_ES4 | upstream | +| Ethernet3 | EVPN_MH_ES2 | downstream | + +##### Phone Interfaces + +| Interface | Mode | Native VLAN | Phone VLAN | Phone VLAN Mode | +| --------- | ---- | ----------- | ---------- | --------------- | +| Ethernet1 | dot1q-tunnel | 5 | 110 | tagged | +| Ethernet13 | trunk phone | 100 | 70 | untagged | +| Ethernet61 | trunk phone | 100 | 70 | untagged phone | +| Ethernet62 | trunk phone | 100 | 70 | tagged phone | +| Port-Channel12 | trunk phone | 100 | 70 | untagged | +| Port-Channel100 | dot1q-tunnel | 5 | 110 | tagged | + +##### Multicast Routing + +| Interface | IP Version | Static Routes Allowed | Multicast Boundaries | +| --------- | ---------- | --------------------- | -------------------- | +| Ethernet2 | IPv4 | True | ACL_MULTICAST | +| Ethernet2 | IPv6 | - | ACL_V6_MULTICAST | +| Ethernet4 | IPv4 | True | 224.0.1.0/24, 224.0.2.0/24 | +| Ethernet4 | IPv6 | - | ff00::/16, ff01::/16 | +| Ethernet9 | IPv4 | - | ACL_MULTICAST | +| Ethernet9 | IPv6 | True | - | + +##### IPv4 + +| Interface | Description | Channel Group | IP Address | VRF | MTU | Shutdown | ACL In | ACL Out | +| --------- | ----------- | ------------- | ---------- | ----| ---- | -------- | ------ | ------- | +| Ethernet1 | P2P_LINK_TO_DC1-SPINE1_Ethernet1 | - | 172.31.255.1/31 | default | 1500 | - | - | - | +| Ethernet2 | SRV-POD02_Eth1 | - | 10.1.255.3/24 | default | - | - | - | - | +| Ethernet3 | P2P_LINK_TO_DC1-SPINE2_Ethernet2 | - | 172.31.128.1/31 | default | 1500 | - | - | - | +| Ethernet8.101 | to WAN-ISP-01 Ethernet2.101 - VRF-C1 | - | 172.31.128.1/31 | default | - | - | - | - | +| Ethernet9 | interface_with_mpls_enabled | - | 172.31.128.9/31 | default | - | - | - | - | +| Ethernet10 | interface_with_mpls_disabled | - | 172.31.128.10/31 | default | - | - | - | - | +| Ethernet18 | PBR Description | - | 192.0.2.1/31 | default | 1500 | - | - | - | +| Ethernet47 | IP Helper | - | 172.31.255.1/31 | default | - | - | - | - | +| Ethernet63 | DHCP client interface | - | dhcp | default | - | - | - | - | +| Ethernet64 | DHCP server interface | - | 192.168.42.42/24 | default | - | - | - | - | +| Ethernet65 | Multiple VRIDs | - | 192.0.2.2/25 | default | - | False | - | - | +| Ethernet66 | Multiple VRIDs and tracking | - | 192.0.2.2/25 | default | - | False | - | - | +| Ethernet80 | LAG Member | 17 | *192.0.2.3/31 | **default | **- | **- | **- | **- | + +*Inherited from Port-Channel Interface + +##### IP NAT: Source Static + +| Interface | Direction | Original IP | Original Port | Access List | Translated IP | Translated Port | Protocol | Group | Priority | Comment | +| --------- | --------- | ----------- | ------------- | ----------- | ------------- | --------------- | -------- | ----- | -------- | ------- | +| Ethernet60 | - | 3.0.0.1 | - | - | 4.0.0.1 | - | - | - | 0 | - | +| Ethernet60 | - | 3.0.0.2 | 22 | - | 4.0.0.2 | - | - | - | 0 | - | +| Ethernet60 | - | 3.0.0.3 | 22 | - | 4.0.0.3 | 23 | - | - | 0 | - | +| Ethernet60 | - | 3.0.0.4 | 22 | - | 4.0.0.4 | 23 | UDP | - | 0 | - | +| Ethernet60 | - | 3.0.0.5 | 22 | - | 4.0.0.5 | 23 | TCP | 1 | 0 | - | +| Ethernet60 | - | 3.0.0.6 | 22 | - | 4.0.0.6 | 23 | TCP | 2 | 5 | Comment Test | +| Ethernet60 | - | 3.0.0.7 | - | ACL21 | 4.0.0.7 | - | - | - | 0 | - | +| Ethernet60 | ingress | 3.0.0.8 | - | - | 4.0.0.8 | - | - | - | 0 | - | + +##### IP NAT: Source Dynamic + +| Interface | Access List | NAT Type | Pool Name | Priority | Comment | +| --------- | ----------- | -------- | --------- | -------- | ------- | +| Ethernet60 | ACL11 | pool | POOL11 | 0 | - | +| Ethernet60 | ACL12 | pool | POOL11 | 0 | POOL11 shared with ACL11/12 | +| Ethernet60 | ACL13 | pool | POOL13 | 10 | - | +| Ethernet60 | ACL14 | pool | POOL14 | 1 | Priority low end | +| Ethernet60 | ACL15 | pool | POOL15 | 4294967295 | Priority high end | +| Ethernet60 | ACL16 | pool | POOL16 | 0 | Priority default | +| Ethernet60 | ACL17 | overload | - | 10 | Priority_10 | +| Ethernet60 | ACL18 | pool-address-only | POOL18 | 10 | Priority_10 | +| Ethernet60 | ACL19 | pool-full-cone | POOL19 | 10 | Priority_10 | + +##### IP NAT: Destination Static + +| Interface | Direction | Original IP | Original Port | Access List | Translated IP | Translated Port | Protocol | Group | Priority | Comment | +| --------- | --------- | ----------- | ------------- | ----------- | ------------- | --------------- | -------- | ----- | -------- | ------- | +| Ethernet60 | - | 1.0.0.1 | - | - | 2.0.0.1 | - | - | - | 0 | - | +| Ethernet60 | - | 1.0.0.2 | 22 | - | 2.0.0.2 | - | - | - | 0 | - | +| Ethernet60 | - | 1.0.0.3 | 22 | - | 2.0.0.3 | 23 | - | - | 0 | - | +| Ethernet60 | - | 1.0.0.4 | 22 | - | 2.0.0.4 | 23 | udp | - | 0 | - | +| Ethernet60 | - | 1.0.0.5 | 22 | - | 2.0.0.5 | 23 | tcp | 1 | 0 | - | +| Ethernet60 | - | 1.0.0.6 | 22 | - | 2.0.0.6 | 23 | tcp | 2 | 5 | Comment Test | +| Ethernet60 | - | 1.0.0.7 | - | ACL21 | 2.0.0.7 | - | - | - | 0 | - | +| Ethernet60 | egress | 239.0.0.1 | - | - | 239.0.0.2 | - | - | - | 0 | - | + +##### IP NAT: Destination Dynamic + +| Interface | Access List | Pool Name | Priority | Comment | +| --------- | ----------- | --------- | -------- | ------- | +| Ethernet60 | ACL1 | POOL1 | 0 | - | +| Ethernet60 | ACL2 | POOL1 | 0 | POOL1 shared with ACL1/2 | +| Ethernet60 | ACL3 | POOL3 | 10 | - | +| Ethernet60 | ACL4 | POOL4 | 1 | Priority low end | +| Ethernet60 | ACL5 | POOL5 | 4294967295 | Priority high end | +| Ethernet60 | ACL6 | POOL6 | 0 | Priority default | + +##### IP NAT: Interfaces configured via profile + +| Interface | Profile | +| --------- |-------- | +| Ethernet69 | TEST-NAT-PROFILE | + +##### IPv6 + +| Interface | Description | Channel Group | IPv6 Address | VRF | MTU | Shutdown | ND RA Disabled | Managed Config Flag | IPv6 ACL In | IPv6 ACL Out | +| --------- | ----------- | --------------| ------------ | --- | --- | -------- | -------------- | -------------------| ----------- | ------------ | +| Ethernet3 | P2P_LINK_TO_DC1-SPINE2_Ethernet2 | - | 2002:ABDC::1/64 | default | 1500 | - | - | - | - | - | +| Ethernet4 | Molecule IPv6 | - | 2020::2020/64 | default | 9100 | True | True | True | IPv6_ACL_IN | IPv6_ACL_OUT | +| Ethernet8.101 | to WAN-ISP-01 Ethernet2.101 - VRF-C1 | - | 2002:ABDC::1/64 | default | - | - | - | - | - | - | +| Ethernet55 | DHCPv6 Relay Testing | - | a0::1/64 | default | - | False | - | - | - | - | +| Ethernet65 | Multiple VRIDs | - | 2001:db8::2/64 | default | - | False | - | - | - | - | +| Ethernet66 | Multiple VRIDs and tracking | - | 2001:db8::2/64 | default | - | False | - | - | - | - | + +##### VRRP Details + +| Interface | VRRP-ID | Priority | Advertisement Interval | Preempt | Tracked Object Name(s) | Tracked Object Action(s) | IPv4 Virtual IP | IPv4 VRRP Version | IPv6 Virtual IP | +| --------- | ------- | -------- | ---------------------- | --------| ---------------------- | ------------------------ | --------------- | ----------------- | --------------- | +| Ethernet65 | 1 | 105 | 2 | Enabled | - | - | 192.0.2.1 | 2 | - | +| Ethernet65 | 2 | - | - | Enabled | - | - | - | 2 | 2001:db8::1 | +| Ethernet66 | 1 | 105 | 2 | Enabled | ID1TrackedObjectDecrement, ID1TrackedObjectShutdown | Decrement 5, Shutdown | 192.0.2.1 | 2 | - | +| Ethernet66 | 2 | - | - | Enabled | ID2TrackedObjectDecrement, ID2TrackedObjectShutdown | Decrement 10, Shutdown | - | 2 | 2001:db8::1 | +| Ethernet66 | 3 | - | - | Disabled | - | - | 100.64.0.1 | 3 | - | + +##### ISIS + +| Interface | Channel Group | ISIS Instance | ISIS BFD | ISIS Metric | Mode | ISIS Circuit Type | Hello Padding | Authentication Mode | +| --------- | ------------- | ------------- | -------- | ----------- | ---- | ----------------- | ------------- | ------------------- | +| Ethernet5 | - | ISIS_TEST | True | 99 | point-to-point | level-2 | False | md5 | +| Ethernet81/10 | 110 | *ISIS_TEST | True | *99 | *point-to-point | *level-2 | *True | *text | + +*Inherited from Port-Channel Interface + +##### EVPN Multihoming + +####### EVPN Multihoming Summary + +| Interface | Ethernet Segment Identifier | Multihoming Redundancy Mode | Route Target | +| --------- | --------------------------- | --------------------------- | ------------ | +| Ethernet27 | 0000:0000:0000:0102:0304 | single-active | 00:00:01:02:03:04 | +| Ethernet28 | 0000:0000:0000:0102:0305 | all-active | 00:00:01:02:03:05 | + +####### Designated Forwarder Election Summary + +| Interface | Algorithm | Preference Value | Dont Preempt | Hold time | Subsequent Hold Time | Candidate Reachability Required | +| --------- | --------- | ---------------- | ------------ | --------- | -------------------- | ------------------------------- | +| Ethernet27 | preference | 100 | True | 10 | - | True | + +####### EVPN-MPLS summary + +| Interface | Shared Index | Tunnel Flood Filter Time | +| --------- | ------------ | ------------------------ | +| Ethernet28 | 100 | 100 | + +##### Error Correction Encoding Interfaces + +| Interface | Enabled | +| --------- | ------- | +| Ethernet23 | fire-code
reed-solomon | +| Ethernet24 | Disabled | +| Ethernet81/1 | fire-code
reed-solomon | + +#### Priority Flow Control + +| Interface | PFC | Priority | Drop/No_drop | +| Ethernet1 | True | 5 | False | +| Ethernet2 | True | 5 | True | +| Ethernet3 | False | - | - | +| Ethernet4 | True | - | - | + +#### Ethernet Interfaces Device Configuration + +```eos +! +interface Ethernet1 + description P2P_LINK_TO_DC1-SPINE1_Ethernet1 + mtu 1500 + bgp session tracker ST1 + l2 mtu 8000 + l2 mru 8000 + speed forced 100gfull + switchport access vlan 200 + switchport trunk native vlan tag + switchport phone vlan 110 + switchport phone trunk tagged + switchport vlan translation in required + switchport dot1q vlan tag required + switchport trunk allowed vlan 110-111,210-211 + switchport mode dot1q-tunnel + switchport dot1q ethertype 1536 + switchport vlan forwarding accept all + switchport trunk group g1 + switchport trunk group g2 + no switchport + switchport source-interface tx + switchport vlan translation 12 20 + switchport vlan translation 24 inner 78 network 46 + switchport vlan translation 24 inner 78 46 + switchport vlan translation 43 dot1q-tunnel 30 + switchport vlan translation in 10 24 + switchport vlan translation in 37 inner 56 49 + switchport vlan translation in 23 dot1q-tunnel 45 + switchport vlan translation out 34 50 + switchport vlan translation out 10 45 inner 34 + switchport vlan translation out 45 dot1q-tunnel all + switchport trunk private-vlan secondary + switchport pvlan mapping 20-30 + ip address 172.31.255.1/31 + ip verify unicast source reachable-via rx + bfd interval 500 min-rx 500 multiplier 5 + bfd echo + ip igmp host-proxy + ip igmp host-proxy 239.0.0.1 + ip igmp host-proxy 239.0.0.2 exclude 10.0.2.1 + ip igmp host-proxy 239.0.0.3 include 10.0.3.1 + ip igmp host-proxy 239.0.0.4 include 10.0.4.3 + ip igmp host-proxy 239.0.0.4 include 10.0.4.4 + ip igmp host-proxy 239.0.0.4 exclude 10.0.4.1 + ip igmp host-proxy 239.0.0.4 exclude 10.0.4.2 + ip igmp host-proxy access-list ACL1 + ip igmp host-proxy access-list ACL2 + 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 + priority-flow-control priority 5 drop + switchport backup-link Ethernet5 prefer vlan 10 + switchport backup preemption-delay 35 + switchport backup mac-move-burst 20 + switchport backup mac-move-burst-interval 30 + switchport backup initial-mac-move-delay 10 + switchport backup dest-macaddr 01:00:00:00:00:00 + link tracking group EVPN_MH_ES1 upstream + link tracking group EVPN_MH_ES3 upstream + link tracking group EVPN_MH_ES4 upstream + comment + Comment created from eos_cli under ethernet_interfaces.Ethernet1 + EOF + +! +interface Ethernet2 + description SRV-POD02_Eth1 + switchport dot1q vlan tag disallowed + switchport trunk allowed vlan 110-111,210-211 + switchport mode trunk + switchport + ip address 10.1.255.3/24 + ip address 1.1.1.3/24 secondary + ip address 1.1.1.4/24 secondary + ip address 10.0.0.254/24 secondary + ip address 192.168.1.1/24 secondary + tcp mss ceiling ipv4 70 ingress + multicast ipv4 boundary ACL_MULTICAST + multicast ipv6 boundary ACL_V6_MULTICAST out + multicast ipv4 static + switchport port-security violation protect log + switchport port-security mac-address maximum 100 + priority-flow-control on + priority-flow-control priority 5 no-drop + storm-control broadcast level pps 500 + storm-control unknown-unicast level 1 + storm-control all level 10 + spanning-tree bpduguard disable + spanning-tree bpdufilter disable +! +interface Ethernet3 + description P2P_LINK_TO_DC1-SPINE2_Ethernet2 + mtu 1500 + switchport trunk native vlan 5 + switchport mode trunk + no switchport + switchport vlan translation out 23 dot1q-tunnel 50 + no snmp trap link-change + ip address 172.31.128.1/31 + ipv6 enable + ipv6 address 2002:ABDC::1/64 + ipv6 nd prefix 2345:ABCD:3FE0::1/96 infinite 50 no-autoconfig + ipv6 nd prefix 2345:ABCD:3FE0::2/96 50 infinite + ipv6 nd prefix 2345:ABCD:3FE0::3/96 100000 no-autoconfig + tcp mss ceiling ipv6 65 + switchport port-security + no switchport port-security mac-address maximum disabled + switchport port-security vlan 1 mac-address maximum 3 + switchport port-security vlan 2 mac-address maximum 3 + switchport port-security vlan 2 mac-address maximum 4 + switchport port-security vlan 3 mac-address maximum 3 + switchport port-security vlan 22 mac-address maximum 4 + switchport port-security vlan 41 mac-address maximum 4 + switchport port-security vlan default mac-address maximum 2 + no priority-flow-control + spanning-tree guard root + switchport backup-link Ethernet4 + link tracking group EVPN_MH_ES2 downstream +! +interface Ethernet4 + description Molecule IPv6 + shutdown + mtu 9100 + no switchport + snmp trap link-change + ipv6 enable + ipv6 address 2020::2020/64 + ipv6 address FE80:FEA::AB65/64 link-local + ipv6 nd ra disabled + ipv6 nd managed-config-flag + tcp mss ceiling ipv4 65 + ipv6 access-group IPv6_ACL_IN in + ipv6 access-group IPv6_ACL_OUT out + multicast ipv4 boundary 224.0.1.0/24 out + multicast ipv4 boundary 224.0.2.0/24 + multicast ipv6 boundary ff00::/16 out + multicast ipv6 boundary ff01::/16 out + multicast ipv4 static + switchport port-security violation protect + priority-flow-control on + spanning-tree guard none +! +interface Ethernet5 + description Molecule Routing + no shutdown + mtu 9100 + switchport access vlan 220 + no switchport + ip ospf cost 99 + ip ospf network point-to-point + ip ospf authentication message-digest + ip ospf authentication-key 7 + ip ospf area 100 + ip ospf message-digest-key 1 sha512 7 + pim ipv4 sparse-mode + pim ipv4 bidirectional + pim ipv4 border-router + pim ipv4 hello interval 10 + pim ipv4 hello count 2.5 + pim ipv4 dr-priority 200 + pim ipv4 bfd + isis enable ISIS_TEST + isis bfd + isis circuit-type level-2 + isis metric 99 + no isis hello padding + isis network point-to-point + isis authentication mode md5 + isis authentication key 7 + spanning-tree guard loop +! +interface Ethernet6 + description SRV-POD02_Eth1 + logging event link-status + logging event congestion-drops + switchport trunk allowed vlan 110-111,210-211 + switchport mode trunk + switchport + logging event storm-control discards + spanning-tree bpduguard enable + spanning-tree bpdufilter enable + logging event spanning-tree +! +interface Ethernet7 + description Molecule L2 + no shutdown + mtu 7000 + switchport + ptp enable + ptp announce interval 10 + ptp announce timeout 30 + ptp delay-mechanism p2p + ptp delay-req interval 20 + ptp role master + ptp sync-message interval 5 + ptp transport layer2 + ptp vlan all + service-profile QoS + qos trust cos + qos cos 5 + storm-control broadcast level pps 10 + storm-control multicast level 50 + storm-control unknown-unicast level 10 + storm-control all level 75 + spanning-tree portfast + spanning-tree bpduguard enable + spanning-tree bpdufilter enable + vmtracer vmware-esx + transceiver media override 100gbase-ar4 +! +interface Ethernet8 + description to WAN-ISP1-01 Ethernet2 + no switchport + no lldp transmit + no lldp receive +! +interface Ethernet8.101 + description to WAN-ISP-01 Ethernet2.101 - VRF-C1 + encapsulation dot1q vlan 101 + ip address 172.31.128.1/31 + ipv6 enable + ipv6 address 2002:ABDC::1/64 +! +interface Ethernet9 + description interface_with_mpls_enabled + no switchport + ip address 172.31.128.9/31 + mpls ldp interface + multicast ipv4 boundary ACL_MULTICAST out + multicast ipv6 static + mpls ip +! +interface Ethernet10 + description interface_with_mpls_disabled + no switchport + ip address 172.31.128.10/31 + no mpls ldp interface + no mpls ip +! +interface Ethernet11 + description interface_in_mode_access_accepting_tagged_LACP + switchport access vlan 200 + switchport mode access + switchport + l2-protocol encapsulation dot1q vlan 200 +! +interface Ethernet12 + description interface_with_dot1q_tunnel + switchport access vlan 300 + switchport mode dot1q-tunnel + switchport +! +interface Ethernet13 + description interface_in_mode_access_with_voice + no logging event link-status + no logging event congestion-drops + switchport trunk native vlan 100 + switchport phone vlan 70 + switchport phone trunk untagged + switchport mode trunk phone + switchport + no logging event storm-control discards + no logging event spanning-tree +! +interface Ethernet14 + description SRV-POD02_Eth1 + logging event link-status + switchport trunk allowed vlan 110-111,210-211 + switchport mode trunk + switchport +! +interface Ethernet15 + description PVLAN Promiscuous Access - only one secondary + switchport access vlan 110 + switchport mode access + switchport + switchport pvlan mapping 111 +! +interface Ethernet16 + description PVLAN Promiscuous Trunk - vlan translation out + switchport vlan translation out required + switchport trunk allowed vlan 110-112 + switchport mode trunk + switchport + switchport vlan translation out 111-112 110 +! +interface Ethernet17 + description PVLAN Secondary Trunk + switchport trunk allowed vlan 110-112 + switchport mode trunk + switchport + switchport trunk private-vlan secondary +! +interface Ethernet18 + description PBR Description + mtu 1500 + no switchport + ip address 192.0.2.1/31 + service-policy type pbr input MyLANServicePolicy +! +interface Ethernet19 + description Switched port with no LLDP rx/tx + switchport access vlan 110 + switchport mode access + switchport + no lldp transmit + no lldp receive + lldp tlv transmit ztp vlan 666 +! +interface Ethernet20 + description Port patched through patch-panel to pseudowire + no switchport + no lldp transmit + no lldp receive +! +interface Ethernet21 + description 200MBit/s shape + switchport + no qos trust + shape rate 200000 kbps +! +interface Ethernet22 + description 10% shape + switchport + shape rate 10 percent +! +interface Ethernet23 + description Error-correction encoding + error-correction encoding fire-code + error-correction encoding reed-solomon + switchport +! +interface Ethernet24 + description Disable error-correction encoding + no error-correction encoding + switchport +! +interface Ethernet25 + description Molecule MAC + switchport + mac access-group MAC_ACL_IN in + mac access-group MAC_ACL_OUT out +! +interface Ethernet26 + no switchport +! +interface Ethernet26.1 + description TENANT_A pseudowire 1 interface + encapsulation vlan + client unmatched +! +interface Ethernet26.100 + description TENANT_A pseudowire 1 interface + vlan id 10 + encapsulation vlan + client dot1q 100 network client +! +interface Ethernet26.200 + description TENANT_A pseudowire 2 interface + encapsulation vlan + client dot1q 200 +! +interface Ethernet26.300 + description TENANT_A pseudowire 3 interface + encapsulation vlan + client dot1q 300 network dot1q 400 +! +interface Ethernet26.400 + description TENANT_A pseudowire 3 interface + encapsulation vlan + client dot1q outer 400 inner 20 network dot1q outer 401 inner 21 +! +interface Ethernet26.500 + description TENANT_A pseudowire 3 interface + encapsulation vlan + client dot1q outer 500 inner 50 network client +! +interface Ethernet27 + description EVPN-Vxlan single-active redundancy + switchport + ! + evpn ethernet-segment + identifier 0000:0000:0000:0102:0304 + redundancy single-active + designated-forwarder election algorithm preference 100 dont-preempt + designated-forwarder election hold-time 10 + designated-forwarder election candidate reachability required + route-target import 00:00:01:02:03:04 +! +interface Ethernet28 + description EVPN-MPLS multihoming + switchport + ! + evpn ethernet-segment + identifier 0000:0000:0000:0102:0305 + mpls tunnel flood filter time 100 + mpls shared index 100 + route-target import 00:00:01:02:03:05 +! +interface Ethernet29 + description DOT1X Testing - auto phone true + switchport + dot1x port-control auto + dot1x port-control force-authorized phone +! +interface Ethernet30 + description DOT1X Testing - force-authorized phone false + switchport + dot1x port-control force-authorized + no dot1x port-control force-authorized phone +! +interface Ethernet31 + description DOT1X Testing - force-unauthorized - no phone + switchport + dot1x port-control force-unauthorized +! +interface Ethernet32 + description DOT1X Testing - auto reauthentication + switchport + dot1x reauthentication + dot1x port-control auto +! +interface Ethernet33 + description DOT1X Testing - pae mode authenticator + switchport + dot1x pae authenticator +! +interface Ethernet34 + description DOT1X Testing - authentication_failure allow + switchport + dot1x authentication failure action traffic allow vlan 800 +! +interface Ethernet35 + description DOT1X Testing - authentication_failure drop + switchport + dot1x authentication failure action traffic drop +! +interface Ethernet36 + description DOT1X Testing - host-mode single-host + switchport + dot1x host-mode single-host +! +interface Ethernet37 + description DOT1X Testing - host-mode multi-host + switchport + dot1x host-mode multi-host +! +interface Ethernet38 + description DOT1X Testing - host-mode multi-host authenticated + switchport + dot1x host-mode multi-host authenticated +! +interface Ethernet39 + description DOT1X Testing - mac_based_authentication host-mode common true + switchport + dot1x mac based authentication host-mode common +! +interface Ethernet40 + description DOT1X Testing - mac_based_authentication always + switchport + dot1x mac based authentication always +! +interface Ethernet41 + description DOT1X Testing - mac_based_authentication always and host-mode common + switchport + dot1x mac based authentication host-mode common + dot1x mac based authentication always +! +interface Ethernet42 + description DOT1X Testing - mac_based_authentication + switchport + dot1x mac based authentication +! +interface Ethernet43 + description DOT1X Testing - timeout values + switchport + dot1x timeout quiet-period 10 + dot1x timeout reauth-timeout-ignore always + dot1x timeout tx-period 6 + dot1x timeout reauth-period server + dot1x timeout idle-host 15 seconds +! +interface Ethernet44 + description DOT1X Testing - reauthorization_request_limit + switchport + dot1x eapol disabled + dot1x reauthorization request limit 3 +! +interface Ethernet45 + description DOT1X Testing - all features + switchport + dot1x pae authenticator + dot1x authentication failure action traffic allow vlan 800 + dot1x reauthentication + dot1x port-control auto + dot1x host-mode multi-host authenticated + dot1x mac based authentication + dot1x timeout quiet-period 10 + dot1x timeout reauth-timeout-ignore always + dot1x timeout tx-period 10 + dot1x timeout reauth-period server + dot1x timeout idle-host 10 seconds + dot1x reauthorization request limit 2 + dot1x unauthorized access vlan membership egress + dot1x unauthorized native vlan membership egress + dot1x eapol authentication failure fallback mba timeout 600 +! +interface Ethernet46 + description native-vlan-tag-precedence + switchport trunk native vlan tag + switchport mode trunk + switchport +! +interface Ethernet47 + description IP Helper + no switchport + ip address 172.31.255.1/31 + ip helper-address 10.10.64.151 + ip helper-address 10.10.96.101 source-interface Loopback0 + ip helper-address 10.10.96.150 vrf MGMT source-interface Loopback0 + ip helper-address 10.10.96.151 vrf MGMT +! +interface Ethernet48 + description Load Interval + load-interval 5 + switchport +! +interface Ethernet50 + description SFlow Interface Testing - SFlow ingress enabled + switchport + sflow enable +! +interface Ethernet51 + description SFlow Interface Testing - SFlow egress enabled + switchport + sflow egress enable +! +interface Ethernet52 + description SFlow Interface Testing - SFlow ingress and egress unmodified enabled + switchport + sflow enable + sflow egress unmodified enable +! +interface Ethernet53 + description SFlow Interface Testing - SFlow ingress and egress disabled + switchport + no sflow enable + no sflow egress enable +! +interface Ethernet54 + description SFlow Interface Testing - SFlow ingress and egress unmodified disabled + switchport + no sflow enable + no sflow egress unmodified enable +! +interface Ethernet55 + description DHCPv6 Relay Testing + no shutdown + no switchport + ipv6 dhcp relay destination a0::2 link-address a0::3 + ipv6 dhcp relay destination a0::4 vrf TEST local-interface Loopback55 link-address a0::5 + ipv6 address a0::1/64 +! +interface Ethernet56 + description Interface with poe commands and limit in class + switchport + poe priority low + poe reboot action power-off + poe link down action power-off 10 seconds + poe shutdown action maintain + poe limit 30.00 watts + poe negotiation lldp disabled +! +interface Ethernet57 + description Interface with poe commands and limit in watts + switchport + poe priority critical + poe reboot action maintain + poe link down action maintain + poe shutdown action power-off + poe limit 45.00 watts fixed + poe legacy detect +! +interface Ethernet58 + description Interface with poe disabled and no other poe keys + switchport + poe disabled +! +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.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 + ip nat source dynamic access-list ACL14 pool POOL14 priority 1 comment Priority low end + ip nat source dynamic access-list ACL15 pool POOL15 priority 4294967295 comment Priority high end + ip nat source dynamic access-list ACL16 pool POOL16 comment Priority default + 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 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 + ip nat destination dynamic access-list ACL5 pool POOL5 priority 4294967295 comment Priority high end + ip nat destination dynamic access-list ACL6 pool POOL6 comment Priority default +! +interface Ethernet61 + description interface_in_mode_access_with_voice + no logging event link-status + no logging event congestion-drops + switchport trunk native vlan 100 + switchport phone vlan 70 + switchport phone trunk untagged phone + switchport mode trunk phone + switchport + no logging event storm-control discards + no logging event spanning-tree +! +interface Ethernet62 + description interface_in_mode_access_with_voice + no logging event link-status + no logging event congestion-drops + switchport trunk native vlan 100 + switchport phone vlan 70 + switchport phone trunk tagged phone + switchport mode trunk phone + switchport + no logging event storm-control discards + no logging event spanning-tree +! +interface Ethernet63 + description DHCP client interface + no switchport + ip address dhcp + dhcp client accept default-route +! +interface Ethernet64 + description DHCP server interface + no switchport + mac timestamp replace-fcs + ip address 192.168.42.42/24 + dhcp server ipv4 + dhcp server ipv6 +! +interface Ethernet65 + description Multiple VRIDs + no shutdown + no switchport + mac timestamp header + ip address 192.0.2.2/25 + ipv6 enable + ipv6 address 2001:db8::2/64 + ipv6 address fe80::2/64 link-local + vrrp 1 priority-level 105 + vrrp 1 advertisement interval 2 + vrrp 1 preempt delay minimum 30 reload 800 + vrrp 1 ipv4 192.0.2.1 + vrrp 2 ipv6 2001:db8::1 +! +interface Ethernet66 + description Multiple VRIDs and tracking + no shutdown + no switchport + ip address 192.0.2.2/25 + ipv6 enable + ipv6 address 2001:db8::2/64 + ipv6 address fe80::2/64 link-local + vrrp 1 priority-level 105 + vrrp 1 advertisement interval 2 + vrrp 1 preempt delay minimum 30 reload 800 + vrrp 1 ipv4 192.0.2.1 + vrrp 1 tracked-object ID1TrackedObjectDecrement decrement 5 + vrrp 1 tracked-object ID1TrackedObjectShutdown shutdown + vrrp 2 ipv6 2001:db8::1 + vrrp 2 tracked-object ID2TrackedObjectDecrement decrement 10 + vrrp 2 tracked-object ID2TrackedObjectShutdown shutdown + no vrrp 3 preempt + vrrp 3 timers delay reload 900 + vrrp 3 ipv4 100.64.0.1 + vrrp 3 ipv4 version 3 +! +interface Ethernet67 + description Custom_Transceiver_Frequency + no shutdown + switchport + mac timestamp before-fcs + transceiver frequency 190050.000 +! +interface Ethernet67.1 + description Test_encapsulation_dot1q + encapsulation dot1q vlan 4 inner 34 +! +interface Ethernet68 + description Custom_Transceiver_Frequency + no shutdown + switchport + transceiver media override 100gbase-ar4 + transceiver frequency 190080.000 ghz +! +interface Ethernet68.1 + description Test_encapsulation_vlan1 + encapsulation vlan + client dot1q outer 23 inner dot1q 45 network dot1ad outer 32 inner dot1ad 54 +! +interface Ethernet68.2 + description Test_encapsulation_vlan2 + encapsulation vlan + client dot1q 10 network dot1q outer 32 inner 54 +! +interface Ethernet68.3 + description Test_encapsulation_vlan3 + encapsulation vlan + client dot1ad 12 network dot1q 25 +! +interface Ethernet68.4 + description Test_encapsulation_vlan4 + encapsulation vlan + client dot1ad outer 35 inner dot1q 60 network dot1q outer 53 inner dot1ad 6 +! +interface Ethernet68.5 + description Test_encapsulation_vlan5 + encapsulation vlan + client dot1ad outer 35 inner 60 network dot1ad outer 52 inner 62 +! +interface Ethernet68.6 + description Test_encapsulation_vlan6 + encapsulation vlan + client dot1ad outer 35 inner 60 network client +! +interface Ethernet68.7 + description Test_encapsulation_vlan7 + encapsulation vlan + client untagged network dot1ad outer 35 inner 60 +! +interface Ethernet68.8 + description Test_encapsulation_vlan8 + encapsulation vlan + client untagged network dot1q outer 35 inner 60 +! +interface Ethernet68.9 + description Test_encapsulation_vlan9 + encapsulation vlan + client untagged network untagged ! -mac address-table notification host-flap logging -mac address-table notification host-flap detection window 10 -mac address-table notification host-flap detection moves 2 -``` - -## IP Security - -- Hardware encryption is disabled - -### IKE policies - -| Policy name | IKE lifetime | Encryption | DH group | Local ID | Integrity | -| ----------- | ------------ | ---------- | -------- | -------- | --------- | -| IKE-1 | 24 | aes256 | 20 | 192.168.100.1 | md5 | -| IKE-2 | - | - | - | - | sha512 | -| IKE-FQDN | - | - | - | fqdn.local | - | -| IKE-UFQDN | - | - | - | my.awesome@fqdn.local | - | - -### Security Association policies - -| Policy name | ESP Integrity | ESP Encryption | Lifetime | PFS DH Group | -| ----------- | ------------- | -------------- | -------- | ------------ | -| SA-1 | - | aes128 | - | 14 | -| SA-2 | - | aes128 | 42 gigabytes | 14 | -| SA-3 | disabled | disabled | 8 hours | 17 | -| SA-4 | md5 | 3des | - | - | -| SA-5 | sha512 | - | - | - | -| SA-6 | sha384 | - | - | - | -| SA-7 | - | - | - | - | - -### IPSec profiles - -| Profile name | IKE policy | SA policy | Connection | DPD Interval | DPD Time | DPD action | Mode | Flow Parallelization | -| ------------ | ---------- | ----------| ---------- | ------------ | -------- | ---------- | ---- | -------------------- | -| Profile-1 | IKE-1 | SA-1 | start | - | - | - | transport | - | -| Profile-2 | - | SA-2 | start | - | - | - | tunnel | False | -| Profile-3 | - | SA-3 | start | - | - | - | tunnel | True | -| Profile-4 | - | - | - | - | - | - | - | - | - -### Key controller - -| Profile name | -| ------------ | -| Profile-1 | - -### IP Security Device Configuration - -```eos +interface Ethernet68.10 + description Test_encapsulation_vlan9 + encapsulation vlan + client dot1q outer 14 inner 11 network client inner ! -ip security - ike policy IKE-1 - integrity md5 - ike-lifetime 24 - encryption aes256 - dh-group 20 - local-id 192.168.100.1 - ! - ike policy IKE-2 - integrity sha512 - ! - ike policy IKE-FQDN - local-id fqdn fqdn.local - ! - ike policy IKE-UFQDN - local-id fqdn my.awesome@fqdn.local - ! - sa policy SA-1 - esp encryption aes128 - pfs dh-group 14 - ! - sa policy SA-2 - esp encryption aes128 - sa lifetime 42 gigabytes - pfs dh-group 14 - ! - sa policy SA-3 - esp encryption null - esp integrity null - sa lifetime 8 hours - pfs dh-group 17 - ! - sa policy SA-4 - esp encryption 3des - esp integrity md5 - ! - sa policy SA-5 - esp integrity sha512 - ! - sa policy SA-6 - esp integrity sha384 - ! - sa policy SA-7 - ! - profile Profile-1 - ike-policy IKE-1 - sa-policy SA-1 - connection start - shared-key 7 - dpd 42 666 clear - mode transport - ! - profile Profile-2 - sa-policy SA-2 - connection start - shared-key 7 - mode tunnel - ! - profile Profile-3 - sa-policy SA-3 - connection start - shared-key 7 - flow parallelization encapsulation udp - mode tunnel - ! - profile Profile-4 - ! - key controller - profile Profile-1 - hardware encryption disabled -``` - -## Interfaces - -### Switchport Default - -#### Switchport Defaults Summary - -- Default Switchport Mode: access -- Default Switchport Phone COS: 0 -- Default Switchport Phone Trunk: tagged -- Default Switchport Phone VLAN: 69 - -#### Switchport Default Device Configuration - -```eos +interface Ethernet69 + description IP NAT service-profile + switchport + ip nat service-profile TEST-NAT-PROFILE ! -switchport default mode access +interface Ethernet70 + description dot1x_aaa_unresponsive + no shutdown + dot1x aaa unresponsive phone action apply cached-results timeout 10 hours else traffic allow + dot1x aaa unresponsive action traffic allow vlan 10 access-list acl1 + dot1x aaa unresponsive eap response success + dot1x mac based access-list ! -switchport default phone cos 0 +interface Ethernet71 + description dot1x_aaa_unresponsive1 + no shutdown + dot1x aaa unresponsive phone action apply cached-results timeout 10 hours + dot1x aaa unresponsive action traffic allow vlan 10 access-list acl1 + dot1x aaa unresponsive eap response success + dot1x mac based access-list ! -switchport default phone vlan 69 -``` - -### Interface Profiles - -#### Interface Profiles Summary - -- TEST-PROFILE-1 -- TEST-PROFILE-2 - -#### Interface Profiles Device Configuration - -```eos +interface Ethernet72 + description dot1x_aaa_unresponsive2 + no shutdown + dot1x aaa unresponsive action traffic allow vlan 10 access-list acl1 + dot1x aaa unresponsive eap response success + dot1x mac based access-list +! +interface Ethernet73 + description DC1-AGG01_Ethernet1 + channel-group 5 mode active + transceiver media override 100gbase-ar4 +! +interface Ethernet74 + description MLAG_PEER_DC1-LEAF1B_Ethernet3 + channel-group 3 mode active +! +interface Ethernet75 + description MLAG_PEER_DC1-LEAF1B_Ethernet4 + channel-group 3 mode active +! +interface Ethernet76 + description SRV-POD03_Eth1 + channel-group 5 mode active + no lldp transmit + no lldp receive +! +interface Ethernet77 + description MLAG_PEER_DC1-LEAF1B_Ethernet8 + channel-group 8 mode active +! +interface Ethernet78 + description DC1-AGG03_Ethernet1 + channel-group 15 mode active + lacp timer fast + lacp timer multiplier 30 +! +interface Ethernet79 + description DC1-AGG04_Ethernet1 + channel-group 16 mode active + lacp timer normal +! +interface Ethernet80 + description LAG Member + channel-group 17 mode active +! +interface Ethernet80/1 + description LAG Member + channel-group 101 mode active +! +interface Ethernet80/2 + description LAG Member + channel-group 102 mode active +! +interface Ethernet80/3 + description LAG Member + channel-group 103 mode active +! +interface Ethernet80/4 + description LAG Member LACP fallback + switchport trunk allowed vlan 100 + switchport mode trunk + switchport + channel-group 104 mode active + spanning-tree portfast ! -interface profile TEST-PROFILE-1 - command description Molecule - command no switchport - command no lldp transmit +interface Ethernet81 + description LAG Member + channel-group 109 mode active ! -interface profile TEST-PROFILE-2 - command mtu 9214 - command ptp enable -``` - -### DPS Interfaces - -#### DPS Interfaces Summary - -| Interface | IP address | Shutdown | MTU | Flow tracker(s) | TCP MSS Ceiling | -| --------- | ---------- | -------- | --- | --------------- | --------------- | -| Dps1 | 192.168.42.42/24 | True | 666 | Hardware: FT-HW
Sampled: FT-S | IPv4: 666
IPv6: 666
Direction: ingress | - -#### DPS Interfaces Device Configuration - -```eos +interface Ethernet81/1 + description LAG Member with error_correction + error-correction encoding fire-code + error-correction encoding reed-solomon + channel-group 111 mode active ! -interface Dps1 - description Test DPS Interface - shutdown - mtu 666 - flow tracker hardware FT-HW - flow tracker sampled FT-S - ip address 192.168.42.42/24 - tcp mss ceiling ipv4 666 ipv6 666 ingress - load-interval 42 -``` - -### Ethernet Interfaces - -#### Ethernet Interfaces Summary - -##### L2 - -| Interface | Description | Mode | VLANs | Native VLAN | Trunk Group | Channel-Group | -| --------- | ----------- | ---- | ----- | ----------- | ----------- | ------------- | - -*Inherited from Port-Channel Interface - -##### Phone Interfaces - -| Interface | Mode | Native VLAN | Phone VLAN | Phone VLAN Mode | -| --------- | ---- | ----------- | ---------- | --------------- | -| Port-Channel12 | trunk phone | 100 | 70 | untagged | -| Port-Channel100 | dot1q-tunnel | 5 | 110 | tagged | - -##### IPv4 - -| Interface | Description | Channel Group | IP Address | VRF | MTU | Shutdown | ACL In | ACL Out | -| --------- | ----------- | ------------- | ---------- | ----| ---- | -------- | ------ | ------- | -| Ethernet1 | - | - | 192.168.100.1/31 | default | - | - | - | - | - -*Inherited from Port-Channel Interface - -##### ISIS - -| Interface | Channel Group | ISIS Instance | ISIS BFD | ISIS Metric | Mode | ISIS Circuit Type | Hello Padding | Authentication Mode | -| --------- | ------------- | ------------- | -------- | ----------- | ---- | ----------------- | ------------- | ------------------- | - -*Inherited from Port-Channel Interface - -#### Ethernet Interfaces Device Configuration - -```eos +interface Ethernet81/2 + description LAG Member LACP fallback LLDP ZTP VLAN + switchport trunk allowed vlan 112 + switchport mode trunk + switchport + channel-group 112 mode active + lldp tlv transmit ztp vlan 112 + spanning-tree portfast ! -interface Ethernet1 - no switchport - ip address 192.168.100.1/31 - mpls ldp igp sync - mpls ldp interface - mpls ip +interface Ethernet81/10 + description isis_port_channel_member + channel-group 110 mode active ``` ### Port-Channel Interfaces @@ -2910,21 +4090,64 @@ interface Port-Channel132 | Interface | Description | VRF | IP Address | | --------- | ----------- | --- | ---------- | -| Loopback0 | - | default | 192.168.1.1/32 | +| Loopback0 | EVPN_Overlay_Peering | default | 192.168.255.3/32 | +| Loopback1 | VTEP_VXLAN_Tunnel_Source | default | 192.168.254.3/32 | +| Loopback99 | TENANT_A_PROJECT02_VTEP_DIAGNOSTICS | TENANT_A_PROJECT02 | 10.1.255.3/32
192.168.1.1/32 secondary
10.0.0.254/32 secondary | +| Loopback100 | TENANT_A_PROJECT02_VTEP_DIAGNOSTICS | TENANT_A_PROJECT02 | 10.1.255.3/32 | ##### IPv6 | Interface | Description | VRF | IPv6 Address | | --------- | ----------- | --- | ------------ | -| Loopback0 | - | default | - | +| Loopback0 | EVPN_Overlay_Peering | default | - | +| Loopback1 | VTEP_VXLAN_Tunnel_Source | default | - | +| Loopback99 | TENANT_A_PROJECT02_VTEP_DIAGNOSTICS | TENANT_A_PROJECT02 | 2002::CAFE/64 | +| Loopback100 | TENANT_A_PROJECT02_VTEP_DIAGNOSTICS | TENANT_A_PROJECT02 | - | + +##### ISIS + +| Interface | ISIS instance | ISIS metric | Interface mode | +| --------- | ------------- | ----------- | -------------- | +| Loopback99 | ISIS_TEST | 100 | point-to-point | #### Loopback Interfaces Device Configuration ```eos ! interface Loopback0 - ip address 192.168.1.1/32 + 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 + +! +interface Loopback1 + description VTEP_VXLAN_Tunnel_Source + ip address 192.168.254.3/32 +! +interface Loopback99 + description TENANT_A_PROJECT02_VTEP_DIAGNOSTICS + no shutdown + vrf TENANT_A_PROJECT02 + ip proxy-arp + ip address 10.1.255.3/32 + ip address 10.0.0.254/32 secondary + ip address 192.168.1.1/32 secondary + ipv6 enable + ipv6 address 2002::CAFE/64 mpls ldp interface + isis enable ISIS_TEST + isis bfd + isis metric 100 + isis passive + isis network point-to-point +! +interface Loopback100 + description TENANT_A_PROJECT02_VTEP_DIAGNOSTICS + vrf TENANT_A_PROJECT02 + ip address 10.1.255.3/32 ``` ### Tunnel Interfaces @@ -4149,6 +5372,7 @@ router bfd | Interface | Interval | Minimum RX | Multiplier | Echo | | --------- | -------- | ---------- | ---------- | ---- | +| Ethernet1 | 500 | 500 | 5 | True | | Port-Channel9 | 500 | 500 | 5 | True | | Vlan85 | 500 | 500 | 5 | True | @@ -4172,7 +5396,10 @@ router bfd | 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 | - | @@ -4218,7 +5445,7 @@ router bfd | ---- | -------------- | ------------- | | Speaker | 35 | 36 | -#### MPLS Device Configuration +### MPLS Device Configuration ```eos ! @@ -4530,6 +5757,7 @@ router pim sparse-mode | Interface Name | VRF Name | IP Version | Border Router | DR Priority | Local Interface | | -------------- | -------- | ---------- | ------------- | ----------- | --------------- | +| Ethernet5 | - | IPv4 | True | 200 | - | | Port-Channel99 | - | IPv4 | - | 200 | - | | Vlan89 | - | IPv4 | - | - | Loopback0 | | Vlan4094 | - | IPv4 | - | 200 | - | @@ -4900,6 +6128,43 @@ ip as-path access-list mylist2 deny _64517$ igp | Profile2 | - | user_id2 | - | | Profile3 | - | - | PF2 | +#### 802.1X Interfaces + +| Interface | PAE Mode | State | Phone Force Authorized | Reauthentication | Auth Failure Action | Host Mode | Mac Based Auth | Eapol | +| --------- | -------- | ------| ---------------------- | ---------------- | ------------------- | --------- | -------------- | ------ | +| Ethernet29 | - | auto | True | - | - | - | - | - | +| Ethernet30 | - | force-authorized | False | - | - | - | - | - | +| Ethernet31 | - | force-unauthorized | - | - | - | - | - | - | +| Ethernet32 | - | auto | - | True | - | - | - | - | +| Ethernet33 | authenticator | - | - | - | - | - | - | - | +| Ethernet34 | - | - | - | - | allow vlan 800 | - | - | - | +| Ethernet35 | - | - | - | - | drop | - | - | - | +| Ethernet36 | - | - | - | - | - | single-host | - | - | +| Ethernet37 | - | - | - | - | - | multi-host | - | - | +| Ethernet38 | - | - | - | - | - | multi-host | - | - | +| Ethernet39 | - | - | - | - | - | - | True | - | +| Ethernet40 | - | - | - | - | - | - | True | - | +| Ethernet41 | - | - | - | - | - | - | True | - | +| Ethernet42 | - | - | - | - | - | - | True | - | +| Ethernet43 | - | - | - | - | - | - | - | - | +| Ethernet44 | - | - | - | - | - | - | - | - | +| Ethernet45 | authenticator | auto | - | True | allow vlan 800 | multi-host | True | True | +| Ethernet70 | - | - | - | - | - | - | - | - | +| Ethernet71 | - | - | - | - | - | - | - | - | +| Ethernet72 | - | - | - | - | - | - | - | - | + +## Power Over Ethernet (PoE) + +### PoE Summary + +#### PoE Interfaces + +| Interface | PoE Enabled | Priority | Limit | Reboot Action | Link Down Action | Shutdown Action | LLDP Negotiation | Legacy Detection | +| --------- | --------- | --------- | ----------- | ----------- | ----------- | ----------- | --------- | --------- | +| Ethernet56 | True | low | 30.00 watts | power-off | power-off (delayed 10 seconds) | maintain | False | - | +| Ethernet57 | True | critical | 45.00 watts (fixed) | maintain | maintain | power-off | True | True | +| Ethernet58 | False | - | - | - | - | - | - | - | + ## ACL ### MAC Access-lists @@ -5840,6 +7105,9 @@ policy-map type quality-of-service PM_REPLICATION_LD3 | Interface | Trust | Default DSCP | Default COS | Shape rate | | --------- | ----- | ------------ | ----------- | ---------- | +| Ethernet7 | cos | - | 5 | - | +| Ethernet21 | disabled | - | - | 200000 kbps | +| Ethernet22 | - | - | - | 10 percent | | Port-Channel3 | - | - | - | 200000 kbps | | Port-Channel10 | - | - | - | 50 percent | | Port-Channel101 | disabled | - | - | - | 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 95857f57724..ef62aef96ef 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,7 @@ - [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) @@ -496,7 +497,7 @@ router bfd | ---- | -------------- | ------------- | | Helper | 32 | 33 | -#### MPLS Device Configuration +### MPLS Device Configuration ```eos ! diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host3.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host3.md index a0dcb42c912..2bd128cb796 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host3.md +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host3.md @@ -7,6 +7,7 @@ - [MPLS](#mpls) - [MPLS and LDP](#mpls-and-ldp) - [MPLS RSVP](#mpls-rsvp) + - [MPLS Device Configuration](#mpls-device-configuration) ## Management @@ -59,7 +60,7 @@ interface Management1 | Hello interval | 30 | | Timeout multiplier | 254 | -#### MPLS Device Configuration +### MPLS Device Configuration ```eos ! 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 1c0af38da61..9ecdda2c32c 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 @@ -1355,15 +1355,920 @@ interface Dps1 load-interval 42 ! interface Ethernet1 + description P2P_LINK_TO_DC1-SPINE1_Ethernet1 + mtu 1500 + bgp session tracker ST1 + l2 mtu 8000 + l2 mru 8000 + speed forced 100gfull + switchport access vlan 200 + switchport trunk native vlan tag + switchport phone vlan 110 + switchport phone trunk tagged + switchport vlan translation in required + switchport dot1q vlan tag required + switchport trunk allowed vlan 110-111,210-211 + switchport mode dot1q-tunnel + switchport dot1q ethertype 1536 + switchport vlan forwarding accept all + switchport trunk group g1 + switchport trunk group g2 no switchport - ip address 192.168.100.1/31 + switchport source-interface tx + switchport vlan translation 12 20 + switchport vlan translation 24 inner 78 network 46 + switchport vlan translation 24 inner 78 46 + switchport vlan translation 43 dot1q-tunnel 30 + switchport vlan translation in 10 24 + switchport vlan translation in 37 inner 56 49 + switchport vlan translation in 23 dot1q-tunnel 45 + switchport vlan translation out 34 50 + switchport vlan translation out 10 45 inner 34 + switchport vlan translation out 45 dot1q-tunnel all + switchport trunk private-vlan secondary + switchport pvlan mapping 20-30 + ip address 172.31.255.1/31 + ip verify unicast source reachable-via rx + bfd interval 500 min-rx 500 multiplier 5 + bfd echo + ip igmp host-proxy + ip igmp host-proxy 239.0.0.1 + ip igmp host-proxy 239.0.0.2 exclude 10.0.2.1 + ip igmp host-proxy 239.0.0.3 include 10.0.3.1 + ip igmp host-proxy 239.0.0.4 include 10.0.4.3 + ip igmp host-proxy 239.0.0.4 include 10.0.4.4 + ip igmp host-proxy 239.0.0.4 exclude 10.0.4.1 + ip igmp host-proxy 239.0.0.4 exclude 10.0.4.2 + ip igmp host-proxy access-list ACL1 + ip igmp host-proxy access-list ACL2 + 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 + priority-flow-control priority 5 drop + switchport backup-link Ethernet5 prefer vlan 10 + switchport backup preemption-delay 35 + switchport backup mac-move-burst 20 + switchport backup mac-move-burst-interval 30 + switchport backup initial-mac-move-delay 10 + switchport backup dest-macaddr 01:00:00:00:00:00 + link tracking group EVPN_MH_ES1 upstream + link tracking group EVPN_MH_ES3 upstream + link tracking group EVPN_MH_ES4 upstream + comment + Comment created from eos_cli under ethernet_interfaces.Ethernet1 + EOF + +! +interface Ethernet2 + description SRV-POD02_Eth1 + switchport dot1q vlan tag disallowed + switchport trunk allowed vlan 110-111,210-211 + switchport mode trunk + switchport + ip address 10.1.255.3/24 + ip address 1.1.1.3/24 secondary + ip address 1.1.1.4/24 secondary + ip address 10.0.0.254/24 secondary + ip address 192.168.1.1/24 secondary + tcp mss ceiling ipv4 70 ingress + multicast ipv4 boundary ACL_MULTICAST + multicast ipv6 boundary ACL_V6_MULTICAST out + multicast ipv4 static + switchport port-security violation protect log + switchport port-security mac-address maximum 100 + priority-flow-control on + priority-flow-control priority 5 no-drop + storm-control broadcast level pps 500 + storm-control unknown-unicast level 1 + storm-control all level 10 + spanning-tree bpduguard disable + spanning-tree bpdufilter disable +! +interface Ethernet3 + description P2P_LINK_TO_DC1-SPINE2_Ethernet2 + mtu 1500 + switchport trunk native vlan 5 + switchport mode trunk + no switchport + switchport vlan translation out 23 dot1q-tunnel 50 + no snmp trap link-change + ip address 172.31.128.1/31 + ipv6 enable + ipv6 address 2002:ABDC::1/64 + ipv6 nd prefix 2345:ABCD:3FE0::1/96 infinite 50 no-autoconfig + ipv6 nd prefix 2345:ABCD:3FE0::2/96 50 infinite + ipv6 nd prefix 2345:ABCD:3FE0::3/96 100000 no-autoconfig + tcp mss ceiling ipv6 65 + switchport port-security + no switchport port-security mac-address maximum disabled + switchport port-security vlan 1 mac-address maximum 3 + switchport port-security vlan 2 mac-address maximum 3 + switchport port-security vlan 2 mac-address maximum 4 + switchport port-security vlan 3 mac-address maximum 3 + switchport port-security vlan 22 mac-address maximum 4 + switchport port-security vlan 41 mac-address maximum 4 + switchport port-security vlan default mac-address maximum 2 + no priority-flow-control + spanning-tree guard root + switchport backup-link Ethernet4 + link tracking group EVPN_MH_ES2 downstream +! +interface Ethernet4 + description Molecule IPv6 + shutdown + mtu 9100 + no switchport + snmp trap link-change + ipv6 enable + ipv6 address 2020::2020/64 + ipv6 address FE80:FEA::AB65/64 link-local + ipv6 nd ra disabled + ipv6 nd managed-config-flag + tcp mss ceiling ipv4 65 + ipv6 access-group IPv6_ACL_IN in + ipv6 access-group IPv6_ACL_OUT out + multicast ipv4 boundary 224.0.1.0/24 out + multicast ipv4 boundary 224.0.2.0/24 + multicast ipv6 boundary ff00::/16 out + multicast ipv6 boundary ff01::/16 out + multicast ipv4 static + switchport port-security violation protect + priority-flow-control on + spanning-tree guard none +! +interface Ethernet5 + description Molecule Routing + no shutdown + mtu 9100 + switchport access vlan 220 + no switchport + ip ospf cost 99 + ip ospf network point-to-point + ip ospf authentication message-digest + ip ospf authentication-key 7 asfddja23452 + ip ospf area 100 + ip ospf message-digest-key 1 sha512 7 asfddja23452 + pim ipv4 sparse-mode + pim ipv4 bidirectional + pim ipv4 border-router + pim ipv4 hello interval 10 + pim ipv4 hello count 2.5 + pim ipv4 dr-priority 200 + pim ipv4 bfd + isis enable ISIS_TEST + isis bfd + isis circuit-type level-2 + isis metric 99 + no isis hello padding + isis network point-to-point + isis authentication mode md5 + isis authentication key 7 asfddja23452 + spanning-tree guard loop +! +interface Ethernet6 + description SRV-POD02_Eth1 + logging event link-status + logging event congestion-drops + switchport trunk allowed vlan 110-111,210-211 + switchport mode trunk + switchport + logging event storm-control discards + spanning-tree bpduguard enable + spanning-tree bpdufilter enable + logging event spanning-tree +! +interface Ethernet7 + description Molecule L2 + no shutdown + mtu 7000 + switchport + ptp enable + ptp announce interval 10 + ptp announce timeout 30 + ptp delay-mechanism p2p + ptp delay-req interval 20 + ptp role master + ptp sync-message interval 5 + ptp transport layer2 + ptp vlan all + service-profile QoS + qos trust cos + qos cos 5 + storm-control broadcast level pps 10 + storm-control multicast level 50 + storm-control unknown-unicast level 10 + storm-control all level 75 + spanning-tree portfast + spanning-tree bpduguard enable + spanning-tree bpdufilter enable + vmtracer vmware-esx + transceiver media override 100gbase-ar4 +! +interface Ethernet8 + description to WAN-ISP1-01 Ethernet2 + no switchport + no lldp transmit + no lldp receive +! +interface Ethernet8.101 + description to WAN-ISP-01 Ethernet2.101 - VRF-C1 + encapsulation dot1q vlan 101 + ip address 172.31.128.1/31 + ipv6 enable + ipv6 address 2002:ABDC::1/64 +! +interface Ethernet9 + description interface_with_mpls_enabled + no switchport + ip address 172.31.128.9/31 + mpls ldp interface + multicast ipv4 boundary ACL_MULTICAST out + multicast ipv6 static + mpls ip +! +interface Ethernet10 + description interface_with_mpls_disabled + no switchport + ip address 172.31.128.10/31 + no mpls ldp interface + no mpls ip +! +interface Ethernet11 + description interface_in_mode_access_accepting_tagged_LACP + switchport access vlan 200 + switchport mode access + switchport + l2-protocol encapsulation dot1q vlan 200 +! +interface Ethernet12 + description interface_with_dot1q_tunnel + switchport access vlan 300 + switchport mode dot1q-tunnel + switchport +! +interface Ethernet13 + description interface_in_mode_access_with_voice + no logging event link-status + no logging event congestion-drops + switchport trunk native vlan 100 + switchport phone vlan 70 + switchport phone trunk untagged + switchport mode trunk phone + switchport + no logging event storm-control discards + no logging event spanning-tree +! +interface Ethernet14 + description SRV-POD02_Eth1 + logging event link-status + switchport trunk allowed vlan 110-111,210-211 + switchport mode trunk + switchport +! +interface Ethernet15 + description PVLAN Promiscuous Access - only one secondary + switchport access vlan 110 + switchport mode access + switchport + switchport pvlan mapping 111 +! +interface Ethernet16 + description PVLAN Promiscuous Trunk - vlan translation out + switchport vlan translation out required + switchport trunk allowed vlan 110-112 + switchport mode trunk + switchport + switchport vlan translation out 111-112 110 +! +interface Ethernet17 + description PVLAN Secondary Trunk + switchport trunk allowed vlan 110-112 + switchport mode trunk + switchport + switchport trunk private-vlan secondary +! +interface Ethernet18 + description PBR Description + mtu 1500 + no switchport + ip address 192.0.2.1/31 + service-policy type pbr input MyLANServicePolicy +! +interface Ethernet19 + description Switched port with no LLDP rx/tx + switchport access vlan 110 + switchport mode access + switchport + no lldp transmit + no lldp receive + lldp tlv transmit ztp vlan 666 +! +interface Ethernet20 + description Port patched through patch-panel to pseudowire + no switchport + no lldp transmit + no lldp receive +! +interface Ethernet21 + description 200MBit/s shape + switchport + no qos trust + shape rate 200000 kbps +! +interface Ethernet22 + description 10% shape + switchport + shape rate 10 percent +! +interface Ethernet23 + description Error-correction encoding + error-correction encoding fire-code + error-correction encoding reed-solomon + switchport +! +interface Ethernet24 + description Disable error-correction encoding + no error-correction encoding + switchport +! +interface Ethernet25 + description Molecule MAC + switchport + mac access-group MAC_ACL_IN in + mac access-group MAC_ACL_OUT out +! +interface Ethernet26 + no switchport +! +interface Ethernet26.1 + description TENANT_A pseudowire 1 interface + encapsulation vlan + client unmatched +! +interface Ethernet26.100 + description TENANT_A pseudowire 1 interface + vlan id 10 + encapsulation vlan + client dot1q 100 network client +! +interface Ethernet26.200 + description TENANT_A pseudowire 2 interface + encapsulation vlan + client dot1q 200 +! +interface Ethernet26.300 + description TENANT_A pseudowire 3 interface + encapsulation vlan + client dot1q 300 network dot1q 400 +! +interface Ethernet26.400 + description TENANT_A pseudowire 3 interface + encapsulation vlan + client dot1q outer 400 inner 20 network dot1q outer 401 inner 21 +! +interface Ethernet26.500 + description TENANT_A pseudowire 3 interface + encapsulation vlan + client dot1q outer 500 inner 50 network client +! +interface Ethernet27 + description EVPN-Vxlan single-active redundancy + switchport + ! + evpn ethernet-segment + identifier 0000:0000:0000:0102:0304 + redundancy single-active + designated-forwarder election algorithm preference 100 dont-preempt + designated-forwarder election hold-time 10 + designated-forwarder election candidate reachability required + route-target import 00:00:01:02:03:04 +! +interface Ethernet28 + description EVPN-MPLS multihoming + switchport + ! + evpn ethernet-segment + identifier 0000:0000:0000:0102:0305 + mpls tunnel flood filter time 100 + mpls shared index 100 + route-target import 00:00:01:02:03:05 +! +interface Ethernet29 + description DOT1X Testing - auto phone true + switchport + dot1x port-control auto + dot1x port-control force-authorized phone +! +interface Ethernet30 + description DOT1X Testing - force-authorized phone false + switchport + dot1x port-control force-authorized + no dot1x port-control force-authorized phone +! +interface Ethernet31 + description DOT1X Testing - force-unauthorized - no phone + switchport + dot1x port-control force-unauthorized +! +interface Ethernet32 + description DOT1X Testing - auto reauthentication + switchport + dot1x reauthentication + dot1x port-control auto +! +interface Ethernet33 + description DOT1X Testing - pae mode authenticator + switchport + dot1x pae authenticator +! +interface Ethernet34 + description DOT1X Testing - authentication_failure allow + switchport + dot1x authentication failure action traffic allow vlan 800 +! +interface Ethernet35 + description DOT1X Testing - authentication_failure drop + switchport + dot1x authentication failure action traffic drop +! +interface Ethernet36 + description DOT1X Testing - host-mode single-host + switchport + dot1x host-mode single-host +! +interface Ethernet37 + description DOT1X Testing - host-mode multi-host + switchport + dot1x host-mode multi-host +! +interface Ethernet38 + description DOT1X Testing - host-mode multi-host authenticated + switchport + dot1x host-mode multi-host authenticated +! +interface Ethernet39 + description DOT1X Testing - mac_based_authentication host-mode common true + switchport + dot1x mac based authentication host-mode common +! +interface Ethernet40 + description DOT1X Testing - mac_based_authentication always + switchport + dot1x mac based authentication always +! +interface Ethernet41 + description DOT1X Testing - mac_based_authentication always and host-mode common + switchport + dot1x mac based authentication host-mode common + dot1x mac based authentication always +! +interface Ethernet42 + description DOT1X Testing - mac_based_authentication + switchport + dot1x mac based authentication +! +interface Ethernet43 + description DOT1X Testing - timeout values + switchport + dot1x timeout quiet-period 10 + dot1x timeout reauth-timeout-ignore always + dot1x timeout tx-period 6 + dot1x timeout reauth-period server + dot1x timeout idle-host 15 seconds +! +interface Ethernet44 + description DOT1X Testing - reauthorization_request_limit + switchport + dot1x eapol disabled + dot1x reauthorization request limit 3 +! +interface Ethernet45 + description DOT1X Testing - all features + switchport + dot1x pae authenticator + dot1x authentication failure action traffic allow vlan 800 + dot1x reauthentication + dot1x port-control auto + dot1x host-mode multi-host authenticated + dot1x mac based authentication + dot1x timeout quiet-period 10 + dot1x timeout reauth-timeout-ignore always + dot1x timeout tx-period 10 + dot1x timeout reauth-period server + dot1x timeout idle-host 10 seconds + dot1x reauthorization request limit 2 + dot1x unauthorized access vlan membership egress + dot1x unauthorized native vlan membership egress + dot1x eapol authentication failure fallback mba timeout 600 +! +interface Ethernet46 + description native-vlan-tag-precedence + switchport trunk native vlan tag + switchport mode trunk + switchport +! +interface Ethernet47 + description IP Helper + no switchport + ip address 172.31.255.1/31 + ip helper-address 10.10.64.151 + ip helper-address 10.10.96.101 source-interface Loopback0 + ip helper-address 10.10.96.150 vrf MGMT source-interface Loopback0 + ip helper-address 10.10.96.151 vrf MGMT +! +interface Ethernet48 + description Load Interval + load-interval 5 + switchport +! +interface Ethernet50 + description SFlow Interface Testing - SFlow ingress enabled + switchport + sflow enable +! +interface Ethernet51 + description SFlow Interface Testing - SFlow egress enabled + switchport + sflow egress enable +! +interface Ethernet52 + description SFlow Interface Testing - SFlow ingress and egress unmodified enabled + switchport + sflow enable + sflow egress unmodified enable +! +interface Ethernet53 + description SFlow Interface Testing - SFlow ingress and egress disabled + switchport + no sflow enable + no sflow egress enable +! +interface Ethernet54 + description SFlow Interface Testing - SFlow ingress and egress unmodified disabled + switchport + no sflow enable + no sflow egress unmodified enable +! +interface Ethernet55 + description DHCPv6 Relay Testing + no shutdown + no switchport + ipv6 dhcp relay destination a0::2 link-address a0::3 + ipv6 dhcp relay destination a0::4 vrf TEST local-interface Loopback55 link-address a0::5 + ipv6 address a0::1/64 +! +interface Ethernet56 + description Interface with poe commands and limit in class + switchport + poe priority low + poe reboot action power-off + poe link down action power-off 10 seconds + poe shutdown action maintain + poe limit 30.00 watts + poe negotiation lldp disabled +! +interface Ethernet57 + description Interface with poe commands and limit in watts + switchport + poe priority critical + poe reboot action maintain + poe link down action maintain + poe shutdown action power-off + poe limit 45.00 watts fixed + poe legacy detect +! +interface Ethernet58 + description Interface with poe disabled and no other poe keys + switchport + poe disabled +! +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.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 + ip nat source dynamic access-list ACL14 pool POOL14 priority 1 comment Priority low end + ip nat source dynamic access-list ACL15 pool POOL15 priority 4294967295 comment Priority high end + ip nat source dynamic access-list ACL16 pool POOL16 comment Priority default + 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 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 + ip nat destination dynamic access-list ACL5 pool POOL5 priority 4294967295 comment Priority high end + ip nat destination dynamic access-list ACL6 pool POOL6 comment Priority default +! +interface Ethernet61 + description interface_in_mode_access_with_voice + no logging event link-status + no logging event congestion-drops + switchport trunk native vlan 100 + switchport phone vlan 70 + switchport phone trunk untagged phone + switchport mode trunk phone + switchport + no logging event storm-control discards + no logging event spanning-tree +! +interface Ethernet62 + description interface_in_mode_access_with_voice + no logging event link-status + no logging event congestion-drops + switchport trunk native vlan 100 + switchport phone vlan 70 + switchport phone trunk tagged phone + switchport mode trunk phone + switchport + no logging event storm-control discards + no logging event spanning-tree +! +interface Ethernet63 + description DHCP client interface + no switchport + ip address dhcp + dhcp client accept default-route +! +interface Ethernet64 + description DHCP server interface + no switchport + mac timestamp replace-fcs + ip address 192.168.42.42/24 + dhcp server ipv4 + dhcp server ipv6 +! +interface Ethernet65 + description Multiple VRIDs + no shutdown + no switchport + mac timestamp header + ip address 192.0.2.2/25 + ipv6 enable + ipv6 address 2001:db8::2/64 + ipv6 address fe80::2/64 link-local + vrrp 1 priority-level 105 + vrrp 1 advertisement interval 2 + vrrp 1 preempt delay minimum 30 reload 800 + vrrp 1 ipv4 192.0.2.1 + vrrp 2 ipv6 2001:db8::1 +! +interface Ethernet66 + description Multiple VRIDs and tracking + no shutdown + no switchport + ip address 192.0.2.2/25 + ipv6 enable + ipv6 address 2001:db8::2/64 + ipv6 address fe80::2/64 link-local + vrrp 1 priority-level 105 + vrrp 1 advertisement interval 2 + vrrp 1 preempt delay minimum 30 reload 800 + vrrp 1 ipv4 192.0.2.1 + vrrp 1 tracked-object ID1TrackedObjectDecrement decrement 5 + vrrp 1 tracked-object ID1TrackedObjectShutdown shutdown + vrrp 2 ipv6 2001:db8::1 + vrrp 2 tracked-object ID2TrackedObjectDecrement decrement 10 + vrrp 2 tracked-object ID2TrackedObjectShutdown shutdown + no vrrp 3 preempt + vrrp 3 timers delay reload 900 + vrrp 3 ipv4 100.64.0.1 + vrrp 3 ipv4 version 3 +! +interface Ethernet67 + description Custom_Transceiver_Frequency + no shutdown + switchport + mac timestamp before-fcs + transceiver frequency 190050.000 +! +interface Ethernet67.1 + description Test_encapsulation_dot1q + encapsulation dot1q vlan 4 inner 34 +! +interface Ethernet68 + description Custom_Transceiver_Frequency + no shutdown + switchport + transceiver media override 100gbase-ar4 + transceiver frequency 190080.000 ghz +! +interface Ethernet68.1 + description Test_encapsulation_vlan1 + encapsulation vlan + client dot1q outer 23 inner dot1q 45 network dot1ad outer 32 inner dot1ad 54 +! +interface Ethernet68.2 + description Test_encapsulation_vlan2 + encapsulation vlan + client dot1q 10 network dot1q outer 32 inner 54 +! +interface Ethernet68.3 + description Test_encapsulation_vlan3 + encapsulation vlan + client dot1ad 12 network dot1q 25 +! +interface Ethernet68.4 + description Test_encapsulation_vlan4 + encapsulation vlan + client dot1ad outer 35 inner dot1q 60 network dot1q outer 53 inner dot1ad 6 +! +interface Ethernet68.5 + description Test_encapsulation_vlan5 + encapsulation vlan + client dot1ad outer 35 inner 60 network dot1ad outer 52 inner 62 +! +interface Ethernet68.6 + description Test_encapsulation_vlan6 + encapsulation vlan + client dot1ad outer 35 inner 60 network client +! +interface Ethernet68.7 + description Test_encapsulation_vlan7 + encapsulation vlan + client untagged network dot1ad outer 35 inner 60 +! +interface Ethernet68.8 + description Test_encapsulation_vlan8 + encapsulation vlan + client untagged network dot1q outer 35 inner 60 +! +interface Ethernet68.9 + description Test_encapsulation_vlan9 + encapsulation vlan + client untagged network untagged +! +interface Ethernet68.10 + description Test_encapsulation_vlan9 + encapsulation vlan + client dot1q outer 14 inner 11 network client inner +! +interface Ethernet69 + description IP NAT service-profile + switchport + ip nat service-profile TEST-NAT-PROFILE +! +interface Ethernet70 + description dot1x_aaa_unresponsive + no shutdown + dot1x aaa unresponsive phone action apply cached-results timeout 10 hours else traffic allow + dot1x aaa unresponsive action traffic allow vlan 10 access-list acl1 + dot1x aaa unresponsive eap response success + dot1x mac based access-list +! +interface Ethernet71 + description dot1x_aaa_unresponsive1 + no shutdown + dot1x aaa unresponsive phone action apply cached-results timeout 10 hours + dot1x aaa unresponsive action traffic allow vlan 10 access-list acl1 + dot1x aaa unresponsive eap response success + dot1x mac based access-list +! +interface Ethernet72 + description dot1x_aaa_unresponsive2 + no shutdown + dot1x aaa unresponsive action traffic allow vlan 10 access-list acl1 + dot1x aaa unresponsive eap response success + dot1x mac based access-list +! +interface Ethernet73 + description DC1-AGG01_Ethernet1 + channel-group 5 mode active + transceiver media override 100gbase-ar4 +! +interface Ethernet74 + description MLAG_PEER_DC1-LEAF1B_Ethernet3 + channel-group 3 mode active +! +interface Ethernet75 + description MLAG_PEER_DC1-LEAF1B_Ethernet4 + channel-group 3 mode active +! +interface Ethernet76 + description SRV-POD03_Eth1 + channel-group 5 mode active + no lldp transmit + no lldp receive +! +interface Ethernet77 + description MLAG_PEER_DC1-LEAF1B_Ethernet8 + channel-group 8 mode active +! +interface Ethernet78 + description DC1-AGG03_Ethernet1 + channel-group 15 mode active + lacp timer fast + lacp timer multiplier 30 +! +interface Ethernet79 + description DC1-AGG04_Ethernet1 + channel-group 16 mode active + lacp timer normal +! +interface Ethernet80 + description LAG Member + channel-group 17 mode active +! +interface Ethernet80/1 + description LAG Member + channel-group 101 mode active +! +interface Ethernet80/2 + description LAG Member + channel-group 102 mode active +! +interface Ethernet80/3 + description LAG Member + channel-group 103 mode active +! +interface Ethernet80/4 + description LAG Member LACP fallback + switchport trunk allowed vlan 100 + switchport mode trunk + switchport + channel-group 104 mode active + spanning-tree portfast +! +interface Ethernet81 + description LAG Member + channel-group 109 mode active +! +interface Ethernet81/1 + description LAG Member with error_correction + error-correction encoding fire-code + error-correction encoding reed-solomon + channel-group 111 mode active +! +interface Ethernet81/2 + description LAG Member LACP fallback LLDP ZTP VLAN + switchport trunk allowed vlan 112 + switchport mode trunk + switchport + channel-group 112 mode active + lldp tlv transmit ztp vlan 112 + spanning-tree portfast +! +interface Ethernet81/10 + description isis_port_channel_member + channel-group 110 mode active ! interface Loopback0 - ip address 192.168.1.1/32 + 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 + +! +interface Loopback1 + description VTEP_VXLAN_Tunnel_Source + ip address 192.168.254.3/32 +! +interface Loopback99 + description TENANT_A_PROJECT02_VTEP_DIAGNOSTICS + no shutdown + vrf TENANT_A_PROJECT02 + ip proxy-arp + ip address 10.1.255.3/32 + ip address 10.0.0.254/32 secondary + ip address 192.168.1.1/32 secondary + ipv6 enable + ipv6 address 2002::CAFE/64 + mpls ldp interface + isis enable ISIS_TEST + isis bfd + isis metric 100 + isis passive + isis network point-to-point +! +interface Loopback100 + description TENANT_A_PROJECT02_VTEP_DIAGNOSTICS + vrf TENANT_A_PROJECT02 + ip address 10.1.255.3/32 ! interface Management1 description OOB_MANAGEMENT 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 c04de97da42..e3dc58649c1 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 index aad51621aab..973e941bd36 100644 --- 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 @@ -70,21 +70,3 @@ mpls: - ip_address: 1.10.1.2 authentication: type: none - -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/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/mpls.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/mpls.j2 index f15e341e4e6..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 @@ -32,7 +32,7 @@ {% endif %} {% if mpls is arista.avd.defined or mpls.rsvp is arista.avd.defined %} -#### MPLS Device Configuration +### MPLS Device Configuration ```eos {% include 'eos/mpls.j2' %} 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 1acd6b3d9d2..55371814643 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 @@ -134,8 +134,7 @@ keys: description: IPv4 Access list name. type: str ipv6_access_group: - description: |- - IPv6 access list name. + description: IPv6 access list name. type: str fast_reroute: type: dict From 9bd5828d8ade8885d2afb985a09b057366afa0ee Mon Sep 17 00:00:00 2001 From: Vibhu-gslab Date: Thu, 14 Nov 2024 10:38:56 +0530 Subject: [PATCH 10/12] fixing CI --- .../documentation/devices/dc1-leaf1a.md | 8 +++---- .../documentation/devices/dc1-leaf1b.md | 8 +++---- .../documentation/devices/dc1-leaf2a.md | 8 +++---- .../documentation/devices/dc1-leaf2b.md | 8 +++---- .../documentation/devices/dc2-leaf1a.md | 8 +++---- .../documentation/devices/dc2-leaf1b.md | 8 +++---- .../documentation/devices/dc2-leaf2a.md | 8 +++---- .../documentation/devices/dc2-leaf2b.md | 8 +++---- .../documentation/devices/p1.md | 22 +++++++++---------- .../documentation/devices/p2.md | 22 +++++++++---------- .../documentation/devices/p3.md | 20 ++++++++--------- .../documentation/devices/p4.md | 20 ++++++++--------- .../documentation/devices/pe1.md | 18 +++++++-------- .../documentation/devices/pe2.md | 18 +++++++-------- .../documentation/devices/pe3.md | 18 +++++++-------- .../documentation/devices/rr1.md | 20 ++++++++--------- .../documentation/devices/rr2.md | 20 ++++++++--------- .../documentation/devices/dc1-leaf1a.md | 8 +++---- .../documentation/devices/dc1-leaf1b.md | 8 +++---- .../documentation/devices/dc1-leaf2a.md | 8 +++---- .../documentation/devices/dc1-leaf2b.md | 8 +++---- .../devices/virtual-source-nat.md | 8 +++---- .../documentation/devices/DC1-LEAF2A.md | 6 ++--- .../documentation/devices/DC1-LEAF2B.md | 6 ++--- .../documentation/devices/DC1-SVC3A.md | 6 ++--- .../documentation/devices/DC1-SVC3B.md | 6 ++--- .../documentation/devices/SITE1-LER1.md | 18 +++++++-------- .../documentation/devices/SITE1-LER2.md | 18 +++++++-------- .../documentation/devices/SITE1-LSR1.md | 20 ++++++++--------- .../documentation/devices/SITE1-LSR2.md | 18 +++++++-------- .../documentation/devices/SITE1-RR1.md | 16 +++++++------- .../documentation/devices/SITE2-LER1.md | 20 ++++++++--------- .../documentation/devices/SITE2-LSR1.md | 20 ++++++++--------- .../documentation/devices/SITE2-LSR2.md | 20 ++++++++--------- .../documentation/devices/SITE2-RR1.md | 16 +++++++------- .../documentation/devices/SITE3-LER1.md | 14 ++++++------ .../documentation/devices/DC1-POD1-LEAF2B.md | 10 ++++----- .../documentation/devices/DC1-POD2-LEAF1A.md | 8 +++---- .../documentation/devices/DC1.POD1.LEAF2A.md | 10 ++++----- .../documentation/devices/DC2-POD1-LEAF1A.md | 8 +++---- .../documentation/devices/DC1-LEAF2A.md | 6 ++--- .../documentation/devices/DC1-LEAF2B.md | 6 ++--- .../documentation/devices/DC1-SVC3A.md | 6 ++--- .../documentation/devices/DC1-SVC3B.md | 6 ++--- .../documentation/devices/DC1-LEAF2A.md | 6 ++--- .../documentation/devices/DC1-LEAF2B.md | 6 ++--- .../documentation/devices/DC1-LEAF3A.md | 6 ++--- .../documentation/devices/DC1-LEAF3B.md | 6 ++--- .../documentation/devices/DC1-LEAF4A.md | 6 ++--- .../documentation/devices/DC1-LEAF4B.md | 6 ++--- .../documentation/devices/DC1-SVC3A.md | 6 ++--- .../documentation/devices/DC1-SVC3B.md | 6 ++--- 52 files changed, 297 insertions(+), 297 deletions(-) diff --git a/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc1-leaf1a.md b/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc1-leaf1a.md index 250d0ffd1a5..59320bff021 100644 --- a/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc1-leaf1a.md +++ b/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc1-leaf1a.md @@ -913,10 +913,10 @@ vrf instance VRF11 ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| VRF10 | 10.255.10.3 | -| VRF11 | 10.255.11.3 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| VRF10 | 10.255.10.3 | - | +| VRF11 | 10.255.11.3 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc1-leaf1b.md b/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc1-leaf1b.md index c261352bf2e..f28e0aba701 100644 --- a/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc1-leaf1b.md +++ b/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc1-leaf1b.md @@ -913,10 +913,10 @@ vrf instance VRF11 ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| VRF10 | 10.255.10.4 | -| VRF11 | 10.255.11.4 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| VRF10 | 10.255.10.4 | - | +| VRF11 | 10.255.11.4 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc1-leaf2a.md b/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc1-leaf2a.md index b0d187a0535..b345147b1ae 100644 --- a/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc1-leaf2a.md +++ b/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc1-leaf2a.md @@ -971,10 +971,10 @@ vrf instance VRF11 ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| VRF10 | 10.255.10.5 | -| VRF11 | 10.255.11.5 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| VRF10 | 10.255.10.5 | - | +| VRF11 | 10.255.11.5 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc1-leaf2b.md b/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc1-leaf2b.md index f5990a4408d..ccf202c3be8 100644 --- a/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc1-leaf2b.md +++ b/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc1-leaf2b.md @@ -971,10 +971,10 @@ vrf instance VRF11 ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| VRF10 | 10.255.10.6 | -| VRF11 | 10.255.11.6 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| VRF10 | 10.255.10.6 | - | +| VRF11 | 10.255.11.6 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc2-leaf1a.md b/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc2-leaf1a.md index 5401ae4d65a..36f47c83cee 100644 --- a/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc2-leaf1a.md +++ b/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc2-leaf1a.md @@ -913,10 +913,10 @@ vrf instance VRF11 ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| VRF10 | 10.255.10.13 | -| VRF11 | 10.255.11.13 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| VRF10 | 10.255.10.13 | - | +| VRF11 | 10.255.11.13 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc2-leaf1b.md b/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc2-leaf1b.md index c5ef371fc36..b0ef6d25202 100644 --- a/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc2-leaf1b.md +++ b/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc2-leaf1b.md @@ -913,10 +913,10 @@ vrf instance VRF11 ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| VRF10 | 10.255.10.14 | -| VRF11 | 10.255.11.14 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| VRF10 | 10.255.10.14 | - | +| VRF11 | 10.255.11.14 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc2-leaf2a.md b/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc2-leaf2a.md index df218d1fe08..c2c469bfe74 100644 --- a/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc2-leaf2a.md +++ b/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc2-leaf2a.md @@ -971,10 +971,10 @@ vrf instance VRF11 ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| VRF10 | 10.255.10.15 | -| VRF11 | 10.255.11.15 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| VRF10 | 10.255.10.15 | - | +| VRF11 | 10.255.11.15 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc2-leaf2b.md b/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc2-leaf2b.md index 2ce61071f80..ce3b1563874 100644 --- a/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc2-leaf2b.md +++ b/ansible_collections/arista/avd/examples/dual-dc-l3ls/documentation/devices/dc2-leaf2b.md @@ -971,10 +971,10 @@ vrf instance VRF11 ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| VRF10 | 10.255.10.16 | -| VRF11 | 10.255.11.16 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| VRF10 | 10.255.10.16 | - | +| VRF11 | 10.255.11.16 | - | ### Virtual Source NAT Configuration 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 c30f68d4a7d..332d3065cf1 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 @@ -406,17 +406,7 @@ router isis CORE | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -### 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 +#### MPLS and LDP Device Configuration ```eos ! @@ -429,6 +419,16 @@ 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 f4ddee2a7fb..e669742c420 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 @@ -406,17 +406,7 @@ router isis CORE | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -### 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 +#### MPLS and LDP Device Configuration ```eos ! @@ -429,6 +419,16 @@ 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 09f7b0ebf93..725050a140a 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 @@ -386,16 +386,7 @@ router isis CORE | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -### 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 +#### MPLS and LDP Device Configuration ```eos ! @@ -408,6 +399,15 @@ 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 af85a967f4e..ce0ba9cf746 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 @@ -386,16 +386,7 @@ router isis CORE | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -### 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 +#### MPLS and LDP Device Configuration ```eos ! @@ -408,6 +399,15 @@ 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 c4c1dca7164..a5f4fa577ab 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 @@ -572,15 +572,7 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Ethernet2 | True | True | True | -| Loopback0 | - | True | - | - -#### MPLS Device Configuration +#### MPLS and LDP Device Configuration ```eos ! @@ -593,6 +585,14 @@ 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 cd1de24fd48..ba14b449516 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 @@ -572,15 +572,7 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Ethernet2 | True | True | True | -| Loopback0 | - | True | - | - -#### MPLS Device Configuration +#### MPLS and LDP Device Configuration ```eos ! @@ -593,6 +585,14 @@ 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 096528745d6..bd24b24638e 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 @@ -561,15 +561,7 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Ethernet3 | True | True | True | -| Loopback0 | - | True | - | - -#### MPLS Device Configuration +#### MPLS and LDP Device Configuration ```eos ! @@ -582,6 +574,14 @@ 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 b57c6193dcf..af2d87f3f29 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 @@ -513,16 +513,7 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -### 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 +#### MPLS and LDP Device Configuration ```eos ! @@ -535,6 +526,15 @@ 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 3dfa24ecd6f..bb36f030c76 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 @@ -513,16 +513,7 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -### 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 +#### MPLS and LDP Device Configuration ```eos ! @@ -535,6 +526,15 @@ 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/single-dc-l3ls/documentation/devices/dc1-leaf1a.md b/ansible_collections/arista/avd/examples/single-dc-l3ls/documentation/devices/dc1-leaf1a.md index 1bd80ac0a76..24bd019a78c 100644 --- a/ansible_collections/arista/avd/examples/single-dc-l3ls/documentation/devices/dc1-leaf1a.md +++ b/ansible_collections/arista/avd/examples/single-dc-l3ls/documentation/devices/dc1-leaf1a.md @@ -974,10 +974,10 @@ vrf instance VRF11 ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| VRF10 | 10.255.10.3 | -| VRF11 | 10.255.11.3 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| VRF10 | 10.255.10.3 | - | +| VRF11 | 10.255.11.3 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/examples/single-dc-l3ls/documentation/devices/dc1-leaf1b.md b/ansible_collections/arista/avd/examples/single-dc-l3ls/documentation/devices/dc1-leaf1b.md index 03094a6cb9d..1414a81884d 100644 --- a/ansible_collections/arista/avd/examples/single-dc-l3ls/documentation/devices/dc1-leaf1b.md +++ b/ansible_collections/arista/avd/examples/single-dc-l3ls/documentation/devices/dc1-leaf1b.md @@ -974,10 +974,10 @@ vrf instance VRF11 ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| VRF10 | 10.255.10.4 | -| VRF11 | 10.255.11.4 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| VRF10 | 10.255.10.4 | - | +| VRF11 | 10.255.11.4 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/examples/single-dc-l3ls/documentation/devices/dc1-leaf2a.md b/ansible_collections/arista/avd/examples/single-dc-l3ls/documentation/devices/dc1-leaf2a.md index 579b5e8a0b7..be70386acab 100644 --- a/ansible_collections/arista/avd/examples/single-dc-l3ls/documentation/devices/dc1-leaf2a.md +++ b/ansible_collections/arista/avd/examples/single-dc-l3ls/documentation/devices/dc1-leaf2a.md @@ -974,10 +974,10 @@ vrf instance VRF11 ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| VRF10 | 10.255.10.5 | -| VRF11 | 10.255.11.5 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| VRF10 | 10.255.10.5 | - | +| VRF11 | 10.255.11.5 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/examples/single-dc-l3ls/documentation/devices/dc1-leaf2b.md b/ansible_collections/arista/avd/examples/single-dc-l3ls/documentation/devices/dc1-leaf2b.md index 76d526b5226..78468a70f72 100644 --- a/ansible_collections/arista/avd/examples/single-dc-l3ls/documentation/devices/dc1-leaf2b.md +++ b/ansible_collections/arista/avd/examples/single-dc-l3ls/documentation/devices/dc1-leaf2b.md @@ -974,10 +974,10 @@ vrf instance VRF11 ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| VRF10 | 10.255.10.6 | -| VRF11 | 10.255.11.6 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| VRF10 | 10.255.10.6 | - | +| VRF11 | 10.255.11.6 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/virtual-source-nat.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/virtual-source-nat.md index 3bfde16f53d..dd824c00261 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/virtual-source-nat.md +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/virtual-source-nat.md @@ -40,10 +40,10 @@ interface Management1 ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| TEST_01 | 1.1.1.1 | -| TEST_02 | 1.1.1.2 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| TEST_01 | 1.1.1.1 | - | +| TEST_02 | 1.1.1.2 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/documentation/devices/DC1-LEAF2A.md b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/documentation/devices/DC1-LEAF2A.md index df8564f6cdc..58f0e8305c9 100644 --- a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/documentation/devices/DC1-LEAF2A.md +++ b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/documentation/devices/DC1-LEAF2A.md @@ -1257,9 +1257,9 @@ vrf instance Tenant_C_OP_Zone ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| Tenant_A_OP_Zone | 10.255.1.6 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| Tenant_A_OP_Zone | 10.255.1.6 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/documentation/devices/DC1-LEAF2B.md b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/documentation/devices/DC1-LEAF2B.md index 660f78de080..1268b5cb680 100644 --- a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/documentation/devices/DC1-LEAF2B.md +++ b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/documentation/devices/DC1-LEAF2B.md @@ -1257,9 +1257,9 @@ vrf instance Tenant_C_OP_Zone ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| Tenant_A_OP_Zone | 10.255.1.7 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| Tenant_A_OP_Zone | 10.255.1.7 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/documentation/devices/DC1-SVC3A.md b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/documentation/devices/DC1-SVC3A.md index d168f4869bb..8ee9fbc4c09 100644 --- a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/documentation/devices/DC1-SVC3A.md +++ b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/documentation/devices/DC1-SVC3A.md @@ -1440,9 +1440,9 @@ vrf instance Tenant_C_WAN_Zone ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| Tenant_A_OP_Zone | 10.255.1.8 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| Tenant_A_OP_Zone | 10.255.1.8 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/documentation/devices/DC1-SVC3B.md b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/documentation/devices/DC1-SVC3B.md index 98b49bfff54..d129c029c2a 100644 --- a/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/documentation/devices/DC1-SVC3B.md +++ b/ansible_collections/arista/avd/molecule/eos_config_deploy_cvp/documentation/devices/DC1-SVC3B.md @@ -1413,9 +1413,9 @@ vrf instance Tenant_C_WAN_Zone ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| Tenant_A_OP_Zone | 10.255.1.9 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| Tenant_A_OP_Zone | 10.255.1.9 | - | ### Virtual Source NAT Configuration 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 5c09ad530ed..0eb9f15d5f2 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 @@ -811,15 +811,7 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Ethernet2 | True | True | True | -| Loopback0 | - | True | - | - -#### MPLS Device Configuration +#### MPLS and LDP Device Configuration ```eos ! @@ -832,6 +824,14 @@ 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 1300846f733..c6c71d4b749 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 @@ -815,15 +815,7 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Ethernet2 | True | True | True | -| Loopback0 | - | True | - | - -#### MPLS Device Configuration +#### MPLS and LDP Device Configuration ```eos ! @@ -836,6 +828,14 @@ 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 da1fb328307..1657aa260a1 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 @@ -412,16 +412,7 @@ router isis CORE | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -### 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 +#### MPLS and LDP Device Configuration ```eos ! @@ -434,6 +425,15 @@ 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 c79268273e7..1d6a909ec98 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 @@ -387,15 +387,7 @@ router isis CORE | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet1 | True | True | True | -| Ethernet3 | True | True | True | -| Loopback0 | - | True | - | - -#### MPLS Device Configuration +#### MPLS and LDP Device Configuration ```eos ! @@ -408,6 +400,14 @@ 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 1c12211ed69..94352209b52 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 @@ -526,14 +526,7 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet4 | True | True | True | -| Loopback0 | - | True | - | - -#### MPLS Device Configuration +#### MPLS and LDP Device Configuration ```eos ! @@ -546,6 +539,13 @@ 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 4371863a1bf..f463525b357 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 @@ -921,16 +921,7 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -### 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 +#### MPLS and LDP Device Configuration ```eos ! @@ -943,6 +934,15 @@ 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 02c617e2f0d..774da3217fa 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 @@ -412,16 +412,7 @@ router isis CUSTOM_NAME | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -### 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 +#### MPLS and LDP Device Configuration ```eos ! @@ -434,6 +425,15 @@ 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 2e4b04f72d6..0420c63bbf6 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 @@ -473,16 +473,7 @@ router isis CUSTOM_NAME | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -### 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 +#### MPLS and LDP Device Configuration ```eos ! @@ -495,6 +486,15 @@ 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 8aa60bd8295..112ebf34ba2 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 @@ -526,14 +526,7 @@ router bfd | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Ethernet4 | True | True | True | -| Loopback0 | - | True | - | - -#### MPLS Device Configuration +#### MPLS and LDP Device Configuration ```eos ! @@ -546,6 +539,13 @@ 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 fecfc084886..380f046bbfc 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 @@ -328,13 +328,7 @@ router isis CORE | LDP Interface Disabled Default | True | | LDP Transport-Address Interface | Loopback0 | -### MPLS Interfaces - -| Interface | MPLS IP Enabled | LDP Enabled | IGP Sync | -| --------- | --------------- | ----------- | -------- | -| Loopback0 | - | True | - | - -#### MPLS Device Configuration +#### MPLS and LDP Device Configuration ```eos ! @@ -347,6 +341,12 @@ 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/molecule/eos_designs-twodc-5stage-clos/documentation/devices/DC1-POD1-LEAF2B.md b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/documentation/devices/DC1-POD1-LEAF2B.md index 5c50fc51df3..b7c59161d1a 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/documentation/devices/DC1-POD1-LEAF2B.md +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/documentation/devices/DC1-POD1-LEAF2B.md @@ -1187,11 +1187,11 @@ vrf instance vrf_with_loopbacks_from_pod_pools ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| vrf_with_loopbacks_dc1_pod1_only | 10.102.101.5 | -| vrf_with_loopbacks_from_overlapping_pool | 10.100.0.5 | -| vrf_with_loopbacks_from_pod_pools | 10.101.101.5 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| vrf_with_loopbacks_dc1_pod1_only | 10.102.101.5 | - | +| vrf_with_loopbacks_from_overlapping_pool | 10.100.0.5 | - | +| vrf_with_loopbacks_from_pod_pools | 10.101.101.5 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/documentation/devices/DC1-POD2-LEAF1A.md b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/documentation/devices/DC1-POD2-LEAF1A.md index 2f98b71a314..0cfb9c1e715 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/documentation/devices/DC1-POD2-LEAF1A.md +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/documentation/devices/DC1-POD2-LEAF1A.md @@ -862,10 +862,10 @@ vrf instance vrf_with_loopbacks_from_pod_pools ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| vrf_with_loopbacks_from_overlapping_pool | 10.100.0.3 | -| vrf_with_loopbacks_from_pod_pools | 10.101.102.3 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| vrf_with_loopbacks_from_overlapping_pool | 10.100.0.3 | - | +| vrf_with_loopbacks_from_pod_pools | 10.101.102.3 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/documentation/devices/DC1.POD1.LEAF2A.md b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/documentation/devices/DC1.POD1.LEAF2A.md index d9a10a0d2e2..3c016cf9f76 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/documentation/devices/DC1.POD1.LEAF2A.md +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/documentation/devices/DC1.POD1.LEAF2A.md @@ -1151,11 +1151,11 @@ vrf instance vrf_with_loopbacks_from_pod_pools ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| vrf_with_loopbacks_dc1_pod1_only | 10.102.101.4 | -| vrf_with_loopbacks_from_overlapping_pool | 10.100.0.4 | -| vrf_with_loopbacks_from_pod_pools | 10.101.101.4 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| vrf_with_loopbacks_dc1_pod1_only | 10.102.101.4 | - | +| vrf_with_loopbacks_from_overlapping_pool | 10.100.0.4 | - | +| vrf_with_loopbacks_from_pod_pools | 10.101.101.4 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/documentation/devices/DC2-POD1-LEAF1A.md b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/documentation/devices/DC2-POD1-LEAF1A.md index cdbb918e981..1e0264a2bef 100644 --- a/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/documentation/devices/DC2-POD1-LEAF1A.md +++ b/ansible_collections/arista/avd/molecule/eos_designs-twodc-5stage-clos/documentation/devices/DC2-POD1-LEAF1A.md @@ -755,10 +755,10 @@ vrf instance vrf_with_loopbacks_from_pod_pools ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| vrf_with_loopbacks_from_overlapping_pool | 10.100.0.3 | -| vrf_with_loopbacks_from_pod_pools | 10.101.201.3 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| vrf_with_loopbacks_from_overlapping_pool | 10.100.0.3 | - | +| vrf_with_loopbacks_from_pod_pools | 10.101.201.3 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/documentation/devices/DC1-LEAF2A.md b/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/documentation/devices/DC1-LEAF2A.md index 8a055117c09..0b97fbe7d6c 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/documentation/devices/DC1-LEAF2A.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/documentation/devices/DC1-LEAF2A.md @@ -1278,9 +1278,9 @@ vrf instance Tenant_C_OP_Zone ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| Tenant_A_OP_Zone | 10.255.1.10 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| Tenant_A_OP_Zone | 10.255.1.10 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/documentation/devices/DC1-LEAF2B.md b/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/documentation/devices/DC1-LEAF2B.md index 736240e510f..2aa7b9f3365 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/documentation/devices/DC1-LEAF2B.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/documentation/devices/DC1-LEAF2B.md @@ -1278,9 +1278,9 @@ vrf instance Tenant_C_OP_Zone ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| Tenant_A_OP_Zone | 10.255.1.11 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| Tenant_A_OP_Zone | 10.255.1.11 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/documentation/devices/DC1-SVC3A.md b/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/documentation/devices/DC1-SVC3A.md index fd03d3902e2..32f7a83de45 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/documentation/devices/DC1-SVC3A.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/documentation/devices/DC1-SVC3A.md @@ -1768,9 +1768,9 @@ vrf instance Tenant_C_WAN_Zone ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| Tenant_A_OP_Zone | 10.255.1.12 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| Tenant_A_OP_Zone | 10.255.1.12 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/documentation/devices/DC1-SVC3B.md b/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/documentation/devices/DC1-SVC3B.md index 487a3fc02a8..dac816c74d3 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/documentation/devices/DC1-SVC3B.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_ebgp_overlay_ebgp/documentation/devices/DC1-SVC3B.md @@ -1768,9 +1768,9 @@ vrf instance Tenant_C_WAN_Zone ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| Tenant_A_OP_Zone | 10.255.1.13 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| Tenant_A_OP_Zone | 10.255.1.13 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF2A.md b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF2A.md index d47f81124c4..59a4b6ac224 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF2A.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF2A.md @@ -1360,9 +1360,9 @@ vrf instance Tenant_C_OP_Zone ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| Tenant_A_OP_Zone | 10.255.1.6 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| Tenant_A_OP_Zone | 10.255.1.6 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF2B.md b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF2B.md index 7550b7884fb..439e3e83fc2 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF2B.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF2B.md @@ -1360,9 +1360,9 @@ vrf instance Tenant_C_OP_Zone ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| Tenant_A_OP_Zone | 10.255.1.7 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| Tenant_A_OP_Zone | 10.255.1.7 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF3A.md b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF3A.md index f37edb27bc6..5f742b26ea6 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF3A.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF3A.md @@ -1251,9 +1251,9 @@ vrf instance Tenant_C_OP_Zone ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| Tenant_A_OP_Zone | 10.255.1.12 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| Tenant_A_OP_Zone | 10.255.1.12 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF3B.md b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF3B.md index 6b89019dd3f..63c89dba89a 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF3B.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF3B.md @@ -1251,9 +1251,9 @@ vrf instance Tenant_C_OP_Zone ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| Tenant_A_OP_Zone | 10.255.1.13 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| Tenant_A_OP_Zone | 10.255.1.13 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF4A.md b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF4A.md index 40a32dc881f..dd6cabe1756 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF4A.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF4A.md @@ -1241,9 +1241,9 @@ vrf instance Tenant_C_OP_Zone ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| Tenant_A_OP_Zone | 10.255.1.14 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| Tenant_A_OP_Zone | 10.255.1.14 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF4B.md b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF4B.md index a6a52cab09e..91ea3e1868f 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF4B.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF4B.md @@ -1241,9 +1241,9 @@ vrf instance Tenant_C_OP_Zone ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| Tenant_A_OP_Zone | 10.255.1.15 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| Tenant_A_OP_Zone | 10.255.1.15 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-SVC3A.md b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-SVC3A.md index 84d2e04897a..fc9549dcff4 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-SVC3A.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-SVC3A.md @@ -1563,9 +1563,9 @@ vrf instance Tenant_C_WAN_Zone ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| Tenant_A_OP_Zone | 10.255.1.8 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| Tenant_A_OP_Zone | 10.255.1.8 | - | ### Virtual Source NAT Configuration diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-SVC3B.md b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-SVC3B.md index a007b24b0dc..91e707708cd 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-SVC3B.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-SVC3B.md @@ -1536,9 +1536,9 @@ vrf instance Tenant_C_WAN_Zone ### Virtual Source NAT Summary -| Source NAT VRF | Source NAT IP Address | -| -------------- | --------------------- | -| Tenant_A_OP_Zone | 10.255.1.9 | +| Source NAT VRF | Source NAT IPv4 Address | Source NAT IPv6 Address | +| -------------- | ----------------------- | ----------------------- | +| Tenant_A_OP_Zone | 10.255.1.9 | - | ### Virtual Source NAT Configuration From a2b26bf1282fb2673efa75159580bf76b48f62ea Mon Sep 17 00:00:00 2001 From: Vibhu-gslab Date: Fri, 15 Nov 2024 12:28:45 +0530 Subject: [PATCH 11/12] fixing comments --- .../inventory/host_vars/host1/mpls.yml | 4 +- .../inventory/host_vars/host2/mpls-2.yml | 4 +- .../eos_cli_config_gen/docs/tables/mpls.md | 39 ++++++++++++------- .../j2templates/documentation/mpls-rsvp.j2 | 6 ++- .../j2templates/eos/mpls.j2 | 20 +++++----- .../schema/eos_cli_config_gen.schema.yml | 21 ++++++---- .../schema/schema_fragments/mpls.schema.yml | 21 ++++++---- 7 files changed, 72 insertions(+), 43 deletions(-) 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 index 973e941bd36..c259ae67932 100644 --- 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 @@ -30,8 +30,8 @@ mpls: graceful_restart: role_speaker: enabled: true - grace_period_recovery: 35 - grace_period_restart: 36 + timer_recovery: 35 + timer_restart: 36 hitless_restart: enabled: true timer_recovery: 222 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 index af53bf7ebc1..59ee3cc4be2 100644 --- 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 @@ -26,5 +26,5 @@ mpls: graceful_restart: role_helper: enabled: true - grace_period_recovery: 32 - grace_period_restart: 33 + timer_recovery: 32 + timer_restart: 33 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 3049ba7c4fc..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 @@ -40,7 +40,7 @@ | [    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. | + | [      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. | @@ -52,20 +52,20 @@ | [    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 | | | | - | [        grace_period_recovery](## "mpls.rsvp.graceful_restart.role_helper.grace_period_recovery") | Integer | | | Min: 1
Max: 320 | | - | [        grace_period_restart](## "mpls.rsvp.graceful_restart.role_helper.grace_period_restart") | Integer | | | Min: 1
Max: 320 | | + | [        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 | | | | - | [        grace_period_recovery](## "mpls.rsvp.graceful_restart.role_speaker.grace_period_recovery") | Integer | | | Min: 1
Max: 320 | | - | [        grace_period_restart](## "mpls.rsvp.graceful_restart.role_speaker.grace_period_restart") | Integer | | | Min: 1
Max: 320 | | + | [        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. | + | [      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. | + | [      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 | | | | | + | [    shutdown](## "mpls.rsvp.shutdown") | Boolean | | | | Make `shutdown` key false for `no shutdown` cli. | === "YAML" @@ -156,7 +156,7 @@ reversion: # Fast-reroute bypass configuration. - # Interval between each re-optimization attempt. + # Interval between each re-optimization attempt in seconds. bypass_tunnel_optimization_interval: srlg: @@ -181,15 +181,23 @@ graceful_restart: role_helper: enabled: - grace_period_recovery: - grace_period_restart: + + # Maximum recovery timer value in seconds. + timer_recovery: + + # Maximum restart timer value in seconds. + timer_restart: role_speaker: enabled: - grace_period_recovery: - grace_period_restart: + + # Maximum recovery timer value in seconds. + timer_recovery: + + # Maximum restart timer value in seconds. + timer_restart: hello: - # Time between hello messages. + # Time between hello messages in seconds. interval: # Number of missed hellos after which the neighbor is expired. @@ -200,7 +208,10 @@ 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-rsvp.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/mpls-rsvp.j2 index 6130824496a..57c0fadb94a 100644 --- 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 @@ -63,6 +63,8 @@ {% 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 %} @@ -89,10 +91,10 @@ | Role | Recovery timer | Restart timer | | ---- | -------------- | ------------- | {% if graceful_restart.role_helper.enabled is arista.avd.defined(true) %} -| Helper | {{ graceful_restart.role_helper.grace_period_recovery | arista.avd.default('-') }} | {{ graceful_restart.role_helper.grace_period_restart | arista.avd.default('-') }} | +| 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.grace_period_recovery | arista.avd.default('-') }} | {{ graceful_restart.role_speaker.grace_period_restart | arista.avd.default('-') }} | +| 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/eos/mpls.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/mpls.j2 index cf43b56d1de..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 @@ -72,7 +72,7 @@ mpls rsvp {% 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 %} +{% 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 %} @@ -136,21 +136,21 @@ mpls rsvp {% if graceful_restart.role_helper.enabled is arista.avd.defined(true) %} ! graceful-restart role helper -{% if graceful_restart.role_helper.grace_period_recovery is arista.avd.defined %} - timer restart maximum {{ graceful_restart.role_helper.grace_period_recovery }} seconds +{% 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.grace_period_restart is arista.avd.defined %} - timer recovery maximum {{ graceful_restart.role_helper.grace_period_restart }} seconds +{% 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.grace_period_recovery is arista.avd.defined %} - timer restart {{ graceful_restart.role_speaker.grace_period_recovery }} seconds +{% 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.grace_period_restart is arista.avd.defined %} - timer recovery {{ graceful_restart.role_speaker.grace_period_restart }} seconds +{% if graceful_restart.role_speaker.timer_restart is arista.avd.defined %} + timer recovery {{ graceful_restart.role_speaker.timer_restart }} seconds {% endif %} {% endif %} {% endif %} @@ -164,5 +164,7 @@ mpls rsvp {% 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 5c9ea200370..3c063e5348d 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 @@ -8713,7 +8713,7 @@ keys: bypass_tunnel_optimization_interval: description: 'Fast-reroute bypass configuration. - Interval between each re-optimization attempt.' + Interval between each re-optimization attempt in seconds.' type: int convert_types: - str @@ -8764,41 +8764,45 @@ keys: enabled: type: bool required: true - grace_period_recovery: + timer_recovery: type: int convert_types: - str min: 1 max: 320 - grace_period_restart: + 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 - grace_period_recovery: + timer_recovery: type: int convert_types: - str min: 1 max: 320 - grace_period_restart: + 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. + description: Time between hello messages in seconds. type: int required: true convert_types: @@ -8820,7 +8824,9 @@ keys: enabled: type: bool timer_recovery: - description: Time stale states will be preserved after restart. + description: 'Time stale states will be preserved after restart. + + Value in seconds.' type: int convert_types: - str @@ -8830,6 +8836,7 @@ keys: 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 55371814643..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 @@ -162,7 +162,7 @@ keys: bypass_tunnel_optimization_interval: description: |- Fast-reroute bypass configuration. - Interval between each re-optimization attempt. + Interval between each re-optimization attempt in seconds. type: int convert_types: - str @@ -213,41 +213,45 @@ keys: enabled: type: bool required: true - grace_period_recovery: + timer_recovery: type: int convert_types: - str min: 1 max: 320 - grace_period_restart: + 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 - grace_period_recovery: + timer_recovery: type: int convert_types: - str min: 1 max: 320 - grace_period_restart: + 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. + description: Time between hello messages in seconds. type: int required: true convert_types: @@ -269,7 +273,9 @@ keys: enabled: type: bool timer_recovery: - description: Time stale states will be preserved after restart. + description: |- + Time stale states will be preserved after restart. + Value in seconds. type: int convert_types: - str @@ -279,3 +285,4 @@ keys: type: bool shutdown: type: bool + description: Make `shutdown` key false for `no shutdown` cli. From 3dacf02449c5b86f846d2cc04afe0a5086fc385f Mon Sep 17 00:00:00 2001 From: Vibhu-gslab Date: Fri, 22 Nov 2024 08:55:33 +0530 Subject: [PATCH 12/12] removing required_key and fixing comments --- .../documentation/devices/host1.md | 6 ++-- .../eos_cli_config_gen/docs/tables/mpls.md | 28 +++++++++---------- .../j2templates/documentation/mpls-rsvp.j2 | 12 ++++---- .../j2templates/eos/mpls.j2 | 2 +- .../schema/eos_cli_config_gen.schema.yml | 7 ----- .../schema/schema_fragments/mpls.schema.yml | 7 ----- 6 files changed, 23 insertions(+), 39 deletions(-) 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 785cbced2e6..aeb7cc45db5 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 @@ -7419,17 +7419,17 @@ router bfd | Authentication active index | - | | IPv4 access-group | RSVP_access_group_ipv4 | | IPv6 access-group | RSVP_access_group_ipv6 | -| SRLG strict | enabled | +| SRLG strict | Enabled | | Label local-termination | explicit-null | | Preemption method | soft | | Preemption timer | 444 | -| MTU signaling | True | +| MTU signaling | Enabled | | Fast reroute mode | - | | Fast reroute reversion | local | | Fast reroute bypass tunnel optimization interval | 65535 | | Hitless restart | Active | | Hitless restart recovery timer | 222 | -| Shutdown | Active | +| Shutdown | True | ##### RSVP Neighbor Authentication 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 20b75edd5d4..1764c78ae22 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 @@ -32,7 +32,7 @@ | [    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. | + | [        authentication](## "mpls.rsvp.neighbors.[].authentication") | Dictionary | | | | 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. | @@ -42,25 +42,25 @@ | [      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. | + | [      enabled](## "mpls.rsvp.srlg.enabled") | Boolean | | | | 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 | | + | [      preemption](## "mpls.rsvp.preemption_method.preemption") | String | | | 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 | | | | + | [        enabled](## "mpls.rsvp.graceful_restart.role_helper.enabled") | Boolean | | | | | | [        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 | | | | + | [        enabled](## "mpls.rsvp.graceful_restart.role_speaker.enabled") | Boolean | | | | | | [        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. | + | [      interval](## "mpls.rsvp.hello.interval") | Integer | | | Min: 1
Max: 60 | Time between hello messages in seconds. | + | [      multiplier](## "mpls.rsvp.hello.multiplier") | Integer | | | 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. | @@ -129,7 +129,7 @@ ipv6_address: # Cryptographic authentication. - authentication: # required + authentication: # Password index. index: @@ -161,7 +161,7 @@ srlg: # Select SRLG behavior. - enabled: + enabled: # Apply strict SRLG constraint. strict: @@ -169,7 +169,7 @@ # Local termination label to be advertised. label_local_termination: preemption_method: - preemption: + preemption: # Timer value in units of seconds. timer: @@ -180,7 +180,7 @@ # RSVP graceful restart. graceful_restart: role_helper: - enabled: + enabled: # Maximum recovery timer value in seconds. timer_recovery: @@ -188,7 +188,7 @@ # Maximum restart timer value in seconds. timer_restart: role_speaker: - enabled: + enabled: # Maximum recovery timer value in seconds. timer_recovery: @@ -198,10 +198,10 @@ hello: # Time between hello messages in seconds. - interval: + interval: # Number of missed hellos after which the neighbor is expired. - multiplier: + multiplier: # RSVP hitless restart. hitless_restart: 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 index 57c0fadb94a..84d78ef29a0 100644 --- 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 @@ -35,7 +35,7 @@ | 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 | +| SRLG strict | Enabled | {% elif mpls.rsvp.srlg.enabled is arista.avd.defined(true) %} | SRLG | enabled | {% endif %} @@ -49,7 +49,7 @@ {% endif %} {% endif %} {% if mpls.rsvp.mtu_signaling is arista.avd.defined %} -| MTU signaling | {{ mpls.rsvp.mtu_signaling | arista.avd.default('-') }} | +| MTU signaling | Enabled | {% endif %} {% if mpls.rsvp.fast_reroute is arista.avd.defined %} {% set fast_reroute = mpls.rsvp.fast_reroute %} @@ -57,14 +57,12 @@ | 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 %} +{% if mpls.rsvp.hitless_restart.enabled is arista.avd.defined(true) %} | 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 | +{% if mpls.rsvp.shutdown is arista.avd.defined %} +| Shutdown | {{ mpls.rsvp.shutdown }} | {% endif %} {% if mpls.rsvp.neighbors is arista.avd.defined %} 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 2729bf9292c..8844c4cf28b 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 @@ -46,7 +46,7 @@ mpls rsvp refresh method {{ mpls.rsvp.refresh.method }} {% endif %} {% endif %} -{% if mpls.rsvp.hello is arista.avd.defined %} +{% if mpls.rsvp.hello.interval is arista.avd.defined and mpls.rsvp.hello.multiplier is arista.avd.defined %} hello interval {{ mpls.rsvp.hello.interval }} multiplier {{ mpls.rsvp.hello.multiplier }} {% endif %} {% if mpls.rsvp.authentication is arista.avd.defined %} 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 7eb37a454fe..3221363526c 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 @@ -8680,7 +8680,6 @@ keys: authentication: description: Cryptographic authentication. type: dict - required: true keys: index: description: Password index. @@ -8740,7 +8739,6 @@ keys: enabled: description: Select SRLG behavior. type: bool - required: true strict: description: Apply strict SRLG constraint. type: bool @@ -8755,7 +8753,6 @@ keys: keys: preemption: type: str - required: true valid_values: - hard - soft @@ -8778,7 +8775,6 @@ keys: keys: enabled: type: bool - required: true timer_recovery: type: int convert_types: @@ -8798,7 +8794,6 @@ keys: keys: enabled: type: bool - required: true timer_recovery: type: int convert_types: @@ -8819,7 +8814,6 @@ keys: interval: description: Time between hello messages in seconds. type: int - required: true convert_types: - str min: 1 @@ -8827,7 +8821,6 @@ keys: multiplier: description: Number of missed hellos after which the neighbor is expired. type: int - required: true convert_types: - str min: 1 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 d1519835a1e..c5e6de7c625 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 @@ -117,7 +117,6 @@ keys: authentication: description: Cryptographic authentication. type: dict - required: true keys: index: description: Password index. @@ -174,7 +173,6 @@ keys: enabled: description: Select SRLG behavior. type: bool - required: true strict: description: Apply strict SRLG constraint. type: bool @@ -189,7 +187,6 @@ keys: keys: preemption: type: str - required: true valid_values: - hard - soft @@ -212,7 +209,6 @@ keys: keys: enabled: type: bool - required: true timer_recovery: type: int convert_types: @@ -232,7 +228,6 @@ keys: keys: enabled: type: bool - required: true timer_recovery: type: int convert_types: @@ -253,7 +248,6 @@ keys: interval: description: Time between hello messages in seconds. type: int - required: true convert_types: - str min: 1 @@ -261,7 +255,6 @@ keys: multiplier: description: Number of missed hellos after which the neighbor is expired. type: int - required: true convert_types: - str min: 1