go.ligato.io/vpp-agent/v3@v3.5.0/tests/robot/suites/traffic/libmemif/libmemif_master_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=false 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=slave 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=false 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=slave id=0 ipv4=${VPP1MEMIF_IP2}/24 connected=0 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 52 53 Create And Chek Memif1 On Agent Libmemif 1 54 ${out}= lmterm: Issue Command agent_libmemif_1 conn 0 1 55 ${out}= lmterm: Issue Command agent_libmemif_1 show 56 Should Contain ${out} interface ip: ${LIBMEMIF_IP1} 57 Should Contain ${out} link: up 58 59 Check Memif1 Interface On VPP1 Connected To LibMemif 60 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:62 61 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=slave id=0 ipv4=${VPP1MEMIF_IP2}/24 connected=1 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 62 63 Modify Memif1 On VPP1 back 64 Put Memif Interface With IP node=agent_vpp_1 name=vpp1_memif1 mac=62:61:61:61:61:61 master=false id=0 ip=${VPP1MEMIF_IP1} prefix=24 socket=memif.sock 65 66 Check Memif1 on Vpp1 is connected 67 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=slave id=0 ipv4=${VPP1MEMIF_IP1}/24 connected=1 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 68 69 Check Ping VPP1 -> Agent Libmemif 1 70 vpp_term: Check Ping agent_vpp_1 ${LIBMEMIF_IP1} 71 72 73 Remove VPP Nodes 74 Remove All VPP Nodes 75 Sleep ${SYNC_SLEEP} 76 Add Agent VPP Node agent_vpp_1 77 #Add Agent VPP Node agent_vpp_2 78 Sleep ${RESYNC_WAIT} 79 80 Check Memif1 Interface On VPP1 Connected To LibMemif After Resync 81 vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 82 vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 mac=62:61:61:61:61:61 role=slave id=0 ipv4=${VPP1MEMIF_IP1}/24 connected=1 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 83 84 Check Ping VPP1 -> Agent Libmemif 1 After Resync 85 vpp_term: Check Ping agent_vpp_1 ${LIBMEMIF_IP1} 86 87 ############################################################################## 88 89 90 Delete Memif On Agent Libmemif 1 91 ${out}= lmterm: Issue Command agent_libmemif_1 del 0 92 93 Check Memif1 Interface On VPP1 Disconnected After Master Deleted 94 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 95 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=slave id=0 ipv4=${VPP1MEMIF_IP1}/24 connected=0 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 96 97 Create Memif1 On Agent Libmemif 1 Again 98 ${out}= lmterm: Issue Command agent_libmemif_1 conn 0 1 99 100 Check Memif1 Interface On VPP1 Connected After Master Deleted and Created 101 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 102 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=slave id=0 ipv4=${VPP1MEMIF_IP1}/24 connected=1 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 103 104 Check Ping VPP1 -> Agent Libmemif 1 After Delete and Create 105 vpp_term: Check Ping agent_vpp_1 ${LIBMEMIF_IP1} 106 107 ####### Here VPP crashes 108 #Modify Memif1 Interface On VPP1 While Connected 109 # Put Memif Interface With IP node=agent_vpp_1 name=vpp1_memif1 mac=62:61:61:61:61:62 master=false id=0 ip=${VPP1MEMIF_IP2} prefix=24 socket=memif.sock 110 # Sleep ${SYNC_SLEEP} 111 112 #Check Memif1 Interface On VPP1 Modified 113 # vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:62 114 # vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 mac=62:61:61:61:61:62 role=slave id=0 ipv4=${VPP1MEMIF_IP2}/24 connected=1 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 115 # 116 #Check Ping VPP1 -> Agent Libmemif 1 After Memif1 Modified 117 # vpp_term: Check Ping agent_vpp_1 ${LIBMEMIF_IP1} 118 119 ############################################################ 120 #Delete Memif On Agent Libmemif 1 121 # ${out}= lmterm: Issue Command agent_libmemif_1 del 0 122 # 123 #Modify Memif1 Interface On VPP1 After Slave Delete 124 # Put Memif Interface With IP node=agent_vpp_1 name=vpp1_memif1 mac=62:61:61:61:61:62 master=false id=0 ip=${VPP1MEMIF_IP2} prefix=24 socket=memif.sock 125 # Sleep ${SYNC_SLEEP} 126 127 ##### Here VPP crashes 128 #Check Memif1 Interface On VPP1 Modified After Slave Delete 2 129 # vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:62 130 # vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif1 mac=62:61:61:61:61:62 role=slave id=0 ipv4=${VPP1MEMIF_IP2}/24 connected=0 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 131 132 Remove Agent Libmemif 1 133 Remove Node agent_libmemif_1 134 Sleep ${SYNC_SLEEP} 135 136 Add Libmemif Node Again 137 Add Agent Libmemif Node agent_libmemif_1 138 Sleep ${RESYNC_WAIT} 139 140 Create And Check Memif1 On Agent Libmemif 1 After node restart2 141 ${out_c}= lmterm: Issue Command agent_libmemif_1 conn 0 1 142 ${out}= lmterm: Issue Command agent_libmemif_1 show 143 Should Contain ${out} interface ip: ${LIBMEMIF_IP1} 144 Should Contain ${out} link: up 145 146 Check Memif1 Interface On VPP1 Connected After Node Restart2 147 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 148 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=slave id=0 ipv4=${VPP1MEMIF_IP1}/24 connected=1 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 149 ${out}= lmterm: Issue Command agent_libmemif_1 show 150 151 Create Memif2 On Agent Libmemif 1 152 ${out}= lmterm: Issue Command agent_libmemif_1 conn 1 1 153 #Should Contain ${out} INFO: memif connected! 154 155 Check Memif 1 and Memif2 On Agent LibMemif 1 156 ${out}= lmterm: Issue Command agent_libmemif_1 show 157 Should Contain ${out} interface ip: ${LIBMEMIF_IP2} 158 Should Contain ${out} interface ip: ${LIBMEMIF_IP1} 159 Should Contain ${out} link: up 160 Should Contain ${out} link: down 161 162 Check Memif1 Interface On VPP1 Connected After Second Libmemif Added 163 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:61:61 164 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=slave id=0 ipv4=${VPP1MEMIF_IP1}/24 connected=1 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 165 ${out}= lmterm: Issue Command agent_libmemif_1 show 166 167 ############################################################################ 168 ##### Here VPP crashes 169 #Add Memif2 Interface On VPP1 170 # Put Memif Interface With IP node=agent_vpp_1 name=vpp1_memif2 mac=62:61:61:61:51:51 master=false id=1 ip=${VPP1MEMIF_IP2} prefix=24 socket=memif.sock 171 # Sleep ${SYNC_SLEEP} 172 # 173 #Check Memif2 Interface Created On VPP1 174 # vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:51:51 175 # vat_term: Check Memif Interface State agent_vpp_1 vpp1_memif2 mac=62:61:61:61:51:51 role=slave id=0 ipv4=${VPP1MEMIF_IP2}/24 connected=1 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 176 # 177 #Check Memif 1 and Memif2 On Agent LibMemif 1 178 # ${out}= lmterm: Issue Command agent_libmemif_1 show 179 # Should Contain ${out} interface ip: ${LIBMEMIF_IP2} 180 # Should Contain ${out} interface ip: ${LIBMEMIF_IP1} 181 # Should Contain ${out} link: up 182 # Should Not Contain ${out} link: down 183 184 #Delete Memif2 Interface On VPP1 After Resync 185 # Delete VPP Interface node=agent_vpp_1 name=vpp1_memif2 186 # vpp_term: Interface Is Deleted node=agent_vpp_1 mac=62:61:61:61:51:51 187 188 Delete Memif1 Interface On VPP1 189 Delete VPP Interface node=agent_vpp_1 name=vpp1_memif1 190 vpp_term: Show Interfaces agent_vpp_1 191 vpp_term: Interface Is Deleted node=agent_vpp_1 mac=62:61:61:61:61:61 192 193 Check LibMemif1 down and LibMemif2 down 194 ${out}= lmterm: Issue Command agent_libmemif_1 show 195 Should Contain ${out} interface ip: ${LIBMEMIF_IP2} 196 Should Contain ${out} interface ip: ${LIBMEMIF_IP1} 197 Should Contain ${out} link: down 198 199 Add Memif2 Interface On VPP1 200 Put Memif Interface With IP node=agent_vpp_1 name=vpp1_memif2 mac=62:61:61:61:51:51 master=slave id=1 ip=${VPP1MEMIF_IP2} prefix=24 socket=memif.sock 201 202 203 Check Memif2 Interface Created On VPP1 204 Wait Until Keyword Succeeds ${WAIT_TIMEOUT} ${SYNC_SLEEP} vpp_term: Interface Is Created node=agent_vpp_1 mac=62:61:61:61:51:51 205 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=slave id=1 ipv4=${VPP1MEMIF_IP2}/24 connected=1 enabled=1 socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock 206 207 Check LibMemif1 down and LibMemif2 up 208 ${out}= lmterm: Issue Command agent_libmemif_1 show 209 Should Contain ${out} interface ip: ${LIBMEMIF_IP2} 210 Should Contain ${out} interface ip: ${LIBMEMIF_IP1} 211 Should Contain ${out} link: up 212 Should Contain ${out} link: down 213 214 Check Ping VPP1 Memif2 -> Agent Libmemif2 215 vpp_term: Check Ping agent_vpp_1 ${LIBMEMIF_IP2} 216 217 Check Ping VPP1 Memif1 -> Agent Libmemif1 218 vpp_term: Check Ping agent_vpp_1 ${LIBMEMIF_IP1} 219 220 221 *** Keywords *** 222 TestSetup 223 Make Datastore Snapshots ${TEST_NAME}_test_setup 224 225 TestTeardown 226 Make Datastore Snapshots ${TEST_NAME}_test_teardown