Configuring an SR-7s with multiple line cards in Containerlab
🔦 step-by-step, detailed instructions follow the overview
- Review the supported hardware configurations for your vSIM by checking the vSIM installation guide, specifically Appendix A: vSIM supported hardware, for your SROS release. (I am using 22.10 for this demonstration)
- You will need to take note of the SFM, Card, MDA and XIOM (if using one)
- Check for the memory requirement for the card(s) you have chosen by referring to Table 2: VM memory requirements by card type
- Build the containerlab topology file using the collected info. related containerlab documentation
While there are a large number of supported hardware configurations for vSIM, not all configurations are supported and it is important to check the vSIM installation guide for your SROS release to confirm your configuration is supported.
The documentation also includes the correct naming structure for the various cards, which is helpful when we build the topology file for containerlab
The following table is from the 22.10 vSIM installation guide
7750 SR-7s | |||
SFM |
Card |
XIOM |
MDA |
sfm-s |
cpm-s cpm2-s |
n/a |
n/a |
xcm-7s |
n/a |
s18-100gb-qsfp28 | |
s36-100gb-qsfp28 | |||
s36-400gb-qsfpdd | |||
s36-100gb-qsfp28-3.6t | |||
iom-s-1.5t iom-s-3.0t |
ms2-400gb-qsfpdd+2-100gb-qsfp28 | ||
ms3-200gb-cfp2-dco | |||
ms4-400gb-qsfpdd+4-100gb-qsfp28 | |||
ms6-300gb-cfp2-dco | |||
ms8-100gb-sfpdd+2-100gb-qsfp28 | |||
ms16-100gb-sfpdd+4-100gb-qsfp28 | |||
ms18-100gb-qsfp28 | |||
ms24-10/100gb-sfpdd | |||
ms16-sdd+4-qsfp28-b | |||
ms8-sdd+2-qsfp28-b | |||
sfm2-s |
cpm2-s |
n/a |
n/a |
xcm-2-7s |
n/a |
x2-s36-800g-qsfpdd-18.0txcm-2-7s | |
x2-s36-800g-qsfpdd-12.0t | |||
xcm-7s-b |
n/a |
s18-100gb-qsfp28 | |
s36-100gb-qsfp28 | |||
s36-400gb-qsfpdd | |||
s36-100gb-qsfp28-3.6t | |||
iom-s-1.5t iom-s-3.0t |
ms2-400gb-qsfpdd+2-100gb-qsfp28 | ||
ms3-200gb-cfp2-dco | |||
ms4-400gb-qsfpdd+4-100gb-qsfp28 | |||
ms6-300gb-cfp2-dco | |||
ms8-100gb-sfpdd+2-100gb-qsfp28 | |||
ms16-100gb-sfpdd+4-100gb-qsfp28 | |||
ms18-100gb-qsfp28 | |||
ms24-10/100gb-sfpdd | |||
ms16-sdd+4-qsfp28-b | |||
ms8-sdd+2-qsfp28-b |
Using the table for reference, choose your supported hardware and note that the name in the table is the exact name to be used in the topology file.
Check for the memory requirement for the card(s) you have chosen by referring to Table 2: VM memory requirements by card type
In the containerlab topology file, there are several important caveats to keep in mind as we are defining the distributed chassis with multiple line cards.
🔦 Note that each line card is a separate VM, so be sure to consider the additional resource load that will be placed on the host node.
In the topology file, we will be specifying the TIMOS line from vSIM parlance.
topology:
nodes:
R1:
kind: vr-sros
image: vr-sros:22.10.R1
startup-config: sr-7s-R1.partial.cfg
type: >-
cp: cpu=6 min_ram=6 chassis=sr-7s slot=A card=cpm-s ___
lc: cpu=6 min_ram=6 max_nics=6 chassis=sr-7s slot=1 sfm=sfm-s card=xcm-7s xiom/x1=iom-s-1.5t mda/x1/1=ms24-10/100gb-sfpdd ___
lc: cpu=6 min_ram=6 max_nics=6 chassis=sr-7s slot=2 sfm=sfm-s card=xcm-7s mda/1=s18-100gb-qsfp28 ___
lc: cpu=6 min_ram=6 max_nics=6 chassis=sr-7s slot=3 sfm=sfm-s card=xcm-7s mda/1=s36-400gb-qsfpdd
license: ~/license/license-sros22.txt
- cpu is the number of cores to provide this particular "line card" (each line card is a separate VM)
- min_ram is the memory requirement for the line card (from Table 2: VM memory requirements by card type)
- max_nics defines the number of ports that are available on the line card.
🔦 A vSIM router in containerlab can only have a maximum of 20 interfaces on it, no matter how many ports are available on the line cards.
- SR OS nodes use
ethX
notation for their interfaces, whereX
denotes a port number on a line card. - When multiple line cards are defined, the
max_nics
setting defines the number of ports assigned to that particular line card. Looking at ourslot 1
line card, we have a 24-port MDA, but we are only assigning 6 links to that line card. (in the example code, I have assigned 6 links to each line card) - It is important to plan out the connectivity among the routers ahead of time to be able to assign the appropriate number of
max_nics
to each line card.
🔦 With three line cards and six links assigned to each line card, just remember which slots have which
ethX
assigned to them for thelinks
definition in the topology file.
Slot Num | ethX |
---|---|
1 | eth1-eth6 |
2 | eth7-eth12 |
3 | eth13-eth18 |
🔦 The
ethX
links map to the physical ports of the line card, starting with the first port. Even if you configure breakouts on the ports, only the first port of the breakout will be able to pass traffic. example: eth1 would map to 1/1/c1 - if you were to configure 1/1/c1 with a c10-10g (10x10g) breakout, only the first port on the breakout would have a link - eth2 would map to 1/1/c2
Here is an example of the links defined in our topology file - we have two links on each card:
links:
- endpoints: ["R1:eth1", "R2:eth1"]
- endpoints: ["R1:eth2", "R2:eth2"]
- endpoints: ["R1:eth7", "R2:eth7"]
- endpoints: ["R1:eth8", "R2:eth8"]
- endpoints: ["R1:eth13", "R2:eth13"]
- endpoints: ["R1:eth14", "R2:eth14"]