Skip to content

Commit 14140fc

Browse files
committed
feat: migrate VLAN EVPN instance to new YANG path and add profile support
BREAKING CHANGES: - Rename evpn_instance to evpn_instance_legacy for IOS-XE < 17.15 - Rename evpn_instance_vni to evpn_instance_vni_legacy for IOS-XE < 17.15 - Update VLAN configuration path from 'configuration' to 'configuration-entry' NEW FEATURES: - Add evpn_instance, evpn_instance_vni, evpn_instance_protected for IOS-XE >= 17.15 - Add evpn_instance_profile and evpn_instance_profile_protected for auto EVI - Support for 'member evpn-instance profile <profile-name>' CLI command Generated using: make gen NAME="vlan_configuration"
1 parent ecddc5f commit 14140fc

File tree

13 files changed

+358
-71
lines changed

13 files changed

+358
-71
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
- Add `ip_ssh_bulk_mode` and `ip_ssh_bulk_mode_window_size` attributes to `iosxe_system` resource and data source
88
- Add `set_ip_next_hop_unchanged` attribute to `iosxe_route_map` resource and data source
99
- Enhance `set_communities` attribute documentation in `iosxe_route_map` to clarify support for well-known BGP community values (internet, local-AS, no-advertise, no-export, gshut)
10+
- **BREAKING**: Rename `evpn_instance` to `evpn_instance_legacy` and `evpn_instance_vni` to `evpn_instance_vni_legacy` in `iosxe_vlan_configuration` resource for IOS-XE < 17.15
11+
- Add `evpn_instance`, `evpn_instance_vni`, and `evpn_instance_protected` attributes to `iosxe_vlan_configuration` resource for IOS-XE >= 17.15
12+
- Add `evpn_instance_profile` and `evpn_instance_profile_protected` attributes to `iosxe_vlan_configuration` resource to support member evpn-instance profile configuration (IOS-XE >= 17.15)
1013

1114
## 0.9.3
1215

docs/data-sources/vlan_configuration.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ This data source can read the VLAN Configuration configuration.
1414

1515
```terraform
1616
data "iosxe_vlan_configuration" "example" {
17-
vlan_id = 123
17+
vlan_id = "123"
1818
}
1919
```
2020

@@ -23,7 +23,7 @@ data "iosxe_vlan_configuration" "example" {
2323

2424
### Required
2525

26-
- `vlan_id` (Number) VLAN ID List Eg. 1-10,15
26+
- `vlan_id` (String) VLAN ID List Eg. 1-10,15
2727

2828
### Optional
2929

@@ -32,7 +32,12 @@ data "iosxe_vlan_configuration" "example" {
3232
### Read-Only
3333

3434
- `access_vfi` (String) Enter VFI name
35-
- `evpn_instance` (Number)
36-
- `evpn_instance_vni` (Number) VxLAN VNI value
35+
- `evpn_instance` (Number) EVPN instance number (current path). Use for IOS-XE >= 17.15.
36+
- `evpn_instance_legacy` (Number) EVPN instance number (deprecated path). Use for IOS-XE < 17.15.
37+
- `evpn_instance_profile` (String) EVPN instance profile name. Use for IOS-XE >= 17.15.
38+
- `evpn_instance_profile_protected` (Boolean) Enable local peer to peer blocking for auto EVI with profile.
39+
- `evpn_instance_protected` (Boolean) Enable local peer to peer blocking for EVI.
40+
- `evpn_instance_vni` (Number) VNI for EVPN instance (current path). Use for IOS-XE >= 17.15.
41+
- `evpn_instance_vni_legacy` (Number) VNI for EVPN instance (deprecated path). Use for IOS-XE < 17.15.
3742
- `id` (String) The path of the retrieved object.
3843
- `vni` (Number) VxLAN VNI value

docs/guides/changelog.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ description: |-
1616
- Add `ip_ssh_bulk_mode` and `ip_ssh_bulk_mode_window_size` attributes to `iosxe_system` resource and data source
1717
- Add `set_ip_next_hop_unchanged` attribute to `iosxe_route_map` resource and data source
1818
- Enhance `set_communities` attribute documentation in `iosxe_route_map` to clarify support for well-known BGP community values (internet, local-AS, no-advertise, no-export, gshut)
19+
- **BREAKING**: Rename `evpn_instance` to `evpn_instance_legacy` and `evpn_instance_vni` to `evpn_instance_vni_legacy` in `iosxe_vlan_configuration` resource for IOS-XE < 17.15
20+
- Add `evpn_instance`, `evpn_instance_vni`, and `evpn_instance_protected` attributes to `iosxe_vlan_configuration` resource for IOS-XE >= 17.15
21+
- Add `evpn_instance_profile` and `evpn_instance_profile_protected` attributes to `iosxe_vlan_configuration` resource to support member evpn-instance profile configuration (IOS-XE >= 17.15)
1922

2023
## 0.9.3
2124

docs/resources/vlan_configuration.md

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@ This resource can manage the VLAN Configuration configuration.
1414

1515
```terraform
1616
resource "iosxe_vlan_configuration" "example" {
17-
vlan_id = 123
18-
evpn_instance = 123
19-
evpn_instance_vni = 10123
17+
vlan_id = "123"
2018
}
2119
```
2220

@@ -25,15 +23,22 @@ resource "iosxe_vlan_configuration" "example" {
2523

2624
### Required
2725

28-
- `vlan_id` (Number) VLAN ID List Eg. 1-10,15
29-
- Range: `1`-`4094`
26+
- `vlan_id` (String) VLAN ID List Eg. 1-10,15
3027

3128
### Optional
3229

3330
- `access_vfi` (String) Enter VFI name
3431
- `device` (String) A device name from the provider configuration.
35-
- `evpn_instance` (Number) - Range: `1`-`65535`
36-
- `evpn_instance_vni` (Number) VxLAN VNI value
32+
- `evpn_instance` (Number) EVPN instance number (current path). Use for IOS-XE >= 17.15.
33+
- Range: `1`-`65535`
34+
- `evpn_instance_legacy` (Number) EVPN instance number (deprecated path). Use for IOS-XE < 17.15.
35+
- Range: `1`-`65535`
36+
- `evpn_instance_profile` (String) EVPN instance profile name. Use for IOS-XE >= 17.15.
37+
- `evpn_instance_profile_protected` (Boolean) Enable local peer to peer blocking for auto EVI with profile.
38+
- `evpn_instance_protected` (Boolean) Enable local peer to peer blocking for EVI.
39+
- `evpn_instance_vni` (Number) VNI for EVPN instance (current path). Use for IOS-XE >= 17.15.
40+
- Range: `4096`-`16777215`
41+
- `evpn_instance_vni_legacy` (Number) VNI for EVPN instance (deprecated path). Use for IOS-XE < 17.15.
3742
- Range: `4096`-`16777215`
3843
- `vni` (Number) VxLAN VNI value
3944
- Range: `4096`-`16777215`
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
data "iosxe_vlan_configuration" "example" {
2-
vlan_id = 123
2+
vlan_id = "123"
33
}
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
resource "iosxe_vlan_configuration" "example" {
2-
vlan_id = 123
3-
evpn_instance = 123
4-
evpn_instance_vni = 10123
2+
vlan_id = "123"
53
}

gen/definitions/vlan_configuration.yaml

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: VLAN Configuration
3-
path: Cisco-IOS-XE-native:native/vlan/Cisco-IOS-XE-vlan:configuration=%v
3+
path: Cisco-IOS-XE-native:native/vlan/Cisco-IOS-XE-vlan:configuration-entry=%v
44
no_delete_attributes: true
55
test_tags: [C9000V]
66
doc_category: Switching
@@ -16,8 +16,44 @@ attributes:
1616
exclude_test: true
1717
example: VFI123
1818
- yang_name: member/evpn-instance/evpn-instance
19-
tf_name: evpn_instance
19+
tf_name: evpn_instance_legacy
20+
description: EVPN instance number (deprecated path). Use for IOS-XE < 17.15.
2021
example: 123
22+
exclude_test: true
23+
test_tags: [IOSXE1712]
2124
- yang_name: member/evpn-instance/vni
25+
tf_name: evpn_instance_vni_legacy
26+
description: VNI for EVPN instance (deprecated path). Use for IOS-XE < 17.15.
27+
example: 10123
28+
exclude_test: true
29+
test_tags: [IOSXE1712]
30+
- yang_name: member/evi-member/evpn-instance/evi-type-choice/manual-evi-case/manual-evi-config/evi
31+
xpath: member/evi-member/evpn-instance/manual-evi-config/evi
32+
tf_name: evpn_instance
33+
description: EVPN instance number (current path). Use for IOS-XE >= 17.15.
34+
example: 123
35+
test_tags: [IOSXE1715]
36+
- yang_name: member/evi-member/evpn-instance/evi-type-choice/manual-evi-case/manual-evi-config/vni
37+
xpath: member/evi-member/evpn-instance/manual-evi-config/vni
2238
tf_name: evpn_instance_vni
39+
description: VNI for EVPN instance (current path). Use for IOS-XE >= 17.15.
2340
example: 10123
41+
test_tags: [IOSXE1715]
42+
- yang_name: member/evi-member/evpn-instance/evi-type-choice/manual-evi-case/manual-evi-config/protected
43+
xpath: member/evi-member/evpn-instance/manual-evi-config/protected
44+
tf_name: evpn_instance_protected
45+
description: Enable local peer to peer blocking for EVI.
46+
example: true
47+
test_tags: [IOSXE1715]
48+
- yang_name: member/evi-member/evpn-instance/evi-type-choice/auto-evi-case/auto-evi-config/profile
49+
xpath: member/evi-member/evpn-instance/auto-evi-config/profile
50+
tf_name: evpn_instance_profile
51+
description: EVPN instance profile name. Use for IOS-XE >= 17.15.
52+
example: MY_EVPN_PROFILE
53+
test_tags: [IOSXE1715]
54+
- yang_name: member/evi-member/evpn-instance/evi-type-choice/auto-evi-case/auto-evi-config/protected
55+
xpath: member/evi-member/evpn-instance/auto-evi-config/protected
56+
tf_name: evpn_instance_profile_protected
57+
description: Enable local peer to peer blocking for auto EVI with profile.
58+
example: true
59+
test_tags: [IOSXE1715]

internal/provider/data_source_iosxe_vlan_configuration.go

Lines changed: 23 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/provider/data_source_iosxe_vlan_configuration_test.go

Lines changed: 32 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)