Skip to content

Commit cc7cb61

Browse files
joeleblamonrog2
andauthored
Add ISIS DTEP Check (#247)
* Add ISIS DTEP Check --------- Co-authored-by: Gabriel <gmonroy@cisco.com>
1 parent 5bf463b commit cc7cb61

5 files changed

Lines changed: 817 additions & 1 deletion

File tree

aci-preupgrade-validation-script.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5157,6 +5157,55 @@ def stale_pcons_ra_mo_check(index, total_checks, cversion, tversion, **kwargs):
51575157
return result
51585158

51595159

5160+
def isis_database_byte_check(index, total_checks, tversion, **kwargs):
5161+
title = 'ISIS DTEPs Byte Size'
5162+
result = PASS
5163+
msg = ''
5164+
headers = ["ISIS DTEPs Byte Size", "ISIS DTEPs"]
5165+
data = []
5166+
recommended_action = 'Upgrade to a version with the fix for CSCwp15375. Current target version is affected.'
5167+
doc_url = 'https://datacenter.github.io/ACI-Pre-Upgrade-Validation-Script/validations/#isis-dteps-byte-size'
5168+
print_title(title, index, total_checks)
5169+
5170+
if not tversion:
5171+
print_result(title, MANUAL, "Target version not supplied. Skipping.")
5172+
return MANUAL
5173+
5174+
if tversion.newer_than("6.1(1a)") and tversion.older_than("6.1(3g)"):
5175+
isisDTEp_api = 'isisDTEp.json'
5176+
isisDTEp_api += '?query-target-filter=eq(isisDTEp.role,"spine")'
5177+
5178+
isisDTEps = icurl('class', isisDTEp_api)
5179+
5180+
physical_ids = set()
5181+
proxy_acast_ids = set()
5182+
5183+
for entry in isisDTEps:
5184+
dtep_type = entry['isisDTEp']['attributes']['type']
5185+
dtep_id = entry['isisDTEp']['attributes']['id']
5186+
5187+
if dtep_type == "physical":
5188+
physical_ids.add(dtep_id)
5189+
elif "physical,proxy-acast" in dtep_type:
5190+
proxy_acast_ids.add(dtep_id)
5191+
5192+
for physical_id in physical_ids:
5193+
combined_dteps = ",".join([physical_id] + list(proxy_acast_ids))
5194+
total_bytes = len(combined_dteps)
5195+
5196+
if total_bytes > 57:
5197+
result = FAIL_O
5198+
data.append([total_bytes, combined_dteps])
5199+
break
5200+
5201+
else:
5202+
print_result(title, NA, "Target version not affected")
5203+
return NA
5204+
5205+
print_result(title, result, msg, headers, data, recommended_action=recommended_action, doc_url=doc_url)
5206+
return result
5207+
5208+
51605209
if __name__ == "__main__":
51615210
prints(' ==== %s%s, Script Version %s ====\n' % (ts, tz, SCRIPT_VERSION))
51625211
prints('!!!! Check https://github.com/datacenter/ACI-Pre-Upgrade-Validation-Script for Latest Release !!!!\n')
@@ -5273,6 +5322,7 @@ def stale_pcons_ra_mo_check(index, total_checks, cversion, tversion, **kwargs):
52735322
standby_sup_sync_check,
52745323
observer_db_size_check,
52755324
stale_pcons_ra_mo_check,
5325+
isis_database_byte_check,
52765326

52775327
]
52785328
summary = {PASS: 0, FAIL_O: 0, FAIL_UF: 0, ERROR: 0, MANUAL: 0, POST: 0, NA: 0, 'TOTAL': len(checks)}

docs/docs/validations.md

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,8 @@ Items | Defect | This Script
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:
187187
[Stale pconsRA Object][d26] | CSCwp22212 | :white_check_mark: | :no_entry_sign: |:no_entry_sign:
188+
[ISIS DTEPs Byte Size][d27] | CSCwp15375 | :white_check_mark: | :no_entry_sign: |:no_entry_sign:
189+
188190

189191
[d1]: #ep-announce-compatibility
190192
[d2]: #eventmgr-db-size-defect-susceptibility
@@ -212,6 +214,7 @@ Items | Defect | This Script
212214
[d24]: #standby-sup-image-sync
213215
[d25]: #observer-database-size
214216
[d26]: #stale-pconsra-object
217+
[d27]: #isis-dteps-byte-size
215218

216219

217220
## General Check Details
@@ -2549,6 +2552,23 @@ Due to [CSCwp22212][57], the existence of stale pconsRA objects within an ACI fa
25492552
TAC must be engaged to cleanup these objects, as they require root access.
25502553

25512554

2555+
### ISIS DTEPs Byte Size
2556+
2557+
Due to [CSCwp15375][58], running a `show` command that dumps out the ISIS Link State Database under certain conditions, such as `show isis database detail vrf all`, will result in a switch crash.
2558+
2559+
As Switch Tech Support generation includes ISIS show command output, Tech Support generation will also result in a switch crash under the same conditions.
2560+
2561+
The specific conditions leading to the crash are:
2562+
2563+
1. The ACI software version is 6.1(1f), 6.1(2f), 6.1(2g), or 6.1(3f)
2564+
2. For any spine; The `isisDTEp` address + `PROXY-ACAST-MAC` address + `PROXY-ACAST-V4` address + `PROXY-ACAST-V6` address equals 58 bytes or more
2565+
2566+
Do not upgrade to any affected ACI software release if this check fails.
2567+
2568+
!!! note
2569+
Nexus Dashboard Insights (NDI) integration can cause ACI tech support generation to happen automatically as part of the bug scan feature.
2570+
2571+
25522572
[0]: https://github.com/datacenter/ACI-Pre-Upgrade-Validation-Script
25532573
[1]: https://www.cisco.com/c/dam/en/us/td/docs/Website/datacenter/apicmatrix/index.html
25542574
[2]: https://www.cisco.com/c/en/us/support/switches/nexus-9000-series-switches/products-release-notes-list.html
@@ -2606,4 +2626,5 @@ TAC must be engaged to cleanup these objects, as they require root access.
26062626
[54]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCvt47850
26072627
[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
26082628
[56]: https://www.cisco.com/c/en/us/td/docs/dcn/whitepapers/cisco-aci-virtual-edge-migration.html
2609-
[57]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwp22212
2629+
[57]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwp22212
2630+
[58]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwp15375

0 commit comments

Comments
 (0)