go.ligato.io/vpp-agent/v3@v3.5.0/tests/robot/suites/traffic/libmemif/libmemif_slave_trafic1.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/all_libs.robot 10 11 Force Tags traffic IPv4 ExpectedFailure 12 Suite Setup Testsuite Setup 13 Suite Teardown Testsuite Teardown 14 Test Setup TestSetup 15 Test Teardown TestTeardown 16 17 *** Variables *** 18 ${VARIABLES}= common 19 ${ENV}= common 20 ${WAIT_TIMEOUT}= 20s 21 ${SYNC_SLEEP}= 3s 22 ${LIBMEMIF_IP1}= 192.168.1.2 23 ${VPP2MEMIF_IP1}= 192.168.1.2 24 ${VPP1MEMIF_IP1}= 192.168.1.1 25 ${LIBMEMIF_IP2}= 192.168.2.2 26 ${VPP2MEMIF_IP2}= 192.168.2.2 27 ${VPP1MEMIF_IP2}= 192.168.2.1 28 # wait for resync vpps after restart 29 ${RESYNC_WAIT}= 30s 30 31 *** Test Cases *** 32 Configure Environment 33 [Tags] setup 34 Configure Environment 3 35 36 Show Interfaces Before Setup 37 vpp_term: Show Interfaces agent_vpp_1 38 39 Add Memif1 Interface On VPP1 40 Put Memif Interface With IP node=agent_vpp_1 name=vpp1_memif1 mac=62:61:61:61:61:61 master=true id=0 ip=${VPP1MEMIF_IP1} prefix=24 socket=memif.sock 41 42 Check Memif1 Interface Created On VPP1 43 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 44 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 mac=62:61:61:61:61:61 role=master id=0 ipv4=${VPP1MEMIF_IP1}/24 connected=0 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 45 46 Modify Memif1 Interface On VPP1 47 Put Memif Interface With IP node=agent_vpp_1 name=vpp1_memif1 mac=62:61:61:61:61:62 master=true id=0 ip=${VPP1MEMIF_IP2} prefix=24 socket=memif.sock 48 49 Check Memif1 Interface On VPP1 is Modified 50 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:62 51 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 mac=62:61:61:61:61:62 role=master id=0 ipv4=${VPP1MEMIF_IP2}/24 connected=0 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 52 53 Modify Memif1 Interface On VPP1 To Previous Values 54 Put Memif Interface With IP node=agent_vpp_1 name=vpp1_memif1 mac=62:61:61:61:61:61 master=true id=0 ip=${VPP1MEMIF_IP1} prefix=24 socket=memif.sock 55 56 Check Memif1 Interface On VPP1 Modified Back 57 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 58 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 mac=62:61:61:61:61:61 role=master id=0 ipv4=${VPP1MEMIF_IP1}/24 connected=0 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 59 60 ############################################################################## 61 Add Memif1 Interface On VPP2 62 Put Memif Interface With IP node=agent_vpp_2 name=vpp2_memif1 mac=62:61:61:61:51:51 master=false id=0 ip=${VPP2MEMIF_IP1} prefix=24 socket=memif.sock 63 64 65 Check Memif1 Interface Created And Connected On VPP2 66 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_2 mac=62:61:61:61:51:51 67 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vat_term: Check Memif Interface State agent_vpp_2 vpp2_memif1 mac=62:61:61:61:51:51 role=slave id=0 ipv4=${VPP2MEMIF_IP1}/24 connected=1 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 68 69 Check Memif1 Interface On VPP1 Connected To VPP2 70 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 71 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 mac=62:61:61:61:61:61 role=master id=0 ipv4=${VPP1MEMIF_IP1}/24 connected=1 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 72 73 Modify Memif1 Interface On VPP1 While Connected To VPP2 74 Put Memif Interface With IP node=agent_vpp_1 name=vpp1_memif1 mac=62:61:61:61:61:62 master=true id=0 ip=${VPP1MEMIF_IP2} prefix=24 socket=memif.sock 75 76 77 Check Memif1 Interface On VPP1 Modified While Connected 78 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:62 79 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 mac=62:61:61:61:61:62 role=master id=0 ipv4=${VPP1MEMIF_IP2}/24 connected=1 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 80 81 Delete Memif1 Interface On VPP2 82 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} Delete VPP Interface node=agent_vpp_2 name=vpp2_memif1 83 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Deleted node=agent_vpp_2 mac=62:61:61:61:51:51 84 85 Check VPP1_memif1 Interface Is Disconnected 86 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 mac=62:61:61:61:61:62 role=master id=0 ipv4=${VPP1MEMIF_IP2}/24 connected=0 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 87 88 Modify Memif1 Interface On VPP1 To Previous Values After Slave Delete 89 Put Memif Interface With IP node=agent_vpp_1 name=vpp1_memif1 mac=62:61:61:61:61:61 master=true id=0 ip=${VPP1MEMIF_IP1} prefix=24 socket=memif.sock 90 91 Check Memif1 Interface On VPP1 Modified Back After Slave Delete 92 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 93 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 mac=62:61:61:61:61:61 role=master id=0 ipv4=${VPP1MEMIF_IP1}/24 connected=0 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 94 95 ############################################################################# 96 97 Create And Chek Memif1 On Agent Libmemif 1 98 ${out}= lmterm: Issue Command agent_libmemif_1 conn 0 0 99 ${out}= lmterm: Issue Command agent_libmemif_1 show 100 Should Contain ${out} interface ip: ${LIBMEMIF_IP1} 101 Should Contain ${out} link: up 102 103 Check Memif1 Interface On VPP1 Connected To LibMemif 104 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 105 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 mac=62:61:61:61:61:61 role=master id=0 ipv4=${VPP1MEMIF_IP1}/24 connected=1 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 106 107 Check Ping VPP1 -> Agent Libmemif 1 108 vpp_term: Check Ping agent_vpp_1 ${LIBMEMIF_IP1} 109 110 111 Remove VPP Nodes 112 Remove All VPP Nodes 113 Sleep ${SYNC_SLEEP} 114 Add Agent VPP Node agent_vpp_1 115 #Add Agent VPP Node agent_vpp_2 116 Sleep ${RESYNC_WAIT} 117 118 Check Memif1 Interface On VPP1 Connected To LibMemif After Resync 119 vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 120 vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 mac=62:61:61:61:61:61 role=master id=0 ipv4=${VPP1MEMIF_IP1}/24 connected=1 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 121 122 Check Ping VPP1 -> Agent Libmemif 1 After Resync 123 vpp_term: Check Ping agent_vpp_1 ${LIBMEMIF_IP1} 124 125 ############################################################################## 126 127 128 Delete Memif On Agent Libmemif 1 129 ${out}= lmterm: Issue Command agent_libmemif_1 del 0 130 131 Check Memif1 Interface On VPP1 Disconnected After Slave Deleted 132 vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 133 vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 mac=62:61:61:61:61:61 role=master id=0 ipv4=${VPP1MEMIF_IP1}/24 connected=0 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 134 135 136 Check Memif1 Interface On VPP1 Disconnected After Slave Deleted Again 137 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 138 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 mac=62:61:61:61:61:61 role=master id=0 ipv4=${VPP1MEMIF_IP1}/24 connected=0 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 139 140 Create Memif1 On Agent Libmemif 1 Again 141 ${out}= lmterm: Issue Command agent_libmemif_1 conn 0 0 142 143 144 Check Memif1 Interface On VPP1 Connected After Slave Deleted and Created 145 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 146 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 mac=62:61:61:61:61:61 role=master id=0 ipv4=${VPP1MEMIF_IP1}/24 connected=1 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 147 148 Check Ping VPP1 -> Agent Libmemif 1 After Delete and Create 149 vpp_term: Check Ping agent_vpp_1 ${LIBMEMIF_IP1} 150 151 ####### Here VPP crashes 152 #Modify Memif1 Interface On VPP1 While Connected 153 # Put Memif Interface With IP node=agent_vpp_1 name=vpp1_memif1 mac=62:61:61:61:61:62 master=true id=0 ip=${VPP1MEMIF_IP2} prefix=24 socket=memif.sock 154 # Sleep ${SYNC_SLEEP} 155 156 #Check Memif1 Interface On VPP1 Modified 157 # vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:62 158 # vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 mac=62:61:61:61:61:62 role=master id=0 ipv4=${VPP1MEMIF_IP2}/24 connected=1 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 159 # 160 #Check Ping VPP1 -> Agent Libmemif 1 After Memif1 Modified 161 # vpp_term: Check Ping agent_vpp_1 ${LIBMEMIF_IP1} 162 163 ############################################################ 164 #Delete Memif On Agent Libmemif 1 165 # ${out}= lmterm: Issue Command agent_libmemif_1 del 0 166 # 167 #Modify Memif1 Interface On VPP1 After Slave Delete 168 # Put Memif Interface With IP node=agent_vpp_1 name=vpp1_memif1 mac=62:61:61:61:61:62 master=true id=0 ip=${VPP1MEMIF_IP2} prefix=24 socket=memif.sock 169 # Sleep ${SYNC_SLEEP} 170 171 ##### Here VPP crashes 172 #Check Memif1 Interface On VPP1 Modified After Slave Delete 2 173 # vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:62 174 # vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 mac=62:61:61:61:61:62 role=master id=0 ipv4=${VPP1MEMIF_IP2}/24 connected=0 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 175 176 Remove Agent Libmemif 1 177 Remove Node agent_libmemif_1 178 Sleep ${SYNC_SLEEP} 179 180 Add Libmemif Node Again 181 Add Agent Libmemif Node agent_libmemif_1 182 Sleep ${RESYNC_WAIT} 183 184 Create And Check Memif1 On Agent Libmemif 1 After node restart 185 ${out_c}= lmterm: Issue Command agent_libmemif_1 conn 0 0 186 ${out}= lmterm: Issue Command agent_libmemif_1 show 187 Should Contain ${out} interface ip: ${LIBMEMIF_IP1} 188 Should Contain ${out} link: up 189 190 Check Memif1 Interface On VPP1 Connected After Node Restart 191 vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 192 vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 mac=62:61:61:61:61:61 role=master id=0 ipv4=${VPP1MEMIF_IP1}/24 connected=1 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 193 ${out}= lmterm: Issue Command agent_libmemif_1 show 194 195 Create Memif2 On Agent Libmemif 1 196 ${out}= lmterm: Issue Command agent_libmemif_1 conn 1 0 197 #Should Contain ${out} INFO: memif connected! 198 199 Check Memif 1 and Memif2 On Agent LibMemif 1 200 ${out}= lmterm: Issue Command agent_libmemif_1 show 201 Should Contain ${out} interface ip: ${LIBMEMIF_IP2} 202 Should Contain ${out} interface ip: ${LIBMEMIF_IP1} 203 Should Contain ${out} link: up 204 Should Contain ${out} link: down 205 206 Check Memif1 Interface On VPP1 Connected After Second Libmemif Added 207 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 208 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 mac=62:61:61:61:61:61 role=master id=0 ipv4=${VPP1MEMIF_IP1}/24 connected=1 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 209 ${out}= lmterm: Issue Command agent_libmemif_1 show 210 211 ############################################################################ 212 ##### Here VPP crashes 213 Add Memif2 Interface On VPP1 214 Put Memif Interface With IP node=agent_vpp_1 name=vpp1_memif2 mac=62:61:61:61:51:51 master=true id=1 ip=${VPP1MEMIF_IP2} prefix=24 socket=memif.sock 215 216 217 Check Memif2 Interface Created On VPP1 218 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:51:51 219 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif2 mac=62:61:61:61:51:51 role=master id=1 ipv4=${VPP1MEMIF_IP2}/24 connected=1 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 220 221 Check Memif 1 and Memif2 On Agent LibMemif 1 222 ${out}= lmterm: Issue Command agent_libmemif_1 show 223 Should Contain ${out} interface ip: ${LIBMEMIF_IP2} 224 Should Contain ${out} interface ip: ${LIBMEMIF_IP1} 225 Should Contain ${out} link: up 226 Should Not Contain ${out} link: down 227 228 Delete Memif2 Interface On VPP1 After Resync 229 Delete VPP Interface node=agent_vpp_1 name=vpp1_memif2 230 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Deleted node=agent_vpp_1 mac=62:61:61:61:51:51 231 232 Delete Memif1 Interface On VPP1 233 Delete VPP Interface node=agent_vpp_1 name=vpp1_memif1 234 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Deleted node=agent_vpp_1 mac=62:61:61:61:61:61 235 236 Check Memif 1 and Memif2 On Agent LibMemif 1 237 ${out}= lmterm: Issue Command agent_libmemif_1 show 238 Should Contain ${out} interface ip: ${LIBMEMIF_IP2} 239 Should Contain ${out} interface ip: ${LIBMEMIF_IP1} 240 Should Contain ${out} link: down 241 242 Add Memif2 Interface On VPP1 243 Put Memif Interface With IP node=agent_vpp_1 name=vpp1_memif2 mac=62:61:61:61:51:51 master=true id=1 ip=${VPP1MEMIF_IP2} prefix=24 socket=memif.sock 244 245 246 Check Memif2 Interface Created On VPP1 247 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:51:51 248 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif2 mac=62:61:61:61:51:51 role=master id=1 ipv4=${VPP1MEMIF_IP2}/24 connecte 249 250 Check Memif 1 and Memif2 On Agent LibMemif 1 251 ${out}= lmterm: Issue Command agent_libmemif_1 show 252 Should Contain ${out} interface ip: ${LIBMEMIF_IP2} 253 Should Contain ${out} interface ip: ${LIBMEMIF_IP1} 254 Should Contain ${out} link: up 255 Should Contain ${out} link: down 256 257 Check Ping VPP1 Memif2 -> Agent Libmemif 1 After Delete and Create 258 vpp_term: Check Ping agent_vpp_1 ${LIBMEMIF_IP2} 259 260 Check Ping VPP1 Memif1 -> Agent Libmemif 1 After Delete and Create 261 vpp_term: Check Ping agent_vpp_1 ${LIBMEMIF_IP1} 262 263 264 *** Keywords *** 265 TestSetup 266 Make Datastore Snapshots ${TEST_NAME}_test_setup 267 268 TestTeardown 269 Make Datastore Snapshots ${TEST_NAME}_test_teardown