Files
fabric-orchestrator/schemas/vrf.yml

122 lines
3.5 KiB
YAML

# VRF Schema for EVPN-VXLAN Fabric
# Defines VRF and Route Target configuration for L3 VPN
---
version: "1.0"
nodes:
# ==========================================================================
# VRF (Virtual Routing and Forwarding)
# ==========================================================================
- name: VRF
namespace: Infra
description: Virtual Routing and Forwarding instance
label: VRF
icon: mdi--router
human_friendly_id:
- name__value
order_by:
- name__value
display_labels:
- name__value
attributes:
- name: name
kind: Text
description: VRF name
- name: description
kind: Text
optional: true
- name: route_distinguisher
kind: Text
optional: true
description: "Route Distinguisher (format: ASN:NN or IP:NN)"
- name: vrf_id
kind: Number
optional: true
description: VRF table ID
relationships:
- name: l3vni
peer: InfraVNI
cardinality: one
optional: true
description: L3 VNI for symmetric IRB
- name: import_targets
peer: InfraRouteTarget
identifier: vrf_import_targets
cardinality: many
direction: outbound
optional: true
- name: export_targets
peer: InfraRouteTarget
identifier: vrf_export_targets
cardinality: many
direction: outbound
optional: true
- name: interfaces
peer: InfraInterface
cardinality: many
optional: true
description: Interfaces assigned to this VRF
# ==========================================================================
# Route Target
# ==========================================================================
- name: RouteTarget
namespace: Infra
description: BGP Route Target for VPN import/export
label: Route Target
icon: mdi--target
human_friendly_id:
- target__value
order_by:
- target__value
display_labels:
- target__value
attributes:
- name: target
kind: Text
unique: true
description: "Route Target value (format: ASN:NN or IP:NN)"
- name: description
kind: Text
optional: true
# ==========================================================================
# VRF Device Assignment
# ==========================================================================
- name: VRFDeviceAssignment
namespace: Infra
description: VRF assignment to a specific device
label: VRF Assignment
icon: mdi--router-network
human_friendly_id:
- device__name__value
- vrf__name__value
display_labels:
- route_distinguisher__value
attributes:
- name: route_distinguisher
kind: Text
optional: true
description: "Device-specific RD (overrides VRF default)"
relationships:
- name: vrf
peer: InfraVRF
cardinality: one
- name: device
peer: InfraDevice
cardinality: one
kind: Parent
- name: import_targets
peer: InfraRouteTarget
identifier: vrf_assignment_import_targets
cardinality: many
direction: outbound
optional: true
description: Device-specific import RTs
- name: export_targets
peer: InfraRouteTarget
identifier: vrf_assignment_export_targets
cardinality: many
direction: outbound
optional: true
description: Device-specific export RTs