feat: /31 point-to-point spine-ISN underlay + graph physical-links table (v0.20.0)

Spine-to-ISN links now use per-link /31 point-to-point sub-interface pairs
(Cisco Multi-Site design guide) instead of a shared /24 with a .254 IPN
router; ospfIf/ospfAdjEp carry the pair addresses (ISN CSW LLDP mgmt IP
unchanged - device-level address). aci-sim graph follows the autoACI topology
view logic: solid ISN uplinks, link-type legend entries, and a physical-links
table (fabric links + ISN uplinks with /31 local/remote IPs) under the
diagram. Tests updated + strengthened; suite: 908 passed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
dtzp555-max
2026-07-07 12:18:23 +10:00
co-authored by Claude Fable 5
parent c926702a29
commit e52ac1981d
6 changed files with 97 additions and 16 deletions
+4 -2
View File
@@ -429,8 +429,10 @@ def test_ospf_if_references_real_port(store_name, request):
)
assert ospf_if.attrs.get("id") == port_id
addr = ospf_if.attrs.get("addr", "")
assert re.fullmatch(r"172\.16\.\d+\.\d+/24", addr), (
f"ospfIf {ospf_if.dn!r} addr {addr!r} is not a 172.16.{{site}}.0/24 address"
assert re.fullmatch(r"172\.16\.\d+\.\d+/31", addr), (
f"ospfIf {ospf_if.dn!r} addr {addr!r} is not a point-to-point "
f"172.16.{{site}}.x/31 address (Cisco Multi-Site: spine-to-IPN "
f"links are /31 or /30 p2p sub-interfaces, not a shared LAN)"
)