2 Documentation Test suite to validate subnet routing functionality for hidden IPv4/IPv6 address in an Openstack
3 ... integrated environment.
4 ... The assumption of this suite is that the environment is already configured with the proper
5 ... integration bridges and vxlan tunnels.
6 Suite Setup Suite Setup
7 Suite Teardown Suite Teardown
8 Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
9 Test Teardown OpenStackOperations.Get Test Teardown Debugs
11 Library OperatingSystem
12 Library RequestsLibrary
13 Resource ../../../libraries/DevstackUtils.robot
14 Resource ../../../libraries/OpenStackOperations.robot
15 Resource ../../../libraries/OVSDB.robot
16 Resource ../../../libraries/SetupUtils.robot
17 Resource ../../../libraries/Tcpdump.robot
18 Resource ../../../libraries/Utils.robot
19 Resource ../../../variables/Variables.robot
20 Resource ../../../variables/netvirt/Variables.robot
21 Resource ../../../libraries/VpnOperations.robot
24 ${SECURITY_GROUP} vpndssr_sg
25 @{NETWORKS} vpndssr_net_1 vpndssr_net_2
26 @{SUBNETS4} vpndssr_ipv4_sub_1 vpndssr_ipv4_sub_2
27 @{SUBNETS6} vpndssr_ipv6_sub_1 vpndssr_ipv6_sub_2
28 @{SUBNETS4_CIDR} 30.1.1.0/24 40.1.1.0/24
29 @{SUBNETS6_CIDR} 2001:db5:0:2::/64 2001:db5:0:3::/64
30 ${SUBNET_ADDITIONAL_ARGS} --ip-version=6 --ipv6-address-mode=slaac --ipv6-ra-mode=slaac
31 @{PORTS} vpndssr_port_1 vpndssr_port_2 vpndssr_port_3 vpndssr_port_4
32 @{NET_1_VMS} vpndssr_net_1_vm_1 vpndssr_net_1_vm_2
33 @{NET_2_VMS} vpndssr_net_2_vm_1 vpndssr_net_2_vm_2
34 @{EXTRA_NW_IPV4} 30.1.1.209 30.1.1.210 40.1.1.209 40.1.1.210 40.1.1.211 30.1.1.211
35 @{EXTRA_NW_IPV6} 2001:db5:0:2::10 2001:db5:0:2::20 2001:db5:0:3::10 2001:db5:0:3::20 2001:db5:0:3::30 2001:db5:0:2::30
36 @{EXTRA_NW_SUBNET_IPv4} 30.1.1.0/24 40.1.1.0/24
37 @{EXTRA_NW_SUBNET_IPv6} 2001:db5:0:2::/64 2001:db5:0:3::/64
38 ${ROUTER} vpn_router_dualstack_subnet
39 ${UPDATE_NETWORK} update_network_dualstack_subnet
40 ${UPDATE_SUBNET} update_subnet_dualstack_subnet
41 ${UPDATE_PORT} update_port_dualstack_subnet
42 @{VPN_INSTANCE_ID} 1bc8cd92-48ca-49b5-94e1-b2921a261661 1bc8cd92-48ca-49b5-94e1-b2921a261662 1bc8cd92-48ca-49b5-94e1-b2921a261663
43 @{VPN_NAME} vpn1_dualstack_subnet vpn2_dualstack_subnet vpn3_dualstack_subnet
44 @{RDS} ["2506:2"] ["2606:2"] ["2706:2"]
47 ${DUMP_FLOWS} sudo ovs-ofctl dump-flows br-int -O Openflow13
50 Check ELAN Datapath Traffic Within The Networks
51 [Documentation] Checks datapath within the same network with different vlans.
52 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[0] ping -I @{net_1_vm_ipv4}[0] -c 3 @{net_1_vm_ipv4}[1]
53 BuiltIn.Should Contain ${output} ${PING_REGEXP}
54 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[0] ping6 -I @{net_1_vm_ipv6}[0] -c 3 @{net_1_vm_ipv6}[1]
55 BuiltIn.Should Contain ${output} ${PING_REGEXP}
56 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[0] ping -I @{net_2_vm_ipv4}[0] -c 3 @{net_2_vm_ipv4}[1]
57 BuiltIn.Should Contain ${output} ${PING_REGEXP}
58 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[0] ping6 -I @{net_2_vm_ipv6}[0] -c 3 @{net_2_vm_ipv6}[1]
59 BuiltIn.Should Contain ${output} ${PING_REGEXP}
62 [Documentation] Create L3VPN
63 ${net_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0]
64 ${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
65 VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_ID}[0] name=@{VPN_NAME}[0] rd=@{RDS}[0] exportrt=@{RDS}[0] importrt=@{RDS}[0] tenantid=${tenant_id}
66 ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
67 BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_ID}[0]
69 Associate L3VPN To Routers
70 [Documentation] Associating router to L3VPN.
71 ${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
72 VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_ID}[0]
73 ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
74 BuiltIn.Should Contain ${resp} ${router_id}
76 Configure Extra IPv4/IPv6 Addresss On Interface For Subnet Routing
77 [Documentation] Extra IPv4/IPv6 Address configuration on Interfaces
78 ${VM_IPV6} = BuiltIn.Create List @{net_1_vm_ipv6}[0] @{net_1_vm_ipv6}[1] @{net_2_vm_ipv6}[0] @{net_2_vm_ipv6}[1]
79 ${VM_IPV4} = BuiltIn.Create List @{net_1_vm_ipv4}[0] @{net_1_vm_ipv4}[1] @{net_2_vm_ipv4}[0] @{net_2_vm_ipv4}[1]
80 FOR ${index} IN RANGE 0 ${LOOP_COUNT}
81 OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV6}[${index}] sudo ip -6 addr add @{EXTRA_NW_IPV6}[${index}]/64 dev eth0; sudo ifconfig eth0 allmulti; ip -6 a
83 FOR ${index} IN RANGE 0 ${LOOP_COUNT}
84 OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV4}[${index}] sudo ifconfig eth0:1 @{EXTRA_NW_IPV4}[${index}] netmask 255.255.255.0 up; ip a
86 BuiltIn.Set Suite Variable ${VM_IPV6}
87 BuiltIn.Set Suite Variable ${VM_IPV4}
88 BuiltIn.Should Not Contain ${VM_IPV6} None
89 BuiltIn.Should Not Contain ${VM_IPV4} None
91 Verify Data Traffic On Configured Subnet Ipv4/IPv6 Address
92 [Documentation] Check Dual Stack data path verifcation within and across network.
93 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data Traffic
94 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data Traffic
96 Dissociate L3VPN From Routers and verify traffic
97 [Documentation] Dissociating router from L3VPN and check data path verification
98 ${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
99 VpnOperations.Dissociate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_ID}[0]
100 ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
101 BuiltIn.Should Not Contain ${resp} ${router_id}
102 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data No Traffic
103 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data No Traffic
105 Associate L3VPN Again To Routers and verify traffic
106 [Documentation] Associating router to L3VPN and check data path verification
107 ${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
108 VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_ID}[0]
109 ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
110 BuiltIn.Should Contain ${resp} ${router_id}
111 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data Traffic
112 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data Traffic
114 Delete the configured extra IPv4/IPv6 Addresss and verify traffic
115 [Documentation] Delete IPv4/IPv6 Address configuration on Interfaces and verify traffic
116 FOR ${index} IN RANGE 0 ${LOOP_COUNT}
117 OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV6}[${index}] sudo ip -6 addr del @{EXTRA_NW_IPV6}[${index}]/64 dev eth0
119 FOR ${index} IN RANGE 0 ${LOOP_COUNT}
120 OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV4}[${index}] sudo ifconfig eth0:1 down
122 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data No Traffic
123 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data No Traffic
124 BuiltIn.Wait Until Keyword Succeeds 10x 40s Verify Table 21 for No VPN Routes
126 Configure Again Extra IPv4/IPv6 Addresss On Interface For Subnet Routing
127 [Documentation] Extra IPv4/IPv6 Address configuration on Interfaces
128 FOR ${index} IN RANGE 0 ${LOOP_COUNT}
129 OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV6}[${index}] sudo ip -6 addr add @{EXTRA_NW_IPV6}[${index}]/64 dev eth0; sudo ifconfig eth0 allmulti; ip -6 a
131 FOR ${index} IN RANGE 0 ${LOOP_COUNT}
132 OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV4}[${index}] sudo ifconfig eth0:1 @{EXTRA_NW_IPV4}[${index}] netmask 255.255.255.0 up; ip a
134 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data Traffic
135 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data Traffic
137 Remove Interface From Router And Verify Traffic
138 [Documentation] Remove subnet from router and check data path verification
139 ${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
140 FOR ${interface} IN @{SUBNETS4}
141 OpenStackOperations.Remove Interface ${ROUTER} ${INTERFACE}
143 ${interface_output} = OpenStackOperations.Show Router Interface ${ROUTER}
144 FOR ${interface} IN @{SUBNETS6}
145 OpenStackOperations.Remove Interface ${ROUTER} ${INTERFACE}
147 ${interface_output} = OpenStackOperations.Show Router Interface ${ROUTER}
148 FOR ${interface} IN @{SUBNETS4}
149 ${subnet_id} = OpenStackOperations.Get Subnet Id ${INTERFACE}
150 BuiltIn.Should Not Contain ${interface_output} ${subnet_id}
152 FOR ${interface} IN @{SUBNETS6}
153 ${subnet_id} = OpenStackOperations.Get Subnet Id ${INTERFACE}
154 BuiltIn.Should Not Contain ${interface_output} ${subnet_id}
156 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data No Traffic
158 Add Interface To Router And Verify Traffic
159 [Documentation] Add interface router to again and check data path verification
160 FOR ${interface} IN @{SUBNETS4}
161 OpenStackOperations.Add Router Interface ${ROUTER} ${interface}
163 FOR ${interface} IN @{SUBNETS6}
164 OpenStackOperations.Add Router Interface ${ROUTER} ${interface}
166 BuiltIn.Wait Until Keyword Succeeds 10x 60s Verify Ipv4 Data Traffic
167 BuiltIn.Wait Until Keyword Succeeds 10x 60s Verify Ipv6 Data Traffic
170 [Documentation] Delete L3VPN.
171 VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
172 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data No Traffic
173 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data No Traffic
175 ReCreate L3VPN and associate L3VPN To Routers and verify traffic
176 [Documentation] Recreate L3VPN and associate L3VPN To Routers and verify ipv4/ipv6 traffic
177 ${net_id} = OpenStackOperations.Get Net Id @{NETWORKS}[0]
178 ${tenant_id} = OpenStackOperations.Get Tenant ID From Network ${net_id}
179 VpnOperations.VPN Create L3VPN vpnid=@{VPN_INSTANCE_ID}[0] name=@{VPN_NAME}[0] rd=@{RDS}[0] exportrt=@{RDS}[0] importrt=@{RDS}[0] tenantid=${tenant_id}
180 ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
181 BuiltIn.Should Contain ${resp} @{VPN_INSTANCE_ID}[0]
182 ${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
183 VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_ID}[0]
184 ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
185 BuiltIn.Should Contain ${resp} ${router_id}
186 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data Traffic
187 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data Traffic
191 [Documentation] Create basic setup for feature.Create two network,subnet,four ports and four VMs
192 VpnOperations.Basic Suite Setup
193 OpenStackOperations.Create Network @{NETWORKS}[0]
194 OpenStackOperations.Create Network @{NETWORKS}[1]
195 BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${NETWORK_URL} ${NETWORKS}
196 OpenStackOperations.Update Network @{NETWORKS}[0] additional_args=--description ${UPDATE_NETWORK}
197 ${output} = OpenStackOperations.Show Network @{NETWORKS}[0]
198 BuiltIn.Should Contain ${output} ${UPDATE_NETWORK}
199 OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS4}[0] @{SUBNETS4_CIDR}[0]
200 OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS6}[0] @{SUBNETS6_CIDR}[0] ${SUBNET_ADDITIONAL_ARGS}
201 OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS4}[1] @{SUBNETS4_CIDR}[1]
202 OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS6}[1] @{SUBNETS6_CIDR}[1] ${SUBNET_ADDITIONAL_ARGS}
203 BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${SUBNETS4}
204 BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${SUBNETS6}
205 OpenStackOperations.Update SubNet @{SUBNETS4}[0] additional_args=--description ${UPDATE_SUBNET}
206 ${output} = OpenStackOperations.Show SubNet @{SUBNETS4}[0]
207 BuiltIn.Should Contain ${output} ${UPDATE_SUBNET}
208 OpenStackOperations.Create Router ${ROUTER}
209 @{router_list} = BuiltIn.Create List ${ROUTER}
210 BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${ROUTER_URL} ${router_list}
211 FOR ${port} IN @{SUBNETS4}
212 OpenStackOperations.Add Router Interface ${ROUTER} ${port}
214 ${interface_output} = OpenStackOperations.Show Router Interface ${ROUTER}
215 FOR ${port} IN @{SUBNETS6}
216 OpenStackOperations.Add Router Interface ${ROUTER} ${port}
218 ${interface_output} = OpenStackOperations.Show Router Interface ${ROUTER}
219 Create Allow All SecurityGroup ${SECURITY_GROUP} IPv4 True
220 ${allowed_address_pairs_args} = BuiltIn.Set Variable --allowed-address ip-address=@{EXTRA_NW_SUBNET_IPV4}[0] --allowed-address ip-address=@{EXTRA_NW_SUBNET_IPV4}[1] --allowed-address ip-address=@{EXTRA_NW_SUBNET_IPV6}[0] --allowed-address ip-address=@{EXTRA_NW_SUBNET_IPV6}[1]
221 ${network_list} = BuiltIn.Create List @{NETWORKS}[0] @{NETWORKS}[0] @{NETWORKS}[1] @{NETWORKS}[1]
222 BuiltIn.Set Suite Variable ${network_list}
223 FOR ${index} IN RANGE 0 ${LOOP_COUNT}
224 OpenStackOperations.Create Port @{network_list}[${index}] @{PORTS}[${index}] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
226 BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${PORT_URL} ${PORTS}
227 OpenStackOperations.Update Port @{PORTS}[0] additional_args=--name ${UPDATE_PORT}
228 ${output} = Show Port ${UPDATE_PORT}
229 BuiltIn.Should Contain ${output} ${UPDATE_PORT}
230 OpenStackOperations.Update Port ${UPDATE_PORT} additional_args=--name @{PORTS}[0]
231 OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
232 OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[1] @{NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
233 OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[2] @{NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
234 OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[3] @{NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
235 BuiltIn.Wait Until Keyword Succeeds 30s 10s OpenStackOperations.Wait For Routes To Propogate ${NETWORKS} ${SUBNETS4_CIDR}
236 BuiltIn.Wait Until Keyword Succeeds 30s 10s OpenStackOperations.Wait For Routes To Propogate ${NETWORKS} ${SUBNETS6_CIDR}
237 @{net_1_vm_ipv4} ${net_1_dhcp_ipv4} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
238 @{net_2_vm_ipv4} ${net_2_dhcp_ipv4} = OpenStackOperations.Get VM IPs @{NET_2_VMS}
239 BuiltIn.Should Not Contain ${net_1_vm_ipv4} None
240 BuiltIn.Should Not Contain ${net_2_vm_ipv4} None
241 BuiltIn.Should Not Contain ${net_1_dhcp_ipv4} None
242 BuiltIn.Should Not Contain ${net_2_dhcp_ipv4} None
243 BuiltIn.Log Collect VMs IPv6 addresses
244 ${prefix_net10} = String.Replace String @{SUBNETS6_CIDR}[0] ${IP6_SUBNET_CIDR_SUFFIX} ${IP6_ADDR_SUFFIX}
245 ${prefix_net20} = String.Replace String @{SUBNETS6_CIDR}[1] ${IP6_SUBNET_CIDR_SUFFIX} ${IP6_ADDR_SUFFIX}
246 ${status} ${message} Run Keyword And Ignore Error BuiltIn.Wait Until Keyword Succeeds 3x 60s OpenStackOperations.Collect VM IPv6 SLAAC Addresses
247 ... true ${NET_1_VMS} @{NETWORKS}[0] ${prefix_net10}
248 ${status} ${message} Run Keyword And Ignore Error BuiltIn.Wait Until Keyword Succeeds 3x 60s OpenStackOperations.Collect VM IPv6 SLAAC Addresses
249 ... true ${NET_2_VMS} @{NETWORKS}[1] ${prefix_net20}
250 ${net_1_vm_ipv6} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses false ${NET_1_VMS} @{NETWORKS}[0] ${prefix_net10}
251 ${net_2_vm_ipv6} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses false ${NET_2_VMS} @{NETWORKS}[1] ${prefix_net20}
252 ${loop_count} Get Length ${NET_1_VMS}
253 FOR ${index} IN RANGE 0 ${loop_count}
254 ${status} ${message} Run Keyword And Ignore Error BuiltIn.Should Not Contain ${net_1_vm_ipv6}[${index}] None
255 Run Keyword If '${status}' == 'FAIL' Write Commands Until Prompt nova console-log @{NET_1_VMS}[${index}] 30s
256 ${status} ${message} Run Keyword And Ignore Error BuiltIn.Should Not Contain ${net_2_vm_ipv6}[${index}] None
257 Run Keyword If '${status}' == 'FAIL' Write Commands Until Prompt nova console-log @{NET_2_VMS}[${index}] 30s
259 BuiltIn.Set Suite Variable ${net_1_vm_ipv4}
260 BuiltIn.Set Suite Variable ${net_2_vm_ipv4}
261 BuiltIn.Set Suite Variable ${net_1_vm_ipv6}
262 BuiltIn.Set Suite Variable ${net_2_vm_ipv6}
263 OpenStackOperations.Show Debugs @{NET_1_VMS} @{NET_2_VMS}
264 OpenStackOperations.Get Suite Debugs
266 Verify Ipv4 Data Traffic
267 [Documentation] Check Ipv4 data path verification within and across network
268 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[1]
269 BuiltIn.Should Contain ${output} ${PING_REGEXP}
270 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[3]
271 BuiltIn.Should Contain ${output} ${PING_REGEXP}
272 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[2]
273 BuiltIn.Should Contain ${output} ${PING_REGEXP}
274 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[0]
275 BuiltIn.Should Contain ${output} ${PING_REGEXP}
276 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[3]
277 BuiltIn.Should Contain ${output} ${PING_REGEXP}
278 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[2]
279 BuiltIn.Should Contain ${output} ${PING_REGEXP}
280 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[0]
281 BuiltIn.Should Contain ${output} ${PING_REGEXP}
282 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[1]
283 BuiltIn.Should Contain ${output} ${PING_REGEXP}
284 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[2]
285 BuiltIn.Should Contain ${output} ${PING_REGEXP}
286 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[0]
287 BuiltIn.Should Contain ${output} ${PING_REGEXP}
288 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[1]
289 BuiltIn.Should Contain ${output} ${PING_REGEXP}
290 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[3]
291 BuiltIn.Should Contain ${output} ${PING_REGEXP}
293 Verify Ipv4 Data No Traffic
294 [Documentation] Check Ipv4 data path verification within and across network
295 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[3]
296 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
297 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[2]
298 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
299 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[3]
300 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
301 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[2]
302 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
303 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[0]
304 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
305 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[1]
306 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
307 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[0]
308 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
309 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[1]
310 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
312 Verify Ipv6 Data Traffic
313 [Documentation] Check Ipv6 data path verification within and across network
314 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[1]
315 BuiltIn.Should Contain ${output} ${PING_REGEXP}
316 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[3]
317 BuiltIn.Should Contain ${output} ${PING_REGEXP}
318 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[2]
319 BuiltIn.Should Contain ${output} ${PING_REGEXP}
320 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[0]
321 BuiltIn.Should Contain ${output} ${PING_REGEXP}
322 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[3]
323 BuiltIn.Should Contain ${output} ${PING_REGEXP}
324 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[2]
325 BuiltIn.Should Contain ${output} ${PING_REGEXP}
326 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[0]
327 BuiltIn.Should Contain ${output} ${PING_REGEXP}
328 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[1]
329 BuiltIn.Should Contain ${output} ${PING_REGEXP}
330 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[2]
331 BuiltIn.Should Contain ${output} ${PING_REGEXP}
332 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[0]
333 BuiltIn.Should Contain ${output} ${PING_REGEXP}
334 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[1]
335 BuiltIn.Should Contain ${output} ${PING_REGEXP}
336 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[3]
337 BuiltIn.Should Contain ${output} ${PING_REGEXP}
339 Verify Ipv6 Data No Traffic
340 [Documentation] Check Ipv6 data path verification within and across network
341 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[3]
342 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
343 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[2]
344 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
345 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[3]
346 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
347 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[2]
348 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
349 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[0]
350 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
351 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[1]
352 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
353 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[0]
354 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
355 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[1]
356 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
358 Verify Table 21 for VPN Routes
359 FOR ${index} IN RANGE 0 ${LOOP_COUNT}
360 OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} True ${EMPTY} ipv6_dst=@{EXTRA_NW_IPV6}[${index}]
362 FOR ${index} IN RANGE 0 ${LOOP_COUNT}
363 OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} True ${EMPTY} ipv6_dst=@{EXTRA_NW_IPV4}[${index}]
366 Verify Table 21 for No VPN Routes
367 FOR ${index} IN RANGE 0 ${LOOP_COUNT}
368 OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} False ${EMPTY} ipv6_dst=@{EXTRA_NW_IPV6}[${index}]
370 FOR ${index} IN RANGE 0 ${LOOP_COUNT}
371 OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} False ${EMPTY} ipv6_dst=@{EXTRA_NW_IPV4}[${index}]
375 [Documentation] Delete the setup
376 BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
377 BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[1]
378 BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[2]
379 OpenStackOperations.OpenStack Suite Teardown