Loading src/tests/eucnc24/.gitlab-ci.yml +12 −12 Original line number Diff line number Diff line Loading @@ -132,22 +132,22 @@ end2end_test eucnc24: - sudo containerlab exec --name eucnc24 --label clab-node-name=r3 --cmd "Cli --command \"enable"$'\n'$"show running-config\"" # Run end-to-end test: test connectivity with ping - export TEST1_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.1.10' --format json) - export TEST1_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.1.10' --format json) - echo $TEST1_10 - echo $TEST1_10 | grep -E '3 packets transmitted, 3 received, 0\% packet loss' - export TEST1_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.1.1' --format json) - export TEST1_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.1.1' --format json) - echo $TEST1_1 - echo $TEST1_1 | grep -E '3 packets transmitted, 3 received, 0\% packet loss' - export TEST2_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.2.1' --format json) - export TEST2_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.2.1' --format json) - echo $TEST2_1 - echo $TEST2_1 | grep -E '3 packets transmitted, 3 received, 0\% packet loss' - export TEST2_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.2.10' --format json) - export TEST2_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.2.10' --format json) - echo $TEST2_10 - echo $TEST2_10 | grep -E '3 packets transmitted, 3 received, 0\% packet loss' - export TEST3_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.3.1' --format json) - export TEST3_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.3.1' --format json) - echo $TEST3_1 - echo $TEST3_1 | grep -E '3 packets transmitted, 0 received, 100\% packet loss' - export TEST3_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.3.10' --format json) - export TEST3_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.3.10' --format json) - echo $TEST3_10 - echo $TEST3_10 | grep -E '3 packets transmitted, 0 received, 100\% packet loss' Loading @@ -166,22 +166,22 @@ end2end_test eucnc24: $CI_REGISTRY_IMAGE/${TEST_NAME}:latest /var/teraflow/run-service-ietf-create.sh # Run end-to-end test: test connectivity with ping - export TEST1_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.1.10' --format json) - export TEST1_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.1.10' --format json) - echo $TEST1_10 - echo $TEST1_10 | grep -E '3 packets transmitted, 3 received, 0\% packet loss' - export TEST1_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.1.1' --format json) - export TEST1_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.1.1' --format json) - echo $TEST1_1 - echo $TEST1_1 | grep -E '3 packets transmitted, 3 received, 0\% packet loss' - export TEST2_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.2.1' --format json) - export TEST2_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.2.1' --format json) - echo $TEST2_1 - echo $TEST2_1 | grep -E '3 packets transmitted, 3 received, 0\% packet loss' - export TEST2_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.2.10' --format json) - export TEST2_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.2.10' --format json) - echo $TEST2_10 - echo $TEST2_10 | grep -E '3 packets transmitted, 3 received, 0\% packet loss' - export TEST3_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.3.1' --format json) - export TEST3_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.3.1' --format json) - echo $TEST3_1 - echo $TEST3_1 | grep -E '3 packets transmitted, 0 received, 100\% packet loss' - export TEST3_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.3.10' --format json) - export TEST3_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.3.10' --format json) - echo $TEST3_10 - echo $TEST3_10 | grep -E '3 packets transmitted, 0 received, 100\% packet loss' Loading src/tests/eucnc24/README.md +39 −51 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ ## TeraFlowSDN Deployment ```bash cd ~/tfs-ctrl source dataplane-in-a-box/deploy_specs.sh source ~/tfs-ctrl/src/tests/eucnc24/deploy_specs.sh ./deploy/all.sh ``` Loading @@ -16,67 +16,55 @@ source dataplane-in-a-box/deploy_specs.sh ## Download and install ContainerLab ```bash sudo bash -c "$(curl -sL https://get.containerlab.dev)" -- -v 0.48.6 sudo bash -c "$(curl -sL https://get.containerlab.dev)" -- -v 0.59.0 ``` ## Download Arista cEOS image and create Docker image ```bash cd ~/tfs-ctrl/dataplane-in-a-box docker import arista/cEOS64-lab-4.31.2F.tar ceos:4.31.2F cd ~/tfs-ctrl/src/tests/eucnc24/ docker import arista/cEOS64-lab-4.32.2F.tar ceos:4.32.2F ``` ## Deploy scenario ```bash cd ~/tfs-ctrl/dataplane-in-a-box sudo containerlab deploy --topo arista.clab.yml cd ~/tfs-ctrl/src/tests/eucnc24/ sudo containerlab deploy --topo eucnc24.clab.yml ``` ## Inspect scenario ```bash cd ~/tfs-ctrl/dataplane-in-a-box sudo containerlab inspect --topo arista.clab.yml cd ~/tfs-ctrl/src/tests/eucnc24/ sudo containerlab inspect --topo eucnc24.clab.yml ``` ## Destroy scenario ```bash cd ~/tfs-ctrl/dataplane-in-a-box sudo containerlab destroy --topo arista.clab.yml sudo rm -rf clab-arista/ .arista.clab.yml.bak cd ~/tfs-ctrl/src/tests/eucnc24/ sudo containerlab destroy --topo eucnc24.clab.yml sudo rm -rf clab-eucnc24/ .eucnc24.clab.yml.bak ``` ## Access cEOS Bash ## Access cEOS Bash/CLI ```bash docker exec -it clab-arista-r1 bash ``` ## Access cEOS CLI ```bash docker exec -it clab-arista-r1 Cli docker exec -it clab-arista-r2 Cli docker exec -it clab-eucnc24-r1 bash docker exec -it clab-eucnc24-r2 bash docker exec -it clab-eucnc24-r3 bash docker exec -it clab-eucnc24-r1 Cli docker exec -it clab-eucnc24-r2 Cli docker exec -it clab-eucnc24-r3 Cli ``` ## Configure ContainerLab clients ```bash docker exec -it clab-arista-client1 bash ip address add 192.168.1.10/24 dev eth1 ip route add 192.168.2.0/24 via 192.168.1.1 ip route add 192.168.3.0/24 via 192.168.1.1 ping 192.168.2.10 ping 192.168.3.10 docker exec -it clab-arista-client2 bash ip address add 192.168.2.10/24 dev eth1 ip route add 192.168.1.0/24 via 192.168.2.1 ip route add 192.168.3.0/24 via 192.168.2.1 ping 192.168.1.10 ping 192.168.3.10 docker exec -it clab-arista-client3 bash ip address add 192.168.3.10/24 dev eth1 ip route add 192.168.2.0/24 via 192.168.3.1 ip route add 192.168.3.0/24 via 192.168.3.1 ping 192.168.2.10 ping 192.168.3.10 docker exec -it clab-eucnc24-dc1 bash ip address add 172.16.1.10/24 dev eth1 ip route add 172.16.2.0/24 via 172.16.1.1 ping 172.16.2.10 docker exec -it clab-eucnc24-dc2 bash ip address add 172.16.2.10/24 dev eth1 ip route add 172.16.1.0/24 via 172.16.2.1 ping 172.16.1.10 ``` ## Install gNMIc Loading @@ -86,38 +74,38 @@ sudo bash -c "$(curl -sL https://get-gnmic.kmrd.dev)" ## gNMI Capabilities request ```bash gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure capabilities gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure capabilities ``` ## gNMI Get request ```bash gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path / > wan1.json gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path /interfaces/interface > wan1-ifaces.json gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path / > r1.json gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path /interfaces/interface > r1-ifaces.json ``` ## gNMI Set request ```bash #gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --update-path /system/config/hostname --update-value srl11 #gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path /system/config/hostname gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --update-path /system/config/hostname --update-value srl11 gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path /system/config/hostname ``` ## Subscribe request ```bash gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf subscribe --path /interfaces/interface[name=Management0]/state/ gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf subscribe --path /interfaces/interface[name=Management0]/state/ # In another terminal, you can generate traffic opening SSH connection ssh admin@clab-arista-wan1 ssh admin@clab-eucnc24-r1 ``` # Check configurations done: ```bash gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path '/network-instances' > wan1-nis.json gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path '/interfaces' > wan1-ifs.json gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path '/network-instances' > r1-nis.json gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path '/interfaces' > r1-ifs.json ``` # Delete elements: ```bash --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --delete '/network-instances/network-instance[name=b19229e8]' --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --delete '/interfaces/interface[name=ethernet-1/1]/subinterfaces/subinterface[index=0]' --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --delete '/interfaces/interface[name=ethernet-1/2]/subinterfaces/subinterface[index=0]' --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --delete '/network-instances/network-instance[name=b19229e8]' --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --delete '/interfaces/interface[name=ethernet-1/1]/subinterfaces/subinterface[index=0]' --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --delete '/interfaces/interface[name=ethernet-1/2]/subinterfaces/subinterface[index=0]' ``` src/tests/eucnc24/clab/eucnc24.clab.yml +4 −4 Original line number Diff line number Diff line Loading @@ -55,16 +55,16 @@ topology: mgmt-ipv4: 172.20.20.201 exec: - ip link set address 00:c1:ab:00:01:01 dev eth1 - ip address add 192.168.1.10/24 dev eth1 - ip route add 192.168.2.0/24 via 192.168.1.1 - ip address add 172.16.1.10/24 dev eth1 - ip route add 172.16.2.0/24 via 172.16.1.1 dc2: kind: linux mgmt-ipv4: 172.20.20.202 exec: - ip link set address 00:c1:ab:00:02:01 dev eth1 - ip address add 192.168.2.10/24 dev eth1 - ip route add 192.168.1.0/24 via 192.168.2.1 - ip address add 172.16.2.10/24 dev eth1 - ip route add 172.16.1.0/24 via 172.16.2.1 links: - endpoints: ["r1:eth2", "r2:eth1"] Loading src/tests/eucnc24/data/ietf-l3vpn-service.json +4 −4 Original line number Diff line number Diff line Loading @@ -19,8 +19,8 @@ "ipv4": { "address-allocation-type": "ietf-l3vpn-svc:static-address", "addresses": { "provider-address": "192.168.1.1", "customer-address": "192.168.1.10", "provider-address": "172.16.1.1", "customer-address": "172.16.1.10", "prefix-length": 24 } } Loading Loading @@ -56,8 +56,8 @@ "ipv4": { "address-allocation-type": "ietf-l3vpn-svc:static-address", "addresses": { "provider-address": "192.168.2.1", "customer-address": "192.168.2.10", "provider-address": "172.16.2.1", "customer-address": "172.16.2.10", "prefix-length": 24 } } Loading src/tests/eucnc24/data/tfs-service.json +2 −2 Original line number Diff line number Diff line Loading @@ -14,11 +14,11 @@ "service_config": {"config_rules": [ {"action": "CONFIGACTION_SET", "custom": { "resource_key": "/device[dc1]/endpoint[eth1]/settings", "resource_value": {"address_ip": "192.168.1.10", "address_prefix": 24, "index": 0} "resource_value": {"address_ip": "172.16.1.10", "address_prefix": 24, "index": 0} }}, {"action": "CONFIGACTION_SET", "custom": { "resource_key": "/device[dc2]/endpoint[eth1]/settings", "resource_value": {"address_ip": "192.168.2.10", "address_prefix": 24, "index": 0} "resource_value": {"address_ip": "172.16.2.10", "address_prefix": 24, "index": 0} }} ]} } Loading Loading
src/tests/eucnc24/.gitlab-ci.yml +12 −12 Original line number Diff line number Diff line Loading @@ -132,22 +132,22 @@ end2end_test eucnc24: - sudo containerlab exec --name eucnc24 --label clab-node-name=r3 --cmd "Cli --command \"enable"$'\n'$"show running-config\"" # Run end-to-end test: test connectivity with ping - export TEST1_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.1.10' --format json) - export TEST1_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.1.10' --format json) - echo $TEST1_10 - echo $TEST1_10 | grep -E '3 packets transmitted, 3 received, 0\% packet loss' - export TEST1_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.1.1' --format json) - export TEST1_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.1.1' --format json) - echo $TEST1_1 - echo $TEST1_1 | grep -E '3 packets transmitted, 3 received, 0\% packet loss' - export TEST2_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.2.1' --format json) - export TEST2_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.2.1' --format json) - echo $TEST2_1 - echo $TEST2_1 | grep -E '3 packets transmitted, 3 received, 0\% packet loss' - export TEST2_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.2.10' --format json) - export TEST2_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.2.10' --format json) - echo $TEST2_10 - echo $TEST2_10 | grep -E '3 packets transmitted, 3 received, 0\% packet loss' - export TEST3_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.3.1' --format json) - export TEST3_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.3.1' --format json) - echo $TEST3_1 - echo $TEST3_1 | grep -E '3 packets transmitted, 0 received, 100\% packet loss' - export TEST3_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.3.10' --format json) - export TEST3_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.3.10' --format json) - echo $TEST3_10 - echo $TEST3_10 | grep -E '3 packets transmitted, 0 received, 100\% packet loss' Loading @@ -166,22 +166,22 @@ end2end_test eucnc24: $CI_REGISTRY_IMAGE/${TEST_NAME}:latest /var/teraflow/run-service-ietf-create.sh # Run end-to-end test: test connectivity with ping - export TEST1_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.1.10' --format json) - export TEST1_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.1.10' --format json) - echo $TEST1_10 - echo $TEST1_10 | grep -E '3 packets transmitted, 3 received, 0\% packet loss' - export TEST1_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.1.1' --format json) - export TEST1_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.1.1' --format json) - echo $TEST1_1 - echo $TEST1_1 | grep -E '3 packets transmitted, 3 received, 0\% packet loss' - export TEST2_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.2.1' --format json) - export TEST2_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.2.1' --format json) - echo $TEST2_1 - echo $TEST2_1 | grep -E '3 packets transmitted, 3 received, 0\% packet loss' - export TEST2_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.2.10' --format json) - export TEST2_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.2.10' --format json) - echo $TEST2_10 - echo $TEST2_10 | grep -E '3 packets transmitted, 3 received, 0\% packet loss' - export TEST3_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.3.1' --format json) - export TEST3_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.3.1' --format json) - echo $TEST3_1 - echo $TEST3_1 | grep -E '3 packets transmitted, 0 received, 100\% packet loss' - export TEST3_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.3.10' --format json) - export TEST3_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.3.10' --format json) - echo $TEST3_10 - echo $TEST3_10 | grep -E '3 packets transmitted, 0 received, 100\% packet loss' Loading
src/tests/eucnc24/README.md +39 −51 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ ## TeraFlowSDN Deployment ```bash cd ~/tfs-ctrl source dataplane-in-a-box/deploy_specs.sh source ~/tfs-ctrl/src/tests/eucnc24/deploy_specs.sh ./deploy/all.sh ``` Loading @@ -16,67 +16,55 @@ source dataplane-in-a-box/deploy_specs.sh ## Download and install ContainerLab ```bash sudo bash -c "$(curl -sL https://get.containerlab.dev)" -- -v 0.48.6 sudo bash -c "$(curl -sL https://get.containerlab.dev)" -- -v 0.59.0 ``` ## Download Arista cEOS image and create Docker image ```bash cd ~/tfs-ctrl/dataplane-in-a-box docker import arista/cEOS64-lab-4.31.2F.tar ceos:4.31.2F cd ~/tfs-ctrl/src/tests/eucnc24/ docker import arista/cEOS64-lab-4.32.2F.tar ceos:4.32.2F ``` ## Deploy scenario ```bash cd ~/tfs-ctrl/dataplane-in-a-box sudo containerlab deploy --topo arista.clab.yml cd ~/tfs-ctrl/src/tests/eucnc24/ sudo containerlab deploy --topo eucnc24.clab.yml ``` ## Inspect scenario ```bash cd ~/tfs-ctrl/dataplane-in-a-box sudo containerlab inspect --topo arista.clab.yml cd ~/tfs-ctrl/src/tests/eucnc24/ sudo containerlab inspect --topo eucnc24.clab.yml ``` ## Destroy scenario ```bash cd ~/tfs-ctrl/dataplane-in-a-box sudo containerlab destroy --topo arista.clab.yml sudo rm -rf clab-arista/ .arista.clab.yml.bak cd ~/tfs-ctrl/src/tests/eucnc24/ sudo containerlab destroy --topo eucnc24.clab.yml sudo rm -rf clab-eucnc24/ .eucnc24.clab.yml.bak ``` ## Access cEOS Bash ## Access cEOS Bash/CLI ```bash docker exec -it clab-arista-r1 bash ``` ## Access cEOS CLI ```bash docker exec -it clab-arista-r1 Cli docker exec -it clab-arista-r2 Cli docker exec -it clab-eucnc24-r1 bash docker exec -it clab-eucnc24-r2 bash docker exec -it clab-eucnc24-r3 bash docker exec -it clab-eucnc24-r1 Cli docker exec -it clab-eucnc24-r2 Cli docker exec -it clab-eucnc24-r3 Cli ``` ## Configure ContainerLab clients ```bash docker exec -it clab-arista-client1 bash ip address add 192.168.1.10/24 dev eth1 ip route add 192.168.2.0/24 via 192.168.1.1 ip route add 192.168.3.0/24 via 192.168.1.1 ping 192.168.2.10 ping 192.168.3.10 docker exec -it clab-arista-client2 bash ip address add 192.168.2.10/24 dev eth1 ip route add 192.168.1.0/24 via 192.168.2.1 ip route add 192.168.3.0/24 via 192.168.2.1 ping 192.168.1.10 ping 192.168.3.10 docker exec -it clab-arista-client3 bash ip address add 192.168.3.10/24 dev eth1 ip route add 192.168.2.0/24 via 192.168.3.1 ip route add 192.168.3.0/24 via 192.168.3.1 ping 192.168.2.10 ping 192.168.3.10 docker exec -it clab-eucnc24-dc1 bash ip address add 172.16.1.10/24 dev eth1 ip route add 172.16.2.0/24 via 172.16.1.1 ping 172.16.2.10 docker exec -it clab-eucnc24-dc2 bash ip address add 172.16.2.10/24 dev eth1 ip route add 172.16.1.0/24 via 172.16.2.1 ping 172.16.1.10 ``` ## Install gNMIc Loading @@ -86,38 +74,38 @@ sudo bash -c "$(curl -sL https://get-gnmic.kmrd.dev)" ## gNMI Capabilities request ```bash gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure capabilities gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure capabilities ``` ## gNMI Get request ```bash gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path / > wan1.json gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path /interfaces/interface > wan1-ifaces.json gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path / > r1.json gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path /interfaces/interface > r1-ifaces.json ``` ## gNMI Set request ```bash #gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --update-path /system/config/hostname --update-value srl11 #gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path /system/config/hostname gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --update-path /system/config/hostname --update-value srl11 gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path /system/config/hostname ``` ## Subscribe request ```bash gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf subscribe --path /interfaces/interface[name=Management0]/state/ gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf subscribe --path /interfaces/interface[name=Management0]/state/ # In another terminal, you can generate traffic opening SSH connection ssh admin@clab-arista-wan1 ssh admin@clab-eucnc24-r1 ``` # Check configurations done: ```bash gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path '/network-instances' > wan1-nis.json gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path '/interfaces' > wan1-ifs.json gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path '/network-instances' > r1-nis.json gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path '/interfaces' > r1-ifs.json ``` # Delete elements: ```bash --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --delete '/network-instances/network-instance[name=b19229e8]' --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --delete '/interfaces/interface[name=ethernet-1/1]/subinterfaces/subinterface[index=0]' --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --delete '/interfaces/interface[name=ethernet-1/2]/subinterfaces/subinterface[index=0]' --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --delete '/network-instances/network-instance[name=b19229e8]' --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --delete '/interfaces/interface[name=ethernet-1/1]/subinterfaces/subinterface[index=0]' --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --delete '/interfaces/interface[name=ethernet-1/2]/subinterfaces/subinterface[index=0]' ```
src/tests/eucnc24/clab/eucnc24.clab.yml +4 −4 Original line number Diff line number Diff line Loading @@ -55,16 +55,16 @@ topology: mgmt-ipv4: 172.20.20.201 exec: - ip link set address 00:c1:ab:00:01:01 dev eth1 - ip address add 192.168.1.10/24 dev eth1 - ip route add 192.168.2.0/24 via 192.168.1.1 - ip address add 172.16.1.10/24 dev eth1 - ip route add 172.16.2.0/24 via 172.16.1.1 dc2: kind: linux mgmt-ipv4: 172.20.20.202 exec: - ip link set address 00:c1:ab:00:02:01 dev eth1 - ip address add 192.168.2.10/24 dev eth1 - ip route add 192.168.1.0/24 via 192.168.2.1 - ip address add 172.16.2.10/24 dev eth1 - ip route add 172.16.1.0/24 via 172.16.2.1 links: - endpoints: ["r1:eth2", "r2:eth1"] Loading
src/tests/eucnc24/data/ietf-l3vpn-service.json +4 −4 Original line number Diff line number Diff line Loading @@ -19,8 +19,8 @@ "ipv4": { "address-allocation-type": "ietf-l3vpn-svc:static-address", "addresses": { "provider-address": "192.168.1.1", "customer-address": "192.168.1.10", "provider-address": "172.16.1.1", "customer-address": "172.16.1.10", "prefix-length": 24 } } Loading Loading @@ -56,8 +56,8 @@ "ipv4": { "address-allocation-type": "ietf-l3vpn-svc:static-address", "addresses": { "provider-address": "192.168.2.1", "customer-address": "192.168.2.10", "provider-address": "172.16.2.1", "customer-address": "172.16.2.10", "prefix-length": 24 } } Loading
src/tests/eucnc24/data/tfs-service.json +2 −2 Original line number Diff line number Diff line Loading @@ -14,11 +14,11 @@ "service_config": {"config_rules": [ {"action": "CONFIGACTION_SET", "custom": { "resource_key": "/device[dc1]/endpoint[eth1]/settings", "resource_value": {"address_ip": "192.168.1.10", "address_prefix": 24, "index": 0} "resource_value": {"address_ip": "172.16.1.10", "address_prefix": 24, "index": 0} }}, {"action": "CONFIGACTION_SET", "custom": { "resource_key": "/device[dc2]/endpoint[eth1]/settings", "resource_value": {"address_ip": "192.168.2.10", "address_prefix": 24, "index": 0} "resource_value": {"address_ip": "172.16.2.10", "address_prefix": 24, "index": 0} }} ]} } Loading