diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-evpn-mpls.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-evpn-mpls.md
index 2b5ecb195a9..4a787cdffd5 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-evpn-mpls.md
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-evpn-mpls.md
@@ -130,6 +130,7 @@ router bgp 65101
neighbor 192.168.255.2 peer group EVPN-OVERLAY-PEERS
!
address-family evpn
+ bgp additional-paths send limit 10
neighbor default encapsulation mpls next-hop-self source-interface Loopback0
next-hop mpls resolution ribs tunnel-rib-colored system-colored-tunnel-rib tunnel-rib test-rib system-connected
neighbor EVPN-OVERLAY-PEERS activate
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-evpn-vpn-import-pruning.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-evpn-vpn-import-pruning.md
index c3669749c6a..c8d89179ac3 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-evpn-vpn-import-pruning.md
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-evpn-vpn-import-pruning.md
@@ -169,6 +169,7 @@ router bgp 65101
vlan 112
!
address-family evpn
+ bgp additional-paths send ecmp limit 20
host-flap detection window 10 threshold 1
domain identifier 65101:0
neighbor EVPN-OVERLAY-PEERS activate
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 fadfaa9dc18..77b1974ed9c 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
@@ -245,6 +245,8 @@ router bgp 65101
vlan 112
!
address-family evpn
+ bgp additional-paths receive
+ bgp additional-paths send any
bgp next-hop-unchanged
host-flap detection window 10 threshold 1 expiry timeout 3 seconds
domain identifier 65101:0
@@ -269,6 +271,7 @@ router bgp 65101
neighbor default next-hop-self received-evpn-routes route-type ip-prefix inter-domain
route import ethernet-segment ip mass-withdraw
route export ethernet-segment ip mass-withdraw
+ route import overlay-index gateway
!
address-family ipv4
no neighbor EVPN-OVERLAY-PEERS activate
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-v4-evpn.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-v4-evpn.md
index 6d284259351..7af1e5330ce 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-v4-evpn.md
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/router-bgp-v4-evpn.md
@@ -244,6 +244,7 @@ router bgp 65101
vlan 112
!
address-family evpn
+ bgp additional-paths send backup
neighbor EVPN-OVERLAY-PEERS activate
no neighbor IPv4-UNDERLAY-PEERS activate
no neighbor MLAG-IPv4-UNDERLAY-PEER activate
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-evpn-mpls.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-evpn-mpls.cfg
index 84b80e4840e..65554088870 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-evpn-mpls.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-evpn-mpls.cfg
@@ -35,6 +35,7 @@ router bgp 65101
neighbor 192.168.255.2 peer group EVPN-OVERLAY-PEERS
!
address-family evpn
+ bgp additional-paths send limit 10
neighbor default encapsulation mpls next-hop-self source-interface Loopback0
next-hop mpls resolution ribs tunnel-rib-colored system-colored-tunnel-rib tunnel-rib test-rib system-connected
neighbor EVPN-OVERLAY-PEERS activate
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-evpn-vpn-import-pruning.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-evpn-vpn-import-pruning.cfg
index e0c8559ffe8..58cb173c41c 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-evpn-vpn-import-pruning.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-evpn-vpn-import-pruning.cfg
@@ -57,6 +57,7 @@ router bgp 65101
vlan 112
!
address-family evpn
+ bgp additional-paths send ecmp limit 20
host-flap detection window 10 threshold 1
domain identifier 65101:0
neighbor EVPN-OVERLAY-PEERS activate
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 94d7aebf033..885ad4b6c36 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
@@ -95,6 +95,8 @@ router bgp 65101
vlan 112
!
address-family evpn
+ bgp additional-paths receive
+ bgp additional-paths send any
bgp next-hop-unchanged
host-flap detection window 10 threshold 1 expiry timeout 3 seconds
domain identifier 65101:0
@@ -119,6 +121,7 @@ router bgp 65101
neighbor default next-hop-self received-evpn-routes route-type ip-prefix inter-domain
route import ethernet-segment ip mass-withdraw
route export ethernet-segment ip mass-withdraw
+ route import overlay-index gateway
!
address-family ipv4
no neighbor EVPN-OVERLAY-PEERS activate
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-v4-evpn.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-v4-evpn.cfg
index ab1ac634538..7f720fea5e3 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-v4-evpn.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/router-bgp-v4-evpn.cfg
@@ -80,6 +80,7 @@ router bgp 65101
vlan 112
!
address-family evpn
+ bgp additional-paths send backup
neighbor EVPN-OVERLAY-PEERS activate
no neighbor IPv4-UNDERLAY-PEERS activate
no neighbor MLAG-IPv4-UNDERLAY-PEER activate
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-evpn-mpls.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-evpn-mpls.yml
index 22bef5a9a24..af2d0d061e0 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-evpn-mpls.yml
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-evpn-mpls.yml
@@ -37,6 +37,9 @@ router_bgp:
- ip_address: 192.168.255.2
peer_group: EVPN-OVERLAY-PEERS
address_family_evpn:
+ bgp_additional_paths:
+ send:
+ limit: 10
next_hop_mpls_resolution_ribs:
- rib_type: "tunnel-rib-colored"
- rib_type: "tunnel-rib"
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-evpn-vpn-import-pruning.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-evpn-vpn-import-pruning.yml
index fda88081ff4..be67b932dc5 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-evpn-vpn-import-pruning.yml
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-evpn-vpn-import-pruning.yml
@@ -33,6 +33,9 @@ router_bgp:
peer_group: EVPN-OVERLAY-PEERS
redistribute_routes:
address_family_evpn:
+ bgp_additional_paths:
+ send:
+ ecmp_limit: 20
domain_identifier: "65101:0"
peer_groups:
- name: EVPN-OVERLAY-PEERS
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 8bcfbd0aff8..f38bb9297b9 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
@@ -109,6 +109,11 @@ router_bgp:
route:
import_ethernet_segment_ip_mass_withdraw: true
export_ethernet_segment_ip_mass_withdraw: true
+ import_overlay_index_gateway: true
+ bgp_additional_paths:
+ receive: true
+ send:
+ any: true
address_family_ipv4:
peer_groups:
- name: EVPN-OVERLAY-PEERS
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-v4-evpn.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-v4-evpn.yml
index 03a14b9dbb9..53135a90abb 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-v4-evpn.yml
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/router-bgp-v4-evpn.yml
@@ -74,6 +74,9 @@ router_bgp:
- source_protocol: connected
route_map: RM-CONN-2-BGP
address_family_evpn:
+ bgp_additional_paths:
+ send:
+ backup: true
peer_groups:
- name: EVPN-OVERLAY-PEERS
activate: true
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 39ef53ac9af..19999b0dab7 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
@@ -282,8 +282,17 @@
| [ 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
| |
| [ import_ethernet_segment_ip_mass_withdraw](## "router_bgp.address_family_evpn.route.import_ethernet_segment_ip_mass_withdraw") | Boolean | | | | |
+ | [ import_overlay_index_gateway](## "router_bgp.address_family_evpn.route.import_overlay_index_gateway") | Boolean | | | | |
| [ export_ethernet_segment_ip_mass_withdraw](## "router_bgp.address_family_evpn.route.export_ethernet_segment_ip_mass_withdraw") | Boolean | | | | |
| [ next_hop_unchanged](## "router_bgp.address_family_evpn.next_hop_unchanged") | Boolean | | | | |
+ | [ bgp_additional_paths](## "router_bgp.address_family_evpn.bgp_additional_paths") | Dictionary | | | | BGP additional-paths commands. |
+ | [ receive](## "router_bgp.address_family_evpn.bgp_additional_paths.receive") | Boolean | | | | Receive multiple paths. |
+ | [ send](## "router_bgp.address_family_evpn.bgp_additional_paths.send") | Dictionary | | | | Send multiple paths. |
+ | [ any](## "router_bgp.address_family_evpn.bgp_additional_paths.send.any") | Boolean | | | | Any eligible path. |
+ | [ backup](## "router_bgp.address_family_evpn.bgp_additional_paths.send.backup") | Boolean | | | | Best path and installed backup path. |
+ | [ ecmp](## "router_bgp.address_family_evpn.bgp_additional_paths.send.ecmp") | Boolean | | | | All paths in best path ECMP group. |
+ | [ ecmp_limit](## "router_bgp.address_family_evpn.bgp_additional_paths.send.ecmp_limit") | Integer | | | Min: 2
Max: 64 | Amount of ECMP paths to send. |
+ | [ limit](## "router_bgp.address_family_evpn.bgp_additional_paths.send.limit") | Integer | | | Min: 2
Max: 64 | Amount of paths to send. |
| [ address_family_rtc](## "router_bgp.address_family_rtc") | Dictionary | | | | |
| [ peer_groups](## "router_bgp.address_family_rtc.peer_groups") | List, items: Dictionary | | | | |
| [ - name](## "router_bgp.address_family_rtc.peer_groups.[].name") | String | Required, Unique | | | Peer-group name. |
@@ -1247,8 +1256,33 @@
route:
import_match_failure_action:
import_ethernet_segment_ip_mass_withdraw:
+ import_overlay_index_gateway:
export_ethernet_segment_ip_mass_withdraw:
next_hop_unchanged:
+
+ # BGP additional-paths commands.
+ bgp_additional_paths:
+
+ # Receive multiple paths.
+ receive:
+
+ # Send multiple paths.
+ send:
+
+ # Any eligible path.
+ any:
+
+ # Best path and installed backup path.
+ backup:
+
+ # All paths in best path ECMP group.
+ ecmp:
+
+ # Amount of ECMP paths to send.
+ ecmp_limit:
+
+ # Amount of paths to send.
+ limit:
address_family_rtc:
peer_groups:
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 92f6628df11..147d32192c5 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
@@ -18297,6 +18297,10 @@
"type": "boolean",
"title": "Import Ethernet Segment IP Mass Withdraw"
},
+ "import_overlay_index_gateway": {
+ "type": "boolean",
+ "title": "Import Overlay Index Gateway"
+ },
"export_ethernet_segment_ip_mass_withdraw": {
"type": "boolean",
"title": "Export Ethernet Segment IP Mass Withdraw"
@@ -18311,6 +18315,62 @@
"next_hop_unchanged": {
"type": "boolean",
"title": "Next Hop Unchanged"
+ },
+ "bgp_additional_paths": {
+ "type": "object",
+ "description": "BGP additional-paths commands.",
+ "properties": {
+ "receive": {
+ "type": "boolean",
+ "description": "Receive multiple paths.",
+ "title": "Receive"
+ },
+ "send": {
+ "type": "object",
+ "description": "Send multiple paths.",
+ "properties": {
+ "any": {
+ "type": "boolean",
+ "description": "Any eligible path.",
+ "title": "Any"
+ },
+ "backup": {
+ "type": "boolean",
+ "description": "Best path and installed backup path.",
+ "title": "Backup"
+ },
+ "ecmp": {
+ "type": "boolean",
+ "description": "All paths in best path ECMP group.",
+ "title": "ECMP"
+ },
+ "ecmp_limit": {
+ "type": "integer",
+ "description": "Amount of ECMP paths to send.",
+ "minimum": 2,
+ "maximum": 64,
+ "title": "ECMP Limit"
+ },
+ "limit": {
+ "type": "integer",
+ "description": "Amount of paths to send.",
+ "minimum": 2,
+ "maximum": 64,
+ "title": "Limit"
+ }
+ },
+ "additionalProperties": false,
+ "patternProperties": {
+ "^_.+$": {}
+ },
+ "title": "Send"
+ }
+ },
+ "additionalProperties": false,
+ "patternProperties": {
+ "^_.+$": {}
+ },
+ "title": "BGP Additional Paths"
}
},
"additionalProperties": false,
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 1d829ba2ed8..02473e3313b 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
@@ -10889,10 +10889,46 @@ keys:
- discard
import_ethernet_segment_ip_mass_withdraw:
type: bool
+ import_overlay_index_gateway:
+ type: bool
export_ethernet_segment_ip_mass_withdraw:
type: bool
next_hop_unchanged:
type: bool
+ bgp_additional_paths:
+ type: dict
+ description: BGP additional-paths commands.
+ keys:
+ receive:
+ type: bool
+ description: Receive multiple paths.
+ send:
+ type: dict
+ description: Send multiple paths.
+ keys:
+ any:
+ type: bool
+ description: Any eligible path.
+ backup:
+ type: bool
+ description: Best path and installed backup path.
+ ecmp:
+ type: bool
+ description: All paths in best path ECMP group.
+ ecmp_limit:
+ type: int
+ description: Amount of ECMP paths to send.
+ convert_types:
+ - str
+ min: 2
+ max: 64
+ limit:
+ type: int
+ description: Amount of paths to send.
+ convert_types:
+ - str
+ min: 2
+ max: 64
address_family_rtc:
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 e66c1cd9d74..461bf5c9a0b 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
@@ -1034,10 +1034,46 @@ keys:
- "discard"
import_ethernet_segment_ip_mass_withdraw:
type: bool
+ import_overlay_index_gateway:
+ type: bool
export_ethernet_segment_ip_mass_withdraw:
type: bool
next_hop_unchanged:
type: bool
+ bgp_additional_paths:
+ type: dict
+ description: BGP additional-paths commands.
+ keys:
+ receive:
+ type: bool
+ description: Receive multiple paths.
+ send:
+ type: dict
+ description: Send multiple paths.
+ keys:
+ any:
+ type: bool
+ description: Any eligible path.
+ backup:
+ type: bool
+ description: Best path and installed backup path.
+ ecmp:
+ type: bool
+ description: All paths in best path ECMP group.
+ ecmp_limit:
+ type: int
+ description: Amount of ECMP paths to send.
+ convert_types:
+ - str
+ min: 2
+ max: 64
+ limit:
+ type: int
+ description: Amount of paths to send.
+ convert_types:
+ - str
+ min: 2
+ max: 64
address_family_rtc:
type: dict
keys:
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 6d1065aba8f..93c41854c87 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
@@ -545,6 +545,20 @@ router bgp {{ router_bgp.as }}
{% if router_bgp.address_family_evpn is arista.avd.defined %}
!
address-family evpn
+{% if router_bgp.address_family_evpn.bgp_additional_paths.receive is arista.avd.defined(true) %}
+ bgp additional-paths receive
+{% endif %}
+{% if router_bgp.address_family_evpn.bgp_additional_paths.send.any is arista.avd.defined(true) %}
+ bgp additional-paths send any
+{% elif router_bgp.address_family_evpn.bgp_additional_paths.send.backup is arista.avd.defined(true) %}
+ bgp additional-paths send backup
+{% elif router_bgp.address_family_evpn.bgp_additional_paths.send.ecmp is arista.avd.defined(true) %}
+ bgp additional-paths send ecmp
+{% elif router_bgp.address_family_evpn.bgp_additional_paths.send.ecmp_limit is arista.avd.defined %}
+ bgp additional-paths send ecmp limit {{ router_bgp.address_family_evpn.bgp_additional_paths.send.ecmp_limit }}
+{% elif router_bgp.address_family_evpn.bgp_additional_paths.send.limit is arista.avd.defined %}
+ bgp additional-paths send limit {{ router_bgp.address_family_evpn.bgp_additional_paths.send.limit }}
+{% endif %}
{% if router_bgp.address_family_evpn.next_hop_unchanged is arista.avd.defined(true) %}
bgp next-hop-unchanged
{% endif %}
@@ -651,6 +665,9 @@ router bgp {{ router_bgp.as }}
{% if router_bgp.address_family_evpn.route.export_ethernet_segment_ip_mass_withdraw is arista.avd.defined(true) %}
route export ethernet-segment ip mass-withdraw
{% endif %}
+{% if router_bgp.address_family_evpn.route.import_overlay_index_gateway is arista.avd.defined(true) %}
+ route import overlay-index gateway
+{% endif %}
{% endif %}
{# address family flow-spec ipv4 activation #}
{% if router_bgp.address_family_flow_spec_ipv4 is arista.avd.defined %}
diff --git a/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.jsonschema.json b/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.jsonschema.json
index 2217dfa1d89..b127bc82752 100644
--- a/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.jsonschema.json
+++ b/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.jsonschema.json
@@ -34839,6 +34839,10 @@
"type": "boolean",
"title": "Import Ethernet Segment IP Mass Withdraw"
},
+ "import_overlay_index_gateway": {
+ "type": "boolean",
+ "title": "Import Overlay Index Gateway"
+ },
"export_ethernet_segment_ip_mass_withdraw": {
"type": "boolean",
"title": "Export Ethernet Segment IP Mass Withdraw"
@@ -34853,6 +34857,62 @@
"next_hop_unchanged": {
"type": "boolean",
"title": "Next Hop Unchanged"
+ },
+ "bgp_additional_paths": {
+ "type": "object",
+ "description": "BGP additional-paths commands.",
+ "properties": {
+ "receive": {
+ "type": "boolean",
+ "description": "Receive multiple paths.",
+ "title": "Receive"
+ },
+ "send": {
+ "type": "object",
+ "description": "Send multiple paths.",
+ "properties": {
+ "any": {
+ "type": "boolean",
+ "description": "Any eligible path.",
+ "title": "Any"
+ },
+ "backup": {
+ "type": "boolean",
+ "description": "Best path and installed backup path.",
+ "title": "Backup"
+ },
+ "ecmp": {
+ "type": "boolean",
+ "description": "All paths in best path ECMP group.",
+ "title": "ECMP"
+ },
+ "ecmp_limit": {
+ "type": "integer",
+ "description": "Amount of ECMP paths to send.",
+ "minimum": 2,
+ "maximum": 64,
+ "title": "ECMP Limit"
+ },
+ "limit": {
+ "type": "integer",
+ "description": "Amount of paths to send.",
+ "minimum": 2,
+ "maximum": 64,
+ "title": "Limit"
+ }
+ },
+ "additionalProperties": false,
+ "patternProperties": {
+ "^_.+$": {}
+ },
+ "title": "Send"
+ }
+ },
+ "additionalProperties": false,
+ "patternProperties": {
+ "^_.+$": {}
+ },
+ "title": "BGP Additional Paths"
}
},
"additionalProperties": false,