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:
109
schemas/vrf.yml
Normal file
109
schemas/vrf.yml
Normal 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
|
||||
Reference in New Issue
Block a user