Migrate BgpOperations.robot
[integration/test.git] / csit / libraries / BgpOperations.robot
index e44c3367383bc4247067a630734582a86319c00f..1a9591cb10096c57c2d5301fc008f5625bd2e40d 100644 (file)
@@ -1,35 +1,34 @@
 *** 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 ***
-${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
-${VPNV4_ADDR_FAMILY}    vpnv4
-${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
-    [Arguments]    ${odl_ip}
     [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}
@@ -39,16 +38,16 @@ Start Quagga Processes On ODL
     Close Connection
 
 Restart BGP Processes On ODL
-    [Arguments]    ${odl_ip}
     [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
-    [Arguments]    ${dcgw_ip}
     [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}
@@ -67,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
-    [Arguments]    ${dcgw_ip}
     [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
-    [Arguments]    ${node_ip}
     [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
-    [Arguments]    ${odl_ip}    ${rd}
     [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
@@ -91,9 +90,9 @@ Show Quagga Configuration On ODL
     Close Connection
 
 Create Quagga Telnet Session
-    [Arguments]    ${ip}    ${user}    ${password}
     [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:
@@ -103,17 +102,17 @@ Create 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.
+    [Arguments]    ${command}
     SSHLibrary.Write    ${command}
     ${output} =    SSHLibrary.Read
     Log    ${output}
-    [Return]    ${output}
+    RETURN    ${output}
 
 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}
-    [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}
@@ -134,8 +133,8 @@ Configure BGP And Add Neighbor 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
+    [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}
@@ -148,26 +147,26 @@ Add Loopback Interface On DCGW
     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.
+    [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
-    [Return]    ${output}
+    RETURN    ${output}
 
 Verify BGP Neighbor Status On Quagga
-    [Arguments]    ${dcgw_ip}    ${neighbor_ip}
     [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
-    [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
+    [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}
@@ -175,17 +174,23 @@ Setup BGP Peering On ODL
     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.
-    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
-    [Arguments]    ${dcgw_ip}    ${rd}    ${ip_list}
     [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}
     FOR    ${ip}    IN    @{ip_list}
@@ -193,19 +198,19 @@ Verify Routes On Quagga
     END
 
 Delete BGP Config On Quagga
-    [Arguments]    ${dcgw_ip}    ${bgp_id}    ${user}=bgpd    ${password}=sdncbgpc
     [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
-    [Return]    ${output}
+    RETURN    ${output}
 
 Create L3VPN on DCGW
-    [Arguments]    ${dcgw_ip}    ${as_id}    ${vpn_name}    ${rd}
     [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}
@@ -216,8 +221,8 @@ Create 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
+    [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}
@@ -227,15 +232,15 @@ Delete 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
+    [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
-    [Arguments]    ${dcgw_ip}    ${rd}    ${network_ip}    ${label}
     [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}
@@ -244,47 +249,59 @@ Add Routes On DCGW
     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
-    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
-    [Arguments]    &{Kwargs}
     [Documentation]    Associate the created L3VPN to a network-id received as dictionary argument
-    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
+    [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
-    [Arguments]    ${odl_session}
     [Documentation]    Get bgp configuration
-    ${resp} =    RequestsLibrary.Get Request    ${odl_session}    ${CONFIG_API}/ebgp:bgp/
+    [Arguments]    ${odl_session}
+    ${resp} =    RequestsLibrary.GET On Session    alias=${odl_session}    url=${CONFIG_API}/ebgp:bgp/
     Log    ${resp.text}
-    [Return]    ${resp.text}
+    RETURN    ${resp.text}
 
 Delete BGP Configuration On ODL
-    [Arguments]    ${odl_session}
     [Documentation]    Delete BGP
-    ${resp} =    RequestsLibrary.Delete Request    ${odl_session}    ${CONFIG_API}/ebgp:bgp/
+    [Arguments]    ${odl_session}
+    ${resp} =    RequestsLibrary.DELETE On Session
+    ...    alias=${odl_session}
+    ...    url=${CONFIG_API}/ebgp:bgp/
+    ...    expected_status=200
     Log    ${resp.text}
-    Should Be Equal As Strings    ${resp.status_code}    200
-    [Return]    ${resp.text}
+    RETURN    ${resp.text}
 
 Create External Tunnel Endpoint Configuration
-    [Arguments]    &{Kwargs}
     [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
-    [Arguments]    &{Kwargs}
     [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.text}
-    [Return]    ${resp.text}
+    [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.
@@ -294,51 +311,70 @@ Teardown_Everything
     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
-    ${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
-    [Arguments]    ${session}    ${substr}    ${error_message}=${JSONKEYSTR} found, but not expected.
     [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
-    [Arguments]    ${session}    ${string_to_check}=${EMPTY}
     [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
-    [Arguments]    ${session}    ${string_to_check}
     [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
-    [Arguments]    ${session}
     [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
-    [Arguments]    ${session}
     [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
@@ -347,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
-    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}
-    ${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}
-    ${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
-    ${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}
-    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
-    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
-    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}
-    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}
 
@@ -383,26 +446,35 @@ Play_To_Odl_Non_Removal_Template
     ${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}
-    [Return]    ${update}
+    RETURN    ${update}
 
 Remove_Configured_Routes
-    [Arguments]    ${totest}    ${dir}
     [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
-    [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.
+    [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}
@@ -411,10 +483,13 @@ Verify_Two_Hex_Messages_Are_Equal
     BuiltIn.Should_Be_Equal    ${sum_1}    ${sum_2}
 
 Check BGP VPNv4 Nbr On ODL
-    [Arguments]    ${dcgw_count}    ${flag}=True    ${start}=${START_VALUE}
     [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}
     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}]}
+        IF    ${flag}==True
+            BuiltIn.Should Contain    ${output}    ${DCGW_IP_LIST[${index}]}
+        ELSE
+            BuiltIn.Should Not Contain    ${output}    ${DCGW_IP_LIST[${index}]}
+        END
     END