Skip to content

Conversation

@jcpvdm
Copy link

@jcpvdm jcpvdm commented Feb 5, 2024

Added support for dual-cp (custom variant):

  • changed mgmt IP addressing to support dual cp.
  • populated self.slot variable on SROS_cp instance to avoid need to pass this as argument when calling self methods.
  • TCP ports 50XX full range reserved to serial port: 5000->slot A ; 5099->slot B ; others -> LC slot number.
  • forced br-mgmt slave interfaces to a custom name so it doesn't conflict with in-band data ports (tapX).
  • added slot information on bootstrap logger trace.

sample topology:

name: jmac-sros
topology:
  kinds:
    vr-sros:
      image: vrnetlab/vr-sros:23.7.R2
      license: ../licenses.txt
  nodes:
    r03:
      kind: vr-sros
      type: >- 
        cp: cpu=2 ram=4 chassis=SR-7 slot=A card=cpm5 sfm=m-sfm5-7 ___
        cp: cpu=2 ram=4 chassis=SR-7 slot=B card=cpm5 sfm=m-sfm5-7 ___
        lc: cpu=2 ram=4 max_nics=10 chassis=SR-7 sfm=m-sfm5-7 slot=1 card=iom4-e-b mda/1=me10-10gb-sfp+

  links:
    - endpoints: ["r03:eth2", "r03:eth3"]

@hellt
Copy link
Member

hellt commented Feb 14, 2024

Hi @jcpvdm
can you share a clab file contents that starts a single node in dual cpm fashion?

@jcpvdm
Copy link
Author

jcpvdm commented Feb 14, 2024

added example. @hellt

@jcpvdm
Copy link
Author

jcpvdm commented Jun 7, 2024

Just found now, this is causing an incompatibility when launching the pre-defined distributed variants.
It's expecting a list of cps instead of single cp item.

 "ixr-s": {
        "deployment_model": "distributed",
        # control plane (CPM)
        "max_nics": 54,
        "cp": {
            "min_ram": 3,
            "timos_line": "slot=A chassis=ixr-s card=cpm-ixr-s",
        },
        # line card (IOM/XCM)
        "lcs": [
            {
                "min_ram": 4,
                "timos_line": "chassis=ixr-s slot=1 card=imm48-sfp++6-qsfp28 mda/1=m48-sfp++6-qsfp28",
                "card_config": """/configure card 1 card-type imm48-sfp++6-qsfp28
            /configure card 1 mda 1 mda-type m48-sfp++6-qsfp28
            """,
            }
        ],
    },
Traceback (most recent call last):
  File "/launch.py", line 1425, in <module>
    ia = SROS(
         ^^^^^
  File "/launch.py", line 1147, in __init__
    for cp in variant["cps"]:
              ~~~~~~~^^^^^^^
KeyError: 'cps'

@jcpvdm jcpvdm marked this pull request as draft June 14, 2024 20:08
@jcpvdm jcpvdm marked this pull request as ready for review June 17, 2024 18:19
@jcpvdm
Copy link
Author

jcpvdm commented Jul 10, 2025

This is functional, but I didn't find an easy solution to make it compatible with Transparent Management. So currently I have added some code to ensure that Transparent Management mode is disabled when dual-cps are deployed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants