... Brief description how to configure BGP peer can be found here:
... https://wiki.opendaylight.org/view/BGP_LS_PCEP:User_Guide#BGP_Peer
... http://docs.opendaylight.org/en/stable-boron/user-guide/bgp-user-guide.html#bgp-peering
-... The 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.
...
... TODO: Currently, if a bug causes zero increase of data changes,
... affected test cases will wait for max time. Reconsider.
Test Teardown SetupUtils.Teardown_Test_Show_Bugs_And_Start_Fast_Failing_If_Test_Failed
Library SSHLibrary timeout=10s
Library RequestsLibrary
-Variables ${CURDIR}/../../../variables/Variables.py
-Resource ${CURDIR}/../../../libraries/BGPSpeaker.robot
-Resource ${CURDIR}/../../../libraries/ChangeCounter.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
+Resource ../../../libraries/BGPSpeaker.robot
+Resource ../../../libraries/ChangeCounter.robot
+Resource ../../../libraries/FailFast.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
*** Variables ***
${BGP_TOOL_LOG_LEVEL} info
${BGP_VARIABLES_FOLDER} ${CURDIR}/../../../variables/bgpuser/
-${CHECK_PERIOD} 1
+${CHECK_PERIOD} 60
${CHECK_PERIOD_CHANGE_COUNT} ${CHECK_PERIOD}
${CHECK_PERIOD_CHANGE_COUNT_SINGLE} ${CHECK_PERIOD_CHANGE_COUNT}
-${COUNT} 1000000
+${COUNT} 600000
${COUNT_CHANGE_COUNT} ${COUNT}
${COUNT_CHANGE_COUNT_SINGLE} ${COUNT_CHANGE_COUNT}
${HOLDTIME} 180
${HOLDTIME_CHANGE_COUNT} ${HOLDTIME}
${HOLDTIME_CHANGE_COUNT_SINGLE} ${HOLDTIME_CHANGE_COUNT}
${INSERT} 1
-${KARAF_LOG_LEVEL} INFO
-${KARAF_BGPCEP_LOG_LEVEL} ${KARAF_LOG_LEVEL}
-${KARAF_PROTOCOL_LOG_LEVEL} ${KARAF_BGPCEP_LOG_LEVEL}
${PREFILL} 0
${REPETITIONS} 1
${REPETITIONS_CHANGE_COUNT} ${REPETITIONS}
${DEVICE_NAME} controller-config
${BGP_PEER_NAME} example-bgp-peer
# TODO: Option names can be better.
-${last_change_count_single} -1
-${NETCONF_DEV_FOLDER} ${CURDIR}/../../../variables/netconf/device/full-uri-device
-${NETCONF_MOUNT_FOLDER} ${CURDIR}/../../../variables/netconf/device/full-uri-mount
+${last_change_count_single} 1
*** Test Cases ***
Check_For_Empty_Ipv4_Topology_Before_Talking
# TODO: Choose which tags to assign and make sure they are assigned correctly.
BuiltIn.Wait_Until_Keyword_Succeeds 120s 1s PrefixCounting.Check_Ipv4_Topology_Is_Empty
-Configure_Netconf_Device
- [Documentation] Configures netconf device if ${USE_NETCONF_CONNECTOR} is False.
- BuiltIn.Run_Keyword_If """${USE_NETCONF_CONNECTOR}""" == """True""" BuiltIn.Pass_Execution No need to configure netconf device because netconf connector is present.
- &{mapping} BuiltIn.Create_Dictionary DEVICE_NAME=${DEVICE_NAME} DEVICE_PORT=1830 DEVICE_IP=${ODL_SYSTEM_IP} DEVICE_USER=admin DEVICE_PASSWORD=admin
- TemplatedRequests.Put_As_Xml_Templated ${NETCONF_DEV_FOLDER} mapping=${mapping}
- BuiltIn.Wait_Until_Keyword_Succeeds 10x 3s TemplatedRequests.Get_As_Xml_Templated ${NETCONF_MOUNT_FOLDER} mapping=${mapping}
-
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_CHANGE_COUNT_SINGLE} 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}
-Wait_For_Data_Change_Counter_Ready
- [Documentation] Data change counter might have been slower to start than ipv4 topology, wait for it.
- BuiltIn.Wait_Until_Keyword_Succeeds 180s 1s ChangeCounter.Get_Change_Count
-
Reconfigure_Data_Change_Counter
[Documentation] Configure data change counter to count transactions in example-ipv4-topology instead of example-linkstate-topology.
ChangeCounter.Reconfigure_Topology_Name example-ipv4-topology
-Change_Karaf_Logging_Levels
- [Documentation] We may want to set more verbose logging here after configuration is done.
- KarafKeywords.Set_Bgpcep_Log_Levels bgpcep_level=${KARAF_BGPCEP_LOG_LEVEL} protocol_level=${KARAF_PROTOCOL_LOG_LEVEL}
+Verify_Data_Change_Counter_Ready
+ [Documentation] Data change counter might have been slower to start than ipv4 topology, wait for it.
+ BuiltIn.Wait_Until_Keyword_Succeeds 5x 1s ChangeCounter.Get_Change_Count
Start_Talking_BGP_Speaker
[Documentation] Start Python speaker to connect to ODL.
[Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
PrefixCounting.Check_Ipv4_Topology_Is_Empty
-Restore_Karaf_Logging_Levels
- [Documentation] Set logging on bgpcep and protocol to the global value.
- KarafKeywords.Set_Bgpcep_Log_Levels bgpcep_level=${KARAF_LOG_LEVEL} protocol_level=${KARAF_LOG_LEVEL}
-
Restore_Data_Change_Counter_Configuration
[Documentation] Configure data change counter back to count transactions affecting example-linkstate-topology.
[Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
&{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}
-Remove_Netconf_Device
- [Documentation] Removes netconf device if ${USE_NETCONF_CONNECTOR} is False.
- [Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
- BuiltIn.Run_Keyword_If """${USE_NETCONF_CONNECTOR}""" == """True""" BuiltIn.Pass_Execution No need to remove netconf device because netconf connector is present.
- &{mapping} BuiltIn.Create_Dictionary DEVICE_NAME=${DEVICE_NAME} DEVICE_PORT=1830 DEVICE_IP=${ODL_SYSTEM_IP} DEVICE_USER=admin DEVICE_PASSWORD=admin
- TemplatedRequests.Delete_Templated ${NETCONF_DEV_FOLDER} mapping=${mapping}
-
*** Keywords ***
Setup_Everything
[Documentation] Setup imported resources, SSH-login to tools system,
# Both TODOs would probably need to update every suite relying on current Variables.
SSHLibrary.Set_Default_Configuration prompt=${TOOLS_SYSTEM_PROMPT}
SSHLibrary.Open_Connection ${TOOLS_SYSTEM_IP}
- Utils.Flexible_Mininet_Login
+ SSHKeywords.Flexible_Mininet_Login
SSHKeywords.Require_Python
SSHKeywords.Assure_Library_Ipaddr target_dir=.
SSHLibrary.Put_File ${CURDIR}/../../../../tools/fastbgp/play.py
${timeout} = BuiltIn.Evaluate ${TEST_DURATION_MULTIPLIER_CHANGE_COUNT_SINGLE} * (${COUNT_CHANGE_COUNT_SINGLE} * 9.0 / 10000 + 20)
Builtin.Set_Suite_Variable ${bgp_filling_timeout} ${timeout}
Builtin.Set_Suite_Variable ${bgp_emptying_timeout} ${bgp_filling_timeout*3.0/4}
- KarafKeywords.Execute_Controller_Karaf_Command_On_Background log:set ${KARAF_LOG_LEVEL}
Teardown_Everything
[Documentation] Make sure Python tool was killed and tear down imported Resources.
# Environment issue may have dropped the SSH connection, but we do not want Teardown to fail.
BuiltIn.Run_Keyword_And_Ignore_Error KillPythonTool.Search_And_Kill_Remote_Python 'play\.py'
+ BuiltIn.Run_Keyword_And_Ignore_Error Utils.Get_Sysstat_Statistics
RequestsLibrary.Delete_All_Sessions
SSHLibrary.Close_All_Connections