... 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.
Suite Setup Setup_Everything
Suite Teardown Teardown_Everything
Test Setup SetupUtils.Setup_Test_With_Logging_And_Fast_Failing
Library DateTime
Library RequestsLibrary
Library SSHLibrary timeout=10s
-Variables ${CURDIR}/../../../variables/Variables.py
-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
+Resource ../../../libraries/BGPSpeaker.robot
+Resource ../../../libraries/FailFast.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
*** Variables ***
${BGP_TOOL_LOG_LEVEL} info
${BGP_PEERS_LOG_FILE_NAME} bgp_peer.log
${BGP_VARIABLES_FOLDER} ${CURDIR}/../../../variables/bgpuser/
-${CHECK_PERIOD_PREFIX_COUNT_MANY_RRC} 10
-${COUNT} 100000 # With AdjRibsOut, the amount of data present is on the same scale as 1M ingest with single peer.
+${CHECK_PERIOD_PREFIX_COUNT_MANY_RRC} 60
+${COUNT} 300000 # With AdjRibsOut, the amount of data present is on the same scale as 600k ingest with single peer.
${COUNT_PREFIX_COUNT_MANY_RRC} ${COUNT}
${FIRST_PEER_IP} 127.0.0.1
${HOLDTIME} 180
${KARAF_LOG_LEVEL} INFO
${KARAF_BGPCEP_LOG_LEVEL} ${KARAF_LOG_LEVEL}
${KARAF_PROTOCOL_LOG_LEVEL} ${KARAF_BGPCEP_LOG_LEVEL}
-${MULTIPLICITY_PREFIX_COUNT_MANY_RRC} 10
-${REPETITIONS_PREFIX_COUNT_MANY_RRC} 10
+${MULTIPLICITY_PREFIX_COUNT_MANY_RRC} 2
+${REPETITIONS_PREFIX_COUNT_MANY_RRC} 2
${TEST_DURATION_MULTIPLIER} 1
${TEST_DURATION_MULTIPLIER_PREFIX_COUNT_MANY_RRC} ${TEST_DURATION_MULTIPLIER}
${RIB_INSTANCE} example-bgp-rib
Reconfigure_ODL_To_Accept_Connections
[Documentation] Configure BGP peer modules with initiate-connection set to false.
[Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
- : FOR ${index} IN RANGE 1 ${MULTIPLICITY_PREFIX_COUNT_MANY_RRC}+1
- \ ${peer_name} = BuiltIn.Set_Variable example-bgp-peer-${index}
- \ ${peer_ip} = BuiltIn.Evaluate str(ipaddr.IPAddress('${FIRST_PEER_IP}') + ${index} - 1) modules=ipaddr
- \ &{mapping} BuiltIn.Create_Dictionary DEVICE_NAME=${DEVICE_NAME} NAME=${peer_name} IP=${peer_ip} HOLDTIME=${HOLDTIME_PREFIX_COUNT_MANY_RRC}
- \ ... PEER_PORT=${BGP_TOOL_PORT} PEER_ROLE=rr-client INITIATE=false BGP_RIB=${RIB_INSTANCE} PASSIVE_MODE=true
- \ ... BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG} RIB_INSTANCE_NAME=${RIB_INSTANCE} RR_CLIENT=true
- \ TemplatedRequests.Put_As_Xml_Templated ${BGP_VARIABLES_FOLDER}${/}ibgp_peers mapping=${mapping}
+ FOR ${index} IN RANGE 1 ${MULTIPLICITY_PREFIX_COUNT_MANY_RRC}+1
+ ${peer_name} = BuiltIn.Set_Variable example-bgp-peer-${index}
+ ${peer_ip} = BuiltIn.Evaluate str(ipaddr.IPAddress('${FIRST_PEER_IP}') + ${index} - 1) modules=ipaddr
+ &{mapping} BuiltIn.Create_Dictionary DEVICE_NAME=${DEVICE_NAME} NAME=${peer_name} IP=${peer_ip} HOLDTIME=${HOLDTIME_PREFIX_COUNT_MANY_RRC}
+ ... PEER_PORT=${BGP_TOOL_PORT} PEER_ROLE=rr-client INITIATE=false BGP_RIB=${RIB_INSTANCE} PASSIVE_MODE=true
+ ... BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG} RIB_INSTANCE_NAME=${RIB_INSTANCE} RR_CLIENT=true
+ TemplatedRequests.Put_As_Xml_Templated ${BGP_VARIABLES_FOLDER}${/}ibgp_peers mapping=${mapping}
+ END
Start_Talking_BGP_Manager
[Documentation] Start Python manager to connect speakers to ODL.
[Documentation] Check BGP peer logs for received updates.
[Tags] critical
${timeout} = BuiltIn.Set_Variable ${bgp_filling_timeout}
- : FOR ${index} IN RANGE 1 ${MULTIPLICITY_PREFIX_COUNT_MANY_RRC}+1
- \ ${bgp_peer_label} = BuiltIn.Set_Variable BGP-Dummy-${index}
- \ ${expected_prefixcount} = BuiltIn.Evaluate ${COUNT_PREFIX_COUNT_MANY_RRC} - ${COUNT_PREFIX_COUNT_MANY_RRC} / ${MULTIPLICITY_PREFIX_COUNT_MANY_RRC}
- \ ${expected_string} = BuiltIn.Set_Variable total_received_nlri_prefix_counter: ${expected_prefixcount}
- \ BuiltIn.Wait_Until_Keyword_Succeeds ${timeout} 1s Check_File_For_Occurence ${BGP_PEERS_LOG_FILE_NAME} ${bgp_peer_label}
- \ ... ${expected_string} 2
- \ ${timeout} = BuiltIn.Set_Variable 20s
- # FIXME: Calculation of ${expected_prefixcount} correct just when the ${COUNT_PREFIX_COUNT_MANY_RRC} is a multiplication of ${MULTIPLICITY_PREFIX_COUNT_MANY_RRC}
+ FOR ${index} IN RANGE 1 ${MULTIPLICITY_PREFIX_COUNT_MANY_RRC}+1
+ ${bgp_peer_label} = BuiltIn.Set_Variable BGP-Dummy-${index}
+ ${expected_prefixcount} = BuiltIn.Evaluate ${COUNT_PREFIX_COUNT_MANY_RRC} - ${COUNT_PREFIX_COUNT_MANY_RRC} / ${MULTIPLICITY_PREFIX_COUNT_MANY_RRC}
+ ${expected_string} = BuiltIn.Set_Variable total_received_nlri_prefix_counter: ${expected_prefixcount}
+ BuiltIn.Wait_Until_Keyword_Succeeds ${timeout} 1s Check_File_For_Occurence ${BGP_PEERS_LOG_FILE_NAME} ${bgp_peer_label}
+ ... ${expected_string} 2
+ ${timeout} = BuiltIn.Set_Variable 20s
+ # FIXME: Calculation of ${expected_prefixcount} correct just when the ${COUNT_PREFIX_COUNT_MANY_RRC} is a multiplication of ${MULTIPLICITY_PREFIX_COUNT_MANY_RRC}
+ END
Kill_Talking_BGP_Speakers
[Documentation] Abort the Python speakers. Also, attempt to stop failing fast.
[Documentation] Revert the BGP configuration to the original state: without any configured peers.
[Tags] critical
[Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
- : FOR ${index} IN RANGE 1 ${MULTIPLICITY_PREFIX_COUNT_MANY_RRC}+1
- \ ${peer_name} = BuiltIn.Set_Variable example-bgp-peer-${index}
- \ ${peer_ip} = BuiltIn.Evaluate str(ipaddr.IPAddress('${FIRST_PEER_IP}') + ${index} - 1) modules=ipaddr
- \ &{mapping} BuiltIn.Create_Dictionary DEVICE_NAME=${DEVICE_NAME} NAME=${peer_name} IP=${peer_ip} BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG}
- \ TemplatedRequests.Delete_Templated ${BGP_VARIABLES_FOLDER}${/}ibgp_peers mapping=${mapping}
+ FOR ${index} IN RANGE 1 ${MULTIPLICITY_PREFIX_COUNT_MANY_RRC}+1
+ ${peer_name} = BuiltIn.Set_Variable example-bgp-peer-${index}
+ ${peer_ip} = BuiltIn.Evaluate str(ipaddr.IPAddress('${FIRST_PEER_IP}') + ${index} - 1) modules=ipaddr
+ &{mapping} BuiltIn.Create_Dictionary DEVICE_NAME=${DEVICE_NAME} NAME=${peer_name} IP=${peer_ip} BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG}
+ TemplatedRequests.Delete_Templated ${BGP_VARIABLES_FOLDER}${/}ibgp_peers mapping=${mapping}
+ END
*** Keywords ***
Setup_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