diff --git a/schemas/vrf.yml b/schemas/vrf.yml new file mode 100644 index 0000000..aa8a10d --- /dev/null +++ b/schemas/vrf.yml @@ -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