Skip to content

Commit a5676fd

Browse files
committed
Add ISIS DTEP Check
1 parent 737f4d8 commit a5676fd

5 files changed

Lines changed: 813 additions & 1 deletion

File tree

aci-preupgrade-validation-script.py

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5101,6 +5101,69 @@ def ave_eol_check(index, total_checks, tversion, **kwargs):
51015101
return result
51025102

51035103

5104+
def isis_database_byte_check(index, total_checks, tversion, **kwargs):
5105+
title = 'ISIS DTEPs Byte Check'
5106+
result = PASS
5107+
msg = ''
5108+
headers = ["ISIS DTEPs Byte Count", "Recommended Action"]
5109+
data = []
5110+
recommended_action = 'Upgrade to a version with the fix for CSCwp15375. Current target version is affected.'
5111+
doc_url = 'https://datacenter.github.io/ACI-Pre-Upgrade-Validation-Script/validations/#isis-dteps-byte-check'
5112+
print_title(title, index, total_checks)
5113+
5114+
if not tversion:
5115+
print_result(title, MANUAL, "Target version not supplied. Skipping.")
5116+
return MANUAL
5117+
5118+
affected_versions = ["6.1(1f)", "6.1(2f)", "6.1(2g)", "6.1(3f)"]
5119+
is_affected = False
5120+
for version in affected_versions:
5121+
if tversion.same_as(version):
5122+
is_affected = True
5123+
break
5124+
5125+
if not is_affected:
5126+
print_result(title, NA, "Target version not affected")
5127+
return NA
5128+
5129+
isisDTEp_api = 'isisDTEp.json'
5130+
isisDTEp_api += '?query-target-filter=eq(isisDTEp.role,"spine")'
5131+
5132+
isisDTEps = icurl('class', isisDTEp_api)
5133+
5134+
physical_ids = set()
5135+
proxy_acast_mac_ids = set()
5136+
proxy_acast_v4_ids = set()
5137+
proxy_acast_v6_ids = set()
5138+
5139+
for entry in isisDTEps:
5140+
dtep_type = entry['isisDTEp']['attributes']['type']
5141+
dtep_id = entry['isisDTEp']['attributes']['id']
5142+
5143+
if dtep_type == "physical":
5144+
physical_ids.add(dtep_id)
5145+
elif dtep_type == "physical,proxy-acast-mac":
5146+
proxy_acast_mac_ids.add(dtep_id)
5147+
elif dtep_type == "physical,proxy-acast-v4":
5148+
proxy_acast_v4_ids.add(dtep_id)
5149+
elif dtep_type == "physical,proxy-acast-v6":
5150+
proxy_acast_v6_ids.add(dtep_id)
5151+
5152+
for physical_id in physical_ids:
5153+
proxy_mac_id = next(iter(proxy_acast_mac_ids)) if proxy_acast_mac_ids else ""
5154+
proxy_v4_id = next(iter(proxy_acast_v4_ids)) if proxy_acast_v4_ids else ""
5155+
proxy_v6_id = next(iter(proxy_acast_v6_ids)) if proxy_acast_v6_ids else ""
5156+
5157+
total_bytes = len(physical_id) + len(proxy_mac_id) + len(proxy_v4_id) + len(proxy_v6_id)
5158+
5159+
if total_bytes >= 58:
5160+
result = FAIL_O
5161+
data.append([str(total_bytes), recommended_action])
5162+
break
5163+
5164+
print_result(title, result, msg, headers, data, doc_url=doc_url)
5165+
return result
5166+
51045167
if __name__ == "__main__":
51055168
prints(' ==== %s%s, Script Version %s ====\n' % (ts, tz, SCRIPT_VERSION))
51065169
prints('!!!! Check https://github.com/datacenter/ACI-Pre-Upgrade-Validation-Script for Latest Release !!!!\n')
@@ -5216,6 +5279,7 @@ def ave_eol_check(index, total_checks, tversion, **kwargs):
52165279
pbr_high_scale_check,
52175280
standby_sup_sync_check,
52185281
observer_db_size_check,
5282+
isis_database_byte_check,
52195283

52205284
]
52215285
summary = {PASS: 0, FAIL_O: 0, FAIL_UF: 0, ERROR: 0, MANUAL: 0, POST: 0, NA: 0, 'TOTAL': len(checks)}
@@ -5261,3 +5325,4 @@ def ave_eol_check(index, total_checks, tversion, **kwargs):
52615325
prints('==== Script Version %s FIN ====' % (SCRIPT_VERSION))
52625326

52635327
subprocess.check_output(['rm', '-rf', DIR])
5328+

docs/docs/validations.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,8 @@ Items | Defect | This Script
184184
[PBR High Scale][d23] | CSCwi66348 | :white_check_mark: | :no_entry_sign: |:no_entry_sign:
185185
[Standby Sup Image Sync][d24] | CSCwi66348 | :white_check_mark: | :no_entry_sign: |:no_entry_sign:
186186
[Observer Database Size][d25] | CSCvw45531 | :white_check_mark: | :no_entry_sign: |:no_entry_sign:
187+
[ISIS DTEPs Byte Check][d26] | CSCwp15375 | :white_check_mark: | :no_entry_sign: |:no_entry_sign:
188+
187189

188190
[d1]: #ep-announce-compatibility
189191
[d2]: #eventmgr-db-size-defect-susceptibility
@@ -210,6 +212,7 @@ Items | Defect | This Script
210212
[d23]: #pbr-high-scale
211213
[d24]: #standby-sup-image-sync
212214
[d25]: #observer-database-size
215+
[d26]: #isis-dteps-byte-check
213216

214217

215218
## General Check Details
@@ -2541,6 +2544,18 @@ This check logs in to each APIC, checks the contents of the `/data2/dbstats/` di
25412544
Certain high churn logging configurations have been found to grow this DB exceptionally large while on a non-fixed version. 'Contract Permit Logging' is one such configuration.
25422545

25432546

2547+
### ISIS DTEPs Byte Check
2548+
2549+
Due to [CSCwp15375][57], tech support generation will result in a switch crash under the following conditions:
2550+
- The `isisDTEp` address for a given spine + PROXY-ACAST-MAC address + PROXY-ACAST-V4 address + PROXY-ACAST-V6 address equals 58 bytes or more
2551+
- The ACI software version is 6.1(1f), 6.1(2f), 6.1(2g), or 6.1(3f)
2552+
2553+
Do not upgrade to any affected ACI software release if this check fails.
2554+
2555+
!!! note
2556+
NDI integration can cause tech support generation to happen automatically, resulting in switch crash without user intervention.
2557+
2558+
25442559
[0]: https://github.com/datacenter/ACI-Pre-Upgrade-Validation-Script
25452560
[1]: https://www.cisco.com/c/dam/en/us/td/docs/Website/datacenter/apicmatrix/index.html
25462561
[2]: https://www.cisco.com/c/en/us/support/switches/nexus-9000-series-switches/products-release-notes-list.html
@@ -2597,4 +2612,5 @@ This check logs in to each APIC, checks the contents of the `/data2/dbstats/` di
25972612
[53]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCvw45531
25982613
[54]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCvt47850
25992614
[55]: https://www.cisco.com/c/en/us/products/collateral/cloud-systems-management/application-policy-infrastructure-controller-apic/eol-apic-virtual-edge-pod-pb.html
2600-
[56]: https://www.cisco.com/c/en/us/td/docs/dcn/whitepapers/cisco-aci-virtual-edge-migration.html
2615+
[56]: https://www.cisco.com/c/en/us/td/docs/dcn/whitepapers/cisco-aci-virtual-edge-migration.html
2616+
[57]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwp15375

0 commit comments

Comments
 (0)