Upgrade RF syntax for v3.2 compatibility
[integration/test.git] / csit / suites / netvirt / subnet_routing / subnet_routing_and_multicast.robot
1 *** Settings ***
2 Documentation     Test suite to validate subnet routing and multicast functionality in an openstack integrated environment.
3 ...               The assumption of this suite is that the environment is already configured with the proper
4 ...               integration bridges and vxlan tunnels.
5 Suite Setup       Suite Setup
6 Suite Teardown    Stop Suite
7 Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
8 Test Teardown     OpenStackOperations.Get Test Teardown Debugs
9 Resource          ../../../libraries/BgpOperations.robot
10 Resource          ../../../libraries/KarafKeywords.robot
11 Resource          ../../../libraries/OpenStackOperations.robot
12 Resource          ../../../libraries/Utils.robot
13 Resource          ../../../libraries/SetupUtils.robot
14 Resource          ../../../variables/Variables.robot
15 Resource          ../../../variables/netvirt/Variables.robot
16 Resource          ../../../libraries/VpnOperations.robot
17
18 *** Variables ***
19 ${AS_ID}          100
20 ${SECURITY_GROUP}    mc_sg
21 ${NUM_OF_PORTS_PER_NETWORK}    4
22 ${NUM_OF_INSTANCES}    20
23 ${VPN_INSTANCE_ID}    4ae8cd92-48ca-49b5-94e1-b2921a261111
24 ${VPN_NAME}       mc_vpn1
25 ${LOOPBACK_IP}    5.5.5.2
26 ${L3VPN_RD}       2200:2
27 ${DCGW_SYSTEM_IP}    ${TOOLS_SYSTEM_1_IP}
28 ${RPING_MIP_IP}    sudo arping -I eth0:1 -c 5 -b -s @{EXTRA_NW_SUBNET}[0] @{EXTRA_NW_SUBNET}[0]
29 ${RPING_MIP_IP1}    sudo arping -I eth0:1 -c 5 -b -s @{EXTRA_NW_SUBNET}[1] @{EXTRA_NW_SUBNET}[1]
30 ${RPING_MIP_IP2}    sudo arping -I eth0:1 -c 5 -b -s @{EXTRA_NW_SUBNET}[2] @{EXTRA_NW_SUBNET}[2]
31 ${RPING_MIP_IP3}    sudo arping -I eth0:1 -c 5 -b -s ${NEW_EXTRA_NW_SUBNET} ${NEW_EXTRA_NW_SUBNET}
32 @{INTERFACE_STATE}    up    down
33 @{NETWORKS}       mc_net_1    mc_net_2    mc_net_3
34 @{NET_1_VMS}      mc_net_1_vm_1    mc_net_1_vm_2    mc_net_1_vm_3    mc_net_1_vm_4
35 @{NET_2_VMS}      mc_net_2_vm_1    mc_net_2_vm_2    mc_net_2_vm_3    mc_net_2_vm_4
36 @{NET_3_VMS}      mc_net_3_vm_1    mc_net_3_vm_2    mc_net_3_vm_3    mc_net_3_vm_4
37 @{NET_1_PORTS}    mc_net_1_port_1    mc_net_1_port_2    mc_net_1_port_3    mc_net_1_port_4
38 @{NET_2_PORTS}    mc_net_2_port_1    mc_net_2_port_2    mc_net_2_port_3    mc_net_2_port_4
39 @{NET_3_PORTS}    mc_net_3_port_1    mc_net_3_port_2    mc_net_3_port_3    mc_net_3_port_4
40 @{SUBNETS}        mc_sub_1    mc_sub_2    mc_sub_3
41 @{SUBNET_CIDR}    10.1.0.0/24    10.2.0.0/24    10.3.0.0/24
42 @{EXTRA_NW_SUBNET}    10.1.0.100    10.2.0.100    10.3.0.100
43 ${NEW_EXTRA_NW_SUBNET}    10.1.0.110
44 ${MASK}           255.255.255.0
45
46 *** Test Cases ***
47 Verify The Subnet Route When Neutron Port Hosting Subnet Route Is Down/up On Single VSwitch Topology
48     [Documentation]    Verify the subnet route when enterprise host is down and up.
49     BuiltIn.Wait Until Keyword Succeeds    30s    5s    OpenStackOperations.Configure_IP_On_Sub_Interface    @{NETWORKS}[0]    @{EXTRA_NW_SUBNET}[0]    @{NET_1_VM_IPS}[0]
50     ...    ${MASK}    @{INTERFACE_STATE}[1]
51     ${allowed_ip_list} =    BuiltIn.Create List    @{EXTRA_NW_SUBNET}[0]
52     BuiltIn.Wait Until Keyword Succeeds    30s    10s    Utils.Check For Elements At URI    ${FIB_ENTRY_URL}    ${allowed_ip_list}
53     BuiltIn.Wait Until Keyword Succeeds    30s    5s    OpenStackOperations.Configure_IP_On_Sub_Interface    @{NETWORKS}[0]    @{EXTRA_NW_SUBNET}[0]    @{NET_1_VM_IPS}[0]
54     ...    ${MASK}    @{INTERFACE_STATE}[0]
55     BuiltIn.Wait Until Keyword Succeeds    30s    5s    OpenStackOperations.Verify_IP_Configured_On_Sub_Interface    @{NETWORKS}[0]    @{EXTRA_NW_SUBNET}[0]    @{NET_1_VM_IPS}[0]
56     BuiltIn.Wait Until Keyword Succeeds    30s    10s    Utils.Check For Elements At URI    ${FIB_ENTRY_URL}    ${allowed_ip_list}
57     Verify Ping between Inter Intra And Enterprise host
58
59 Verify Enterprise Hosts Reachability After VM Reboot
60     [Documentation]    Restart the VSwitch1 which is hosting the enterprise host and check the subnet route
61     OpenStackOperations.Get ControlNode Connection
62     @{NET_1_VM_IPS}    ${NET1_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{NET_1_VMS}
63     OpenStackOperations.Reboot Nova VM    @{NET_1_VMS}[0]
64     @{NET_1_VM_IPS}    ${NET1_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{NET_1_VMS}
65     BuiltIn.Wait Until Keyword Succeeds    30s    5s    OpenStackOperations.Configure_IP_On_Sub_Interface    @{NETWORKS}[0]    @{EXTRA_NW_SUBNET}[0]    @{NET_1_VM_IPS}[0]
66     ...    ${MASK}    @{INTERFACE_STATE}[0]
67     BuiltIn.Wait Until Keyword Succeeds    30s    5s    OpenStackOperations.Verify_IP_Configured_On_Sub_Interface    @{NETWORKS}[0]    @{EXTRA_NW_SUBNET}[0]    @{NET_1_VM_IPS}[0]
68     Verify Ping between Inter Intra And Enterprise host
69
70 Verify The Subnet Route For Multiple Subnets On Multi VSwitch Topology When DC-GW Is Restarted
71     [Documentation]    Restart dcgw and check enterprise hosts reachability
72     BgpOperations.Restart BGP Processes On DCGW    ${DCGW_SYSTEM_IP}
73     Create BGP Config On DCGW
74     Verify Ping between Inter Intra And Enterprise host
75
76 Verify The Subnet Route For Multiple Subnets On Multi VSwitch Topology When Qbgp Is Restarted
77     [Documentation]    Restart qbgp and check enterprise hosts reachability
78     BgpOperations.Restart BGP Processes On ODL    ${ODL_SYSTEM_IP}
79     Verify Ping between Inter Intra And Enterprise host
80
81 Verify The Subnet Route When Vswitch Hosting Subnet Route Is Restarted On Single Vswitch Topology
82     [Documentation]    Restart single OVS node on which subnet route is configured and verify enterprise hosts reachability
83     OVSDB.Restart OVSDB    ${OS_COMPUTE_2_IP}
84     BuiltIn.Wait Until Keyword Succeeds    10s    20s    OVSDB.Verify Ovsdb State    ${OS_COMPUTE_2_IP}
85     VpnOperations.Verify Tunnel Status as UP
86     Verify Ping between Inter Intra And Enterprise host
87
88 Verify The Subnet Route When Vswitch Hosting Subnet Enterprise Host Is Restarted On Multiple Vswitch Topology
89     [Documentation]    Restart the OVS node on both compute nodes and verify the subnet route
90     OVSDB.Restart OVSDB    ${OS_COMPUTE_1_IP}
91     OVSDB.Restart OVSDB    ${OS_COMPUTE_2_IP}
92     BuiltIn.Wait Until Keyword Succeeds    10s    20s    OVSDB.Verify Ovsdb State    ${OS_COMPUTE_1_IP}
93     BuiltIn.Wait Until Keyword Succeeds    10s    20s    OVSDB.Verify Ovsdb State    ${OS_COMPUTE_2_IP}
94     VpnOperations.Verify Tunnel Status as UP
95     Verify Ping between Inter Intra And Enterprise host
96
97 Verify The Subnet Route For One Subnet On Single Vswitch
98     [Documentation]    Verify the subnet route for one subnet on a single VSwitch
99     ${output} =    OpenStackOperations.Execute Command on VM Instance    @{NETWORKS}[2]    @{NET_2_VM_IPS}[1]    ping -c 3 @{EXTRA_NW_SUBNET}[1]
100     BuiltIn.Should Contain    ${output}    64 bytes
101     Utils.Check For Elements At URI    ${FIB_ENTRY_URL}    ${EXTRA_NW_SUBNET}
102     Verify Ping between Inter Intra And Enterprise host
103
104 Verify The Subnet Route For Multiple Subnets On Multi Vswitch Topology
105     [Documentation]    Configure one more IP on sub interface and verify the subnet route for multiple subnets on multi VSwitch topology
106     BuiltIn.Log    Bring up enterprise host in another vswitch
107     Configure_IP_On_Sub_Interface    @{NETWORKS}[0]    ${NEW_EXTRA_NW_SUBNET}    @{NET_1_VM_IPS}[2]    ${MASK}
108     Verify_IP_Configured_On_Sub_Interface    @{NETWORKS}[0]    ${NEW_EXTRA_NW_SUBNET}    @{NET_1_VM_IPS}[2]
109     ${output} =    OpenStackOperations.Execute Command on VM Instance    @{NETWORKS}[0]    @{NET_1_VM_IPS}[2]    ${RPING_MIP_IP3}
110     BuiltIn.Should Contain    ${output}    broadcast
111     BuiltIn.Should Contain    ${output}    Received 0 reply
112     ${output} =    OpenStackOperations.Execute Command on VM Instance    @{NETWORKS}[2]    @{NET_1_VM_IPS}[2]    ping -c 3 ${NEW_EXTRA_NW_SUBNET}
113     BuiltIn.Should Contain    ${output}    64 bytes
114     Verify Ping between Inter Intra And Enterprise host
115
116 Verify The Subnet Route When The Network Is Removed From The Vpn
117     [Documentation]    Dissociate vpn from the network and verify the subnet route
118     FOR    ${network}    IN    @{NETWORKS}
119         ${network_id} =    OpenStackOperations.Get Net Id    ${network}
120         VpnOperations.Dissociate L3VPN From Networks    networkid=${network_id}    vpnid=${VPN_INSTANCE_ID}
121     END
122     ${vm_ip_list} =    BuiltIn.Create List    @{NET_1_VM_IPS}    @{NET_2_VM_IPS}    @{NET_3_VM_IPS}
123     Utils.Check For Elements Not At URI    ${FIB_ENTRY_URL}    ${vm_ip_list}
124     FOR    ${network}    IN    @{NETWORKS}
125         ${network_id} =    OpenStackOperations.Get Net Id    ${network}
126         VpnOperations.Associate L3VPN To Network    networkid=${network_id}    vpnid=${VPN_INSTANCE_ID}
127     END
128     Utils.Check For Elements At URI    ${FIB_ENTRY_URL}    ${vm_ip_list}
129     Verify Ping between Inter Intra And Enterprise host
130
131 *** Keywords ***
132 Suite Setup
133     [Documentation]    Test Suite for Subnet_Routing_and_Multicast_Deployments.
134     VpnOperations.Basic Suite Setup
135     BgpOperations.Start Quagga Processes On ODL    ${ODL_SYSTEM_IP}
136     BgpOperations.Start Quagga Processes On DCGW    ${DCGW_SYSTEM_IP}
137     Create Setup
138
139 Stop Suite
140     [Documentation]    Test Teardown for Subnet_Routing_and_Multicast_Deployments.
141     BgpOperations.Delete BGP Configuration On ODL    session
142     BgpOperations.Delete BGP Config On Quagga    ${DCGW_SYSTEM_IP}    ${AS_ID}
143     BgpOperations.Stop BGP Processes On Node    ${ODL_SYSTEM_IP}
144     BgpOperations.Stop BGP Processes On Node    ${DCGW_SYSTEM_IP}
145     OpenStackOperations.OpenStack Suite Teardown
146
147 Create Setup
148     [Documentation]    Create basic topology
149     OpenStackOperations.OpenStack Suite Setup
150     ${id} =    OpenStackOperations.Get Project Id    ${ODL_RESTCONF_USER}
151     OpenStackOperations.Set Instance Quota For Project    ${NUM_OF_INSTANCES}    ${id}
152     Create Neutron Networks
153     Create Neutron Subnets    ${3}
154     OpenStackOperations.Create And Configure Security Group    ${SECURITY_GROUP}
155     Create Neutron Ports
156     Create Nova VMs
157     Create Sub Interfaces And Verify
158     Create L3VPN
159     FOR    ${network}    IN    @{NETWORKS}
160         ${network_id} =    OpenStackOperations.Get Net Id    ${network}
161         VpnOperations.Associate L3VPN To Network    networkid=${network_id}    vpnid=${VPN_INSTANCE_ID}
162     END
163     Create BGP Config On ODL
164     Create BGP Config On DCGW
165     BuiltIn.Wait Until Keyword Succeeds    60s    10s    VpnOperations.Verify Tunnel Status as UP
166     ${output} =    OpenStackOperations.Execute Command on VM Instance    @{NETWORKS}[0]    @{NET_1_VM_IPS}[0]    ${RPING_MIP_IP}
167     BuiltIn.Should Contain    ${output}    broadcast    Received 0 reply
168     ${output} =    OpenStackOperations.Execute Command on VM Instance    @{NETWORKS}[1]    @{NET_2_VM_IPS}[0]    ${RPING_MIP_IP1}
169     BuiltIn.Should Contain    ${output}    broadcast    Received 0 reply
170     ${output} =    OpenStackOperations.Execute Command on VM Instance    @{NETWORKS}[2]    @{NET_3_VM_IPS}[0]    ${RPING_MIP_IP2}
171     BuiltIn.Should Contain    ${output}    broadcast    Received 0 reply
172
173 Create Neutron Networks
174     [Documentation]    Create required number of networks
175     FOR    ${net}    IN    @{NETWORKS}
176         OpenStackOperations.Create Network    ${net}
177     END
178     BuiltIn.Wait Until Keyword Succeeds    3s    1s    Utils.Check For Elements At URI    ${NETWORK_URL}    ${NETWORKS}
179
180 Create Neutron Subnets
181     [Arguments]    ${num_of_network}    ${additional_args}=${EMPTY}    ${verbose}=TRUE
182     [Documentation]    Create required number of subnets for previously created networks
183     FOR    ${index}    IN RANGE    0    ${num_of_network}
184         OpenStackOperations.Create SubNet    @{NETWORKS}[${index}]    @{SUBNETS}[${index}]    @{SUBNET_CIDR}[${index}]
185     END
186     BuiltIn.Wait Until Keyword Succeeds    3s    1s    Utils.Check For Elements At URI    ${SUBNETWORK_URL}    ${SUBNETS}
187
188 Create Neutron Ports
189     [Documentation]    Create required number of ports under previously created subnets
190     ${allowed_address_pairs_args1} =    BuiltIn.Set Variable    --allowed-address ip-address=@{EXTRA_NW_SUBNET}[0] --allowed-address ip-address=@{EXTRA_NW_SUBNET}[1]
191     ${allowed_address_pairs_args2} =    BuiltIn.Set Variable    --allowed-address ip-address=@{EXTRA_NW_SUBNET}[1] --allowed-address ip-address=@{EXTRA_NW_SUBNET}[2]
192     ${allowed_address_pairs_args3} =    BuiltIn.Set Variable    --allowed-address ip-address=@{EXTRA_NW_SUBNET}[2] --allowed-address ip-address=@{EXTRA_NW_SUBNET}[0]
193     FOR    ${index}    IN RANGE    0    ${NUM_OF_PORTS_PER_NETWORK}
194         OpenStackOperations.Create Port    @{NETWORKS}[0]    @{NET_1_PORTS}[${index}]    sg=${SECURITY_GROUP}    additional_args=${allowed_address_pairs_args1}
195     END
196     FOR    ${index}    IN RANGE    0    ${NUM_OF_PORTS_PER_NETWORK}
197         OpenStackOperations.Create Port    @{NETWORKS}[1]    @{NET_2_PORTS}[${index}]    sg=${SECURITY_GROUP}    additional_args=${allowed_address_pairs_args2}
198     END
199     FOR    ${index}    IN RANGE    0    ${NUM_OF_PORTS_PER_NETWORK}
200         OpenStackOperations.Create Port    @{NETWORKS}[2]    @{NET_3_PORTS}[${index}]    sg=${SECURITY_GROUP}    additional_args=${allowed_address_pairs_args3}
201     END
202
203 Create Nova VMs
204     [Documentation]    Create Vm instances on compute nodes
205     FOR    ${index}    IN RANGE    0    2
206         OpenStackOperations.Create Vm Instance With Port On Compute Node    @{NET_1_PORTS}[${index}]    @{NET_1_VMS}[${index}]    ${OS_CMP1_HOSTNAME}    sg=${SECURITY_GROUP}
207         OpenStackOperations.Create Vm Instance With Port On Compute Node    @{NET_1_PORTS}[${index+2}]    @{NET_1_VMS}[${index+2}]    ${OS_CMP2_HOSTNAME}    sg=${SECURITY_GROUP}
208         OpenStackOperations.Create Vm Instance With Port On Compute Node    @{NET_2_PORTS}[${index}]    @{NET_2_VMS}[${index}]    ${OS_CMP1_HOSTNAME}    sg=${SECURITY_GROUP}
209         OpenStackOperations.Create Vm Instance With Port On Compute Node    @{NET_2_PORTS}[${index+2}]    @{NET_2_VMS}[${index+2}]    ${OS_CMP2_HOSTNAME}    sg=${SECURITY_GROUP}
210         OpenStackOperations.Create Vm Instance With Port On Compute Node    @{NET_3_PORTS}[${index}]    @{NET_3_VMS}[${index}]    ${OS_CMP1_HOSTNAME}    sg=${SECURITY_GROUP}
211         OpenStackOperations.Create Vm Instance With Port On Compute Node    @{NET_3_PORTS}[${index+2}]    @{NET_3_VMS}[${index+2}]    ${OS_CMP2_HOSTNAME}    sg=${SECURITY_GROUP}
212     END
213     @{NET_1_VM_IPS}    ${NET1_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{NET_1_VMS}
214     @{NET_2_VM_IPS}    ${NET2_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{NET_2_VMS}
215     @{NET_3_VM_IPS}    ${NET3_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{NET_3_VMS}
216     BuiltIn.Set Suite Variable    @{NET_1_VM_IPS}
217     BuiltIn.Set Suite Variable    @{NET_2_VM_IPS}
218     BuiltIn.Set Suite Variable    @{NET_3_VM_IPS}
219     BuiltIn.Should Not Contain    ${NET_1_VM_IPS}    None
220     BuiltIn.Should Not Contain    ${NET_2_VM_IPS}    None
221     BuiltIn.Should Not Contain    ${NET_3_VM_IPS}    None
222     OpenStackOperations.Show Debugs    @{NET_1_VMS}    @{NET_2_VMS}    @{NET_3_VMS}
223
224 Create Sub Interfaces And Verify
225     [Documentation]    Create Sub Interface and verify for all VMs
226     BuiltIn.Wait Until Keyword Succeeds    30s    5s    OpenStackOperations.Configure_IP_On_Sub_Interface    @{NETWORKS}[0]    @{EXTRA_NW_SUBNET}[0]    @{NET_1_VM_IPS}[0]
227     ...    ${MASK}    @{INTERFACE_STATE}[0]
228     BuiltIn.Wait Until Keyword Succeeds    30s    5s    OpenStackOperations.Verify_IP_Configured_On_Sub_Interface    @{NETWORKS}[0]    @{EXTRA_NW_SUBNET}[0]    @{NET_1_VM_IPS}[0]
229     BuiltIn.Wait Until Keyword Succeeds    30s    5s    OpenStackOperations.Configure_IP_On_Sub_Interface    @{NETWORKS}[1]    @{EXTRA_NW_SUBNET}[1]    @{NET_2_VM_IPS}[0]
230     ...    ${MASK}    @{INTERFACE_STATE}[0]
231     BuiltIn.Wait Until Keyword Succeeds    30s    5s    OpenStackOperations.Verify_IP_Configured_On_Sub_Interface    @{NETWORKS}[1]    @{EXTRA_NW_SUBNET}[1]    @{NET_2_VM_IPS}[0]
232     BuiltIn.Wait Until Keyword Succeeds    30s    5s    OpenStackOperations.Configure_IP_On_Sub_Interface    @{NETWORKS}[2]    @{EXTRA_NW_SUBNET}[2]    @{NET_3_VM_IPS}[0]
233     ...    ${MASK}    @{INTERFACE_STATE}[0]
234     BuiltIn.Wait Until Keyword Succeeds    30s    5s    OpenStackOperations.Verify_IP_Configured_On_Sub_Interface    @{NETWORKS}[2]    @{EXTRA_NW_SUBNET}[2]    @{NET_3_VM_IPS}[0]
235
236 Create L3VPN
237     [Documentation]    Create L3VPN and verify the same
238     ${net_id} =    OpenStackOperations.Get Net Id    @{NETWORKS}[0]
239     ${tenant_id} =    OpenStackOperations.Get Tenant ID From Network    ${net_id}
240     VpnOperations.VPN Create L3VPN    vpnid=${VPN_INSTANCE_ID}    name=${VPN_NAME}    rd=["${L3VPN_RD}"]    exportrt=["${L3VPN_RD}"]    importrt=["${L3VPN_RD}"]    tenantid=${tenant_id}
241     VpnOperations.Verify L3VPN On ODL    ${VPN_INSTANCE_ID}
242
243 Create BGP Config On ODL
244     [Documentation]    Configure BGP Config on ODL
245     KarafKeywords.Issue Command On Karaf Console    ${BGP_CONFIG_SERVER_CMD}
246     BgpOperations.Create BGP Configuration On ODL    localas=${AS_ID}    routerid=${ODL_SYSTEM_IP}
247     BgpOperations.AddNeighbor To BGP Configuration On ODL    remoteas=${AS_ID}    neighborAddr=${DCGW_SYSTEM_IP}
248     ${output} =    BgpOperations.Get BGP Configuration On ODL    session
249     BuiltIn.Should Contain    ${output}    ${DCGW_SYSTEM_IP}
250
251 Create BGP Config On DCGW
252     [Documentation]    Configure BGP on DCGW
253     BgpOperations.Configure BGP And Add Neighbor On DCGW    ${DCGW_SYSTEM_IP}    ${AS_ID}    ${DCGW_SYSTEM_IP}    ${ODL_SYSTEM_IP}    ${VPN_NAME}    ${L3VPN_RD}
254     ...    ${LOOPBACK_IP}
255     ${output} =    BgpOperations.Execute Show Command On Quagga    ${DCGW_SYSTEM_IP}    ${RUN_CONFIG}
256     BuiltIn.Should Contain    ${output}    ${ODL_SYSTEM_IP}
257     ${output} =    BuiltIn.Wait Until Keyword Succeeds    180s    10s    BgpOperations.Verify BGP Neighbor Status On Quagga    ${DCGW_SYSTEM_IP}    ${ODL_SYSTEM_IP}
258
259 Verify Ping between Inter Intra And Enterprise host
260     [Documentation]    Ping Enterprise Host for Intra, Inter from different and same network
261     ${dst_ip_list} =    BuiltIn.Create List    @{NET_1_VM_IPS}    @{NET_2_VM_IPS}    @{EXTRA_NW_SUBNET}
262     OpenStackOperations.Test Operations From Vm Instance    @{NETWORKS}[0]    @{NET_1_VM_IPS}[0]    ${dst_ip_list}
263     OpenStackOperations.Test Operations From Vm Instance    @{NETWORKS}[1]    @{NET_2_VM_IPS}[0]    ${dst_ip_list}
264     OpenStackOperations.Test Operations From Vm Instance    @{NETWORKS}[0]    @{NET_1_VM_IPS}[2]    ${dst_ip_list}
265     OpenStackOperations.Test Operations From Vm Instance    @{NETWORKS}[1]    @{NET_2_VM_IPS}[2]    ${dst_ip_list}