go.ligato.io/vpp-agent/v3@v3.5.0/tests/robot/suites/crud/arp_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/afpacket.robot 20 Resource ../../libraries/interface/interface_generic.robot 21 22 Force Tags crud IPv4 23 Suite Setup Testsuite Setup 24 Suite Teardown Testsuite Teardown 25 Test Setup TestSetup 26 Test Teardown TestTeardown 27 28 *** Variables *** 29 ${VARIABLES}= common 30 ${ENV}= common 31 ${WAIT_TIMEOUT}= 20s 32 ${SYNC_SLEEP}= 3s 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 ${VETH1_IP}= 10.10.1.1 37 ${VETH2_IP}= 10.10.1.2 38 ${PREFIX}= 24 39 ${MEMIF_IP}= 192.168.1.1 40 ${VXLAN_IP_SRC}= 192.168.1.1 41 ${VXLAN_IP_DST}= 192.168.1.2 42 ${LOOPBACK_IP}= 20.20.1.1 43 ${TAP_IP}= 30.30.1.1 44 ${ARP1_IP}= 155.155.155.155 45 ${ARP2_IP}= 155.155.155.150 46 ${ARP1_MAC}= 32:51:51:51:51:51 47 ${ARP2_MAC}= 32:51:51:51:51:52 48 ${ARP1_MAC_MODIFIED}= 32:51:51:51:51:53 49 50 *** Test Cases *** 51 Configure Environment 52 [Tags] setup 53 Configure Environment 1 54 55 Show Interfaces Before Setup 56 vpp_term: Show Interfaces agent_vpp_1 57 58 59 Add Veth1 Interface Pair 60 linux: Interface Not Exists node=agent_vpp_1 mac=${VETH1_MAC} 61 linux: Interface Not Exists node=agent_vpp_1 mac=${VETH2_MAC} 62 Put Veth Interface With IP node=agent_vpp_1 name=vpp1_veth1 63 ... mac=${VETH1_MAC} peer=vpp1_veth2 ip=${VETH1_IP} prefix=${PREFIX} mtu=1500 64 Put Veth Interface With IP node=agent_vpp_1 name=vpp1_veth2 65 ... mac=${VETH2_MAC} peer=vpp1_veth1 ip=${VETH2_IP} prefix=${PREFIX} mtu=1500 66 linux: Interface Is Created node=agent_vpp_1 mac=${VETH1_MAC} 67 linux: Interface Is Created node=agent_vpp_1 mac=${VETH2_MAC} 68 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 69 ... linux: Check Veth Interface State agent_vpp_1 vpp1_veth1 70 ... mac=${VETH1_MAC} ipv4=${VETH1_IP}/${PREFIX} mtu=1500 state=up 71 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 72 ... linux: Check Veth Interface State agent_vpp_1 vpp1_veth2 73 ... mac=${VETH2_MAC} ipv4=${VETH2_IP}/${PREFIX} mtu=1500 state=up 74 vpp_term: Show Interface Mode agent_vpp_1 75 vpp_term: Show Interface Mode agent_vpp_2 76 77 Add Memif Interface 78 Put Memif Interface With IP node=agent_vpp_1 name=vpp1_memif1 79 ... mac=62:61:61:61:61:61 master=true id=1 ip=${MEMIF_IP} 80 ... prefix=${PREFIX} socket=default.sock 81 vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 82 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 83 ... vpp_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 84 ... mac=62:61:61:61:61:61 role=master id=1 ipv4=${MEMIF_IP}/${PREFIX} 85 ... connected=0 enabled=1 socket=${AGENT_VPP_1_MEMIF_SOCKET_FOLDER}/default.sock 86 87 Add VXLan Interface 88 Put VXLan Interface node=agent_vpp_1 name=vpp1_vxlan1 89 ... src=${VXLAN_IP_SRC} dst=${VXLAN_IP_DST} vni=5 90 VXLan Tunnel Is Created node=agent_vpp_1 src=${VXLAN_IP_SRC} dst=${VXLAN_IP_DST} vni=5 91 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 92 ... vpp_api: Check VXLan Interface State agent_vpp_1 vpp1_vxlan1 93 ... enabled=1 src=${VXLAN_IP_SRC} dst=${VXLAN_IP_DST} vni=5 94 95 Add Loopback Interface 96 Put Loopback Interface With IP node=agent_vpp_1 name=vpp1_loop1 97 ... mac=12:21:21:11:11:11 ip=${LOOPBACK_IP} prefix=${PREFIX} mtu=1400 98 vpp_term: Interface Is Created node=agent_vpp_1 mac=12:21:21:11:11:11 99 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 100 ... vpp_api: Check Loopback Interface State agent_vpp_1 vpp1_loop1 101 ... enabled=1 mac=12:21:21:11:11:11 mtu=1400 ipv4=${LOOPBACK_IP}/${PREFIX} 102 103 Add Tap Interface 104 Put TAPv2 Interface With IP node=agent_vpp_1 name=vpp1_tap1 105 ... mac=32:21:21:11:11:11 ip=${TAP_IP} prefix=${PREFIX} host_if_name=linux_vpp1_tap1 106 vpp_term: Interface Is Created node=agent_vpp_1 mac=32:21:21:11:11:11 107 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 108 ... vpp_term: Check TAP interface State agent_vpp_1 vpp1_tap1 109 ... mac=32:21:21:11:11:11 ipv4=${TAP_IP}/${PREFIX} state=up 110 111 ADD Afpacket Interface 112 Put Afpacket Interface node=agent_vpp_1 name=vpp1_afpacket1 113 ... mac=a2:a1:a1:a1:a1:a1 host_int=vpp1_veth2 114 vpp_term: Interface Is Created node=agent_vpp_1 mac=a2:a1:a1:a1:a1:a1 115 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 116 ... vpp_api: Check Afpacket Interface State agent_vpp_1 vpp1_afpacket1 117 ... enabled=1 mac=a2:a1:a1:a1:a1:a1 118 119 Check Stuff 120 Show Interfaces And Other Objects 121 122 Add ARPs 123 Put ARP agent_vpp_1 vpp1_memif1 ${ARP1_IP} ${ARP1_MAC} false 124 Put ARP agent_vpp_1 vpp1_memif1 ${ARP2_IP} ${ARP2_MAC} false 125 Put Linux ARP agent_vpp_1 vpp1_veth1 ${ARP1_IP} ${ARP1_MAC} 126 Put Linux ARP agent_vpp_1 vpp1_veth1 ${ARP2_IP} ${ARP2_MAC} 127 Put Linux ARP agent_vpp_1 vpp1_veth2 ${ARP1_IP} ${ARP1_MAC} 128 Put Linux ARP agent_vpp_1 vpp1_veth2 ${ARP2_IP} ${ARP2_MAC} 129 Put ARP agent_vpp_1 vpp1_vxlan1 ${ARP1_IP} ${ARP1_MAC} false 130 Put ARP agent_vpp_1 vpp1_vxlan1 ${ARP2_IP} ${ARP2_MAC} false 131 Put ARP agent_vpp_1 vpp1_loop1 ${ARP1_IP} ${ARP1_MAC} false 132 Put ARP agent_vpp_1 vpp1_loop1 ${ARP2_IP} ${ARP2_MAC} false 133 Put ARP agent_vpp_1 vpp1_tap1 ${ARP1_IP} ${ARP1_MAC} false 134 Put ARP agent_vpp_1 vpp1_tap1 ${ARP2_IP} ${ARP2_MAC} false 135 Put ARP agent_vpp_1 vpp1_afpacket1 ${ARP1_IP} ${ARP1_MAC} false 136 Put ARP agent_vpp_1 vpp1_afpacket1 ${ARP2_IP} ${ARP2_MAC} false 137 Sleep ${SYNC_SLEEP} 138 139 Check Memif ARP 140 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 141 ... vpp_term: Check ARP agent_vpp_1 vpp1_memif1 142 ... ${ARP1_IP} ${ARP1_MAC} True 143 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 144 ... vpp_term: Check ARP agent_vpp_1 vpp1_memif1 145 ... ${ARP2_IP} ${ARP2_MAC} True 146 147 Check Veth1 ARP 148 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 149 ... linux: Check ARP agent_vpp_1 vpp1_veth1 150 ... ${ARP1_IP} ${ARP1_MAC} True 151 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 152 ... linux: Check ARP agent_vpp_1 vpp1_veth1 153 ... ${ARP2_IP} ${ARP2_MAC} True 154 155 Check Veth2 ARP 156 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 157 ... linux: Check ARP agent_vpp_1 vpp1_veth2 158 ... ${ARP1_IP} ${ARP1_MAC} True 159 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 160 ... linux: Check ARP agent_vpp_1 vpp1_veth2 161 ... ${ARP2_IP} ${ARP2_MAC} True 162 163 Check VXLan ARP 164 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 165 ... vpp_term: Check ARP agent_vpp_1 vpp1_vxlan1 166 ... ${ARP1_IP} ${ARP1_MAC} True 167 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 168 ... vpp_term: Check ARP agent_vpp_1 vpp1_vxlan1 169 ... ${ARP2_IP} ${ARP2_MAC} True 170 171 Check Loopback ARP 172 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 173 ... vpp_term: Check ARP agent_vpp_1 vpp1_loop1 174 ... ${ARP1_IP} ${ARP1_MAC} True 175 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 176 ... vpp_term: Check ARP agent_vpp_1 vpp1_loop1 177 ... ${ARP2_IP} ${ARP2_MAC} True 178 179 Check TAP ARP 180 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 181 ... vpp_term: Check ARP agent_vpp_1 vpp1_tap1 182 ... ${ARP1_IP} ${ARP1_MAC} True 183 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 184 ... vpp_term: Check ARP agent_vpp_1 vpp1_tap1 185 ... ${ARP2_IP} ${ARP2_MAC} True 186 187 Check Afpacket ARP 188 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 189 ... vpp_term: Check ARP agent_vpp_1 vpp1_afpacket1 190 ... ${ARP1_IP} ${ARP1_MAC} True 191 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 192 ... vpp_term: Check ARP agent_vpp_1 vpp1_afpacket1 193 ... ${ARP2_IP} ${ARP2_MAC} True 194 195 Modify ARPs 196 Put ARP agent_vpp_1 vpp1_memif1 ${ARP1_IP} ${ARP1_MAC_MODIFIED} false 197 Put Linux ARP agent_vpp_1 vpp1_veth1 ${ARP1_IP} ${ARP1_MAC_MODIFIED} 198 Put Linux ARP agent_vpp_1 vpp1_veth2 ${ARP1_IP} ${ARP1_MAC_MODIFIED} 199 Put ARP agent_vpp_1 vpp1_vxlan1 ${ARP1_IP} ${ARP1_MAC_MODIFIED} false 200 Put ARP agent_vpp_1 vpp1_loop1 ${ARP1_IP} ${ARP1_MAC_MODIFIED} false 201 Put ARP agent_vpp_1 vpp1_tap1 ${ARP1_IP} ${ARP1_MAC_MODIFIED} false 202 Put ARP agent_vpp_1 host-vpp1_veth2 ${ARP1_IP} ${ARP1_MAC_MODIFIED} false 203 Put ARP agent_vpp_1 vpp1_afpacket1 ${ARP1_IP} ${ARP1_MAC_MODIFIED} false 204 Sleep ${SYNC_SLEEP} 205 206 Check Memif ARP After Modify 207 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 208 ... vpp_term: Check ARP agent_vpp_1 vpp1_memif1 209 ... ${ARP1_IP} ${ARP1_MAC_MODIFIED} True 210 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 211 ... vpp_term: Check ARP agent_vpp_1 vpp1_memif1 212 ... ${ARP1_IP} ${ARP1_MAC} False 213 214 Check Veth1 ARP After Modify 215 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 216 ... linux: Check ARP agent_vpp_1 vpp1_veth1 217 ... ${ARP1_IP} ${ARP1_MAC_MODIFIED} True 218 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 219 ... linux: Check ARP agent_vpp_1 vpp1_veth1 220 ... ${ARP1_IP} ${ARP1_MAC} False 221 222 Check Veth2 ARP After Modify 223 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 224 ... linux: Check ARP agent_vpp_1 vpp1_veth2 225 ... ${ARP1_IP} ${ARP1_MAC_MODIFIED} True 226 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 227 ... linux: Check ARP agent_vpp_1 vpp1_veth2 228 ... ${ARP1_IP} ${ARP1_MAC} False 229 230 Check VXLan ARP After Modify 231 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 232 ... vpp_term: Check ARP agent_vpp_1 vpp1_vxlan1 233 ... ${ARP1_IP} ${ARP1_MAC_MODIFIED} True 234 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 235 ... linux: Check ARP agent_vpp_1 vpp1_veth1 236 ... ${ARP1_IP} ${ARP1_MAC} False 237 238 Check Loopback ARP After Modify 239 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 240 ... vpp_term: Check ARP agent_vpp_1 vpp1_loop1 241 ... ${ARP1_IP} ${ARP1_MAC_MODIFIED} True 242 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 243 ... linux: Check ARP agent_vpp_1 vpp1_veth1 244 ... ${ARP1_IP} ${ARP1_MAC} False 245 246 Check TAP ARP After Modify 247 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 248 ... vpp_term: Check ARP agent_vpp_1 vpp1_tap1 249 ... ${ARP1_IP} ${ARP1_MAC_MODIFIED} True 250 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 251 ... linux: Check ARP agent_vpp_1 vpp1_veth1 252 ... ${ARP1_IP} ${ARP1_MAC} False 253 254 Check Afpacket ARP After Modify 255 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 256 ... vpp_term: Check ARP agent_vpp_1 vpp1_afpacket1 257 ... ${ARP1_IP} ${ARP1_MAC_MODIFIED} True 258 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 259 ... linux: Check ARP agent_vpp_1 vpp1_veth1 260 ... ${ARP1_IP} ${ARP1_MAC} False 261 262 Delete ARPs 263 Delete ARP agent_vpp_1 vpp1_memif1 ${ARP2_IP} 264 Delete Linux ARP agent_vpp_1 vpp1_veth1 ${ARP2_IP} 265 Delete Linux ARP agent_vpp_1 vpp1_veth2 ${ARP2_IP} 266 Delete ARP agent_vpp_1 vpp1_vxlan1 ${ARP2_IP} 267 Delete ARP agent_vpp_1 vpp1_loop1 ${ARP2_IP} 268 Delete ARP agent_vpp_1 vpp1_tap1 ${ARP2_IP} 269 Delete ARP agent_vpp_1 host-vpp1_veth2 ${ARP2_IP} 270 Delete ARP agent_vpp_1 vpp1_afpacket1 ${ARP2_IP} 271 vpp_term:Show ARP agent_vpp_1 272 Execute In Container agent_vpp_1 ip neigh 273 Sleep ${SYNC_SLEEP} 274 275 Check Memif ARP After Delete 276 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 277 ... vpp_term: Check ARP agent_vpp_1 vpp1_memif1 278 ... ${ARP1_IP} ${ARP1_MAC_MODIFIED} True 279 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 280 ... vpp_term: Check ARP agent_vpp_1 vpp1_memif1 281 ... ${ARP2_IP} ${ARP2_MAC} False 282 283 Check Veth1 ARP After Delete 284 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 285 ... linux: Check ARP agent_vpp_1 vpp1_veth1 286 ... ${ARP1_IP} ${ARP1_MAC_MODIFIED} True 287 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 288 ... linux: Check ARP agent_vpp_1 vpp1_veth1 289 ... ${ARP1_IP} ${ARP2_MAC} False 290 291 Check Veth2 ARP After Delete 292 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 293 ... linux: Check ARP agent_vpp_1 vpp1_veth2 294 ... ${ARP1_IP} ${ARP1_MAC_MODIFIED} True 295 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 296 ... linux: Check ARP agent_vpp_1 vpp1_veth2 297 ... ${ARP1_IP} ${ARP2_MAC} False 298 299 Check VXLan ARP After Delete 300 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 301 ... vpp_term: Check ARP agent_vpp_1 vpp1_vxlan1 302 ... ${ARP1_IP} ${ARP1_MAC_MODIFIED} True 303 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 304 ... vpp_term: Check ARP agent_vpp_1 vpp1_vxlan1 305 ... ${ARP2_IP} ${ARP2_MAC} False 306 307 Check Loopback ARP After Delete 308 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 309 ... vpp_term: Check ARP agent_vpp_1 vpp1_loop1 310 ... ${ARP1_IP} ${ARP1_MAC_MODIFIED} True 311 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 312 ... vpp_term: Check ARP agent_vpp_1 vpp1_loop1 313 ... ${ARP2_IP} ${ARP2_MAC} False 314 315 Check TAP ARP After Delete 316 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 317 ... vpp_term: Check ARP agent_vpp_1 vpp1_tap1 318 ... ${ARP1_IP} ${ARP1_MAC_MODIFIED} True 319 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 320 ... vpp_term: Check ARP agent_vpp_1 vpp1_tap1 321 ... ${ARP2_IP} ${ARP2_MAC} False 322 323 Check Afpacket ARP After Delete 324 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 325 ... vpp_term: Check ARP agent_vpp_1 vpp1_afpacket1 326 ... ${ARP1_IP} ${ARP1_MAC_MODIFIED} True 327 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} 328 ... vpp_term: Check ARP agent_vpp_1 vpp1_afpacket1 329 ... ${ARP2_IP} ${ARP2_MAC} False 330 331 332 *** Keywords *** 333 Show Interfaces And Other Objects 334 vpp_term: Show Interfaces agent_vpp_1 335 Write To Machine agent_vpp_1_term show int addr 336 Write To Machine agent_vpp_1_term show h 337 Write To Machine agent_vpp_1_term show br 338 Write To Machine agent_vpp_1_term show err 339 vpp_api: Interfaces Dump agent_vpp_1 340 Execute In Container agent_vpp_1 ip a 341 Make Datastore Snapshots before_check stuff 342 343 344 TestSetup 345 Make Datastore Snapshots ${TEST_NAME}_test_setup 346 347 TestTeardown 348 Make Datastore Snapshots ${TEST_NAME}_test_teardown