Skip to content

Conversation

@tech-of-all-trades
Copy link
Contributor

@tech-of-all-trades tech-of-all-trades commented Dec 2, 2025

This PR adds support for TRM VRF EVPN-Mcast configuration in the Terraform Provider.

Overview

This PR adds support for Tenant Routed Multicast (TRM) VRF EVPN-Multicast configuration in the iosxe_vrf resource in the Terraform Provider.

This extends the iosxe_vrf resource with 8 new EVPN-Multicast-related attributes:

New Attributes

Attribute Description Type
ipv4_evpn_mcast_mdt_default_address EVPN multicast MDT default group address String
ipv4_evpn_mcast_anycast IPv4 address of Rendezvous-point for anycast mode String
ipv4_evpn_mcast_data_address EVPN multicast data MDT group address String
ipv4_evpn_mcast_data_mask_bits EVPN multicast data MDT mask bits String
ipv6_evpn_mcast_mdt_default_address EVPN multicast MDT default group address String
ipv6_evpn_mcast_anycast IPv6 address of Rendezvous-point for anycast mode String
ipv6_evpn_mcast_data_address EVPN multicast data MDT group address String
ipv6_evpn_mcast_data_mask_bits EVPN multicast data MDT mask bits String

YANG Paths

  • address-family/ipv4/evpn-mcast/mdt-def-addr
  • address-family/ipv4/evpn-mcast/anycast
  • address-family/ipv4/evpn-mcast/data/data-addr
  • address-family/ipv4/evpn-mcast/data/mask-bits
  • address-family/ipv6/evpn-mcast/mdt-def-addr
  • address-family/ipv6/evpn-mcast/anycast
  • address-family/ipv6/evpn-mcast/data/data-addr
  • address-family/ipv6/evpn-mcast/data/mask-bits

IOS-XE Version Support

  • Minimum Version: 17.15.1 (EVPN-mcast support not available in 17.12.x)

Changes

  • gen/definitions/vrf.yaml
  • internal/provider/model_iosxe_vrf.go
  • internal/provider/resource_iosxe_vrf.go
  • internal/provider/resource_iosxe_vrf_test.go
  • docs/resources/vrf.md

Note on Acceptance Test Exclusion

The new EVPN-mcast attributes are tagged with exclude_test: true in the resource definition. This is intentional and necessary because:

  1. Mutual Exclusivity: The evpn-mcast configuration is mutually exclusive with traditional mdt (Multicast Distribution Tree) configuration under the same VRF address-family. The existing acceptance tests already validate the traditional MDT attributes, and attempting to configure both simultaneously results in a device error: "inconsistent value: Device refused one or more commands".

  2. Fabric Prerequisites: EVPN-mcast requires a fully configured EVPN/VXLAN fabric environment including VNID configuration, EVPN instance, NVE interface, BGP EVPN peering, and multicast underlay.

The YANG path mappings have been validated against the IOS-XE 17.15.1 YANG models.

Current Caveats to Function and Support

IMPORTANT:
Provider support for the vnid <vnid_number> evpn-instance vni <nve_l3vni_number> core-vlan <vlan_number> CLI command (vrf) does not yet exist. Support for this command is a prerequisite to the new attributes introduced in this PR.

  • Because of this, the attributes provided in this PR are not yet fully functional and available, even for users operating in properly configured EVPN/VXLAN fabric environments.

Related Issues

Closes: Issue 394 (Internal)

Add support for Tenant Routed Multicast (TRM) VRF EVPN-mcast configuration
in the iosxe_vrf resource for EVPN/VXLAN fabric deployments.

New attributes:
- ipv4_evpn_mcast_mdt_default_address
- ipv4_evpn_mcast_anycast
- ipv4_evpn_mcast_data_address
- ipv4_evpn_mcast_data_mask_bits

YANG paths:
- address-family/ipv4/evpn-mcast/mdt-def-addr
- address-family/ipv4/evpn-mcast/anycast
- address-family/ipv4/evpn-mcast/data/data-addr
- address-family/ipv4/evpn-mcast/data/mask-bits

Minimum IOS-XE version supported: 17.15.1

Note: New attributes excluded from acceptance tests due to mutual
exclusivity with traditional MDT configuration and EVPN fabric
prerequisites not available in standard test environment.
Add IPv6 support for Tenant Routed Multicast (TRM) VRF EVPN-mcast
configuration in the iosxe_vrf resource for EVPN/VXLAN fabric deployments.

Added IPv6 EVPN-mcast attributes to gen/definitions/vrf.yaml:
- ipv6_evpn_mcast_mdt_default_address
- ipv6_evpn_mcast_anycast
- ipv6_evpn_mcast_data_address
- ipv6_evpn_mcast_data_mask_bits

**NOTE**: New IPv6 EVPN-mcast attributes are excluded from automated tests
due to EVPN/VXLAN fabric prerequisites not available in standard test
environment.
- *This includes the current lack of provider support for the
`vnid <vnid_number> evpn-instance vni <nve_l3vni_number> core-vlan <vlan_number>` CLI configuration.*

Minimum IOS-XE version supported: 17.15.1
@aitestino aitestino added the enhancement New feature or request label Dec 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants