[TRM] Implement VRF VNID/EVPN-Instance Support in Terraform Provider #389
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
VRF VNID and EVPN-Instance Support
This PR adds support for Virtual Network Identifier (VNID) and EVPN-Instance configuration within VRF definitions for the terraform-provider-iosxe.
This enhancement introduces VNID configuration capabilities to the existing
iosxe_vrfresource, enabling VXLAN EVPN Layer 3 services. This feature provides network operators with the ability to configure Virtual Network Identifiers for VRFs, which are essential for VXLAN fabric deployments and EVPN-based multi-tenancy. VNID allows automatic route-target generation and EVPN-instance configuration enables Layer 3 VNI assignment for overlay network virtualization.CLI Commands Supported
VNID Configuration
These commands enable VXLAN EVPN Layer 3 services with the following capabilities:
Benefits
Platform Compatibility
These features have been validated against:
Version Requirements
IOS-XE 17.12 and later:
vnid_value(Number: 1-2147483647) - Virtual Network Identifierevpn_instance_vni_vni_num(Number: 4096-16777215) - Layer 3 VNI numberevpn_instance_vni_vni_num_core_vlan(Number: 1-4094, Optional) - Core VLAN (platform-dependent)Platform-Specific Behavior:
Router Platforms (Catalyst 8000):
vnid 11500vnid 11510 evpn-instance vni 21510Switch Platforms (Catalyst 9000):
vnid 10900vnid 10910 evpn-instance vni 20910 core-vlan 910Technical Implementation
iosxe_vrfresource with the following new attributes:vnid(List of Objects, Optional, max 1) - VNID configuration blockvnid_value(Number, Required) - VNID value for route-target auto generation (range: 1-2147483647)evpn_instance_vni_vni_num(List of Objects, Optional, max 1) - EVPN instance VNI configurationvni_num(Number, Required) - Layer 3 VNI number (range: 4096-16777215)core_vlan(Number, Optional) - Core VLAN number (range: 1-4094)iosxe_vrfdata source for VNID configuration retrievalCisco-IOS-XE-native:native/vrf/definitionwithCisco-IOS-XE-ip:vnidTesting
Multi-Platform Validation
Catalyst 8000V (Router, IOS-XE 17.15): ✅
Catalyst 8000V (Router, IOS-XE 17.12): ✅
Catalyst 9000 (Switch, IOS-XE): ✅
Terraform Testing
terraform plan- Correctly identifies VNID configuration changesterraform apply- Successfully applies VNID and EVPN-instance configurationterraform destroy- Cleanly removes VNID configurationRESTCONF API Validation
Cisco-IOS-XE-ip:vnid)YANG Model Validation
Cisco-IOS-XE-ip.yangExample Usage
Router Configuration (Cat8k) - VNID with Explicit VNI:
Resulting CLI Configuration:
Switch Configuration (Cat9k) - VNID with Explicit VNI and Core-VLAN:
Resulting CLI Configuration:
VNID Only Configuration (Both Platforms):
Resulting CLI Configuration: