Update Robot Framework format - step 13
[integration/test.git] / csit / suites / openstack / extensions / sfc.robot
index d094142b2fe3018dfaacd0e1ca8b7ea2b47efdef..49960a0b9f4718a622b7d825b31aface476d3eb3 100644 (file)
@@ -1,58 +1,81 @@
 *** Settings ***
-Documentation     Test suite to verify SFC configuration and packet flows.
-Suite Setup       Suite Setup
-Suite Teardown    OpenStackOperations.OpenStack Suite Teardown
-Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
-Test Teardown     BuiltIn.Run Keywords    OpenStackOperations.Get Test Teardown Debugs
-...               AND    OpenStackOperations.Get Test Teardown Debugs For SFC
-Library           SSHLibrary
-Library           OperatingSystem
-Library           RequestsLibrary
-Resource          ../../../libraries/DevstackUtils.robot
-Resource          ../../../libraries/LiveMigration.robot
-Resource          ../../../libraries/OpenStackOperations.robot
-Resource          ../../../libraries/SetupUtils.robot
-Resource          ../../../libraries/Utils.robot
-Resource          ../../../libraries/KarafKeywords.robot
+Documentation       Test suite to verify SFC configuration and packet flows.
+
+Library             SSHLibrary
+Library             OperatingSystem
+Library             RequestsLibrary
+Resource            ../../../libraries/DevstackUtils.robot
+Resource            ../../../libraries/LiveMigration.robot
+Resource            ../../../libraries/OpenStackOperations.robot
+Resource            ../../../libraries/SetupUtils.robot
+Resource            ../../../libraries/Utils.robot
+Resource            ../../../libraries/KarafKeywords.robot
+
+Suite Setup         Suite Setup
+Suite Teardown      OpenStackOperations.OpenStack Suite Teardown
+Test Setup          SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+Test Teardown       BuiltIn.Run Keywords    OpenStackOperations.Get Test Teardown Debugs
+...                     AND    OpenStackOperations.Get Test Teardown Debugs For SFC
+
 
 *** Variables ***
-${SECURITY_GROUP}    sg-sfc
-@{NETWORKS}       network_1
-@{SUBNETS}        l2_subnet_1
-@{NET_1_VMS}      sf1    sourcevm    destvm
-@{NON_SF_VMS}     sourcevm    destvm
-@{SUBNET_CIDRS}    30.0.0.0/24
-@{PORTS}          p1in    p1out    source_vm_port    dest_vm_port
-${NC_COMMAND}     nc -zv -w 5
-${RES_SUCCESS}    open
-${RES_FAILURE}    Operation timed out
-${WEBSERVER_80}    (python -m SimpleHTTPServer 80 > /dev/null 2>&1 &)
-${WEBSERVER_81}    (python -m SimpleHTTPServer 81 > /dev/null 2>&1 &)
-${WEBSERVER_82}    (python -m SimpleHTTPServer 82 > /dev/null 2>&1 &)
-${WEBSERVER_83}    (python -m SimpleHTTPServer 83 > /dev/null 2>&1 &)
-${WEBSERVER_84}    (python -m SimpleHTTPServer 84 > /dev/null 2>&1 &)
-${WEBSERVER_85}    (python -m SimpleHTTPServer 85 > /dev/null 2>&1 &)
-${WEBSERVER_100}    (python -m SimpleHTTPServer 100 > /dev/null 2>&1 &)
-${WEBSERVER_101}    (python -m SimpleHTTPServer 101 > /dev/null 2>&1 &)
-${WEBSERVER_102}    (python -m SimpleHTTPServer 102 > /dev/null 2>&1 &)
-${WEBSERVER_103}    (python -m SimpleHTTPServer 103 > /dev/null 2>&1 &)
-${WEBSERVER_CMDS}    ${WEBSERVER_80} && ${WEBSERVER_81} && ${WEBSERVER_82} && ${WEBSERVER_83} && ${WEBSERVER_84} && ${WEBSERVER_85} && ${WEBSERVER_100} && ${WEBSERVER_101} && ${WEBSERVER_102} && ${WEBSERVER_103}
-${CLOUD_IMAGE}    "https://artifacts.opnfv.org/sfc/images/sfc_nsh_fraser.qcow2"
-${CLOUD_IMAGE_NAME}    sfc_nsh_fraser
-${CLOUD_FLAVOR_NAME}    sfc_nsh_fraser
+${SECURITY_GROUP}           sg-sfc
+@{NETWORKS}                 network_1
+@{SUBNETS}                  l2_subnet_1
+@{NET_1_VMS}                sf1    sourcevm    destvm
+@{NON_SF_VMS}               sourcevm    destvm
+@{SUBNET_CIDRS}             30.0.0.0/24
+@{PORTS}                    p1in    p1out    source_vm_port    dest_vm_port
+${NC_COMMAND}               nc -zv -w 5
+${RES_SUCCESS}              open
+${RES_FAILURE}              Operation timed out
+${WEBSERVER_80}             (python -m SimpleHTTPServer 80 > /dev/null 2>&1 &)
+${WEBSERVER_81}             (python -m SimpleHTTPServer 81 > /dev/null 2>&1 &)
+${WEBSERVER_82}             (python -m SimpleHTTPServer 82 > /dev/null 2>&1 &)
+${WEBSERVER_83}             (python -m SimpleHTTPServer 83 > /dev/null 2>&1 &)
+${WEBSERVER_84}             (python -m SimpleHTTPServer 84 > /dev/null 2>&1 &)
+${WEBSERVER_85}             (python -m SimpleHTTPServer 85 > /dev/null 2>&1 &)
+${WEBSERVER_100}            (python -m SimpleHTTPServer 100 > /dev/null 2>&1 &)
+${WEBSERVER_101}            (python -m SimpleHTTPServer 101 > /dev/null 2>&1 &)
+${WEBSERVER_102}            (python -m SimpleHTTPServer 102 > /dev/null 2>&1 &)
+${WEBSERVER_103}            (python -m SimpleHTTPServer 103 > /dev/null 2>&1 &)
+${WEBSERVER_CMDS}
+...                         ${WEBSERVER_80} && ${WEBSERVER_81} && ${WEBSERVER_82} && ${WEBSERVER_83} && ${WEBSERVER_84} && ${WEBSERVER_85} && ${WEBSERVER_100} && ${WEBSERVER_101} && ${WEBSERVER_102} && ${WEBSERVER_103}
+${CLOUD_IMAGE}              "https://artifacts.opnfv.org/sfc/images/sfc_nsh_fraser.qcow2"
+${CLOUD_IMAGE_NAME}         sfc_nsh_fraser
+${CLOUD_FLAVOR_NAME}        sfc_nsh_fraser
 @{NETVIRT_DIAG_SERVICES}    OPENFLOW    IFM    ITM    DATASTORE    ELAN
-${ETH_IN}         eth0
-${ETH_OUT}        eth1
-${CLOUD_IMAGE_USER}    root
-${CLOUD_IMAGE_PASS}    opnfv
-${CLOULD_IMAGE_CONSOLE}    root
+${ETH_IN}                   eth0
+${ETH_OUT}                  eth1
+${CLOUD_IMAGE_USER}         root
+${CLOUD_IMAGE_PASS}         opnfv
+${CLOULD_IMAGE_CONSOLE}     root
+
 
 *** Test Cases ***
 Create Flow Classifiers For Basic Test
     [Documentation]    Create SFC Flow Classifier for TCP traffic between source VM and destination VM
-    OpenStackOperations.Create SFC Flow Classifier    FC_80    ${NET1_VM_IPS}[0]    ${NET1_VM_IPS}[1]    tcp    source_vm_port    args=--destination-port 80:80
-    OpenStackOperations.Create SFC Flow Classifier    FC_81    ${NET1_VM_IPS}[0]    ${NET1_VM_IPS}[1]    tcp    source_vm_port    args=--destination-port 81:81
-    OpenStackOperations.Create SFC Flow Classifier    FC_83_85    ${NET1_VM_IPS}[0]    ${NET1_VM_IPS}[1]    tcp    source_vm_port    args=--destination-port 83:85
+    OpenStackOperations.Create SFC Flow Classifier
+    ...    FC_80
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NET1_VM_IPS}[1]
+    ...    tcp
+    ...    source_vm_port
+    ...    args=--destination-port 80:80
+    OpenStackOperations.Create SFC Flow Classifier
+    ...    FC_81
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NET1_VM_IPS}[1]
+    ...    tcp
+    ...    source_vm_port
+    ...    args=--destination-port 81:81
+    OpenStackOperations.Create SFC Flow Classifier
+    ...    FC_83_85
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NET1_VM_IPS}[1]
+    ...    tcp
+    ...    source_vm_port
+    ...    args=--destination-port 83:85
 
 Create Port Pair
     [Documentation]    Create SFC Port Pairs
@@ -65,10 +88,20 @@ Create Port Pair Groups
 Test Communication From Vm Instance1 In net_1 No SF
     [Documentation]    Login to the source VM instance, and send a nc req to the destination VM instance, If the SF handles the traffic, there will be delay causing the time for nc to be higher.
     ${DEST_VM_LIST}    BuiltIn.Create List    ${NET1_VM_IPS}[1]
-    ${nc_resp}    OpenStackOperations.Execute Command on VM Instance    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND} ${NET1_VM_IPS}[1] 80    user=${CLOUD_IMAGE_USER}    password=${CLOUD_IMAGE_PASS}
+    ${nc_resp}    OpenStackOperations.Execute Command on VM Instance
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND} ${NET1_VM_IPS}[1] 80
+    ...    user=${CLOUD_IMAGE_USER}
+    ...    password=${CLOUD_IMAGE_PASS}
     ...    console=${CLOULD_IMAGE_CONSOLE}
     BuiltIn.Should Contain    ${nc_resp}    ${RES_SUCCESS}
-    ${nc_resp}    OpenStackOperations.Execute Command on VM Instance    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND} ${NET1_VM_IPS}[1] 81    user=${CLOUD_IMAGE_USER}    password=${CLOUD_IMAGE_PASS}
+    ${nc_resp}    OpenStackOperations.Execute Command on VM Instance
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND} ${NET1_VM_IPS}[1] 81
+    ...    user=${CLOUD_IMAGE_USER}
+    ...    password=${CLOUD_IMAGE_PASS}
     ...    console=${CLOULD_IMAGE_CONSOLE}
     BuiltIn.Should Contain    ${nc_resp}    ${RES_SUCCESS}
     [Teardown]    BuiltIn.Run Keywords    OpenStackOperations.Get Test Teardown Debugs
@@ -81,25 +114,76 @@ Create Port Chain For Src->Dest Port 80
 
 Test Communication From Vm Instance1 In net_1 Port 80 via SF
     [Documentation]    Login to the source VM instance, and send a nc req to the destination VM instance, If the SF handles the traffic, there will be delay causing the time for nc to be higher.
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    80    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    81    ${RES_SUCCESS}
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    80
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    81
+    ...    ${RES_SUCCESS}
     Stop Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
     BuiltIn.Comment    Port 80 communication should fail as the SF blocks the same
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    80    ${RES_FAILURE}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    80
+    ...    ${RES_FAILURE}
     BuiltIn.Comment    Test to confirm Port 81 is not blocked
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    81    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    81
+    ...    ${RES_SUCCESS}
     Stop Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 81
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    80    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    81    ${RES_SUCCESS}
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 81
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    80
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    81
+    ...    ${RES_SUCCESS}
     Stop Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}
     [Teardown]    BuiltIn.Run Keywords    OpenStackOperations.Get Test Teardown Debugs
     ...    AND    OpenStackOperations.Get Test Teardown Debugs For SFC
@@ -113,25 +197,76 @@ Update Port Chain To Use Flow Classifier For Port 81
 Test Communication From Vm Instance1 In net_1 Port 81 via SF
     [Documentation]    Login to the source VM instance, and send a nc req to the destination VM instance.
     Stop Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    80    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    81    ${RES_SUCCESS}
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    80
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    81
+    ...    ${RES_SUCCESS}
     Stop Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 81
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 81
     BuiltIn.Comment    Port 81 communication should fail as the SF blocks the same
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    80    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    81    ${RES_FAILURE}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    80
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    81
+    ...    ${RES_FAILURE}
     BuiltIn.Comment    Test to confirm Port 80 does not continue to get routed through SF
     Stop Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    80    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    81    ${RES_SUCCESS}
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    80
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    81
+    ...    ${RES_SUCCESS}
     Stop Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}
     [Teardown]    BuiltIn.Run Keywords    OpenStackOperations.Get Test Teardown Debugs
     ...    AND    OpenStackOperations.Get Test Teardown Debugs For SFC
@@ -144,58 +279,213 @@ Update Port Chain To Use Flow Classifier For Port Range 83-85
 Test Communication From Vm Instance1 In net_1 Port 84 And 85 via SF
     [Documentation]    Login to the source VM instance, and send a nc req to the destination VM instance.
     Stop Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    80    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    83    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    84    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    85    ${RES_SUCCESS}
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    80
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    83
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    84
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    85
+    ...    ${RES_SUCCESS}
     Stop Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 83
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 83
     BuiltIn.Comment    Port 83 communication should fail as the SF blocks the same
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    80    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    83    ${RES_FAILURE}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    84    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    85    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    80
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    83
+    ...    ${RES_FAILURE}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    84
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    85
+    ...    ${RES_SUCCESS}
     Stop Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 84
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 84
     BuiltIn.Comment    Port 84 communication should fail as the SF blocks the same
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    80    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    84    ${RES_FAILURE}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    83    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    85    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    80
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    84
+    ...    ${RES_FAILURE}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    83
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    85
+    ...    ${RES_SUCCESS}
     Stop Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 85
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 85
     BuiltIn.Comment    Port 85 communication should fail as the SF blocks the same
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    80    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    83    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    84    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    85    ${RES_FAILURE}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    80
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    83
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    84
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    85
+    ...    ${RES_FAILURE}
     Stop Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    80    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    83    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    84    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND}
-    ...    85    ${RES_SUCCESS}
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 80
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    80
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    83
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    84
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND}
+    ...    85
+    ...    ${RES_SUCCESS}
 
 Update Port Chain To Use Flow Classifier For Input Port Range 101-103
     [Documentation]    Update Port Chain to use FC_101_103
@@ -205,66 +495,208 @@ Update Port Chain To Use Flow Classifier For Input Port Range 101-103
     OpenStackOperations.Delete SFC Flow Classifier    FC_80
     OpenStackOperations.Delete SFC Flow Classifier    FC_81
     OpenStackOperations.Delete SFC Flow Classifier    FC_83_85
-    OpenStackOperations.Create SFC Flow Classifier    FC_101_103    ${NET1_VM_IPS}[0]    ${NET1_VM_IPS}[1]    tcp    source_vm_port    args=--source-port 101:103
+    OpenStackOperations.Create SFC Flow Classifier
+    ...    FC_101_103
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NET1_VM_IPS}[1]
+    ...    tcp
+    ...    source_vm_port
+    ...    args=--source-port 101:103
     OpenStackOperations.Update SFC Port Chain With A New Flow Classifier    SFPC1    FC_101_103
 
 Test Communication From Vm Instance1 In net_1 Port 100 And 102 via SF
     [Documentation]    Login to the source VM instance, and send a nc req to the destination VM instance.
     Stop Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND} -p 80
-    ...    83    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND} -p 100
-    ...    83    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND} -p 101
-    ...    83    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND} -p 102
-    ...    83    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND} -p 103
-    ...    83    ${RES_SUCCESS}
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND} -p 80
+    ...    83
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND} -p 100
+    ...    83
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND} -p 101
+    ...    83
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND} -p 102
+    ...    83
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND} -p 103
+    ...    83
+    ...    ${RES_SUCCESS}
     Stop Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 83
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND} -p 80
-    ...    83    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND} -p 100
-    ...    83    ${RES_SUCCESS}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND} -p 101
-    ...    83    ${RES_FAILURE}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND} -p 102
-    ...    83    ${RES_FAILURE}
-    Wait Until Keyword Succeeds    3x    10s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND} -p 103
-    ...    83    ${RES_FAILURE}
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 83
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND} -p 80
+    ...    83
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND} -p 100
+    ...    83
+    ...    ${RES_SUCCESS}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND} -p 101
+    ...    83
+    ...    ${RES_FAILURE}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND} -p 102
+    ...    83
+    ...    ${RES_FAILURE}
+    Wait Until Keyword Succeeds
+    ...    3x
+    ...    10s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND} -p 103
+    ...    83
+    ...    ${RES_FAILURE}
 
 Delete And Recreate Port Chain And Flow Classifiers For Symmetric Test
-    OpenStackOperations.Create SFC Flow Classifier    FC_SYM    ${NET1_VM_IPS}[0]    ${NET1_VM_IPS}[1]    tcp    source_vm_port    args=--destination-port 82:82 --source-port 2000 --logical-destination-port dest_vm_port
+    OpenStackOperations.Create SFC Flow Classifier
+    ...    FC_SYM
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NET1_VM_IPS}[1]
+    ...    tcp
+    ...    source_vm_port
+    ...    args=--destination-port 82:82 --source-port 2000 --logical-destination-port dest_vm_port
     OpenStackOperations.Delete SFC Port Chain    SFPC1
-    OpenStackOperations.Create SFC Port Chain    SFPSYM    args=--port-pair-group SFPPG1 --flow-classifier FC_SYM --chain-parameters symmetric=true
+    OpenStackOperations.Create SFC Port Chain
+    ...    SFPSYM
+    ...    args=--port-pair-group SFPPG1 --flow-classifier FC_SYM --chain-parameters symmetric=true
 
 Test Communication From Vm Instance1 For Symmetric Chain
     [Documentation]    Login to the source VM instance, and send a nc req to the destination VM instance.
     Stop Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
-    Wait Until Keyword Succeeds    8x    20s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND} -p 2000
-    ...    82    ${RES_SUCCESS}
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
+    Wait Until Keyword Succeeds
+    ...    8x
+    ...    20s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND} -p 2000
+    ...    82
+    ...    ${RES_SUCCESS}
     BuiltIn.Comment    Test to confirm the SRC->DEST Port 82 is routed through SF
     Stop Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 82
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
-    Wait Until Keyword Succeeds    8x    20s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND} -p 2000
-    ...    82    ${RES_FAILURE}
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off --block 82
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
+    Wait Until Keyword Succeeds
+    ...    8x
+    ...    20s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND} -p 2000
+    ...    82
+    ...    ${RES_FAILURE}
     BuiltIn.Comment    Test to confirm DEST->SRC Port 2000 path SFC traversal
     Stop Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off --block 2000
-    Wait Until Keyword Succeeds    8x    20s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND} -p 2000
-    ...    82    ${RES_FAILURE}
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off --block 2000
+    Wait Until Keyword Succeeds
+    ...    8x
+    ...    20s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND} -p 2000
+    ...    82
+    ...    ${RES_FAILURE}
     BuiltIn.Comment    Test to confirm the Normalcy restored
     Stop Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
-    Start Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}    args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
-    Wait Until Keyword Succeeds    8x    20s    Check Network Reachability    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    ${NC_COMMAND} -p 2000
-    ...    82    ${RES_SUCCESS}
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_IN} --output ${ETH_OUT} --verbose off
+    Start Vxlan Tool in SF
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    args=--do forward --interface ${ETH_OUT} --output ${ETH_IN} --verbose off
+    Wait Until Keyword Succeeds
+    ...    8x
+    ...    20s
+    ...    Check Network Reachability
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    ${NC_COMMAND} -p 2000
+    ...    82
+    ...    ${RES_SUCCESS}
     Stop Vxlan Tool in SF    ${NETWORKS}[0]    ${SF1_IP}
     [Teardown]    BuiltIn.Run Keywords    OpenStackOperations.Get Test Teardown Debugs
     ...    AND    OpenStackOperations.Get Test Teardown Debugs For SFC
@@ -293,6 +725,7 @@ Delete Configurations
     END
     OpenStackOperations.Delete SecurityGroup    ${SECURITY_GROUP}
 
+
 *** Keywords ***
 Suite Setup
     OpenStackOperations.OpenStack Suite Setup
@@ -319,20 +752,54 @@ Create Ports For Testing
     OpenStackOperations.Update Port    p1in    additional_args=--disable-port-security
     OpenStackOperations.Update Port    p1out    additional_args=--no-security-group
     OpenStackOperations.Update Port    p1out    additional_args=--disable-port-security
-    CompareStream.Run_Keyword_If_Equals    oxygen    OpenStackOperations.Update Port    source_vm_port    additional_args=--no-security-group
-    CompareStream.Run_Keyword_If_Equals    oxygen    OpenStackOperations.Update Port    source_vm_port    additional_args=--disable-port-security
-    CompareStream.Run_Keyword_If_Equals    oxygen    OpenStackOperations.Update Port    dest_vm_port    additional_args=--no-security-group
-    CompareStream.Run_Keyword_If_Equals    oxygen    OpenStackOperations.Update Port    dest_vm_port    additional_args=--disable-port-security
+    CompareStream.Run_Keyword_If_Equals
+    ...    oxygen
+    ...    OpenStackOperations.Update Port
+    ...    source_vm_port
+    ...    additional_args=--no-security-group
+    CompareStream.Run_Keyword_If_Equals
+    ...    oxygen
+    ...    OpenStackOperations.Update Port
+    ...    source_vm_port
+    ...    additional_args=--disable-port-security
+    CompareStream.Run_Keyword_If_Equals
+    ...    oxygen
+    ...    OpenStackOperations.Update Port
+    ...    dest_vm_port
+    ...    additional_args=--no-security-group
+    CompareStream.Run_Keyword_If_Equals
+    ...    oxygen
+    ...    OpenStackOperations.Update Port
+    ...    dest_vm_port
+    ...    additional_args=--disable-port-security
     OpenStackOperations.Get Suite Debugs
 
 Create Instances For Testing
-    ${SF_COMP_HOST}    BuiltIn.Set Variable If    2 < ${NUM_OS_SYSTEM}    ${OS_CMP2_HOSTNAME}    ${OS_CMP1_HOSTNAME}
+    ${SF_COMP_HOST}    BuiltIn.Set Variable If    2 < ${NUM_OS_SYSTEM}    ${OS_CMP2_HOSTNAME}    ${OS_CMP1_HOSTNAME}
     OpenStackOperations.Add New Image From Url    ${CLOUD_IMAGE}    ${CLOUD_IMAGE_NAME}
     OpenStackOperations.Create Flavor    ${CLOUD_FLAVOR_NAME}    512    1
-    OpenStackOperations.Create Vm Instance With Ports On Compute Node    p1in    p1out    sf1    ${SF_COMP_HOST}    image=${CLOUD_IMAGE_NAME}    flavor=${CLOUD_FLAVOR_NAME}
+    OpenStackOperations.Create Vm Instance With Ports On Compute Node
+    ...    p1in
+    ...    p1out
+    ...    sf1
+    ...    ${SF_COMP_HOST}
+    ...    image=${CLOUD_IMAGE_NAME}
+    ...    flavor=${CLOUD_FLAVOR_NAME}
+    ...    sg=${SECURITY_GROUP}
+    OpenStackOperations.Create Vm Instance With Port On Compute Node
+    ...    source_vm_port
+    ...    sourcevm
+    ...    ${OS_CMP1_HOSTNAME}
+    ...    image=${CLOUD_IMAGE_NAME}
+    ...    flavor=${CLOUD_FLAVOR_NAME}
+    ...    sg=${SECURITY_GROUP}
+    OpenStackOperations.Create Vm Instance With Port On Compute Node
+    ...    dest_vm_port
+    ...    destvm
+    ...    ${OS_CMP1_HOSTNAME}
+    ...    image=${CLOUD_IMAGE_NAME}
+    ...    flavor=${CLOUD_FLAVOR_NAME}
     ...    sg=${SECURITY_GROUP}
-    OpenStackOperations.Create Vm Instance With Port On Compute Node    source_vm_port    sourcevm    ${OS_CMP1_HOSTNAME}    image=${CLOUD_IMAGE_NAME}    flavor=${CLOUD_FLAVOR_NAME}    sg=${SECURITY_GROUP}
-    OpenStackOperations.Create Vm Instance With Port On Compute Node    dest_vm_port    destvm    ${OS_CMP1_HOSTNAME}    image=${CLOUD_IMAGE_NAME}    flavor=${CLOUD_FLAVOR_NAME}    sg=${SECURITY_GROUP}
     OpenStackOperations.Show Debugs    @{NET_1_VMS}
     OpenStackOperations.Get Suite Debugs
 
@@ -342,45 +809,107 @@ Check Vm Instances Have Ip Address And Ready For Test
     OpenStackOperations.Poll VM Is ACTIVE    destvm
     ${sfc1_mac}    OpenStackOperations.Get Port Mac    p1in
     ${SF1_IP}    OpenStackOperations.Get Port Ip    p1in
-    BuiltIn.Wait Until Keyword Succeeds    500s    60s    OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace    ${NETWORKS}[0]    ${sfc1_mac}    ${SF1_IP}
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    500s
+    ...    60s
+    ...    OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace
+    ...    ${NETWORKS}[0]
+    ...    ${sfc1_mac}
+    ...    ${SF1_IP}
     ${src_mac}    OpenStackOperations.Get Port Mac    source_vm_port
     ${src_ip}    OpenStackOperations.Get Port Ip    source_vm_port
-    BuiltIn.Wait Until Keyword Succeeds    500s    60s    OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace    ${NETWORKS}[0]    ${src_mac}    ${src_ip}
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    500s
+    ...    60s
+    ...    OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace
+    ...    ${NETWORKS}[0]
+    ...    ${src_mac}
+    ...    ${src_ip}
     ${dest_mac}    OpenStackOperations.Get Port Mac    dest_vm_port
     ${dest_ip}    OpenStackOperations.Get Port Ip    dest_vm_port
-    BuiltIn.Wait Until Keyword Succeeds    500s    60s    OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace    ${NETWORKS}[0]    ${dest_mac}    ${dest_ip}
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    500s
+    ...    60s
+    ...    OpenStackOperations.Verify If Instance Is Arpingable From Dhcp Namespace
+    ...    ${NETWORKS}[0]
+    ...    ${dest_mac}
+    ...    ${dest_ip}
     BuiltIn.Comment    If the Tests reach this point, all the Instances are reachable.
     ${NET1_VM_IPS}    BuiltIn.Create List    ${src_ip}    ${dest_ip}
     BuiltIn.Set Suite Variable    @{NET1_VM_IPS}
     BuiltIn.Set Suite Variable    ${SF1_IP}
     BuiltIn.Set Suite Variable    ${OS_SYSTEM_PROMPT}    \#
-    BuiltIn.Wait Until Keyword Succeeds    300s    60s    OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password    ${NETWORKS}[0]    ${SF1_IP}    user=${CLOUD_IMAGE_USER}
-    ...    password=${CLOUD_IMAGE_PASS}    console=${CLOULD_IMAGE_CONSOLE}
-    BuiltIn.Wait Until Keyword Succeeds    300s    60s    OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password    ${NETWORKS}[0]    ${NET1_VM_IPS}[0]    user=${CLOUD_IMAGE_USER}
-    ...    password=${CLOUD_IMAGE_PASS}    console=${CLOULD_IMAGE_CONSOLE}
-    BuiltIn.Wait Until Keyword Succeeds    300s    60s    OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password    ${NETWORKS}[0]    ${NET1_VM_IPS}[1]    user=${CLOUD_IMAGE_USER}
-    ...    password=${CLOUD_IMAGE_PASS}    console=${CLOULD_IMAGE_CONSOLE}
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    300s
+    ...    60s
+    ...    OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password
+    ...    ${NETWORKS}[0]
+    ...    ${SF1_IP}
+    ...    user=${CLOUD_IMAGE_USER}
+    ...    password=${CLOUD_IMAGE_PASS}
+    ...    console=${CLOULD_IMAGE_CONSOLE}
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    300s
+    ...    60s
+    ...    OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[0]
+    ...    user=${CLOUD_IMAGE_USER}
+    ...    password=${CLOUD_IMAGE_PASS}
+    ...    console=${CLOULD_IMAGE_CONSOLE}
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    300s
+    ...    60s
+    ...    OpenStackOperations.Check If Instance Is Ready For Ssh Login Using Password
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[1]
+    ...    user=${CLOUD_IMAGE_USER}
+    ...    password=${CLOUD_IMAGE_PASS}
+    ...    console=${CLOULD_IMAGE_CONSOLE}
     OpenStackOperations.Show Debugs    @{NET_1_VMS}
     OpenStackOperations.Get Suite Debugs
 
 Start Applications on VM Instances For Test
     BuiltIn.Comment    Run Web server Scripts on destination vm listening to 80,81 and 82 ports
-    ${resp}    OpenStackOperations.Execute Command on VM Instance    ${NETWORKS}[0]    ${NET1_VM_IPS}[1]    ${WEBSERVER_CMDS} && (echo done)    user=${CLOUD_IMAGE_USER}    password=${CLOUD_IMAGE_PASS}
+    ${resp}    OpenStackOperations.Execute Command on VM Instance
+    ...    ${NETWORKS}[0]
+    ...    ${NET1_VM_IPS}[1]
+    ...    ${WEBSERVER_CMDS} && (echo done)
+    ...    user=${CLOUD_IMAGE_USER}
+    ...    password=${CLOUD_IMAGE_PASS}
     ...    console=${CLOULD_IMAGE_CONSOLE}
     BuiltIn.Should Contain    ${resp}    done
 
 Start Vxlan Tool in SF
-    [Arguments]    ${network}    ${sf_vm_ip}    ${args}=${EMPTY}
     [Documentation]    Starts the tool in the SF VM's
-    OpenStackOperations.Execute Command on VM Instance    ${network}    ${sf_vm_ip}    nohup python vxlan_tool.py ${args} &    user=${CLOUD_IMAGE_USER}    password=${CLOUD_IMAGE_PASS}    console=${CLOULD_IMAGE_CONSOLE}
+    [Arguments]    ${network}    ${sf_vm_ip}    ${args}=${EMPTY}
+    OpenStackOperations.Execute Command on VM Instance
+    ...    ${network}
+    ...    ${sf_vm_ip}
+    ...    nohup python vxlan_tool.py ${args} &
+    ...    user=${CLOUD_IMAGE_USER}
+    ...    password=${CLOUD_IMAGE_PASS}
+    ...    console=${CLOULD_IMAGE_CONSOLE}
 
 Stop Vxlan Tool in SF
-    [Arguments]    ${network}    ${sf_vm_ip}
     [Documentation]    Starts the tool in the SF VM's
-    OpenStackOperations.Execute Command on VM Instance    ${network}    ${sf_vm_ip}    pkill python    user=${CLOUD_IMAGE_USER}    password=${CLOUD_IMAGE_PASS}    console=${CLOULD_IMAGE_CONSOLE}
+    [Arguments]    ${network}    ${sf_vm_ip}
+    OpenStackOperations.Execute Command on VM Instance
+    ...    ${network}
+    ...    ${sf_vm_ip}
+    ...    pkill python
+    ...    user=${CLOUD_IMAGE_USER}
+    ...    password=${CLOUD_IMAGE_PASS}
+    ...    console=${CLOULD_IMAGE_CONSOLE}
 
 Check Network Reachability
     [Arguments]    ${net_name}    ${source_vm_ip}    ${command}    ${port}    ${ret_code}    ${cmd_timeout}=30s
-    ${nc_resp}    OpenStackOperations.Execute Command on VM Instance    ${net_name}    ${source_vm_ip}    ${command} ${NET1_VM_IPS}[1] ${port}    cmd_timeout=${cmd_timeout}    user=${CLOUD_IMAGE_USER}
-    ...    password=${CLOUD_IMAGE_PASS}    console=${CLOULD_IMAGE_CONSOLE}
+    ${nc_resp}    OpenStackOperations.Execute Command on VM Instance
+    ...    ${net_name}
+    ...    ${source_vm_ip}
+    ...    ${command} ${NET1_VM_IPS}[1] ${port}
+    ...    cmd_timeout=${cmd_timeout}
+    ...    user=${CLOUD_IMAGE_USER}
+    ...    password=${CLOUD_IMAGE_PASS}
+    ...    console=${CLOULD_IMAGE_CONSOLE}
     BuiltIn.Should Contain    ${nc_resp}    ${ret_code}