Files
arista-evpn-vxlan-clab/infrahub/objects/11-bgp-sessions.yml
Damien Arnodo 1b918a4cbc feat: Add Infrahub Jinja2 transform for BGP configuration (#23) (#27)
## Summary

Closes #23. Implements a single unified `bgp_yang_transform` covering the complete BGP router stanza for all 10 fabric devices.

**Design decision:** One transform (one query + one template) rather than 4 separate transforms, because all BGP components (process config, peer groups, neighbors, AFs) live under a single `router bgp <ASN>` stanza and must be consistent. This avoids multiple API calls per device and keeps the data model coherent.

| File | Description |
|------|-------------|
| `infrahub/transforms/queries/bgp_intent.gql` | Unified GraphQL query — `InfraBGPRouterConfig` (with peer_groups, sessions) + `InfraBGPAddressFamily` (with active_peer_groups, active_sessions, networks, optional vrf) |
| `infrahub/transforms/templates/bgp_yang.j2` | Jinja2 template — renders `bgp.global`, `bgp.peer_groups`, `bgp.neighbors`, `bgp.address_families`, `bgp.vrf_neighbors`, `bgp.vrf_address_families`; returns `[]` for devices with no BGP config |
| `infrahub/transforms/tests/bgp_yang/test.yml` | Smoke check + unit render tests for leaf1, spine1, leaf7 |
| `infrahub/transforms/tests/bgp_yang/leaf1/` | 3 peer-groups, 5 global neighbors, 2 global AFs |
| `infrahub/transforms/tests/bgp_yang/spine1/` | 1 peer-group (evpn/next-hop-unchanged), 16 neighbors (8 direct underlay + 8 EVPN), IPv4 AF activates individual sessions |
| `infrahub/transforms/tests/bgp_yang/leaf7/` | leaf1 pattern + VRF gold border session (AS 64999) + VRF-scoped IPv4 unicast AF |
| `.infrahub.yml` | Registers `bgp_intent` query and `bgp_yang_transform` |

## Validation

| Device | Expected output |
|--------|----------------|
| `leaf1` | 3 peer-groups, 5 global neighbors (underlay×2, iBGP×1, EVPN×2), 2 AFs, empty VRF sections |
| `spine1` | 1 peer-group (evpn, next-hop-unchanged), 16 neighbors (8 direct with `remote_asn`, 8 EVPN via peer-group), IPv4 AF activates individual sessions |
| `leaf7` | Same as leaf1 (AS 65004) + `vrf_neighbors: [{10.90.90.1, AS 64999, VRF gold}]` + `vrf_address_families: [{ipv4, VRF gold, active_sessions: [10.90.90.1]}]` |

```bash
infrahubctl render bgp_yang_transform device_name=leaf1
infrahubctl render bgp_yang_transform device_name=spine1
infrahubctl render bgp_yang_transform device_name=leaf7
```

## Design notes

- Follows identical conventions to existing transforms (#20–#22)
- All optional relationships (`remote_asn`, `peer_group`, `vrf`, `peer_device`, `update_source`, etc.) wrapped in `is defined and is not none` guards
- `send_community` value `"none"` (schema default) is normalised to `null` in the output — keeps the rendered JSON clean for downstream consumers
- VRF-scoped sessions and AFs are separated into `vrf_neighbors` / `vrf_address_families` arrays, each entry carrying a `"vrf"` key, so the template consumer can trivially iterate per-VRF without filtering
2026-03-01 13:22:51 +00:00

749 lines
24 KiB
YAML

# BGP Sessions and Address Families
# Depends on: 09-bgp (RouterConfig and PeerGroups must exist), 10-vrfs (InfraVRF must exist before VRF references)
---
apiVersion: infrahub.app/v1
kind: Object
spec:
kind: InfraBGPSession
data:
# ============================================================
# Spine1 sessions
# ============================================================
# Spine1 underlay (direct neighbors, no peer-group — use remote_asn)
- bgp_config: ["spine1"]
local_identifier: "spine1__10.0.1.1"
peer_address: "10.0.1.1"
description: "underlay to leaf1"
remote_asn: ["65001"]
peer_device: ["leaf1"]
- bgp_config: ["spine1"]
local_identifier: "spine1__10.0.1.3"
peer_address: "10.0.1.3"
description: "underlay to leaf2"
remote_asn: ["65001"]
peer_device: ["leaf2"]
- bgp_config: ["spine1"]
local_identifier: "spine1__10.0.1.5"
peer_address: "10.0.1.5"
description: "underlay to leaf3"
remote_asn: ["65002"]
peer_device: ["leaf3"]
- bgp_config: ["spine1"]
local_identifier: "spine1__10.0.1.7"
peer_address: "10.0.1.7"
description: "underlay to leaf4"
remote_asn: ["65002"]
peer_device: ["leaf4"]
- bgp_config: ["spine1"]
local_identifier: "spine1__10.0.1.9"
peer_address: "10.0.1.9"
description: "underlay to leaf5"
remote_asn: ["65003"]
peer_device: ["leaf5"]
- bgp_config: ["spine1"]
local_identifier: "spine1__10.0.1.11"
peer_address: "10.0.1.11"
description: "underlay to leaf6"
remote_asn: ["65003"]
peer_device: ["leaf6"]
- bgp_config: ["spine1"]
local_identifier: "spine1__10.0.1.13"
peer_address: "10.0.1.13"
description: "underlay to leaf7"
remote_asn: ["65004"]
peer_device: ["leaf7"]
- bgp_config: ["spine1"]
local_identifier: "spine1__10.0.1.15"
peer_address: "10.0.1.15"
description: "underlay to leaf8"
remote_asn: ["65004"]
peer_device: ["leaf8"]
# Spine1 EVPN (via evpn peer-group)
- bgp_config: ["spine1"]
local_identifier: "spine1__10.0.250.11"
peer_address: "10.0.250.11"
description: "EVPN to leaf1"
peer_group: "spine1__evpn"
remote_asn: ["65001"]
peer_device: ["leaf1"]
- bgp_config: ["spine1"]
local_identifier: "spine1__10.0.250.12"
peer_address: "10.0.250.12"
description: "EVPN to leaf2"
peer_group: "spine1__evpn"
remote_asn: ["65001"]
peer_device: ["leaf2"]
- bgp_config: ["spine1"]
local_identifier: "spine1__10.0.250.13"
peer_address: "10.0.250.13"
description: "EVPN to leaf3"
peer_group: "spine1__evpn"
remote_asn: ["65002"]
peer_device: ["leaf3"]
- bgp_config: ["spine1"]
local_identifier: "spine1__10.0.250.14"
peer_address: "10.0.250.14"
description: "EVPN to leaf4"
peer_group: "spine1__evpn"
remote_asn: ["65002"]
peer_device: ["leaf4"]
- bgp_config: ["spine1"]
local_identifier: "spine1__10.0.250.15"
peer_address: "10.0.250.15"
description: "EVPN to leaf5"
peer_group: "spine1__evpn"
remote_asn: ["65003"]
peer_device: ["leaf5"]
- bgp_config: ["spine1"]
local_identifier: "spine1__10.0.250.16"
peer_address: "10.0.250.16"
description: "EVPN to leaf6"
peer_group: "spine1__evpn"
remote_asn: ["65003"]
peer_device: ["leaf6"]
- bgp_config: ["spine1"]
local_identifier: "spine1__10.0.250.17"
peer_address: "10.0.250.17"
description: "EVPN to leaf7"
peer_group: "spine1__evpn"
remote_asn: ["65004"]
peer_device: ["leaf7"]
- bgp_config: ["spine1"]
local_identifier: "spine1__10.0.250.18"
peer_address: "10.0.250.18"
description: "EVPN to leaf8"
peer_group: "spine1__evpn"
remote_asn: ["65004"]
peer_device: ["leaf8"]
# ============================================================
# Spine2 sessions
# ============================================================
# Spine2 underlay
- bgp_config: ["spine2"]
local_identifier: "spine2__10.0.2.1"
peer_address: "10.0.2.1"
description: "underlay to leaf1"
remote_asn: ["65001"]
peer_device: ["leaf1"]
- bgp_config: ["spine2"]
local_identifier: "spine2__10.0.2.3"
peer_address: "10.0.2.3"
description: "underlay to leaf2"
remote_asn: ["65001"]
peer_device: ["leaf2"]
- bgp_config: ["spine2"]
local_identifier: "spine2__10.0.2.5"
peer_address: "10.0.2.5"
description: "underlay to leaf3"
remote_asn: ["65002"]
peer_device: ["leaf3"]
- bgp_config: ["spine2"]
local_identifier: "spine2__10.0.2.7"
peer_address: "10.0.2.7"
description: "underlay to leaf4"
remote_asn: ["65002"]
peer_device: ["leaf4"]
- bgp_config: ["spine2"]
local_identifier: "spine2__10.0.2.9"
peer_address: "10.0.2.9"
description: "underlay to leaf5"
remote_asn: ["65003"]
peer_device: ["leaf5"]
- bgp_config: ["spine2"]
local_identifier: "spine2__10.0.2.11"
peer_address: "10.0.2.11"
description: "underlay to leaf6"
remote_asn: ["65003"]
peer_device: ["leaf6"]
- bgp_config: ["spine2"]
local_identifier: "spine2__10.0.2.13"
peer_address: "10.0.2.13"
description: "underlay to leaf7"
remote_asn: ["65004"]
peer_device: ["leaf7"]
- bgp_config: ["spine2"]
local_identifier: "spine2__10.0.2.15"
peer_address: "10.0.2.15"
description: "underlay to leaf8"
remote_asn: ["65004"]
peer_device: ["leaf8"]
# Spine2 EVPN
- bgp_config: ["spine2"]
local_identifier: "spine2__10.0.250.11"
peer_address: "10.0.250.11"
description: "EVPN to leaf1"
peer_group: "spine2__evpn"
remote_asn: ["65001"]
peer_device: ["leaf1"]
- bgp_config: ["spine2"]
local_identifier: "spine2__10.0.250.12"
peer_address: "10.0.250.12"
description: "EVPN to leaf2"
peer_group: "spine2__evpn"
remote_asn: ["65001"]
peer_device: ["leaf2"]
- bgp_config: ["spine2"]
local_identifier: "spine2__10.0.250.13"
peer_address: "10.0.250.13"
description: "EVPN to leaf3"
peer_group: "spine2__evpn"
remote_asn: ["65002"]
peer_device: ["leaf3"]
- bgp_config: ["spine2"]
local_identifier: "spine2__10.0.250.14"
peer_address: "10.0.250.14"
description: "EVPN to leaf4"
peer_group: "spine2__evpn"
remote_asn: ["65002"]
peer_device: ["leaf4"]
- bgp_config: ["spine2"]
local_identifier: "spine2__10.0.250.15"
peer_address: "10.0.250.15"
description: "EVPN to leaf5"
peer_group: "spine2__evpn"
remote_asn: ["65003"]
peer_device: ["leaf5"]
- bgp_config: ["spine2"]
local_identifier: "spine2__10.0.250.16"
peer_address: "10.0.250.16"
description: "EVPN to leaf6"
peer_group: "spine2__evpn"
remote_asn: ["65003"]
peer_device: ["leaf6"]
- bgp_config: ["spine2"]
local_identifier: "spine2__10.0.250.17"
peer_address: "10.0.250.17"
description: "EVPN to leaf7"
peer_group: "spine2__evpn"
remote_asn: ["65004"]
peer_device: ["leaf7"]
- bgp_config: ["spine2"]
local_identifier: "spine2__10.0.250.18"
peer_address: "10.0.250.18"
description: "EVPN to leaf8"
peer_group: "spine2__evpn"
remote_asn: ["65004"]
peer_device: ["leaf8"]
# ============================================================
# Leaf1 sessions
# ============================================================
- bgp_config: ["leaf1"]
local_identifier: "leaf1__10.0.1.0"
peer_address: "10.0.1.0"
description: "underlay to spine1"
peer_group: "leaf1__underlay"
peer_device: ["spine1"]
- bgp_config: ["leaf1"]
local_identifier: "leaf1__10.0.2.0"
peer_address: "10.0.2.0"
description: "underlay to spine2"
peer_group: "leaf1__underlay"
peer_device: ["spine2"]
- bgp_config: ["leaf1"]
local_identifier: "leaf1__10.0.3.1"
peer_address: "10.0.3.1"
description: "iBGP to leaf2"
peer_group: "leaf1__underlay_ibgp"
peer_device: ["leaf2"]
- bgp_config: ["leaf1"]
local_identifier: "leaf1__10.0.250.1"
peer_address: "10.0.250.1"
description: "EVPN to spine1"
peer_group: "leaf1__evpn"
peer_device: ["spine1"]
- bgp_config: ["leaf1"]
local_identifier: "leaf1__10.0.250.2"
peer_address: "10.0.250.2"
description: "EVPN to spine2"
peer_group: "leaf1__evpn"
peer_device: ["spine2"]
# ============================================================
# Leaf2 sessions
# ============================================================
- bgp_config: ["leaf2"]
local_identifier: "leaf2__10.0.1.2"
peer_address: "10.0.1.2"
description: "underlay to spine1"
peer_group: "leaf2__underlay"
peer_device: ["spine1"]
- bgp_config: ["leaf2"]
local_identifier: "leaf2__10.0.2.2"
peer_address: "10.0.2.2"
description: "underlay to spine2"
peer_group: "leaf2__underlay"
peer_device: ["spine2"]
- bgp_config: ["leaf2"]
local_identifier: "leaf2__10.0.3.0"
peer_address: "10.0.3.0"
description: "iBGP to leaf1"
peer_group: "leaf2__underlay_ibgp"
peer_device: ["leaf1"]
- bgp_config: ["leaf2"]
local_identifier: "leaf2__10.0.250.1"
peer_address: "10.0.250.1"
description: "EVPN to spine1"
peer_group: "leaf2__evpn"
peer_device: ["spine1"]
- bgp_config: ["leaf2"]
local_identifier: "leaf2__10.0.250.2"
peer_address: "10.0.250.2"
description: "EVPN to spine2"
peer_group: "leaf2__evpn"
peer_device: ["spine2"]
# ============================================================
# Leaf3 sessions
# ============================================================
- bgp_config: ["leaf3"]
local_identifier: "leaf3__10.0.1.4"
peer_address: "10.0.1.4"
description: "underlay to spine1"
peer_group: "leaf3__underlay"
peer_device: ["spine1"]
- bgp_config: ["leaf3"]
local_identifier: "leaf3__10.0.2.4"
peer_address: "10.0.2.4"
description: "underlay to spine2"
peer_group: "leaf3__underlay"
peer_device: ["spine2"]
- bgp_config: ["leaf3"]
local_identifier: "leaf3__10.0.3.3"
peer_address: "10.0.3.3"
description: "iBGP to leaf4"
peer_group: "leaf3__underlay_ibgp"
peer_device: ["leaf4"]
- bgp_config: ["leaf3"]
local_identifier: "leaf3__10.0.250.1"
peer_address: "10.0.250.1"
description: "EVPN to spine1"
peer_group: "leaf3__evpn"
peer_device: ["spine1"]
- bgp_config: ["leaf3"]
local_identifier: "leaf3__10.0.250.2"
peer_address: "10.0.250.2"
description: "EVPN to spine2"
peer_group: "leaf3__evpn"
peer_device: ["spine2"]
# ============================================================
# Leaf4 sessions
# ============================================================
- bgp_config: ["leaf4"]
local_identifier: "leaf4__10.0.1.6"
peer_address: "10.0.1.6"
description: "underlay to spine1"
peer_group: "leaf4__underlay"
peer_device: ["spine1"]
- bgp_config: ["leaf4"]
local_identifier: "leaf4__10.0.2.6"
peer_address: "10.0.2.6"
description: "underlay to spine2"
peer_group: "leaf4__underlay"
peer_device: ["spine2"]
- bgp_config: ["leaf4"]
local_identifier: "leaf4__10.0.3.2"
peer_address: "10.0.3.2"
description: "iBGP to leaf3"
peer_group: "leaf4__underlay_ibgp"
peer_device: ["leaf3"]
- bgp_config: ["leaf4"]
local_identifier: "leaf4__10.0.250.1"
peer_address: "10.0.250.1"
description: "EVPN to spine1"
peer_group: "leaf4__evpn"
peer_device: ["spine1"]
- bgp_config: ["leaf4"]
local_identifier: "leaf4__10.0.250.2"
peer_address: "10.0.250.2"
description: "EVPN to spine2"
peer_group: "leaf4__evpn"
peer_device: ["spine2"]
# ============================================================
# Leaf5 sessions
# ============================================================
- bgp_config: ["leaf5"]
local_identifier: "leaf5__10.0.1.8"
peer_address: "10.0.1.8"
description: "underlay to spine1"
peer_group: "leaf5__underlay"
peer_device: ["spine1"]
- bgp_config: ["leaf5"]
local_identifier: "leaf5__10.0.2.8"
peer_address: "10.0.2.8"
description: "underlay to spine2"
peer_group: "leaf5__underlay"
peer_device: ["spine2"]
- bgp_config: ["leaf5"]
local_identifier: "leaf5__10.0.3.5"
peer_address: "10.0.3.5"
description: "iBGP to leaf6"
peer_group: "leaf5__underlay_ibgp"
peer_device: ["leaf6"]
- bgp_config: ["leaf5"]
local_identifier: "leaf5__10.0.250.1"
peer_address: "10.0.250.1"
description: "EVPN to spine1"
peer_group: "leaf5__evpn"
peer_device: ["spine1"]
- bgp_config: ["leaf5"]
local_identifier: "leaf5__10.0.250.2"
peer_address: "10.0.250.2"
description: "EVPN to spine2"
peer_group: "leaf5__evpn"
peer_device: ["spine2"]
# ============================================================
# Leaf6 sessions
# ============================================================
- bgp_config: ["leaf6"]
local_identifier: "leaf6__10.0.1.10"
peer_address: "10.0.1.10"
description: "underlay to spine1"
peer_group: "leaf6__underlay"
peer_device: ["spine1"]
- bgp_config: ["leaf6"]
local_identifier: "leaf6__10.0.2.10"
peer_address: "10.0.2.10"
description: "underlay to spine2"
peer_group: "leaf6__underlay"
peer_device: ["spine2"]
- bgp_config: ["leaf6"]
local_identifier: "leaf6__10.0.3.4"
peer_address: "10.0.3.4"
description: "iBGP to leaf5"
peer_group: "leaf6__underlay_ibgp"
peer_device: ["leaf5"]
- bgp_config: ["leaf6"]
local_identifier: "leaf6__10.0.250.1"
peer_address: "10.0.250.1"
description: "EVPN to spine1"
peer_group: "leaf6__evpn"
peer_device: ["spine1"]
- bgp_config: ["leaf6"]
local_identifier: "leaf6__10.0.250.2"
peer_address: "10.0.250.2"
description: "EVPN to spine2"
peer_group: "leaf6__evpn"
peer_device: ["spine2"]
# ============================================================
# Leaf7 sessions
# ============================================================
- bgp_config: ["leaf7"]
local_identifier: "leaf7__10.0.1.12"
peer_address: "10.0.1.12"
description: "underlay to spine1"
peer_group: "leaf7__underlay"
peer_device: ["spine1"]
- bgp_config: ["leaf7"]
local_identifier: "leaf7__10.0.2.12"
peer_address: "10.0.2.12"
description: "underlay to spine2"
peer_group: "leaf7__underlay"
peer_device: ["spine2"]
- bgp_config: ["leaf7"]
local_identifier: "leaf7__10.0.3.7"
peer_address: "10.0.3.7"
description: "iBGP to leaf8"
peer_group: "leaf7__underlay_ibgp"
peer_device: ["leaf8"]
- bgp_config: ["leaf7"]
local_identifier: "leaf7__10.0.250.1"
peer_address: "10.0.250.1"
description: "EVPN to spine1"
peer_group: "leaf7__evpn"
peer_device: ["spine1"]
- bgp_config: ["leaf7"]
local_identifier: "leaf7__10.0.250.2"
peer_address: "10.0.250.2"
description: "EVPN to spine2"
peer_group: "leaf7__evpn"
peer_device: ["spine2"]
# Leaf7 VRF gold border peering
- bgp_config: ["leaf7"]
local_identifier: "leaf7__10.90.90.1"
peer_address: "10.90.90.1"
description: "border peering to AS 64999 in VRF gold"
remote_asn: ["64999"]
vrf: "gold"
# ============================================================
# Leaf8 sessions
# ============================================================
- bgp_config: ["leaf8"]
local_identifier: "leaf8__10.0.1.14"
peer_address: "10.0.1.14"
description: "underlay to spine1"
peer_group: "leaf8__underlay"
peer_device: ["spine1"]
- bgp_config: ["leaf8"]
local_identifier: "leaf8__10.0.2.14"
peer_address: "10.0.2.14"
description: "underlay to spine2"
peer_group: "leaf8__underlay"
peer_device: ["spine2"]
- bgp_config: ["leaf8"]
local_identifier: "leaf8__10.0.3.6"
peer_address: "10.0.3.6"
description: "iBGP to leaf7"
peer_group: "leaf8__underlay_ibgp"
peer_device: ["leaf7"]
- bgp_config: ["leaf8"]
local_identifier: "leaf8__10.0.250.1"
peer_address: "10.0.250.1"
description: "EVPN to spine1"
peer_group: "leaf8__evpn"
peer_device: ["spine1"]
- bgp_config: ["leaf8"]
local_identifier: "leaf8__10.0.250.2"
peer_address: "10.0.250.2"
description: "EVPN to spine2"
peer_group: "leaf8__evpn"
peer_device: ["spine2"]
# Leaf8 VRF gold border peering
- bgp_config: ["leaf8"]
local_identifier: "leaf8__10.90.90.1"
peer_address: "10.90.90.1"
description: "border peering to AS 64999 in VRF gold"
remote_asn: ["64999"]
vrf: "gold"
---
apiVersion: infrahub.app/v1
kind: Object
spec:
kind: InfraBGPAddressFamily
data:
# ============================================================
# Spine1 address families
# ============================================================
- bgp_config: ["spine1"]
device: ["spine1"]
local_identifier: "spine1__ipv4_unicast"
afi: ipv4
safi: unicast
active_sessions:
- ["spine1__10.0.1.1"]
- ["spine1__10.0.1.3"]
- ["spine1__10.0.1.5"]
- ["spine1__10.0.1.7"]
- ["spine1__10.0.1.9"]
- ["spine1__10.0.1.11"]
- ["spine1__10.0.1.13"]
- ["spine1__10.0.1.15"]
networks:
- ["10.0.250.1/32"]
- bgp_config: ["spine1"]
device: ["spine1"]
local_identifier: "spine1__evpn_unicast"
afi: evpn
safi: unicast
active_peer_groups:
- ["spine1__evpn"]
# ============================================================
# Spine2 address families
# ============================================================
- bgp_config: ["spine2"]
device: ["spine2"]
local_identifier: "spine2__ipv4_unicast"
afi: ipv4
safi: unicast
active_sessions:
- ["spine2__10.0.2.1"]
- ["spine2__10.0.2.3"]
- ["spine2__10.0.2.5"]
- ["spine2__10.0.2.7"]
- ["spine2__10.0.2.9"]
- ["spine2__10.0.2.11"]
- ["spine2__10.0.2.13"]
- ["spine2__10.0.2.15"]
networks:
- ["10.0.250.2/32"]
- bgp_config: ["spine2"]
device: ["spine2"]
local_identifier: "spine2__evpn_unicast"
afi: evpn
safi: unicast
active_peer_groups:
- ["spine2__evpn"]
# ============================================================
# Leaf1 address families
# ============================================================
- bgp_config: ["leaf1"]
device: ["leaf1"]
local_identifier: "leaf1__ipv4_unicast"
afi: ipv4
safi: unicast
active_peer_groups:
- ["leaf1__underlay"]
- ["leaf1__underlay_ibgp"]
networks:
- ["10.0.250.11/32"]
- ["10.0.255.11/32"]
- bgp_config: ["leaf1"]
device: ["leaf1"]
local_identifier: "leaf1__evpn_unicast"
afi: evpn
safi: unicast
active_peer_groups:
- ["leaf1__evpn"]
# ============================================================
# Leaf2 address families
# ============================================================
- bgp_config: ["leaf2"]
device: ["leaf2"]
local_identifier: "leaf2__ipv4_unicast"
afi: ipv4
safi: unicast
active_peer_groups:
- ["leaf2__underlay"]
- ["leaf2__underlay_ibgp"]
networks:
- ["10.0.250.12/32"]
- ["10.0.255.11/32"]
- bgp_config: ["leaf2"]
device: ["leaf2"]
local_identifier: "leaf2__evpn_unicast"
afi: evpn
safi: unicast
active_peer_groups:
- ["leaf2__evpn"]
# ============================================================
# Leaf3 address families
# ============================================================
- bgp_config: ["leaf3"]
device: ["leaf3"]
local_identifier: "leaf3__ipv4_unicast"
afi: ipv4
safi: unicast
active_peer_groups:
- ["leaf3__underlay"]
- ["leaf3__underlay_ibgp"]
networks:
- ["10.0.250.13/32"]
- ["10.0.255.12/32"]
- bgp_config: ["leaf3"]
device: ["leaf3"]
local_identifier: "leaf3__evpn_unicast"
afi: evpn
safi: unicast
active_peer_groups:
- ["leaf3__evpn"]
# ============================================================
# Leaf4 address families
# ============================================================
- bgp_config: ["leaf4"]
device: ["leaf4"]
local_identifier: "leaf4__ipv4_unicast"
afi: ipv4
safi: unicast
active_peer_groups:
- ["leaf4__underlay"]
- ["leaf4__underlay_ibgp"]
networks:
- ["10.0.250.14/32"]
- ["10.0.255.12/32"]
- bgp_config: ["leaf4"]
device: ["leaf4"]
local_identifier: "leaf4__evpn_unicast"
afi: evpn
safi: unicast
active_peer_groups:
- ["leaf4__evpn"]
# ============================================================
# Leaf5 address families
# ============================================================
- bgp_config: ["leaf5"]
device: ["leaf5"]
local_identifier: "leaf5__ipv4_unicast"
afi: ipv4
safi: unicast
active_peer_groups:
- ["leaf5__underlay"]
- ["leaf5__underlay_ibgp"]
networks:
- ["10.0.250.15/32"]
- ["10.0.255.13/32"]
- bgp_config: ["leaf5"]
device: ["leaf5"]
local_identifier: "leaf5__evpn_unicast"
afi: evpn
safi: unicast
active_peer_groups:
- ["leaf5__evpn"]
# ============================================================
# Leaf6 address families
# ============================================================
- bgp_config: ["leaf6"]
device: ["leaf6"]
local_identifier: "leaf6__ipv4_unicast"
afi: ipv4
safi: unicast
active_peer_groups:
- ["leaf6__underlay"]
- ["leaf6__underlay_ibgp"]
networks:
- ["10.0.250.16/32"]
- ["10.0.255.13/32"]
- bgp_config: ["leaf6"]
device: ["leaf6"]
local_identifier: "leaf6__evpn_unicast"
afi: evpn
safi: unicast
active_peer_groups:
- ["leaf6__evpn"]
# ============================================================
# Leaf7 address families
# ============================================================
- bgp_config: ["leaf7"]
device: ["leaf7"]
local_identifier: "leaf7__ipv4_unicast"
afi: ipv4
safi: unicast
active_peer_groups:
- ["leaf7__underlay"]
- ["leaf7__underlay_ibgp"]
networks:
- ["10.0.250.17/32"]
- ["10.0.255.14/32"]
- bgp_config: ["leaf7"]
device: ["leaf7"]
local_identifier: "leaf7__evpn_unicast"
afi: evpn
safi: unicast
active_peer_groups:
- ["leaf7__evpn"]
# Leaf7 IPv4 unicast in VRF gold (border peering)
- bgp_config: ["leaf7"]
device: ["leaf7"]
local_identifier: "leaf7__vrf_gold__ipv4_unicast"
afi: ipv4
safi: unicast
vrf: "gold"
active_sessions:
- ["leaf7__10.90.90.1"]
# ============================================================
# Leaf8 address families
# ============================================================
- bgp_config: ["leaf8"]
device: ["leaf8"]
local_identifier: "leaf8__ipv4_unicast"
afi: ipv4
safi: unicast
active_peer_groups:
- ["leaf8__underlay"]
- ["leaf8__underlay_ibgp"]
networks:
- ["10.0.250.18/32"]
- ["10.0.255.14/32"]
- bgp_config: ["leaf8"]
device: ["leaf8"]
local_identifier: "leaf8__evpn_unicast"
afi: evpn
safi: unicast
active_peer_groups:
- ["leaf8__evpn"]
# Leaf8 IPv4 unicast in VRF gold (border peering)
- bgp_config: ["leaf8"]
device: ["leaf8"]
local_identifier: "leaf8__vrf_gold__ipv4_unicast"
afi: ipv4
safi: unicast
vrf: "gold"
active_sessions:
- ["leaf8__10.90.90.1"]