Update Robot Framework format - step 11
[integration/test.git] / csit / suites / netvirt / subnet_routing / subnet_routing_and_multicast.robot
index 18e110636f1e98eefb9e6f47e53317a21c52faeb..975c02cc200d937ed6dd80b70bea94d331531980 100644 (file)
@@ -1,59 +1,93 @@
 *** Settings ***
-Documentation     Test suite to validate subnet routing and multicast functionality in an openstack integrated environment.
-...               The assumption of this suite is that the environment is already configured with the proper
-...               integration bridges and vxlan tunnels.
-Suite Setup       Suite Setup
-Suite Teardown    Stop Suite
-Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
-Test Teardown     OpenStackOperations.Get Test Teardown Debugs
-Resource          ../../../libraries/BgpOperations.robot
-Resource          ../../../libraries/KarafKeywords.robot
-Resource          ../../../libraries/OpenStackOperations.robot
-Resource          ../../../libraries/Utils.robot
-Resource          ../../../libraries/SetupUtils.robot
-Resource          ../../../variables/Variables.robot
-Resource          ../../../variables/netvirt/Variables.robot
-Resource          ../../../libraries/VpnOperations.robot
+Documentation       Test suite to validate subnet routing and multicast functionality in an openstack integrated environment.
+...                 The assumption of this suite is that the environment is already configured with the proper
+...                 integration bridges and vxlan tunnels.
+
+Resource            ../../../libraries/BgpOperations.robot
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/OpenStackOperations.robot
+Resource            ../../../libraries/Utils.robot
+Resource            ../../../libraries/SetupUtils.robot
+Resource            ../../../variables/Variables.robot
+Resource            ../../../variables/netvirt/Variables.robot
+Resource            ../../../libraries/VpnOperations.robot
+
+Suite Setup         Suite Setup
+Suite Teardown      Stop Suite
+Test Setup          SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+Test Teardown       OpenStackOperations.Get Test Teardown Debugs
+
 
 *** Variables ***
-${AS_ID}          100
-${SECURITY_GROUP}    mc_sg
-${NUM_OF_PORTS_PER_NETWORK}    4
-${NUM_OF_INSTANCES}    20
-${VPN_INSTANCE_ID}    4ae8cd92-48ca-49b5-94e1-b2921a261111
-${VPN_NAME}       mc_vpn1
-${LOOPBACK_IP}    5.5.5.2
-${L3VPN_RD}       2200:2
-${DCGW_SYSTEM_IP}    ${TOOLS_SYSTEM_1_IP}
-${RPING_MIP_IP}    sudo arping -I eth0:1 -c 5 -b -s ${EXTRA_NW_SUBNET}[0] ${EXTRA_NW_SUBNET}[0]
-${RPING_MIP_IP1}    sudo arping -I eth0:1 -c 5 -b -s ${EXTRA_NW_SUBNET}[1] ${EXTRA_NW_SUBNET}[1]
-${RPING_MIP_IP2}    sudo arping -I eth0:1 -c 5 -b -s ${EXTRA_NW_SUBNET}[2] ${EXTRA_NW_SUBNET}[2]
-${RPING_MIP_IP3}    sudo arping -I eth0:1 -c 5 -b -s ${NEW_EXTRA_NW_SUBNET} ${NEW_EXTRA_NW_SUBNET}
-@{INTERFACE_STATE}    up    down
-@{NETWORKS}       mc_net_1    mc_net_2    mc_net_3
-@{NET_1_VMS}      mc_net_1_vm_1    mc_net_1_vm_2    mc_net_1_vm_3    mc_net_1_vm_4
-@{NET_2_VMS}      mc_net_2_vm_1    mc_net_2_vm_2    mc_net_2_vm_3    mc_net_2_vm_4
-@{NET_3_VMS}      mc_net_3_vm_1    mc_net_3_vm_2    mc_net_3_vm_3    mc_net_3_vm_4
-@{NET_1_PORTS}    mc_net_1_port_1    mc_net_1_port_2    mc_net_1_port_3    mc_net_1_port_4
-@{NET_2_PORTS}    mc_net_2_port_1    mc_net_2_port_2    mc_net_2_port_3    mc_net_2_port_4
-@{NET_3_PORTS}    mc_net_3_port_1    mc_net_3_port_2    mc_net_3_port_3    mc_net_3_port_4
-@{SUBNETS}        mc_sub_1    mc_sub_2    mc_sub_3
-@{SUBNET_CIDR}    10.1.0.0/24    10.2.0.0/24    10.3.0.0/24
-@{EXTRA_NW_SUBNET}    10.1.0.100    10.2.0.100    10.3.0.100
-${NEW_EXTRA_NW_SUBNET}    10.1.0.110
-${MASK}           255.255.255.0
+${AS_ID}                        100
+${SECURITY_GROUP}               mc_sg
+${NUM_OF_PORTS_PER_NETWORK}     4
+${NUM_OF_INSTANCES}             20
+${VPN_INSTANCE_ID}              4ae8cd92-48ca-49b5-94e1-b2921a261111
+${VPN_NAME}                     mc_vpn1
+${LOOPBACK_IP}                  5.5.5.2
+${L3VPN_RD}                     2200:2
+${DCGW_SYSTEM_IP}               ${TOOLS_SYSTEM_1_IP}
+${RPING_MIP_IP}                 sudo arping -I eth0:1 -c 5 -b -s ${EXTRA_NW_SUBNET}[0] ${EXTRA_NW_SUBNET}[0]
+${RPING_MIP_IP1}                sudo arping -I eth0:1 -c 5 -b -s ${EXTRA_NW_SUBNET}[1] ${EXTRA_NW_SUBNET}[1]
+${RPING_MIP_IP2}                sudo arping -I eth0:1 -c 5 -b -s ${EXTRA_NW_SUBNET}[2] ${EXTRA_NW_SUBNET}[2]
+${RPING_MIP_IP3}                sudo arping -I eth0:1 -c 5 -b -s ${NEW_EXTRA_NW_SUBNET} ${NEW_EXTRA_NW_SUBNET}
+@{INTERFACE_STATE}              up    down
+@{NETWORKS}                     mc_net_1    mc_net_2    mc_net_3
+@{NET_1_VMS}                    mc_net_1_vm_1    mc_net_1_vm_2    mc_net_1_vm_3    mc_net_1_vm_4
+@{NET_2_VMS}                    mc_net_2_vm_1    mc_net_2_vm_2    mc_net_2_vm_3    mc_net_2_vm_4
+@{NET_3_VMS}                    mc_net_3_vm_1    mc_net_3_vm_2    mc_net_3_vm_3    mc_net_3_vm_4
+@{NET_1_PORTS}                  mc_net_1_port_1    mc_net_1_port_2    mc_net_1_port_3    mc_net_1_port_4
+@{NET_2_PORTS}                  mc_net_2_port_1    mc_net_2_port_2    mc_net_2_port_3    mc_net_2_port_4
+@{NET_3_PORTS}                  mc_net_3_port_1    mc_net_3_port_2    mc_net_3_port_3    mc_net_3_port_4
+@{SUBNETS}                      mc_sub_1    mc_sub_2    mc_sub_3
+@{SUBNET_CIDR}                  10.1.0.0/24    10.2.0.0/24    10.3.0.0/24
+@{EXTRA_NW_SUBNET}              10.1.0.100    10.2.0.100    10.3.0.100
+${NEW_EXTRA_NW_SUBNET}          10.1.0.110
+${MASK}                         255.255.255.0
+
 
 *** Test Cases ***
 Verify The Subnet Route When Neutron Port Hosting Subnet Route Is Down/up On Single VSwitch Topology
     [Documentation]    Verify the subnet route when enterprise host is down and up.
-    BuiltIn.Wait Until Keyword Succeeds    30s    5s    OpenStackOperations.Configure_IP_On_Sub_Interface    ${NETWORKS}[0]    ${EXTRA_NW_SUBNET}[0]    ${NET_1_VM_IPS}[0]
-    ...    ${MASK}    ${INTERFACE_STATE}[1]
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    30s
+    ...    5s
+    ...    OpenStackOperations.Configure_IP_On_Sub_Interface
+    ...    ${NETWORKS}[0]
+    ...    ${EXTRA_NW_SUBNET}[0]
+    ...    ${NET_1_VM_IPS}[0]
+    ...    ${MASK}
+    ...    ${INTERFACE_STATE}[1]
     ${allowed_ip_list} =    BuiltIn.Create List    ${EXTRA_NW_SUBNET}[0]
-    BuiltIn.Wait Until Keyword Succeeds    30s    10s    Utils.Check For Elements At URI    ${FIB_ENTRY_URL}    ${allowed_ip_list}
-    BuiltIn.Wait Until Keyword Succeeds    30s    5s    OpenStackOperations.Configure_IP_On_Sub_Interface    ${NETWORKS}[0]    ${EXTRA_NW_SUBNET}[0]    ${NET_1_VM_IPS}[0]
-    ...    ${MASK}    ${INTERFACE_STATE}[0]
-    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]
-    BuiltIn.Wait Until Keyword Succeeds    30s    10s    Utils.Check For Elements At URI    ${FIB_ENTRY_URL}    ${allowed_ip_list}
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    30s
+    ...    10s
+    ...    Utils.Check For Elements At URI
+    ...    ${FIB_ENTRY_URL}
+    ...    ${allowed_ip_list}
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    30s
+    ...    5s
+    ...    OpenStackOperations.Configure_IP_On_Sub_Interface
+    ...    ${NETWORKS}[0]
+    ...    ${EXTRA_NW_SUBNET}[0]
+    ...    ${NET_1_VM_IPS}[0]
+    ...    ${MASK}
+    ...    ${INTERFACE_STATE}[0]
+    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]
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    30s
+    ...    10s
+    ...    Utils.Check For Elements At URI
+    ...    ${FIB_ENTRY_URL}
+    ...    ${allowed_ip_list}
     Verify Ping between Inter Intra And Enterprise host
 
 Verify Enterprise Hosts Reachability After VM Reboot
@@ -62,9 +96,22 @@ Verify Enterprise Hosts Reachability After VM Reboot
     @{NET_1_VM_IPS}    ${NET1_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{NET_1_VMS}
     OpenStackOperations.Reboot Nova VM    ${NET_1_VMS}[0]
     @{NET_1_VM_IPS}    ${NET1_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{NET_1_VMS}
-    BuiltIn.Wait Until Keyword Succeeds    30s    5s    OpenStackOperations.Configure_IP_On_Sub_Interface    ${NETWORKS}[0]    ${EXTRA_NW_SUBNET}[0]    ${NET_1_VM_IPS}[0]
-    ...    ${MASK}    ${INTERFACE_STATE}[0]
-    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]
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    30s
+    ...    5s
+    ...    OpenStackOperations.Configure_IP_On_Sub_Interface
+    ...    ${NETWORKS}[0]
+    ...    ${EXTRA_NW_SUBNET}[0]
+    ...    ${NET_1_VM_IPS}[0]
+    ...    ${MASK}
+    ...    ${INTERFACE_STATE}[0]
+    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]
     Verify Ping between Inter Intra And Enterprise host
 
 Verify The Subnet Route For Multiple Subnets On Multi VSwitch Topology When DC-GW Is Restarted
@@ -96,7 +143,10 @@ Verify The Subnet Route When Vswitch Hosting Subnet Enterprise Host Is Restarted
 
 Verify The Subnet Route For One Subnet On Single Vswitch
     [Documentation]    Verify the subnet route for one subnet on a single VSwitch
-    ${output} =    OpenStackOperations.Execute Command on VM Instance    ${NETWORKS}[2]    ${NET_2_VM_IPS}[1]    ping -c 3 ${EXTRA_NW_SUBNET}[1]
+    ${output} =    OpenStackOperations.Execute Command on VM Instance
+    ...    ${NETWORKS}[2]
+    ...    ${NET_2_VM_IPS}[1]
+    ...    ping -c 3 ${EXTRA_NW_SUBNET}[1]
     BuiltIn.Should Contain    ${output}    64 bytes
     Utils.Check For Elements At URI    ${FIB_ENTRY_URL}    ${EXTRA_NW_SUBNET}
     Verify Ping between Inter Intra And Enterprise host
@@ -106,10 +156,16 @@ Verify The Subnet Route For Multiple Subnets On Multi Vswitch Topology
     BuiltIn.Log    Bring up enterprise host in another vswitch
     Configure_IP_On_Sub_Interface    ${NETWORKS}[0]    ${NEW_EXTRA_NW_SUBNET}    ${NET_1_VM_IPS}[2]    ${MASK}
     Verify_IP_Configured_On_Sub_Interface    ${NETWORKS}[0]    ${NEW_EXTRA_NW_SUBNET}    ${NET_1_VM_IPS}[2]
-    ${output} =    OpenStackOperations.Execute Command on VM Instance    ${NETWORKS}[0]    ${NET_1_VM_IPS}[2]    ${RPING_MIP_IP3}
+    ${output} =    OpenStackOperations.Execute Command on VM Instance
+    ...    ${NETWORKS}[0]
+    ...    ${NET_1_VM_IPS}[2]
+    ...    ${RPING_MIP_IP3}
     BuiltIn.Should Contain    ${output}    broadcast
     BuiltIn.Should Contain    ${output}    Received 0 reply
-    ${output} =    OpenStackOperations.Execute Command on VM Instance    ${NETWORKS}[2]    ${NET_1_VM_IPS}[2]    ping -c 3 ${NEW_EXTRA_NW_SUBNET}
+    ${output} =    OpenStackOperations.Execute Command on VM Instance
+    ...    ${NETWORKS}[2]
+    ...    ${NET_1_VM_IPS}[2]
+    ...    ping -c 3 ${NEW_EXTRA_NW_SUBNET}
     BuiltIn.Should Contain    ${output}    64 bytes
     Verify Ping between Inter Intra And Enterprise host
 
@@ -128,6 +184,7 @@ Verify The Subnet Route When The Network Is Removed From The Vpn
     Utils.Check For Elements At URI    ${FIB_ENTRY_URL}    ${vm_ip_list}
     Verify Ping between Inter Intra And Enterprise host
 
+
 *** Keywords ***
 Suite Setup
     [Documentation]    Test Suite for Subnet_Routing_and_Multicast_Deployments.
@@ -163,11 +220,20 @@ Create Setup
     Create BGP Config On ODL
     Create BGP Config On DCGW
     BuiltIn.Wait Until Keyword Succeeds    60s    10s    VpnOperations.Verify Tunnel Status as UP
-    ${output} =    OpenStackOperations.Execute Command on VM Instance    ${NETWORKS}[0]    ${NET_1_VM_IPS}[0]    ${RPING_MIP_IP}
+    ${output} =    OpenStackOperations.Execute Command on VM Instance
+    ...    ${NETWORKS}[0]
+    ...    ${NET_1_VM_IPS}[0]
+    ...    ${RPING_MIP_IP}
     BuiltIn.Should Contain    ${output}    broadcast    Received 0 reply
-    ${output} =    OpenStackOperations.Execute Command on VM Instance    ${NETWORKS}[1]    ${NET_2_VM_IPS}[0]    ${RPING_MIP_IP1}
+    ${output} =    OpenStackOperations.Execute Command on VM Instance
+    ...    ${NETWORKS}[1]
+    ...    ${NET_2_VM_IPS}[0]
+    ...    ${RPING_MIP_IP1}
     BuiltIn.Should Contain    ${output}    broadcast    Received 0 reply
-    ${output} =    OpenStackOperations.Execute Command on VM Instance    ${NETWORKS}[2]    ${NET_3_VM_IPS}[0]    ${RPING_MIP_IP2}
+    ${output} =    OpenStackOperations.Execute Command on VM Instance
+    ...    ${NETWORKS}[2]
+    ...    ${NET_3_VM_IPS}[0]
+    ...    ${RPING_MIP_IP2}
     BuiltIn.Should Contain    ${output}    broadcast    Received 0 reply
 
 Create Neutron Networks
@@ -178,37 +244,81 @@ Create Neutron Networks
     BuiltIn.Wait Until Keyword Succeeds    3s    1s    Utils.Check For Elements At URI    ${NETWORK_URL}    ${NETWORKS}
 
 Create Neutron Subnets
-    [Arguments]    ${num_of_network}    ${additional_args}=${EMPTY}    ${verbose}=TRUE
     [Documentation]    Create required number of subnets for previously created networks
+    [Arguments]    ${num_of_network}    ${additional_args}=${EMPTY}    ${verbose}=TRUE
     FOR    ${index}    IN RANGE    0    ${num_of_network}
         OpenStackOperations.Create SubNet    ${NETWORKS}[${index}]    ${SUBNETS}[${index}]    ${SUBNET_CIDR}[${index}]
     END
-    BuiltIn.Wait Until Keyword Succeeds    3s    1s    Utils.Check For Elements At URI    ${SUBNETWORK_URL}    ${SUBNETS}
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    3s
+    ...    1s
+    ...    Utils.Check For Elements At URI
+    ...    ${SUBNETWORK_URL}
+    ...    ${SUBNETS}
 
 Create Neutron Ports
     [Documentation]    Create required number of ports under previously created subnets
-    ${allowed_address_pairs_args1} =    BuiltIn.Set Variable    --allowed-address ip-address=${EXTRA_NW_SUBNET}[0] --allowed-address ip-address=${EXTRA_NW_SUBNET}[1]
-    ${allowed_address_pairs_args2} =    BuiltIn.Set Variable    --allowed-address ip-address=${EXTRA_NW_SUBNET}[1] --allowed-address ip-address=${EXTRA_NW_SUBNET}[2]
-    ${allowed_address_pairs_args3} =    BuiltIn.Set Variable    --allowed-address ip-address=${EXTRA_NW_SUBNET}[2] --allowed-address ip-address=${EXTRA_NW_SUBNET}[0]
+    ${allowed_address_pairs_args1} =    BuiltIn.Set Variable
+    ...    --allowed-address ip-address=${EXTRA_NW_SUBNET}[0] --allowed-address ip-address=${EXTRA_NW_SUBNET}[1]
+    ${allowed_address_pairs_args2} =    BuiltIn.Set Variable
+    ...    --allowed-address ip-address=${EXTRA_NW_SUBNET}[1] --allowed-address ip-address=${EXTRA_NW_SUBNET}[2]
+    ${allowed_address_pairs_args3} =    BuiltIn.Set Variable
+    ...    --allowed-address ip-address=${EXTRA_NW_SUBNET}[2] --allowed-address ip-address=${EXTRA_NW_SUBNET}[0]
     FOR    ${index}    IN RANGE    0    ${NUM_OF_PORTS_PER_NETWORK}
-        OpenStackOperations.Create Port    ${NETWORKS}[0]    ${NET_1_PORTS}[${index}]    sg=${SECURITY_GROUP}    additional_args=${allowed_address_pairs_args1}
+        OpenStackOperations.Create Port
+        ...    ${NETWORKS}[0]
+        ...    ${NET_1_PORTS}[${index}]
+        ...    sg=${SECURITY_GROUP}
+        ...    additional_args=${allowed_address_pairs_args1}
     END
     FOR    ${index}    IN RANGE    0    ${NUM_OF_PORTS_PER_NETWORK}
-        OpenStackOperations.Create Port    ${NETWORKS}[1]    ${NET_2_PORTS}[${index}]    sg=${SECURITY_GROUP}    additional_args=${allowed_address_pairs_args2}
+        OpenStackOperations.Create Port
+        ...    ${NETWORKS}[1]
+        ...    ${NET_2_PORTS}[${index}]
+        ...    sg=${SECURITY_GROUP}
+        ...    additional_args=${allowed_address_pairs_args2}
     END
     FOR    ${index}    IN RANGE    0    ${NUM_OF_PORTS_PER_NETWORK}
-        OpenStackOperations.Create Port    ${NETWORKS}[2]    ${NET_3_PORTS}[${index}]    sg=${SECURITY_GROUP}    additional_args=${allowed_address_pairs_args3}
+        OpenStackOperations.Create Port
+        ...    ${NETWORKS}[2]
+        ...    ${NET_3_PORTS}[${index}]
+        ...    sg=${SECURITY_GROUP}
+        ...    additional_args=${allowed_address_pairs_args3}
     END
 
 Create Nova VMs
     [Documentation]    Create Vm instances on compute nodes
     FOR    ${index}    IN RANGE    0    2
-        OpenStackOperations.Create Vm Instance With Port On Compute Node    ${NET_1_PORTS}[${index}]    ${NET_1_VMS}[${index}]    ${OS_CMP1_HOSTNAME}    sg=${SECURITY_GROUP}
-        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}
-        OpenStackOperations.Create Vm Instance With Port On Compute Node    ${NET_2_PORTS}[${index}]    ${NET_2_VMS}[${index}]    ${OS_CMP1_HOSTNAME}    sg=${SECURITY_GROUP}
-        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}
-        OpenStackOperations.Create Vm Instance With Port On Compute Node    ${NET_3_PORTS}[${index}]    ${NET_3_VMS}[${index}]    ${OS_CMP1_HOSTNAME}    sg=${SECURITY_GROUP}
-        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}
+        OpenStackOperations.Create Vm Instance With Port On Compute Node
+        ...    ${NET_1_PORTS}[${index}]
+        ...    ${NET_1_VMS}[${index}]
+        ...    ${OS_CMP1_HOSTNAME}
+        ...    sg=${SECURITY_GROUP}
+        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}
+        OpenStackOperations.Create Vm Instance With Port On Compute Node
+        ...    ${NET_2_PORTS}[${index}]
+        ...    ${NET_2_VMS}[${index}]
+        ...    ${OS_CMP1_HOSTNAME}
+        ...    sg=${SECURITY_GROUP}
+        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}
+        OpenStackOperations.Create Vm Instance With Port On Compute Node
+        ...    ${NET_3_PORTS}[${index}]
+        ...    ${NET_3_VMS}[${index}]
+        ...    ${OS_CMP1_HOSTNAME}
+        ...    sg=${SECURITY_GROUP}
+        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}
     END
     @{NET_1_VM_IPS}    ${NET1_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{NET_1_VMS}
     @{NET_2_VM_IPS}    ${NET2_DHCP_IP} =    OpenStackOperations.Get VM IPs    @{NET_2_VMS}
@@ -223,21 +333,66 @@ Create Nova VMs
 
 Create Sub Interfaces And Verify
     [Documentation]    Create Sub Interface and verify for all VMs
-    BuiltIn.Wait Until Keyword Succeeds    30s    5s    OpenStackOperations.Configure_IP_On_Sub_Interface    ${NETWORKS}[0]    ${EXTRA_NW_SUBNET}[0]    ${NET_1_VM_IPS}[0]
-    ...    ${MASK}    ${INTERFACE_STATE}[0]
-    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]
-    BuiltIn.Wait Until Keyword Succeeds    30s    5s    OpenStackOperations.Configure_IP_On_Sub_Interface    ${NETWORKS}[1]    ${EXTRA_NW_SUBNET}[1]    ${NET_2_VM_IPS}[0]
-    ...    ${MASK}    ${INTERFACE_STATE}[0]
-    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]
-    BuiltIn.Wait Until Keyword Succeeds    30s    5s    OpenStackOperations.Configure_IP_On_Sub_Interface    ${NETWORKS}[2]    ${EXTRA_NW_SUBNET}[2]    ${NET_3_VM_IPS}[0]
-    ...    ${MASK}    ${INTERFACE_STATE}[0]
-    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]
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    30s
+    ...    5s
+    ...    OpenStackOperations.Configure_IP_On_Sub_Interface
+    ...    ${NETWORKS}[0]
+    ...    ${EXTRA_NW_SUBNET}[0]
+    ...    ${NET_1_VM_IPS}[0]
+    ...    ${MASK}
+    ...    ${INTERFACE_STATE}[0]
+    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]
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    30s
+    ...    5s
+    ...    OpenStackOperations.Configure_IP_On_Sub_Interface
+    ...    ${NETWORKS}[1]
+    ...    ${EXTRA_NW_SUBNET}[1]
+    ...    ${NET_2_VM_IPS}[0]
+    ...    ${MASK}
+    ...    ${INTERFACE_STATE}[0]
+    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]
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    30s
+    ...    5s
+    ...    OpenStackOperations.Configure_IP_On_Sub_Interface
+    ...    ${NETWORKS}[2]
+    ...    ${EXTRA_NW_SUBNET}[2]
+    ...    ${NET_3_VM_IPS}[0]
+    ...    ${MASK}
+    ...    ${INTERFACE_STATE}[0]
+    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]
 
 Create L3VPN
     [Documentation]    Create L3VPN and verify the same
     ${net_id} =    OpenStackOperations.Get Net Id    ${NETWORKS}[0]
     ${tenant_id} =    OpenStackOperations.Get Tenant ID From Network    ${net_id}
-    VpnOperations.VPN Create L3VPN    vpnid=${VPN_INSTANCE_ID}    name=${VPN_NAME}    rd=["${L3VPN_RD}"]    exportrt=["${L3VPN_RD}"]    importrt=["${L3VPN_RD}"]    tenantid=${tenant_id}
+    VpnOperations.VPN Create L3VPN
+    ...    vpnid=${VPN_INSTANCE_ID}
+    ...    name=${VPN_NAME}
+    ...    rd=["${L3VPN_RD}"]
+    ...    exportrt=["${L3VPN_RD}"]
+    ...    importrt=["${L3VPN_RD}"]
+    ...    tenantid=${tenant_id}
     VpnOperations.Verify L3VPN On ODL    ${VPN_INSTANCE_ID}
 
 Create BGP Config On ODL
@@ -250,11 +405,22 @@ Create BGP Config On ODL
 
 Create BGP Config On DCGW
     [Documentation]    Configure BGP on DCGW
-    BgpOperations.Configure BGP And Add Neighbor On DCGW    ${DCGW_SYSTEM_IP}    ${AS_ID}    ${DCGW_SYSTEM_IP}    ${ODL_SYSTEM_IP}    ${VPN_NAME}    ${L3VPN_RD}
+    BgpOperations.Configure BGP And Add Neighbor On DCGW
+    ...    ${DCGW_SYSTEM_IP}
+    ...    ${AS_ID}
+    ...    ${DCGW_SYSTEM_IP}
+    ...    ${ODL_SYSTEM_IP}
+    ...    ${VPN_NAME}
+    ...    ${L3VPN_RD}
     ...    ${LOOPBACK_IP}
     ${output} =    BgpOperations.Execute Show Command On Quagga    ${DCGW_SYSTEM_IP}    ${RUN_CONFIG}
     BuiltIn.Should Contain    ${output}    ${ODL_SYSTEM_IP}
-    ${output} =    BuiltIn.Wait Until Keyword Succeeds    180s    10s    BgpOperations.Verify BGP Neighbor Status On Quagga    ${DCGW_SYSTEM_IP}    ${ODL_SYSTEM_IP}
+    ${output} =    BuiltIn.Wait Until Keyword Succeeds
+    ...    180s
+    ...    10s
+    ...    BgpOperations.Verify BGP Neighbor Status On Quagga
+    ...    ${DCGW_SYSTEM_IP}
+    ...    ${ODL_SYSTEM_IP}
 
 Verify Ping between Inter Intra And Enterprise host
     [Documentation]    Ping Enterprise Host for Intra, Inter from different and same network