Migrate BgpOperations.robot
[integration/test.git] / csit / libraries / BgpOperations.robot
index 1b0377032529cfdb3e326d2998d4355b54f2c7fd..1a9591cb10096c57c2d5301fc008f5625bd2e40d 100644 (file)
@@ -1,34 +1,34 @@
 *** Settings ***
 *** Settings ***
-Documentation     This library contains keywords related to the BGP functionality.
-Library           SSHLibrary
-Library           String
-Library           BgpRpcClient.py    ${TOOLS_SYSTEM_IP}
-Resource          ../variables/Variables.robot
-Resource          CompareStream.robot
-Resource          Utils.robot
-Resource          KillPythonTool.robot
-Resource          TemplatedRequests.robot
+Documentation       This library contains keywords related to the BGP functionality.
+
+Library             SSHLibrary
+Library             String
+Library             BgpRpcClient.py    ${TOOLS_SYSTEM_IP}
+Resource            ../variables/Variables.robot
+Resource            CompareStream.robot
+Resource            Utils.robot
+Resource            KillPythonTool.robot
+Resource            TemplatedRequests.robot
+
 
 *** Variables ***
 
 *** Variables ***
-${BGP_BMP_DIR}    ${CURDIR}/../variables/bgpfunctional/bmp_basic/filled_structure
-${BGP_BMP_FEAT_DIR}    ${CURDIR}/../variables/bgpfunctional/bmp_basic/empty_structure
-${BGP_RIB_URI}    ${OPERATIONAL_API}/bgp-rib:bgp-rib/rib/example-bgp-rib
-${BGP_TOPOLOGY_URI}    ${OPERATIONAL_TOPO_API}/topology/example-ipv4-topology
-${VAR_BASE_BGP}    ${CURDIR}/../variables/bgpfunctional
-${RIB_NAME}       example-bgp-rib
-${OLD_AS_PATH}    \n"as-path": {},
-${NEW_AS_PATH}    ${EMPTY}
-&{APP_PEER}       IP=${ODL_SYSTEM_IP}    BGP_RIB=${RIB_NAME}
-${NEW_IPV4_ROUTES_LINE}    ${EMPTY}
-${OLD_IPV4_ROUTES_LINE}    \n"bgp-inet:ipv4-routes": {},
+${BGP_BMP_DIR}              ${CURDIR}/../variables/bgpfunctional/bmp_basic/filled_structure
+${BGP_BMP_FEAT_DIR}         ${CURDIR}/../variables/bgpfunctional/bmp_basic/empty_structure
+${BGP_RIB_URI}              bgp-rib:bgp-rib/rib=example-bgp-rib
+${BGP_TOPOLOGY_URI}         ${TOPOLOGY_URL}=example-ipv4-topology
+${VAR_BASE_BGP}             ${CURDIR}/../variables/bgpfunctional
+${RIB_NAME}                 example-bgp-rib
+&{APP_PEER}                 IP=${ODL_SYSTEM_IP}    BGP_RIB=${RIB_NAME}
 ${BGP_CONFIG_SERVER_CMD}    bgp-connect -h ${ODL_SYSTEM_IP} -p 7644 add
 ${BGP_CONFIG_SERVER_CMD}    bgp-connect -h ${ODL_SYSTEM_IP} -p 7644 add
-${DISPLAY_VPN4_ALL}    show-bgp --cmd "ip bgp ${VPNV4_ADDR_FAMILY} all"
+${VPNV4_ADDR_FAMILY}        vpnv4
+${DISPLAY_VPN4_ALL}         show-bgp --cmd "ip bgp ${VPNV4_ADDR_FAMILY} all"
+
 
 *** Keywords ***
 Start Quagga Processes On ODL
 
 *** Keywords ***
 Start Quagga Processes On ODL
-    [Arguments]    ${odl_ip}
     [Documentation]    To start the zrpcd processes on ODL VM
     [Documentation]    To start the zrpcd processes on ODL VM
-    ${conn_id}=    Open_Connection_To_ODL_System    ip_address=${odl_ip}
+    [Arguments]    ${odl_ip}
+    ${conn_id} =    Open_Connection_To_ODL_System    ip_address=${odl_ip}
     Switch Connection    ${conn_id}
     Write Commands Until Expected Prompt    cd /opt/quagga/etc/    ${DEFAULT_LINUX_PROMPT_STRICT}
     Write Commands Until Expected Prompt    sudo cp zebra.conf.sample zebra.conf    ${DEFAULT_LINUX_PROMPT_STRICT}
     Switch Connection    ${conn_id}
     Write Commands Until Expected Prompt    cd /opt/quagga/etc/    ${DEFAULT_LINUX_PROMPT_STRICT}
     Write Commands Until Expected Prompt    sudo cp zebra.conf.sample zebra.conf    ${DEFAULT_LINUX_PROMPT_STRICT}
@@ -38,16 +38,16 @@ Start Quagga Processes On ODL
     Close Connection
 
 Restart BGP Processes On ODL
     Close Connection
 
 Restart BGP Processes On ODL
-    [Arguments]    ${odl_ip}
     [Documentation]    To restart the bgpd , qthriftd processes on ODL VM
     [Documentation]    To restart the bgpd , qthriftd processes on ODL VM
+    [Arguments]    ${odl_ip}
     ${conn_id} =    Open_Connection_To_ODL_System    ip_address=${odl_ip}
     Switch Connection    ${conn_id}
     Write Commands Until Expected Prompt    sudo pkill -f bgpd    ${DEFAULT_LINUX_PROMPT_STRICT}
     Start Quagga Processes On ODL    ${odl_ip}
 
 Start Quagga Processes On DCGW
     ${conn_id} =    Open_Connection_To_ODL_System    ip_address=${odl_ip}
     Switch Connection    ${conn_id}
     Write Commands Until Expected Prompt    sudo pkill -f bgpd    ${DEFAULT_LINUX_PROMPT_STRICT}
     Start Quagga Processes On ODL    ${odl_ip}
 
 Start Quagga Processes On DCGW
-    [Arguments]    ${dcgw_ip}
     [Documentation]    To start the zrpcd, bgpd,and zebra processes on DCGW
     [Documentation]    To start the zrpcd, bgpd,and zebra processes on DCGW
+    [Arguments]    ${dcgw_ip}
     ${dcgw_conn_id} =    Open_Connection_To_Tools_System    ip_address=${dcgw_ip}
     Switch Connection    ${dcgw_conn_id}
     Write Commands Until Expected Prompt    cd /opt/quagga/etc/    ${DEFAULT_LINUX_PROMPT_STRICT}
     ${dcgw_conn_id} =    Open_Connection_To_Tools_System    ip_address=${dcgw_ip}
     Switch Connection    ${dcgw_conn_id}
     Write Commands Until Expected Prompt    cd /opt/quagga/etc/    ${DEFAULT_LINUX_PROMPT_STRICT}
@@ -66,22 +66,22 @@ Start Quagga Processes On DCGW
     Write Commands Until Expected Prompt    netstat -nap | grep 7644    ${DEFAULT_LINUX_PROMPT_STRICT}
 
 Restart BGP Processes On DCGW
     Write Commands Until Expected Prompt    netstat -nap | grep 7644    ${DEFAULT_LINUX_PROMPT_STRICT}
 
 Restart BGP Processes On DCGW
-    [Arguments]    ${dcgw_ip}
     [Documentation]    To Restart the zrpcd, bgpd and zebra processes on DCGW
     [Documentation]    To Restart the zrpcd, bgpd and zebra processes on DCGW
+    [Arguments]    ${dcgw_ip}
     ${dcgw_conn_id} =    Open_Connection_To_Tools_System    ip_address=${dcgw_ip}
     Switch Connection    ${dcgw_conn_id}
     Write Commands Until Expected Prompt    sudo pkill -f bgpd    ${DEFAULT_LINUX_PROMPT_STRICT}
     Start Quagga Processes On DCGW    ${dcgw_ip}
 
 Stop BGP Processes On Node
     ${dcgw_conn_id} =    Open_Connection_To_Tools_System    ip_address=${dcgw_ip}
     Switch Connection    ${dcgw_conn_id}
     Write Commands Until Expected Prompt    sudo pkill -f bgpd    ${DEFAULT_LINUX_PROMPT_STRICT}
     Start Quagga Processes On DCGW    ${dcgw_ip}
 
 Stop BGP Processes On Node
-    [Arguments]    ${node_ip}
     [Documentation]    To stop the bgpd , qthriftd processes on specific node given by user.
     [Documentation]    To stop the bgpd , qthriftd processes on specific node given by user.
+    [Arguments]    ${node_ip}
     Utils.Run Command On Remote System    ${node_ip}    sudo pkill -f bgpd
     Utils.Run Command On Remote System    ${node_ip}    sudo pkill -f zrpcd
 
 Show Quagga Configuration On ODL
     Utils.Run Command On Remote System    ${node_ip}    sudo pkill -f bgpd
     Utils.Run Command On Remote System    ${node_ip}    sudo pkill -f zrpcd
 
 Show Quagga Configuration On ODL
-    [Arguments]    ${odl_ip}    ${rd}
     [Documentation]    Show quagga config from ODL
     [Documentation]    Show quagga config from ODL
+    [Arguments]    ${odl_ip}    ${rd}
     Create Quagga Telnet Session    ${odl_ip}    bgpd    sdncbgpc
     Execute Command On Quagga Telnet Session    show running-config
     Execute Command On Quagga Telnet Session    show bgp neighbors
     Create Quagga Telnet Session    ${odl_ip}    bgpd    sdncbgpc
     Execute Command On Quagga Telnet Session    show running-config
     Execute Command On Quagga Telnet Session    show bgp neighbors
@@ -90,9 +90,9 @@ Show Quagga Configuration On ODL
     Close Connection
 
 Create Quagga Telnet Session
     Close Connection
 
 Create Quagga Telnet Session
-    [Arguments]    ${ip}    ${user}    ${password}
     [Documentation]    Create telnet session for Quagga
     [Documentation]    Create telnet session for Quagga
-    ${conn_id}=    Open_Connection_To_Tools_System    ip_address=${ip}
+    [Arguments]    ${ip}    ${user}    ${password}
+    ${conn_id} =    Open_Connection_To_Tools_System    ip_address=${ip}
     Switch Connection    ${conn_id}
     ${output} =    Write    telnet localhost ${user}
     ${output} =    Read Until    Password:
     Switch Connection    ${conn_id}
     ${output} =    Write    telnet localhost ${user}
     ${output} =    Read Until    Password:
@@ -102,17 +102,17 @@ Create Quagga Telnet Session
     ${output} =    Read
 
 Execute Command On Quagga Telnet Session
     ${output} =    Read
 
 Execute Command On Quagga Telnet Session
-    [Arguments]    ${command}
     [Documentation]    Execute command on Quagga telnet session(session should exist) and returns the output.
     [Documentation]    Execute command on Quagga telnet session(session should exist) and returns the output.
+    [Arguments]    ${command}
     SSHLibrary.Write    ${command}
     ${output} =    SSHLibrary.Read
     Log    ${output}
     SSHLibrary.Write    ${command}
     ${output} =    SSHLibrary.Read
     Log    ${output}
-    [Return]    ${output}
+    RETURN    ${output}
 
 Configure BGP And Add Neighbor On DCGW
 
 Configure BGP And Add Neighbor On DCGW
+    [Documentation]    Configure BGP and add neighbor on the dcgw
     [Arguments]    ${dcgw_ip}    ${as_id}    ${router_id}    ${neighbor_ip}    ${vrf_name}    ${rd}
     ...    ${loopback_ip}
     [Arguments]    ${dcgw_ip}    ${as_id}    ${router_id}    ${neighbor_ip}    ${vrf_name}    ${rd}
     ...    ${loopback_ip}
-    [Documentation]    Configure BGP and add neighbor on the dcgw
     Create Quagga Telnet Session    ${dcgw_ip}    bgpd    sdncbgpc
     Execute Command On Quagga Telnet Session    configure terminal
     Execute Command On Quagga Telnet Session    router bgp ${as_id}
     Create Quagga Telnet Session    ${dcgw_ip}    bgpd    sdncbgpc
     Execute Command On Quagga Telnet Session    configure terminal
     Execute Command On Quagga Telnet Session    router bgp ${as_id}
@@ -133,8 +133,8 @@ Configure BGP And Add Neighbor On DCGW
     Execute Command On Quagga Telnet Session    exit
 
 Add Loopback Interface On DCGW
     Execute Command On Quagga Telnet Session    exit
 
 Add Loopback Interface On DCGW
-    [Arguments]    ${dcgw_ip}    ${loopback_name}    ${loopback_ip}    ${user}=zebra    ${password}=zebra
     [Documentation]    Add loopback interface on DCGW
     [Documentation]    Add loopback interface on DCGW
+    [Arguments]    ${dcgw_ip}    ${loopback_name}    ${loopback_ip}    ${user}=zebra    ${password}=zebra
     Create Quagga Telnet Session    ${dcgw_ip}    ${user}    ${password}
     Execute Command On Quagga Telnet Session    enable
     Execute Command On Quagga Telnet Session    ${password}
     Create Quagga Telnet Session    ${dcgw_ip}    ${user}    ${password}
     Execute Command On Quagga Telnet Session    enable
     Execute Command On Quagga Telnet Session    ${password}
@@ -147,26 +147,26 @@ Add Loopback Interface On DCGW
     Execute Command On Quagga Telnet Session    exit
 
 Execute Show Command On Quagga
     Execute Command On Quagga Telnet Session    exit
 
 Execute Show Command On Quagga
-    [Arguments]    ${dcgw_ip}    ${cmd}    ${user}=bgpd    ${password}=sdncbgpc
     [Documentation]    Execute command on quagga and returns the ouput.
     [Documentation]    Execute command on quagga and returns the ouput.
+    [Arguments]    ${dcgw_ip}    ${cmd}    ${user}=bgpd    ${password}=sdncbgpc
     Create Quagga Telnet Session    ${dcgw_ip}    ${user}    ${password}
     ${output} =    Execute Command On Quagga Telnet Session    ${cmd}
     Log    ${output}
     Execute Command On quagga Telnet Session    exit
     Create Quagga Telnet Session    ${dcgw_ip}    ${user}    ${password}
     ${output} =    Execute Command On Quagga Telnet Session    ${cmd}
     Log    ${output}
     Execute Command On quagga Telnet Session    exit
-    [Return]    ${output}
+    RETURN    ${output}
 
 Verify BGP Neighbor Status On Quagga
 
 Verify BGP Neighbor Status On Quagga
-    [Arguments]    ${dcgw_ip}    ${neighbor_ip}
     [Documentation]    Verify bgp neighbor status on quagga
     [Documentation]    Verify bgp neighbor status on quagga
+    [Arguments]    ${dcgw_ip}    ${neighbor_ip}
     ${output} =    Execute Show Command On quagga    ${dcgw_ip}    show bgp neighbors ${neighbor_ip}
     Log    ${output}
     Should Contain    ${output}    BGP state = Established
 
 Setup BGP Peering On ODL
     ${output} =    Execute Show Command On quagga    ${dcgw_ip}    show bgp neighbors ${neighbor_ip}
     Log    ${output}
     Should Contain    ${output}    BGP state = Established
 
 Setup BGP Peering On ODL
-    [Arguments]    ${odl_ip}    ${as_id}    ${nbr_ip}
     [Documentation]    Setup BGP peering between ODL and given neighbor IP.
     ...    Configuring and starting BGP on ODL node with given AS number
     ...    Adding and verifying BGP neighbor
     [Documentation]    Setup BGP peering between ODL and given neighbor IP.
     ...    Configuring and starting BGP on ODL node with given AS number
     ...    Adding and verifying BGP neighbor
+    [Arguments]    ${odl_ip}    ${as_id}    ${nbr_ip}
     KarafKeywords.Issue Command On Karaf Console    ${BGP_CONFIG_SERVER_CMD}
     BgpOperations.Create BGP Configuration On ODL    localas=${as_id}    routerid=${odl_ip}
     BgpOperations.AddNeighbor To BGP Configuration On ODL    remoteas=${as_id}    neighborAddr=${nbr_ip}
     KarafKeywords.Issue Command On Karaf Console    ${BGP_CONFIG_SERVER_CMD}
     BgpOperations.Create BGP Configuration On ODL    localas=${as_id}    routerid=${odl_ip}
     BgpOperations.AddNeighbor To BGP Configuration On ODL    remoteas=${as_id}    neighborAddr=${nbr_ip}
@@ -174,36 +174,43 @@ Setup BGP Peering On ODL
     BuiltIn.Should Contain    ${output}    ${nbr_ip}
 
 Setup BGP Peering On DCGW
     BuiltIn.Should Contain    ${output}    ${nbr_ip}
 
 Setup BGP Peering On DCGW
-    [Arguments]    ${dcgw_ip}    ${as_id}    ${nbr_ip}    ${vrf_name}    ${rd}    ${loopback_ip}
     [Documentation]    Setup BGP peering between DCGW and given neighbor IP.
     ...    Configuring,adding neighbor on DCGW node and verifying BGP neighbor.
     [Documentation]    Setup BGP peering between DCGW and given neighbor IP.
     ...    Configuring,adding neighbor on DCGW node and verifying BGP neighbor.
-    BgpOperations.Configure BGP And Add Neighbor On DCGW    ${dcgw_ip}    ${as_id}    ${dcgw_ip}    ${nbr_ip}    ${vrf_name}    ${rd}
+    [Arguments]    ${dcgw_ip}    ${as_id}    ${nbr_ip}    ${vrf_name}    ${rd}    ${loopback_ip}
+    BgpOperations.Configure BGP And Add Neighbor On DCGW
+    ...    ${dcgw_ip}
+    ...    ${as_id}
+    ...    ${dcgw_ip}
+    ...    ${nbr_ip}
+    ...    ${vrf_name}
+    ...    ${rd}
     ...    ${loopback_ip}
     ${output} =    BgpOperations.Execute Show Command On Quagga    ${dcgw_ip}    ${RUN_CONFIG}
     BuiltIn.Should Contain    ${output}    ${nbr_ip}
 
 Verify Routes On Quagga
     ...    ${loopback_ip}
     ${output} =    BgpOperations.Execute Show Command On Quagga    ${dcgw_ip}    ${RUN_CONFIG}
     BuiltIn.Should Contain    ${output}    ${nbr_ip}
 
 Verify Routes On Quagga
-    [Arguments]    ${dcgw_ip}    ${rd}    ${ip_list}
     [Documentation]    Verify routes on quagga
     [Documentation]    Verify routes on quagga
+    [Arguments]    ${dcgw_ip}    ${rd}    ${ip_list}
     ${output} =    Execute Show Command On quagga    ${dcgw_ip}    show ip bgp vrf ${rd}
     Log    ${output}
     ${output} =    Execute Show Command On quagga    ${dcgw_ip}    show ip bgp vrf ${rd}
     Log    ${output}
-    : FOR    ${ip}    IN    @{ip_list}
-    \    Should Contain    ${output}    ${ip}
+    FOR    ${ip}    IN    @{ip_list}
+        Should Contain    ${output}    ${ip}
+    END
 
 Delete BGP Config On Quagga
 
 Delete BGP Config On Quagga
-    [Arguments]    ${dcgw_ip}    ${bgp_id}    ${user}=bgpd    ${password}=sdncbgpc
     [Documentation]    Delete BGP Config on Quagga
     [Documentation]    Delete BGP Config on Quagga
+    [Arguments]    ${dcgw_ip}    ${bgp_id}    ${user}=bgpd    ${password}=sdncbgpc
     Create Quagga Telnet Session    ${dcgw_ip}    ${user}    ${password}
     Execute Command On Quagga Telnet Session    configure terminal
     Execute Command On Quagga Telnet Session    no router bgp ${bgp_id}
     Execute Command On Quagga Telnet Session    end
     ${output} =    Execute Command On Quagga Telnet Session    show running-config
     Execute Command On Quagga Telnet Session    exit
     Create Quagga Telnet Session    ${dcgw_ip}    ${user}    ${password}
     Execute Command On Quagga Telnet Session    configure terminal
     Execute Command On Quagga Telnet Session    no router bgp ${bgp_id}
     Execute Command On Quagga Telnet Session    end
     ${output} =    Execute Command On Quagga Telnet Session    show running-config
     Execute Command On Quagga Telnet Session    exit
-    [Return]    ${output}
+    RETURN    ${output}
 
 Create L3VPN on DCGW
 
 Create L3VPN on DCGW
-    [Arguments]    ${dcgw_ip}    ${as_id}    ${vpn_name}    ${rd}
     [Documentation]    Creating L3VPN on DCGW
     [Documentation]    Creating L3VPN on DCGW
+    [Arguments]    ${dcgw_ip}    ${as_id}    ${vpn_name}    ${rd}
     BgpOperations.Create Quagga Telnet Session    ${dcgw_ip}    bgpd    sdncbgpc
     BgpOperations.Execute Command On Quagga Telnet Session    configure terminal
     BgpOperations.Execute Command On Quagga Telnet Session    router bgp ${as_id}
     BgpOperations.Create Quagga Telnet Session    ${dcgw_ip}    bgpd    sdncbgpc
     BgpOperations.Execute Command On Quagga Telnet Session    configure terminal
     BgpOperations.Execute Command On Quagga Telnet Session    router bgp ${as_id}
@@ -214,25 +221,26 @@ Create L3VPN on DCGW
     BgpOperations.Execute Command On Quagga Telnet Session    end
 
 Delete L3VPN on DCGW
     BgpOperations.Execute Command On Quagga Telnet Session    end
 
 Delete L3VPN on DCGW
-    [Arguments]    ${dcgw_ip}    ${as_id}    @{vpns}
     [Documentation]    Deleting L3VPN on DCGW
     [Documentation]    Deleting L3VPN on DCGW
+    [Arguments]    ${dcgw_ip}    ${as_id}    @{vpns}
     BgpOperations.Create Quagga Telnet Session    ${dcgw_ip}    bgpd    sdncbgpc
     BgpOperations.Execute Command On Quagga Telnet Session    configure terminal
     BgpOperations.Execute Command On Quagga Telnet Session    router bgp ${as_id}
     BgpOperations.Create Quagga Telnet Session    ${dcgw_ip}    bgpd    sdncbgpc
     BgpOperations.Execute Command On Quagga Telnet Session    configure terminal
     BgpOperations.Execute Command On Quagga Telnet Session    router bgp ${as_id}
-    : FOR    ${vpn}    IN    @{vpns}
-    \    BgpOperations.Execute Command On Quagga Telnet Session    no vrf ${vpn}
+    FOR    ${vpn}    IN    @{vpns}
+        BgpOperations.Execute Command On Quagga Telnet Session    no vrf ${vpn}
+    END
     BgpOperations.Execute Command On Quagga Telnet Session    end
 
 Verify L3VPN On DCGW
     BgpOperations.Execute Command On Quagga Telnet Session    end
 
 Verify L3VPN On DCGW
-    [Arguments]    ${dcgw_ip}    ${vpn_name}    ${rd}
     [Documentation]    Verify L3VPN vrf name and rd value on DCGW
     [Documentation]    Verify L3VPN vrf name and rd value on DCGW
+    [Arguments]    ${dcgw_ip}    ${vpn_name}    ${rd}
     ${output} =    BgpOperations.Execute Show Command On Quagga    ${dcgw_ip}    show running-config
     BuiltIn.Should Contain    ${output}    vrf ${vpn_name}
     BuiltIn.Should Contain    ${output}    rd ${rd}
 
 Add Routes On DCGW
     ${output} =    BgpOperations.Execute Show Command On Quagga    ${dcgw_ip}    show running-config
     BuiltIn.Should Contain    ${output}    vrf ${vpn_name}
     BuiltIn.Should Contain    ${output}    rd ${rd}
 
 Add Routes On DCGW
-    [Arguments]    ${dcgw_ip}    ${rd}    ${network_ip}    ${label}
     [Documentation]    Add routes on DCGW
     [Documentation]    Add routes on DCGW
+    [Arguments]    ${dcgw_ip}    ${rd}    ${network_ip}    ${label}
     BgpOperations.Create Quagga Telnet Session    ${dcgw_ip}    bgpd    sdncbgpc
     BgpOperations.Execute Command On Quagga Telnet Session    configure terminal
     BgpOperations.Execute Command On Quagga Telnet Session    router bgp ${AS_ID}
     BgpOperations.Create Quagga Telnet Session    ${dcgw_ip}    bgpd    sdncbgpc
     BgpOperations.Execute Command On Quagga Telnet Session    configure terminal
     BgpOperations.Execute Command On Quagga Telnet Session    router bgp ${AS_ID}
@@ -241,46 +249,59 @@ Add Routes On DCGW
     BgpOperations.Execute Command On Quagga Telnet Session    end
 
 Create BGP Configuration On ODL
     BgpOperations.Execute Command On Quagga Telnet Session    end
 
 Create BGP Configuration On ODL
-    [Arguments]    &{Kwargs}
     [Documentation]    Associate the created L3VPN to a network-id received as dictionary argument
     [Documentation]    Associate the created L3VPN to a network-id received as dictionary argument
-    TemplatedRequests.Post_As_Json_Templated    folder=${VAR_BASE_BGP}/create_bgp    mapping=${Kwargs}    session=session
+    [Arguments]    &{Kwargs}
+    TemplatedRequests.Post_As_Json_Templated
+    ...    folder=${VAR_BASE_BGP}/create_bgp
+    ...    mapping=${Kwargs}
+    ...    session=session
 
 AddNeighbor To BGP Configuration On ODL
 
 AddNeighbor To BGP Configuration On ODL
-    [Arguments]    &{Kwargs}
     [Documentation]    Associate the created L3VPN to a network-id received as dictionary argument
     [Documentation]    Associate the created L3VPN to a network-id received as dictionary argument
-    TemplatedRequests.Post_As_Json_Templated    folder=${VAR_BASE_BGP}/addNeighbor_bgp    mapping=${Kwargs}    session=session
+    [Arguments]    &{Kwargs}
+    CompareStream.Run_Keyword_If_Less_Than_Magnesium
+    ...    TemplatedRequests.Post_As_Json_Templated
+    ...    folder=${VAR_BASE_BGP}/addNeighbor_bgp
+    ...    mapping=${Kwargs}
+    ...    session=session
+    CompareStream.Run_Keyword_If_At_Least_Magnesium
+    ...    TemplatedRequests.Post_As_Json_Templated
+    ...    folder=${VAR_BASE_BGP}/addNeighborsContainer_bgp
+    ...    mapping=${Kwargs}
+    ...    session=session
 
 Get BGP Configuration On ODL
 
 Get BGP Configuration On ODL
-    [Arguments]    ${odl_session}
     [Documentation]    Get bgp configuration
     [Documentation]    Get bgp configuration
-    ${resp} =    RequestsLibrary.Get Request    ${odl_session}    ${CONFIG_API}/ebgp:bgp/
-    Log    ${resp.content}
-    [Return]    ${resp.content}
+    [Arguments]    ${odl_session}
+    ${resp} =    RequestsLibrary.GET On Session    alias=${odl_session}    url=${CONFIG_API}/ebgp:bgp/
+    Log    ${resp.text}
+    RETURN    ${resp.text}
 
 Delete BGP Configuration On ODL
 
 Delete BGP Configuration On ODL
-    [Arguments]    ${odl_session}
     [Documentation]    Delete BGP
     [Documentation]    Delete BGP
-    ${resp} =    RequestsLibrary.Delete Request    ${odl_session}    ${CONFIG_API}/ebgp:bgp/
-    Log    ${resp.content}
-    Should Be Equal As Strings    ${resp.status_code}    200
-    [Return]    ${resp.content}
+    [Arguments]    ${odl_session}
+    ${resp} =    RequestsLibrary.DELETE On Session
+    ...    alias=${odl_session}
+    ...    url=${CONFIG_API}/ebgp:bgp/
+    ...    expected_status=200
+    Log    ${resp.text}
+    RETURN    ${resp.text}
 
 Create External Tunnel Endpoint Configuration
 
 Create External Tunnel Endpoint Configuration
-    [Arguments]    &{Kwargs}
     [Documentation]    Create Tunnel End point
     [Documentation]    Create Tunnel End point
-    TemplatedRequests.Post_As_Json_Templated    folder=${VAR_BASE_BGP}/create_etep    mapping=${Kwargs}    session=session
+    [Arguments]    &{Kwargs}
+    TemplatedRequests.Post_As_Json_Templated
+    ...    folder=${VAR_BASE_BGP}/create_etep
+    ...    mapping=${Kwargs}
+    ...    session=session
 
 Delete External Tunnel Endpoint Configuration
 
 Delete External Tunnel Endpoint Configuration
-    [Arguments]    &{Kwargs}
     [Documentation]    Delete Tunnel End point
     [Documentation]    Delete Tunnel End point
-    TemplatedRequests.Post_As_Json_Templated    folder=${VAR_BASE_BGP}/delete_etep    mapping=${Kwargs}    session=session
-
-Get External Tunnel Endpoint Configuration
-    [Arguments]    ${ip}
-    [Documentation]    Get bgp configuration
-    ${resp} =    RequestsLibrary.Get Request    session    ${CONFIG_API}/itm:dc-gateway-ip-list/dc-gateway-ip/${ip}/
-    Log    ${resp.content}
-    [Return]    ${resp.content}
+    [Arguments]    &{Kwargs}
+    TemplatedRequests.Post_As_Json_Templated
+    ...    folder=${VAR_BASE_BGP}/delete_etep
+    ...    mapping=${Kwargs}
+    ...    session=session
 
 Teardown_Everything
     [Documentation]    Create and Log the diff between expected and actual responses, make sure Python tool was killed.
 
 Teardown_Everything
     [Documentation]    Create and Log the diff between expected and actual responses, make sure Python tool was killed.
@@ -290,51 +311,70 @@ Teardown_Everything
     SSHLibrary.Close_All_Connections
 
 Check_Example_Bgp_Rib_Content
     SSHLibrary.Close_All_Connections
 
 Check_Example_Bgp_Rib_Content
-    [Arguments]    ${session}    ${substr}    ${error_message}=${JSONKEYSTR} not found, but expected.
     [Documentation]    Check the example-bgp-rib content for string
     [Documentation]    Check the example-bgp-rib content for string
-    ${response}=    RequestsLibrary.Get Request    ${session}    ${BGP_RIB_URI}
+    [Arguments]    ${session}    ${substr}    ${error_message}=${JSONKEYSTR} not found, but expected.
+    ${response} =    RequestsLibrary.GET On Session
+    ...    alias=${session}
+    ...    url=${REST_API}/${BGP_RIB_URI}?content=nonconfig
     BuiltIn.Log    ${response.status_code}
     BuiltIn.Log    ${response.text}
     BuiltIn.Should_Contain    ${response.text}    ${substr}    ${error_message}    values=False
 
 Check_Example_Bgp_Rib_Does_Not_Contain
     BuiltIn.Log    ${response.status_code}
     BuiltIn.Log    ${response.text}
     BuiltIn.Should_Contain    ${response.text}    ${substr}    ${error_message}    values=False
 
 Check_Example_Bgp_Rib_Does_Not_Contain
-    [Arguments]    ${session}    ${substr}    ${error_message}=${JSONKEYSTR} found, but not expected.
     [Documentation]    Check the example-bgp-rib does not contain the string
     [Documentation]    Check the example-bgp-rib does not contain the string
-    ${response}=    RequestsLibrary.Get Request    ${session}    ${BGP_RIB_URI}
+    [Arguments]    ${session}    ${substr}    ${error_message}=${JSONKEYSTR} found, but not expected.
+    ${response} =    RequestsLibrary.GET On Session
+    ...    alias=${session}
+    ...    url=${REST_API}/${BGP_RIB_URI}?content=nonconfig
     BuiltIn.Log    ${response.status_code}
     BuiltIn.Log    ${response.text}
     BuiltIn.Should_Not_Contain    ${response.text}    ${substr}    ${error_message}    values=False
 
 Check_Example_IPv4_Topology_Content
     BuiltIn.Log    ${response.status_code}
     BuiltIn.Log    ${response.text}
     BuiltIn.Should_Not_Contain    ${response.text}    ${substr}    ${error_message}    values=False
 
 Check_Example_IPv4_Topology_Content
-    [Arguments]    ${session}    ${string_to_check}=${EMPTY}
     [Documentation]    Check the example-ipv4-topology content for string
     [Documentation]    Check the example-ipv4-topology content for string
-    ${response}=    RequestsLibrary.Get Request    ${session}    ${BGP_TOPOLOGY_URI}
+    [Arguments]    ${session}    ${string_to_check}=${EMPTY}
+    ${response} =    RequestsLibrary.GET On Session
+    ...    alias=${session}
+    ...    url=${REST_API}/${BGP_TOPOLOGY_URI}?content=nonconfig
     BuiltIn.Log    ${response.status_code}
     BuiltIn.Log    ${response.text}
     BuiltIn.Should_Contain    ${response.text}    ${string_to_check}
 
 Check_Example_IPv4_Topology_Does_Not_Contain
     BuiltIn.Log    ${response.status_code}
     BuiltIn.Log    ${response.text}
     BuiltIn.Should_Contain    ${response.text}    ${string_to_check}
 
 Check_Example_IPv4_Topology_Does_Not_Contain
-    [Arguments]    ${session}    ${string_to_check}
     [Documentation]    Check the example-ipv4-topology does not contain the string
     [Documentation]    Check the example-ipv4-topology does not contain the string
-    ${response}=    RequestsLibrary.Get Request    ${session}    ${BGP_TOPOLOGY_URI}
+    [Arguments]    ${session}    ${string_to_check}
+    ${response} =    RequestsLibrary.GET On Session
+    ...    alias=${session}
+    ...    url=${REST_API}/${BGP_TOPOLOGY_URI}?content=nonconfig
     BuiltIn.Log    ${response.status_code}
     BuiltIn.Log    ${response.text}
     BuiltIn.Should_Not_Contain    ${response.text}    ${string_to_check}
 
 Bmp_Monitor_Precondition
     BuiltIn.Log    ${response.status_code}
     BuiltIn.Log    ${response.text}
     BuiltIn.Should_Not_Contain    ${response.text}    ${string_to_check}
 
 Bmp_Monitor_Precondition
-    [Arguments]    ${session}
     [Documentation]    Verify example-bmp-monitor presence in bmp-monitors
     [Documentation]    Verify example-bmp-monitor presence in bmp-monitors
-    &{mapping}    BuiltIn.Create_Dictionary    TOOL_IP=${TOOLS_SYSTEM_IP}
-    BuiltIn.Wait_Until_Keyword_Succeeds    6x    10s    TemplatedRequests.Get_As_Json_Templated    folder=${BGP_BMP_FEAT_DIR}    mapping=${mapping}    verify=True
+    [Arguments]    ${session}
+    &{mapping} =    BuiltIn.Create_Dictionary    TOOL_IP=${TOOLS_SYSTEM_IP}
+    BuiltIn.Wait_Until_Keyword_Succeeds
+    ...    6x
+    ...    10s
+    ...    TemplatedRequests.Get_As_Json_Templated
+    ...    folder=${BGP_BMP_FEAT_DIR}
+    ...    mapping=${mapping}
+    ...    verify=True
     ...    session=${session}
 
 Bmp_Monitor_Postcondition
     ...    session=${session}
 
 Bmp_Monitor_Postcondition
-    [Arguments]    ${session}
     [Documentation]    Verifies if example-bmp-monitor data contains one peer.
     [Documentation]    Verifies if example-bmp-monitor data contains one peer.
-    ${routes_line} =    CompareStream.Set_Variable_If_At_Least_Neon    ${NEW_IPV4_ROUTES_LINE}    ${OLD_IPV4_ROUTES_LINE}
-    &{mapping}    BuiltIn.Create_Dictionary    TOOL_IP=${TOOLS_SYSTEM_IP}    ROUTES_LINE=${routes_line}
-    ${output}    BuiltIn.Wait_Until_Keyword_Succeeds    10x    5s    TemplatedRequests.Get_As_Json_Templated    folder=${BGP_BMP_DIR}    mapping=${mapping}
-    ...    session=${session}    verify=True
+    [Arguments]    ${session}
+    &{mapping} =    BuiltIn.Create_Dictionary    TOOL_IP=${TOOLS_SYSTEM_IP}
+    ${output} =    BuiltIn.Wait_Until_Keyword_Succeeds
+    ...    10x
+    ...    5s
+    ...    TemplatedRequests.Get_As_Json_Templated
+    ...    folder=${BGP_BMP_DIR}
+    ...    mapping=${mapping}
+    ...    session=${session}
+    ...    verify=True
     BuiltIn.Log    ${output}
 
 Odl_To_Play_Template
     BuiltIn.Log    ${output}
 
 Odl_To_Play_Template
@@ -343,34 +383,61 @@ Odl_To_Play_Template
     ${announce_hex} =    String.Remove_String    ${announce_hex}    \n
     ${withdraw_hex} =    OperatingSystem.Get_File    ${dir}/${totest}/withdraw_${totest}.hex
     ${withdraw_hex} =    String.Remove_String    ${withdraw_hex}    \n
     ${announce_hex} =    String.Remove_String    ${announce_hex}    \n
     ${withdraw_hex} =    OperatingSystem.Get_File    ${dir}/${totest}/withdraw_${totest}.hex
     ${withdraw_hex} =    String.Remove_String    ${withdraw_hex}    \n
-    BuiltIn.Run_Keyword_If    '${remove}' == 'True'    BgpRpcClient.play_clean
+    IF    '${remove}' == 'True'    BgpRpcClient.play_clean
     TemplatedRequests.Post_As_Xml_Templated    ${dir}/${totest}/app    mapping=${APP_PEER}    session=${CONFIG_SESSION}
     TemplatedRequests.Post_As_Xml_Templated    ${dir}/${totest}/app    mapping=${APP_PEER}    session=${CONFIG_SESSION}
-    ${update}    BuiltIn.Wait_Until_Keyword_Succeeds    3x    2s    Get_Update_Message
+    ${update}    BuiltIn.Wait_Until_Keyword_Succeeds    3x    2s    Get_Update_Message
     Verify_Two_Hex_Messages_Are_Equal    ${update}    ${announce_hex}
     BgpRpcClient.play_clean
     Remove_Configured_Routes    ${totest}    ${dir}
     Verify_Two_Hex_Messages_Are_Equal    ${update}    ${announce_hex}
     BgpRpcClient.play_clean
     Remove_Configured_Routes    ${totest}    ${dir}
-    ${update}    BuiltIn.Wait_Until_Keyword_Succeeds    3x    2s    Get_Update_Message
+    ${update}    BuiltIn.Wait_Until_Keyword_Succeeds    3x    2s    Get_Update_Message
     Verify_Two_Hex_Messages_Are_Equal    ${update}    ${withdraw_hex}
     [Teardown]    Remove_Configured_Routes    ${totest}    ${dir}
 
 Play_To_Odl_Template
     [Arguments]    ${totest}    ${dir}    ${ipv}=ipv4
     Verify_Two_Hex_Messages_Are_Equal    ${update}    ${withdraw_hex}
     [Teardown]    Remove_Configured_Routes    ${totest}    ${dir}
 
 Play_To_Odl_Template
     [Arguments]    ${totest}    ${dir}    ${ipv}=ipv4
-    ${as_path} =    CompareStream.Set_Variable_If_At_Least_Neon    ${NEW_AS_PATH}    ${OLD_AS_PATH}
-    &{adj_rib_in}    BuiltIn.Create_Dictionary    PATH=peer/bgp:%2F%2F${TOOLS_SYSTEM_IP}/adj-rib-in    BGP_RIB=${RIB_NAME}    AS_PATH=${as_path}
-    &{effective_rib_in}    BuiltIn.Create_Dictionary    PATH=peer/bgp:%2F%2F${TOOLS_SYSTEM_IP}/effective-rib-in    BGP_RIB=${RIB_NAME}    AS_PATH=${as_path}
-    &{loc_rib}    BuiltIn.Create_Dictionary    PATH=loc-rib    BGP_RIB=${RIB_NAME}    AS_PATH=${as_path}
+    &{adj_rib_in} =    BuiltIn.Create_Dictionary
+    ...    PATH=peer\=bgp:%2F%2F${TOOLS_SYSTEM_IP}/adj-rib-in
+    ...    BGP_RIB=${RIB_NAME}
+    &{effective_rib_in} =    BuiltIn.Create_Dictionary
+    ...    PATH=peer\=bgp:%2F%2F${TOOLS_SYSTEM_IP}/effective-rib-in
+    ...    BGP_RIB=${RIB_NAME}
+    &{loc_rib} =    BuiltIn.Create_Dictionary    PATH=loc-rib    BGP_RIB=${RIB_NAME}
     ${announce_hex} =    OperatingSystem.Get_File    ${dir}/${totest}/announce_${totest}.hex
     ${withdraw_hex} =    OperatingSystem.Get_File    ${dir}/${totest}/withdraw_${totest}.hex
     BgpRpcClient.play_clean
     BgpRpcClient.play_send    ${announce_hex}
     ${announce_hex} =    OperatingSystem.Get_File    ${dir}/${totest}/announce_${totest}.hex
     ${withdraw_hex} =    OperatingSystem.Get_File    ${dir}/${totest}/withdraw_${totest}.hex
     BgpRpcClient.play_clean
     BgpRpcClient.play_send    ${announce_hex}
-    BuiltIn.Wait_Until_Keyword_Succeeds    3x    2s    TemplatedRequests.Get_As_Json_Templated    ${dir}/${totest}/rib    mapping=${adj_rib_in}    session=${CONFIG_SESSION}
+    BuiltIn.Wait_Until_Keyword_Succeeds
+    ...    3x
+    ...    2s
+    ...    TemplatedRequests.Get_As_Json_Templated
+    ...    ${dir}/${totest}/rib
+    ...    mapping=${adj_rib_in}
+    ...    session=${CONFIG_SESSION}
     ...    verify=True
     ...    verify=True
-    BuiltIn.Wait_Until_Keyword_Succeeds    3x    2s    TemplatedRequests.Get_As_Json_Templated    ${dir}/${totest}/rib    mapping=${effective_rib_in}    session=${CONFIG_SESSION}
+    BuiltIn.Wait_Until_Keyword_Succeeds
+    ...    3x
+    ...    2s
+    ...    TemplatedRequests.Get_As_Json_Templated
+    ...    ${dir}/${totest}/rib
+    ...    mapping=${effective_rib_in}
+    ...    session=${CONFIG_SESSION}
     ...    verify=True
     ...    verify=True
-    BuiltIn.Wait_Until_Keyword_Succeeds    3x    2s    TemplatedRequests.Get_As_Json_Templated    ${dir}/${totest}/rib    mapping=${loc_rib}    session=${CONFIG_SESSION}
+    BuiltIn.Wait_Until_Keyword_Succeeds
+    ...    3x
+    ...    2s
+    ...    TemplatedRequests.Get_As_Json_Templated
+    ...    ${dir}/${totest}/rib
+    ...    mapping=${loc_rib}
+    ...    session=${CONFIG_SESSION}
     ...    verify=True
     BgpRpcClient.play_send    ${withdraw_hex}
     ...    verify=True
     BgpRpcClient.play_send    ${withdraw_hex}
-    BuiltIn.Wait_Until_Keyword_Succeeds    3x    2s    TemplatedRequests.Get_As_Json_Templated    ${dir}/empty_routes/${ipv}    mapping=${loc_rib}    session=${CONFIG_SESSION}
+    BuiltIn.Wait_Until_Keyword_Succeeds
+    ...    3x
+    ...    2s
+    ...    TemplatedRequests.Get_As_Json_Templated
+    ...    ${dir}/empty_routes/${ipv}
+    ...    mapping=${loc_rib}
+    ...    session=${CONFIG_SESSION}
     ...    verify=True
     [Teardown]    BgpRpcClient.play_send    ${withdraw_hex}
 
     ...    verify=True
     [Teardown]    BgpRpcClient.play_send    ${withdraw_hex}
 
@@ -379,43 +446,50 @@ Play_To_Odl_Non_Removal_Template
     ${announce_hex} =    OperatingSystem.Get_File    ${dir}/${totest}/announce_${totest}.hex
     BgpRpcClient.play_clean
     BgpRpcClient.play_send    ${announce_hex}
     ${announce_hex} =    OperatingSystem.Get_File    ${dir}/${totest}/announce_${totest}.hex
     BgpRpcClient.play_clean
     BgpRpcClient.play_send    ${announce_hex}
-    ${as_path} =    CompareStream.Set_Variable_If_At_Least_Neon    ${NEW_AS_PATH}    ${OLD_AS_PATH}
-    &{loc_rib}    BuiltIn.Create_Dictionary    PATH=loc-rib    BGP_RIB=${RIB_NAME}    AS_PATH=${as_path}
-    BuiltIn.Wait_Until_Keyword_Succeeds    3x    2s    TemplatedRequests.Get_As_Json_Templated    ${dir}/${totest}/rib    mapping=${loc_rib}    session=${CONFIG_SESSION}
+    &{loc_rib} =    BuiltIn.Create_Dictionary    PATH=loc-rib    BGP_RIB=${RIB_NAME}
+    BuiltIn.Wait_Until_Keyword_Succeeds
+    ...    3x
+    ...    2s
+    ...    TemplatedRequests.Get_As_Json_Templated
+    ...    ${dir}/${totest}/rib
+    ...    mapping=${loc_rib}
+    ...    session=${CONFIG_SESSION}
     ...    verify=True
 
 Get_Update_Message
     [Documentation]    Returns hex update message.
     ${update} =    BgpRpcClient.play_get
     BuiltIn.Should_Not_Be_Equal    ${update}    ${Empty}
     ...    verify=True
 
 Get_Update_Message
     [Documentation]    Returns hex update message.
     ${update} =    BgpRpcClient.play_get
     BuiltIn.Should_Not_Be_Equal    ${update}    ${Empty}
-    [Return]    ${update}
+    RETURN    ${update}
 
 Remove_Configured_Routes
 
 Remove_Configured_Routes
-    [Arguments]    ${totest}    ${dir}
     [Documentation]    Removes the route if present.
     [Documentation]    Removes the route if present.
-    BuiltIn.Run_Keyword_And_Ignore_Error    TemplatedRequests.Delete_Templated    ${dir}/${totest}/app    mapping=${APP_PEER}    session=${CONFIG_SESSION}
+    [Arguments]    ${totest}    ${dir}
+    BuiltIn.Run_Keyword_And_Ignore_Error
+    ...    TemplatedRequests.Delete_Templated
+    ...    ${dir}/${totest}/app
+    ...    mapping=${APP_PEER}
+    ...    session=${CONFIG_SESSION}
 
 Verify_Two_Hex_Messages_Are_Equal
 
 Verify_Two_Hex_Messages_Are_Equal
-    [Arguments]    ${hex_1}    ${hex_2}
     [Documentation]    Verifies two hex messages are equal even in case, their arguments are misplaced.
     ...    Compares length of the hex messages and sums hex messages arguments as integers and compares results.
     [Documentation]    Verifies two hex messages are equal even in case, their arguments are misplaced.
     ...    Compares length of the hex messages and sums hex messages arguments as integers and compares results.
+    [Arguments]    ${hex_1}    ${hex_2}
     ${len_1} =    BuiltIn.Get_Length    ${hex_1}
     ${len_2} =    BuiltIn.Get_Length    ${hex_2}
     BuiltIn.Should_Be_Equal    ${len_1}    ${len_2}
     ${len_1} =    BuiltIn.Get_Length    ${hex_1}
     ${len_2} =    BuiltIn.Get_Length    ${hex_2}
     BuiltIn.Should_Be_Equal    ${len_1}    ${len_2}
-    ${sum_1} =    Sum_Hex_Message_Arguments_To_Integer    ${hex_1}
-    ${sum_2} =    Sum_Hex_Message_Arguments_To_Integer    ${hex_2}
+    ${sum_1} =    BgpRpcClient.Sum_Hex_Message    ${hex_1}
+    ${sum_2} =    BgpRpcClient.Sum_Hex_Message    ${hex_2}
     BuiltIn.Should_Be_Equal    ${sum_1}    ${sum_2}
 
     BuiltIn.Should_Be_Equal    ${sum_1}    ${sum_2}
 
-Sum_Hex_Message_Arguments_To_Integer
-    [Arguments]    ${hex_string}
-    [Documentation]    Converts hex message arguments to integers and sums them up and returns the sum.
-    ${final_sum} =    BuiltIn.Evaluate    sum(map(lambda x: int(x, 16), re.compile('[a-f\d]{2}').findall('${hex_string}'[32:])))    modules=re
-    [Return]    ${final_sum}
-
 Check BGP VPNv4 Nbr On ODL
 Check BGP VPNv4 Nbr On ODL
-    [Arguments]    ${dcgw_count}    ${flag}=True    ${start}=${START_VALUE}
     [Documentation]    Check all BGP VPNv4 neighbor on ODL
     [Documentation]    Check all BGP VPNv4 neighbor on ODL
+    [Arguments]    ${dcgw_count}    ${flag}=True    ${start}=${START_VALUE}
     ${output} =    KarafKeywords.Issue Command On Karaf Console    ${DISPLAY_VPN4_ALL}
     ${output} =    KarafKeywords.Issue Command On Karaf Console    ${DISPLAY_VPN4_ALL}
-    : FOR    ${index}    IN RANGE    ${start}    ${dcgw_count}
-    \    BuiltIn.Run Keyword If    ${flag}==True    BuiltIn.Should Contain    ${output}    ${DCGW_IP_LIST[${index}]}
-    \    ...    ELSE    BuiltIn.Should Not Contain    ${output}    ${DCGW_IP_LIST[${index}]}
+    FOR    ${index}    IN RANGE    ${start}    ${dcgw_count}
+        IF    ${flag}==True
+            BuiltIn.Should Contain    ${output}    ${DCGW_IP_LIST[${index}]}
+        ELSE
+            BuiltIn.Should Not Contain    ${output}    ${DCGW_IP_LIST[${index}]}
+        END
+    END