Commit 7efa1b91 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Fixed EuCNC24 test:

- Updated dataplane IP range to 172.16.0.0/16
parent c9772c18
Loading
Loading
Loading
Loading
+12 −12
Original line number Diff line number Diff line
@@ -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'

@@ -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'

+39 −51
Original line number Diff line number Diff line
@@ -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
```

@@ -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
@@ -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]'
```
+4 −4
Original line number Diff line number Diff line
@@ -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"]
+4 −4
Original line number Diff line number Diff line
@@ -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
                                        }
                                    }
@@ -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
                                        }
                                    }
+2 −2
Original line number Diff line number Diff line
@@ -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}
                }}
            ]}
        }