Skip to content

Commit

Permalink
Remove vnid_mismatch_check
Browse files Browse the repository at this point in the history
`vnid_mismatch_check` was added to complement
`overlapping_vlan_pools_check`. Given the recent update (#155, #162),
`vnid_mismatch_check` became redundant, and it was decided to remove
this check.
  • Loading branch information
takishida committed Oct 25, 2024
1 parent 010cd6d commit 1403bc2
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 71 deletions.
63 changes: 0 additions & 63 deletions aci-preupgrade-validation-script.py
Original file line number Diff line number Diff line change
Expand Up @@ -2176,68 +2176,6 @@ def overlapping_vlan_pools_check(index, total_checks, **kwargs):
return result


def vnid_mismatch_check(index, total_checks, **kwargs):
title = 'VNID Mismatch'
result = FAIL_O
msg = ''
headers = ["EPG", "Access Encap", "Node ID", "Fabric Encap"]
data = []
mismatch_hits = []
recommended_action = 'Remove any domains with overlapping VLAN Pools from above EPGs, then redeploy VLAN'
doc_url = 'https://datacenter.github.io/ACI-Pre-Upgrade-Validation-Script/validations/#vnid-mismatch'
print_title(title, index, total_checks)

vlanCktEps = icurl('class', 'vlanCktEp.json?query-target-filter=ne(vlanCktEp.name,"")')
if not vlanCktEps:
result = ERROR
msg = 'Deployed VLANs (vlanCktEp) not found'

epg_encap_dict = {}
for vlanCktEp in vlanCktEps:
dn = re.search(node_regex, vlanCktEp['vlanCktEp']['attributes']['dn'])
node = dn.group("node")
access_encap = vlanCktEp['vlanCktEp']['attributes']['encap']
epg_dn = vlanCktEp['vlanCktEp']['attributes']['epgDn']
fab_encap = vlanCktEp['vlanCktEp']['attributes']['fabEncap']

if epg_dn not in epg_encap_dict:
epg_encap_dict[epg_dn] = {}

if access_encap not in epg_encap_dict[epg_dn]:
epg_encap_dict[epg_dn][access_encap] = []

epg_encap_dict[epg_dn][access_encap].append({'node': node, 'fabEncap': fab_encap})

# Iterate through, check for overlaps, and print
for key, epg in iteritems(epg_encap_dict):
for vlanKey, vlan in iteritems(epg):
fab_encap_to_check = ""
for deployment in vlan:
if fab_encap_to_check == "" or deployment["fabEncap"] == fab_encap_to_check:
fab_encap_to_check = deployment["fabEncap"]
else: # something is wrong
tmp_hit = {}
tmp_hit["epgDn"] = key
tmp_hit["epgDeployment"] = epg
if tmp_hit not in mismatch_hits: # some epg has more than one access encap.
mismatch_hits.append(tmp_hit)
break

if not mismatch_hits:
result = PASS

mismatch_hits.sort(key=lambda d: d.get("epgDn", ""))
for epg in mismatch_hits:
for access_encap, nodeFabEncaps in iteritems(epg["epgDeployment"]):
for nodeFabEncap in nodeFabEncaps:
node_id = nodeFabEncap['node']
fabric_encap = nodeFabEncap['fabEncap']
data.append([epg["epgDn"], access_encap, node_id, fabric_encap])

print_result(title, result, msg, headers, data, recommended_action=recommended_action, doc_url=doc_url)
return result


def scalability_faults_check(index, total_checks, **kwargs):
title = 'Scalability (faults related to Capacity Dashboard)'
result = FAIL_O
Expand Down Expand Up @@ -4308,7 +4246,6 @@ def validate_32_64_bit_image_check(index, total_checks, tversion, **kwargs):
# Configurations
vpc_paired_switches_check,
overlapping_vlan_pools_check,
vnid_mismatch_check,
l3out_mtu_check,
bgp_peer_loopback_check,
l3out_route_map_direction_check,
Expand Down
7 changes: 0 additions & 7 deletions docs/docs/validations.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,6 @@ Items | Faults | This Script
------------------------------------------------------|--------------------|---------------------------|-------------------------------
[VPC-paired Leaf switches][c1] | :white_check_mark: | :white_check_mark: 4.2(4) | :white_check_mark:
[Overlapping VLAN Pool][c2] | :white_check_mark: | :no_entry_sign: | :white_check_mark:
[VNID Mismatch][c3] | :white_check_mark: | :no_entry_sign: | :no_entry_sign:
[L3Out MTU][c4] | :white_check_mark: | :no_entry_sign: | :white_check_mark:
[BGP Peer Profile at node level without Loopback][c5] | :white_check_mark: | :no_entry_sign: | :white_check_mark:
[L3Out Route Map import/export direction][c6] | :white_check_mark: | :no_entry_sign: | :white_check_mark:
Expand All @@ -122,7 +121,6 @@ Items | Faults | This Script

[c1]: #vpc-paired-leaf-switches
[c2]: #overlapping-vlan-pool
[c3]: #vnid-mismatch
[c4]: #l3out-mtu
[c5]: #bgp-peer-profile-at-node-level-without-loopback
[c6]: #l3out-route-map-importexport-direction
Expand Down Expand Up @@ -1618,11 +1616,6 @@ Refer to the following documents to understand how overlapping VLAN pools become
* [VLAN Pool - ACI Best Practice Quick Summary][13]


### VNID Mismatch

A VNID mismatch can arise due to an [Overlapping VLAN Pool][c2] situation. This verification is closely tied to the [Overlapping VLAN Pool][c2] scenario, which often leads to problems post-upgrade. Nonetheless, if your fabric is currently experiencing any VNID mismatches, you might encounter the challenges outlined in [Overlapping VLAN Pool][c2] even without undergoing an upgrade. This situation also implies the presence of an overlapping VLAN pool configuration, potentially resulting in a VNID mismatch at a distinct EPG following an upgrade, causing different impact to your traffic.


### L3Out MTU

It is critical to ensure that MTU values on ACI L3Out interfaces and the routers that connect to them match. Otherwise, when the ACI switch boots up after an upgrade, it may cause problem during the routing protocol neighborship establishment or exchanging the route information between peers.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2020,7 +2020,7 @@
"ifpg_name": "IFPG_VPC1",
},
{
"ifp": "L101",
"ifp": "L103",
"card": "1",
"port": "2",
"ifpg_class": "infraAccPortGrp",
Expand Down

0 comments on commit 1403bc2

Please sign in to comment.