go.ligato.io/vpp-agent/v3@v3.5.0/tests/robot/suites/crud/l2xconnect_crud.robot (about) 1 *** Settings *** 2 Library OperatingSystem 3 #Library RequestsLibrary 4 #Library SSHLibrary timeout=60s 5 #Library String 6 7 Resource ../../variables/${VARIABLES}_variables.robot 8 9 Resource ../../libraries/vpp_api.robot 10 Resource ../../libraries/vpp_term.robot 11 Resource ../../libraries/docker.robot 12 Resource ../../libraries/setup-teardown.robot 13 Resource ../../libraries/configurations.robot 14 Resource ../../libraries/etcdctl.robot 15 Resource ../../libraries/linux.robot 16 17 Resource ../../libraries/interface/vxlan.robot 18 Resource ../../libraries/interface/loopback.robot 19 Resource ../../libraries/interface/interface_generic.robot 20 21 Force Tags crud IPv4 22 Suite Setup Testsuite Setup 23 Suite Teardown Testsuite Teardown 24 Test Setup TestSetup 25 Test Teardown TestTeardown 26 27 *** Variables *** 28 ${VARIABLES}= common 29 ${ENV}= common 30 ${FINAL_SLEEP}= 5s 31 ${SYNC_SLEEP}= 12s 32 ${RESYNC_SLEEP}= 20s 33 ${VETH1_MAC}= 1a:00:00:11:11:11 34 ${VETH2_MAC}= 2a:00:00:22:22:22 35 ${AFP1_MAC}= a2:01:01:01:01:01 36 ${WAIT_TIMEOUT}= 20s 37 ${SYNC_SLEEP}= 3s 38 39 *** Test Cases *** 40 Configure Environment 41 [Tags] setup 42 Configure Environment 5 43 Sleep ${SYNC_SLEEP} 44 45 Show Interfaces Before Setup 46 vpp_term: Show Interfaces agent_vpp_1 47 48 Add Veth1 Interface 49 linux: Interface Not Exists node=agent_vpp_1 mac=${VETH1_MAC} 50 Put Veth Interface With IP node=agent_vpp_1 name=vpp1_veth1 51 ... mac=${VETH1_MAC} peer=vpp1_veth2 ip=10.10.1.1 prefix=24 mtu=1500 52 53 Add Veth2 Interface 54 linux: Interface Not Exists node=agent_vpp_1 mac=${VETH2_MAC} 55 Put Veth Interface node=agent_vpp_1 name=vpp1_veth2 56 ... mac=${VETH2_MAC} peer=vpp1_veth1 57 58 Add Memif Interface 59 Put Memif Interface With IP node=agent_vpp_1 name=vpp1_memif1 60 ... mac=62:61:61:61:61:61 master=true id=1 61 ... ip=192.168.1.1 prefix=24 socket=default.sock 62 63 Add VXLan Interface 64 Put VXLan Interface node=agent_vpp_1 name=vpp1_vxlan1 65 ... src=192.168.1.1 dst=192.168.1.2 vni=5 66 67 Add Loopback1 Interface 68 Put Loopback Interface With IP node=agent_vpp_1 name=vpp1_loop1 69 ... mac=12:21:21:11:11:11 ip=20.20.1.1 prefix=24 mtu=1400 70 71 Add Loopback2 Interface 72 Put Loopback Interface With IP node=agent_vpp_1 name=vpp1_loop2 73 ... mac=22:21:21:11:11:11 ip=22.20.1.1 prefix=24 mtu=1400 74 75 Add Tap Interface 76 Put TAPv2 Interface With IP node=agent_vpp_1 name=vpp1_tap1 77 ... mac=32:21:21:11:11:11 ip=30.30.1.1 prefix=24 host_if_name=linux_vpp1_tap1 78 79 Check That Veth1 And Veth2 Interfaces Are Created 80 linux: Interface Is Created node=agent_vpp_1 mac=${VETH1_MAC} 81 linux: Interface Is Created node=agent_vpp_1 mac=${VETH2_MAC} 82 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 83 ... linux: Check Veth Interface State agent_vpp_1 vpp1_veth1 84 ... mac=${VETH1_MAC} ipv4=10.10.1.1/24 mtu=1500 state=up 85 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 86 ... linux: Check Veth Interface State agent_vpp_1 vpp1_veth2 87 ... mac=${VETH2_MAC} state=up 88 89 Check TAP Interface Created 90 vpp_term: Interface Is Created node=agent_vpp_1 mac=32:21:21:11:11:11 91 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 92 ... vpp_term: Check TAP interface State agent_vpp_1 vpp1_tap1 93 ... mac=32:21:21:11:11:11 ipv4=30.30.1.1/24 state=up 94 95 Check Memif Interface Created 96 vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 97 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 98 ... vpp_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 99 ... mac=62:61:61:61:61:61 role=master id=1 ipv4=192.168.1.1/24 connected=0 enabled=1 socket=${AGENT_VPP_1_MEMIF_SOCKET_FOLDER}/default.sock 100 101 Check VXLan Interface Created 102 VXLan Tunnel Is Created node=agent_vpp_1 src=192.168.1.1 dst=192.168.1.2 vni=5 103 vpp_api: Check VXLan Interface State agent_vpp_1 vpp1_vxlan1 104 ... enabled=1 src=192.168.1.1 dst=192.168.1.2 vni=5 105 106 Check Loopback1 Interface Created 107 vpp_term: Interface Is Created node=agent_vpp_1 mac=12:21:21:11:11:11 108 vpp_api: Check Loopback Interface State agent_vpp_1 vpp1_loop1 109 ... enabled=1 mac=12:21:21:11:11:11 mtu=1400 ipv4=20.20.1.1/24 110 111 Check Loopback2 Interface Created 112 vpp_term: Interface Is Created node=agent_vpp_1 mac=22:21:21:11:11:11 113 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 114 ... vpp_api: Check Loopback Interface State agent_vpp_1 vpp1_loop2 115 ... enabled=1 mac=22:21:21:11:11:11 mtu=1400 ipv4=22.20.1.1/24 116 117 Check Stuff 118 Show Interfaces And Other Objects 119 120 Add L2XConnect1 for Memif and Loopback1 121 Put L2XConnect agent_vpp_1 vpp1_memif1 vpp1_loop1 122 Put L2XConnect agent_vpp_1 vpp1_loop1 vpp1_memif1 123 124 Check L2XConnect1 Memif and Loopback1 in XConnect mode 125 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 126 ... Verify XConnect Interfaces agent_vpp_1 127 ... l2 xconnect memif1/1 loop0 128 ... l2 xconnect loop0 memif1/1 129 130 Add L2XConnect2 for Tap and Loopback2 131 Put L2XConnect agent_vpp_1 vpp1_tap1 vpp1_loop2 132 Put L2XConnect agent_vpp_1 vpp1_loop2 vpp1_tap1 133 134 Check L2XConnect2 and L2XConnect1 still configured 135 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 136 ... Verify XConnect Interfaces agent_vpp_1 137 ... l2 xconnect memif1/1 loop0 138 ... l2 xconnect loop0 memif1/1 139 ... l2 xconnect tap0 loop1 140 ... l2 xconnect loop1 tap0 141 142 Modify L2XConnect1 143 Delete L2XConnect agent_vpp_1 vpp1_memif1 144 Put L2XConnect agent_vpp_1 vpp1_vxlan1 vpp1_loop1 145 Put L2XConnect agent_vpp_1 vpp1_loop1 vpp1_vxlan1 146 147 Check L2XConnect1 Modified and L2XConnect2 still configured 148 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 149 ... Verify XConnect Interfaces agent_vpp_1 150 ... l2 xconnect vxlan_tunnel0 loop0 151 ... l2 xconnect loop0 vxlan_tunnel0 152 ... l2 xconnect tap0 loop1 153 ... l2 xconnect loop1 tap0 154 ... l3 memif1/1 155 156 Delete L2XConnect1 157 Delete L2XConnect agent_vpp_1 vpp1_vxlan1 158 Delete L2XConnect agent_vpp_1 vpp1_loop1 159 160 Check L2XConnect1 Deleted and L2XConnect2 still configured 161 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 162 ... Verify XConnect Interfaces agent_vpp_1 163 ... l3 memif1/1 164 ... l3 loop0 165 ... l3 vxlan_tunnel0 166 ... l2 xconnect tap0 loop1 167 ... l2 xconnect loop1 tap0 168 169 Delete L2XConnect2 170 Delete L2XConnect agent_vpp_1 vpp1_tap1 171 Delete L2XConnect agent_vpp_1 vpp1_loop2 172 173 Check L2XConnect1 and L2XConnect2 Deleted 174 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 175 ... Verify XConnect Interfaces agent_vpp_1 176 ... l3 memif1/1 177 ... l3 loop0 178 ... l3 vxlan_tunnel0 179 ... l3 tap0 180 ... l3 loop1 181 182 *** Keywords *** 183 Show Interfaces And Other Objects 184 vpp_term: Show Interfaces agent_vpp_1 185 Write To Machine agent_vpp_1_term show int addr 186 Write To Machine agent_vpp_1_term show h 187 Write To Machine agent_vpp_1_term show br 188 Write To Machine agent_vpp_1_term show br 1 detail 189 Write To Machine agent_vpp_1_term show vxlan tunnel 190 Write To Machine agent_vpp_1_term show err 191 vat_term: Interfaces Dump agent_vpp_1 192 Execute In Container agent_vpp_1 ip a 193 vpp_term: Show Interface Mode agent_vpp_1 194 Make Datastore Snapshots before_resync 195 196 TestSetup 197 Make Datastore Snapshots ${TEST_NAME}_test_setup 198 199 TestTeardown 200 Make Datastore Snapshots ${TEST_NAME}_test_teardown 201 202 Suite Cleanup 203 Stop SFC Controller Container 204 Testsuite Teardown 205 206 Verify XConnect Interfaces 207 [Arguments] ${node} @{interfaces} 208 ${out}= vpp_term: Show Interface Mode ${node} 209 :FOR ${interface} IN @{interfaces} 210 \ Should Contain ${out} ${interface}