-L3vpn_Ipv4_From_Odl
- [Documentation] Testing mpls vpn ipv4 routes reported from odl to exabgp
- [Setup] Setup_Testcase ${DEFAUTL_EXA_CFG}
- BgpRpcClient.exa_clean_update_message
- &{mapping} BuiltIn.Create_Dictionary BGP_PEER_IP=${TOOLS_SYSTEM_IP} APP_PEER_IP=${ODL_SYSTEM_IP}
- TemplatedRequests.Post_As_Xml_Templated ${BGP_L3VPN_DIR}/route mapping=${mapping} session=${CONFIG_SESSION}
- BuiltIn.Wait_Until_Keyword_Succeeds 5x 2s Verify_ExaBgp_Received_Update ${BGP_L3VPN_DIR}/route_expected/exa-expected.json
- [Teardown] Teardowm_With_Remove_Route
+Start_Play
+ [Documentation] Start Python speaker to connect to ODL. We need to do WUKS until odl really starts to accept incomming bgp connection. The failure happens if the incomming connection comes too quickly after configuring the peer in the previous test case.
+ [Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+ CompareStream.Run_Keyword_If_Less_Than_Fluorine BuiltIn.Pass_Execution "Only run on Fluorine and later"
+ SSHLibrary.Put_File ${PLAY_SCRIPT} .
+ SSHKeywords.Assure_Library_Ipaddr target_dir=.
+ SSHLibrary.Read
+ BuiltIn.Wait_Until_Keyword_Succeeds 3x 1s Start_Bgp_Peer
+
+Play_To_Odl_rt_constrain_type_0
+ [Documentation] This keyword sends route-target route containg route-target argument so odl
+ ... can identify this peer as appropriate for advertizement when it recieves such route.
+ CompareStream.Run_Keyword_If_Less_Than_Fluorine BuiltIn.Pass_Execution "Only run on Fluorine and later"
+ BgpOperations.Play_To_Odl_Non_Removal_Template rt_constrain_type_0 ${RT_CONSTRAIN_DIR}
+
+Odl_To_Play_l3vpn
+ [Documentation] Send l3vpn route to app peer, and than checks that app peer advertizes this route.
+ CompareStream.Run_Keyword_If_At_Least_Fluorine BuiltIn.Pass_Execution "Only run on less than Fluorine"
+ Setup_Testcase ${DEFAULT_EXA_CFG}
+ L3vpn_Ipv4_To_App
+ [Teardown] CompareStream.Run_Keyword_If_Less_Than_Fluorine Teardowm_With_Remove_Route
+
+Odl_To_Play_l3vpn_rt_arg
+ [Documentation] Same as TC before but fluorine and further this l3vpn route also needs to contain route-target argument.
+ CompareStream.Run_Keyword_If_Less_Than_Fluorine BuiltIn.Pass_Execution "Only run on Fluorine and later"
+ BgpOperations.Odl_To_Play_Template l3vpn_rt_arg ${RT_CONSTRAIN_DIR} False
+
+Kill_Talking_BGP_Speaker
+ [Documentation] Abort the Python speaker
+ [Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+ CompareStream.Run_Keyword_If_Less_Than_Fluorine BuiltIn.Pass_Execution "Only run on Fluorine and later"
+ BGPSpeaker.Kill_BGP_Speaker
+ BGPcliKeywords.Store_File_To_Workspace play.py.out 010_l3vpn_play.log