├── .gitignore ├── .devcontainer ├── postAttachCommand.sh ├── postCreateCommand.sh ├── devcontainer.json └── welcome ├── imgs ├── failed.png └── successful.png ├── configs ├── client2.sh ├── client3.sh ├── client4.sh ├── client1.sh ├── superspine1.yaml ├── superspine2.yaml ├── leaf2.yaml ├── leaf1.yaml ├── leaf3.yaml ├── leaf4.yaml ├── spine1.yaml ├── spine2.yaml ├── spine3.yaml └── spine4.yaml ├── nuts_data ├── nr-config.yaml ├── tests │ ├── test_User.yaml │ ├── clients │ │ └── test_ping_leaf.yaml │ ├── test_NetworkInstances.yaml │ ├── test_LLDPNeighbors.yaml │ ├── test_Interfaces.yaml │ └── test_ARP.yaml └── inventory │ ├── groups.yaml │ └── hosts.yaml ├── LICENSE ├── setup.sh ├── README.md └── setup.clos02.clab.yml /.gitignore: -------------------------------------------------------------------------------- 1 | clab-clos02/ 2 | .setup.clos02.clab.yml.bak 3 | .venv 4 | nuts_data/tshoot.py 5 | -------------------------------------------------------------------------------- /.devcontainer/postAttachCommand.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | clear 3 | cat $CODESPACE_VSCODE_FOLDER/.devcontainer/welcome -------------------------------------------------------------------------------- /imgs/failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/network-unit-testing-system/nuts-containerlab-demo/HEAD/imgs/failed.png -------------------------------------------------------------------------------- /.devcontainer/postCreateCommand.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo install gnmic 3 | bash -c "$(curl -sL https://get-gnmic.openconfig.net)" -------------------------------------------------------------------------------- /imgs/successful.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/network-unit-testing-system/nuts-containerlab-demo/HEAD/imgs/successful.png -------------------------------------------------------------------------------- /configs/client2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # IP config is not persistent 4 | ip addr add 10.0.0.27/31 dev eth1 5 | ip addr add 1000:10:0:0::27/127 dev eth1 6 | echo 0 > /proc/sys/net/ipv6/conf/eth1/accept_ra -------------------------------------------------------------------------------- /configs/client3.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # IP config is not persistent 4 | ip addr add 10.0.0.29/31 dev eth1 5 | ip addr add 1000:10:0:0::29/127 dev eth1 6 | echo 0 > /proc/sys/net/ipv6/conf/eth1/accept_ra 7 | -------------------------------------------------------------------------------- /configs/client4.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # IP config is not persistent 4 | ip addr add 10.0.0.31/31 dev eth1 5 | ip addr add 1000:10:0:0::31/127 dev eth1 6 | echo 0 > /proc/sys/net/ipv6/conf/eth1/accept_ra 7 | -------------------------------------------------------------------------------- /nuts_data/nr-config.yaml: -------------------------------------------------------------------------------- 1 | inventory: 2 | plugin: SimpleInventory 3 | options: 4 | host_file: "inventory/hosts.yaml" 5 | group_file: "inventory/groups.yaml" 6 | transform_function: "load_credentials" 7 | runner: 8 | plugin: threaded 9 | options: 10 | num_workers: 100 -------------------------------------------------------------------------------- /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "image": "ghcr.io/srl-labs/containerlab/devcontainer-dind-slim:0.67.0", 3 | "hostRequirements": { 4 | "cpus": 8, 5 | "memory": "32gb" 6 | }, 7 | "postCreateCommand": "./.devcontainer/postCreateCommand.sh", 8 | "postAttachCommand": "./.devcontainer/postAttachCommand.sh" 9 | } -------------------------------------------------------------------------------- /nuts_data/tests/test_User.yaml: -------------------------------------------------------------------------------- 1 | # # Waiting for https://github.com/napalm-automation-community/napalm-srlinux/issues/61 2 | [] 3 | # - test_module: nuts.base_tests.napalm_get_users 4 | # test_class: TestNapalmOnlyDefinedUsersExist 5 | # test_data: 6 | # - groups: 7 | # - router 8 | # usernames: 9 | # - admin 10 | -------------------------------------------------------------------------------- /nuts_data/tests/clients/test_ping_leaf.yaml: -------------------------------------------------------------------------------- 1 | # nuts_client_tests tests are still in a early alpha phase 2 | - test_module: nuts_client_tests.linux_ping 3 | test_class: TestLinuxPing 4 | test_execution: 5 | ttl: 1 6 | timeout: 1 7 | size: 1472 8 | test_data: 9 | - host: client2 10 | destination: 10.0.0.26 11 | expected: SUCCESS 12 | max_drop: 1 13 | - host: client3 14 | destination: 10.0.0.28 15 | expected: SUCCESS 16 | max_drop: 1 17 | - host: client4 18 | destination: 10.0.0.30 19 | expected: SUCCESS 20 | max_drop: 1 -------------------------------------------------------------------------------- /.devcontainer/welcome: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------- 2 | ******************************************************************** 3 | 👋👋👋 Welcome to the NUTS demo 👋👋👋 4 | - Start the containerlab lab: `containerlab deploy` 5 | - Configure the topology: `./setup.sh` 6 | - Connect to client1: `docker exec -it clab-clos02-client1 bash` 7 | - Change directory to workspace: `cd workspace` 8 | - Execute the tests: `pytest -vv` 9 | ******************************************************************** 10 | -------------------------------------------------------------------- -------------------------------------------------------------------------------- /nuts_data/tests/test_NetworkInstances.yaml: -------------------------------------------------------------------------------- 1 | - test_class: TestNapalmNetworkInstances 2 | test_data: 3 | - groups: 4 | - leaf 5 | - spine 6 | network_instance: default 7 | interfaces: 8 | - ethernet-1/1.0 9 | - ethernet-1/2.0 10 | - ethernet-1/3.0 11 | - system0.0 12 | route_distinguisher: "" # not setup config 13 | - groups: 14 | - superspine 15 | network_instance: default 16 | interfaces: 17 | - ethernet-1/1.0 18 | - ethernet-1/2.0 19 | - system0.0 20 | route_distinguisher: "" # not setup config 21 | -------------------------------------------------------------------------------- /configs/client1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | apt update 4 | apt install -y iproute2 vim nano 5 | 6 | # IP config is not persistent 7 | ip addr add 10.0.0.25/31 dev eth1 8 | ip addr add 1000:10:0:0::25/127 dev eth1 9 | echo 0 > /proc/sys/net/ipv6/conf/eth1/accept_ra 10 | 11 | pip install --update pip 12 | pip install nuts 13 | # pip install git+https://github.com/network-unit-testing-system/nuts.git@branch_name 14 | # pip install git+https://github.com/network-unit-testing-system/nuts.git 15 | 16 | 17 | pip install git+https://github.com/napalm-automation-community/napalm-srlinux@v1.0.6 18 | 19 | 20 | # Client tests are still in a early alpha phase 21 | pip install git+https://github.com/network-unit-testing-system/nuts-client-tests.git 22 | -------------------------------------------------------------------------------- /nuts_data/tests/test_LLDPNeighbors.yaml: -------------------------------------------------------------------------------- 1 | - test_class: TestNapalmLldpNeighbors 2 | test_data: 3 | # Leaf uplink LLDP Neighbors 4 | - tags: 5 | - site1 6 | local_port: ethernet-1/1 7 | remote_host: spine1 8 | # remote_port: ethernet-1/2 9 | - tags: 10 | - site1 11 | local_port: ethernet-1/2 12 | remote_host: spine2 13 | # remote_port: ethernet-1/2 14 | - tags: 15 | - site2 16 | local_port: ethernet-1/1 17 | remote_host: spine3 18 | # remote_port: ethernet-1/2 19 | - tags: 20 | - site2 21 | local_port: ethernet-1/2 22 | remote_host: spine4 23 | # remote_port: ethernet-1/2 24 | 25 | # Spine uplink LLDP Neighobrs 26 | - host: 27 | - spine1 28 | - spine3 29 | local_port: ethernet-1/3 30 | remote_host: superspine1 31 | - host: 32 | - spine2 33 | - spine4 34 | local_port: ethernet-1/3 35 | remote_host: superspine2 36 | -------------------------------------------------------------------------------- /nuts_data/inventory/groups.yaml: -------------------------------------------------------------------------------- 1 | router: 2 | username: admin 3 | password: NokiaSrl1! 4 | connection_options: 5 | napalm: 6 | platform: srl 7 | extras: 8 | optional_args: 9 | gnmi_port: 57400 10 | jsonrpc_port: 80 11 | # target_name: 172.100.100.3 12 | # tls_cert: /root/gnmic_certs/srl_certs/clientCert.crt 13 | # tls_ca: /root/gnmic_certs/srl_certs/RootCA.crt 14 | # tls_key: /root/gnmic_certs/srl_certs/clientKey.pem 15 | skip_verify: True 16 | insecure: True 17 | encoding: "JSON_IETF" 18 | 19 | linux: 20 | username: admin 21 | password: admin 22 | platform: linux 23 | 24 | leaf: 25 | data: 26 | tags: 27 | - ospf 28 | - isis 29 | - bgp 30 | 31 | spine: 32 | data: 33 | tags: 34 | - ospf 35 | - isis 36 | - bgp 37 | 38 | superspine: 39 | data: 40 | tags: 41 | - ospf 42 | - isis 43 | - bgp 44 | 45 | client: {} 46 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Network Unit Testing System 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /nuts_data/tests/test_Interfaces.yaml: -------------------------------------------------------------------------------- 1 | - test_class: TestNapalmInterfaces 2 | test_data: 3 | - groups: 4 | - spine 5 | - superspine 6 | name: ethernet-1/1 7 | is_enabled: true 8 | is_up: true 9 | mtu: 9232 10 | speed: 10.0 11 | - groups: 12 | - spine 13 | - superspine 14 | name: ethernet-1/2 15 | is_enabled: true 16 | is_up: true 17 | mtu: 9232 18 | speed: 10.0 19 | - groups: 20 | - spine 21 | name: ethernet-1/3 22 | is_enabled: true 23 | is_up: true 24 | mtu: 9232 25 | speed: 100.0 26 | 27 | # Test interface speed 28 | - tags: # Also group spine could be used. 29 | - site1 30 | - site2 31 | name: ethernet-1/1 32 | is_enabled: true 33 | is_up: true 34 | mtu: 9232 35 | speed: 25.0 36 | - tags: 37 | - site1 38 | - site2 39 | name: ethernet-1/2 40 | is_enabled: true 41 | is_up: true 42 | mtu: 9232 43 | speed: 25.0 44 | - tags: 45 | - site1 46 | - site2 47 | name: ethernet-1/3 48 | is_enabled: true 49 | is_up: true 50 | mtu: 9232 51 | speed: 25.0 52 | -------------------------------------------------------------------------------- /setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | RED='\033[0;31m' 3 | NC='\033[0m' # No Color 4 | 5 | CFG_DIR=./configs 6 | SRL_PASSWORD=NokiaSrl1! 7 | 8 | configure_SRL() { 9 | 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) 10 | echo $OUT | grep -q -e '\"operation\": \"UPDATE\"' 11 | if [ $? -eq 0 ]; then 12 | docker exec clab-clos02-$1 sr_cli "save startup" > /dev/null 13 | else 14 | echo -e "${RED}Error: Unable to push config into clab-clos02-$1.${NC}" 15 | fi 16 | echo $OUT > /dev/null 17 | } 18 | 19 | configure_CLIENT() { 20 | docker cp $CFG_DIR/$1.sh clab-clos02-$1:/tmp/ 21 | docker exec clab-clos02-$1 bash /tmp/$1.sh 2>/dev/null 22 | } 23 | 24 | echo 25 | PIDS="" 26 | NE=("leaf1" "leaf2" "leaf3" "leaf4" "spine1" "spine2" "spine3" "spine4" "superspine1" "superspine2") 27 | CLIENT=("client1" "client2" "client3" "client4") 28 | 29 | for VARIANT in ${NE[@]}; do 30 | ( configure_SRL $VARIANT ) & 31 | REF=$! 32 | echo "[$REF] Configuring $VARIANT..." 33 | PIDS+=" $REF" 34 | done 35 | 36 | for VARIANT in ${CLIENT[@]}; do 37 | ( configure_CLIENT $VARIANT ) & 38 | REF=$! 39 | echo "[$REF] Configuring $VARIANT..." 40 | PIDS+=" $REF" 41 | done 42 | 43 | echo 44 | for p in $PIDS; do 45 | if wait $p; then 46 | echo "Process $p success" 47 | else 48 | echo "${RED}Process $p fail${NC}" 49 | fi 50 | done 51 | echo -------------------------------------------------------------------------------- /nuts_data/inventory/hosts.yaml: -------------------------------------------------------------------------------- 1 | 2 | leaf1: 3 | hostname: 172.100.100.2 4 | groups: 5 | - router 6 | - leaf 7 | data: 8 | tags: 9 | - site1 10 | autonomous-system: 65001 11 | outer-id: 30.0.0.1 12 | 13 | leaf2: 14 | hostname: 172.100.100.3 15 | groups: 16 | - router 17 | - leaf 18 | data: 19 | tags: 20 | - site1 21 | autonomous-system: 65002 22 | router-id: 30.0.0.2 23 | 24 | leaf3: 25 | hostname: 172.100.100.4 26 | groups: 27 | - router 28 | - leaf 29 | data: 30 | tags: 31 | - site2 32 | autonomous-system: 65003 33 | router-id: 30.0.0.3 34 | 35 | leaf4: 36 | hostname: 172.100.100.5 37 | groups: 38 | - router 39 | - leaf 40 | data: 41 | tags: 42 | - site2 43 | autonomous-system: 65004 44 | router-id: 30.0.0.4 45 | 46 | spine1: 47 | hostname: 172.100.100.6 48 | groups: 49 | - router 50 | - spine 51 | data: 52 | autonomous-system: 65056 53 | router-id: 30.0.0.5 54 | 55 | spine2: 56 | hostname: 172.100.100.7 57 | groups: 58 | - router 59 | - spine 60 | data: 61 | autonomous-system: 65056 62 | router-id: 30.0.0.6 63 | 64 | spine3: 65 | hostname: 172.100.100.8 66 | groups: 67 | - router 68 | - spine 69 | data: 70 | autonomous-system: 65078 71 | router-id: 30.0.0.7 72 | 73 | spine4: 74 | hostname: 172.100.100.9 75 | groups: 76 | - router 77 | - spine 78 | data: 79 | autonomous-system: 65078 80 | router-id: 30.0.0.8 81 | 82 | superspine1: 83 | hostname: 172.100.100.10 84 | groups: 85 | - router 86 | - superspine 87 | data: 88 | autonomous-system: 65910 89 | router-id: 30.0.0.9 90 | 91 | superspine2: 92 | hostname: 172.100.100.11 93 | groups: 94 | - router 95 | - superspine 96 | data: 97 | autonomous-system: 65910 98 | router-id: 30.0.0.10 99 | 100 | 101 | client2: 102 | hostname: 172.100.100.13 103 | groups: 104 | - linux 105 | - client 106 | client3: 107 | hostname: 172.100.100.14 108 | groups: 109 | - linux 110 | - client 111 | client4: 112 | hostname: 172.100.100.15 113 | groups: 114 | - linux 115 | - client -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # nuts-containerlab-demo 2 | 3 | ![Tests Successful ](imgs/successful.png) 4 | 5 |
6 | 7 | 8 | 9 |
10 | 11 | ## Requirements 12 | 13 | - [containerlab](https://containerlab.dev/) 14 | - [gnmic](https://gnmic.openconfig.net/) 15 | 16 | ## Lab 17 | 18 | The lab is heavily based on the 5-stage Clos fabric from ContainerLab (https://containerlab.dev/lab-examples/min-5clos/). 19 | 20 | The client1 is replaced with a Python container image and NUTS will be installed on it. Clients 2 to 4 are running a Linux container with an SSH service. 21 | 22 | The router images are Nokia SR Linux. To be able to use NAPALM, the community driver (https://github.com/napalm-automation-community/napalm-srlinux) is used. 23 | 24 | ### Nuts installation 25 | 26 | The installation for NUTS can be found in [./configs/client1.sh](configs/client1.sh) 27 | 28 | ## Start 29 | 30 | ```bash 31 | sudo containerlab deploy -t setup.clos02.clab.yml 32 | chmod +x ./setup.sh 33 | ./setup.sh 34 | ``` 35 | 36 | Connect to client1 and run network tests: 37 | 38 | ```bash 39 | docker exec -it clab-clos02-client1 bash 40 | 41 | root@client1:/# cd /workspace/ 42 | root@client1:/workspace# ls -l 43 | total 12 44 | drwxr-xr-x 2 1000 1000 4096 Aug 8 22:10 inventory 45 | -rw-r--r-- 1 1000 1000 225 Aug 8 20:55 nr-config.yaml 46 | drwxr-xr-x 2 1000 1000 4096 Aug 9 08:12 tests 47 | 48 | root@client1:/workspace# pytest -vv 49 | ``` 50 | 51 | ## Stop 52 | 53 | ```bash 54 | sudo containerlab destroy 55 | ``` 56 | 57 | 58 | 59 | ## Running Tests 60 | 61 | In the best case, all tests will be successful (passed) or skipped. When the setup is executed, no test should fail. 62 | 63 | ![Tests Successful ](imgs/successful.png) 64 | 65 | When we change tests we can see that tests fail now: 66 | 67 | ```diff 68 | --- a/nuts_data/tests/test_Interfaces.yaml 69 | +++ b/nuts_data/tests/test_Interfaces.yaml 70 | - groups: 71 | - spine 72 | name: ethernet-1/3 73 | is_enabled: true 74 | is_up: true 75 | mtu: 9232 76 | - speed: 100.0 77 | + speed: 10.0 78 | ``` 79 | 80 | ![Tests Failed](imgs/failed.png) -------------------------------------------------------------------------------- /nuts_data/tests/test_ARP.yaml: -------------------------------------------------------------------------------- 1 | - test_class: TestNapalmArp 2 | test_data: 3 | # leaf's 4 | - host: leaf1 5 | interface: ethernet-1/1.0 6 | ip: 10.0.0.1 7 | - host: leaf1 8 | interface: ethernet-1/2.0 9 | ip: 10.0.0.3 10 | - host: leaf2 11 | interface: ethernet-1/1.0 12 | ip: 10.0.0.5 13 | - host: leaf2 14 | interface: ethernet-1/2.0 15 | ip: 10.0.0.7 16 | - host: leaf3 17 | interface: ethernet-1/1.0 18 | ip: 10.0.0.13 19 | - host: leaf3 20 | interface: ethernet-1/2.0 21 | ip: 10.0.0.15 22 | - host: leaf4 23 | interface: ethernet-1/1.0 24 | ip: 10.0.0.17 25 | - host: leaf4 26 | interface: ethernet-1/2.0 27 | ip: 10.0.0.19 28 | 29 | # spine's 30 | - host: spine1 31 | interface: ethernet-1/1.0 32 | ip: 10.0.0.0 33 | - host: spine1 34 | interface: ethernet-1/2.0 35 | ip: 10.0.0.4 36 | - host: spine1 37 | interface: ethernet-1/3.0 38 | ip: 10.0.0.9 39 | - host: spine2 40 | interface: ethernet-1/1.0 41 | ip: 10.0.0.2 42 | - host: spine2 43 | interface: ethernet-1/2.0 44 | ip: 10.0.0.6 45 | - host: spine2 46 | interface: ethernet-1/3.0 47 | ip: 10.0.0.11 48 | - host: spine3 49 | interface: ethernet-1/1.0 50 | ip: 10.0.0.12 51 | - host: spine3 52 | interface: ethernet-1/2.0 53 | ip: 10.0.0.16 54 | - host: spine3 55 | interface: ethernet-1/3.0 56 | ip: 10.0.0.21 57 | - host: spine4 58 | interface: ethernet-1/1.0 59 | ip: 10.0.0.14 60 | - host: spine4 61 | interface: ethernet-1/2.0 62 | ip: 10.0.0.18 63 | - host: spine4 64 | interface: ethernet-1/3.0 65 | ip: 10.0.0.23 66 | 67 | # superspine's 68 | - host: superspine1 69 | interface: ethernet-1/1.0 70 | ip: 10.0.0.8 71 | - host: superspine1 72 | interface: ethernet-1/2.0 73 | ip: 10.0.0.20 74 | - host: superspine2 75 | interface: ethernet-1/1.0 76 | ip: 10.0.0.10 77 | - host: superspine2 78 | interface: ethernet-1/2.0 79 | ip: 10.0.0.22 80 | 81 | - test_class: TestNapalmArpRange 82 | test_data: 83 | - groups: 84 | - spine 85 | min: 3 86 | max: 20 # ARP on mgmt0.0 also count 87 | - groups: 88 | - superspine 89 | - leaf 90 | min: 3 91 | max: 20 # ARP on mgmt0.0 also count 92 | -------------------------------------------------------------------------------- /configs/superspine1.yaml: -------------------------------------------------------------------------------- 1 | srl_nokia-interfaces:interface: 2 | - name: ethernet-1/1 3 | admin-state: enable 4 | subinterface: 5 | - index: 0 6 | ipv4: 7 | admin-state: enable 8 | address: 9 | - ip-prefix: 10.0.0.9/31 10 | ipv6: 11 | admin-state: enable 12 | address: 13 | - ip-prefix: 1000:10::9/127 14 | - name: ethernet-1/2 15 | admin-state: enable 16 | subinterface: 17 | - index: 0 18 | ipv4: 19 | admin-state: enable 20 | address: 21 | - ip-prefix: 10.0.0.21/31 22 | ipv6: 23 | admin-state: enable 24 | address: 25 | - ip-prefix: 1000:10::21/127 26 | - name: system0 27 | admin-state: enable 28 | subinterface: 29 | - index: 0 30 | ipv4: 31 | address: 32 | - ip-prefix: 30.0.0.9/32 33 | ipv6: 34 | address: 35 | - ip-prefix: 3000:30::9/128 36 | 37 | srl_nokia-network-instance:network-instance: 38 | - name: default 39 | admin-state: enable 40 | interface: 41 | - name: ethernet-1/1.0 42 | - name: ethernet-1/2.0 43 | - name: system0.0 44 | protocols: 45 | srl_nokia-bgp:bgp: 46 | autonomous-system: 65910 47 | router-id: 30.0.0.9 48 | afi-safi: 49 | - afi-safi-name: ipv4-unicast 50 | admin-state: enable 51 | - afi-safi-name: ipv6-unicast 52 | admin-state: enable 53 | group: 54 | - group-name: clos02 55 | admin-state: enable 56 | neighbor: 57 | - peer-address: 10.0.0.8 58 | peer-as: 65056 59 | peer-group: clos02 60 | - peer-address: 10.0.0.20 61 | peer-as: 65078 62 | peer-group: clos02 63 | srl_nokia-isis:isis: 64 | instance: 65 | - name: default 66 | admin-state: enable 67 | level-capability: L2 68 | net: 69 | - 49.0001.3000.0000.0009.00 70 | interface: 71 | - interface-name: ethernet-1/1.0 72 | circuit-type: point-to-point 73 | - interface-name: ethernet-1/2.0 74 | circuit-type: point-to-point 75 | - interface-name: system0.0 76 | level: 77 | - level-number: 2 78 | metric-style: wide 79 | srl_nokia-ospf:ospf: 80 | instance: 81 | - name: default 82 | admin-state: enable 83 | version: ospf-v2 84 | router-id: 30.0.0.9 85 | area: 86 | - area-id: 0.0.0.0 87 | interface: 88 | - interface-name: ethernet-1/1.0 89 | interface-type: point-to-point 90 | - interface-name: ethernet-1/2.0 91 | interface-type: point-to-point 92 | - interface-name: system0.0 93 | -------------------------------------------------------------------------------- /configs/superspine2.yaml: -------------------------------------------------------------------------------- 1 | srl_nokia-interfaces:interface: 2 | - name: ethernet-1/1 3 | admin-state: enable 4 | subinterface: 5 | - index: 0 6 | ipv4: 7 | admin-state: enable 8 | address: 9 | - ip-prefix: 10.0.0.11/31 10 | ipv6: 11 | admin-state: enable 12 | address: 13 | - ip-prefix: 1000:10::11/127 14 | - name: ethernet-1/2 15 | admin-state: enable 16 | subinterface: 17 | - index: 0 18 | ipv4: 19 | admin-state: enable 20 | address: 21 | - ip-prefix: 10.0.0.23/31 22 | ipv6: 23 | admin-state: enable 24 | address: 25 | - ip-prefix: 1000:10::23/127 26 | - name: system0 27 | admin-state: enable 28 | subinterface: 29 | - index: 0 30 | ipv4: 31 | address: 32 | - ip-prefix: 30.0.0.10/32 33 | ipv6: 34 | address: 35 | - ip-prefix: 3000:30::10/128 36 | 37 | srl_nokia-network-instance:network-instance: 38 | - name: default 39 | admin-state: enable 40 | interface: 41 | - name: ethernet-1/1.0 42 | - name: ethernet-1/2.0 43 | - name: system0.0 44 | protocols: 45 | srl_nokia-bgp:bgp: 46 | autonomous-system: 65910 47 | router-id: 30.0.0.10 48 | afi-safi: 49 | - afi-safi-name: ipv4-unicast 50 | admin-state: enable 51 | - afi-safi-name: ipv6-unicast 52 | admin-state: enable 53 | group: 54 | - group-name: clos02 55 | admin-state: enable 56 | neighbor: 57 | - peer-address: 10.0.0.10 58 | peer-as: 65056 59 | peer-group: clos02 60 | - peer-address: 10.0.0.22 61 | peer-as: 65078 62 | peer-group: clos02 63 | srl_nokia-isis:isis: 64 | instance: 65 | - name: default 66 | admin-state: enable 67 | level-capability: L2 68 | net: 69 | - 49.0001.3000.0000.0010.00 70 | interface: 71 | - interface-name: ethernet-1/1.0 72 | circuit-type: point-to-point 73 | - interface-name: ethernet-1/2.0 74 | circuit-type: point-to-point 75 | - interface-name: system0.0 76 | level: 77 | - level-number: 2 78 | metric-style: wide 79 | srl_nokia-ospf:ospf: 80 | instance: 81 | - name: default 82 | admin-state: enable 83 | version: ospf-v2 84 | router-id: 30.0.0.10 85 | area: 86 | - area-id: 0.0.0.0 87 | interface: 88 | - interface-name: ethernet-1/1.0 89 | interface-type: point-to-point 90 | - interface-name: ethernet-1/2.0 91 | interface-type: point-to-point 92 | - interface-name: system0.0 93 | -------------------------------------------------------------------------------- /setup.clos02.clab.yml: -------------------------------------------------------------------------------- 1 | name: clos02 2 | 3 | mgmt: 4 | network: br-clos02 5 | ipv4-subnet: 172.100.100.0/24 6 | ipv6-subnet: 2001:172:100:100::0/64 7 | 8 | topology: 9 | kinds: 10 | srl: 11 | image: ghcr.io/nokia/srlinux:25.3.1 12 | linux: 13 | image: ghcr.io/network-unit-testing-system/nuts-testclient:0.0.2 14 | env: 15 | ADMIN_PASSWORD: admin 16 | nodes: 17 | leaf1: 18 | kind: srl 19 | mgmt-ipv4: 172.100.100.2 20 | mgmt-ipv6: 2001:172:100:100::2 21 | leaf2: 22 | kind: srl 23 | mgmt-ipv4: 172.100.100.3 24 | mgmt-ipv6: 2001:172:100:100::3 25 | leaf3: 26 | kind: srl 27 | mgmt-ipv4: 172.100.100.4 28 | mgmt-ipv6: 2001:172:100:100::4 29 | leaf4: 30 | kind: srl 31 | mgmt-ipv4: 172.100.100.5 32 | mgmt-ipv6: 2001:172:100:100::5 33 | 34 | spine1: 35 | kind: srl 36 | type: ixrd3 37 | mgmt-ipv4: 172.100.100.6 38 | mgmt-ipv6: 2001:172:100:100::6 39 | spine2: 40 | kind: srl 41 | type: ixrd3 42 | mgmt-ipv4: 172.100.100.7 43 | mgmt-ipv6: 2001:172:100:100::7 44 | spine3: 45 | kind: srl 46 | type: ixrd3 47 | mgmt-ipv4: 172.100.100.8 48 | mgmt-ipv6: 2001:172:100:100::8 49 | spine4: 50 | kind: srl 51 | type: ixrd3 52 | mgmt-ipv4: 172.100.100.9 53 | mgmt-ipv6: 2001:172:100:100::9 54 | 55 | superspine1: 56 | kind: srl 57 | type: ixrd3 58 | mgmt-ipv4: 172.100.100.10 59 | mgmt-ipv6: 2001:172:100:100::10 60 | superspine2: 61 | kind: srl 62 | type: ixrd3 63 | mgmt-ipv4: 172.100.100.11 64 | mgmt-ipv6: 2001:172:100:100::11 65 | 66 | client1: 67 | kind: linux 68 | image: python:3.10 69 | mgmt-ipv4: 172.100.100.12 70 | mgmt-ipv6: 2001:172:100:100::12 71 | binds: 72 | - nuts_data:/workspace 73 | 74 | client2: 75 | kind: linux 76 | mgmt-ipv4: 172.100.100.13 77 | mgmt-ipv6: 2001:172:100:100::13 78 | client3: 79 | kind: linux 80 | mgmt-ipv4: 172.100.100.14 81 | mgmt-ipv6: 2001:172:100:100::14 82 | client4: 83 | kind: linux 84 | mgmt-ipv4: 172.100.100.15 85 | mgmt-ipv6: 2001:172:100:100::15 86 | 87 | links: 88 | - endpoints: ["leaf1:e1-1", "spine1:e1-1"] 89 | mtu: &mtu 9232 90 | - endpoints: ["leaf1:e1-2", "spine2:e1-1"] 91 | mtu: *mtu 92 | - endpoints: ["leaf2:e1-1", "spine1:e1-2"] 93 | mtu: *mtu 94 | - endpoints: ["leaf2:e1-2", "spine2:e1-2"] 95 | mtu: *mtu 96 | 97 | - endpoints: ["spine1:e1-3", "superspine1:e1-1"] 98 | mtu: *mtu 99 | - endpoints: ["spine2:e1-3", "superspine2:e1-1"] 100 | mtu: *mtu 101 | 102 | - endpoints: ["leaf3:e1-1", "spine3:e1-1"] 103 | mtu: *mtu 104 | - endpoints: ["leaf3:e1-2", "spine4:e1-1"] 105 | mtu: *mtu 106 | - endpoints: ["leaf4:e1-1", "spine3:e1-2"] 107 | mtu: *mtu 108 | - endpoints: ["leaf4:e1-2", "spine4:e1-2"] 109 | mtu: *mtu 110 | 111 | - endpoints: ["spine3:e1-3", "superspine1:e1-2"] 112 | mtu: *mtu 113 | - endpoints: ["spine4:e1-3", "superspine2:e1-2"] 114 | mtu: *mtu 115 | 116 | - endpoints: ["client1:eth1", "leaf1:e1-3"] 117 | mtu: *mtu 118 | - endpoints: ["client2:eth1", "leaf2:e1-3"] 119 | mtu: *mtu 120 | - endpoints: ["client3:eth1", "leaf3:e1-3"] 121 | mtu: *mtu 122 | - endpoints: ["client4:eth1", "leaf4:e1-3"] 123 | mtu: *mtu 124 | -------------------------------------------------------------------------------- /configs/leaf2.yaml: -------------------------------------------------------------------------------- 1 | srl_nokia-interfaces:interface: 2 | - name: ethernet-1/1 3 | admin-state: enable 4 | subinterface: 5 | - index: 0 6 | ipv4: 7 | admin-state: enable 8 | address: 9 | - ip-prefix: 10.0.0.4/31 10 | ipv6: 11 | admin-state: enable 12 | address: 13 | - ip-prefix: 1000:10::4/127 14 | - name: ethernet-1/2 15 | admin-state: enable 16 | subinterface: 17 | - index: 0 18 | ipv4: 19 | admin-state: enable 20 | address: 21 | - ip-prefix: 10.0.0.6/31 22 | ipv6: 23 | admin-state: enable 24 | address: 25 | - ip-prefix: 1000:10::6/127 26 | - name: ethernet-1/3 27 | admin-state: enable 28 | subinterface: 29 | - index: 0 30 | ipv4: 31 | admin-state: enable 32 | address: 33 | - ip-prefix: 10.0.0.26/31 34 | ipv6: 35 | admin-state: enable 36 | address: 37 | - ip-prefix: 1000:10::26/127 38 | - name: system0 39 | admin-state: enable 40 | subinterface: 41 | - index: 0 42 | ipv4: 43 | address: 44 | - ip-prefix: 30.0.0.2/32 45 | ipv6: 46 | address: 47 | - ip-prefix: 3000:30::2/128 48 | 49 | srl_nokia-network-instance:network-instance: 50 | - name: default 51 | admin-state: enable 52 | interface: 53 | - name: ethernet-1/1.0 54 | - name: ethernet-1/2.0 55 | - name: ethernet-1/3.0 56 | - name: system0.0 57 | protocols: 58 | srl_nokia-bgp:bgp: 59 | autonomous-system: 65002 60 | router-id: 30.0.0.2 61 | afi-safi: 62 | - afi-safi-name: ipv4-unicast 63 | admin-state: enable 64 | - afi-safi-name: ipv6-unicast 65 | admin-state: enable 66 | group: 67 | - group-name: clos02 68 | admin-state: enable 69 | neighbor: 70 | - peer-address: 10.0.0.5 71 | peer-as: 65056 72 | peer-group: clos02 73 | - peer-address: 10.0.0.7 74 | peer-as: 65056 75 | peer-group: clos02 76 | srl_nokia-isis:isis: 77 | instance: 78 | - name: default 79 | admin-state: enable 80 | level-capability: L2 81 | net: 82 | - 49.0001.3000.0000.0002.00 83 | interface: 84 | - interface-name: ethernet-1/1.0 85 | circuit-type: point-to-point 86 | - interface-name: ethernet-1/2.0 87 | circuit-type: point-to-point 88 | - interface-name: ethernet-1/3.0 89 | circuit-type: point-to-point 90 | - interface-name: system0.0 91 | level: 92 | - level-number: 2 93 | metric-style: wide 94 | srl_nokia-ospf:ospf: 95 | instance: 96 | - name: default 97 | admin-state: enable 98 | version: ospf-v2 99 | router-id: 30.0.0.2 100 | area: 101 | - area-id: 0.0.0.0 102 | interface: 103 | - interface-name: ethernet-1/1.0 104 | interface-type: point-to-point 105 | - interface-name: ethernet-1/2.0 106 | interface-type: point-to-point 107 | - interface-name: ethernet-1/3.0 108 | interface-type: point-to-point 109 | - interface-name: system0.0 110 | -------------------------------------------------------------------------------- /configs/leaf1.yaml: -------------------------------------------------------------------------------- 1 | srl_nokia-interfaces:interface: 2 | - name: ethernet-1/1 3 | admin-state: enable 4 | subinterface: 5 | - index: 0 6 | ipv4: 7 | admin-state: enable 8 | address: 9 | - ip-prefix: 10.0.0.0/31 10 | ipv6: 11 | admin-state: enable 12 | address: 13 | - ip-prefix: '1000:10::/127' 14 | - name: ethernet-1/2 15 | admin-state: enable 16 | subinterface: 17 | - index: 0 18 | ipv4: 19 | admin-state: enable 20 | address: 21 | - ip-prefix: 10.0.0.2/31 22 | ipv6: 23 | admin-state: enable 24 | address: 25 | - ip-prefix: '1000:10::2/127' 26 | - name: ethernet-1/3 27 | admin-state: enable 28 | subinterface: 29 | - index: 0 30 | ipv4: 31 | admin-state: enable 32 | address: 33 | - ip-prefix: 10.0.0.24/31 34 | ipv6: 35 | admin-state: enable 36 | address: 37 | - ip-prefix: '1000:10::24/127' 38 | - name: system0 39 | admin-state: enable 40 | subinterface: 41 | - index: 0 42 | ipv4: 43 | address: 44 | - ip-prefix: 30.0.0.1/32 45 | ipv6: 46 | address: 47 | - ip-prefix: '3000:30::1/128' 48 | 49 | srl_nokia-network-instance:network-instance: 50 | - name: default 51 | admin-state: enable 52 | interface: 53 | - name: ethernet-1/1.0 54 | - name: ethernet-1/2.0 55 | - name: ethernet-1/3.0 56 | - name: system0.0 57 | protocols: 58 | srl_nokia-bgp:bgp: 59 | autonomous-system: 65001 60 | router-id: 30.0.0.1 61 | afi-safi: 62 | - afi-safi-name: ipv4-unicast 63 | admin-state: enable 64 | - afi-safi-name: ipv6-unicast 65 | admin-state: enable 66 | group: 67 | - group-name: clos02 68 | admin-state: enable 69 | neighbor: 70 | - peer-address: 10.0.0.1 71 | peer-as: 65056 72 | peer-group: clos02 73 | - peer-address: 10.0.0.3 74 | peer-as: 65056 75 | peer-group: clos02 76 | srl_nokia-isis:isis: 77 | instance: 78 | - name: default 79 | admin-state: enable 80 | level-capability: L2 81 | net: 82 | - 49.0001.3000.0000.0001.00 83 | interface: 84 | - interface-name: ethernet-1/1.0 85 | circuit-type: point-to-point 86 | - interface-name: ethernet-1/2.0 87 | circuit-type: point-to-point 88 | - interface-name: ethernet-1/3.0 89 | circuit-type: point-to-point 90 | - interface-name: system0.0 91 | level: 92 | - level-number: 2 93 | metric-style: wide 94 | srl_nokia-ospf:ospf: 95 | instance: 96 | - name: default 97 | admin-state: enable 98 | version: ospf-v2 99 | router-id: 30.0.0.1 100 | area: 101 | - area-id: 0.0.0.0 102 | interface: 103 | - interface-name: ethernet-1/1.0 104 | interface-type: point-to-point 105 | - interface-name: ethernet-1/2.0 106 | interface-type: point-to-point 107 | - interface-name: ethernet-1/3.0 108 | interface-type: point-to-point 109 | - interface-name: system0.0 110 | -------------------------------------------------------------------------------- /configs/leaf3.yaml: -------------------------------------------------------------------------------- 1 | srl_nokia-interfaces:interface: 2 | - name: ethernet-1/1 3 | admin-state: enable 4 | subinterface: 5 | - index: 0 6 | ipv4: 7 | admin-state: enable 8 | address: 9 | - ip-prefix: 10.0.0.12/31 10 | ipv6: 11 | admin-state: enable 12 | address: 13 | - ip-prefix: 1000:10::12/127 14 | - name: ethernet-1/2 15 | admin-state: enable 16 | subinterface: 17 | - index: 0 18 | ipv4: 19 | admin-state: enable 20 | address: 21 | - ip-prefix: 10.0.0.14/31 22 | ipv6: 23 | admin-state: enable 24 | address: 25 | - ip-prefix: 1000:10::14/127 26 | - name: ethernet-1/3 27 | admin-state: enable 28 | subinterface: 29 | - index: 0 30 | ipv4: 31 | admin-state: enable 32 | address: 33 | - ip-prefix: 10.0.0.28/31 34 | ipv6: 35 | admin-state: enable 36 | address: 37 | - ip-prefix: 1000:10::28/127 38 | - name: system0 39 | admin-state: enable 40 | subinterface: 41 | - index: 0 42 | ipv4: 43 | address: 44 | - ip-prefix: 30.0.0.3/32 45 | ipv6: 46 | address: 47 | - ip-prefix: 3000:30::3/128 48 | 49 | srl_nokia-network-instance:network-instance: 50 | - name: default 51 | admin-state: enable 52 | interface: 53 | - name: ethernet-1/1.0 54 | - name: ethernet-1/2.0 55 | - name: ethernet-1/3.0 56 | - name: system0.0 57 | protocols: 58 | srl_nokia-bgp:bgp: 59 | autonomous-system: 65003 60 | router-id: 30.0.0.3 61 | afi-safi: 62 | - afi-safi-name: ipv4-unicast 63 | admin-state: enable 64 | - afi-safi-name: ipv6-unicast 65 | admin-state: enable 66 | group: 67 | - group-name: clos02 68 | admin-state: enable 69 | neighbor: 70 | - peer-address: 10.0.0.13 71 | peer-as: 65078 72 | peer-group: clos02 73 | - peer-address: 10.0.0.15 74 | peer-as: 65078 75 | peer-group: clos02 76 | srl_nokia-isis:isis: 77 | instance: 78 | - name: default 79 | admin-state: enable 80 | level-capability: L2 81 | net: 82 | - 49.0001.3000.0000.0003.00 83 | interface: 84 | - interface-name: ethernet-1/1.0 85 | circuit-type: point-to-point 86 | - interface-name: ethernet-1/2.0 87 | circuit-type: point-to-point 88 | - interface-name: ethernet-1/3.0 89 | circuit-type: point-to-point 90 | - interface-name: system0.0 91 | level: 92 | - level-number: 2 93 | metric-style: wide 94 | srl_nokia-ospf:ospf: 95 | instance: 96 | - name: default 97 | admin-state: enable 98 | version: ospf-v2 99 | router-id: 30.0.0.3 100 | area: 101 | - area-id: 0.0.0.0 102 | interface: 103 | - interface-name: ethernet-1/1.0 104 | interface-type: point-to-point 105 | - interface-name: ethernet-1/2.0 106 | interface-type: point-to-point 107 | - interface-name: ethernet-1/3.0 108 | interface-type: point-to-point 109 | - interface-name: system0.0 110 | -------------------------------------------------------------------------------- /configs/leaf4.yaml: -------------------------------------------------------------------------------- 1 | srl_nokia-interfaces:interface: 2 | - name: ethernet-1/1 3 | admin-state: enable 4 | subinterface: 5 | - index: 0 6 | ipv4: 7 | admin-state: enable 8 | address: 9 | - ip-prefix: 10.0.0.16/31 10 | ipv6: 11 | admin-state: enable 12 | address: 13 | - ip-prefix: 1000:10::16/127 14 | - name: ethernet-1/2 15 | admin-state: enable 16 | subinterface: 17 | - index: 0 18 | ipv4: 19 | admin-state: enable 20 | address: 21 | - ip-prefix: 10.0.0.18/31 22 | ipv6: 23 | admin-state: enable 24 | address: 25 | - ip-prefix: 1000:10::18/127 26 | - name: ethernet-1/3 27 | admin-state: enable 28 | subinterface: 29 | - index: 0 30 | ipv4: 31 | admin-state: enable 32 | address: 33 | - ip-prefix: 10.0.0.30/31 34 | ipv6: 35 | admin-state: enable 36 | address: 37 | - ip-prefix: 1000:10::30/127 38 | - name: system0 39 | admin-state: enable 40 | subinterface: 41 | - index: 0 42 | ipv4: 43 | address: 44 | - ip-prefix: 30.0.0.4/32 45 | ipv6: 46 | address: 47 | - ip-prefix: 3000:30::4/128 48 | 49 | srl_nokia-network-instance:network-instance: 50 | - name: default 51 | admin-state: enable 52 | interface: 53 | - name: ethernet-1/1.0 54 | - name: ethernet-1/2.0 55 | - name: ethernet-1/3.0 56 | - name: system0.0 57 | protocols: 58 | srl_nokia-bgp:bgp: 59 | autonomous-system: 65004 60 | router-id: 30.0.0.4 61 | afi-safi: 62 | - afi-safi-name: ipv4-unicast 63 | admin-state: enable 64 | - afi-safi-name: ipv6-unicast 65 | admin-state: enable 66 | group: 67 | - group-name: clos02 68 | admin-state: enable 69 | neighbor: 70 | - peer-address: 10.0.0.17 71 | peer-as: 65078 72 | peer-group: clos02 73 | - peer-address: 10.0.0.19 74 | peer-as: 65078 75 | peer-group: clos02 76 | srl_nokia-isis:isis: 77 | instance: 78 | - name: default 79 | admin-state: enable 80 | level-capability: L2 81 | net: 82 | - 49.0001.3000.0000.0004.00 83 | interface: 84 | - interface-name: ethernet-1/1.0 85 | circuit-type: point-to-point 86 | - interface-name: ethernet-1/2.0 87 | circuit-type: point-to-point 88 | - interface-name: ethernet-1/3.0 89 | circuit-type: point-to-point 90 | - interface-name: system0.0 91 | level: 92 | - level-number: 2 93 | metric-style: wide 94 | srl_nokia-ospf:ospf: 95 | instance: 96 | - name: default 97 | admin-state: enable 98 | version: ospf-v2 99 | router-id: 30.0.0.4 100 | area: 101 | - area-id: 0.0.0.0 102 | interface: 103 | - interface-name: ethernet-1/1.0 104 | interface-type: point-to-point 105 | - interface-name: ethernet-1/2.0 106 | interface-type: point-to-point 107 | - interface-name: ethernet-1/3.0 108 | interface-type: point-to-point 109 | - interface-name: system0.0 110 | -------------------------------------------------------------------------------- /configs/spine1.yaml: -------------------------------------------------------------------------------- 1 | srl_nokia-interfaces:interface: 2 | - name: ethernet-1/1 3 | admin-state: enable 4 | subinterface: 5 | - index: 0 6 | ipv4: 7 | admin-state: enable 8 | address: 9 | - ip-prefix: 10.0.0.1/31 10 | ipv6: 11 | admin-state: enable 12 | address: 13 | - ip-prefix: 1000:10::1/127 14 | - name: ethernet-1/2 15 | admin-state: enable 16 | subinterface: 17 | - index: 0 18 | ipv4: 19 | admin-state: enable 20 | address: 21 | - ip-prefix: 10.0.0.5/31 22 | ipv6: 23 | admin-state: enable 24 | address: 25 | - ip-prefix: 1000:10::5/127 26 | - name: ethernet-1/3 27 | admin-state: enable 28 | subinterface: 29 | - index: 0 30 | ipv4: 31 | admin-state: enable 32 | address: 33 | - ip-prefix: 10.0.0.8/31 34 | ipv6: 35 | admin-state: enable 36 | address: 37 | - ip-prefix: 1000:10::8/127 38 | - name: system0 39 | admin-state: enable 40 | subinterface: 41 | - index: 0 42 | ipv4: 43 | address: 44 | - ip-prefix: 30.0.0.5/32 45 | ipv6: 46 | address: 47 | - ip-prefix: 3000:30::5/128 48 | 49 | srl_nokia-network-instance:network-instance: 50 | - name: default 51 | admin-state: enable 52 | interface: 53 | - name: ethernet-1/1.0 54 | - name: ethernet-1/2.0 55 | - name: ethernet-1/3.0 56 | - name: system0.0 57 | protocols: 58 | srl_nokia-bgp:bgp: 59 | autonomous-system: 65056 60 | router-id: 30.0.0.5 61 | afi-safi: 62 | - afi-safi-name: ipv4-unicast 63 | admin-state: enable 64 | - afi-safi-name: ipv6-unicast 65 | admin-state: enable 66 | group: 67 | - group-name: clos02 68 | admin-state: enable 69 | neighbor: 70 | - peer-address: 10.0.0.0 71 | peer-as: 65001 72 | peer-group: clos02 73 | - peer-address: 10.0.0.4 74 | peer-as: 65002 75 | peer-group: clos02 76 | - peer-address: 10.0.0.9 77 | peer-as: 65910 78 | peer-group: clos02 79 | srl_nokia-isis:isis: 80 | instance: 81 | - name: default 82 | admin-state: enable 83 | level-capability: L2 84 | net: 85 | - 49.0001.3000.0000.0005.00 86 | interface: 87 | - interface-name: ethernet-1/1.0 88 | circuit-type: point-to-point 89 | - interface-name: ethernet-1/2.0 90 | circuit-type: point-to-point 91 | - interface-name: ethernet-1/3.0 92 | circuit-type: point-to-point 93 | - interface-name: system0.0 94 | level: 95 | - level-number: 2 96 | metric-style: wide 97 | srl_nokia-ospf:ospf: 98 | instance: 99 | - name: default 100 | admin-state: enable 101 | version: ospf-v2 102 | router-id: 30.0.0.5 103 | area: 104 | - area-id: 0.0.0.0 105 | interface: 106 | - interface-name: ethernet-1/1.0 107 | interface-type: point-to-point 108 | - interface-name: ethernet-1/2.0 109 | interface-type: point-to-point 110 | - interface-name: ethernet-1/3.0 111 | interface-type: point-to-point 112 | - interface-name: system0.0 113 | -------------------------------------------------------------------------------- /configs/spine2.yaml: -------------------------------------------------------------------------------- 1 | srl_nokia-interfaces:interface: 2 | - name: ethernet-1/1 3 | admin-state: enable 4 | subinterface: 5 | - index: 0 6 | ipv4: 7 | admin-state: enable 8 | address: 9 | - ip-prefix: 10.0.0.3/31 10 | ipv6: 11 | admin-state: enable 12 | address: 13 | - ip-prefix: 1000:10::3/127 14 | - name: ethernet-1/2 15 | admin-state: enable 16 | subinterface: 17 | - index: 0 18 | ipv4: 19 | admin-state: enable 20 | address: 21 | - ip-prefix: 10.0.0.7/31 22 | ipv6: 23 | admin-state: enable 24 | address: 25 | - ip-prefix: 1000:10::7/127 26 | - name: ethernet-1/3 27 | admin-state: enable 28 | subinterface: 29 | - index: 0 30 | ipv4: 31 | admin-state: enable 32 | address: 33 | - ip-prefix: 10.0.0.10/31 34 | ipv6: 35 | admin-state: enable 36 | address: 37 | - ip-prefix: 1000:10::10/127 38 | - name: system0 39 | admin-state: enable 40 | subinterface: 41 | - index: 0 42 | ipv4: 43 | address: 44 | - ip-prefix: 30.0.0.6/32 45 | ipv6: 46 | address: 47 | - ip-prefix: 3000:30::6/128 48 | 49 | srl_nokia-network-instance:network-instance: 50 | - name: default 51 | admin-state: enable 52 | interface: 53 | - name: ethernet-1/1.0 54 | - name: ethernet-1/2.0 55 | - name: ethernet-1/3.0 56 | - name: system0.0 57 | protocols: 58 | srl_nokia-bgp:bgp: 59 | autonomous-system: 65056 60 | router-id: 30.0.0.6 61 | afi-safi: 62 | - afi-safi-name: ipv4-unicast 63 | admin-state: enable 64 | - afi-safi-name: ipv6-unicast 65 | admin-state: enable 66 | group: 67 | - group-name: clos02 68 | admin-state: enable 69 | neighbor: 70 | - peer-address: 10.0.0.2 71 | peer-as: 65001 72 | peer-group: clos02 73 | - peer-address: 10.0.0.6 74 | peer-as: 65002 75 | peer-group: clos02 76 | - peer-address: 10.0.0.11 77 | peer-as: 65910 78 | peer-group: clos02 79 | srl_nokia-isis:isis: 80 | instance: 81 | - name: default 82 | admin-state: enable 83 | level-capability: L2 84 | net: 85 | - 49.0001.3000.0000.0006.00 86 | interface: 87 | - interface-name: ethernet-1/1.0 88 | circuit-type: point-to-point 89 | - interface-name: ethernet-1/2.0 90 | circuit-type: point-to-point 91 | - interface-name: ethernet-1/3.0 92 | circuit-type: point-to-point 93 | - interface-name: system0.0 94 | level: 95 | - level-number: 2 96 | metric-style: wide 97 | srl_nokia-ospf:ospf: 98 | instance: 99 | - name: default 100 | admin-state: enable 101 | version: ospf-v2 102 | router-id: 30.0.0.6 103 | area: 104 | - area-id: 0.0.0.0 105 | interface: 106 | - interface-name: ethernet-1/1.0 107 | interface-type: point-to-point 108 | - interface-name: ethernet-1/2.0 109 | interface-type: point-to-point 110 | - interface-name: ethernet-1/3.0 111 | interface-type: point-to-point 112 | - interface-name: system0.0 113 | -------------------------------------------------------------------------------- /configs/spine3.yaml: -------------------------------------------------------------------------------- 1 | srl_nokia-interfaces:interface: 2 | - name: ethernet-1/1 3 | admin-state: enable 4 | subinterface: 5 | - index: 0 6 | ipv4: 7 | admin-state: enable 8 | address: 9 | - ip-prefix: 10.0.0.13/31 10 | ipv6: 11 | admin-state: enable 12 | address: 13 | - ip-prefix: 1000:10::13/127 14 | - name: ethernet-1/2 15 | admin-state: enable 16 | subinterface: 17 | - index: 0 18 | ipv4: 19 | admin-state: enable 20 | address: 21 | - ip-prefix: 10.0.0.17/31 22 | ipv6: 23 | admin-state: enable 24 | address: 25 | - ip-prefix: 1000:10::17/127 26 | - name: ethernet-1/3 27 | admin-state: enable 28 | subinterface: 29 | - index: 0 30 | ipv4: 31 | admin-state: enable 32 | address: 33 | - ip-prefix: 10.0.0.20/31 34 | ipv6: 35 | admin-state: enable 36 | address: 37 | - ip-prefix: 1000:10::20/127 38 | - name: system0 39 | admin-state: enable 40 | subinterface: 41 | - index: 0 42 | ipv4: 43 | address: 44 | - ip-prefix: 30.0.0.7/32 45 | ipv6: 46 | address: 47 | - ip-prefix: 3000:30::7/128 48 | 49 | srl_nokia-network-instance:network-instance: 50 | - name: default 51 | admin-state: enable 52 | interface: 53 | - name: ethernet-1/1.0 54 | - name: ethernet-1/2.0 55 | - name: ethernet-1/3.0 56 | - name: system0.0 57 | protocols: 58 | srl_nokia-bgp:bgp: 59 | autonomous-system: 65078 60 | router-id: 30.0.0.7 61 | afi-safi: 62 | - afi-safi-name: ipv4-unicast 63 | admin-state: enable 64 | - afi-safi-name: ipv6-unicast 65 | admin-state: enable 66 | group: 67 | - group-name: clos02 68 | admin-state: enable 69 | neighbor: 70 | - peer-address: 10.0.0.12 71 | peer-as: 65003 72 | peer-group: clos02 73 | - peer-address: 10.0.0.16 74 | peer-as: 65004 75 | peer-group: clos02 76 | - peer-address: 10.0.0.21 77 | peer-as: 65910 78 | peer-group: clos02 79 | srl_nokia-isis:isis: 80 | instance: 81 | - name: default 82 | admin-state: enable 83 | level-capability: L2 84 | net: 85 | - 49.0001.3000.0000.0007.00 86 | interface: 87 | - interface-name: ethernet-1/1.0 88 | circuit-type: point-to-point 89 | - interface-name: ethernet-1/2.0 90 | circuit-type: point-to-point 91 | - interface-name: ethernet-1/3.0 92 | circuit-type: point-to-point 93 | - interface-name: system0.0 94 | level: 95 | - level-number: 2 96 | metric-style: wide 97 | srl_nokia-ospf:ospf: 98 | instance: 99 | - name: default 100 | admin-state: enable 101 | version: ospf-v2 102 | router-id: 30.0.0.7 103 | area: 104 | - area-id: 0.0.0.0 105 | interface: 106 | - interface-name: ethernet-1/1.0 107 | interface-type: point-to-point 108 | - interface-name: ethernet-1/2.0 109 | interface-type: point-to-point 110 | - interface-name: ethernet-1/3.0 111 | interface-type: point-to-point 112 | - interface-name: system0.0 113 | -------------------------------------------------------------------------------- /configs/spine4.yaml: -------------------------------------------------------------------------------- 1 | srl_nokia-interfaces:interface: 2 | - name: ethernet-1/1 3 | admin-state: enable 4 | subinterface: 5 | - index: 0 6 | ipv4: 7 | admin-state: enable 8 | address: 9 | - ip-prefix: 10.0.0.15/31 10 | ipv6: 11 | admin-state: enable 12 | address: 13 | - ip-prefix: 1000:10::15/127 14 | - name: ethernet-1/2 15 | admin-state: enable 16 | subinterface: 17 | - index: 0 18 | ipv4: 19 | admin-state: enable 20 | address: 21 | - ip-prefix: 10.0.0.19/31 22 | ipv6: 23 | admin-state: enable 24 | address: 25 | - ip-prefix: 1000:10::19/127 26 | - name: ethernet-1/3 27 | admin-state: enable 28 | subinterface: 29 | - index: 0 30 | ipv4: 31 | admin-state: enable 32 | address: 33 | - ip-prefix: 10.0.0.22/31 34 | ipv6: 35 | admin-state: enable 36 | address: 37 | - ip-prefix: 1000:10::22/127 38 | - name: system0 39 | admin-state: enable 40 | subinterface: 41 | - index: 0 42 | ipv4: 43 | address: 44 | - ip-prefix: 30.0.0.8/32 45 | ipv6: 46 | address: 47 | - ip-prefix: 3000:30::8/128 48 | 49 | srl_nokia-network-instance:network-instance: 50 | - name: default 51 | admin-state: enable 52 | interface: 53 | - name: ethernet-1/1.0 54 | - name: ethernet-1/2.0 55 | - name: ethernet-1/3.0 56 | - name: system0.0 57 | protocols: 58 | srl_nokia-bgp:bgp: 59 | autonomous-system: 65078 60 | router-id: 30.0.0.8 61 | afi-safi: 62 | - afi-safi-name: ipv4-unicast 63 | admin-state: enable 64 | - afi-safi-name: ipv6-unicast 65 | admin-state: enable 66 | group: 67 | - group-name: clos02 68 | admin-state: enable 69 | neighbor: 70 | - peer-address: 10.0.0.14 71 | peer-as: 65003 72 | peer-group: clos02 73 | - peer-address: 10.0.0.18 74 | peer-as: 65004 75 | peer-group: clos02 76 | - peer-address: 10.0.0.23 77 | peer-as: 65910 78 | peer-group: clos02 79 | srl_nokia-isis:isis: 80 | instance: 81 | - name: default 82 | admin-state: enable 83 | level-capability: L2 84 | net: 85 | - 49.0001.3000.0000.0008.00 86 | interface: 87 | - interface-name: ethernet-1/1.0 88 | circuit-type: point-to-point 89 | - interface-name: ethernet-1/2.0 90 | circuit-type: point-to-point 91 | - interface-name: ethernet-1/3.0 92 | circuit-type: point-to-point 93 | - interface-name: system0.0 94 | level: 95 | - level-number: 2 96 | metric-style: wide 97 | srl_nokia-ospf:ospf: 98 | instance: 99 | - name: default 100 | admin-state: enable 101 | version: ospf-v2 102 | router-id: 30.0.0.8 103 | area: 104 | - area-id: 0.0.0.0 105 | interface: 106 | - interface-name: ethernet-1/1.0 107 | interface-type: point-to-point 108 | - interface-name: ethernet-1/2.0 109 | interface-type: point-to-point 110 | - interface-name: ethernet-1/3.0 111 | interface-type: point-to-point 112 | - interface-name: system0.0 113 | --------------------------------------------------------------------------------