feat(schema): add VRF schema

Add models for VRF, Route Target, and VRF-Device assignments.
Supports L3VNI association for symmetric IRB routing.

Ref: #41
This commit is contained in:
2026-02-05 15:53:11 +00:00
parent 535f24a920
commit d87ffcaca6

109
schemas/vrf.yml Normal file
View File

@@ -0,0 +1,109 @@
# 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
default_filter: 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: rd
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
cardinality: many
optional: true
- name: export_targets
peer: InfraRouteTarget
cardinality: many
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
default_filter: 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
display_labels:
- vrf__name__value
- device__name__value
attributes:
- name: rd
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
cardinality: many
optional: true
description: Device-specific import RTs
- name: export_targets
peer: InfraRouteTarget
cardinality: many
optional: true
description: Device-specific export RTs