+TC_LAS_Reconfigure_Odl_To_Accept_Connection
+ [Documentation] Configure neighbors. One ibgp and one ebgp neighbor with local-as configured.
+ CompareStream.Run_Keyword_If_Less_Than_Fluorine BuiltIn.Pass_Execution Test case valid only for versions fluorine and above.
+ &{mapping} Create Dictionary IP=${iBGP_PEER1_IP} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG}
+ TemplatedRequests.Put_As_Xml_Templated ${BGP_VARIABLES_FOLDER}${/}bgp_peer mapping=${mapping}
+ &{mapping} Create Dictionary IP=${eBGP_PEER1_IP} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG}
+ ... AS_NUMBER=${LOCAL_AS} PEER_AS=${eBGP_AS}
+ TemplatedRequests.Put_As_Xml_Templated ${BGP_VARIABLES_FOLDER}${/}local_as/ebgp_peer mapping=${mapping}
+ [Teardown] SetupUtils.Teardown_Test_Show_Bugs_If_Test_Failed
+
+TC_LAS_Start_iBgp_Speaker_And_Verify_Connected
+ [Documentation] Verify that peer is present in odl's rib. Peer is configured with local-as.
+ [Tags] critical
+ CompareStream.Run_Keyword_If_Less_Than_Fluorine BuiltIn.Pass_Execution Test case valid only for versions fluorine and above.
+ SSHLibrary.Switch Connection ibgp_peer1_console
+ ${speaker_args} BuiltIn.Set_Variable --firstprefix ${iBGP_PEER1_FIRST_PREFIX_IP} --prefixlen ${PREFIX_LEN} --amount 1 --myip=${iBGP_PEER1_IP} --myport=${BGP_TOOL_PORT} --peerip=${ODL_SYSTEM_IP} --peerport=${ODL_BGP_PORT} --debug
+ ${output} BGPSpeaker.Start_BGP_Speaker_And_Verify_Connected ${speaker_args} session=default speaker_ip=${iBGP_PEER1_IP}
+ BuiltIn.Log ${output}
+
+TC_LAS_Start_eBgp_Speaker_And_Verify_Connected
+ [Documentation] Verify that peer is present in odl's rib. Peer is configured with local-as.
+ [Tags] critical
+ CompareStream.Run_Keyword_If_Less_Than_Fluorine BuiltIn.Pass_Execution Test case valid only for versions fluorine and above.
+ SSHLibrary.Switch Connection ebgp_peer1_console
+ ${speaker_args} BuiltIn.Set_Variable --firstprefix ${eBGP_PEER1_FIRST_PREFIX_IP} --prefixlen ${PREFIX_LEN} --amount 1 --asnumber=${eBGP_AS} --myip=${eBGP_PEER1_IP} --myport=${BGP_TOOL_PORT} --peerip=${ODL_SYSTEM_IP} --peerport=${ODL_BGP_PORT} --debug
+ ${output} BGPSpeaker.Start_BGP_Speaker_And_Verify_Connected ${speaker_args} session=default speaker_ip=${eBGP_PEER1_IP}
+ BuiltIn.Log ${output}
+
+TC_LAS_Verify_iBGP_Rib_Out
+ [Documentation] Verifies iBGP's adj-rib-out output. Expects local-as, and ebgp peer-as presence.
+ [Tags] critical
+ CompareStream.Run_Keyword_If_Less_Than_Fluorine BuiltIn.Pass_Execution Test case valid only for versions fluorine and above.
+ &{mapping} Create Dictionary IP=${iBGP_PEER1_IP} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG}
+ ... AS_NUMBER=${LOCAL_AS} PEER_AS=${eBGP_AS} PREFIXLEN=${eBGP_PEER1_FIRST_PREFIX_IP}/${PREFIX_LEN}
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} TemplatedRequests.Get_As_Json_Templated ${BGP_VARIABLES_FOLDER}${/}local_as/adj_rib_out mapping=${mapping} verify=True
+
+TC_LAS_Verify_eBGP_Rib_Out
+ [Documentation] Verifies eBGP's adj-rib-out output. Expects local-as, and ibgp peer-as presence.
+ [Tags] critical
+ CompareStream.Run_Keyword_If_Less_Than_Fluorine BuiltIn.Pass_Execution Test case valid only for versions fluorine and above.
+ &{mapping} Create Dictionary IP=${eBGP_PEER1_IP} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} PASSIVE_MODE=true BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG}
+ ... AS_NUMBER=${LOCAL_AS} PEER_AS=${DEFAULT_AS} PREFIXLEN=${iBGP_PEER1_FIRST_PREFIX_IP}/${PREFIX_LEN}
+ BuiltIn.Wait_Until_Keyword_Succeeds ${DEFAULT_TOPOLOGY_CHECK_TIMEOUT} ${DEFAULT_TOPOLOGY_CHECK_PERIOD} TemplatedRequests.Get_As_Json_Templated ${BGP_VARIABLES_FOLDER}${/}local_as/adj_rib_out mapping=${mapping} verify=True
+
+TC_LAS_Kill_iBgp_Speaker_After_Talking
+ [Documentation] Abort the Python speaker. Also, attempt to stop failing fast.
+ [Tags] critical
+ [Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+ CompareStream.Run_Keyword_If_Less_Than_Fluorine BuiltIn.Pass_Execution Test case valid only for versions fluorine and above.
+ SSHLibrary.Switch Connection ibgp_peer1_console
+ BGPSpeaker.Kill_BGP_Speaker
+ FailFast.Do_Not_Fail_Fast_From_Now_On
+ # NOTE: It is still possible to remain failing fast, if both previous and this test have failed.
+ [Teardown] FailFast.Do_Not_Start_Failing_If_This_Failed
+
+TC_LAS_Kill_eBgp_Speaker_After_Talking
+ [Documentation] Abort the Python speaker. Also, attempt to stop failing fast.
+ [Tags] critical
+ [Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+ CompareStream.Run_Keyword_If_Less_Than_Fluorine BuiltIn.Pass_Execution Test case valid only for versions fluorine and above.
+ SSHLibrary.Switch Connection ebgp_peer1_console
+ BGPSpeaker.Kill_BGP_Speaker
+ FailFast.Do_Not_Fail_Fast_From_Now_On
+ # NOTE: It is still possible to remain failing fast, if both previous and this test have failed.
+ [Teardown] FailFast.Do_Not_Start_Failing_If_This_Failed
+
+TC_LAS_Delete_Bgp_Peer_Configurations
+ [Documentation] Delete peer configuration.
+ CompareStream.Run_Keyword_If_Less_Than_Fluorine BuiltIn.Pass_Execution Test case valid only for versions fluorine and above.
+ &{mapping} Create Dictionary IP=${iBGP_PEER1_IP} BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG}
+ TemplatedRequests.Delete_Templated ${BGP_VARIABLES_FOLDER}${/}bgp_peer mapping=${mapping}
+ &{mapping} Create Dictionary IP=${eBGP_PEER1_IP} BGP_RIB_OPENCONFIG=${PROTOCOL_OPENCONFIG}
+ TemplatedRequests.Delete_Templated ${BGP_VARIABLES_FOLDER}${/}local_as/ebgp_peer mapping=${mapping}
+ [Teardown] SetupUtils.Teardown_Test_Show_Bugs_If_Test_Failed
+