diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-evpn.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-evpn.md index 2976fc35c2b..1765f929c49 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-evpn.md +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-evpn.md @@ -98,6 +98,8 @@ interface Management1 #### Router BGP EVPN Address Family +- Next-hop resolution is __disabled__ + ##### EVPN Peer Groups | Peer Group | Activate | Encapsulation | @@ -238,6 +240,7 @@ router bgp 65101 neighbor EVPN-OVERLAY-PEERS domain remote neighbor EVPN-OVERLAY-PEERS encapsulation vxlan no neighbor MLAG-IPv4-UNDERLAY-PEER activate + next-hop resolution disabled neighbor default next-hop-self received-evpn-routes route-type ip-prefix inter-domain ! address-family ipv4 diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-evpn.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-evpn.cfg index 7d80a169eb8..f3803bb61bf 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-evpn.cfg +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-evpn.cfg @@ -100,6 +100,7 @@ router bgp 65101 neighbor EVPN-OVERLAY-PEERS domain remote neighbor EVPN-OVERLAY-PEERS encapsulation vxlan no neighbor MLAG-IPv4-UNDERLAY-PEER activate + next-hop resolution disabled neighbor default next-hop-self received-evpn-routes route-type ip-prefix inter-domain ! address-family ipv4 diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-evpn.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-evpn.yml index 41b1236ca6b..2745dfdf0c2 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-evpn.yml +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-evpn.yml @@ -67,6 +67,8 @@ router_bgp: window: 10 threshold: 1 expiry_timeout: 3 + next_hop: + resolution_disabled: true address_family_ipv4: peer_groups: - name: EVPN-OVERLAY-PEERS diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/router-bgp.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/router-bgp.md index 95613056886..728cd84c5c7 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/router-bgp.md +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/router-bgp.md @@ -247,6 +247,8 @@ | [      window](## "router_bgp.address_family_evpn.evpn_hostflap_detection.window") | Integer | | | Min: 0
Max: 4294967295 | Time (in seconds) to detect a MAC duplication issue | | [      threshold](## "router_bgp.address_family_evpn.evpn_hostflap_detection.threshold") | Integer | | | Min: 0
Max: 4294967295 | Minimum number of MAC moves that indicate a MAC Duplication issue | | [      expiry_timeout](## "router_bgp.address_family_evpn.evpn_hostflap_detection.expiry_timeout") | Integer | | | Min: 0
Max: 4294967295 | Time (in seconds) to purge a MAC duplication issue | + | [    next_hop](## "router_bgp.address_family_evpn.next_hop") | Dictionary | | | | | + | [      resolution_disabled](## "router_bgp.address_family_evpn.next_hop.resolution_disabled") | Boolean | | | | | | [    route](## "router_bgp.address_family_evpn.route") | Dictionary | | | | | | [      import_match_failure_action](## "router_bgp.address_family_evpn.route.import_match_failure_action") | String | | | Valid Values:
- discard | | | [  address_family_rtc](## "router_bgp.address_family_rtc") | Dictionary | | | | | @@ -849,6 +851,8 @@ window: threshold: expiry_timeout: + next_hop: + resolution_disabled: route: import_match_failure_action: address_family_rtc: diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.jsonschema.json b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.jsonschema.json index 113531a77a6..8c80ef9fb32 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.jsonschema.json +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.jsonschema.json @@ -13939,6 +13939,20 @@ }, "title": "EVPN Hostflap Detection" }, + "next_hop": { + "type": "object", + "properties": { + "resolution_disabled": { + "type": "boolean", + "title": "Resolution Disabled" + } + }, + "additionalProperties": false, + "patternProperties": { + "^_.+$": {} + }, + "title": "Next Hop" + }, "route": { "type": "object", "properties": { diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.schema.yml b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.schema.yml index fef7a084ebf..df03efdd5b0 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.schema.yml +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.schema.yml @@ -8436,6 +8436,11 @@ keys: convert_types: - str description: Time (in seconds) to purge a MAC duplication issue + next_hop: + type: dict + keys: + resolution_disabled: + type: bool route: type: dict keys: diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/router_bgp.schema.yml b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/router_bgp.schema.yml index 3648f0f7b23..2178ced4e8a 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/router_bgp.schema.yml +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/router_bgp.schema.yml @@ -854,6 +854,11 @@ keys: convert_types: - str description: Time (in seconds) to purge a MAC duplication issue + next_hop: + type: dict + keys: + resolution_disabled: + type: bool route: type: dict keys: diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/router-bgp.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/router-bgp.j2 index 641ef002bec..57ddd27352e 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/router-bgp.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/router-bgp.j2 @@ -486,6 +486,10 @@ - VPN import pruning is __enabled__ {% endif %} +{% if router_bgp.address_family_evpn.next_hop.resolution_disabled is arista.avd.defined(true) %} + +- Next-hop resolution is __disabled__ +{% endif %} {% if router_bgp.address_family_evpn.peer_groups is arista.avd.defined %} ##### EVPN Peer Groups diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/router-bgp.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/router-bgp.j2 index 3bbbcccc9c3..c7f2f3d8b1e 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/router-bgp.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/router-bgp.j2 @@ -564,6 +564,9 @@ router bgp {{ router_bgp.as }} neighbor {{ peer_group.name }} encapsulation {{ peer_group.encapsulation }} {% endif %} {% endfor %} +{% if router_bgp.address_family_evpn.next_hop.resolution_disabled is arista.avd.defined(true) %} + next-hop resolution disabled +{% endif %} {% if router_bgp.address_family_evpn.neighbor_default.next_hop_self_received_evpn_routes.enable is arista.avd.defined(true) %} {% set evpn_neighbor_default_nhs_received_evpn_routes_cli = "neighbor default next-hop-self received-evpn-routes route-type ip-prefix" %} {% if router_bgp.address_family_evpn.neighbor_default.next_hop_self_received_evpn_routes.inter_domain is arista.avd.defined(true) %}