diff --git a/.gitignore b/.gitignore
index b69978c..f24d6d7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,4 @@
venv/*
__pycache__
test/*
-launch.json
-lab-examples/**
\ No newline at end of file
+launch.json
\ No newline at end of file
diff --git a/lab-examples/.gitignore b/lab-examples/.gitignore
deleted file mode 100644
index c40091c..0000000
--- a/lab-examples/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-clab-*
\ No newline at end of file
diff --git a/lab-examples/anysec.clab.drawio b/lab-examples/anysec.clab.drawio
new file mode 100644
index 0000000..893528e
--- /dev/null
+++ b/lab-examples/anysec.clab.drawio
@@ -0,0 +1,233 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lab-examples/anysec.clab.mod.drawio b/lab-examples/anysec.clab.mod.drawio
new file mode 100644
index 0000000..9764045
--- /dev/null
+++ b/lab-examples/anysec.clab.mod.drawio
@@ -0,0 +1,233 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lab-examples/anysec.clab.mod.yml b/lab-examples/anysec.clab.mod.yml
new file mode 100644
index 0000000..4cd7dde
--- /dev/null
+++ b/lab-examples/anysec.clab.mod.yml
@@ -0,0 +1,158 @@
+name: anysec-macsec
+prefix: ''
+mgmt:
+ network: anysec
+ ipv4-subnet: 172.50.50.0/24
+topology:
+ kinds:
+ nokia_sros:
+ type: sr-1x-48d
+ image: registry.srlinux.dev/pub/vr-sros:24.3.R2-1
+ license: ${SROS_LIC_PATH:-/opt/nokia/sros/r24_license.key}
+ linux:
+ image: ghcr.io/srl-labs/network-multitool
+ env:
+ http_proxy: ${http_proxy}
+ https_proxy: ${https_proxy}
+ no_proxy: pe1,pe2,p3,p4,ce5,ce6,client7,client8,gnmic,prometheus,grafana,localhost,172.50.50.0/24
+ nodes:
+ pe1:
+ kind: nokia_sros
+ mgmt-ipv4: 172.50.50.11
+ startup-config: configs/core/pe1.partial.cfg
+ labels:
+ graph-level: 3
+ graph-icon: router
+ pe2:
+ kind: nokia_sros
+ mgmt-ipv4: 172.50.50.12
+ startup-config: configs/core/pe2.partial.cfg
+ labels:
+ graph-level: 5
+ graph-icon: router
+ p3:
+ kind: nokia_sros
+ mgmt-ipv4: 172.50.50.13
+ type: SR-1
+ startup-config: configs/core/p3.partial.cfg
+ labels:
+ graph-level: 4
+ graph-icon: router
+ p4:
+ kind: nokia_sros
+ mgmt-ipv4: 172.50.50.14
+ type: SR-1
+ startup-config: configs/core/p4.partial.cfg
+ labels:
+ graph-level: 4
+ graph-icon: router
+ ce5:
+ kind: nokia_sros
+ mgmt-ipv4: 172.50.50.51
+ startup-config: configs/core/ce5.partial.cfg
+ labels:
+ graph-level: 2
+ graph-icon: router
+ ce6:
+ kind: nokia_sros
+ mgmt-ipv4: 172.50.50.52
+ startup-config: configs/core/ce6.partial.cfg
+ labels:
+ graph-level: 6
+ graph-icon: router
+ client7:
+ kind: linux
+ mgmt-ipv4: 172.50.50.31
+ binds:
+ - configs/clients/client7/setup-client7.sh:/config/setup-client7.sh
+ exec:
+ - bash /config/setup-client7.sh
+ group: server
+ labels:
+ graph-level: 1
+ graph-icon: host
+ client8:
+ kind: linux
+ mgmt-ipv4: 172.50.50.32
+ binds:
+ - configs/clients/client8/setup-client8.sh:/config/setup-client8.sh
+ exec:
+ - bash /config/setup-client8.sh
+ group: server
+ labels:
+ graph-level: 7
+ graph-icon: host
+ gnmic:
+ kind: linux
+ mgmt-ipv4: 172.50.50.21
+ image: ghcr.io/openconfig/gnmic:0.38.1
+ binds:
+ - configs/gnmic/gnmic-config.yml:/gnmic-config.yml:ro
+ cmd: --config /gnmic-config.yml --log subscribe
+ group: '10'
+ prometheus:
+ kind: linux
+ mgmt-ipv4: 172.50.50.22
+ image: prom/prometheus:v2.51.2
+ binds:
+ - configs/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
+ cmd: --config.file=/etc/prometheus/prometheus.yml
+ ports:
+ - 9090:9090
+ group: '10'
+ grafana:
+ kind: linux
+ mgmt-ipv4: 172.50.50.23
+ image: grafana/grafana:10.3.5
+ binds:
+ - configs/grafana/datasource.yml:/etc/grafana/provisioning/datasources/datasource.yaml:ro
+ - configs/grafana/dashboards.yml:/etc/grafana/provisioning/dashboards/dashboards.yaml:ro
+ - configs/grafana/dashboards:/var/lib/grafana/dashboards
+ ports:
+ - 3000:3000
+ env:
+ HTTPS_PROXY: ${http_proxy}
+ GF_INSTALL_PLUGINS: https://algenty.github.io/flowcharting-repository/archives/agenty-flowcharting-panel-1.0.0d.220606199-SNAPSHOT.zip;agenty-flowcharting-panel,https://github.com/cloudspout/cloudspout-button-panel/releases/download/7.0.23/cloudspout-button-panel.zip;cloudspout-button-panel
+ GF_ORG_ROLE: Editor
+ GF_ORG_NAME: Main Org.
+ GF_AUTH_ANONYMOUS_ENABLED: 'true'
+ GF_AUTH_ANONYMOUS: 'true'
+ GF_SECURITY_ALLOW_EMBEDDING: 'true'
+ GF_DASHBOARDS_MIN_REFRESH_INTERVAL: 2s
+ group: '10'
+ panel:
+ kind: linux
+ mgmt-ipv4: 172.50.50.33
+ image: ghcr.io/srl-labs/sros-anysec-macsec-lab/panel
+ image-pull-policy: always
+ ports: ['54173:4173', '55173:5173']
+ binds:
+ - /etc/hosts:/etc/hosts:ro
+ stages:
+ create:
+ wait-for:
+ - node: pe1
+ stage: healthy
+ - node: pe2
+ stage: healthy
+ - node: p3
+ stage: healthy
+ - node: p4
+ stage: healthy
+ links:
+ - endpoints: ['ce5:eth7', 'pe1:eth3']
+ - endpoints: ['ce6:eth7', 'pe2:eth3']
+ - endpoints: ['pe1:eth1', 'p3:eth2']
+ - endpoints: ['pe1:eth2', 'p4:eth2']
+ - endpoints: ['pe2:eth1', 'p3:eth3']
+ - endpoints: ['pe2:eth2', 'p4:eth3']
+ - endpoints: ['p3:eth1', 'p4:eth1']
+ - endpoints: ['client7:eth1', 'ce5:eth1']
+ - endpoints: ['client7:eth2', 'ce5:eth2']
+ - endpoints: ['client7:eth3', 'ce5:eth3']
+ - endpoints: ['client8:eth1', 'ce6:eth1']
+ - endpoints: ['client8:eth2', 'ce6:eth2']
+ - endpoints: ['client8:eth3', 'ce6:eth3']
+ - endpoints: ['pe1:eth6', 'ce6:eth6']
+ - endpoints: ['pe2:eth5', 'ce6:eth5']
+ - endpoints: ['ce6:eth10', 'ce6:eth11']
diff --git a/lab-examples/anysec.clab.yml b/lab-examples/anysec.clab.yml
new file mode 100644
index 0000000..f0c55c7
--- /dev/null
+++ b/lab-examples/anysec.clab.yml
@@ -0,0 +1,168 @@
+name: anysec-macsec
+prefix: ""
+mgmt:
+ network: anysec
+ ipv4-subnet: 172.50.50.0/24
+
+topology:
+ kinds:
+ nokia_sros:
+ type: sr-1x-48d
+ image: registry.srlinux.dev/pub/vr-sros:24.3.R2-1
+ license: ${SROS_LIC_PATH:-/opt/nokia/sros/r24_license.key}
+ linux:
+ image: ghcr.io/srl-labs/network-multitool
+ env:
+ http_proxy: ${http_proxy}
+ https_proxy: ${https_proxy}
+ no_proxy: pe1,pe2,p3,p4,ce5,ce6,client7,client8,gnmic,prometheus,grafana,localhost,172.50.50.0/24
+
+ nodes:
+ ### CORE FP5 and FP4###
+ # FP5
+ pe1:
+ kind: nokia_sros
+ mgmt-ipv4: 172.50.50.11
+ startup-config: configs/core/pe1.partial.cfg
+
+ # FP5
+ pe2:
+ kind: nokia_sros
+ mgmt-ipv4: 172.50.50.12
+ startup-config: configs/core/pe2.partial.cfg
+
+ # FP4
+ p3:
+ kind: nokia_sros
+ mgmt-ipv4: 172.50.50.13
+ type: SR-1
+ startup-config: configs/core/p3.partial.cfg
+
+ # FP4
+ p4:
+ kind: nokia_sros
+ mgmt-ipv4: 172.50.50.14
+ type: SR-1
+ startup-config: configs/core/p4.partial.cfg
+
+ ### CEs ###
+ # FP5
+ ce5:
+ kind: nokia_sros
+ mgmt-ipv4: 172.50.50.51
+ startup-config: configs/core/ce5.partial.cfg
+
+ # FP5
+ ce6:
+ kind: nokia_sros
+ mgmt-ipv4: 172.50.50.52
+ startup-config: configs/core/ce6.partial.cfg
+
+ ### CLIENTS & Automation Stack ###
+ client7:
+ kind: linux
+ mgmt-ipv4: 172.50.50.31
+ binds:
+ - configs/clients/client7/setup-client7.sh:/config/setup-client7.sh
+ exec:
+ - bash /config/setup-client7.sh
+ group: server
+
+ client8:
+ kind: linux
+ mgmt-ipv4: 172.50.50.32
+ binds:
+ - configs/clients/client8/setup-client8.sh:/config/setup-client8.sh
+ exec:
+ - bash /config/setup-client8.sh
+ group: server
+
+ ### TELEMETRY STACK ###
+ gnmic:
+ kind: linux
+ mgmt-ipv4: 172.50.50.21
+ image: ghcr.io/openconfig/gnmic:0.38.1
+ binds:
+ - configs/gnmic/gnmic-config.yml:/gnmic-config.yml:ro
+ cmd: --config /gnmic-config.yml --log subscribe
+ group: "10" # group 10 is assigned to the nodes of a telemetry stack
+
+ prometheus:
+ kind: linux
+ mgmt-ipv4: 172.50.50.22
+ image: prom/prometheus:v2.51.2
+ binds:
+ - configs/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
+ cmd: --config.file=/etc/prometheus/prometheus.yml
+ ports:
+ - 9090:9090
+ group: "10"
+
+ grafana:
+ kind: linux
+ mgmt-ipv4: 172.50.50.23
+ image: grafana/grafana:10.3.5
+ binds:
+ - configs/grafana/datasource.yml:/etc/grafana/provisioning/datasources/datasource.yaml:ro
+ - configs/grafana/dashboards.yml:/etc/grafana/provisioning/dashboards/dashboards.yaml:ro
+ - configs/grafana/dashboards:/var/lib/grafana/dashboards
+ ports:
+ - 3000:3000
+ env:
+ HTTPS_PROXY: ${http_proxy}
+ GF_INSTALL_PLUGINS: https://algenty.github.io/flowcharting-repository/archives/agenty-flowcharting-panel-1.0.0d.220606199-SNAPSHOT.zip;agenty-flowcharting-panel,https://github.com/cloudspout/cloudspout-button-panel/releases/download/7.0.23/cloudspout-button-panel.zip;cloudspout-button-panel
+ GF_ORG_ROLE: "Editor"
+ GF_ORG_NAME: "Main Org."
+ GF_AUTH_ANONYMOUS_ENABLED: "true"
+ GF_AUTH_ANONYMOUS: "true"
+ GF_SECURITY_ALLOW_EMBEDDING: "true"
+ GF_DASHBOARDS_MIN_REFRESH_INTERVAL: 2s
+ group: "10"
+
+ ### AUTOMATION PANEL ###
+ panel:
+ kind: linux
+ mgmt-ipv4: 172.50.50.33
+ image: ghcr.io/srl-labs/sros-anysec-macsec-lab/panel
+ image-pull-policy: always
+ ports:
+ - 54173:4173 # prod port
+ - 55173:5173 # dev port
+ binds:
+ # to allow the frontend to resolve the public hostname
+ # of the hosting server (e.g. tailscale machine name)
+ - /etc/hosts:/etc/hosts:ro
+ stages:
+ # automation panel subscribes to the pe1, pe2, p3, p4 nodes,
+ # thus we want to start the panel node after the above nodes are healthy
+ create:
+ wait-for:
+ - node: pe1
+ stage: healthy
+ - node: pe2
+ stage: healthy
+ - node: p3
+ stage: healthy
+ - node: p4
+ stage: healthy
+
+ links:
+ - endpoints: ["ce5:eth7", "pe1:eth3"]
+ - endpoints: ["ce6:eth7", "pe2:eth3"]
+ - endpoints: ["pe1:eth1", "p3:eth2"]
+ - endpoints: ["pe1:eth2", "p4:eth2"]
+ - endpoints: ["pe2:eth1", "p3:eth3"]
+ - endpoints: ["pe2:eth2", "p4:eth3"]
+ - endpoints: ["p3:eth1", "p4:eth1"]
+ # Client7
+ - endpoints: ["client7:eth1", "ce5:eth1"]
+ - endpoints: ["client7:eth2", "ce5:eth2"]
+ - endpoints: ["client7:eth3", "ce5:eth3"]
+ # Client8
+ - endpoints: ["client8:eth1", "ce6:eth1"]
+ - endpoints: ["client8:eth2", "ce6:eth2"]
+ - endpoints: ["client8:eth3", "ce6:eth3"]
+ # Mirror - For Advanced TShoot, disabled by default
+ - endpoints: ["pe1:eth6", "ce6:eth6"]
+ - endpoints: ["pe2:eth5", "ce6:eth5"]
+ - endpoints: ["ce6:eth10", "ce6:eth11"] ### mirror dest is eth10 to allow single point of capture
\ No newline at end of file
diff --git a/lab-examples/br01.clab.drawio b/lab-examples/br01.clab.drawio
new file mode 100644
index 0000000..cfd50cb
--- /dev/null
+++ b/lab-examples/br01.clab.drawio
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lab-examples/br01/br01.clab.yml b/lab-examples/br01.clab.yml
similarity index 100%
rename from lab-examples/br01/br01.clab.yml
rename to lab-examples/br01.clab.yml
diff --git a/lab-examples/cfg-clos.clab.drawio b/lab-examples/cfg-clos.clab.drawio
new file mode 100644
index 0000000..2c5749e
--- /dev/null
+++ b/lab-examples/cfg-clos.clab.drawio
@@ -0,0 +1,285 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lab-examples/clos01.clab.drawio b/lab-examples/clos01.clab.drawio
new file mode 100644
index 0000000..4c7df7a
--- /dev/null
+++ b/lab-examples/clos01.clab.drawio
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lab-examples/clos01/clos01.clab.yml b/lab-examples/clos01.clab.yml
similarity index 100%
rename from lab-examples/clos01/clos01.clab.yml
rename to lab-examples/clos01.clab.yml
diff --git a/lab-examples/clos02.clab.drawio b/lab-examples/clos02.clab.drawio
new file mode 100644
index 0000000..a41a02f
--- /dev/null
+++ b/lab-examples/clos02.clab.drawio
@@ -0,0 +1,257 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lab-examples/clos02/README.md b/lab-examples/clos02/README.md
deleted file mode 100644
index 4c7aa84..0000000
--- a/lab-examples/clos02/README.md
+++ /dev/null
@@ -1,82 +0,0 @@
-# SRL Containerlab (clos02)
-
-### 5-stage CLOS
-https://containerlab.dev/lab-examples/min-5clos/
-
-### Execution
-```
-$ containerlab deploy --topo setup.clos02.clab.yml
-
-$ chmod +x setup.sh
-$ ./setup.sh
-```
-
-!!!note
- The setup script needs [gnmic](https://gnmic.openconfig.net/)
-
-### Setup Configures
-1. NEs with Management, System and Ethernet IP Addresses.
-2. Clients with eth0 (Management) and eth1 interface.
-3. NEs and Clients with both IPv4 and IPv6 addresses.
-4. NEs with BGP, ISIS & OSPF Network Interface (under default).
-
-### IP Connectivity
-
-| Source | Interface | Towards | IPv4 | IPv4 Prefix | IPv6 | IPv6 Prefix |
-| ----------- | -------------- | ----------- | ---------------- | ----------- | ---------------------- | ----------- |
-| leaf1 | mgmt0.0 | - | `172.100.100.2 ` | 24 | `2001:172:100:100::2 ` | 64 |
-| | system0.0 | - | `30.0.0.1 ` | 32 | `3000:30:0:0::1 ` | 128 |
-| | ethernet-1/1.0 | spine1 | `10.0.0.0 ` | 31 | `1000:10:0:0::0 ` | 127 |
-| | ethernet-1/2.0 | spine2 | `10.0.0.2 ` | 31 | `1000:10:0:0::2 ` | 127 |
-| | ethernet-1/3.0 | client1 | `10.0.0.24 ` | 31 | `1000:10:0:0::24 ` | 127 |
-| leaf2 | mgmt0.0 | - | `172.100.100.3 ` | 24 | `2001:172:100:100::3 ` | 64 |
-| | system0.0 | - | `30.0.0.2 ` | 32 | `3000:30:0:0::2 ` | 128 |
-| | ethernet-1/1.0 | spine1 | `10.0.0.4 ` | 31 | `1000:10:0:0::4 ` | 127 |
-| | ethernet-1/2.0 | spine2 | `10.0.0.6 ` | 31 | `1000:10:0:0::6 ` | 127 |
-| | ethernet-1/3.0 | client2 | `10.0.0.26 ` | 31 | `1000:10:0:0::26 ` | 127 |
-| leaf3 | mgmt0.0 | - | `172.100.100.4 ` | 24 | `2001:172:100:100::4 ` | 64 |
-| | system0.0 | - | `30.0.0.3 ` | 32 | `3000:30:0:0::3 ` | 128 |
-| | ethernet-1/1.0 | spine3 | `10.0.0.12 ` | 31 | `1000:10:0:0::12 ` | 127 |
-| | ethernet-1/2.0 | spine4 | `10.0.0.14 ` | 31 | `1000:10:0:0::14 ` | 127 |
-| | ethernet-1/3.0 | client3 | `10.0.0.28 ` | 31 | `1000:10:0:0::28 ` | 127 |
-| leaf4 | mgmt0.0 | - | `172.100.100.5 ` | 24 | `2001:172:100:100::5 ` | 64 |
-| | system0.0 | - | `30.0.0.4 ` | 32 | `3000:30:0:0::4 ` | 128 |
-| | ethernet-1/1.0 | spine3 | `10.0.0.16 ` | 31 | `1000:10:0:0::16 ` | 127 |
-| | ethernet-1/2.0 | spine4 | `10.0.0.18 ` | 31 | `1000:10:0:0::18 ` | 127 |
-| | ethernet-1/3.0 | client4 | `10.0.0.30 ` | 31 | `1000:10:0:0::30 ` | 127 |
-| spine1 | mgmt0.0 | - | `172.100.100.6 ` | 24 | `2001:172:100:100::6 ` | 64 |
-| | system0.0 | - | `30.0.0.5 ` | 32 | `3000:30:0:0::5 ` | 128 |
-| | ethernet-1/1.0 | leaf1 | `10.0.0.1 ` | 31 | `1000:10:0:0::1 ` | 127 |
-| | ethernet-1/2.0 | leaf2 | `10.0.0.5 ` | 31 | `1000:10:0:0::5 ` | 127 |
-| | ethernet-1/3.0 | superspine1 | `10.0.0.8 ` | 31 | `1000:10:0:0::8 ` | 127 |
-| spine2 | mgmt0.0 | - | `172.100.100.7 ` | 24 | `2001:172:100:100::7 ` | 64 |
-| | system0.0 | - | `30.0.0.6 ` | 32 | `3000:30:0:0::6 ` | 128 |
-| | ethernet-1/1.0 | leaf1 | `10.0.0.3 ` | 31 | `1000:10:0:0::3 ` | 127 |
-| | ethernet-1/2.0 | leaf2 | `10.0.0.7 ` | 31 | `1000:10:0:0::7 ` | 127 |
-| | ethernet-1/3.0 | superspine2 | `10.0.0.10 ` | 31 | `1000:10:0:0::10 ` | 127 |
-| spine3 | mgmt0.0 | - | `172.100.100.8 ` | 24 | `2001:172:100:100::8 ` | 64 |
-| | system0.0 | - | `30.0.0.7 ` | 32 | `3000:30:0:0::7 ` | 128 |
-| | ethernet-1/1.0 | leaf3 | `10.0.0.13 ` | 31 | `1000:10:0:0::13 ` | 127 |
-| | ethernet-1/2.0 | leaf4 | `10.0.0.17 ` | 31 | `1000:10:0:0::17 ` | 127 |
-| | ethernet-1/3.0 | superspine1 | `10.0.0.20 ` | 31 | `1000:10:0:0::20 ` | 127 |
-| spine4 | mgmt0.0 | - | `172.100.100.9 ` | 24 | `2001:172:100:100::9 ` | 64 |
-| | system0.0 | - | `30.0.0.8 ` | 32 | `3000:30:0:0::8 ` | 128 |
-| | ethernet-1/1.0 | leaf3 | `10.0.0.15 ` | 31 | `1000:10:0:0::15 ` | 127 |
-| | ethernet-1/2.0 | leaf4 | `10.0.0.19 ` | 31 | `1000:10:0:0::19 ` | 127 |
-| | ethernet-1/3.0 | superspine2 | `10.0.0.22 ` | 31 | `1000:10:0:0::22 ` | 127 |
-| superspine1 | mgmt0.0 | - | `172.100.100.10` | 24 | `2001:172:100:100::10` | 64 |
-| | system0.0 | - | `30.0.0.9 ` | 32 | `3000:30:0:0::9 ` | 128 |
-| | ethernet-1/1.0 | spine1 | `10.0.0.9 ` | 31 | `1000:10:0:0::9 ` | 127 |
-| | ethernet-1/2.0 | spine3 | `10.0.0.21 ` | 31 | `1000:10:0:0::21 ` | 127 |
-| superspine2 | mgmt0.0 | - | `172.100.100.11` | 24 | `2001:172:100:100::11` | 64 |
-| | system0.0 | - | `30.0.0.10 ` | 32 | `3000:30:0:0::10 ` | 128 |
-| | ethernet-1/1.0 | spine2 | `10.0.0.11 ` | 31 | `1000:10:0:0::11 ` | 127 |
-| | ethernet-1/2.0 | spine4 | `10.0.0.23 ` | 31 | `1000:10:0:0::23 ` | 127 |
-| client1 | eth0 | - | `172.100.100.12` | 24 | `2001:172:100:100::12` | 64 |
-| | eth1 | leaf1 | `10.0.0.25 ` | 31 | `1000:10:0:0::25 ` | 127 |
-| client2 | eth0 | - | `172.100.100.13` | 24 | `2001:172:100:100::13` | 64 |
-| | eth1 | leaf2 | `10.0.0.27 ` | 31 | `1000:10:0:0::27 ` | 127 |
-| client3 | eth0 | - | `172.100.100.14` | 24 | `2001:172:100:100::14` | 64 |
-| | eth1 | leaf3 | `10.0.0.29 ` | 31 | `1000:10:0:0::29 ` | 127 |
-| client4 | eth0 | - | `172.100.100.15` | 24 | `2001:172:100:100::15` | 64 |
-| | eth1 | leaf4 | `10.0.0.31 ` | 31 | `1000:10:0:0::31 ` | 127 |
diff --git a/lab-examples/clos02/clos02.clab.yml b/lab-examples/clos02/clos02.clab.yml
deleted file mode 100644
index 0d0222d..0000000
--- a/lab-examples/clos02/clos02.clab.yml
+++ /dev/null
@@ -1,72 +0,0 @@
-# topology documentation: http://containerlab.dev/lab-examples/min-5clos/
-name: clos02
-
-topology:
- kinds:
- nokia_srlinux:
- image: ghcr.io/nokia/srlinux
- linux:
- image: ghcr.io/hellt/network-multitool
- nodes:
- leaf1:
- kind: nokia_srlinux
- leaf2:
- kind: nokia_srlinux
- leaf3:
- kind: nokia_srlinux
- leaf4:
- kind: nokia_srlinux
-
- spine1:
- kind: nokia_srlinux
- type: ixrd3
- spine2:
- kind: nokia_srlinux
- type: ixrd3
- spine3:
- kind: nokia_srlinux
- type: ixrd3
- spine4:
- kind: nokia_srlinux
- type: ixrd3
-
- superspine1:
- kind: nokia_srlinux
- type: ixrd3
- superspine2:
- kind: nokia_srlinux
- type: ixrd3
-
- client1:
- kind: linux
- client2:
- kind: linux
- client3:
- kind: linux
- client4:
- kind: linux
-
- links:
- # leaf to spine links POD1
- - endpoints: ["leaf1:e1-1", "spine1:e1-1"]
- - endpoints: ["leaf1:e1-2", "spine2:e1-1"]
- - endpoints: ["leaf2:e1-1", "spine1:e1-2"]
- - endpoints: ["leaf2:e1-2", "spine2:e1-2"]
- # spine to superspine links POD1
- - endpoints: ["spine1:e1-3", "superspine1:e1-1"]
- - endpoints: ["spine2:e1-3", "superspine2:e1-1"]
-
- # leaf to spine links POD2
- - endpoints: ["leaf3:e1-1", "spine3:e1-1"]
- - endpoints: ["leaf3:e1-2", "spine4:e1-1"]
- - endpoints: ["leaf4:e1-1", "spine3:e1-2"]
- - endpoints: ["leaf4:e1-2", "spine4:e1-2"]
- # spine to superspine links POD2
- - endpoints: ["spine3:e1-3", "superspine1:e1-2"]
- - endpoints: ["spine4:e1-3", "superspine2:e1-2"]
-
- # client connection links
- - endpoints: ["client1:eth1", "leaf1:e1-3"]
- - endpoints: ["client2:eth1", "leaf2:e1-3"]
- - endpoints: ["client3:eth1", "leaf3:e1-3"]
- - endpoints: ["client4:eth1", "leaf4:e1-3"]
diff --git a/lab-examples/clos02/configs/client1.sh b/lab-examples/clos02/configs/client1.sh
deleted file mode 100644
index e8a642f..0000000
--- a/lab-examples/clos02/configs/client1.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-
-cat > /etc/network/interfaces << EOF
-auto eth1
-
-iface eth1 inet static
- address 10.0.0.25
- netmask 255.255.255.254
-
-iface eth1 inet6 static
- address 1000:10:0:0::25
- netmask 127
- pre-up echo 0 > /proc/sys/net/ipv6/conf/eth1/accept_ra
-EOF
-
-ifup eth1
diff --git a/lab-examples/clos02/configs/client2.sh b/lab-examples/clos02/configs/client2.sh
deleted file mode 100644
index 7ed9b66..0000000
--- a/lab-examples/clos02/configs/client2.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-
-cat > /etc/network/interfaces << EOF
-auto eth1
-
-iface eth1 inet static
- address 10.0.0.27
- netmask 255.255.255.254
-
-iface eth1 inet6 static
- address 1000:10:0:0::27
- netmask 127
- pre-up echo 0 > /proc/sys/net/ipv6/conf/eth1/accept_ra
-EOF
-
-ifup eth1
diff --git a/lab-examples/clos02/configs/client3.sh b/lab-examples/clos02/configs/client3.sh
deleted file mode 100644
index 0d227e4..0000000
--- a/lab-examples/clos02/configs/client3.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-
-cat > /etc/network/interfaces << EOF
-auto eth1
-
-iface eth1 inet static
- address 10.0.0.29
- netmask 255.255.255.254
-
-iface eth1 inet6 static
- address 1000:10:0:0::29
- netmask 127
- pre-up echo 0 > /proc/sys/net/ipv6/conf/eth1/accept_ra
-EOF
-
-ifup eth1
diff --git a/lab-examples/clos02/configs/client4.sh b/lab-examples/clos02/configs/client4.sh
deleted file mode 100644
index b40adea..0000000
--- a/lab-examples/clos02/configs/client4.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-
-cat > /etc/network/interfaces << EOF
-auto eth1
-
-iface eth1 inet static
- address 10.0.0.31
- netmask 255.255.255.254
-
-iface eth1 inet6 static
- address 1000:10:0:0::31
- netmask 127
- pre-up echo 0 > /proc/sys/net/ipv6/conf/eth1/accept_ra
-EOF
-
-ifup eth1
diff --git a/lab-examples/clos02/configs/leaf1.yaml b/lab-examples/clos02/configs/leaf1.yaml
deleted file mode 100644
index 7135239..0000000
--- a/lab-examples/clos02/configs/leaf1.yaml
+++ /dev/null
@@ -1,109 +0,0 @@
-srl_nokia-interfaces:interface:
- - name: ethernet-1/1
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.0/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: '1000:10::/127'
- - name: ethernet-1/2
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.2/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: '1000:10::2/127'
- - name: ethernet-1/3
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.24/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: '1000:10::24/127'
- - name: system0
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- address:
- - ip-prefix: 30.0.0.1/32
- ipv6:
- address:
- - ip-prefix: '3000:30::1/128'
-
-srl_nokia-network-instance:network-instance:
- - name: default
- admin-state: enable
- interface:
- - name: ethernet-1/1.0
- - name: ethernet-1/2.0
- - name: ethernet-1/3.0
- - name: system0.0
- protocols:
- srl_nokia-bgp:bgp:
- autonomous-system: 65001
- router-id: 30.0.0.1
- afi-safi:
- - afi-safi-name: ipv4-unicast
- admin-state: enable
- - afi-safi-name: ipv6-unicast
- admin-state: enable
- group:
- - group-name: clos02
- admin-state: enable
- neighbor:
- - peer-address: 10.0.0.1
- peer-as: 65056
- peer-group: clos02
- - peer-address: 10.0.0.3
- peer-as: 65056
- peer-group: clos02
- srl_nokia-isis:isis:
- instance:
- - name: default
- admin-state: enable
- level-capability: L2
- net:
- - 49.0001.3000.0000.0001.00
- interface:
- - interface-name: ethernet-1/1.0
- circuit-type: point-to-point
- - interface-name: ethernet-1/2.0
- circuit-type: point-to-point
- - interface-name: ethernet-1/3.0
- circuit-type: point-to-point
- - interface-name: system0.0
- level:
- - level-number: 2
- metric-style: wide
- srl_nokia-ospf:ospf:
- instance:
- - name: default
- admin-state: enable
- version: ospf-v2
- router-id: 30.0.0.1
- area:
- - area-id: 0.0.0.0
- interface:
- - interface-name: ethernet-1/1.0
- interface-type: point-to-point
- - interface-name: ethernet-1/2.0
- interface-type: point-to-point
- - interface-name: ethernet-1/3.0
- interface-type: point-to-point
- - interface-name: system0.0
diff --git a/lab-examples/clos02/configs/leaf2.yaml b/lab-examples/clos02/configs/leaf2.yaml
deleted file mode 100644
index f5be2ca..0000000
--- a/lab-examples/clos02/configs/leaf2.yaml
+++ /dev/null
@@ -1,109 +0,0 @@
-srl_nokia-interfaces:interface:
- - name: ethernet-1/1
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.4/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::4/127
- - name: ethernet-1/2
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.6/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::6/127
- - name: ethernet-1/3
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.26/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::26/127
- - name: system0
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- address:
- - ip-prefix: 30.0.0.2/32
- ipv6:
- address:
- - ip-prefix: 3000:30::2/128
-
-srl_nokia-network-instance:network-instance:
- - name: default
- admin-state: enable
- interface:
- - name: ethernet-1/1.0
- - name: ethernet-1/2.0
- - name: ethernet-1/3.0
- - name: system0.0
- protocols:
- srl_nokia-bgp:bgp:
- autonomous-system: 65002
- router-id: 30.0.0.2
- afi-safi:
- - afi-safi-name: ipv4-unicast
- admin-state: enable
- - afi-safi-name: ipv6-unicast
- admin-state: enable
- group:
- - group-name: clos02
- admin-state: enable
- neighbor:
- - peer-address: 10.0.0.5
- peer-as: 65056
- peer-group: clos02
- - peer-address: 10.0.0.7
- peer-as: 65056
- peer-group: clos02
- srl_nokia-isis:isis:
- instance:
- - name: default
- admin-state: enable
- level-capability: L2
- net:
- - 49.0001.3000.0000.0002.00
- interface:
- - interface-name: ethernet-1/1.0
- circuit-type: point-to-point
- - interface-name: ethernet-1/2.0
- circuit-type: point-to-point
- - interface-name: ethernet-1/3.0
- circuit-type: point-to-point
- - interface-name: system0.0
- level:
- - level-number: 2
- metric-style: wide
- srl_nokia-ospf:ospf:
- instance:
- - name: default
- admin-state: enable
- version: ospf-v2
- router-id: 30.0.0.2
- area:
- - area-id: 0.0.0.0
- interface:
- - interface-name: ethernet-1/1.0
- interface-type: point-to-point
- - interface-name: ethernet-1/2.0
- interface-type: point-to-point
- - interface-name: ethernet-1/3.0
- interface-type: point-to-point
- - interface-name: system0.0
diff --git a/lab-examples/clos02/configs/leaf3.yaml b/lab-examples/clos02/configs/leaf3.yaml
deleted file mode 100644
index d8a1678..0000000
--- a/lab-examples/clos02/configs/leaf3.yaml
+++ /dev/null
@@ -1,109 +0,0 @@
-srl_nokia-interfaces:interface:
- - name: ethernet-1/1
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.12/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::12/127
- - name: ethernet-1/2
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.14/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::14/127
- - name: ethernet-1/3
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.28/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::28/127
- - name: system0
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- address:
- - ip-prefix: 30.0.0.3/32
- ipv6:
- address:
- - ip-prefix: 3000:30::3/128
-
-srl_nokia-network-instance:network-instance:
- - name: default
- admin-state: enable
- interface:
- - name: ethernet-1/1.0
- - name: ethernet-1/2.0
- - name: ethernet-1/3.0
- - name: system0.0
- protocols:
- srl_nokia-bgp:bgp:
- autonomous-system: 65003
- router-id: 30.0.0.3
- afi-safi:
- - afi-safi-name: ipv4-unicast
- admin-state: enable
- - afi-safi-name: ipv6-unicast
- admin-state: enable
- group:
- - group-name: clos02
- admin-state: enable
- neighbor:
- - peer-address: 10.0.0.13
- peer-as: 65078
- peer-group: clos02
- - peer-address: 10.0.0.15
- peer-as: 65078
- peer-group: clos02
- srl_nokia-isis:isis:
- instance:
- - name: default
- admin-state: enable
- level-capability: L2
- net:
- - 49.0001.3000.0000.0003.00
- interface:
- - interface-name: ethernet-1/1.0
- circuit-type: point-to-point
- - interface-name: ethernet-1/2.0
- circuit-type: point-to-point
- - interface-name: ethernet-1/3.0
- circuit-type: point-to-point
- - interface-name: system0.0
- level:
- - level-number: 2
- metric-style: wide
- srl_nokia-ospf:ospf:
- instance:
- - name: default
- admin-state: enable
- version: ospf-v2
- router-id: 30.0.0.3
- area:
- - area-id: 0.0.0.0
- interface:
- - interface-name: ethernet-1/1.0
- interface-type: point-to-point
- - interface-name: ethernet-1/2.0
- interface-type: point-to-point
- - interface-name: ethernet-1/3.0
- interface-type: point-to-point
- - interface-name: system0.0
diff --git a/lab-examples/clos02/configs/leaf4.yaml b/lab-examples/clos02/configs/leaf4.yaml
deleted file mode 100644
index 8144964..0000000
--- a/lab-examples/clos02/configs/leaf4.yaml
+++ /dev/null
@@ -1,109 +0,0 @@
-srl_nokia-interfaces:interface:
- - name: ethernet-1/1
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.16/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::16/127
- - name: ethernet-1/2
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.18/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::18/127
- - name: ethernet-1/3
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.30/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::30/127
- - name: system0
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- address:
- - ip-prefix: 30.0.0.4/32
- ipv6:
- address:
- - ip-prefix: 3000:30::4/128
-
-srl_nokia-network-instance:network-instance:
- - name: default
- admin-state: enable
- interface:
- - name: ethernet-1/1.0
- - name: ethernet-1/2.0
- - name: ethernet-1/3.0
- - name: system0.0
- protocols:
- srl_nokia-bgp:bgp:
- autonomous-system: 65004
- router-id: 30.0.0.4
- afi-safi:
- - afi-safi-name: ipv4-unicast
- admin-state: enable
- - afi-safi-name: ipv6-unicast
- admin-state: enable
- group:
- - group-name: clos02
- admin-state: enable
- neighbor:
- - peer-address: 10.0.0.17
- peer-as: 65078
- peer-group: clos02
- - peer-address: 10.0.0.19
- peer-as: 65078
- peer-group: clos02
- srl_nokia-isis:isis:
- instance:
- - name: default
- admin-state: enable
- level-capability: L2
- net:
- - 49.0001.3000.0000.0004.00
- interface:
- - interface-name: ethernet-1/1.0
- circuit-type: point-to-point
- - interface-name: ethernet-1/2.0
- circuit-type: point-to-point
- - interface-name: ethernet-1/3.0
- circuit-type: point-to-point
- - interface-name: system0.0
- level:
- - level-number: 2
- metric-style: wide
- srl_nokia-ospf:ospf:
- instance:
- - name: default
- admin-state: enable
- version: ospf-v2
- router-id: 30.0.0.4
- area:
- - area-id: 0.0.0.0
- interface:
- - interface-name: ethernet-1/1.0
- interface-type: point-to-point
- - interface-name: ethernet-1/2.0
- interface-type: point-to-point
- - interface-name: ethernet-1/3.0
- interface-type: point-to-point
- - interface-name: system0.0
diff --git a/lab-examples/clos02/configs/spine1.yaml b/lab-examples/clos02/configs/spine1.yaml
deleted file mode 100644
index 99e2259..0000000
--- a/lab-examples/clos02/configs/spine1.yaml
+++ /dev/null
@@ -1,112 +0,0 @@
-srl_nokia-interfaces:interface:
- - name: ethernet-1/1
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.1/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::1/127
- - name: ethernet-1/2
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.5/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::5/127
- - name: ethernet-1/3
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.8/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::8/127
- - name: system0
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- address:
- - ip-prefix: 30.0.0.5/32
- ipv6:
- address:
- - ip-prefix: 3000:30::5/128
-
-srl_nokia-network-instance:network-instance:
- - name: default
- admin-state: enable
- interface:
- - name: ethernet-1/1.0
- - name: ethernet-1/2.0
- - name: ethernet-1/3.0
- - name: system0.0
- protocols:
- srl_nokia-bgp:bgp:
- autonomous-system: 65056
- router-id: 30.0.0.5
- afi-safi:
- - afi-safi-name: ipv4-unicast
- admin-state: enable
- - afi-safi-name: ipv6-unicast
- admin-state: enable
- group:
- - group-name: clos02
- admin-state: enable
- neighbor:
- - peer-address: 10.0.0.0
- peer-as: 65001
- peer-group: clos02
- - peer-address: 10.0.0.4
- peer-as: 65002
- peer-group: clos02
- - peer-address: 10.0.0.9
- peer-as: 65910
- peer-group: clos02
- srl_nokia-isis:isis:
- instance:
- - name: default
- admin-state: enable
- level-capability: L2
- net:
- - 49.0001.3000.0000.0005.00
- interface:
- - interface-name: ethernet-1/1.0
- circuit-type: point-to-point
- - interface-name: ethernet-1/2.0
- circuit-type: point-to-point
- - interface-name: ethernet-1/3.0
- circuit-type: point-to-point
- - interface-name: system0.0
- level:
- - level-number: 2
- metric-style: wide
- srl_nokia-ospf:ospf:
- instance:
- - name: default
- admin-state: enable
- version: ospf-v2
- router-id: 30.0.0.5
- area:
- - area-id: 0.0.0.0
- interface:
- - interface-name: ethernet-1/1.0
- interface-type: point-to-point
- - interface-name: ethernet-1/2.0
- interface-type: point-to-point
- - interface-name: ethernet-1/3.0
- interface-type: point-to-point
- - interface-name: system0.0
diff --git a/lab-examples/clos02/configs/spine2.yaml b/lab-examples/clos02/configs/spine2.yaml
deleted file mode 100644
index d05fe5b..0000000
--- a/lab-examples/clos02/configs/spine2.yaml
+++ /dev/null
@@ -1,112 +0,0 @@
-srl_nokia-interfaces:interface:
- - name: ethernet-1/1
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.3/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::3/127
- - name: ethernet-1/2
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.7/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::7/127
- - name: ethernet-1/3
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.10/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::10/127
- - name: system0
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- address:
- - ip-prefix: 30.0.0.6/32
- ipv6:
- address:
- - ip-prefix: 3000:30::6/128
-
-srl_nokia-network-instance:network-instance:
- - name: default
- admin-state: enable
- interface:
- - name: ethernet-1/1.0
- - name: ethernet-1/2.0
- - name: ethernet-1/3.0
- - name: system0.0
- protocols:
- srl_nokia-bgp:bgp:
- autonomous-system: 65056
- router-id: 30.0.0.6
- afi-safi:
- - afi-safi-name: ipv4-unicast
- admin-state: enable
- - afi-safi-name: ipv6-unicast
- admin-state: enable
- group:
- - group-name: clos02
- admin-state: enable
- neighbor:
- - peer-address: 10.0.0.2
- peer-as: 65001
- peer-group: clos02
- - peer-address: 10.0.0.6
- peer-as: 65002
- peer-group: clos02
- - peer-address: 10.0.0.11
- peer-as: 65910
- peer-group: clos02
- srl_nokia-isis:isis:
- instance:
- - name: default
- admin-state: enable
- level-capability: L2
- net:
- - 49.0001.3000.0000.0006.00
- interface:
- - interface-name: ethernet-1/1.0
- circuit-type: point-to-point
- - interface-name: ethernet-1/2.0
- circuit-type: point-to-point
- - interface-name: ethernet-1/3.0
- circuit-type: point-to-point
- - interface-name: system0.0
- level:
- - level-number: 2
- metric-style: wide
- srl_nokia-ospf:ospf:
- instance:
- - name: default
- admin-state: enable
- version: ospf-v2
- router-id: 30.0.0.6
- area:
- - area-id: 0.0.0.0
- interface:
- - interface-name: ethernet-1/1.0
- interface-type: point-to-point
- - interface-name: ethernet-1/2.0
- interface-type: point-to-point
- - interface-name: ethernet-1/3.0
- interface-type: point-to-point
- - interface-name: system0.0
diff --git a/lab-examples/clos02/configs/spine3.yaml b/lab-examples/clos02/configs/spine3.yaml
deleted file mode 100644
index e8b5e81..0000000
--- a/lab-examples/clos02/configs/spine3.yaml
+++ /dev/null
@@ -1,112 +0,0 @@
-srl_nokia-interfaces:interface:
- - name: ethernet-1/1
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.13/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::13/127
- - name: ethernet-1/2
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.17/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::17/127
- - name: ethernet-1/3
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.20/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::20/127
- - name: system0
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- address:
- - ip-prefix: 30.0.0.7/32
- ipv6:
- address:
- - ip-prefix: 3000:30::7/128
-
-srl_nokia-network-instance:network-instance:
- - name: default
- admin-state: enable
- interface:
- - name: ethernet-1/1.0
- - name: ethernet-1/2.0
- - name: ethernet-1/3.0
- - name: system0.0
- protocols:
- srl_nokia-bgp:bgp:
- autonomous-system: 65078
- router-id: 30.0.0.7
- afi-safi:
- - afi-safi-name: ipv4-unicast
- admin-state: enable
- - afi-safi-name: ipv6-unicast
- admin-state: enable
- group:
- - group-name: clos02
- admin-state: enable
- neighbor:
- - peer-address: 10.0.0.12
- peer-as: 65003
- peer-group: clos02
- - peer-address: 10.0.0.16
- peer-as: 65004
- peer-group: clos02
- - peer-address: 10.0.0.21
- peer-as: 65910
- peer-group: clos02
- srl_nokia-isis:isis:
- instance:
- - name: default
- admin-state: enable
- level-capability: L2
- net:
- - 49.0001.3000.0000.0007.00
- interface:
- - interface-name: ethernet-1/1.0
- circuit-type: point-to-point
- - interface-name: ethernet-1/2.0
- circuit-type: point-to-point
- - interface-name: ethernet-1/3.0
- circuit-type: point-to-point
- - interface-name: system0.0
- level:
- - level-number: 2
- metric-style: wide
- srl_nokia-ospf:ospf:
- instance:
- - name: default
- admin-state: enable
- version: ospf-v2
- router-id: 30.0.0.7
- area:
- - area-id: 0.0.0.0
- interface:
- - interface-name: ethernet-1/1.0
- interface-type: point-to-point
- - interface-name: ethernet-1/2.0
- interface-type: point-to-point
- - interface-name: ethernet-1/3.0
- interface-type: point-to-point
- - interface-name: system0.0
diff --git a/lab-examples/clos02/configs/spine4.yaml b/lab-examples/clos02/configs/spine4.yaml
deleted file mode 100644
index 5faee95..0000000
--- a/lab-examples/clos02/configs/spine4.yaml
+++ /dev/null
@@ -1,112 +0,0 @@
-srl_nokia-interfaces:interface:
- - name: ethernet-1/1
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.15/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::15/127
- - name: ethernet-1/2
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.19/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::19/127
- - name: ethernet-1/3
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.22/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::22/127
- - name: system0
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- address:
- - ip-prefix: 30.0.0.8/32
- ipv6:
- address:
- - ip-prefix: 3000:30::8/128
-
-srl_nokia-network-instance:network-instance:
- - name: default
- admin-state: enable
- interface:
- - name: ethernet-1/1.0
- - name: ethernet-1/2.0
- - name: ethernet-1/3.0
- - name: system0.0
- protocols:
- srl_nokia-bgp:bgp:
- autonomous-system: 65078
- router-id: 30.0.0.8
- afi-safi:
- - afi-safi-name: ipv4-unicast
- admin-state: enable
- - afi-safi-name: ipv6-unicast
- admin-state: enable
- group:
- - group-name: clos02
- admin-state: enable
- neighbor:
- - peer-address: 10.0.0.14
- peer-as: 65003
- peer-group: clos02
- - peer-address: 10.0.0.18
- peer-as: 65004
- peer-group: clos02
- - peer-address: 10.0.0.23
- peer-as: 65910
- peer-group: clos02
- srl_nokia-isis:isis:
- instance:
- - name: default
- admin-state: enable
- level-capability: L2
- net:
- - 49.0001.3000.0000.0008.00
- interface:
- - interface-name: ethernet-1/1.0
- circuit-type: point-to-point
- - interface-name: ethernet-1/2.0
- circuit-type: point-to-point
- - interface-name: ethernet-1/3.0
- circuit-type: point-to-point
- - interface-name: system0.0
- level:
- - level-number: 2
- metric-style: wide
- srl_nokia-ospf:ospf:
- instance:
- - name: default
- admin-state: enable
- version: ospf-v2
- router-id: 30.0.0.8
- area:
- - area-id: 0.0.0.0
- interface:
- - interface-name: ethernet-1/1.0
- interface-type: point-to-point
- - interface-name: ethernet-1/2.0
- interface-type: point-to-point
- - interface-name: ethernet-1/3.0
- interface-type: point-to-point
- - interface-name: system0.0
diff --git a/lab-examples/clos02/configs/superspine1.yaml b/lab-examples/clos02/configs/superspine1.yaml
deleted file mode 100644
index 482365d..0000000
--- a/lab-examples/clos02/configs/superspine1.yaml
+++ /dev/null
@@ -1,92 +0,0 @@
-srl_nokia-interfaces:interface:
- - name: ethernet-1/1
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.9/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::9/127
- - name: ethernet-1/2
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.21/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::21/127
- - name: system0
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- address:
- - ip-prefix: 30.0.0.9/32
- ipv6:
- address:
- - ip-prefix: 3000:30::9/128
-
-srl_nokia-network-instance:network-instance:
- - name: default
- admin-state: enable
- interface:
- - name: ethernet-1/1.0
- - name: ethernet-1/2.0
- - name: system0.0
- protocols:
- srl_nokia-bgp:bgp:
- autonomous-system: 65910
- router-id: 30.0.0.9
- afi-safi:
- - afi-safi-name: ipv4-unicast
- admin-state: enable
- - afi-safi-name: ipv6-unicast
- admin-state: enable
- group:
- - group-name: clos02
- admin-state: enable
- neighbor:
- - peer-address: 10.0.0.8
- peer-as: 65056
- peer-group: clos02
- - peer-address: 10.0.0.20
- peer-as: 65078
- peer-group: clos02
- srl_nokia-isis:isis:
- instance:
- - name: default
- admin-state: enable
- level-capability: L2
- net:
- - 49.0001.3000.0000.0009.00
- interface:
- - interface-name: ethernet-1/1.0
- circuit-type: point-to-point
- - interface-name: ethernet-1/2.0
- circuit-type: point-to-point
- - interface-name: system0.0
- level:
- - level-number: 2
- metric-style: wide
- srl_nokia-ospf:ospf:
- instance:
- - name: default
- admin-state: enable
- version: ospf-v2
- router-id: 30.0.0.9
- area:
- - area-id: 0.0.0.0
- interface:
- - interface-name: ethernet-1/1.0
- interface-type: point-to-point
- - interface-name: ethernet-1/2.0
- interface-type: point-to-point
- - interface-name: system0.0
diff --git a/lab-examples/clos02/configs/superspine2.yaml b/lab-examples/clos02/configs/superspine2.yaml
deleted file mode 100644
index 94a7f68..0000000
--- a/lab-examples/clos02/configs/superspine2.yaml
+++ /dev/null
@@ -1,92 +0,0 @@
-srl_nokia-interfaces:interface:
- - name: ethernet-1/1
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.11/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::11/127
- - name: ethernet-1/2
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- admin-state: enable
- address:
- - ip-prefix: 10.0.0.23/31
- ipv6:
- admin-state: enable
- address:
- - ip-prefix: 1000:10::23/127
- - name: system0
- admin-state: enable
- subinterface:
- - index: 0
- ipv4:
- address:
- - ip-prefix: 30.0.0.10/32
- ipv6:
- address:
- - ip-prefix: 3000:30::10/128
-
-srl_nokia-network-instance:network-instance:
- - name: default
- admin-state: enable
- interface:
- - name: ethernet-1/1.0
- - name: ethernet-1/2.0
- - name: system0.0
- protocols:
- srl_nokia-bgp:bgp:
- autonomous-system: 65910
- router-id: 30.0.0.10
- afi-safi:
- - afi-safi-name: ipv4-unicast
- admin-state: enable
- - afi-safi-name: ipv6-unicast
- admin-state: enable
- group:
- - group-name: clos02
- admin-state: enable
- neighbor:
- - peer-address: 10.0.0.10
- peer-as: 65056
- peer-group: clos02
- - peer-address: 10.0.0.22
- peer-as: 65078
- peer-group: clos02
- srl_nokia-isis:isis:
- instance:
- - name: default
- admin-state: enable
- level-capability: L2
- net:
- - 49.0001.3000.0000.0010.00
- interface:
- - interface-name: ethernet-1/1.0
- circuit-type: point-to-point
- - interface-name: ethernet-1/2.0
- circuit-type: point-to-point
- - interface-name: system0.0
- level:
- - level-number: 2
- metric-style: wide
- srl_nokia-ospf:ospf:
- instance:
- - name: default
- admin-state: enable
- version: ospf-v2
- router-id: 30.0.0.10
- area:
- - area-id: 0.0.0.0
- interface:
- - interface-name: ethernet-1/1.0
- interface-type: point-to-point
- - interface-name: ethernet-1/2.0
- interface-type: point-to-point
- - interface-name: system0.0
diff --git a/lab-examples/clos02/setup.clos02.clab.yml b/lab-examples/clos02/setup.clos02.clab.yml
deleted file mode 100644
index 893449f..0000000
--- a/lab-examples/clos02/setup.clos02.clab.yml
+++ /dev/null
@@ -1,101 +0,0 @@
-name: clos02
-
-mgmt:
- network: br-clos02
- ipv4-subnet: 172.100.100.0/24
- ipv6-subnet: 2001:172:100:100::0/64
-
-topology:
- kinds:
- nokia_srlinux:
- image: ghcr.io/nokia/srlinux:23.3.3
- linux:
- image: ghcr.io/hellt/network-multitool
- nodes:
- leaf1:
- kind: nokia_srlinux
- mgmt-ipv4: 172.100.100.2
- mgmt-ipv6: 2001:172:100:100::2
- leaf2:
- kind: nokia_srlinux
- mgmt-ipv4: 172.100.100.3
- mgmt-ipv6: 2001:172:100:100::3
- leaf3:
- kind: nokia_srlinux
- mgmt-ipv4: 172.100.100.4
- mgmt-ipv6: 2001:172:100:100::4
- leaf4:
- kind: nokia_srlinux
- mgmt-ipv4: 172.100.100.5
- mgmt-ipv6: 2001:172:100:100::5
-
- spine1:
- kind: nokia_srlinux
- type: ixrd3
- mgmt-ipv4: 172.100.100.6
- mgmt-ipv6: 2001:172:100:100::6
- spine2:
- kind: nokia_srlinux
- type: ixrd3
- mgmt-ipv4: 172.100.100.7
- mgmt-ipv6: 2001:172:100:100::7
- spine3:
- kind: nokia_srlinux
- type: ixrd3
- mgmt-ipv4: 172.100.100.8
- mgmt-ipv6: 2001:172:100:100::8
- spine4:
- kind: nokia_srlinux
- type: ixrd3
- mgmt-ipv4: 172.100.100.9
- mgmt-ipv6: 2001:172:100:100::9
-
- superspine1:
- kind: nokia_srlinux
- type: ixrd3
- mgmt-ipv4: 172.100.100.10
- mgmt-ipv6: 2001:172:100:100::10
- superspine2:
- kind: nokia_srlinux
- type: ixrd3
- mgmt-ipv4: 172.100.100.11
- mgmt-ipv6: 2001:172:100:100::11
-
- client1:
- kind: linux
- mgmt-ipv4: 172.100.100.12
- mgmt-ipv6: 2001:172:100:100::12
- client2:
- kind: linux
- mgmt-ipv4: 172.100.100.13
- mgmt-ipv6: 2001:172:100:100::13
- client3:
- kind: linux
- mgmt-ipv4: 172.100.100.14
- mgmt-ipv6: 2001:172:100:100::14
- client4:
- kind: linux
- mgmt-ipv4: 172.100.100.15
- mgmt-ipv6: 2001:172:100:100::15
-
- links:
- - endpoints: ["leaf1:e1-1", "spine1:e1-1"]
- - endpoints: ["leaf1:e1-2", "spine2:e1-1"]
- - endpoints: ["leaf2:e1-1", "spine1:e1-2"]
- - endpoints: ["leaf2:e1-2", "spine2:e1-2"]
-
- - endpoints: ["spine1:e1-3", "superspine1:e1-1"]
- - endpoints: ["spine2:e1-3", "superspine2:e1-1"]
-
- - endpoints: ["leaf3:e1-1", "spine3:e1-1"]
- - endpoints: ["leaf3:e1-2", "spine4:e1-1"]
- - endpoints: ["leaf4:e1-1", "spine3:e1-2"]
- - endpoints: ["leaf4:e1-2", "spine4:e1-2"]
-
- - endpoints: ["spine3:e1-3", "superspine1:e1-2"]
- - endpoints: ["spine4:e1-3", "superspine2:e1-2"]
-
- - endpoints: ["client1:eth1", "leaf1:e1-3"]
- - endpoints: ["client2:eth1", "leaf2:e1-3"]
- - endpoints: ["client3:eth1", "leaf3:e1-3"]
- - endpoints: ["client4:eth1", "leaf4:e1-3"]
diff --git a/lab-examples/clos02/setup.sh b/lab-examples/clos02/setup.sh
deleted file mode 100644
index 6f88cf5..0000000
--- a/lab-examples/clos02/setup.sh
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/bash
-
-CFG_DIR=./configs
-SRL_PASSWORD=NokiaSrl1!
-
-configure_SRL() {
- OUT=$(gnmic -a clab-clos02-$1 --timeout 30s -u admin -p $SRL_PASSWORD -e json_ietf --skip-verify set --update-path / --update-file $CFG_DIR/$1.yaml 2>&1)
- echo $OUT | grep -q -e '\"operation\": \"UPDATE\"'
- if [ $? -eq 0 ]; then
- docker exec clab-clos02-$1 sr_cli "save startup" > /dev/null
- else
- echo "Error: Unable to push config into clab-clos02-$1."
- fi
- echo $OUT > /dev/null
-}
-
-configure_CLIENT() {
- docker cp $CFG_DIR/$1.sh clab-clos02-$1:/tmp/
- docker exec clab-clos02-$1 bash /tmp/$1.sh 2>/dev/null
-}
-
-echo
-PIDS=""
-NE=("leaf1" "leaf2" "leaf3" "leaf4" "spine1" "spine2" "spine3" "spine4" "superspine1" "superspine2")
-CLIENT=("client1" "client2" "client3" "client4")
-
-for VARIANT in ${NE[@]}; do
- ( configure_SRL $VARIANT ) &
- REF=$!
- echo "[$REF] Configuring $VARIANT..."
- PIDS+=" $REF"
-done
-
-for VARIANT in ${CLIENT[@]}; do
- ( configure_CLIENT $VARIANT ) &
- REF=$!
- echo "[$REF] Configuring $VARIANT..."
- PIDS+=" $REF"
-done
-
-echo
-for p in $PIDS; do
- if wait $p; then
- echo "Process $p success"
- else
- echo "Process $p fail"
- fi
-done
-echo
\ No newline at end of file
diff --git a/lab-examples/clos03/README.md b/lab-examples/clos03/README.md
deleted file mode 100644
index 2e065f2..0000000
--- a/lab-examples/clos03/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Tier-2 CLOS with Config Engine (cfg-clos)
-For detailed information on this example, please refer to : https://containerlab.dev/lab-examples/clos03/
-
-### Execution
-```
-# Deploy the topology
-$ containerlab deploy --topo cfg-clos.topo.yml
-
-# Generate and apply the configuration from the templates
-$ containerlab config --topo cfg-clos.topo.yml -p . -l cfg-clos
-```
\ No newline at end of file
diff --git a/lab-examples/clos03/cfg-clos.clab.yml b/lab-examples/clos03/cfg-clos.clab.yml
deleted file mode 100644
index 94d6973..0000000
--- a/lab-examples/clos03/cfg-clos.clab.yml
+++ /dev/null
@@ -1,186 +0,0 @@
-### 4 Leaf - 2 Spine - 2 DCGW
-name: cfg-clos
-
-######### Global Variables for Config Engine #########
-topology:
- defaults:
- config:
- vars:
- overlay_as: 65555
- #----------------------------------------------------#
- kinds:
- nokia_srlinux:
- image: ghcr.io/nokia/srlinux:21.6.2-67
- vr-sros:
- image: vrnetlab/vr-sros:21.7.R1 # internal image, external users should build/use their own image
- license: ./license_sr.key # license file must be obtained from Nokia
-
- #######################################################
- nodes:
- #-----------------------------------------------------#
- dcgw1:
- kind: vr-sros
- type: sr-1
- config:
- vars:
- system_ip: 10.0.0.31
- as: 65030
- #-----------------------------------------------------#
- dcgw2:
- kind: vr-sros
- type: sr-1
- config:
- vars:
- system_ip: 10.0.0.32
- as: 65030
- #-----------------------------------------------------#
- spine1:
- kind: nokia_srlinux
- type: ixrd3
- config:
- vars:
- system_ip: 10.0.0.21
- as: 65020
- cluster_id: 10.10.10.10
- #-----------------------------------------------------#
- spine2:
- kind: nokia_srlinux
- type: ixrd3
- config:
- vars:
- system_ip: 10.0.0.22
- as: 65020
- cluster_id: 10.10.10.10
- #-----------------------------------------------------#
- leaf1:
- kind: nokia_srlinux
- type: ixrd2
- config:
- vars:
- system_ip: 10.0.0.11
- as: 65011
- #-----------------------------------------------------#
- leaf2:
- kind: nokia_srlinux
- type: ixrd2
- config:
- vars:
- system_ip: 10.0.0.12
- as: 65012
- #-----------------------------------------------------#
- leaf3:
- kind: nokia_srlinux
- type: ixrd2
- config:
- vars:
- system_ip: 10.0.0.13
- as: 65013
- #-----------------------------------------------------#
- leaf4:
- kind: nokia_srlinux
- type: ixrd2
- config:
- vars:
- system_ip: 10.0.0.14
- as: 65014
- #-----------------------------------------------------#
- sros-client:
- kind: vr-sros
- type: sr-1
- #-----------------------------------------------------#
-
- links:
- #######################################################
- ################## DCGW - Spine #######################
- #######################################################
- - endpoints: ["dcgw1:eth1", "spine1:e1-31"]
- vars:
- port: [1/1/c1, ethernet-1/31]
- clab_link_ip: 100.31.21.1/30
- bgp_underlay: true
- #-----------------------------------------------------#
- - endpoints: ["dcgw1:eth2", "spine2:e1-31"]
- vars:
- port: [1/1/c2, ethernet-1/31]
- clab_link_ip: 100.31.22.1/30
- bgp_underlay: true
- #-----------------------------------------------------#
- - endpoints: ["dcgw2:eth1", "spine1:e1-32"]
- vars:
- port: [1/1/c1, ethernet-1/32]
- clab_link_ip: 100.32.21.1/30
- bgp_underlay: true
- #-----------------------------------------------------#
- - endpoints: ["dcgw2:eth2", "spine2:e1-32"]
- vars:
- port: [1/1/c2, ethernet-1/32]
- clab_link_ip: 100.32.22.1/30
- bgp_underlay: true
-
- #######################################################
- ################## Spine 1 - Leafs ####################
- #######################################################
- - endpoints: ["spine1:e1-11", "leaf1:e1-51"]
- vars:
- port: [ethernet-1/11, ethernet-1/51]
- clab_link_ip: 100.21.11.1/30
- bgp_underlay: true
- #-----------------------------------------------------#
- - endpoints: ["spine1:e1-12", "leaf2:e1-51"]
- vars:
- port: [ethernet-1/12, ethernet-1/51]
- clab_link_ip: 100.21.12.1/30
- bgp_underlay: true
- #-----------------------------------------------------#
- - endpoints: ["spine1:e1-13", "leaf3:e1-51"]
- vars:
- port: [ethernet-1/13, ethernet-1/51]
- clab_link_ip: 100.21.13.1/30
- bgp_underlay: true
- #-----------------------------------------------------#
- - endpoints: ["spine1:e1-14", "leaf4:e1-51"]
- vars:
- port: [ethernet-1/14, ethernet-1/51]
- clab_link_ip: 100.21.14.1/30
- bgp_underlay: true
- #-----------------------------------------------------#
-
- #######################################################
- ################## Spine 2 - Leafs ####################
- #######################################################
- - endpoints: ["spine2:e1-11", "leaf1:e1-52"]
- vars:
- port: [ethernet-1/11, ethernet-1/52]
- clab_link_ip: 100.22.11.1/30
- bgp_underlay: true
- #-----------------------------------------------------#
- - endpoints: ["spine2:e1-12", "leaf2:e1-52"]
- vars:
- port: [ethernet-1/12, ethernet-1/52]
- clab_link_ip: 100.22.12.1/30
- bgp_underlay: true
- #-----------------------------------------------------#
- - endpoints: ["spine2:e1-13", "leaf3:e1-52"]
- vars:
- port: [ethernet-1/13, ethernet-1/52]
- clab_link_ip: 100.22.13.1/30
- bgp_underlay: true
- #-----------------------------------------------------#
- - endpoints: ["spine2:e1-14", "leaf4:e1-52"]
- vars:
- port: [ethernet-1/14, ethernet-1/52]
- clab_link_ip: 100.22.14.1/30
- bgp_underlay: true
- #-----------------------------------------------------#
-
- #######################################################
- ################ Leaf - Client/Host ###################
- #######################################################
- - endpoints: ["leaf1:e1-1", "sros-client:eth1"]
- - endpoints: ["leaf1:e1-2", "sros-client:eth2"]
- - endpoints: ["leaf2:e1-1", "sros-client:eth3"]
- - endpoints: ["leaf2:e1-2", "sros-client:eth4"]
- - endpoints: ["leaf3:e1-1", "sros-client:eth5"]
- - endpoints: ["leaf3:e1-2", "sros-client:eth6"]
- - endpoints: ["leaf4:e1-1", "sros-client:eth7"]
- - endpoints: ["leaf4:e1-2", "sros-client:eth8"]
diff --git a/lab-examples/clos03/cfg-clos__srl.tmpl b/lab-examples/clos03/cfg-clos__srl.tmpl
deleted file mode 100644
index 4eea36e..0000000
--- a/lab-examples/clos03/cfg-clos__srl.tmpl
+++ /dev/null
@@ -1,65 +0,0 @@
-{{/* Configure P-to-P interfaces */}}
-
-{{ range $name, $link := .clab_links }}
-{{ if $link.port }}
-/ interface {{ $link.port }} subinterface 0 ipv4 address {{ $link.clab_link_ip }}
-/ interface {{ $link.port }} subinterface 0 description {{ $link.clab_link_name }}
-/ network-instance default interface {{ $link.port }}.0
-{{- end }}
-{{- end }}
-
-{{/* Configure system interface */}}
-/ interface system0 admin-state enable subinterface 0 ipv4 address {{ .system_ip }}/32
-/ network-instance default type default
-/ network-instance default interface system0.0
-
-{{/* policy to allow system ip */}}
-/ routing-policy
-/ routing-policy prefix-set system_ip
-/ routing-policy prefix-set system_ip prefix {{ .system_ip }}/32 mask-length-range exact
-/ routing-policy policy system_ip
-/ routing-policy policy system_ip statement 10
-/ routing-policy policy system_ip statement 10 match prefix-set system_ip
-/ routing-policy policy system_ip statement 10 action accept
-
-{{/* Underlay Config */}}
-/ network-instance default protocols bgp router-id {{ .system_ip }}
-/ network-instance default protocols bgp autonomous-system {{ .as }}
-/ network-instance default protocols bgp ebgp-default-policy import-reject-all false
-/ network-instance default protocols bgp ebgp-default-policy export-reject-all false
-/ network-instance default protocols bgp group underlay timers connect-retry 1
-/ network-instance default protocols bgp group underlay timers minimum-advertisement-interval 1
-/ network-instance default protocols bgp group underlay ipv4-unicast admin-state enable
-/ network-instance default protocols bgp group underlay export-policy system_ip
-
-{{/* If the bgp_underlay flag specified under the link then configure underlay ebgp on links */}}
-{{- range $name, $link := .clab_links -}}
- {{- if .bgp_underlay }}
-/ network-instance default protocols bgp neighbor {{ ip $link.clab_far.clab_link_ip }} peer-group underlay
-/ network-instance default protocols bgp neighbor {{ ip $link.clab_far.clab_link_ip }} peer-as {{(index $.clab_nodes $link.clab_far.clab_node).as}}
- {{- end }}
-{{- end -}}
-
-
-
-{{/* Overlay Config */}}
-/ network-instance default protocols bgp group overlay timers connect-retry 1
-/ network-instance default protocols bgp group overlay timers minimum-advertisement-interval 1
-/ network-instance default protocols bgp group overlay evpn admin-state enable
-/ network-instance default protocols bgp group overlay ipv4-unicast admin-state disable
-/ network-instance default protocols bgp group overlay transport local-address {{ .system_ip }}
-/ network-instance default protocols bgp group overlay peer-as {{ $.overlay_as }}
-/ network-instance default protocols bgp group overlay local-as {{ $.overlay_as }}
-
-{{- if not .cluster_id }}
- {{- range $name, $node := $.clab_nodes }}
- {{- if .cluster_id }}
-/ network-instance default protocols bgp neighbor {{ $node.system_ip }} peer-group overlay
- {{- end -}}
- {{- end -}}
-{{- end -}}
-{{- if .cluster_id }}
-/ network-instance default protocols bgp group overlay route-reflector client true
-/ network-instance default protocols bgp group overlay route-reflector cluster-id {{ .cluster_id }}
-/ network-instance default protocols bgp dynamic-neighbors accept match 0.0.0.0/0 peer-group overlay
-{{- end -}}
\ No newline at end of file
diff --git a/lab-examples/clos03/cfg-clos__vr-sros.tmpl b/lab-examples/clos03/cfg-clos__vr-sros.tmpl
deleted file mode 100644
index 1943fa3..0000000
--- a/lab-examples/clos03/cfg-clos__vr-sros.tmpl
+++ /dev/null
@@ -1,53 +0,0 @@
-{{/* Configure P-to-P interfaces */}}
-
-{{ range $name, $link := .clab_links }}
-{{- if $link.port }}
-/ configure port {{ $link.port}} connector breakout c1-100g
-/ configure port {{ $link.port}} admin-state enable
-/ configure port {{ $link.port}}/1 admin-state enable
-/ configure router interface {{ $link.clab_link_name }} port {{ $link.port}}/1
-{{- if $link.clab_link_ip }}
-/ configure router interface {{ $link.clab_link_name }} ipv4 primary address {{ ip $link.clab_link_ip }} prefix-length {{ ipmask $link.clab_link_ip }}
-{{- end }}
-{{- end }}
-{{- end -}}
-
-{{/* Configure system interface */}}
-{{- if .system_ip }}
-/ configure router interface system ipv4 primary address {{ .system_ip }}
-/ configure router interface system ipv4 primary prefix-length 32
-
-{{/* policy to allow system ip */}}
-/ configure policy-options prefix-list system_ip prefix {{ .system_ip }}/32 type exact
-/ configure policy-options policy-statement system_ip entry 10 from prefix-list system_ip
-/ configure policy-options policy-statement system_ip entry 10 action action-type accept
-{{- end }}
-
-{{- if .as }}
-{{/* Underlay Config */}}
-/ configure router autonomous-system {{ .as }}
-/ configure router bgp ebgp-default-reject-policy import false
-/ configure router bgp ebgp-default-reject-policy export false
-/ configure router bgp min-route-advertisement 1
-/ configure router bgp rapid-update evpn true
-/ configure router bgp group underlay family ipv4 true
-/ configure router bgp group underlay export policy system_ip
-{{- end }}
-
-{{/* If the bgp_underlay flag specified under the link then configure underlay ebgp on links */}}
-{{- range $name, $link := .clab_links }}
- {{- if .bgp_underlay }}
-/ configure router bgp neighbor {{ ip $link.clab_far.clab_link_ip }} group underlay
-/ configure router bgp neighbor {{ ip $link.clab_far.clab_link_ip }} peer-as {{(index $.clab_nodes $link.clab_far.clab_node).as}}
- {{- end -}}
-{{- end -}}
-
-{{/* Overlay Config */}}
-/ configure router bgp group overlay family evpn true
-/ configure router bgp group overlay peer-as {{ $.overlay_as }}
-/ configure router bgp group overlay local-as as-number {{ $.overlay_as }}
-{{- range $name, $node := $.clab_nodes }}
-{{- if .cluster_id }}
-/ configure router bgp neighbor {{ $node.system_ip }} group overlay
-{{- end -}}
-{{- end -}}
diff --git a/lab-examples/dci.clab.drawio b/lab-examples/dci.clab.drawio
new file mode 100644
index 0000000..ce4d794
--- /dev/null
+++ b/lab-examples/dci.clab.drawio
@@ -0,0 +1,477 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lab-examples/dci.clab.mod.yml b/lab-examples/dci.clab.mod.yml
new file mode 100644
index 0000000..099cb46
--- /dev/null
+++ b/lab-examples/dci.clab.mod.yml
@@ -0,0 +1,203 @@
+name: dci
+mgmt:
+ network: dci
+ ipv4-subnet: 172.0.200.0/24
+topology:
+ kinds:
+ nokia_sros:
+ image: registry.srlinux.dev/pub/vr-sros:24.3.R1
+ type: sr-1s
+ license: /opt/srexperts/license-sros24.txt
+ nokia_srlinux:
+ image: registry.srlinux.dev/pub/srlinux:24.3.1
+ type: ixrd3
+ nodes:
+ p1:
+ kind: nokia_sros
+ startup-config: configs/p1.partial.cfg
+ labels:
+ graph-level: 1
+ graph-icon: router
+ dcgw1-dc1:
+ kind: nokia_sros
+ startup-config: configs/dcgw1-dc1.partial.cfg
+ labels:
+ graph-level: 2
+ graph-icon: router
+ dcgw2-dc1:
+ kind: nokia_sros
+ startup-config: configs/dcgw2-dc1.partial.cfg
+ labels:
+ graph-level: 2
+ graph-icon: router
+ spine1-dc1:
+ kind: nokia_srlinux
+ startup-config: configs/spine1-dc1.cfg
+ labels:
+ graph-level: 3
+ graph-icon: switch
+ spine2-dc1:
+ kind: nokia_srlinux
+ startup-config: configs/spine2-dc1.cfg
+ labels:
+ graph-level: 3
+ graph-icon: switch
+ leaf1-dc1:
+ kind: nokia_srlinux
+ startup-config: configs/leaf1-dc1.cfg
+ labels:
+ graph-level: 4
+ graph-icon: switch
+ leaf2-dc1:
+ kind: nokia_srlinux
+ startup-config: configs/leaf2-dc1.cfg
+ labels:
+ graph-level: 4
+ graph-icon: switch
+ leaf3-dc1:
+ kind: nokia_srlinux
+ startup-config: configs/leaf3-dc1.cfg
+ labels:
+ graph-level: 4
+ graph-icon: switch
+ leaf4-dc1:
+ kind: nokia_srlinux
+ startup-config: configs/leaf4-dc1.cfg
+ labels:
+ graph-level: 4
+ graph-icon: switch
+ client1-dc1:
+ kind: linux
+ image: ghcr.io/hellt/network-multitool
+ binds:
+ - configs/client.sh:/client.sh
+ exec:
+ - bash -c "/client.sh dc1 1"
+ labels:
+ graph-level: 5
+ graph-icon: host
+ client2-dc1:
+ kind: linux
+ image: ghcr.io/hellt/network-multitool
+ binds:
+ - configs/client.sh:/client.sh
+ exec:
+ - bash -c "/client.sh dc1 4"
+ labels:
+ graph-level: 5
+ graph-icon: host
+ dcgw1-dc2:
+ kind: nokia_sros
+ startup-config: configs/dcgw1-dc2.partial.cfg
+ stages:
+ create:
+ wait-for:
+ - node: dcgw1-dc1
+ stage: healthy
+ - node: dcgw2-dc1
+ stage: healthy
+ labels:
+ graph-level: 2
+ graph-icon: router
+ dcgw2-dc2:
+ kind: nokia_sros
+ startup-config: configs/dcgw2-dc2.partial.cfg
+ stages:
+ create:
+ wait-for:
+ - node: dcgw1-dc1
+ stage: healthy
+ - node: dcgw2-dc1
+ stage: healthy
+ labels:
+ graph-level: 2
+ graph-icon: router
+ spine1-dc2:
+ kind: nokia_srlinux
+ startup-config: configs/spine1-dc2.cfg
+ labels:
+ graph-level: 3
+ graph-icon: switch
+ spine2-dc2:
+ kind: nokia_srlinux
+ startup-config: configs/spine2-dc2.cfg
+ labels:
+ graph-level: 3
+ graph-icon: switch
+ leaf1-dc2:
+ kind: nokia_srlinux
+ startup-config: configs/leaf1-dc2.cfg
+ labels:
+ graph-level: 4
+ graph-icon: switch
+ leaf2-dc2:
+ kind: nokia_srlinux
+ startup-config: configs/leaf2-dc2.cfg
+ labels:
+ graph-level: 4
+ graph-icon: switch
+ leaf3-dc2:
+ kind: nokia_srlinux
+ startup-config: configs/leaf3-dc2.cfg
+ labels:
+ graph-level: 4
+ graph-icon: switch
+ leaf4-dc2:
+ kind: nokia_srlinux
+ startup-config: configs/leaf4-dc2.cfg
+ labels:
+ graph-level: 4
+ graph-icon: switch
+ client3-dc2:
+ kind: linux
+ image: ghcr.io/hellt/network-multitool
+ binds:
+ - configs/client.sh:/client.sh
+ exec:
+ - bash -c "/client.sh dc2 1"
+ labels:
+ graph-level: 5
+ graph-icon: host
+ client4-dc2:
+ kind: linux
+ image: ghcr.io/hellt/network-multitool
+ binds:
+ - configs/client.sh:/client.sh
+ exec:
+ - bash -c "/client.sh dc2 4"
+ labels:
+ graph-level: 5
+ graph-icon: host
+ links:
+ - endpoints: ['dcgw1-dc1:eth1', 'p1:eth5']
+ - endpoints: ['dcgw2-dc1:eth1', 'p1:eth6']
+ - endpoints: ['spine1-dc1:e1-31', 'dcgw1-dc1:eth3']
+ - endpoints: ['spine1-dc1:e1-32', 'dcgw2-dc1:eth3']
+ - endpoints: ['spine2-dc1:e1-31', 'dcgw1-dc1:eth2']
+ - endpoints: ['spine2-dc1:e1-32', 'dcgw2-dc1:eth2']
+ - endpoints: ['spine1-dc1:e1-3', 'leaf1-dc1:e1-31']
+ - endpoints: ['spine1-dc1:e1-4', 'leaf2-dc1:e1-31']
+ - endpoints: ['spine1-dc1:e1-5', 'leaf3-dc1:e1-31']
+ - endpoints: ['spine1-dc1:e1-6', 'leaf4-dc1:e1-31']
+ - endpoints: ['spine2-dc1:e1-3', 'leaf1-dc1:e1-32']
+ - endpoints: ['spine2-dc1:e1-4', 'leaf2-dc1:e1-32']
+ - endpoints: ['spine2-dc1:e1-5', 'leaf3-dc1:e1-32']
+ - endpoints: ['spine2-dc1:e1-6', 'leaf4-dc1:e1-32']
+ - endpoints: ['client1-dc1:eth1', 'leaf1-dc1:e1-1']
+ - endpoints: ['client2-dc1:eth1', 'leaf4-dc1:e1-1']
+ - endpoints: ['dcgw1-dc2:eth1', 'p1:eth1']
+ - endpoints: ['dcgw2-dc2:eth1', 'p1:eth2']
+ - endpoints: ['spine1-dc2:e1-31', 'dcgw1-dc2:eth3']
+ - endpoints: ['spine1-dc2:e1-32', 'dcgw2-dc2:eth3']
+ - endpoints: ['spine2-dc2:e1-31', 'dcgw1-dc2:eth2']
+ - endpoints: ['spine2-dc2:e1-32', 'dcgw2-dc2:eth2']
+ - endpoints: ['spine1-dc2:e1-3', 'leaf1-dc2:e1-31']
+ - endpoints: ['spine1-dc2:e1-4', 'leaf2-dc2:e1-31']
+ - endpoints: ['spine1-dc2:e1-5', 'leaf3-dc2:e1-31']
+ - endpoints: ['spine1-dc2:e1-6', 'leaf4-dc2:e1-31']
+ - endpoints: ['spine2-dc2:e1-3', 'leaf1-dc2:e1-32']
+ - endpoints: ['spine2-dc2:e1-4', 'leaf2-dc2:e1-32']
+ - endpoints: ['spine2-dc2:e1-5', 'leaf3-dc2:e1-32']
+ - endpoints: ['spine2-dc2:e1-6', 'leaf4-dc2:e1-32']
+ - endpoints: ['client3-dc2:eth1', 'leaf1-dc2:e1-1']
+ - endpoints: ['client4-dc2:eth1', 'leaf4-dc2:e1-1']
diff --git a/lab-examples/dci.clab.yml b/lab-examples/dci.clab.yml
new file mode 100644
index 0000000..e8516a2
--- /dev/null
+++ b/lab-examples/dci.clab.yml
@@ -0,0 +1,178 @@
+name: dci
+
+mgmt:
+ network: dci
+ ipv4-subnet: 172.0.200.0/24
+
+topology:
+ kinds:
+ nokia_sros:
+ image: registry.srlinux.dev/pub/vr-sros:24.3.R1
+ type: sr-1s
+ license: /opt/srexperts/license-sros24.txt
+ nokia_srlinux:
+ image: registry.srlinux.dev/pub/srlinux:24.3.1
+ type: ixrd3
+ nodes:
+ ############## CORE ##############
+ p1:
+ kind: nokia_sros
+ startup-config: configs/p1.partial.cfg
+
+ ############## DC 1 ##############
+ dcgw1-dc1:
+ kind: nokia_sros
+ startup-config: configs/dcgw1-dc1.partial.cfg
+
+ dcgw2-dc1:
+ kind: nokia_sros
+ startup-config: configs/dcgw2-dc1.partial.cfg
+
+ spine1-dc1:
+ kind: nokia_srlinux
+ startup-config: configs/spine1-dc1.cfg
+
+ spine2-dc1:
+ kind: nokia_srlinux
+ startup-config: configs/spine2-dc1.cfg
+
+ leaf1-dc1:
+ kind: nokia_srlinux
+ startup-config: configs/leaf1-dc1.cfg
+
+ leaf2-dc1:
+ kind: nokia_srlinux
+ startup-config: configs/leaf2-dc1.cfg
+
+ leaf3-dc1:
+ kind: nokia_srlinux
+ startup-config: configs/leaf3-dc1.cfg
+
+ leaf4-dc1:
+ kind: nokia_srlinux
+ startup-config: configs/leaf4-dc1.cfg
+
+ client1-dc1:
+ kind: linux
+ image: ghcr.io/hellt/network-multitool
+ binds:
+ - configs/client.sh:/client.sh
+ exec:
+ - bash -c "/client.sh dc1 1"
+
+ client2-dc1:
+ kind: linux
+ image: ghcr.io/hellt/network-multitool
+ binds:
+ - configs/client.sh:/client.sh
+ exec:
+ - bash -c "/client.sh dc1 4"
+
+ ############## DC 2 ##############
+ dcgw1-dc2:
+ kind: nokia_sros
+ startup-config: configs/dcgw1-dc2.partial.cfg
+ stages:
+ create:
+ wait-for:
+ - node: dcgw1-dc1
+ stage: healthy
+ - node: dcgw2-dc1
+ stage: healthy
+
+ dcgw2-dc2:
+ kind: nokia_sros
+ startup-config: configs/dcgw2-dc2.partial.cfg
+ stages:
+ create:
+ wait-for:
+ - node: dcgw1-dc1
+ stage: healthy
+ - node: dcgw2-dc1
+ stage: healthy
+
+ spine1-dc2:
+ kind: nokia_srlinux
+ startup-config: configs/spine1-dc2.cfg
+
+ spine2-dc2:
+ kind: nokia_srlinux
+ startup-config: configs/spine2-dc2.cfg
+
+ leaf1-dc2:
+ kind: nokia_srlinux
+ startup-config: configs/leaf1-dc2.cfg
+
+ leaf2-dc2:
+ kind: nokia_srlinux
+ startup-config: configs/leaf2-dc2.cfg
+
+ leaf3-dc2:
+ kind: nokia_srlinux
+ startup-config: configs/leaf3-dc2.cfg
+
+ leaf4-dc2:
+ kind: nokia_srlinux
+ startup-config: configs/leaf4-dc2.cfg
+
+ client3-dc2:
+ kind: linux
+ image: ghcr.io/hellt/network-multitool
+ binds:
+ - configs/client.sh:/client.sh
+ exec:
+ - bash -c "/client.sh dc2 1"
+ client4-dc2:
+ kind: linux
+ image: ghcr.io/hellt/network-multitool
+ binds:
+ - configs/client.sh:/client.sh
+ exec:
+ - bash -c "/client.sh dc2 4"
+
+ links:
+ ############## DC 1 ##############
+ ## DCGW - CORE
+ - endpoints: ["dcgw1-dc1:eth1", "p1:eth5"]
+ - endpoints: ["dcgw2-dc1:eth1", "p1:eth6"]
+ ## DCGW - Spine
+ - endpoints: ["spine1-dc1:e1-31", "dcgw1-dc1:eth3"]
+ - endpoints: ["spine1-dc1:e1-32", "dcgw2-dc1:eth3"]
+ - endpoints: ["spine2-dc1:e1-31", "dcgw1-dc1:eth2"]
+ - endpoints: ["spine2-dc1:e1-32", "dcgw2-dc1:eth2"]
+ ## Spine 1 - Leafs
+ - endpoints: ["spine1-dc1:e1-3", "leaf1-dc1:e1-31"]
+ - endpoints: ["spine1-dc1:e1-4", "leaf2-dc1:e1-31"]
+ - endpoints: ["spine1-dc1:e1-5", "leaf3-dc1:e1-31"]
+ - endpoints: ["spine1-dc1:e1-6", "leaf4-dc1:e1-31"]
+ ## Spine 2 - Leafs
+ - endpoints: ["spine2-dc1:e1-3", "leaf1-dc1:e1-32"]
+ - endpoints: ["spine2-dc1:e1-4", "leaf2-dc1:e1-32"]
+ - endpoints: ["spine2-dc1:e1-5", "leaf3-dc1:e1-32"]
+ - endpoints: ["spine2-dc1:e1-6", "leaf4-dc1:e1-32"]
+ ## Clients - Leafs
+ - endpoints: ["client1-dc1:eth1", "leaf1-dc1:e1-1"]
+ - endpoints: ["client2-dc1:eth1", "leaf4-dc1:e1-1"]
+
+ ############## DC 2 ##############
+ ## DCGW - CORE
+ - endpoints: ["dcgw1-dc2:eth1", "p1:eth1"]
+ - endpoints: ["dcgw2-dc2:eth1", "p1:eth2"]
+ ## DCGW - Spine
+ - endpoints: ["spine1-dc2:e1-31", "dcgw1-dc2:eth3"]
+ - endpoints: ["spine1-dc2:e1-32", "dcgw2-dc2:eth3"]
+ - endpoints: ["spine2-dc2:e1-31", "dcgw1-dc2:eth2"]
+ - endpoints: ["spine2-dc2:e1-32", "dcgw2-dc2:eth2"]
+ ## Spine 1 - Leafs
+ - endpoints: ["spine1-dc2:e1-3", "leaf1-dc2:e1-31"]
+ - endpoints: ["spine1-dc2:e1-4", "leaf2-dc2:e1-31"]
+ - endpoints: ["spine1-dc2:e1-5", "leaf3-dc2:e1-31"]
+ - endpoints: ["spine1-dc2:e1-6", "leaf4-dc2:e1-31"]
+ ## Spine 2 - Leafs
+ - endpoints: ["spine2-dc2:e1-3", "leaf1-dc2:e1-32"]
+ - endpoints: ["spine2-dc2:e1-4", "leaf2-dc2:e1-32"]
+ - endpoints: ["spine2-dc2:e1-5", "leaf3-dc2:e1-32"]
+ - endpoints: ["spine2-dc2:e1-6", "leaf4-dc2:e1-32"]
+ ## Clients - Leafs
+ - endpoints: ["client3-dc2:eth1", "leaf1-dc2:e1-1"]
+ - endpoints: ["client4-dc2:eth1", "leaf4-dc2:e1-1"]
\ No newline at end of file
diff --git a/lab-examples/frr01.clab.drawio b/lab-examples/frr01.clab.drawio
new file mode 100644
index 0000000..94ba2b0
--- /dev/null
+++ b/lab-examples/frr01.clab.drawio
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lab-examples/frr01/PC-interfaces.sh b/lab-examples/frr01/PC-interfaces.sh
deleted file mode 100755
index de22ca6..0000000
--- a/lab-examples/frr01/PC-interfaces.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-sudo docker exec -d clab-frr01-PC1 ip link set eth1 up
-sudo docker exec -d clab-frr01-PC1 ip addr add 192.168.11.2/24 dev eth1
-sudo docker exec -d clab-frr01-PC1 ip route add 192.168.0.0/16 via 192.168.11.1 dev eth1
-sudo docker exec -d clab-frr01-PC1 ip route add 10.10.10.0/24 via 192.168.11.1 dev eth1
-
-sudo docker exec -d clab-frr01-PC2 ip link set eth1 up
-sudo docker exec -d clab-frr01-PC2 ip addr add 192.168.12.2/24 dev eth1
-sudo docker exec -d clab-frr01-PC2 ip route add 192.168.0.0/16 via 192.168.12.1 dev eth1
-sudo docker exec -d clab-frr01-PC2 ip route add 10.10.10.0/24 via 192.168.12.1 dev eth1
-
-sudo docker exec -d clab-frr01-PC3 ip link set eth1 up
-sudo docker exec -d clab-frr01-PC3 ip addr add 192.168.13.2/24 dev eth1
-sudo docker exec -d clab-frr01-PC3 ip route add 192.168.0.0/16 via 192.168.13.1 dev eth1
-sudo docker exec -d clab-frr01-PC3 ip route add 10.10.10.0/24 via 192.168.13.1 dev eth1
diff --git a/lab-examples/frr01/README.md b/lab-examples/frr01/README.md
deleted file mode 100644
index 7990d08..0000000
--- a/lab-examples/frr01/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Simple OSPF lab using FRR
-
-This lab example consists of three FRR routers connected in a ring topology. Each router has one PC connected to it.
-
-This is also an example of how to pre-configure lab nodes on "linux" node types in Containerlab.
-
-To start this lab, run the *run.sh* script, which will run the containerlab deploy commands, and then configure the PC interfaces.
-
-The lab configuration is documented in detail at: https://www.brianlinkletter.com/2021/05/use-containerlab-to-emulate-open-source-routers/
-
diff --git a/lab-examples/frr01/frr01.clab.yml b/lab-examples/frr01/frr01.clab.yml
deleted file mode 100644
index 482aa6c..0000000
--- a/lab-examples/frr01/frr01.clab.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-name: frr01
-
-topology:
- nodes:
- router1:
- kind: linux
- image: frrouting/frr:v7.5.1
- binds:
- - router1/daemons:/etc/frr/daemons
- - router1/frr.conf:/etc/frr/frr.conf
- router2:
- kind: linux
- image: frrouting/frr:v7.5.1
- binds:
- - router2/daemons:/etc/frr/daemons
- - router2/frr.conf:/etc/frr/frr.conf
- router3:
- kind: linux
- image: frrouting/frr:v7.5.1
- binds:
- - router3/daemons:/etc/frr/daemons
- - router3/frr.conf:/etc/frr/frr.conf
- PC1:
- kind: linux
- image: praqma/network-multitool:latest
- PC2:
- kind: linux
- image: praqma/network-multitool:latest
- PC3:
- kind: linux
- image: praqma/network-multitool:latest
-
- links:
- - endpoints: ["router1:eth1", "router2:eth1"]
- - endpoints: ["router1:eth2", "router3:eth1"]
- - endpoints: ["router2:eth2", "router3:eth2"]
- - endpoints: ["PC1:eth1", "router1:eth3"]
- - endpoints: ["PC2:eth1", "router2:eth3"]
- - endpoints: ["PC3:eth1", "router3:eth3"]
diff --git a/lab-examples/frr01/router1/daemons b/lab-examples/frr01/router1/daemons
deleted file mode 100644
index 3400905..0000000
--- a/lab-examples/frr01/router1/daemons
+++ /dev/null
@@ -1,36 +0,0 @@
-zebra=yes
-bgpd=no
-ospfd=yes
-ospf6d=no
-ripd=no
-ripngd=no
-isisd=no
-pimd=no
-ldpd=yes
-nhrpd=no
-eigrpd=no
-babeld=no
-sharpd=no
-staticd=no
-pbrd=no
-bfdd=no
-fabricd=no
-
-vtysh_enable=yes
-zebra_options=" -s 90000000 --daemon -A 127.0.0.1"
-bgpd_options=" --daemon -A 127.0.0.1"
-ospfd_options=" --daemon -A 127.0.0.1"
-ospf6d_options=" --daemon -A ::1"
-ripd_options=" --daemon -A 127.0.0.1"
-ripngd_options=" --daemon -A ::1"
-isisd_options=" --daemon -A 127.0.0.1"
-pimd_options=" --daemon -A 127.0.0.1"
-ldpd_options=" --daemon -A 127.0.0.1"
-nhrpd_options=" --daemon -A 127.0.0.1"
-eigrpd_options=" --daemon -A 127.0.0.1"
-babeld_options=" --daemon -A 127.0.0.1"
-sharpd_options=" --daemon -A 127.0.0.1"
-staticd_options=" --daemon -A 127.0.0.1"
-pbrd_options=" --daemon -A 127.0.0.1"
-bfdd_options=" --daemon -A 127.0.0.1"
-fabricd_options=" --daemon -A 127.0.0.1"
diff --git a/lab-examples/frr01/router1/frr.conf b/lab-examples/frr01/router1/frr.conf
deleted file mode 100644
index 9ed9e5c..0000000
--- a/lab-examples/frr01/router1/frr.conf
+++ /dev/null
@@ -1,25 +0,0 @@
-frr version 7.5.1_git
-frr defaults traditional
-hostname router1
-no ipv6 forwarding
-!
-interface eth1
- ip address 192.168.1.1/24
-!
-interface eth2
- ip address 192.168.2.1/24
-!
-interface eth3
- ip address 192.168.11.1/24
-!
-interface lo
- ip address 10.10.10.1/32
-!
-router ospf
- passive-interface eth3
- network 192.168.1.0/24 area 0.0.0.0
- network 192.168.2.0/24 area 0.0.0.0
- network 192.168.11.0/24 area 0.0.0.0
-!
-line vty
-!
diff --git a/lab-examples/frr01/router2/daemons b/lab-examples/frr01/router2/daemons
deleted file mode 100644
index 3400905..0000000
--- a/lab-examples/frr01/router2/daemons
+++ /dev/null
@@ -1,36 +0,0 @@
-zebra=yes
-bgpd=no
-ospfd=yes
-ospf6d=no
-ripd=no
-ripngd=no
-isisd=no
-pimd=no
-ldpd=yes
-nhrpd=no
-eigrpd=no
-babeld=no
-sharpd=no
-staticd=no
-pbrd=no
-bfdd=no
-fabricd=no
-
-vtysh_enable=yes
-zebra_options=" -s 90000000 --daemon -A 127.0.0.1"
-bgpd_options=" --daemon -A 127.0.0.1"
-ospfd_options=" --daemon -A 127.0.0.1"
-ospf6d_options=" --daemon -A ::1"
-ripd_options=" --daemon -A 127.0.0.1"
-ripngd_options=" --daemon -A ::1"
-isisd_options=" --daemon -A 127.0.0.1"
-pimd_options=" --daemon -A 127.0.0.1"
-ldpd_options=" --daemon -A 127.0.0.1"
-nhrpd_options=" --daemon -A 127.0.0.1"
-eigrpd_options=" --daemon -A 127.0.0.1"
-babeld_options=" --daemon -A 127.0.0.1"
-sharpd_options=" --daemon -A 127.0.0.1"
-staticd_options=" --daemon -A 127.0.0.1"
-pbrd_options=" --daemon -A 127.0.0.1"
-bfdd_options=" --daemon -A 127.0.0.1"
-fabricd_options=" --daemon -A 127.0.0.1"
diff --git a/lab-examples/frr01/router2/frr.conf b/lab-examples/frr01/router2/frr.conf
deleted file mode 100644
index 233a6b9..0000000
--- a/lab-examples/frr01/router2/frr.conf
+++ /dev/null
@@ -1,26 +0,0 @@
-frr version 7.5.1_git
-frr defaults traditional
-hostname router2
-no ipv6 forwarding
-!
-interface eth1
- ip address 192.168.1.2/24
-!
-interface eth2
- ip address 192.168.3.1/24
-!
-interface eth3
- ip address 192.168.12.1/24
-!
-interface lo
- ip address 10.10.10.2/32
-!
-router ospf
- passive-interface eth3
- network 192.168.1.0/24 area 0.0.0.0
-
- network 192.168.3.0/24 area 0.0.0.0
- network 192.168.12.0/24 area 0.0.0.0
-!
-line vty
-!
diff --git a/lab-examples/frr01/router3/daemons b/lab-examples/frr01/router3/daemons
deleted file mode 100644
index 3400905..0000000
--- a/lab-examples/frr01/router3/daemons
+++ /dev/null
@@ -1,36 +0,0 @@
-zebra=yes
-bgpd=no
-ospfd=yes
-ospf6d=no
-ripd=no
-ripngd=no
-isisd=no
-pimd=no
-ldpd=yes
-nhrpd=no
-eigrpd=no
-babeld=no
-sharpd=no
-staticd=no
-pbrd=no
-bfdd=no
-fabricd=no
-
-vtysh_enable=yes
-zebra_options=" -s 90000000 --daemon -A 127.0.0.1"
-bgpd_options=" --daemon -A 127.0.0.1"
-ospfd_options=" --daemon -A 127.0.0.1"
-ospf6d_options=" --daemon -A ::1"
-ripd_options=" --daemon -A 127.0.0.1"
-ripngd_options=" --daemon -A ::1"
-isisd_options=" --daemon -A 127.0.0.1"
-pimd_options=" --daemon -A 127.0.0.1"
-ldpd_options=" --daemon -A 127.0.0.1"
-nhrpd_options=" --daemon -A 127.0.0.1"
-eigrpd_options=" --daemon -A 127.0.0.1"
-babeld_options=" --daemon -A 127.0.0.1"
-sharpd_options=" --daemon -A 127.0.0.1"
-staticd_options=" --daemon -A 127.0.0.1"
-pbrd_options=" --daemon -A 127.0.0.1"
-bfdd_options=" --daemon -A 127.0.0.1"
-fabricd_options=" --daemon -A 127.0.0.1"
diff --git a/lab-examples/frr01/router3/frr.conf b/lab-examples/frr01/router3/frr.conf
deleted file mode 100644
index d2bc9cc..0000000
--- a/lab-examples/frr01/router3/frr.conf
+++ /dev/null
@@ -1,25 +0,0 @@
-frr version 7.5.1_git
-frr defaults traditional
-hostname router3
-no ipv6 forwarding
-!
-interface eth1
- ip address 192.168.2.2/24
-!
-interface eth2
- ip address 192.168.3.2/24
-!
-interface eth3
- ip address 192.168.13.1/24
-!
-interface lo
- ip address 10.10.10.3/32
-!
-router ospf
- passive-interface eth3
- network 192.168.2.0/24 area 0.0.0.0
- network 192.168.3.0/24 area 0.0.0.0
- network 192.168.13.0/24 area 0.0.0.0
-!
-line vty
-!
diff --git a/lab-examples/frr01/run.sh b/lab-examples/frr01/run.sh
deleted file mode 100644
index 65cdc6a..0000000
--- a/lab-examples/frr01/run.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-clab deploy --topo frr01.clab.yml
-./PC-interfaces.sh
diff --git a/lab-examples/hori.clab.drawio b/lab-examples/hori.clab.drawio
new file mode 100644
index 0000000..7a027a0
--- /dev/null
+++ b/lab-examples/hori.clab.drawio
@@ -0,0 +1,305 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lab-examples/horizontal_lab/hori.clab.yml b/lab-examples/hori.clab.yml
similarity index 100%
rename from lab-examples/horizontal_lab/hori.clab.yml
rename to lab-examples/hori.clab.yml
diff --git a/lab-examples/sr.clab.drawio b/lab-examples/sr.clab.drawio
new file mode 100644
index 0000000..a074e33
--- /dev/null
+++ b/lab-examples/sr.clab.drawio
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lab-examples/sr.clab.mod.drawio b/lab-examples/sr.clab.mod.drawio
new file mode 100644
index 0000000..8c16775
--- /dev/null
+++ b/lab-examples/sr.clab.mod.drawio
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lab-examples/srl03.clab.drawio b/lab-examples/srl03.clab.drawio
new file mode 100644
index 0000000..fc16862
--- /dev/null
+++ b/lab-examples/srl03.clab.drawio
@@ -0,0 +1,257 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lab-examples/srl03/srl03.clab.yml b/lab-examples/srl03/srl03.clab.yml
deleted file mode 100644
index 510a68b..0000000
--- a/lab-examples/srl03/srl03.clab.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-name: srl03
-
-topology:
- kinds:
- nokia_srlinux:
- type: ixrd3
- image: ghcr.io/nokia/srlinux
- linux:
- image: ghcr.io/hellt/network-multitool
- nodes:
- wan1:
- kind: nokia_srlinux
- wan2:
- kind: nokia_srlinux
- wan3:
- kind: nokia_srlinux
- wan4:
- kind: nokia_srlinux
- client1:
- kind: "linux"
- client2:
- kind: "linux"
- client3:
- kind: "linux"
- client4:
- kind: "linux"
-
- links:
- # wan1 <-> wan2 connections
- - endpoints: ["wan1:e1-1", "wan2:e1-1"]
- - endpoints: ["wan1:e1-2", "wan2:e1-2"]
- - endpoints: ["wan1:e1-3", "wan2:e1-3"]
- - endpoints: ["wan1:e1-4", "wan2:e1-4"]
-
- # wan1 <-> wan3 connections
- - endpoints: ["wan1:e1-5", "wan3:e1-1"]
- - endpoints: ["wan1:e1-6", "wan3:e1-2"]
-
- # wan1 <-> wan4 connections
- - endpoints: ["wan1:e1-7", "wan4:e1-1"]
- - endpoints: ["wan1:e1-8", "wan4:e1-2"]
-
- # wan2 <-> wan3 connections
- - endpoints: ["wan2:e1-5", "wan3:e1-3"]
- - endpoints: ["wan2:e1-6", "wan3:e1-4"]
-
- # wan2 <-> wan4 connections
- - endpoints: ["wan2:e1-7", "wan4:e1-3"]
- - endpoints: ["wan2:e1-8", "wan4:e1-4"]
-
- # wan3 <-> wan4 connections
- - endpoints: ["wan3:e1-5", "wan4:e1-5"]
- - endpoints: ["wan3:e1-6", "wan4:e1-6"]
-
- # client connections
- - endpoints: ["client1:eth1", "wan1:e1-9"]
- - endpoints: ["client2:eth1", "wan2:e1-9"]
- - endpoints: ["client3:eth1", "wan3:e1-7"]
- - endpoints: ["client4:eth1", "wan4:e1-7"]
diff --git a/lab-examples/sros4.clab.drawio b/lab-examples/sros4.clab.drawio
new file mode 100644
index 0000000..157067e
--- /dev/null
+++ b/lab-examples/sros4.clab.drawio
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lab-examples/vr05/sros4.clab.yml b/lab-examples/sros4.clab.yml
similarity index 100%
rename from lab-examples/vr05/sros4.clab.yml
rename to lab-examples/sros4.clab.yml
diff --git a/lab-examples/st.clab.drawio b/lab-examples/st.clab.drawio
new file mode 100644
index 0000000..ced0ae2
--- /dev/null
+++ b/lab-examples/st.clab.drawio
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lab-examples/st.clab.yml b/lab-examples/st.clab.yml
new file mode 100644
index 0000000..bb42d4a
--- /dev/null
+++ b/lab-examples/st.clab.yml
@@ -0,0 +1,151 @@
+# Copyright 2020 Nokia
+# Licensed under the BSD 3-Clause License.
+# SPDX-License-Identifier: BSD-3-Clause
+
+name: st # short for streaming telemetry ;)
+prefix: ""
+
+mgmt:
+ network: st
+ ipv4-subnet: 172.80.80.0/24
+
+topology:
+ defaults:
+ kind: nokia_srlinux
+
+ kinds:
+ nokia_srlinux:
+ image: ghcr.io/nokia/srlinux:24.10.1
+ type: ixrd2l
+ linux:
+ image: ghcr.io/srl-labs/network-multitool
+
+ nodes:
+ ### SPINES ###
+ spine1:
+ type: ixrd3l
+ group: spine
+ startup-config: configs/fabric/spine1.cfg
+ mgmt-ipv4: 172.80.80.21
+ spine2:
+ type: ixrd3l
+ group: spine
+ startup-config: configs/fabric/spine2.cfg
+ mgmt-ipv4: 172.80.80.22
+
+ ### LEAFS ###
+ leaf1:
+ startup-config: configs/fabric/leaf1.cfg
+ mgmt-ipv4: 172.80.80.11
+ group: leaf
+ leaf2:
+ startup-config: configs/fabric/leaf2.cfg
+ mgmt-ipv4: 172.80.80.12
+ group: leaf
+ leaf3:
+ startup-config: configs/fabric/leaf3.cfg
+ mgmt-ipv4: 172.80.80.13
+ group: leaf
+
+ ### CLIENTS ###
+ client1:
+ kind: linux
+ mgmt-ipv4: 172.80.80.31
+ exec:
+ - ip address add 172.17.0.1/24 dev eth1
+ - ip -6 address add 2002::172:17:0:1/96 dev eth1
+ - iperf3 -s -p 5201 -D > iperf3_1.log
+ - iperf3 -s -p 5202 -D > iperf3_2.log
+ group: server
+ client2:
+ kind: linux
+ mgmt-ipv4: 172.80.80.32
+ binds:
+ - configs/client2:/config
+ exec:
+ - ip address add 172.17.0.2/24 dev eth1
+ - ip -6 address add 2002::172:17:0:2/96 dev eth1
+ group: server
+ client3:
+ kind: linux
+ mgmt-ipv4: 172.80.80.33
+ binds:
+ - configs/client3:/config
+ exec:
+ - ip address add 172.17.0.3/24 dev eth1
+ - ip -6 address add 2002::172:17:0:3/96 dev eth1
+ group: server
+
+ ### TELEMETRY STACK ###
+ gnmic:
+ kind: linux
+ mgmt-ipv4: 172.80.80.41
+ image: ghcr.io/openconfig/gnmic:0.39.1
+ binds:
+ - configs/gnmic/gnmic-config.yml:/gnmic-config.yml:ro
+ cmd: --config /gnmic-config.yml --log subscribe
+ group: "10" # group 10 is assigned to the nodes of a telemetry stack
+
+ prometheus:
+ kind: linux
+ mgmt-ipv4: 172.80.80.42
+ image: quay.io/prometheus/prometheus:v2.54.1
+ binds:
+ - configs/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
+ cmd: --config.file=/etc/prometheus/prometheus.yml
+ ports:
+ - 9090:9090
+ group: "10"
+
+ grafana:
+ kind: linux
+ mgmt-ipv4: 172.80.80.43
+ image: grafana/grafana:11.2.0
+ binds:
+ - configs/grafana/datasource.yml:/etc/grafana/provisioning/datasources/datasource.yaml:ro
+ - configs/grafana/dashboards.yml:/etc/grafana/provisioning/dashboards/dashboards.yaml:ro
+ - configs/grafana/dashboards:/var/lib/grafana/dashboards
+ ports:
+ - 3000:3000
+ env:
+ GF_INSTALL_PLUGINS: "andrewbmchugh-flow-panel"
+ # env vars to enable anonymous access
+ GF_ORG_ROLE: "Admin"
+ GF_ORG_NAME: "Main Org"
+ GF_AUTH_ANONYMOUS_ENABLED: "true"
+ GF_AUTH_ANONYMOUS_ORG_ROLE: Admin
+ GF_AUTH_ANONYMOUS: "true"
+ GF_AUTH_OAUTH_AUTO_LOGIN: "true"
+ group: "10"
+
+ ### LOGGING STACK ###
+ promtail:
+ kind: linux
+ mgmt-ipv4: 172.80.80.45
+ image: grafana/promtail:3.2.0
+ binds:
+ - configs/promtail:/etc/promtail
+ cmd: --config.file=/etc/promtail/promtail-config.yml
+ ports:
+ - 9080:9080
+
+ loki:
+ kind: linux
+ mgmt-ipv4: 172.80.80.46
+ image: grafana/loki:3.2.0
+ binds:
+ - configs/loki:/etc/loki
+ cmd: --config.file=/etc/loki/loki-config.yml
+ ports:
+ - 3100:3100
+
+ links:
+ - endpoints: ["spine1:e1-1", "leaf1:e1-49"]
+ - endpoints: ["spine1:e1-2", "leaf2:e1-49"]
+ - endpoints: ["spine1:e1-3", "leaf3:e1-49"]
+ - endpoints: ["spine2:e1-1", "leaf1:e1-50"]
+ - endpoints: ["spine2:e1-2", "leaf2:e1-50"]
+ - endpoints: ["spine2:e1-3", "leaf3:e1-50"]
+ - endpoints: ["leaf1:e1-1", "client1:eth1"]
+ - endpoints: ["leaf2:e1-1", "client2:eth1"]
+ - endpoints: ["leaf3:e1-1", "client3:eth1"]
\ No newline at end of file
diff --git a/lab-examples/topo_with_sros.clab.drawio b/lab-examples/topo_with_sros.clab.drawio
new file mode 100644
index 0000000..07cc3ce
--- /dev/null
+++ b/lab-examples/topo_with_sros.clab.drawio
@@ -0,0 +1,377 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lab-examples/topo_with_sros.clab.yml b/lab-examples/topo_with_sros.clab.yml
new file mode 100644
index 0000000..685440f
--- /dev/null
+++ b/lab-examples/topo_with_sros.clab.yml
@@ -0,0 +1,180 @@
+name: 4l2s
+
+mgmt:
+ network: intent-lab
+ ipv4-subnet: 172.20.21.0/24
+
+topology:
+ kinds:
+ srl:
+ image: ghcr.io/nokia/srlinux:24.3.2
+ #image: ghcr.io/nokia/srlinux:23.10.2
+ linux:
+ image: ghcr.io/hellt/network-multitool
+ vr-sros:
+ image: registry.srlinux.dev/pub/vr-sros:23.7.R1
+ type: sr-1s
+ license: license.txt
+ nodes:
+ d1:
+ kind: vr-sros
+ mgmt-ipv4: 172.20.21.21
+ labels:
+ role: dcgw
+ fabric: yes
+ d2:
+ kind: vr-sros
+ mgmt-ipv4: 172.20.21.22
+ labels:
+ role: dcgw
+ fabric: yes
+ l1:
+ kind: srl
+ type: ixrd2
+ mgmt-ipv4: 172.20.21.11
+ labels:
+ role: leaf
+ fabric: yes
+ l2:
+ kind: srl
+ type: ixrd2
+ mgmt-ipv4: 172.20.21.12
+ labels:
+ role: leaf
+ fabric: yes
+ l3:
+ kind: srl
+ type: ixrd2
+ mgmt-ipv4: 172.20.21.13
+ labels:
+ role: leaf
+ fabric: yes
+ l4:
+ kind: srl
+ type: ixrd2
+ mgmt-ipv4: 172.20.21.14
+ labels:
+ role: leaf
+ fabric: yes
+ s1:
+ kind: srl
+ type: ixrd3l
+# type: ixrh2
+ mgmt-ipv4: 172.20.21.101
+ labels:
+ role: spine
+ fabric: yes
+ s2:
+ kind: srl
+ type: ixrd3l
+# type: ixrh2
+ mgmt-ipv4: 172.20.21.102
+ labels:
+ role: spine
+ fabric: yes
+
+ ce121:
+ kind: srl
+ type: ixrd2
+ mgmt-ipv4: 172.20.21.150
+ labels:
+ role: ce
+ fabric: no
+ ce341:
+ kind: srl
+ type: ixrd2
+ mgmt-ipv4: 172.20.21.151
+ labels:
+ role: ce
+ fabric: no
+ cl121:
+ kind: linux
+ mgmt-ipv4: 172.20.21.133
+ exec:
+ - ip link add bond0 type bond mode 802.3ad
+ - ip link set addr 00:c1:ab:00:01:21 dev bond0
+ - ip link add link bond0 name bond0.100 type vlan id 100
+ - ip addr add 10.0.1.2/24 dev bond0.100
+ - ip link set eth1 down
+ - ip link set eth2 down
+ - ip link set eth1 master bond0
+ - ip link set eth2 master bond0
+ - ip link set eth1 up
+ - ip link set eth2 up
+ - ip link set bond0 up
+ - ip route add 10.0.0.0/8 via 10.0.1.254
+ cl122:
+ kind: linux
+ mgmt-ipv4: 172.20.21.134
+ exec:
+ - ip link add bond0 type bond mode 802.3ad
+ - ip link set addr 00:c1:ab:00:01:22 dev bond0
+ - ip link add link bond0 name bond0.200 type vlan id 200
+ - ip addr add 10.0.2.2/24 dev bond0.200
+ - ip link set eth1 down
+ - ip link set eth2 down
+ - ip link set eth1 master bond0
+ - ip link set eth2 master bond0
+ - ip link set eth1 up
+ - ip link set eth2 up
+ - ip link set bond0 up
+ - ip route add 10.0.0.0/8 via 10.0.2.254
+ cl341:
+ kind: linux
+ mgmt-ipv4: 172.20.21.136
+ exec:
+ - ip link add bond0 type bond mode 802.3ad
+ - ip link set addr 00:c1:ab:00:03:41 dev bond0
+ - ip link add link bond0 name bond0.200 type vlan id 200
+ - ip addr add 10.0.2.3/24 dev bond0.200
+ - ip link set eth1 down
+ - ip link set eth2 down
+ - ip link set eth1 master bond0
+ - ip link set eth2 master bond0
+ - ip link set eth1 up
+ - ip link set eth2 up
+ - ip link set bond0 up
+ - ip route add 10.0.0.0/8 via 10.0.2.254
+ cl342:
+ kind: linux
+ mgmt-ipv4: 172.20.21.137
+ exec:
+ - ip link add bond0 type bond mode 802.3ad
+ - ip link set addr 00:c1:ab:00:03:42 dev bond0
+ - ip link add link bond0 name bond0.300 type vlan id 300
+ - ip addr add 10.0.3.2/24 dev bond0.300
+ - ip link set eth1 down
+ - ip link set eth2 down
+ - ip link set eth1 master bond0
+ - ip link set eth2 master bond0
+ - ip link set eth1 up
+ - ip link set eth2 up
+ - ip link set bond0 up
+ - ip route add 10.0.0.0/8 via 10.0.3.254
+ links:
+ - endpoints: ["s1:e1-32", "d1:eth3"]
+ - endpoints: ["s1:e1-31", "d2:eth3"]
+ - endpoints: ["s2:e1-32", "d1:eth2"]
+ - endpoints: ["s2:e1-31", "d2:eth2"]
+ - endpoints: ["l1:e1-50", "s1:e1-1"]
+ - endpoints: ["l1:e1-49", "s2:e1-1"]
+ - endpoints: ["l2:e1-50", "s1:e1-2"]
+ - endpoints: ["l2:e1-49", "s2:e1-2"]
+ - endpoints: ["l3:e1-50", "s1:e1-3"]
+ - endpoints: ["l3:e1-49", "s2:e1-3"]
+ - endpoints: ["l4:e1-50", "s1:e1-4"]
+ - endpoints: ["l4:e1-49", "s2:e1-4"]
+ - endpoints: ["cl121:eth1", "l1:e1-20"]
+ - endpoints: ["cl121:eth2", "l2:e1-20"]
+ - endpoints: ["cl122:eth1", "l1:e1-21"]
+ - endpoints: ["cl122:eth2", "l2:e1-21"]
+ - endpoints: ["cl341:eth1", "l3:e1-20"]
+ - endpoints: ["cl341:eth2", "l4:e1-20"]
+ - endpoints: ["cl342:eth1", "l3:e1-21"]
+ - endpoints: ["cl342:eth2", "l4:e1-21"]
+ - endpoints: ["ce121:e1-1", "l1:e1-30"]
+ - endpoints: ["ce121:e1-2", "l2:e1-30"]
+ - endpoints: ["ce121:e1-3", "l1:e1-31"]
+ - endpoints: ["ce121:e1-4", "l2:e1-31"]
+ - endpoints: ["ce341:e1-1", "l3:e1-30"]
+ - endpoints: ["ce341:e1-2", "l4:e1-30"]
\ No newline at end of file