Skip to content
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
3fc5ebf
Added rogue ep/coop exception mac check for the CFD CSCwp64296
psureshb Dec 19, 2025
9234893
rogue exception macs detection failure after stateless reload test me…
psureshb Dec 22, 2025
4a06b4f
Revert "Added rogue ep/coop exception mac check for the CFD CSCwp64296"
psureshb Dec 22, 2025
12ba803
added test for rogue exception MACs missing due to missing presListen…
psureshb Dec 22, 2025
42f466b
added the defect CSCwp64296 documentation.
psureshb Dec 24, 2025
37d6c89
recommended action edited, cdets link replaced by cloudapps link
psureshb Dec 24, 2025
35de39e
added log files
psureshb Dec 24, 2025
40d9ea6
removed the log files in the directory
psureshb Dec 24, 2025
b52bc5f
Merge branch 'master' of github.com:psureshb/ACI-Pre-Upgrade-Validati…
psureshb Jan 19, 2026
34194e9
resolved merge conficts due to new method "apic_downgrade_compat_warn…
psureshb Jan 19, 2026
e921c6b
refactor: Update rogue_ep_coop_exception_mac_check logic and test cas…
psureshb Feb 11, 2026
51ab0b7
doc update
psureshb Feb 11, 2026
a03259b
Merge branch 'master' into psureshb
takishida Mar 5, 2026
d94df42
doc: Update the doc with proper conditions to check
takishida Mar 5, 2026
88a2d75
refactor: Update rogue_ep_coop_exception_mac_check logic and test cas…
psureshb Mar 11, 2026
5b412d7
refactor: Enhance rogue_ep_coop_exception_mac_check for improved vali…
psureshb Mar 12, 2026
efc43a6
Merge branch 'psureshb' of github.com:psureshb/ACI-Pre-Upgrade-Valida…
psureshb Mar 12, 2026
2754328
refactor: Revise rogue_ep_coop_exception_mac_check and documentation …
psureshb Mar 13, 2026
1ec83a3
fix: Update exception MAC API query and test cases for version accuracy
psureshb Mar 13, 2026
f1637c3
refactor: Update documentation and test cases for Rogue/COOP Exceptio…
psureshb Mar 16, 2026
1d642a6
fix: Clarify root cause of missing presListener objects for Rogue/COO…
psureshb Mar 16, 2026
2d35c20
fix: Add proper version handling with NA
takishida Apr 3, 2026
025869a
chore: More verbose output. pytest with expected_data
takishida Apr 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions aci-preupgrade-validation-script.py
Original file line number Diff line number Diff line change
Expand Up @@ -6008,6 +6008,48 @@ def apic_vmm_inventory_sync_faults_check(**kwargs):
doc_url=doc_url)


@check_wrapper(check_title='Rogue EP/COOP Exception MACs missing')
def rogue_ep_coop_exception_mac_check(cversion, tversion, **kwargs):
result = PASS
headers = ["Rogue Exception MACs Count", "presListener Count"]
data = []
recommended_action = 'Remove the affected EP exception configurations and re-add them'
doc_url = 'https://datacenter.github.io/ACI-Pre-Upgrade-Validation-Script/validations/#rogue-epcoop-exception-macs-missing'

# Target version check
if not tversion:
prints("Target version not provided, skipping check.")
Comment thread
takishida marked this conversation as resolved.
Outdated
return Result(result=MANUAL, msg=TVER_MISSING)

# Affected source version is in range [5.2(3):6.0(3)] . Fixed on 6.0(9e)+ and 6.1(4)+.
# if cversion.newer_than("3.1(2v)") and tversion.older_than("6.1(3g)"):
if (
(cversion.same_as("5.2(3e)") or cversion.newer_than("5.2(3e)")) and
(cversion.same_as("6.0(3g)") or cversion.older_than("6.0(3g)")) and
Comment thread
psureshb marked this conversation as resolved.
Outdated
(
tversion.older_than("6.0(9e)") or
((tversion.same_as("6.1(1f)") or tversion.newer_than("6.1(1f)")) and tversion.older_than("6.1(4h)"))
)
):
# endpoint to fetch the rogue exception MACs
exception_mac_api = 'fvRogueExceptionMac.json?query-target-filter=and(wcard(fvRogueExceptionMac.dn,"([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}"))'
Comment thread
psureshb marked this conversation as resolved.
Outdated

# endpoint to fetch the presListener entries
presListener_api = 'presListener.json?query-target-filter=and(wcard(presListener.dn,"exceptcont"))'
Comment thread
psureshb marked this conversation as resolved.
Outdated

exception_macs = icurl('class', exception_mac_api)

if exception_macs:
prints("Found {} exception MACs, checking presListener entries...".format(len(exception_macs)))
Comment thread
psureshb marked this conversation as resolved.
Outdated
presListener_response = icurl('class', presListener_api)
if len(presListener_response) >= 0 and len(presListener_response) < 32:
prints("Insufficient presListener entries ({} found) for {} exception MACs.".format(len(presListener_response), len(exception_macs)))
result = FAIL_O
data.append([len(exception_macs), len(presListener_response)])

return Result(result=result, headers=headers, data=data, recommended_action=recommended_action, doc_url=doc_url)


@check_wrapper(check_title='APIC downgrade compatibility when crossing 6.2 release')
def apic_downgrade_compat_warning_check(cversion, tversion, **kwargs):
result = NA
Expand Down Expand Up @@ -6188,6 +6230,7 @@ class CheckManager:
standby_sup_sync_check,
isis_database_byte_check,
configpush_shard_check,
rogue_ep_coop_exception_mac_check,

]
ssh_checks = [
Expand Down
14 changes: 13 additions & 1 deletion docs/docs/validations.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,8 @@ Items | Defect | This Script
[Observer Database Size][d25] | CSCvw45531 | :white_check_mark: | :no_entry_sign:
[Stale pconsRA Object][d26] | CSCwp22212 | :warning:{title="Deprecated"} | :no_entry_sign:
[ISIS DTEPs Byte Size][d27] | CSCwp15375 | :white_check_mark: | :no_entry_sign:
[Policydist configpushShardCont Crash][d28] | CSCwp95515 | :white_check_mark: |
[Policydist configpushShardCont Crash][d28] | CSCwp95515 | :white_check_mark: |
[Rogue EP/COOP Exception MACs missing][d29] | CSCwp64296 | :white_check_mark: | :no_entry_sign:

[d1]: #ep-announce-compatibility
[d2]: #eventmgr-db-size-defect-susceptibility
Expand Down Expand Up @@ -222,6 +223,7 @@ Items | Defect | This Script
[d26]: #stale-pconsra-object
[d27]: #isis-dteps-byte-size
[d28]: #policydist-configpushshardcont-crash
[d29]: #rogue-epcoop-exception-macs-missing


## General Check Details
Expand Down Expand Up @@ -2648,6 +2650,15 @@ Due to [CSCwp95515][59], upgrading to an affected version while having any `conf
If any instances of `configpushShardCont` are flagged by this script, Cisco TAC must be contacted to identify and resolve the underlying issue before performing the upgrade.


### Rogue EP/COOP Exception MACs missing

Due to the defect [CSCwp64296][62], rogue endpoint (EP) and COOP exception MAC address configurations may be lost after a stateless reload of spine switches in an ACI fabric. The `presListener` MO, which holds the exception list configuration for the tenant shard, is missing or incomplete on the APIC side. This leads to spine switches not receiving the `rogueBDDef` configuration after reload.

This script checks if the APIC version is in the affected range, whether rogue MACs are configured in the exception list, and if `presListener` MOs are missing. If all conditions are met, the check will flag the fabric as susceptible to CSCwp64296.

As a workaround, remove the affected EP exception configurations and re-add them. To permanently resolve the issue, contact Cisco TAC to create the missing `presListener` MOs.


[0]: https://github.com/datacenter/ACI-Pre-Upgrade-Validation-Script
[1]: https://www.cisco.com/c/dam/en/us/td/docs/Website/datacenter/apicmatrix/index.html
[2]: https://www.cisco.com/c/en/us/support/switches/nexus-9000-series-switches/products-release-notes-list.html
Expand Down Expand Up @@ -2710,3 +2721,4 @@ If any instances of `configpushShardCont` are flagged by this script, Cisco TAC
[59]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwp95515
[60]: https://www.cisco.com/c/en/us/solutions/collateral/data-center-virtualization/application-centric-infrastructure/white-paper-c11-743951.html#Inter
[61]: https://www.cisco.com/c/en/us/solutions/collateral/data-center-virtualization/application-centric-infrastructure/white-paper-c11-743951.html#EnablePolicyCompression
[62]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwp64296
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[]
Loading