Update Robot Framework format - step 3
[integration/test.git] / csit / suites / bgpcep / bgpingest / bgp_app_peer_prefixcount.robot
index 8e679019066b74a3f6475ff909918a2a446bf148..2099ceee6e8535dba6aa410eb76322d2d87c9c66 100644 (file)
@@ -1,79 +1,86 @@
 *** Settings ***
-Documentation     BGP performance of ingesting from 1 BGP application peer
+Documentation       BGP performance of ingesting from 1 BGP application peer
 ...
-...               Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
+...                 Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
 ...
-...               This program and the accompanying materials are made available under the
-...               terms of the Eclipse Public License v1.0 which accompanies this distribution,
-...               and is available at http://www.eclipse.org/legal/epl-v10.html
+...                 This program and the accompanying materials are made available under the
+...                 terms of the Eclipse Public License v1.0 which accompanies this distribution,
+...                 and is available at http://www.eclipse.org/legal/epl-v10.html
 ...
-...               Test suite performs basic BGP performance test cases for
-...               BGP application peer. BGP application peer introduces routes -
-...               using restconf - in two steps:
-...               1. introduces the ${PREFILL} number of routes in one POST request
-...               2. POSTs the rest of routes (up to the ${COUNT} number) one by one
-...               Test suite checks that the prefixes are propagated to
-...               IPv4 topology and announced to BGP peer via updates. Test case
-...               where the BGP peer is disconnected and reconnected and all routes
-...               are deleted by BGP application peer are performed as well.
-...               Brief description how to configure BGP application peer and
-...               how to use restconf application peer interface:
-...               https://wiki.opendaylight.org/view/BGP_LS_PCEP:User_Guide#BGP_Application_Peer
-...               https://wiki.opendaylight.org/view/BGP_LS_PCEP:Programmer_Guide#BGP
-...               http://docs.opendaylight.org/en/stable-boron/user-guide/bgp-user-guide.html#bgp-peering
-...               http://docs.opendaylight.org/en/stable-boron/user-guide/bgp-user-guide.html#application-peer-configuration
+...                 Test suite performs basic BGP performance test cases for
+...                 BGP application peer. BGP application peer introduces routes -
+...                 using restconf - in two steps:
+...                 1. introduces the ${PREFILL} number of routes in one POST request
+...                 2. POSTs the rest of routes (up to the ${COUNT} number) one by one
+...                 Test suite checks that the prefixes are propagated to
+...                 IPv4 topology and announced to BGP peer via updates. Test case
+...                 where the BGP peer is disconnected and reconnected and all routes
+...                 are deleted by BGP application peer are performed as well.
+...                 Brief description how to configure BGP application peer and
+...                 how to use restconf application peer interface:
+...                 https://wiki.opendaylight.org/view/BGP_LS_PCEP:User_Guide#BGP_Application_Peer
+...                 https://wiki.opendaylight.org/view/BGP_LS_PCEP:Programmer_Guide#BGP
+...                 http://docs.opendaylight.org/en/stable-boron/user-guide/bgp-user-guide.html#bgp-peering
+...                 http://docs.opendaylight.org/en/stable-boron/user-guide/bgp-user-guide.html#application-peer-configuration
 ...
-...               The bgp peer configuration depends on the ${ODL_STREAM}. For "boron" and older streams it uses netconf connector and
-...               for carbon and further it configures peer via openconfig.
-...
-...               Reported bugs:
-...               Bug 4689 - Not a reasonable duration of 1M prefix introduction from BGP application peer via restconf
-...               Bug 4791 - BGPSessionImpl: Failed to send message Update logged even all UPDATE mesages received by iBGP peer
-Suite Setup       Setup_Everything
-Suite Teardown    Teardown_Everything
-Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
-Test Teardown     SetupUtils.Teardown_Test_Show_Bugs_And_Start_Fast_Failing_If_Test_Failed
-Force Tags        critical
-Library           SSHLibrary    timeout=10s
-Library           RequestsLibrary
-Variables         ${CURDIR}/../../../variables/Variables.py
-Resource          ${CURDIR}/../../../libraries/BGPcliKeywords.robot
-Resource          ${CURDIR}/../../../libraries/BGPSpeaker.robot
-Resource          ${CURDIR}/../../../libraries/FailFast.robot
-Resource          ${CURDIR}/../../../libraries/KillPythonTool.robot
-Resource          ${CURDIR}/../../../libraries/PrefixCounting.robot
-Resource          ${CURDIR}/../../../libraries/SetupUtils.robot
-Resource          ${CURDIR}/../../../libraries/SSHKeywords.robot
-Resource          ${CURDIR}/../../../libraries/TemplatedRequests.robot
+...                 Reported bugs:
+...                 Bug 4689 - Not a reasonable duration of 1M prefix introduction from BGP application peer via restconf
+...                 Bug 4791 - BGPSessionImpl: Failed to send message Update logged even all UPDATE mesages received by iBGP peer
+
+Library             SSHLibrary    timeout=10s
+Library             RequestsLibrary
+Resource            ../../../libraries/BGPcliKeywords.robot
+Resource            ../../../libraries/KarafKeywords.robot
+Resource            ../../../libraries/KillPythonTool.robot
+Resource            ../../../libraries/PrefixCounting.robot
+Resource            ../../../libraries/SetupUtils.robot
+Resource            ../../../libraries/SSHKeywords.robot
+Resource            ../../../libraries/TemplatedRequests.robot
+Resource            ../../../libraries/Utils.robot
+Resource            ../../../variables/Variables.robot
+
+Suite Setup         Setup_Everything
+Suite Teardown      Teardown_Everything
+Test Setup          SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+Test Teardown       SetupUtils.Teardown_Test_Show_Bugs_And_Start_Fast_Failing_If_Test_Failed
+
+Force Tags          critical
+
 
 *** Variables ***
-${BGP_VARIABLES_FOLDER}    ${CURDIR}/../../../variables/bgpuser/
-${HOLDTIME}       180
-${HOLDTIME_APP_PEER_PREFIX_COUNT}    ${HOLDTIME}
-${COUNT}          200000
-${PREFILL}        100000
-${COUNT_APP_PEER_PREFIX_COUNT}    ${COUNT}
-${CHECK_PERIOD}    1
-${CHECK_PERIOD_APP_PEER_PREFIX_COUNT}    ${CHECK_PERIOD}
-${REPETITIONS_APP_PEER_PREFIX_COUNT}    1
-${BGP_PEER_LOG_LEVEL}    info
-${BGP_APP_PEER_LOG_LEVEL}    info
-${CONTROLLER_LOG_LEVEL}    INFO
-${CONTROLLER_BGP_LOG_LEVEL}    DEFAULT
-${BGP_PEER_COMMAND}    python play.py --amount 0 --myip=${TOOLS_SYSTEM_IP} --myport=${BGP_TOOL_PORT} --peerip=${ODL_SYSTEM_IP} --peerport=${ODL_BGP_PORT} --${BGP_PEER_LOG_LEVEL}
-${BGP_PEER_OPTIONS}    &>bgp_peer.log
-${BGP_APP_PEER_ID}    10.0.0.10
-${BGP_APP_PEER_INITIAL_COMMAND}    python bgp_app_peer.py --host ${ODL_SYSTEM_IP} --port ${RESTCONFPORT} --command post --count ${PREFILL} --prefix 8.0.0.0 --prefixlen 28 --${BGP_APP_PEER_LOG_LEVEL} --stream=${ODL_STREAM}
-${BGP_APP_PEER_PUT_COMMAND}    python bgp_app_peer.py --host ${ODL_SYSTEM_IP} --port ${RESTCONFPORT} --command put --count ${PREFILL} --prefix 8.0.0.0 --prefixlen 28 --${BGP_APP_PEER_LOG_LEVEL} --stream=${ODL_STREAM}
-${BGP_APP_PEER_DELETE_ALL_COMMAND}    python bgp_app_peer.py --host ${ODL_SYSTEM_IP} --port ${RESTCONFPORT} --command delete-all --${BGP_APP_PEER_LOG_LEVEL} --stream=${ODL_STREAM}
-${BGP_APP_PEER_GET_COMMAND}    python bgp_app_peer.py --host ${ODL_SYSTEM_IP} --port ${RESTCONFPORT} --command get --${BGP_APP_PEER_LOG_LEVEL} --stream=${ODL_STREAM}
-${BGP_APP_PEER_OPTIONS}    &>bgp_app_peer.log
-${TEST_DURATION_MULTIPLIER}    30
-${last_prefix_count}    -1
-${DEVICE_NAME}    controller-config
-${BGP_PEER_NAME}    example-bgp-peer
-${RIB_INSTANCE}    example-bgp-rib
-${PROTOCOL_OPENCONFIG}    ${RIB_INSTANCE}
+${BGP_VARIABLES_FOLDER}                     ${CURDIR}/../../../variables/bgpuser/
+${HOLDTIME}                                 180
+${HOLDTIME_APP_PEER_PREFIX_COUNT}           ${HOLDTIME}
+${COUNT}                                    180000
+${PREFILL}                                  100000
+${COUNT_APP_PEER_PREFIX_COUNT}              ${COUNT}
+${CHECK_PERIOD}                             10
+${CHECK_PERIOD_APP_PEER_PREFIX_COUNT}       ${CHECK_PERIOD}
+${REPETITIONS_APP_PEER_PREFIX_COUNT}        1
+${BGP_PEER_LOG_LEVEL}                       info
+${BGP_APP_PEER_LOG_LEVEL}                   info
+${ODL_LOG_LEVEL}                            INFO
+${ODL_BGP_LOG_LEVEL}                        DEFAULT
+${BGP_PEER_COMMAND}
+...                                         python3 play.py --amount 0 --myip=${TOOLS_SYSTEM_IP} --myport=${BGP_TOOL_PORT} --peerip=${ODL_SYSTEM_IP} --peerport=${ODL_BGP_PORT} --${BGP_PEER_LOG_LEVEL}
+${BGP_PEER_OPTIONS}                         &>bgp_peer.log
+${BGP_APP_PEER_ID}                          10.0.0.10
+${BGP_APP_PEER_INITIAL_COMMAND}
+...                                         python3 bgp_app_peer.py --host ${ODL_SYSTEM_IP} --port ${RESTCONFPORT} --command post --count ${PREFILL} --prefix 8.0.0.0 --prefixlen 28 --${BGP_APP_PEER_LOG_LEVEL} --stream=${ODL_STREAM}
+${BGP_APP_PEER_PUT_COMMAND}
+...                                         python3 bgp_app_peer.py --host ${ODL_SYSTEM_IP} --port ${RESTCONFPORT} --command put --count ${PREFILL} --prefix 8.0.0.0 --prefixlen 28 --${BGP_APP_PEER_LOG_LEVEL} --stream=${ODL_STREAM}
+${BGP_APP_PEER_DELETE_ALL_COMMAND}
+...                                         python3 bgp_app_peer.py --host ${ODL_SYSTEM_IP} --port ${RESTCONFPORT} --command delete-all --${BGP_APP_PEER_LOG_LEVEL} --stream=${ODL_STREAM}
+${BGP_APP_PEER_GET_COMMAND}
+...                                         python3 bgp_app_peer.py --host ${ODL_SYSTEM_IP} --port ${RESTCONFPORT} --command get --${BGP_APP_PEER_LOG_LEVEL} --stream=${ODL_STREAM}
+${BGP_APP_PEER_OPTIONS}                     &>bgp_app_peer.log
+${TEST_DURATION_MULTIPLIER}                 30
+${last_prefix_count}                        -1
+${DEVICE_NAME}                              controller-config
+${BGP_PEER_NAME}                            example-bgp-peer
+${RIB_INSTANCE}                             example-bgp-rib
+${PROTOCOL_OPENCONFIG}                      ${RIB_INSTANCE}
+
 
 *** Test Cases ***
 Check_For_Empty_Ipv4_Topology_Before_Starting
@@ -82,80 +89,126 @@ Check_For_Empty_Ipv4_Topology_Before_Starting
 
 Reconfigure_ODL_To_Accept_Connection
     [Documentation]    Configure BGP peer module with initiate-connection set to false.
-    &{mapping}    Create Dictionary    DEVICE_NAME=${DEVICE_NAME}    BGP_NAME=${BGP_PEER_NAME}    IP=${TOOLS_SYSTEM_IP}    HOLDTIME=${HOLDTIME_APP_PEER_PREFIX_COUNT}    PEER_PORT=${BGP_TOOL_PORT}
-    ...    INITIATE=false    BGP_RIB=${RIB_INSTANCE}    PASSIVE_MODE=true    BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG}    RIB_INSTANCE_NAME=${RIB_INSTANCE}
+    &{mapping}    Create Dictionary
+    ...    DEVICE_NAME=${DEVICE_NAME}
+    ...    BGP_NAME=${BGP_PEER_NAME}
+    ...    IP=${TOOLS_SYSTEM_IP}
+    ...    HOLDTIME=${HOLDTIME_APP_PEER_PREFIX_COUNT}
+    ...    PEER_PORT=${BGP_TOOL_PORT}
+    ...    INITIATE=false
+    ...    BGP_RIB=${RIB_INSTANCE}
+    ...    PASSIVE_MODE=true
+    ...    BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG}
+    ...    RIB_INSTANCE_NAME=${RIB_INSTANCE}
     TemplatedRequests.Put_As_Xml_Templated    ${BGP_VARIABLES_FOLDER}${/}bgp_peer    mapping=${mapping}
 
 Reconfigure_ODL_To_Accept_BGP_Application_Peer
     [Documentation]    Configure BGP application peer module.
-    &{mapping}    Create Dictionary    DEVICE_NAME=${DEVICE_NAME}    NAME=example-bgp-peer-app    RIB_INSTANCE_NAME=${RIB_INSTANCE}    IP=${BGP_APP_PEER_ID}    BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG}
+    &{mapping}    Create Dictionary
+    ...    DEVICE_NAME=${DEVICE_NAME}
+    ...    NAME=example-bgp-peer-app
+    ...    RIB_INSTANCE_NAME=${RIB_INSTANCE}
+    ...    IP=${BGP_APP_PEER_ID}
+    ...    BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG}
     TemplatedRequests.Put_As_Xml_Templated    ${BGP_VARIABLES_FOLDER}${/}bgp_application_peer    mapping=${mapping}
 
 Connect_BGP_Peer
     [Documentation]    Start BGP peer tool
     SSHLibrary.Switch Connection    bgp_peer_console
-    Start_Console_Tool    ${BGP_PEER_COMMAND}    ${BGP_PEER_OPTIONS}
-    Read_And_Fail_If_Prompt_Is_Seen
+    BGPcliKeywords.Start_Console_Tool    ${BGP_PEER_COMMAND}    ${BGP_PEER_OPTIONS}
+    BGPcliKeywords.Read_And_Fail_If_Prompt_Is_Seen
 
 BGP_Application_Peer_Prefill_Routes
     [Documentation]    Start BGP application peer tool and prefill routes.
     SSHLibrary.Switch Connection    bgp_app_peer_console
-    Start_Console_Tool    ${BGP_APP_PEER_INITIAL_COMMAND}    ${BGP_APP_PEER_OPTIONS}
-    Wait_Until_Console_Tool_Finish    ${bgp_filling_timeout}
-    Store_File_To_Workspace    bgp_app_peer.log    bgp_app_peer_prefill.log
+    BGPcliKeywords.Start_Console_Tool    ${BGP_APP_PEER_INITIAL_COMMAND} ${script_uri_opt}    ${BGP_APP_PEER_OPTIONS}
+    BGPcliKeywords.Wait_Until_Console_Tool_Finish    ${bgp_filling_timeout}
+    BGPcliKeywords.Store_File_To_Workspace    bgp_app_peer.log    bgp_app_peer_prefill.log
 
 Wait_For_Ipv4_Topology_Is_Prefilled
     [Documentation]    Wait until example-ipv4-topology reaches the target prfix count.
-    BuiltIn.Wait Until Keyword Succeeds    ${bgp_filling_timeout}    10s    PrefixCounting.Check_Ipv4_Topology_Count    ${PREFILL}
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    ${bgp_filling_timeout}
+    ...    10s
+    ...    PrefixCounting.Check_Ipv4_Topology_Count
+    ...    ${PREFILL}
 
 Check_Bgp_Peer_Updates_For_Prefilled_Routes
     [Documentation]    Count the routes introduced by updates.
     [Setup]    SetupUtils.Setup_Test_With_Logging_And_Fast_Failing
-    BuiltIn.Wait Until Keyword Succeeds    ${bgp_filling_timeout}    1s    Check_File_For_Word_Count    bgp_peer.log    total_received_nlri_prefix_counter: ${PREFILL}    2
+    ${count}    BuiltIn.Wait Until Keyword Succeeds
+    ...    ${bgp_filling_timeout}
+    ...    3s
+    ...    Check_For_String_In_File
+    ...    bgp_peer.log
+    ...    total_received_nlri_prefix_counter: ${PREFILL}
+    BuiltIn.Log    ${count}
 
 BGP_Application_Peer_Introduce_Single_Routes
     [Documentation]    Start BGP application peer tool and introduce routes.
     SSHLibrary.Switch Connection    bgp_app_peer_console
-    Start_Console_Tool    python bgp_app_peer.py --host ${ODL_SYSTEM_IP} --port ${RESTCONFPORT} --command add --count ${remaining_prefixes} --prefix 12.0.0.0 --prefixlen 28 --${BGP_APP_PEER_LOG_LEVEL} --stream=${ODL_STREAM}    ${BGP_APP_PEER_OPTIONS}
-    Wait_Until_Console_Tool_Finish    ${bgp_filling_timeout}
-    Store_File_To_Workspace    bgp_app_peer.log    bgp_app_peer_singles.log
+    BGPcliKeywords.Start_Console_Tool
+    ...    python3 bgp_app_peer.py --host ${ODL_SYSTEM_IP} --port ${RESTCONFPORT} --command add --count ${remaining_prefixes} --prefix 12.0.0.0 --prefixlen 28 --${BGP_APP_PEER_LOG_LEVEL} --stream=${ODL_STREAM} ${script_uri_opt}
+    ...    ${BGP_APP_PEER_OPTIONS}
+    BGPcliKeywords.Wait_Until_Console_Tool_Finish    ${bgp_filling_timeout}
+    BGPcliKeywords.Store_File_To_Workspace    bgp_app_peer.log    bgp_app_peer_singles.log
 
 Wait_For_Ipv4_Topology_Is_Filled
     [Documentation]    Wait until example-ipv4-topology reaches the target prfix count.
-    BuiltIn.Wait Until Keyword Succeeds    ${bgp_filling_timeout}    10s    PrefixCounting.Check_Ipv4_Topology_Count    ${COUNT_APP_PEER_PREFIX_COUNT}
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    ${bgp_filling_timeout}
+    ...    10s
+    ...    PrefixCounting.Check_Ipv4_Topology_Count
+    ...    ${COUNT_APP_PEER_PREFIX_COUNT}
 
 Check_Bgp_Peer_Updates_For_All_Routes
     [Documentation]    Count the routes introduced by updates.
     [Setup]    SetupUtils.Setup_Test_With_Logging_And_Fast_Failing
-    BuiltIn.Wait Until Keyword Succeeds    ${bgp_filling_timeout}    1s    Check_File_For_Word_Count    bgp_peer.log    total_received_nlri_prefix_counter: ${COUNT_APP_PEER_PREFIX_COUNT}    2
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    ${bgp_filling_timeout}
+    ...    3s
+    ...    Check_For_String_In_File
+    ...    bgp_peer.log
+    ...    total_received_nlri_prefix_counter: ${COUNT_APP_PEER_PREFIX_COUNT}
 
 Disconnect_BGP_Peer
     [Documentation]    Stop BGP peer tool
     SSHLibrary.Switch Connection    bgp_peer_console
-    Stop_Console_Tool
-    Store_File_To_Workspace    bgp_peer.log    bgp_peer_reconnect.log
+    BGPcliKeywords.Stop_Console_Tool
+    BGPcliKeywords.Store_File_To_Workspace    bgp_peer.log    bgp_peer_reconnect.log
 
 Reconnect_BGP_Peer
     [Documentation]    Start BGP peer tool
     SSHLibrary.Switch Connection    bgp_peer_console
-    Start_Console_Tool    ${BGP_PEER_COMMAND}    ${BGP_PEER_OPTIONS}
-    Read_And_Fail_If_Prompt_Is_Seen
+    BGPcliKeywords.Start_Console_Tool    ${BGP_PEER_COMMAND}    ${BGP_PEER_OPTIONS}
+    BGPcliKeywords.Read_And_Fail_If_Prompt_Is_Seen
 
 Check_Bgp_Peer_Updates_For_Reintroduced_Routes
     [Documentation]    Count the routes introduced by updates.
     [Setup]    SetupUtils.Setup_Test_With_Logging_And_Fast_Failing
-    BuiltIn.Wait Until Keyword Succeeds    ${bgp_filling_timeout}    1s    Check_File_For_Word_Count    bgp_peer.log    total_received_nlri_prefix_counter: ${COUNT_APP_PEER_PREFIX_COUNT}    2
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    ${bgp_filling_timeout}
+    ...    3s
+    ...    Check_For_String_In_File
+    ...    bgp_peer.log
+    ...    total_received_nlri_prefix_counter: ${COUNT_APP_PEER_PREFIX_COUNT}
 
 BGP_Application_Peer_Delete_All_Routes
     [Documentation]    Start BGP application peer tool and delete all routes.
     SSHLibrary.Switch Connection    bgp_app_peer_console
-    Start_Console_Tool    ${BGP_APP_PEER_DELETE_ALL_COMMAND}    ${BGP_APP_PEER_OPTIONS}
-    Wait_Until_Console_Tool_Finish    ${bgp_emptying_timeout}
-    Store_File_To_Workspace    bgp_app_peer.log    bgp_app_peer_delete_all.log
+    BGPcliKeywords.Start_Console_Tool
+    ...    ${BGP_APP_PEER_DELETE_ALL_COMMAND} --stream=${ODL_STREAM} ${script_uri_opt}
+    ...    ${BGP_APP_PEER_OPTIONS}
+    BGPcliKeywords.Wait_Until_Console_Tool_Finish    ${bgp_emptying_timeout}
+    BGPcliKeywords.Store_File_To_Workspace    bgp_app_peer.log    bgp_app_peer_delete_all.log
 
 Wait_For_Stable_Topology_After_Deletion
     [Documentation]    Wait until example-ipv4-topology becomes stable again.
-    PrefixCounting.Wait_For_Ipv4_Topology_Prefixes_To_Become_Stable    timeout=${bgp_emptying_timeout}    period=${CHECK_PERIOD_APP_PEER_PREFIX_COUNT}    repetitions=${REPETITIONS_APP_PEER_PREFIX_COUNT}    excluded_count=${COUNT_APP_PEER_PREFIX_COUNT}
+    PrefixCounting.Wait_For_Ipv4_Topology_Prefixes_To_Become_Stable
+    ...    timeout=${bgp_emptying_timeout}
+    ...    period=${CHECK_PERIOD_APP_PEER_PREFIX_COUNT}
+    ...    repetitions=${REPETITIONS_APP_PEER_PREFIX_COUNT}
+    ...    excluded_count=${COUNT_APP_PEER_PREFIX_COUNT}
 
 Check_For_Empty_Ipv4_Topology_After_Deleting
     [Documentation]    Example-ipv4-topology should be empty now.
@@ -164,27 +217,37 @@ Check_For_Empty_Ipv4_Topology_After_Deleting
 Check_Bgp_Peer_Updates_For_Prefix_Withdrawals
     [Documentation]    Count the routes withdrawn by updates.
     [Setup]    SetupUtils.Setup_Test_With_Logging_And_Fast_Failing
-    BuiltIn.Wait Until Keyword Succeeds    ${bgp_emptying_timeout}    1s    Check_File_For_Word_Count    bgp_peer.log    total_received_withdrawn_prefix_counter: ${COUNT_APP_PEER_PREFIX_COUNT}    2
+    BuiltIn.Wait Until Keyword Succeeds
+    ...    ${bgp_emptying_timeout}
+    ...    3s
+    ...    Check_For_String_In_File
+    ...    bgp_peer.log
+    ...    total_received_withdrawn_prefix_counter: ${COUNT_APP_PEER_PREFIX_COUNT}
 
 Stop_BGP_Peer
     [Documentation]    Stop BGP peer tool
     SSHLibrary.Switch Connection    bgp_peer_console
-    Stop_Console_Tool
-    Store_File_To_Workspace    bgp_peer.log    bgp_peer_reconnect.log
+    BGPcliKeywords.Stop_Console_Tool
+    BGPcliKeywords.Store_File_To_Workspace    bgp_peer.log    bgp_peer_reconnect.log
 
 Delete_Bgp_Peer_Configuration
     [Documentation]    Revert the BGP configuration to the original state: without any configured peers.
-    &{mapping}    BuiltIn.Create_Dictionary    DEVICE_NAME=${DEVICE_NAME}    NAME=${BGP_PEER_NAME}    IP=${TOOLS_SYSTEM_IP}    BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG}
+    &{mapping}    BuiltIn.Create_Dictionary
+    ...    DEVICE_NAME=${DEVICE_NAME}
+    ...    BGP_NAME=${BGP_PEER_NAME}
+    ...    IP=${TOOLS_SYSTEM_IP}
+    ...    BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG}
     TemplatedRequests.Delete_Templated    ${BGP_VARIABLES_FOLDER}${/}bgp_peer    mapping=${mapping}
 
 Delete_Bgp_Application_Peer_Configuration
     [Documentation]    Revert the BGP configuration to the original state: without any configured peers.
-    &{mapping}    BuiltIn.Create_Dictionary    DEVICE_NAME=${DEVICE_NAME}    NAME=example-bgp-peer-app    IP=${TOOLS_SYSTEM_IP}    BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG}
+    &{mapping}    BuiltIn.Create_Dictionary
+    ...    DEVICE_NAME=${DEVICE_NAME}
+    ...    NAME=example-bgp-peer-app
+    ...    IP=${BGP_APP_PEER_ID}
+    ...    BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG}
     TemplatedRequests.Delete_Templated    ${BGP_VARIABLES_FOLDER}${/}bgp_application_peer    mapping=${mapping}
 
-Check_Bug_4791
-    [Documentation]    Check controller's log for errors
-    Check Karaf Log File Does Not Have Messages    ${ODL_SYSTEM_IP}    Failed to send message Update
 
 *** Keywords ***
 Setup_Everything
@@ -194,7 +257,12 @@ Setup_Everything
     TemplatedRequests.Create_Default_Session
     PrefixCounting.PC_Setup
     SSHLibrary.Set_Default_Configuration    prompt=${TOOLS_SYSTEM_PROMPT}
-    RequestsLibrary.Create_Session    operational    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}${OPERATIONAL_API}    auth=${AUTH}
+    RequestsLibrary.Create_Session
+    ...    operational
+    ...    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}
+    ...    auth=${AUTH}
+    ...    timeout=125
+    ...    max_retries=0
     # TODO: Do not include slash in ${OPERATIONAL_TOPO_API}, having it typed here is more readable.
     # TODO: Alternatively, create variable in Variables which starts with http.
     # Both TODOs would probably need to update every suite relying on current Variables.
@@ -207,29 +275,42 @@ Setup_Everything
     SSHLibrary.Put_File    ${CURDIR}/../../../../tools/fastbgp/ipv4-routes-template.xml*
     # Calculate the timeout value based on how many routes are going to be pushed.
     # The offset (20) is set for keeping reasonable timeout for low COUNT values.
-    ${timeout}    BuiltIn.Evaluate    ${TEST_DURATION_MULTIPLIER} * ${COUNT_APP_PEER_PREFIX_COUNT} * 3.0 / 10000 + 20
+    ${timeout}    BuiltIn.Evaluate    ${TEST_DURATION_MULTIPLIER} * ${COUNT_APP_PEER_PREFIX_COUNT} * 3.0 / 10000 + 20
     Builtin.Set_Suite_Variable    ${bgp_filling_timeout}    ${timeout}
     Builtin.Set_Suite_Variable    ${bgp_emptying_timeout}    ${bgp_filling_timeout*3.0/4}
-    ${result}    BuiltIn.Evaluate    str(int(${COUNT_APP_PEER_PREFIX_COUNT}) - int(${PREFILL}))
+    ${result}    BuiltIn.Evaluate    str(int(${COUNT_APP_PEER_PREFIX_COUNT}) - int(${PREFILL}))
     Builtin.Set_Suite_Variable    ${remaining_prefixes}    ${result}
-    KarafKeywords.Execute_Controller_Karaf_Command_On_Background    log:set ${CONTROLLER_LOG_LEVEL}
-    KarafKeywords.Execute_Controller_Karaf_Command_On_Background    log:set ${CONTROLLER_BGP_LOG_LEVEL} org.opendaylight.bgpcep
-    KarafKeywords.Execute_Controller_Karaf_Command_On_Background    log:set ${CONTROLLER_BGP_LOG_LEVEL} org.opendaylight.protocol
+    KarafKeywords.Execute_Controller_Karaf_Command_On_Background    log:set ${ODL_LOG_LEVEL}
+    KarafKeywords.Execute_Controller_Karaf_Command_On_Background
+    ...    log:set ${ODL_BGP_LOG_LEVEL} org.opendaylight.bgpcep
+    KarafKeywords.Execute_Controller_Karaf_Command_On_Background
+    ...    log:set ${ODL_BGP_LOG_LEVEL} org.opendaylight.protocol
+    ${script_uri_opt}    Set Variable
+    ...    --uri data/bgp-rib:application-rib=${BGP_APP_PEER_ID}/tables=bgp-types%3Aipv4-address-family,bgp-types%3Aunicast-subsequent-address-family
+    BuiltIn.Set_Suite_Variable    ${script_uri_opt}
 
 Teardown_Everything
     [Documentation]    Make sure Python tool was killed and tear down imported Resources.
     SSHLibrary.Switch Connection    bgp_peer_console
     KillPythonTool.Search_And_Kill_Remote_Python    'play\.py'
     KillPythonTool.Search_And_Kill_Remote_Python    'bgp_app_peer\.py'
+    BuiltIn.Run_Keyword_And_Ignore_Error    Utils.Get_Sysstat_Statistics
     RequestsLibrary.Delete_All_Sessions
     SSHLibrary.Close_All_Connections
 
 Open_BGP_Peer_Console
     [Documentation]    Create a session for BGP peer.
     SSHLibrary.Open_Connection    ${TOOLS_SYSTEM_IP}    alias=bgp_peer_console
-    Utils.Flexible_Mininet_Login
+    SSHKeywords.Flexible_Mininet_Login
 
 Open_BGP_Aplicationp_Peer_Console
     [Documentation]    Create a session for BGP peer.
     SSHLibrary.Open_Connection    ${TOOLS_SYSTEM_IP}    alias=bgp_app_peer_console
-    Utils.Flexible_Mininet_Login
+    SSHKeywords.Flexible_Mininet_Login
+
+Check_For_String_In_File
+    [Documentation]    Check file for ${string} and returns number of occurences
+    [Arguments]    ${file_name}    ${string}    ${threshold}=2
+    ${matches}    SSHLibrary.Execute_Command    grep -c '${string}' '${file_name}'
+    ${count}    Convert To Integer    ${matches}
+    BuiltIn.Should_Be_True    ${count} >= ${threshold}