diff --git a/cable_map/frontend/dev/fixtures/mixed-sros-topology.json b/cable_map/frontend/dev/fixtures/mixed-sros-topology.json index 29675de..2d3aee4 100644 --- a/cable_map/frontend/dev/fixtures/mixed-sros-topology.json +++ b/cable_map/frontend/dev/fixtures/mixed-sros-topology.json @@ -54,6 +54,16 @@ "kind": "lineCard", "type": "i48-400g-qsfpdd-1", "slot": "1" + }, + { + "kind": "mda", + "type": "me12-100gb-qsfp28", + "slot": "1" + }, + { + "kind": "mda", + "type": "me6-100gb-qsfp28", + "slot": "2" } ] }, @@ -151,6 +161,123 @@ "type": "interSwitch", "lldpStatus": "ok", "lldpPeer": "mix-leaf-sxr ethernet-1-1" + }, + { + "label": "ethernet-1-9", + "desc": "leaf fabric A", + "remoteNode": "mix-sros-sr1-46s", + "remotePort": "1/1/c1/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1-46s 1/1/c1/1" + }, + { + "label": "ethernet-1-10", + "desc": "leaf fabric A", + "remoteNode": "mix-sros-sr1-92s", + "remotePort": "1/1/c1/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1-92s 1/1/c1/1" + }, + { + "label": "ethernet-1-11", + "desc": "leaf fabric A", + "remoteNode": "mix-sros-sr1x-48d", + "remotePort": "1/1/c1/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1x-48d 1/1/c1/1" + }, + { + "label": "ethernet-1-12", + "desc": "leaf fabric A", + "remoteNode": "mix-sros-sr1x-92s", + "remotePort": "1/1/c1/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1x-92s 1/1/c1/1" + }, + { + "label": "ethernet-1-13", + "desc": "leaf fabric A", + "remoteNode": "mix-sros-sr1se-imm", + "remotePort": "1/1/c1/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1se-imm 1/1/c1/1" + }, + { + "label": "ethernet-1-14", + "desc": "leaf fabric A", + "remoteNode": "mix-sros-sr1-mda-me12-me6", + "remotePort": "1/1/c1/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1-mda-me12-me6 1/1/c1/1" + }, + { + "label": "ethernet-1-15", + "desc": "leaf fabric A", + "remoteNode": "mix-sros-sr1-iom-me6", + "remotePort": "1/1/c1/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1-iom-me6 1/1/c1/1" + }, + { + "label": "ethernet-1-16", + "desc": "leaf fabric A", + "remoteNode": "mix-sros-sr1se-direct", + "remotePort": "1/1/c1/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1se-direct 1/1/c1/1" + }, + { + "label": "ethernet-1-17", + "desc": "leaf fabric A", + "remoteNode": "mix-sros-sr1s-s18", + "remotePort": "1/1/c1/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1s-s18 1/1/c1/1" + }, + { + "label": "ethernet-1-18", + "desc": "leaf fabric A", + "remoteNode": "mix-sros-sr1s-s36", + "remotePort": "1/1/c1/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1s-s36 1/1/c1/1" + }, + { + "label": "ethernet-1-19", + "desc": "leaf fabric A", + "remoteNode": "mix-sros-sr2s-ms16-ms8", + "remotePort": "1/1/c1/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr2s-ms16-ms8 1/1/c1/1" + }, + { + "label": "ethernet-1-20", + "desc": "leaf fabric A", + "remoteNode": "mix-sros-sr2se-x2-mse6", + "remotePort": "1/1/c1/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr2se-x2-mse6 1/1/c1/1" + }, + { + "label": "ethernet-1-21", + "desc": "leaf fabric A", + "remoteNode": "mix-sros-sr2se-m36-mse24", + "remotePort": "1/1/c1/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr2se-m36-mse24 1/1/c1/1" } ], "raw": { @@ -276,6 +403,123 @@ "type": "interSwitch", "lldpStatus": "ok", "lldpPeer": "mix-leaf-sxr ethernet-1-2" + }, + { + "label": "1/1/c10/1", + "desc": "leaf fabric B", + "remoteNode": "mix-sros-sr1-46s", + "remotePort": "1/1/c2/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1-46s 1/1/c2/1" + }, + { + "label": "1/1/c11/1", + "desc": "leaf fabric B", + "remoteNode": "mix-sros-sr1-92s", + "remotePort": "1/1/c2/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1-92s 1/1/c2/1" + }, + { + "label": "1/1/c12/1", + "desc": "leaf fabric B", + "remoteNode": "mix-sros-sr1x-48d", + "remotePort": "1/1/c2/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1x-48d 1/1/c2/1" + }, + { + "label": "1/1/c13/1", + "desc": "leaf fabric B", + "remoteNode": "mix-sros-sr1x-92s", + "remotePort": "1/1/c2/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1x-92s 1/1/c2/1" + }, + { + "label": "1/1/c14/1", + "desc": "leaf fabric B", + "remoteNode": "mix-sros-sr1se-imm", + "remotePort": "1/1/c2/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1se-imm 1/1/c2/1" + }, + { + "label": "1/1/c15/1", + "desc": "leaf fabric B", + "remoteNode": "mix-sros-sr1-mda-me12-me6", + "remotePort": "1/1/c2/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1-mda-me12-me6 1/1/c2/1" + }, + { + "label": "1/1/c16/1", + "desc": "leaf fabric B", + "remoteNode": "mix-sros-sr1-iom-me6", + "remotePort": "1/1/c2/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1-iom-me6 1/1/c2/1" + }, + { + "label": "1/1/c17/1", + "desc": "leaf fabric B", + "remoteNode": "mix-sros-sr1se-direct", + "remotePort": "1/1/c2/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1se-direct 1/1/c2/1" + }, + { + "label": "1/1/c18/1", + "desc": "leaf fabric B", + "remoteNode": "mix-sros-sr1s-s18", + "remotePort": "1/1/c2/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1s-s18 1/1/c2/1" + }, + { + "label": "1/1/c19/1", + "desc": "leaf fabric B", + "remoteNode": "mix-sros-sr1s-s36", + "remotePort": "1/1/c2/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr1s-s36 1/1/c2/1" + }, + { + "label": "1/1/c20/1", + "desc": "leaf fabric B", + "remoteNode": "mix-sros-sr2s-ms16-ms8", + "remotePort": "1/1/c2/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr2s-ms16-ms8 1/1/c2/1" + }, + { + "label": "1/1/c21/1", + "desc": "leaf fabric B", + "remoteNode": "mix-sros-sr2se-x2-mse6", + "remotePort": "1/1/c2/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr2se-x2-mse6 1/1/c2/1" + }, + { + "label": "1/1/c22/1", + "desc": "leaf fabric B", + "remoteNode": "mix-sros-sr2se-m36-mse24", + "remotePort": "1/1/c2/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-sros-sr2se-m36-mse24 1/1/c2/1" } ], "raw": { @@ -303,7 +547,7 @@ }, { "kind": "mda", - "type": "ms4-400gb-qsfpdd-4-100gb-qsfp28", + "type": "ms4-400gb-qsfpdd+4-100gb-qsfp28", "slot": "2" } ] @@ -755,7 +999,7 @@ "component": [ { "kind": "mda", - "type": "ms16-100gb-sfpdd-4-100gb-qsfp28", + "type": "ms16-100gb-sfpdd+4-100gb-qsfp28", "slot": "1" } ] @@ -827,48 +1071,957 @@ "node-state": "connected" } } - } - ], - "links": [ - { - "id": "mix-mix-spine-srl-mix-core-sr1-1", - "source": "mix-spine-srl", - "target": "mix-core-sr1", - "sourcePort": "ethernet-1-1", - "targetPort": "1/1/c1/1", - "type": "interSwitch" - }, - { - "id": "mix-mix-spine-sros-mix-core-sr1-2", - "source": "mix-spine-sros", - "target": "mix-core-sr1", - "sourcePort": "1/1/c1/1", - "targetPort": "1/1/c2/1", - "type": "interSwitch" - }, - { - "id": "mix-mix-border-sr2-mix-spine-srl-3", - "source": "mix-border-sr2", - "target": "mix-spine-srl", - "sourcePort": "1/1/c1/1", - "targetPort": "ethernet-1-2", - "type": "interSwitch" }, { - "id": "mix-border-sros-fabric-1", - "source": "mix-border-sr2", - "target": "mix-spine-sros", - "sourcePort": "1/1/c2/1", - "targetPort": "1/1/c2/1", - "type": "interSwitch" + "name": "mix-sros-sr1-46s", + "platform": "7750 SR-1", + "os": "sros", + "role": "leaf", + "namespace": "dev-mixed-sros", + "version": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1-46s" + }, + "table": [ + { + "label": "1/1/c1/1", + "desc": "leaf fabric A", + "remoteNode": "mix-spine-srl", + "remotePort": "ethernet-1-9", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-srl ethernet-1-9" + }, + { + "label": "1/1/c2/1", + "desc": "leaf fabric B", + "remoteNode": "mix-spine-sros", + "remotePort": "1/1/c10/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-sros 1/1/c10/1" + } + ], + "raw": { + "apiVersion": "core.eda.nokia.com/v1", + "kind": "TopoNode", + "metadata": { + "name": "mix-sros-sr1-46s", + "namespace": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1-46s" + } + }, + "spec": { + "platform": "7750 SR-1", + "operatingSystem": "sros", + "component": [ + { + "kind": "lineCard", + "type": "i40-200g-sfpdd+6-800g-qsfpdd-1", + "slot": "1" + } + ] + }, + "status": { + "platform": "7750 SR-1", + "operatingSystem": "sros", + "version": "24.7.r1", + "node-state": "connected" + } + } }, { - "id": "mix-border-sros-fabric-2", - "source": "mix-border-sr2", - "target": "mix-spine-sros", - "sourcePort": "1/1/c3/1", - "targetPort": "1/1/c3/1", - "type": "interSwitch" + "name": "mix-sros-sr1-92s", + "platform": "7750 SR-1", + "os": "sros", + "role": "leaf", + "namespace": "dev-mixed-sros", + "version": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1-92s" + }, + "table": [ + { + "label": "1/1/c1/1", + "desc": "leaf fabric A", + "remoteNode": "mix-spine-srl", + "remotePort": "ethernet-1-10", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-srl ethernet-1-10" + }, + { + "label": "1/1/c2/1", + "desc": "leaf fabric B", + "remoteNode": "mix-spine-sros", + "remotePort": "1/1/c11/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-sros 1/1/c11/1" + } + ], + "raw": { + "apiVersion": "core.eda.nokia.com/v1", + "kind": "TopoNode", + "metadata": { + "name": "mix-sros-sr1-92s", + "namespace": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1-92s" + } + }, + "spec": { + "platform": "7750 SR-1", + "operatingSystem": "sros", + "component": [ + { + "kind": "lineCard", + "type": "i80-200g-sfpdd+12-400g-qsfpdd-1", + "slot": "1" + } + ] + }, + "status": { + "platform": "7750 SR-1", + "operatingSystem": "sros", + "version": "24.7.r1", + "node-state": "connected" + } + } + }, + { + "name": "mix-sros-sr1x-48d", + "platform": "7750 SR-1", + "os": "sros", + "role": "leaf", + "namespace": "dev-mixed-sros", + "version": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1x-48d" + }, + "table": [ + { + "label": "1/1/c1/1", + "desc": "leaf fabric A", + "remoteNode": "mix-spine-srl", + "remotePort": "ethernet-1-11", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-srl ethernet-1-11" + }, + { + "label": "1/1/c2/1", + "desc": "leaf fabric B", + "remoteNode": "mix-spine-sros", + "remotePort": "1/1/c12/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-sros 1/1/c12/1" + } + ], + "raw": { + "apiVersion": "core.eda.nokia.com/v1", + "kind": "TopoNode", + "metadata": { + "name": "mix-sros-sr1x-48d", + "namespace": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1x-48d" + } + }, + "spec": { + "platform": "7750 SR-1", + "operatingSystem": "sros", + "component": [ + { + "kind": "lineCard", + "type": "i48-800g-qsfpdd-1x", + "slot": "1" + } + ] + }, + "status": { + "platform": "7750 SR-1", + "operatingSystem": "sros", + "version": "24.7.r1", + "node-state": "connected" + } + } + }, + { + "name": "mix-sros-sr1x-92s", + "platform": "7750 SR-1", + "os": "sros", + "role": "leaf", + "namespace": "dev-mixed-sros", + "version": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1x-92s" + }, + "table": [ + { + "label": "1/1/c1/1", + "desc": "leaf fabric A", + "remoteNode": "mix-spine-srl", + "remotePort": "ethernet-1-12", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-srl ethernet-1-12" + }, + { + "label": "1/1/c2/1", + "desc": "leaf fabric B", + "remoteNode": "mix-spine-sros", + "remotePort": "1/1/c13/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-sros 1/1/c13/1" + } + ], + "raw": { + "apiVersion": "core.eda.nokia.com/v1", + "kind": "TopoNode", + "metadata": { + "name": "mix-sros-sr1x-92s", + "namespace": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1x-92s" + } + }, + "spec": { + "platform": "7750 SR-1", + "operatingSystem": "sros", + "component": [ + { + "kind": "lineCard", + "type": "i80-200g-sfpdd+12-800g-qsfpdd-1x", + "slot": "1" + } + ] + }, + "status": { + "platform": "7750 SR-1", + "operatingSystem": "sros", + "version": "24.7.r1", + "node-state": "connected" + } + } + }, + { + "name": "mix-sros-sr1se-imm", + "platform": "7750 SR-1", + "os": "sros", + "role": "leaf", + "namespace": "dev-mixed-sros", + "version": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1se-imm" + }, + "table": [ + { + "label": "1/1/c1/1", + "desc": "leaf fabric A", + "remoteNode": "mix-spine-srl", + "remotePort": "ethernet-1-13", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-srl ethernet-1-13" + }, + { + "label": "1/1/c2/1", + "desc": "leaf fabric B", + "remoteNode": "mix-spine-sros", + "remotePort": "1/1/c14/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-sros 1/1/c14/1" + } + ], + "raw": { + "apiVersion": "core.eda.nokia.com/v1", + "kind": "TopoNode", + "metadata": { + "name": "mix-sros-sr1se-imm", + "namespace": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1se-imm" + } + }, + "spec": { + "platform": "7750 SR-1", + "operatingSystem": "sros", + "component": [ + { + "kind": "lineCard", + "type": "imm36-800g-qsfpdd", + "slot": "1" + } + ] + }, + "status": { + "platform": "7750 SR-1", + "operatingSystem": "sros", + "version": "24.7.r1", + "node-state": "connected" + } + } + }, + { + "name": "mix-sros-sr1-mda-me12-me6", + "platform": "7750 SR-1", + "os": "sros", + "role": "leaf", + "namespace": "dev-mixed-sros", + "version": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1-mda-me12-me6" + }, + "table": [ + { + "label": "1/1/c1/1", + "desc": "leaf fabric A", + "remoteNode": "mix-spine-srl", + "remotePort": "ethernet-1-14", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-srl ethernet-1-14" + }, + { + "label": "1/1/c2/1", + "desc": "leaf fabric B", + "remoteNode": "mix-spine-sros", + "remotePort": "1/1/c15/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-sros 1/1/c15/1" + } + ], + "raw": { + "apiVersion": "core.eda.nokia.com/v1", + "kind": "TopoNode", + "metadata": { + "name": "mix-sros-sr1-mda-me12-me6", + "namespace": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1-mda-me12-me6" + } + }, + "spec": { + "platform": "7750 SR-1", + "operatingSystem": "sros", + "component": [ + { + "kind": "mda", + "type": "me12-100gb-qsfp28", + "slot": "1" + }, + { + "kind": "mda", + "type": "me6-100gb-qsfp28", + "slot": "2" + } + ] + }, + "status": { + "platform": "7750 SR-1", + "operatingSystem": "sros", + "version": "24.7.r1", + "node-state": "connected" + } + } + }, + { + "name": "mix-sros-sr1-iom-me6", + "platform": "7750 SR-1", + "os": "sros", + "role": "leaf", + "namespace": "dev-mixed-sros", + "version": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1-iom-me6" + }, + "table": [ + { + "label": "1/1/c1/1", + "desc": "leaf fabric A", + "remoteNode": "mix-spine-srl", + "remotePort": "ethernet-1-15", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-srl ethernet-1-15" + }, + { + "label": "1/1/c2/1", + "desc": "leaf fabric B", + "remoteNode": "mix-spine-sros", + "remotePort": "1/1/c16/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-sros 1/1/c16/1" + } + ], + "raw": { + "apiVersion": "core.eda.nokia.com/v1", + "kind": "TopoNode", + "metadata": { + "name": "mix-sros-sr1-iom-me6", + "namespace": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1-iom-me6" + } + }, + "spec": { + "platform": "7750 SR-1", + "operatingSystem": "sros", + "component": [ + { + "kind": "lineCard", + "type": "iom-1", + "slot": "1" + }, + { + "kind": "mda", + "type": "me6-100gb-qsfp28", + "slot": "1-a" + }, + { + "kind": "connector", + "type": "c10-10g", + "slot": "1-a-1" + }, + { + "kind": "connector", + "type": "c10-10g", + "slot": "1-a-2" + }, + { + "kind": "connector", + "type": "c10-10g", + "slot": "1-a-3" + }, + { + "kind": "connector", + "type": "c10-10g", + "slot": "1-a-4" + } + ] + }, + "status": { + "platform": "7750 SR-1", + "operatingSystem": "sros", + "version": "24.7.r1", + "node-state": "connected" + } + } + }, + { + "name": "mix-sros-sr1se-direct", + "platform": "7750 SR-1se", + "os": "sros", + "role": "leaf", + "namespace": "dev-mixed-sros", + "version": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1se-direct" + }, + "table": [ + { + "label": "1/1/c1/1", + "desc": "leaf fabric A", + "remoteNode": "mix-spine-srl", + "remotePort": "ethernet-1-16", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-srl ethernet-1-16" + }, + { + "label": "1/1/c2/1", + "desc": "leaf fabric B", + "remoteNode": "mix-spine-sros", + "remotePort": "1/1/c17/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-sros 1/1/c17/1" + } + ], + "raw": { + "apiVersion": "core.eda.nokia.com/v1", + "kind": "TopoNode", + "metadata": { + "name": "mix-sros-sr1se-direct", + "namespace": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1se-direct" + } + }, + "spec": { + "platform": "7750 SR-1se", + "operatingSystem": "sros" + }, + "status": { + "platform": "7750 SR-1se", + "operatingSystem": "sros", + "version": "24.7.r1", + "node-state": "connected" + } + } + }, + { + "name": "mix-sros-sr1s-s18", + "platform": "7750 SR-1s", + "os": "sros", + "role": "leaf", + "namespace": "dev-mixed-sros", + "version": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1s-s18" + }, + "table": [ + { + "label": "1/1/c1/1", + "desc": "leaf fabric A", + "remoteNode": "mix-spine-srl", + "remotePort": "ethernet-1-17", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-srl ethernet-1-17" + }, + { + "label": "1/1/c2/1", + "desc": "leaf fabric B", + "remoteNode": "mix-spine-sros", + "remotePort": "1/1/c18/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-sros 1/1/c18/1" + } + ], + "raw": { + "apiVersion": "core.eda.nokia.com/v1", + "kind": "TopoNode", + "metadata": { + "name": "mix-sros-sr1s-s18", + "namespace": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1s-s18" + } + }, + "spec": { + "platform": "7750 SR-1s", + "operatingSystem": "sros", + "component": [ + { + "kind": "mda", + "type": "s18-100gb-qsfp28", + "slot": "1" + } + ] + }, + "status": { + "platform": "7750 SR-1s", + "operatingSystem": "sros", + "version": "24.7.r1", + "node-state": "connected" + } + } + }, + { + "name": "mix-sros-sr1s-s36", + "platform": "7750 SR-1s", + "os": "sros", + "role": "leaf", + "namespace": "dev-mixed-sros", + "version": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1s-s36" + }, + "table": [ + { + "label": "1/1/c1/1", + "desc": "leaf fabric A", + "remoteNode": "mix-spine-srl", + "remotePort": "ethernet-1-18", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-srl ethernet-1-18" + }, + { + "label": "1/1/c2/1", + "desc": "leaf fabric B", + "remoteNode": "mix-spine-sros", + "remotePort": "1/1/c19/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-sros 1/1/c19/1" + } + ], + "raw": { + "apiVersion": "core.eda.nokia.com/v1", + "kind": "TopoNode", + "metadata": { + "name": "mix-sros-sr1s-s36", + "namespace": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr1s-s36" + } + }, + "spec": { + "platform": "7750 SR-1s", + "operatingSystem": "sros", + "component": [ + { + "kind": "mda", + "type": "s36-400gb-qsfpdd", + "slot": "1" + } + ] + }, + "status": { + "platform": "7750 SR-1s", + "operatingSystem": "sros", + "version": "24.7.r1", + "node-state": "connected" + } + } + }, + { + "name": "mix-sros-sr2s-ms16-ms8", + "platform": "7750 SR-2s", + "os": "sros", + "role": "leaf", + "namespace": "dev-mixed-sros", + "version": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr2s-ms16-ms8" + }, + "table": [ + { + "label": "1/1/c1/1", + "desc": "leaf fabric A", + "remoteNode": "mix-spine-srl", + "remotePort": "ethernet-1-19", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-srl ethernet-1-19" + }, + { + "label": "1/1/c2/1", + "desc": "leaf fabric B", + "remoteNode": "mix-spine-sros", + "remotePort": "1/1/c20/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-sros 1/1/c20/1" + } + ], + "raw": { + "apiVersion": "core.eda.nokia.com/v1", + "kind": "TopoNode", + "metadata": { + "name": "mix-sros-sr2s-ms16-ms8", + "namespace": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr2s-ms16-ms8" + } + }, + "spec": { + "platform": "7750 SR-2s", + "operatingSystem": "sros", + "component": [ + { + "kind": "mda", + "type": "ms16-100gb-sfpdd+4-100gb-qsfp28", + "slot": "1" + }, + { + "kind": "mda", + "type": "ms8-100gb-sfpdd+2-100gb-qsfp28", + "slot": "2" + } + ] + }, + "status": { + "platform": "7750 SR-2s", + "operatingSystem": "sros", + "version": "24.7.r1", + "node-state": "connected" + } + } + }, + { + "name": "mix-sros-sr2se-x2-mse6", + "platform": "7750 SR-2se", + "os": "sros", + "role": "leaf", + "namespace": "dev-mixed-sros", + "version": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr2se-x2-mse6" + }, + "table": [ + { + "label": "1/1/c1/1", + "desc": "leaf fabric A", + "remoteNode": "mix-spine-srl", + "remotePort": "ethernet-1-20", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-srl ethernet-1-20" + }, + { + "label": "1/1/c2/1", + "desc": "leaf fabric B", + "remoteNode": "mix-spine-sros", + "remotePort": "1/1/c21/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-sros 1/1/c21/1" + } + ], + "raw": { + "apiVersion": "core.eda.nokia.com/v1", + "kind": "TopoNode", + "metadata": { + "name": "mix-sros-sr2se-x2-mse6", + "namespace": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr2se-x2-mse6" + } + }, + "spec": { + "platform": "7750 SR-2se", + "operatingSystem": "sros", + "component": [ + { + "kind": "mda", + "type": "x2-s36-800g-qsfpdd-18.0t", + "slot": "1" + }, + { + "kind": "mda", + "type": "mse6-800g-qsfpdd", + "slot": "2" + } + ] + }, + "status": { + "platform": "7750 SR-2se", + "operatingSystem": "sros", + "version": "24.7.r1", + "node-state": "connected" + } + } + }, + { + "name": "mix-sros-sr2se-m36-mse24", + "platform": "7750 SR-2se", + "os": "sros", + "role": "leaf", + "namespace": "dev-mixed-sros", + "version": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr2se-m36-mse24" + }, + "table": [ + { + "label": "1/1/c1/1", + "desc": "leaf fabric A", + "remoteNode": "mix-spine-srl", + "remotePort": "ethernet-1-21", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-srl ethernet-1-21" + }, + { + "label": "1/1/c2/1", + "desc": "leaf fabric B", + "remoteNode": "mix-spine-sros", + "remotePort": "1/1/c22/1", + "type": "interSwitch", + "lldpStatus": "ok", + "lldpPeer": "mix-spine-sros 1/1/c22/1" + } + ], + "raw": { + "apiVersion": "core.eda.nokia.com/v1", + "kind": "TopoNode", + "metadata": { + "name": "mix-sros-sr2se-m36-mse24", + "namespace": "dev-mixed-sros", + "labels": { + "eda.nokia.com/role": "leaf", + "eda.nokia.com/os": "sros", + "eda.nokia.com/dev-fixture": "mixed-sros", + "eda.nokia.com/pod": "sros-variants", + "eda.nokia.com/rack": "mix-sros-sr2se-m36-mse24" + } + }, + "spec": { + "platform": "7750 SR-2se", + "operatingSystem": "sros", + "component": [ + { + "kind": "mda", + "type": "m36-800g-qsfpdd", + "slot": "1" + }, + { + "kind": "mda", + "type": "mse24-200g-sfpdd", + "slot": "2" + } + ] + }, + "status": { + "platform": "7750 SR-2se", + "operatingSystem": "sros", + "version": "24.7.r1", + "node-state": "connected" + } + } + } + ], + "links": [ + { + "id": "mix-mix-spine-srl-mix-core-sr1-1", + "source": "mix-spine-srl", + "target": "mix-core-sr1", + "sourcePort": "ethernet-1-1", + "targetPort": "1/1/c1/1", + "type": "interSwitch" + }, + { + "id": "mix-mix-spine-sros-mix-core-sr1-2", + "source": "mix-spine-sros", + "target": "mix-core-sr1", + "sourcePort": "1/1/c1/1", + "targetPort": "1/1/c2/1", + "type": "interSwitch" + }, + { + "id": "mix-mix-border-sr2-mix-spine-srl-3", + "source": "mix-border-sr2", + "target": "mix-spine-srl", + "sourcePort": "1/1/c1/1", + "targetPort": "ethernet-1-2", + "type": "interSwitch" + }, + { + "id": "mix-border-sros-fabric-1", + "source": "mix-border-sr2", + "target": "mix-spine-sros", + "sourcePort": "1/1/c2/1", + "targetPort": "1/1/c2/1", + "type": "interSwitch" + }, + { + "id": "mix-border-sros-fabric-2", + "source": "mix-border-sr2", + "target": "mix-spine-sros", + "sourcePort": "1/1/c3/1", + "targetPort": "1/1/c3/1", + "type": "interSwitch" }, { "id": "mix-mix-leaf-d3l-mix-spine-srl-6", @@ -965,6 +2118,214 @@ "sourcePort": "ethernet-1-2", "targetPort": "1/1/c9/1", "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1-46s-mix-spine-srl-18", + "source": "mix-sros-sr1-46s", + "target": "mix-spine-srl", + "sourcePort": "1/1/c1/1", + "targetPort": "ethernet-1-9", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1-46s-mix-spine-sros-19", + "source": "mix-sros-sr1-46s", + "target": "mix-spine-sros", + "sourcePort": "1/1/c2/1", + "targetPort": "1/1/c10/1", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1-92s-mix-spine-srl-20", + "source": "mix-sros-sr1-92s", + "target": "mix-spine-srl", + "sourcePort": "1/1/c1/1", + "targetPort": "ethernet-1-10", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1-92s-mix-spine-sros-21", + "source": "mix-sros-sr1-92s", + "target": "mix-spine-sros", + "sourcePort": "1/1/c2/1", + "targetPort": "1/1/c11/1", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1x-48d-mix-spine-srl-22", + "source": "mix-sros-sr1x-48d", + "target": "mix-spine-srl", + "sourcePort": "1/1/c1/1", + "targetPort": "ethernet-1-11", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1x-48d-mix-spine-sros-23", + "source": "mix-sros-sr1x-48d", + "target": "mix-spine-sros", + "sourcePort": "1/1/c2/1", + "targetPort": "1/1/c12/1", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1x-92s-mix-spine-srl-24", + "source": "mix-sros-sr1x-92s", + "target": "mix-spine-srl", + "sourcePort": "1/1/c1/1", + "targetPort": "ethernet-1-12", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1x-92s-mix-spine-sros-25", + "source": "mix-sros-sr1x-92s", + "target": "mix-spine-sros", + "sourcePort": "1/1/c2/1", + "targetPort": "1/1/c13/1", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1se-imm-mix-spine-srl-26", + "source": "mix-sros-sr1se-imm", + "target": "mix-spine-srl", + "sourcePort": "1/1/c1/1", + "targetPort": "ethernet-1-13", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1se-imm-mix-spine-sros-27", + "source": "mix-sros-sr1se-imm", + "target": "mix-spine-sros", + "sourcePort": "1/1/c2/1", + "targetPort": "1/1/c14/1", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1-mda-me12-me6-mix-spine-srl-28", + "source": "mix-sros-sr1-mda-me12-me6", + "target": "mix-spine-srl", + "sourcePort": "1/1/c1/1", + "targetPort": "ethernet-1-14", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1-mda-me12-me6-mix-spine-sros-29", + "source": "mix-sros-sr1-mda-me12-me6", + "target": "mix-spine-sros", + "sourcePort": "1/1/c2/1", + "targetPort": "1/1/c15/1", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1-iom-me6-mix-spine-srl-30", + "source": "mix-sros-sr1-iom-me6", + "target": "mix-spine-srl", + "sourcePort": "1/1/c1/1", + "targetPort": "ethernet-1-15", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1-iom-me6-mix-spine-sros-31", + "source": "mix-sros-sr1-iom-me6", + "target": "mix-spine-sros", + "sourcePort": "1/1/c2/1", + "targetPort": "1/1/c16/1", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1se-direct-mix-spine-srl-32", + "source": "mix-sros-sr1se-direct", + "target": "mix-spine-srl", + "sourcePort": "1/1/c1/1", + "targetPort": "ethernet-1-16", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1se-direct-mix-spine-sros-33", + "source": "mix-sros-sr1se-direct", + "target": "mix-spine-sros", + "sourcePort": "1/1/c2/1", + "targetPort": "1/1/c17/1", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1s-s18-mix-spine-srl-34", + "source": "mix-sros-sr1s-s18", + "target": "mix-spine-srl", + "sourcePort": "1/1/c1/1", + "targetPort": "ethernet-1-17", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1s-s18-mix-spine-sros-35", + "source": "mix-sros-sr1s-s18", + "target": "mix-spine-sros", + "sourcePort": "1/1/c2/1", + "targetPort": "1/1/c18/1", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1s-s36-mix-spine-srl-36", + "source": "mix-sros-sr1s-s36", + "target": "mix-spine-srl", + "sourcePort": "1/1/c1/1", + "targetPort": "ethernet-1-18", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr1s-s36-mix-spine-sros-37", + "source": "mix-sros-sr1s-s36", + "target": "mix-spine-sros", + "sourcePort": "1/1/c2/1", + "targetPort": "1/1/c19/1", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr2s-ms16-ms8-mix-spine-srl-38", + "source": "mix-sros-sr2s-ms16-ms8", + "target": "mix-spine-srl", + "sourcePort": "1/1/c1/1", + "targetPort": "ethernet-1-19", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr2s-ms16-ms8-mix-spine-sros-39", + "source": "mix-sros-sr2s-ms16-ms8", + "target": "mix-spine-sros", + "sourcePort": "1/1/c2/1", + "targetPort": "1/1/c20/1", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr2se-x2-mse6-mix-spine-srl-40", + "source": "mix-sros-sr2se-x2-mse6", + "target": "mix-spine-srl", + "sourcePort": "1/1/c1/1", + "targetPort": "ethernet-1-20", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr2se-x2-mse6-mix-spine-sros-41", + "source": "mix-sros-sr2se-x2-mse6", + "target": "mix-spine-sros", + "sourcePort": "1/1/c2/1", + "targetPort": "1/1/c21/1", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr2se-m36-mse24-mix-spine-srl-42", + "source": "mix-sros-sr2se-m36-mse24", + "target": "mix-spine-srl", + "sourcePort": "1/1/c1/1", + "targetPort": "ethernet-1-21", + "type": "interSwitch" + }, + { + "id": "mix-mix-sros-sr2se-m36-mse24-mix-spine-sros-43", + "source": "mix-sros-sr2se-m36-mse24", + "target": "mix-spine-sros", + "sourcePort": "1/1/c2/1", + "targetPort": "1/1/c22/1", + "type": "interSwitch" } ], "lags": { @@ -1064,9 +2425,23 @@ ], "eda.nokia.com/pod": [ "edge", - "pod-00" + "pod-00", + "sros-variants" ], "eda.nokia.com/rack": [ + "mix-sros-sr1-46s", + "mix-sros-sr1-92s", + "mix-sros-sr1-iom-me6", + "mix-sros-sr1-mda-me12-me6", + "mix-sros-sr1s-s18", + "mix-sros-sr1s-s36", + "mix-sros-sr1se-direct", + "mix-sros-sr1se-imm", + "mix-sros-sr1x-48d", + "mix-sros-sr1x-92s", + "mix-sros-sr2s-ms16-ms8", + "mix-sros-sr2se-m36-mse24", + "mix-sros-sr2se-x2-mse6", "rack-01", "rack-02", "rack-03", diff --git a/cable_map/frontend/scripts/gen-golden-topology.mjs b/cable_map/frontend/scripts/gen-golden-topology.mjs index 58609b6..0448529 100644 --- a/cable_map/frontend/scripts/gen-golden-topology.mjs +++ b/cable_map/frontend/scripts/gen-golden-topology.mjs @@ -502,7 +502,11 @@ function buildMixedSrosTopology() { platform: '7750 SR-1', os: 'sros', labels: { 'eda.nokia.com/plane': 'plane-00' }, - components: [{ kind: 'lineCard', type: 'i48-400g-qsfpdd-1', slot: '1' }], + components: [ + { kind: 'lineCard', type: 'i48-400g-qsfpdd-1', slot: '1' }, + { kind: 'mda', type: 'me12-100gb-qsfp28', slot: '1' }, + { kind: 'mda', type: 'me6-100gb-qsfp28', slot: '2' }, + ], }); addNode({ name: 'mix-spine-srl', @@ -518,7 +522,7 @@ function buildMixedSrosTopology() { labels: { 'eda.nokia.com/pod': 'pod-00', 'eda.nokia.com/plane': 'plane-01' }, components: [ { kind: 'mda', type: 'ms18-100gb-qsfp28', slot: '1' }, - { kind: 'mda', type: 'ms4-400gb-qsfpdd-4-100gb-qsfp28', slot: '2' }, + { kind: 'mda', type: 'ms4-400gb-qsfpdd+4-100gb-qsfp28', slot: '2' }, ], }); addNode({ @@ -565,7 +569,7 @@ function buildMixedSrosTopology() { platform: '7750 SR-1s', os: 'sros', labels: { 'eda.nokia.com/pod': 'pod-00', 'eda.nokia.com/rack': 'rack-05' }, - components: [{ kind: 'mda', type: 'ms16-100gb-sfpdd-4-100gb-qsfp28', slot: '1' }], + components: [{ kind: 'mda', type: 'ms16-100gb-sfpdd+4-100gb-qsfp28', slot: '1' }], }); addNode({ name: 'mix-leaf-sxr', @@ -575,12 +579,61 @@ function buildMixedSrosTopology() { labels: { 'eda.nokia.com/pod': 'pod-00', 'eda.nokia.com/rack': 'rack-06' }, }); + const srosVariants = []; + function addSrosVariant(name, platform, components) { + addNode({ + name, + role: 'leaf', + platform, + os: 'sros', + labels: { 'eda.nokia.com/pod': 'sros-variants', 'eda.nokia.com/rack': name }, + components, + }); + srosVariants.push(name); + } + + [ + ['mix-sros-sr1-46s', 'i40-200g-sfpdd+6-800g-qsfpdd-1'], + ['mix-sros-sr1-92s', 'i80-200g-sfpdd+12-400g-qsfpdd-1'], + ['mix-sros-sr1x-48d', 'i48-800g-qsfpdd-1x'], + ['mix-sros-sr1x-92s', 'i80-200g-sfpdd+12-800g-qsfpdd-1x'], + ['mix-sros-sr1se-imm', 'imm36-800g-qsfpdd'], + ].forEach(([name, type]) => addSrosVariant(name, '7750 SR-1', [{ kind: 'lineCard', type, slot: '1' }])); + + addSrosVariant('mix-sros-sr1-mda-me12-me6', '7750 SR-1', [ + { kind: 'mda', type: 'me12-100gb-qsfp28', slot: '1' }, + { kind: 'mda', type: 'me6-100gb-qsfp28', slot: '2' }, + ]); + addSrosVariant('mix-sros-sr1-iom-me6', '7750 SR-1', [ + { kind: 'lineCard', type: 'iom-1', slot: '1' }, + { kind: 'mda', type: 'me6-100gb-qsfp28', slot: '1-a' }, + { kind: 'connector', type: 'c10-10g', slot: '1-a-1' }, + { kind: 'connector', type: 'c10-10g', slot: '1-a-2' }, + { kind: 'connector', type: 'c10-10g', slot: '1-a-3' }, + { kind: 'connector', type: 'c10-10g', slot: '1-a-4' }, + ]); + addSrosVariant('mix-sros-sr1se-direct', '7750 SR-1se'); + addSrosVariant('mix-sros-sr1s-s18', '7750 SR-1s', [{ kind: 'mda', type: 's18-100gb-qsfp28', slot: '1' }]); + addSrosVariant('mix-sros-sr1s-s36', '7750 SR-1s', [{ kind: 'mda', type: 's36-400gb-qsfpdd', slot: '1' }]); + addSrosVariant('mix-sros-sr2s-ms16-ms8', '7750 SR-2s', [ + { kind: 'mda', type: 'ms16-100gb-sfpdd+4-100gb-qsfp28', slot: '1' }, + { kind: 'mda', type: 'ms8-100gb-sfpdd+2-100gb-qsfp28', slot: '2' }, + ]); + addSrosVariant('mix-sros-sr2se-x2-mse6', '7750 SR-2se', [ + { kind: 'mda', type: 'x2-s36-800g-qsfpdd-18.0t', slot: '1' }, + { kind: 'mda', type: 'mse6-800g-qsfpdd', slot: '2' }, + ]); + addSrosVariant('mix-sros-sr2se-m36-mse24', '7750 SR-2se', [ + { kind: 'mda', type: 'm36-800g-qsfpdd', slot: '1' }, + { kind: 'mda', type: 'mse24-200g-sfpdd', slot: '2' }, + ]); + addLink('mix-spine-srl', 'mix-core-sr1', 'core uplink'); addLink('mix-spine-sros', 'mix-core-sr1', 'core uplink'); addLink('mix-border-sr2', 'mix-spine-srl', 'border fabric'); addLaggedLinkPair('mix-border-sr2', 'mix-spine-sros', 'border-sros-fabric'); - for (const leaf of ['mix-leaf-d3l', 'mix-leaf-d2', 'mix-leaf-h3', 'mix-leaf-sr1', 'mix-leaf-sr1s', 'mix-leaf-sxr']) { + for (const leaf of ['mix-leaf-d3l', 'mix-leaf-d2', 'mix-leaf-h3', 'mix-leaf-sr1', 'mix-leaf-sr1s', 'mix-leaf-sxr', ...srosVariants]) { addLink(leaf, 'mix-spine-srl', 'leaf fabric A'); addLink(leaf, 'mix-spine-sros', 'leaf fabric B'); } diff --git a/cable_map/frontend/src/stencil.ts b/cable_map/frontend/src/stencil.ts index 39052f6..bec118b 100644 --- a/cable_map/frontend/src/stencil.ts +++ b/cable_map/frontend/src/stencil.ts @@ -32,6 +32,20 @@ const MODULAR_CHASSIS = new Set(['7750 SR-1', '7750 SR-1s', '7750 SR-2s', '7750 // '/' and '+' are mangled in stencil filenames/URLs (slash = path sep, '+' decodes to space in the // static-server path), so the composites are written with them flattened to '-'; match that here. const sanitise = (t: string) => t.replace(/[/+]/g, '-'); +const twoBaySlot = (slot?: string): string => { + const tail = (slot ?? '').split('/').pop() || '1'; + const letter = tail.toLowerCase().split(/[-_]/).find((part) => part === 'a' || part === 'b'); + if (letter === 'a') return '1'; + if (letter === 'b') return '2'; + return tail; +}; +const sr1LineCardStencil = (type: string): string | undefined => { + const exact = SR1_LINECARD_STENCIL[type]; + if (exact) return exact; + const normalised = sanitise(type); + return Object.entries(SR1_LINECARD_STENCIL) + .find(([lineCard]) => sanitise(lineCard) === normalised)?.[1]; +}; const mdaTypes = (components?: Component[]): string[] => (components ?? []) .filter((c) => c.kind === 'mda' && c.type) @@ -41,6 +55,13 @@ const mdaTypes = (components?: Component[]): string[] => // The stencil name to render for a node: a card-derived variant for modular chassis when that stencil // exists, else its platform if that already names a stencil, else the platform unchanged (schematic). export function stencilFor(platform: string, components?: Component[]): string { + // 7750 SR-1 integrated variants are fixed faceplates. Some EDA inventories can still include + // MDA-ish component rows; the line card wins because there is only one real front panel. + if (platform === '7750 SR-1') { + const lineCard = components?.find((c) => c.kind === 'lineCard')?.type; + const variant = lineCard && sr1LineCardStencil(lineCard); + if (variant) return variant; + } // 7750 SR-1s also takes a full-width XMA-s (s18/s36) that fills the XCM -> single faceplate; // its ms* MDAs pair via the two-bay branch below. if (platform === '7750 SR-1s') { @@ -56,7 +77,7 @@ export function stencilFor(platform: string, components?: Component[]): string { const bay = new Map(); for (const c of components ?? []) { if (c.kind !== 'mda' || !c.type) continue; - const b = (c.slot ?? '').split('/').pop() || '1'; + const b = twoBaySlot(c.slot); if (!bay.has(b)) bay.set(b, sanitise(c.type)); } if (bay.size) { @@ -100,11 +121,6 @@ export function stencilFor(platform: string, components?: Component[]): string { if (hasFrontPanelMeta(pair)) return pair; } } - // 7750 SR-1: integrated line-card variants report the bare modular platform -> fixed-variant stencil. - if (platform === '7750 SR-1') { - const lineCard = components?.find((c) => c.kind === 'lineCard')?.type; - if (lineCard && SR1_LINECARD_STENCIL[lineCard]) return SR1_LINECARD_STENCIL[lineCard]; - } if (SINGLE_MDA_CHASSIS.has(platform)) { const mda = mdaTypes(components)[0]; const variant = mda && `${platform} ${mda}`;