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
82 : FOR ${index} IN RANGE 0 ${LOOP_COUNT}
83 \ 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
84 BuiltIn.Set Suite Variable ${VM_IPV6}
85 BuiltIn.Set Suite Variable ${VM_IPV4}
86 BuiltIn.Should Not Contain ${VM_IPV6} None
87 BuiltIn.Should Not Contain ${VM_IPV4} None
89 Verify Data Traffic On Configured Subnet Ipv4/IPv6 Address
90 [Documentation] Check Dual Stack data path verifcation within and across network.
91 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data Traffic
92 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data Traffic
94 Dissociate L3VPN From Routers and verify traffic
95 [Documentation] Dissociating router from L3VPN and check data path verification
96 ${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
97 VpnOperations.Dissociate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_ID}[0]
98 ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
99 BuiltIn.Should Not Contain ${resp} ${router_id}
100 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data No Traffic
101 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data No Traffic
103 Associate L3VPN Again To Routers and verify traffic
104 [Documentation] Associating router to L3VPN and check data path verification
105 ${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
106 VpnOperations.Associate VPN to Router routerid=${router_id} vpnid=@{VPN_INSTANCE_ID}[0]
107 ${resp} = VpnOperations.VPN Get L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
108 BuiltIn.Should Contain ${resp} ${router_id}
109 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data Traffic
110 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data Traffic
112 Delete the configured extra IPv4/IPv6 Addresss and verify traffic
113 [Documentation] Delete IPv4/IPv6 Address configuration on Interfaces and verify traffic
114 : FOR ${index} IN RANGE 0 ${LOOP_COUNT}
115 \ OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV6}[${index}] sudo ip -6 addr del @{EXTRA_NW_IPV6}[${index}]/64 dev eth0
116 : FOR ${index} IN RANGE 0 ${LOOP_COUNT}
117 \ OpenStackOperations.Execute Command on VM Instance @{network_list}[${index}] @{VM_IPV4}[${index}] sudo ifconfig eth0:1 down
118 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data No Traffic
119 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data No Traffic
120 BuiltIn.Wait Until Keyword Succeeds 10x 40s Verify Table 21 for No VPN Routes
122 Configure Again Extra IPv4/IPv6 Addresss On Interface For Subnet Routing
123 [Documentation] Extra IPv4/IPv6 Address configuration on Interfaces
124 : FOR ${index} IN RANGE 0 ${LOOP_COUNT}
125 \ 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
126 : FOR ${index} IN RANGE 0 ${LOOP_COUNT}
127 \ 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
128 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data Traffic
129 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data Traffic
131 Remove Interface From Router And Verify Traffic
132 [Documentation] Remove subnet from router and check data path verification
133 ${router_id} = OpenStackOperations.Get Router Id ${ROUTER}
134 : FOR ${interface} IN @{SUBNETS4}
135 \ OpenStackOperations.Remove Interface ${ROUTER} ${INTERFACE}
136 ${interface_output} = OpenStackOperations.Show Router Interface ${ROUTER}
137 : FOR ${interface} IN @{SUBNETS6}
138 \ OpenStackOperations.Remove Interface ${ROUTER} ${INTERFACE}
139 ${interface_output} = OpenStackOperations.Show Router Interface ${ROUTER}
140 : FOR ${interface} IN @{SUBNETS4}
141 \ ${subnet_id} = OpenStackOperations.Get Subnet Id ${INTERFACE}
142 \ BuiltIn.Should Not Contain ${interface_output} ${subnet_id}
143 : FOR ${interface} IN @{SUBNETS6}
144 \ ${subnet_id} = OpenStackOperations.Get Subnet Id ${INTERFACE}
145 \ BuiltIn.Should Not Contain ${interface_output} ${subnet_id}
146 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data No Traffic
148 Add Interface To Router And Verify Traffic
149 [Documentation] Add interface router to again and check data path verification
150 : FOR ${interface} IN @{SUBNETS4}
151 \ OpenStackOperations.Add Router Interface ${ROUTER} ${interface}
152 : FOR ${interface} IN @{SUBNETS6}
153 \ OpenStackOperations.Add Router Interface ${ROUTER} ${interface}
154 BuiltIn.Wait Until Keyword Succeeds 10x 60s Verify Ipv4 Data Traffic
155 BuiltIn.Wait Until Keyword Succeeds 10x 60s Verify Ipv6 Data Traffic
158 [Documentation] Delete L3VPN.
159 VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
160 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv4 Data No Traffic
161 BuiltIn.Wait Until Keyword Succeeds 10x 30s Verify Ipv6 Data No Traffic
165 [Documentation] Create basic setup for feature.Create two network,subnet,four ports and four VMs
166 VpnOperations.Basic Suite Setup
167 OpenStackOperations.Create Network @{NETWORKS}[0]
168 OpenStackOperations.Create Network @{NETWORKS}[1]
169 BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${NETWORK_URL} ${NETWORKS}
170 OpenStackOperations.Update Network @{NETWORKS}[0] additional_args=--description ${UPDATE_NETWORK}
171 ${output} = OpenStackOperations.Show Network @{NETWORKS}[0]
172 BuiltIn.Should Contain ${output} ${UPDATE_NETWORK}
173 OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS4}[0] @{SUBNETS4_CIDR}[0]
174 OpenStackOperations.Create SubNet @{NETWORKS}[0] @{SUBNETS6}[0] @{SUBNETS6_CIDR}[0] ${SUBNET_ADDITIONAL_ARGS}
175 OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS4}[1] @{SUBNETS4_CIDR}[1]
176 OpenStackOperations.Create SubNet @{NETWORKS}[1] @{SUBNETS6}[1] @{SUBNETS6_CIDR}[1] ${SUBNET_ADDITIONAL_ARGS}
177 BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${SUBNETS4}
178 BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${SUBNETWORK_URL} ${SUBNETS6}
179 OpenStackOperations.Update SubNet @{SUBNETS4}[0] additional_args=--description ${UPDATE_SUBNET}
180 ${output} = OpenStackOperations.Show SubNet @{SUBNETS4}[0]
181 BuiltIn.Should Contain ${output} ${UPDATE_SUBNET}
182 OpenStackOperations.Create Router ${ROUTER}
183 @{router_list} = BuiltIn.Create List ${ROUTER}
184 BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${ROUTER_URL} ${router_list}
185 : FOR ${port} IN @{SUBNETS4}
186 \ OpenStackOperations.Add Router Interface ${ROUTER} ${port}
187 ${interface_output} = OpenStackOperations.Show Router Interface ${ROUTER}
188 : FOR ${port} IN @{SUBNETS6}
189 \ OpenStackOperations.Add Router Interface ${ROUTER} ${port}
190 ${interface_output} = OpenStackOperations.Show Router Interface ${ROUTER}
191 Create Allow All SecurityGroup ${SECURITY_GROUP} IPv4 True
192 ${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]
193 ${network_list} = BuiltIn.Create List @{NETWORKS}[0] @{NETWORKS}[0] @{NETWORKS}[1] @{NETWORKS}[1]
194 BuiltIn.Set Suite Variable ${network_list}
195 : FOR ${index} IN RANGE 0 ${LOOP_COUNT}
196 \ OpenStackOperations.Create Port @{network_list}[${index}] @{PORTS}[${index}] sg=${SECURITY_GROUP} additional_args=${allowed_address_pairs_args}
197 BuiltIn.Wait Until Keyword Succeeds 3s 1s Utils.Check For Elements At URI ${PORT_URL} ${PORTS}
198 OpenStackOperations.Update Port @{PORTS}[0] additional_args=--name ${UPDATE_PORT}
199 ${output} = Show Port ${UPDATE_PORT}
200 BuiltIn.Should Contain ${output} ${UPDATE_PORT}
201 OpenStackOperations.Update Port ${UPDATE_PORT} additional_args=--name @{PORTS}[0]
202 OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[0] @{NET_1_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
203 OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[1] @{NET_1_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
204 OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[2] @{NET_2_VMS}[0] ${OS_CMP1_HOSTNAME} sg=${SECURITY_GROUP}
205 OpenStackOperations.Create Vm Instance With Port On Compute Node @{PORTS}[3] @{NET_2_VMS}[1] ${OS_CMP2_HOSTNAME} sg=${SECURITY_GROUP}
206 BuiltIn.Wait Until Keyword Succeeds 30s 10s OpenStackOperations.Wait For Routes To Propogate ${NETWORKS} ${SUBNETS4_CIDR}
207 BuiltIn.Wait Until Keyword Succeeds 30s 10s OpenStackOperations.Wait For Routes To Propogate ${NETWORKS} ${SUBNETS6_CIDR}
208 @{net_1_vm_ipv4} ${net_1_dhcp_ipv4} = OpenStackOperations.Get VM IPs @{NET_1_VMS}
209 @{net_2_vm_ipv4} ${net_2_dhcp_ipv4} = OpenStackOperations.Get VM IPs @{NET_2_VMS}
210 BuiltIn.Should Not Contain ${net_1_vm_ipv4} None
211 BuiltIn.Should Not Contain ${net_2_vm_ipv4} None
212 BuiltIn.Should Not Contain ${net_1_dhcp_ipv4} None
213 BuiltIn.Should Not Contain ${net_2_dhcp_ipv4} None
214 BuiltIn.Log Collect VMs IPv6 addresses
215 ${prefix_net10} = String.Replace String @{SUBNETS6_CIDR}[0] ${IP6_SUBNET_CIDR_SUFFIX} ${IP6_ADDR_SUFFIX}
216 ${prefix_net20} = String.Replace String @{SUBNETS6_CIDR}[1] ${IP6_SUBNET_CIDR_SUFFIX} ${IP6_ADDR_SUFFIX}
217 ${status} ${message} Run Keyword And Ignore Error BuiltIn.Wait Until Keyword Succeeds 3x 60s OpenStackOperations.Collect VM IPv6 SLAAC Addresses
218 ... true ${NET_1_VMS} @{NETWORKS}[0] ${prefix_net10}
219 ${status} ${message} Run Keyword And Ignore Error BuiltIn.Wait Until Keyword Succeeds 3x 60s OpenStackOperations.Collect VM IPv6 SLAAC Addresses
220 ... true ${NET_2_VMS} @{NETWORKS}[1] ${prefix_net20}
221 ${net_1_vm_ipv6} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses false ${NET_1_VMS} @{NETWORKS}[0] ${prefix_net10}
222 ${net_2_vm_ipv6} = OpenStackOperations.Collect VM IPv6 SLAAC Addresses false ${NET_2_VMS} @{NETWORKS}[1] ${prefix_net20}
223 ${loop_count} Get Length ${NET_1_VMS}
224 : FOR ${index} IN RANGE 0 ${loop_count}
225 \ ${status} ${message} Run Keyword And Ignore Error BuiltIn.Should Not Contain ${net_1_vm_ipv6}[${index}] None
226 \ Run Keyword If '${status}' == 'FAIL' Write Commands Until Prompt nova console-log @{NET_1_VMS}[${index}] 30s
227 \ ${status} ${message} Run Keyword And Ignore Error BuiltIn.Should Not Contain ${net_2_vm_ipv6}[${index}] None
228 \ Run Keyword If '${status}' == 'FAIL' Write Commands Until Prompt nova console-log @{NET_2_VMS}[${index}] 30s
229 BuiltIn.Set Suite Variable ${net_1_vm_ipv4}
230 BuiltIn.Set Suite Variable ${net_2_vm_ipv4}
231 BuiltIn.Set Suite Variable ${net_1_vm_ipv6}
232 BuiltIn.Set Suite Variable ${net_2_vm_ipv6}
233 OpenStackOperations.Show Debugs @{NET_1_VMS} @{NET_2_VMS}
234 OpenStackOperations.Get Suite Debugs
236 Verify Ipv4 Data Traffic
237 [Documentation] Check Ipv4 data path verification within and across network
238 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[1]
239 BuiltIn.Should Contain ${output} ${PING_REGEXP}
240 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[3]
241 BuiltIn.Should Contain ${output} ${PING_REGEXP}
242 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[2]
243 BuiltIn.Should Contain ${output} ${PING_REGEXP}
244 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[0]
245 BuiltIn.Should Contain ${output} ${PING_REGEXP}
246 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[3]
247 BuiltIn.Should Contain ${output} ${PING_REGEXP}
248 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[2]
249 BuiltIn.Should Contain ${output} ${PING_REGEXP}
250 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[0]
251 BuiltIn.Should Contain ${output} ${PING_REGEXP}
252 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[1]
253 BuiltIn.Should Contain ${output} ${PING_REGEXP}
254 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[2]
255 BuiltIn.Should Contain ${output} ${PING_REGEXP}
256 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[0]
257 BuiltIn.Should Contain ${output} ${PING_REGEXP}
258 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[1]
259 BuiltIn.Should Contain ${output} ${PING_REGEXP}
260 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[3]
261 BuiltIn.Should Contain ${output} ${PING_REGEXP}
263 Verify Ipv4 Data No Traffic
264 [Documentation] Check Ipv4 data path verification within and across network
265 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[3]
266 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
267 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[2]
268 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
269 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[3]
270 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
271 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[2]
272 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
273 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[0]
274 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
275 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[0] ping -c 3 @{EXTRA_NW_IPV4}[1]
276 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
277 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[0]
278 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
279 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv4}[1] ping -c 3 @{EXTRA_NW_IPV4}[1]
280 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
282 Verify Ipv6 Data Traffic
283 [Documentation] Check Ipv6 data path verification within and across network
284 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[1]
285 BuiltIn.Should Contain ${output} ${PING_REGEXP}
286 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[3]
287 BuiltIn.Should Contain ${output} ${PING_REGEXP}
288 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[2]
289 BuiltIn.Should Contain ${output} ${PING_REGEXP}
290 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[0]
291 BuiltIn.Should Contain ${output} ${PING_REGEXP}
292 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[3]
293 BuiltIn.Should Contain ${output} ${PING_REGEXP}
294 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[2]
295 BuiltIn.Should Contain ${output} ${PING_REGEXP}
296 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[0]
297 BuiltIn.Should Contain ${output} ${PING_REGEXP}
298 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[1]
299 BuiltIn.Should Contain ${output} ${PING_REGEXP}
300 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[2]
301 BuiltIn.Should Contain ${output} ${PING_REGEXP}
302 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[0]
303 BuiltIn.Should Contain ${output} ${PING_REGEXP}
304 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[1]
305 BuiltIn.Should Contain ${output} ${PING_REGEXP}
306 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[3]
307 BuiltIn.Should Contain ${output} ${PING_REGEXP}
309 Verify Ipv6 Data No Traffic
310 [Documentation] Check Ipv6 data path verification within and across network
311 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[3]
312 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
313 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[2]
314 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
315 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[3]
316 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
317 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[0] @{net_1_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[2]
318 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
319 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[0]
320 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
321 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[0] ping6 -c 3 @{EXTRA_NW_IPV6}[1]
322 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
323 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[0]
324 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
325 ${output} = OpenStackOperations.Execute Command on VM Instance @{NETWORKS}[1] @{net_2_vm_ipv6}[1] ping6 -c 3 @{EXTRA_NW_IPV6}[1]
326 BuiltIn.Should Contain ${output} ${NO_PING_REGEXP}
328 Verify Table 21 for VPN Routes
329 : FOR ${index} IN RANGE 0 ${LOOP_COUNT}
330 \ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} True ${EMPTY} ipv6_dst=@{EXTRA_NW_IPV6}[${index}]
331 : FOR ${index} IN RANGE 0 ${LOOP_COUNT}
332 \ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} True ${EMPTY} ipv6_dst=@{EXTRA_NW_IPV4}[${index}]
334 Verify Table 21 for No VPN Routes
335 : FOR ${index} IN RANGE 0 ${LOOP_COUNT}
336 \ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} False ${EMPTY} ipv6_dst=@{EXTRA_NW_IPV6}[${index}]
337 : FOR ${index} IN RANGE 0 ${LOOP_COUNT}
338 \ OVSDB.Verify Dump Flows For Specific Table ${OS_CMP1_IP} ${TABLE_NO_21} False ${EMPTY} ipv6_dst=@{EXTRA_NW_IPV4}[${index}]
341 [Documentation] Delete the setup
342 BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[0]
343 BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[1]
344 BuiltIn.Run Keyword And Ignore Error VpnOperations.VPN Delete L3VPN vpnid=@{VPN_INSTANCE_ID}[2]
345 OpenStackOperations.OpenStack Suite Teardown