go.ligato.io/vpp-agent/v3@v3.5.0/tests/robot/suites/traffic/libmemif/libmemif_slave_trafic2.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 43 Check Memif1 Interface Created On VPP1 44 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 45 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 46 47 Modify Memif1 Interface On VPP1 48 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 49 50 Check Memif1 Interface On VPP1 is Modified 51 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:62 52 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 53 54 Modify Memif1 Interface On VPP1 To Previous Values 55 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 56 57 Check Memif1 Interface On VPP1 Modified Back 58 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 59 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 60 61 ############################################################################## 62 Add Memif1 Interface On VPP2 63 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 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 Check Memif1 Interface On VPP1 Modified While Connected 77 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:62 78 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 79 80 Delete Memif1 Interface On VPP2 81 Delete VPP Interface node=agent_vpp_2 name=vpp2_memif1 82 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Deleted node=agent_vpp_2 mac=62:61:61:61:51:51 83 84 Check VPP1_memif1 Interface Is Disconnected 85 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 86 87 Modify Memif1 Interface On VPP1 To Previous Values After Slave Delete 88 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 89 90 Check Memif1 Interface On VPP1 Modified Back After Slave Delete 91 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 92 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 93 94 ############################################################################# 95 96 Create And Chek Memif1 On Agent Libmemif 1 97 ${out}= lmterm: Issue Command agent_libmemif_1 conn 0 0 98 ${out}= lmterm: Issue Command agent_libmemif_1 show 99 Should Contain ${out} interface ip: ${LIBMEMIF_IP1} 100 Should Contain ${out} link: up 101 102 Check Memif1 Interface On VPP1 Connected To LibMemif 103 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 104 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 105 106 Check Ping VPP1 -> Agent Libmemif 1 107 vpp_term: Check Ping agent_vpp_1 ${LIBMEMIF_IP1} 108 109 110 Remove VPP Nodes 111 Remove All VPP Nodes 112 Sleep ${SYNC_SLEEP} 113 Add Agent VPP Node agent_vpp_1 114 #Add Agent VPP Node agent_vpp_2 115 Sleep ${RESYNC_WAIT} 116 117 Check Memif1 Interface On VPP1 Connected To LibMemif After Resync 118 vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 119 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 120 121 Check Ping VPP1 -> Agent Libmemif 1 After Resync 122 vpp_term: Check Ping agent_vpp_1 ${LIBMEMIF_IP1} 123 124 ############################################################################## 125 126 127 Delete Memif On Agent Libmemif 1 128 ${out}= lmterm: Issue Command agent_libmemif_1 del 0 129 130 Check Memif1 Interface On VPP1 Disconnected After Slave Deleted 131 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 132 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 133 134 135 Check Memif1 Interface On VPP1 Disconnected After Slave Deleted Again 136 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 137 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 138 139 Create Memif1 On Agent Libmemif 1 Again 140 ${out}= lmterm: Issue Command agent_libmemif_1 conn 0 0 141 142 143 Check Memif1 Interface On VPP1 Connected After Slave Deleted and Created 144 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 145 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 146 147 Check Ping VPP1 -> Agent Libmemif 1 After Delete and Create 148 vpp_term: Check Ping agent_vpp_1 ${LIBMEMIF_IP1} 149 150 ####### Here VPP crashes 151 #Modify Memif1 Interface On VPP1 While Connected 152 # 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 153 # Sleep ${SYNC_SLEEP} 154 155 #Check Memif1 Interface On VPP1 Modified 156 # vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:62 157 # 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 158 # 159 #Check Ping VPP1 -> Agent Libmemif 1 After Memif1 Modified 160 # vpp_term: Check Ping agent_vpp_1 ${LIBMEMIF_IP1} 161 162 ############################################################ 163 #Delete Memif On Agent Libmemif 1 164 # ${out}= lmterm: Issue Command agent_libmemif_1 del 0 165 # 166 #Modify Memif1 Interface On VPP1 After Slave Delete 167 # 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 168 # Sleep ${SYNC_SLEEP} 169 170 ##### Here VPP crashes 171 #Check Memif1 Interface On VPP1 Modified After Slave Delete 2 172 # vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:62 173 # 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 174 175 Remove Agent Libmemif 1 176 Remove Node agent_libmemif_1 177 Sleep ${SYNC_SLEEP} 178 179 Add Libmemif Node Again 180 Add Agent Libmemif Node agent_libmemif_1 181 Sleep ${RESYNC_WAIT} 182 183 Create And Check Memif1 On Agent Libmemif 1 After node restart 184 ${out_c}= lmterm: Issue Command agent_libmemif_1 conn 0 0 185 ${out}= lmterm: Issue Command agent_libmemif_1 show 186 Should Contain ${out} interface ip: ${LIBMEMIF_IP1} 187 Should Contain ${out} link: up 188 189 Check Memif1 Interface On VPP1 Connected After Node Restart 190 vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 191 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 192 ${out}= lmterm: Issue Command agent_libmemif_1 show 193 194 Create Memif2 On Agent Libmemif 1 195 ${out}= lmterm: Issue Command agent_libmemif_1 conn 1 0 196 #Should Contain ${out} INFO: memif connected! 197 198 Check Memif 1 and Memif2 On Agent LibMemif 1 199 ${out}= lmterm: Issue Command agent_libmemif_1 show 200 Should Contain ${out} interface ip: ${LIBMEMIF_IP2} 201 Should Contain ${out} interface ip: ${LIBMEMIF_IP1} 202 Should Contain ${out} link: up 203 Should Contain ${out} link: down 204 205 Check Memif1 Interface On VPP1 Connected After Second Libmemif Added 206 vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 207 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 208 ${out}= lmterm: Issue Command agent_libmemif_1 show 209 210 ############################################################################ 211 ##### Here VPP crashes 212 Add Memif2 Interface On VPP1 213 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 214 215 216 Check Memif2 Interface Created On VPP1 217 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:51:51 218 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 219 220 Check Memif 1 and Memif2 On Agent LibMemif 1 221 ${out}= lmterm: Issue Command agent_libmemif_1 show 222 Should Contain ${out} interface ip: ${LIBMEMIF_IP2} 223 Should Contain ${out} interface ip: ${LIBMEMIF_IP1} 224 Should Contain ${out} link: up 225 Should Not Contain ${out} link: down 226 227 Delete Memif2 Interface On VPP1 After Resync 228 Delete VPP Interface node=agent_vpp_1 name=vpp1_memif2 229 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Deleted node=agent_vpp_1 mac=62:61:61:61:51:51 230 231 Delete Memif1 Interface On VPP1 232 Delete VPP Interface node=agent_vpp_1 name=vpp1_memif1 233 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Deleted node=agent_vpp_1 mac=62:61:61:61:61:61 234 235 Check Memif 1 and Memif2 On Agent LibMemif 1 236 ${out}= lmterm: Issue Command agent_libmemif_1 show 237 Should Contain ${out} interface ip: ${LIBMEMIF_IP2} 238 Should Contain ${out} interface ip: ${LIBMEMIF_IP1} 239 Should Contain ${out} link: down 240 241 Add Memif2 Interface On VPP1 242 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 243 244 Check Memif2 Interface Created On VPP1 245 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:51:51 246 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 247 248 Check Memif 1 and Memif2 On Agent LibMemif 1 249 ${out}= lmterm: Issue Command agent_libmemif_1 show 250 Should Contain ${out} interface ip: ${LIBMEMIF_IP2} 251 Should Contain ${out} interface ip: ${LIBMEMIF_IP1} 252 Should Contain ${out} link: up 253 Should Contain ${out} link: down 254 255 Check Ping VPP1 Memif2 -> Agent Libmemif 1 After Delete and Create 256 vpp_term: Check Ping agent_vpp_1 ${LIBMEMIF_IP2} 257 258 Check Ping VPP1 Memif1 -> Agent Libmemif 1 After Delete and Create 259 vpp_term: Check Ping agent_vpp_1 ${LIBMEMIF_IP1} 260 261 262 *** Keywords *** 263 TestSetup 264 Make Datastore Snapshots ${TEST_NAME}_test_setup 265 266 TestTeardown 267 Make Datastore Snapshots ${TEST_NAME}_test_teardown