From 875135fb25d8aa2a320416664bced404db834d63 Mon Sep 17 00:00:00 2001 From: "tomas.markovic" Date: Tue, 13 Nov 2018 11:43:38 +0100 Subject: [PATCH] Fix empty uri for functional tests - fix as_path across functional tests Change-Id: Ifb00546e0cd277ea18417f2e819778b294b6010c Signed-off-by: tomas.markovic --- csit/libraries/BgpOperations.robot | 45 +++++----- .../bgpfunct/010_bgp_functional_l3vpn.robot | 56 ++++++------ ...p_functional_rt_constrain_validation.robot | 87 +++++++++---------- .../data.json} | 0 .../l3vpn_ipv4/bgp_l3vpn_ipv4/location.uri | 1 + .../data.json} | 0 .../bgp_l3vpn_ipv4_empty/location.uri | 1 + .../data.json} | 3 +- .../bgp_l3vpn_ipv4_path/location.uri | 1 + .../l3vpn_ipv4/empty_route/data.json | 11 +++ .../l3vpn_ipv4/empty_route/location.uri | 1 + .../l3vpn_ipv4/empty_route/volatiles.list | 1 + .../data.json} | 0 .../empty_routes/ipv4.fluorine/data.json | 3 + .../empty_routes/ipv4.fluorine/location.uri | 1 + .../empty_routes/ipv4.oxygen/data.json | 3 + .../empty_routes/ipv4.oxygen/location.uri | 1 + .../l3vpn_mcast/empty_routes/ipv4/data.json | 10 ++- .../empty_routes/ipv4/location.uri | 2 +- .../empty_routes/ipv4/volatiles.list | 1 + .../empty_routes/ipv6.fluorine/data.json | 3 + .../empty_routes/ipv6.fluorine/location.uri | 1 + .../empty_routes/ipv6.oxygen/data.json | 3 + .../empty_routes/ipv6.oxygen/location.uri | 1 + .../l3vpn_mcast/empty_routes/ipv6/data.json | 10 ++- .../empty_routes/ipv6/location.uri | 2 +- .../empty_routes/ipv6/volatiles.list | 1 + .../l3vpn_mcast/l3vpn_mcast/rib/data.json | 3 +- .../l3vpn_mcast_ipv6/rib/data.json | 3 +- .../mvpn/empty_routes/ipv4.fluorine/data.json | 3 + .../empty_routes/ipv4.fluorine/location.uri | 1 + .../mvpn/empty_routes/ipv4.oxygen/data.json | 3 + .../empty_routes/ipv4.oxygen/location.uri | 1 + .../mvpn/empty_routes/ipv4/data.json | 10 ++- .../mvpn/empty_routes/ipv4/location.uri | 2 +- .../mvpn/empty_routes/ipv4/volatiles.list | 1 + .../mvpn/empty_routes/ipv6.fluorine/data.json | 3 + .../empty_routes/ipv6.fluorine/location.uri | 1 + .../mvpn/empty_routes/ipv6.oxygen/data.json | 3 + .../empty_routes/ipv6.oxygen/location.uri | 1 + .../mvpn/empty_routes/ipv6/data.json | 10 ++- .../mvpn/empty_routes/ipv6/location.uri | 2 +- .../mvpn/empty_routes/ipv6/volatiles.list | 1 + .../mvpn/inter_as_ipmsi_ad/rib/data.json | 3 +- .../mvpn/intra_as_ipmsi_ad/rib/data.json | 3 +- .../mvpn/intra_ipv6/rib/data.json | 4 +- .../mvpn/intra_pe_distinguisher/rib/data.json | 3 +- .../mvpn/intra_source_as/rib/data.json | 5 +- .../mvpn/intra_source_as_4/rib/data.json | 5 +- .../mvpn/intra_vrf/rib/data.json | 5 +- .../bgpfunctional/mvpn/leaf_ad/rib/data.json | 3 +- .../mvpn/shared_tree_join/rib/data.json | 3 +- .../mvpn/source_active_ad/rib/data.json | 3 +- .../mvpn/source_tree_join/rib/data.json | 3 +- .../bgpfunctional/mvpn/spmsi_ad/rib/data.json | 3 +- .../rt_constrain/empty_l3vpn/data.json | 3 + .../rt_constrain/empty_l3vpn/location.uri | 1 + .../rt_constrain/empty_route/data.json | 11 +++ .../rt_constrain/empty_route/location.uri | 1 + .../rt_constrain/empty_route/volatiles.list | 1 + .../empty_routes/ipv4.fluorine/data.json | 3 + .../empty_routes/ipv4.fluorine/location.uri | 1 + .../empty_routes/ipv4.oxygen/data.json | 3 + .../empty_routes/ipv4.oxygen/location.uri | 1 + .../rt_constrain/empty_routes/ipv4/data.json | 10 ++- .../empty_routes/ipv4/location.uri | 2 +- .../empty_routes/ipv4/volatiles.list | 1 + .../rt_constrain/l3vpn_rt_arg/rib/data.json | 5 +- .../rt_constrain_default/rib/data.json | 3 +- .../rt_constrain_type_0/rib/data.json | 3 +- .../rt_constrain_type_1/rib/data.json | 3 +- .../rt_constrain_type_2/rib/data.json | 3 +- 72 files changed, 245 insertions(+), 150 deletions(-) rename csit/variables/bgpfunctional/l3vpn_ipv4/{bgp-l3vpn-ipv4.json => bgp_l3vpn_ipv4/data.json} (100%) create mode 100644 csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4/location.uri rename csit/variables/bgpfunctional/l3vpn_ipv4/{bgp-l3vpn-ipv4-empty.json => bgp_l3vpn_ipv4_empty/data.json} (100%) create mode 100644 csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4_empty/location.uri rename csit/variables/bgpfunctional/l3vpn_ipv4/{bgp-l3vpn-ipv4-path.json => bgp_l3vpn_ipv4_path/data.json} (91%) create mode 100644 csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4_path/location.uri create mode 100644 csit/variables/bgpfunctional/l3vpn_ipv4/empty_route/data.json create mode 100644 csit/variables/bgpfunctional/l3vpn_ipv4/empty_route/location.uri create mode 100644 csit/variables/bgpfunctional/l3vpn_ipv4/empty_route/volatiles.list rename csit/variables/bgpfunctional/l3vpn_ipv4/{route_expected/exa-expected.json => exa_expected/data.json} (100%) create mode 100644 csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.fluorine/data.json create mode 100644 csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.fluorine/location.uri create mode 100644 csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.oxygen/data.json create mode 100644 csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.oxygen/location.uri create mode 100644 csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4/volatiles.list create mode 100644 csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.fluorine/data.json create mode 100644 csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.fluorine/location.uri create mode 100644 csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.oxygen/data.json create mode 100644 csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.oxygen/location.uri create mode 100644 csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6/volatiles.list create mode 100644 csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.fluorine/data.json create mode 100644 csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.fluorine/location.uri create mode 100644 csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.oxygen/data.json create mode 100644 csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.oxygen/location.uri create mode 100644 csit/variables/bgpfunctional/mvpn/empty_routes/ipv4/volatiles.list create mode 100644 csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.fluorine/data.json create mode 100644 csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.fluorine/location.uri create mode 100644 csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.oxygen/data.json create mode 100644 csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.oxygen/location.uri create mode 100644 csit/variables/bgpfunctional/mvpn/empty_routes/ipv6/volatiles.list create mode 100644 csit/variables/bgpfunctional/rt_constrain/empty_l3vpn/data.json create mode 100644 csit/variables/bgpfunctional/rt_constrain/empty_l3vpn/location.uri create mode 100644 csit/variables/bgpfunctional/rt_constrain/empty_route/data.json create mode 100644 csit/variables/bgpfunctional/rt_constrain/empty_route/location.uri create mode 100644 csit/variables/bgpfunctional/rt_constrain/empty_route/volatiles.list create mode 100644 csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.fluorine/data.json create mode 100644 csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.fluorine/location.uri create mode 100644 csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.oxygen/data.json create mode 100644 csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.oxygen/location.uri create mode 100644 csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4/volatiles.list diff --git a/csit/libraries/BgpOperations.robot b/csit/libraries/BgpOperations.robot index c16b4bb577..85443631fc 100644 --- a/csit/libraries/BgpOperations.robot +++ b/csit/libraries/BgpOperations.robot @@ -4,6 +4,7 @@ Library SSHLibrary Library String Library BgpRpcClient.py ${TOOLS_SYSTEM_IP} Resource ../variables/Variables.robot +Resource CompareStream.robot Resource Utils.robot Resource KillPythonTool.robot Resource TemplatedRequests.robot @@ -15,10 +16,9 @@ ${BGP_RIB_URI} ${OPERATIONAL_API}/bgp-rib:bgp-rib/rib/example-bgp-rib ${BGP_TOPOLOGY_URI} ${OPERATIONAL_TOPO_API}/topology/example-ipv4-topology ${VAR_BASE_BGP} ${CURDIR}/../variables/bgpfunctional ${RIB_NAME} example-bgp-rib -&{ADJ_RIB_IN} PATH=peer/bgp:%2F%2F${TOOLS_SYSTEM_IP}/adj-rib-in BGP_RIB=${RIB_NAME} +${OLD_AS_PATH} \n"as-path": {}, +${NEW_AS_PATH} ${EMPTY} &{APP_PEER} IP=${ODL_SYSTEM_IP} BGP_RIB=${RIB_NAME} -&{EFFECTIVE_RIB_IN} PATH=peer/bgp:%2F%2F${TOOLS_SYSTEM_IP}/effective-rib-in BGP_RIB=${RIB_NAME} -&{LOC_RIB} PATH=loc-rib BGP_RIB=${RIB_NAME} *** Keywords *** Start Quagga Processes On ODL @@ -324,27 +324,33 @@ Odl_To_Play_Template Play_To_Odl_Template [Arguments] ${totest} ${dir} ${ipv}=ipv4 - ${announce_hex}= OperatingSystem.Get_File ${dir}/${totest}/announce_${totest}.hex - ${withdraw_hex}= OperatingSystem.Get_File ${dir}/${totest}/withdraw_${totest}.hex + ${as_path} = CompareStream.Set_Variable_If_At_Least_Neon ${NEW_AS_PATH} ${OLD_AS_PATH} + &{adj_rib_in} BuiltIn.Create_Dictionary PATH=peer/bgp:%2F%2F${TOOLS_SYSTEM_IP}/adj-rib-in BGP_RIB=${RIB_NAME} AS_PATH=${as_path} + &{effective_rib_in} BuiltIn.Create_Dictionary PATH=peer/bgp:%2F%2F${TOOLS_SYSTEM_IP}/effective-rib-in BGP_RIB=${RIB_NAME} AS_PATH=${as_path} + &{loc_rib} BuiltIn.Create_Dictionary PATH=loc-rib BGP_RIB=${RIB_NAME} AS_PATH=${as_path} + ${announce_hex} = OperatingSystem.Get_File ${dir}/${totest}/announce_${totest}.hex + ${withdraw_hex} = OperatingSystem.Get_File ${dir}/${totest}/withdraw_${totest}.hex BgpRpcClient.play_clean BgpRpcClient.play_send ${announce_hex} - BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s TemplatedRequests.Get_As_Json_Templated ${dir}/${totest}/rib mapping=${ADJ_RIB_IN} session=${CONFIG_SESSION} + BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s TemplatedRequests.Get_As_Json_Templated ${dir}/${totest}/rib mapping=${adj_rib_in} session=${CONFIG_SESSION} ... verify=True - BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s TemplatedRequests.Get_As_Json_Templated ${dir}/${totest}/rib mapping=${EFFECTIVE_RIB_IN} session=${CONFIG_SESSION} + BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s TemplatedRequests.Get_As_Json_Templated ${dir}/${totest}/rib mapping=${effective_rib_in} session=${CONFIG_SESSION} ... verify=True - BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s TemplatedRequests.Get_As_Json_Templated ${dir}/${totest}/rib mapping=${LOC_RIB} session=${CONFIG_SESSION} + BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s TemplatedRequests.Get_As_Json_Templated ${dir}/${totest}/rib mapping=${loc_rib} session=${CONFIG_SESSION} ... verify=True BgpRpcClient.play_send ${withdraw_hex} - BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s TemplatedRequests.Get_As_Json_Templated ${dir}/empty_routes/${ipv} mapping=${LOC_RIB} session=${CONFIG_SESSION} + BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s TemplatedRequests.Get_As_Json_Templated ${dir}/empty_routes/${ipv} mapping=${loc_rib} session=${CONFIG_SESSION} ... verify=True [Teardown] BgpRpcClient.play_send ${withdraw_hex} Play_To_Odl_Non_Removal_Template [Arguments] ${totest} ${dir} ${ipv}=ipv4 - ${announce_hex}= OperatingSystem.Get_File ${dir}/${totest}/announce_${totest}.hex + ${announce_hex} = OperatingSystem.Get_File ${dir}/${totest}/announce_${totest}.hex BgpRpcClient.play_clean BgpRpcClient.play_send ${announce_hex} - BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s TemplatedRequests.Get_As_Json_Templated ${dir}/${totest}/rib mapping=${LOC_RIB} session=${CONFIG_SESSION} + ${as_path} = CompareStream.Set_Variable_If_At_Least_Neon ${NEW_AS_PATH} ${OLD_AS_PATH} + &{loc_rib} BuiltIn.Create_Dictionary PATH=loc-rib BGP_RIB=${RIB_NAME} AS_PATH=${as_path} + BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s TemplatedRequests.Get_As_Json_Templated ${dir}/${totest}/rib mapping=${loc_rib} session=${CONFIG_SESSION} ... verify=True Get_Update_Message @@ -362,22 +368,15 @@ Verify_Two_Hex_Messages_Are_Equal [Arguments] ${hex_1} ${hex_2} [Documentation] Verifies two hex messages are equal even in case, their arguments are misplaced. ... Compares length of the hex messages and sums hex messages arguments as integers and compares results. - ${len_1}= BuiltIn.Get_Length ${hex_1} - ${len_2}= BuiltIn.Get_Length ${hex_2} + ${len_1} = BuiltIn.Get_Length ${hex_1} + ${len_2} = BuiltIn.Get_Length ${hex_2} BuiltIn.Should_Be_Equal ${len_1} ${len_2} - ${sum_1}= Sum_Hex_Message_Arguments_To_Integer ${hex_1} - ${sum_2}= Sum_Hex_Message_Arguments_To_Integer ${hex_2} + ${sum_1} = Sum_Hex_Message_Arguments_To_Integer ${hex_1} + ${sum_2} = Sum_Hex_Message_Arguments_To_Integer ${hex_2} BuiltIn.Should_Be_Equal ${sum_1} ${sum_2} Sum_Hex_Message_Arguments_To_Integer [Arguments] ${hex_string} [Documentation] Converts hex message arguments to integers and sums them up and returns the sum. - ${partial_results}= BuiltIn.Create_List - ${string}= String.Get_Substring ${hex_string} 32 - @{list}= String.Get_Regexp_Matches ${string} [a-f0-9][a-f0-9] - : FOR ${i} IN @{list} - \ ${item_int}= BuiltIn.Convert_To_Integer ${i} 16 - \ Collections.Append_To_List ${partial_results} ${item_int} - \ BuiltIn.Log ${partial_results} - ${final_sum}= BuiltIn.Evaluate sum(${partial_results}) + ${final_sum} = BuiltIn.Evaluate sum(map(lambda x: int(x, 16), re.compile('[a-f\d]{2}').findall('${hex_string}'[32:]))) modules=re [Return] ${final_sum} diff --git a/csit/suites/bgpcep/bgpfunct/010_bgp_functional_l3vpn.robot b/csit/suites/bgpcep/bgpfunct/010_bgp_functional_l3vpn.robot index 7ee2df7607..1fe29d9e92 100644 --- a/csit/suites/bgpcep/bgpfunct/010_bgp_functional_l3vpn.robot +++ b/csit/suites/bgpcep/bgpfunct/010_bgp_functional_l3vpn.robot @@ -28,11 +28,9 @@ Resource ../../../libraries/BgpOperations.robot Resource ../../../libraries/BGPSpeaker.robot Resource ../../../libraries/CompareStream.robot Resource ../../../libraries/ExaBgpLib.robot -Resource ../../../libraries/KarafKeywords.robot Resource ../../../libraries/SetupUtils.robot Resource ../../../libraries/SSHKeywords.robot Resource ../../../libraries/TemplatedRequests.robot -Resource ../../../libraries/Utils.robot Resource ../../../variables/Variables.robot *** Variables *** @@ -44,12 +42,12 @@ ${DEFAULT_EXA_CFG} exa.cfg ${EXARPCSCRIPT} ${CURDIR}/../../../../tools/exabgp_files/exarpc.py ${HOLDTIME} 180 ${L3VPN_EXA_CFG} bgp-l3vpn-ipv4.cfg -${L3VPN_EXP} ${BGP_L3VPN_DIR}/route_expected/exa-expected.json -${L3VPN_RSP} ${BGP_L3VPN_DIR}/bgp-l3vpn-ipv4.json -${L3VPN_RSPEMPTY} ${BGP_L3VPN_DIR}/bgp-l3vpn-ipv4-empty.json -${L3VPN_RSP_PATH} ${BGP_L3VPN_DIR}/bgp-l3vpn-ipv4-path.json -${L3VPN_URL} /restconf/operational/bgp-rib:bgp-rib/rib/example-bgp-rib/loc-rib/tables/bgp-types:ipv4-address-family/bgp-types:mpls-labeled-vpn-subsequent-address-family/bgp-vpn-ipv4:vpn-ipv4-routes -${PEER_CHECK_URL} /restconf/operational/bgp-rib:bgp-rib/rib/example-bgp-rib/peer/bgp:%2F%2F +${L3VPN_EXP} exa_expected +${L3VPN_RSP} bgp_l3vpn_ipv4 +${L3VPN_RSPEMPTY} bgp_l3vpn_ipv4_empty +${L3VPN_RSP_PATH} bgp_l3vpn_ipv4_path +${OLD_AS_PATH} \n"as-path": {}, +${NEW_AS_PATH} ${EMPTY} ${PLAY_SCRIPT} ${CURDIR}/../../../../tools/fastbgp/play.py ${RIB_INSTANCE} example-bgp-rib ${RT_CONSTRAIN_DIR} ${CURDIR}/../../../variables/bgpfunctional/rt_constrain @@ -71,14 +69,14 @@ L3vpn_Ipv4_To_Odl [Documentation] Testing mpls vpn ipv4 routes reported to odl from exabgp [Setup] Setup_Testcase ${L3VPN_EXA_CFG} ${L3VPN_RESPONSE} CompareStream.Set_Variable_If_At_Least_Fluorine ${L3VPN_RSP_PATH} ${L3VPN_RSP} - BuiltIn.Wait_Until_Keyword_Succeeds 15s 1s Verify Reported Data ${L3VPN_URL} ${L3VPN_RESPONSE} + BuiltIn.Wait_Until_Keyword_Succeeds 15s 1s Verify_Reported_Data ${L3VPN_RESPONSE} [Teardown] Teardown_Simple 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} . + SSHLibrary.Put_File ${PLAY_SCRIPT} . SSHKeywords.Assure_Library_Ipaddr target_dir=. SSHLibrary.Read BuiltIn.Wait_Until_Keyword_Succeeds 3x 1s Start_Bgp_Peer @@ -122,13 +120,15 @@ Deconfigure_App_Peer Start_Suite [Documentation] Suite setup keyword. SetupUtils.Setup_Utils_For_Setup_And_Teardown - ${tools_system_conn_id}= SSHLibrary.Open_Connection ${TOOLS_SYSTEM_IP} prompt=${DEFAULT_LINUX_PROMPT} timeout=6s + ${tools_system_conn_id} = SSHLibrary.Open_Connection ${TOOLS_SYSTEM_IP} prompt=${DEFAULT_LINUX_PROMPT} timeout=6s Builtin.Set_Suite_Variable ${tools_system_conn_id} SSHKeywords.Flexible_Mininet_Login ${TOOLS_SYSTEM_USER} SSHKeywords.Virtual_Env_Create SSHKeywords.Virtual_Env_Install_Package exabgp==3.4.16 RequestsLibrary.Create_Session ${CONFIG_SESSION} http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} Upload_Config_Files + ${AS_PATH} = CompareStream.Set_Variable_If_At_Least_Neon ${NEW_AS_PATH} ${OLD_AS_PATH} + BuiltIn.Set_Suite_Variable ${AS_PATH} Stop_Suite [Documentation] Suite teardown keyword @@ -154,7 +154,7 @@ Setup_Testcase [Arguments] ${cfg_file} [Documentation] Verifies initial test condition and starts the exabgp SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing - Verify_Reported_Data ${L3VPN_URL} ${L3VPN_RSPEMPTY} + BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s Verify_Empty_Reported_Data ExaBgpLib.Start_ExaBgp_And_Verify_Connected ${cfg_file} ${CONFIG_SESSION} ${TOOLS_SYSTEM_IP} connection_retries=${3} Teardowm_With_Remove_Route @@ -166,30 +166,26 @@ Teardowm_With_Remove_Route Teardown_Simple [Documentation] Testcse teardown with data verification ExaBgpLib.Stop_ExaBgp - BuiltIn.Wait_Until_Keyword_Succeeds 3x 1s Verify_Reported_Data ${L3VPN_URL} ${L3VPN_RSPEMPTY} + BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s Verify_Empty_Reported_Data Verify_ExaBgp_Received_Update [Arguments] ${exp_update_fn} [Documentation] Verification of receiving particular update message - ${exp_update}= Get_Expected_Response_From_File ${exp_update_fn} - ${rcv_update_dict}= BgpRpcClient.exa_get_update_message msg_only=${True} - ${rcv_update}= BuiltIn.Evaluate json.dumps(${rcv_update_dict}) modules=json + ${exp_update} = TemplatedRequests.Resolve_Text_From_Template_File ${BGP_L3VPN_DIR}${/}${exp_update_fn} data.json + ${rcv_update_dict} = BgpRpcClient.exa_get_update_message msg_only=${True} + ${rcv_update} = BuiltIn.Evaluate json.dumps(${rcv_update_dict}) modules=json TemplatedRequests.Normalize_Jsons_And_Compare ${exp_update} ${rcv_update} +Verify_Empty_Reported_Data + [Documentation] Verfiy empty data response + CompareStream.Run_Keyword_If_At_Most_Fluorine TemplatedRequests.Get_As_Json_Templated ${BGP_L3VPN_DIR}${/}${L3VPN_RSPEMPTY} session=${CONFIG_SESSION} verify=True + CompareStream.Run_Keyword_If_At_Least_Neon Verify_Empty_Data_Neon + Verify_Reported_Data - [Arguments] ${url} ${exprspfile} + [Arguments] ${exprspdir} [Documentation] Verifies expected response - ${expected_rsp}= Get_Expected_Response_From_File ${exprspfile} - ${rsp}= RequestsLibrary.Get_Request ${CONFIG_SESSION} ${url} - TemplatedRequests.Normalize_Jsons_And_Compare ${expected_rsp} ${rsp.content} - -Get_Expected_Response_From_File - [Arguments] ${exprspfile} - [Documentation] Looks for release specific response first, then take default. - ${status} ${expresponse}= BuiltIn.Run_Keyword_And_Ignore_Error OperatingSystem.Get File ${exprspfile}.${ODL_STREAM} - Return From Keyword If '${status}' == 'PASS' ${expresponse} - ${expresponse}= OperatingSystem.Get File ${exprspfile} - [Return] ${expresponse} + &{mapping} BuiltIn.Create_Dictionary AS_PATH=${AS_PATH} + TemplatedRequests.Get_As_Json_Templated ${BGP_L3VPN_DIR}${/}${exprspdir} mapping=${mapping} session=${CONFIG_SESSION} verify=True Start_Bgp_Peer [Documentation] Starts bgp peer and verifies that the peer runs. @@ -202,3 +198,7 @@ L3vpn_Ipv4_To_App &{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 ${L3VPN_EXP} + +Verify_Empty_Data_Neon + [Documentation] Verify empty data on neon + TemplatedRequests.Get_As_Json_Templated ${BGP_L3VPN_DIR}${/}empty_route session=${CONFIG_SESSION} verify=True diff --git a/csit/suites/bgpcep/bgpfunct/090_bgp_functional_rt_constrain_validation.robot b/csit/suites/bgpcep/bgpfunct/090_bgp_functional_rt_constrain_validation.robot index 02fdc00cf3..c18254ad6b 100644 --- a/csit/suites/bgpcep/bgpfunct/090_bgp_functional_rt_constrain_validation.robot +++ b/csit/suites/bgpcep/bgpfunct/090_bgp_functional_rt_constrain_validation.robot @@ -36,20 +36,18 @@ Resource ../../../variables/Variables.robot ${HOLDTIME} 180 ${CONFIG_SESSION} config-session ${RT_CONSTRAIN_DIR} ${CURDIR}/../../../variables/bgpfunctional/rt_constrain -${L3VPN_RIB_URI} ${CURDIR}/../../../variables/bgpfunctional/rt_constrain/ext_l3vpn_rt_arg/rib -${L3VPN_IPV4_DIR} ${CURDIR}/../../../variables/bgpfunctional/l3vpn_ipv4 -${L3VPN_RSPEMPTY} ${L3VPN_IPV4_DIR}/bgp-l3vpn-ipv4-empty.json ${EBGP_DIR} ${CURDIR}/../../../variables/bgpfunctional/ebgp_peer ${PLAY_SCRIPT} ${CURDIR}/../../../../tools/fastbgp/play.py ${RIB_NAME} example-bgp-rib ${ODL_2_IP} 127.0.0.2 ${ODL_3_IP} 127.0.0.3 ${ODL_4_IP} 127.0.0.4 +${OLD_AS_PATH} \n"as-path": {}, +${NEW_AS_PATH} ${EMPTY} @{BGP_PEER_TYPES} external internal internal @{BGP_PEER_AS_NUMBERS} 65000 64496 64496 @{ODL_IP_INDICES_ALL} 2 3 4 @{L3VPN_RT_CHECK} false true false -&{LOC_RIB} PATH=loc-rib BGP_RIB=${RIB_NAME} &{RT_CONSTRAIN_APP_PEER} IP=${ODL_SYSTEM_IP} BGP_RIB=${RIB_NAME} &{ADJ_RIB_OUT} PATH=peer/bgp:%2F%2F${ODL_3_IP}/adj-rib-out BGP_RIB=${RIB_NAME} @@ -58,7 +56,7 @@ Reconfigure_ODL_To_Accept_Connection [Documentation] Configures BGP peer module with initiate-connection set to false. [Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing : FOR ${i} ${type} IN ZIP ${ODL_IP_INDICES_ALL} ${BGP_PEER_TYPES} - \ &{ODL_CONFIG}= BuiltIn.Create Dictionary IP=${ODL_${i}_IP} TYPE=${type} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} + \ &{ODL_CONFIG}= BuiltIn.Create_Dictionary IP=${ODL_${i}_IP} TYPE=${type} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} \ ... INITIATE=false BGP_RIB=${RIB_NAME} PASSIVE_MODE=true \ TemplatedRequests.Put_As_Xml_Templated ${EBGP_DIR} mapping=${ODL_CONFIG} session=${CONFIG_SESSION} @@ -68,21 +66,22 @@ Start_Bgp_Peers [Tags] local_run [Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing : FOR ${i} ${as_number} IN ZIP ${ODL_IP_INDICES_ALL} ${BGP_PEER_AS_NUMBERS} - \ BuiltIn.Log Many IP: ${ODL_${i}_IP} as_number: ${as_number} + \ BuiltIn.Log_Many IP: ${ODL_${i}_IP} as_number: ${as_number} \ Start_Bgp_Peer ${ODL_${i}_IP} ${as_number} 800${i} play.py.090.${i} Play_To_Odl_ext_l3vpn_rt_arg [Documentation] This TC sends route-target route containing route-target argument from node 1 to odl ... so odl can identify this peer as appropriate for advertizement when it recieves such route. Play_To_Odl_Non_Removal_BgpRpcClient2 ext_l3vpn_rt_arg ${RT_CONSTRAIN_DIR} - &{EFFECTIVE_RIB_IN}= BuiltIn.Create Dictionary PATH=peer/bgp:%2F%2F${ODL_2_IP}/effective-rib-in BGP_RIB=${RIB_NAME} - BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s TemplatedRequests.Get_As_Json_Templated ${RT_CONSTRAIN_DIR}/ext_l3vpn_rt_arg/rib mapping=${EFFECTIVE_RIB_IN} session=${CONFIG_SESSION} + &{effective_rib_in} BuiltIn.Create_Dictionary PATH=peer/bgp:%2F%2F${ODL_2_IP}/effective-rib-in BGP_RIB=${RIB_NAME} AS_PATH=${AS_PATH} + BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s TemplatedRequests.Get_As_Json_Templated ${RT_CONSTRAIN_DIR}/ext_l3vpn_rt_arg/rib mapping=${effective_rib_in} session=${CONFIG_SESSION} ... verify=True Play_To_Odl_rt_constrain_type_0 [Documentation] Sends RT route from node 2 to odl and then checks that odl advertizes l3vpn route from previous TC. Play_To_Odl_Non_Removal_BgpRpcClient3 rt_constrain_type_0 ${RT_CONSTRAIN_DIR} - BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s TemplatedRequests.Get_As_Json_Templated ${RT_CONSTRAIN_DIR}/rt_constrain_type_0/rib mapping=${LOC_RIB} session=${CONFIG_SESSION} + &{loc_rib} BuiltIn.Create_Dictionary PATH=loc-rib BGP_RIB=${RIB_NAME} AS_PATH=${AS_PATH} + BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s TemplatedRequests.Get_As_Json_Templated ${RT_CONSTRAIN_DIR}/rt_constrain_type_0/rib mapping=${loc_rib} session=${CONFIG_SESSION} ... verify=True Check_Presence_Of_l3vpn_Route_In_Node_2_Effective_Rib_In_Table @@ -92,27 +91,26 @@ Check_Presence_Of_l3vpn_Route_In_Node_2_Effective_Rib_In_Table Check_l3vpn_Route_Advertisement_On_Each_Node [Documentation] Checks that each node received or did not receive update message containing given hex message. - ${announce}= OperatingSystem.Get_File ${RT_CONSTRAIN_DIR}/ext_l3vpn_rt_arg/announce_ext_l3vpn_rt_arg.hex - ${announce_hex}= String.Remove_String ${announce} \n + ${announce} = OperatingSystem.Get_File ${RT_CONSTRAIN_DIR}/ext_l3vpn_rt_arg/announce_ext_l3vpn_rt_arg.hex + ${announce_hex} = String.Remove_String ${announce} \n Check_For_L3VPN_Odl_Avertisement ${announce_hex} Play_To_Odl_rt_constrain_type_1 [Documentation] Sends RT route from node 3 to odl and then checks that odl does not advertize l3vpn route from previous TC, ... that is that update message is empty. Play_To_Odl_Non_Removal_BgpRpcClient4 rt_constrain_type_1 ${RT_CONSTRAIN_DIR} - &{EFFECTIVE_RIB_IN}= BuiltIn.Create Dictionary PATH=peer/bgp:%2F%2F${ODL_4_IP}/effective-rib-in BGP_RIB=${RIB_NAME} - BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s TemplatedRequests.Get_As_Json_Templated ${RT_CONSTRAIN_DIR}/rt_constrain_type_1/rib mapping=${EFFECTIVE_RIB_IN} session=${CONFIG_SESSION} + &{effective_rib_in} = BuiltIn.Create_Dictionary PATH=peer/bgp:%2F%2F${ODL_4_IP}/effective-rib-in BGP_RIB=${RIB_NAME} AS_PATH=${AS_PATH} + BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s TemplatedRequests.Get_As_Json_Templated ${RT_CONSTRAIN_DIR}/rt_constrain_type_1/rib mapping=${effective_rib_in} session=${CONFIG_SESSION} ... verify=True - ${update}= BgpRpcClient4.play_get + ${update} = BgpRpcClient4.play_get BuiltIn.Should_Be_Equal ${update} ${Empty} Play_To_Odl_remove_rt [Documentation] Removes RT from odl and then checks that second node withdrew l3vpn route and third node did not receive any message. BgpRpcClient3.play_clean Play_To_Odl_Routes_Removal_Template_BgpRpcClient3 rt_constrain_type_0 ${RT_CONSTRAIN_DIR} - ${uri}= Resolve_Text_From_File ${L3VPN_RIB_URI} location.uri mapping=${ADJ_RIB_OUT} - BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s Verify_Reported_Data ${uri} ${L3VPN_RSPEMPTY} - ${update}= BgpRpcClient4.play_get + BuiltIn.Wait_Until_Keyword_Succeeds 3x 2s Verify_Empty_Reported_Data + ${update} = BgpRpcClient4.play_get BuiltIn.Should_Be_Equal ${update} ${Empty} Play_To_Odl_remove_routes @@ -132,7 +130,7 @@ Delete_Bgp_Peers_Configuration [Documentation] Revert the BGP configuration to the original state: without any configured peers. [Setup] SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing : FOR ${i} ${type} IN ZIP ${ODL_IP_INDICES_ALL} ${BGP_PEER_TYPES} - \ &{ODL_CONFIG}= BuiltIn.Create Dictionary IP=${ODL_${i}_IP} TYPE=${type} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} + \ &{ODL_CONFIG} = BuiltIn.Create_Dictionary IP=${ODL_${i}_IP} TYPE=${type} HOLDTIME=${HOLDTIME} PEER_PORT=${BGP_TOOL_PORT} \ ... INITIATE=false BGP_RIB=${RIB_NAME} PASSIVE_MODE=true \ TemplatedRequests.Delete_Templated ${EBGP_DIR} mapping=${ODL_CONFIG} session=${CONFIG_SESSION} @@ -146,6 +144,8 @@ Start_Suite RequestsLibrary.Create_Session ${CONFIG_SESSION} http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} SSHLibrary.Put_File ${PLAY_SCRIPT} . SSHKeywords.Assure_Library_Ipaddr target_dir=. + ${AS_PATH} = CompareStream.Set_Variable_If_At_Least_Neon ${NEW_AS_PATH} ${OLD_AS_PATH} + BuiltIn.Set_Suite_Variable ${AS_PATH} Stop_Suite [Documentation] Suite teardown keyword @@ -155,26 +155,26 @@ Stop_Suite Start_Bgp_Peer [Arguments] ${ip} ${as_number} ${port} ${filename} [Documentation] Starts bgp peer. - ${command}= BuiltIn.Set_Variable python play.py --amount 0 --myip=${ip} --myport=${BGP_TOOL_PORT} --peerip=${ODL_SYSTEM_IP} --asnumber=${as_number} --peerport=${ODL_BGP_PORT} --port=${port} --usepeerip --debug --allf --wfr 1 &> ${filename} & + ${command} = BuiltIn.Set_Variable python play.py --amount 0 --myip=${ip} --myport=${BGP_TOOL_PORT} --peerip=${ODL_SYSTEM_IP} --asnumber=${as_number} --peerport=${ODL_BGP_PORT} --port=${port} --usepeerip --debug --allf --wfr 1 &> ${filename} & BuiltIn.Log ${command} - ${output}= SSHLibrary.Write ${command} + ${output} = SSHLibrary.Write ${command} Play_To_Odl_Non_Removal_BgpRpcClient2 [Arguments] ${totest} ${dir} ${ipv}=ipv4 [Documentation] Read contents of file ${dir}/${totest}/announce_${totest}.hex and send it to odl. - ${announce_hex}= OperatingSystem.Get_File ${dir}/${totest}/announce_${totest}.hex + ${announce_hex} = OperatingSystem.Get_File ${dir}/${totest}/announce_${totest}.hex BgpRpcClient2.play_send ${announce_hex} Play_To_Odl_Non_Removal_BgpRpcClient3 [Arguments] ${totest} ${dir} ${ipv}=ipv4 [Documentation] Read contents of file ${dir}/${totest}/announce_${totest}.hex and send it to odl. - ${announce_hex}= OperatingSystem.Get_File ${dir}/${totest}/announce_${totest}.hex + ${announce_hex} = OperatingSystem.Get_File ${dir}/${totest}/announce_${totest}.hex BgpRpcClient3.play_send ${announce_hex} Play_To_Odl_Non_Removal_BgpRpcClient4 [Arguments] ${totest} ${dir} ${ipv}=ipv4 [Documentation] Read contents of file ${dir}/${totest}/announce_${totest}.hex and send it to odl. - ${announce_hex}= OperatingSystem.Get_File ${dir}/${totest}/announce_${totest}.hex + ${announce_hex} = OperatingSystem.Get_File ${dir}/${totest}/announce_${totest}.hex BgpRpcClient4.play_send ${announce_hex} Play_To_Odl_Routes_Removal_Template_BgpRpcClient2 @@ -201,23 +201,23 @@ Play_To_Odl_Routes_Removal_Template_BgpRpcClient4 Get_Update_Message_And_Compare_With_Hex_BgpRpcClient2 [Arguments] ${hex} ${option} [Documentation] Returns hex update message and compares it to hex. - ${update}= BgpRpcClient2.play_get - BuiltIn.Run_Keyword_If "${option}"=="true" BuiltIn.Should_Be_Equal_As_Strings ${update} ${hex} - BuiltIn.Run_Keyword_If "${option}"=="false" BuiltIn.Should_Not_Be_Equal_As_Strings ${update} ${hex} + ${update} = BgpRpcClient2.play_get + BuiltIn.Run_Keyword_If "${option}" == "true" BuiltIn.Should_Be_Equal_As_Strings ${update} ${hex} + BuiltIn.Run_Keyword_If "${option}" == "false" BuiltIn.Should_Not_Be_Equal_As_Strings ${update} ${hex} Get_Update_Message_And_Compare_With_Hex_BgpRpcClient3 [Arguments] ${hex} ${option} [Documentation] Returns hex update message and compares it to hex. - ${update}= BgpRpcClient3.play_get - BuiltIn.Run_Keyword_If "${option}"=="true" BuiltIn.Should_Be_Equal_As_Strings ${update} ${hex} - BuiltIn.Run_Keyword_If "${option}"=="false" BuiltIn.Should_Not_Be_Equal_As_Strings ${update} ${hex} + ${update} = BgpRpcClient3.play_get + BuiltIn.Run_Keyword_If "${option}" == "true" BuiltIn.Should_Be_Equal_As_Strings ${update} ${hex} + BuiltIn.Run_Keyword_If "${option}" == "false" BuiltIn.Should_Not_Be_Equal_As_Strings ${update} ${hex} Get_Update_Message_And_Compare_With_Hex_BgpRpcClient4 [Arguments] ${hex} ${option} [Documentation] Returns hex update message and compares it to hex. - ${update}= BgpRpcClient4.play_get - BuiltIn.Run_Keyword_If "${option}"=="true" BuiltIn.Should_Be_Equal_As_Strings ${update} ${hex} - BuiltIn.Run_Keyword_If "${option}"=="false" BuiltIn.Should_Not_Be_Equal_As_Strings ${update} ${hex} + ${update} = BgpRpcClient4.play_get + BuiltIn.Run_Keyword_If "${option}" == "true" BuiltIn.Should_Be_Equal_As_Strings ${update} ${hex} + BuiltIn.Run_Keyword_If "${option}" == "false" BuiltIn.Should_Not_Be_Equal_As_Strings ${update} ${hex} Check_For_L3VPN_Odl_Avertisement [Arguments] ${announce_hex} @@ -226,22 +226,21 @@ Check_For_L3VPN_Odl_Avertisement \ ${keyword_name}= BuiltIn.Set_Variable Get_Update_Message_And_Compare_With_Hex_BgpRpcClient${i} \ BuiltIn.Run_Keyword ${keyword_name} ${announce_hex} ${option} -Resolve_Text_From_File - [Arguments] ${folder} ${file_name} ${mapping}={} - [Documentation] Read and Log contents of file ${folder}/${file_name}, remove endline, - ... perform safe substitution, return result. - ${file_path}= BuiltIn.Set_Variable ${folder}${/}${file_name} - ${template} = OperatingSystem.Get_File ${file_path} - BuiltIn.Log ${template} - ${final_text} = BuiltIn.Evaluate string.Template('''${template}'''.rstrip()).safe_substitute(${mapping}) modules=string - [Return] ${final_text} - Verify_Reported_Data [Arguments] ${url} ${exprspfile} [Documentation] Verifies expected response - ${expresponse}= OperatingSystem.Get File ${exprspfile} + ${expresponse} = OperatingSystem.Get File ${exprspfile} BuiltIn.Log expected_response: ${expresponse} - ${rsp}= RequestsLibrary.Get_Request ${CONFIG_SESSION} ${url} + ${rsp} = RequestsLibrary.Get_Request ${CONFIG_SESSION} ${url} BuiltIn.Log actual_response: ${rsp} BuiltIn.Log actual_response_content: ${rsp.content} TemplatedRequests.Normalize_Jsons_And_Compare ${expresponse} ${rsp.content} + +Verify_Empty_Reported_Data + [Documentation] Verify empty data response + CompareStream.Run_Keyword_If_At_Most_Fluorine TemplatedRequests.Get_As_Json_Templated ${RT_CONSTRAIN_DIR}${/}empty_l3vpn session=${CONFIG_SESSION} mapping=${ADJ_RIB_OUT} verify=True + CompareStream.Run_Keyword_If_At_Least_Neon Verify_Empty_Data_Neon + +Verify_Empty_Data_Neon + [Documentation] Verify empty data on neon + TemplatedRequests.Get_As_Json_Templated ${RT_CONSTRAIN_DIR}${/}empty_route session=${CONFIG_SESSION} mapping=${ADJ_RIB_OUT} verify=True diff --git a/csit/variables/bgpfunctional/l3vpn_ipv4/bgp-l3vpn-ipv4.json b/csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4/data.json similarity index 100% rename from csit/variables/bgpfunctional/l3vpn_ipv4/bgp-l3vpn-ipv4.json rename to csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4/data.json diff --git a/csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4/location.uri b/csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4/location.uri new file mode 100644 index 0000000000..def78398e3 --- /dev/null +++ b/csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4/location.uri @@ -0,0 +1 @@ +/restconf/operational/bgp-rib:bgp-rib/rib/example-bgp-rib/loc-rib/tables/bgp-types:ipv4-address-family/bgp-types:mpls-labeled-vpn-subsequent-address-family/bgp-vpn-ipv4:vpn-ipv4-routes diff --git a/csit/variables/bgpfunctional/l3vpn_ipv4/bgp-l3vpn-ipv4-empty.json b/csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4_empty/data.json similarity index 100% rename from csit/variables/bgpfunctional/l3vpn_ipv4/bgp-l3vpn-ipv4-empty.json rename to csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4_empty/data.json diff --git a/csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4_empty/location.uri b/csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4_empty/location.uri new file mode 100644 index 0000000000..def78398e3 --- /dev/null +++ b/csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4_empty/location.uri @@ -0,0 +1 @@ +/restconf/operational/bgp-rib:bgp-rib/rib/example-bgp-rib/loc-rib/tables/bgp-types:ipv4-address-family/bgp-types:mpls-labeled-vpn-subsequent-address-family/bgp-vpn-ipv4:vpn-ipv4-routes diff --git a/csit/variables/bgpfunctional/l3vpn_ipv4/bgp-l3vpn-ipv4-path.json b/csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4_path/data.json similarity index 91% rename from csit/variables/bgpfunctional/l3vpn_ipv4/bgp-l3vpn-ipv4-path.json rename to csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4_path/data.json index 90a97e9d41..9ef16743f6 100644 --- a/csit/variables/bgpfunctional/l3vpn_ipv4/bgp-l3vpn-ipv4-path.json +++ b/csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4_path/data.json @@ -2,8 +2,7 @@ "bgp-vpn-ipv4:vpn-ipv4-routes": { "vpn-route": [ { - "attributes": { - "as-path": {}, + "attributes": {$AS_PATH "ipv4-next-hop": { "global": "10.0.255.254" }, diff --git a/csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4_path/location.uri b/csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4_path/location.uri new file mode 100644 index 0000000000..def78398e3 --- /dev/null +++ b/csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4_path/location.uri @@ -0,0 +1 @@ +/restconf/operational/bgp-rib:bgp-rib/rib/example-bgp-rib/loc-rib/tables/bgp-types:ipv4-address-family/bgp-types:mpls-labeled-vpn-subsequent-address-family/bgp-vpn-ipv4:vpn-ipv4-routes diff --git a/csit/variables/bgpfunctional/l3vpn_ipv4/empty_route/data.json b/csit/variables/bgpfunctional/l3vpn_ipv4/empty_route/data.json new file mode 100644 index 0000000000..3566ea931f --- /dev/null +++ b/csit/variables/bgpfunctional/l3vpn_ipv4/empty_route/data.json @@ -0,0 +1,11 @@ +{ + "tables": [ + { + "afi": "bgp-types:ipv4-address-family", + "safi": "bgp-types:mpls-labeled-vpn-subsequent-address-family", + "attributes": { + "uptodate": "*" + } + } + ] +} diff --git a/csit/variables/bgpfunctional/l3vpn_ipv4/empty_route/location.uri b/csit/variables/bgpfunctional/l3vpn_ipv4/empty_route/location.uri new file mode 100644 index 0000000000..c512232df5 --- /dev/null +++ b/csit/variables/bgpfunctional/l3vpn_ipv4/empty_route/location.uri @@ -0,0 +1 @@ +/restconf/operational/bgp-rib:bgp-rib/rib/example-bgp-rib/loc-rib/tables/bgp-types:ipv4-address-family/bgp-types:mpls-labeled-vpn-subsequent-address-family/ diff --git a/csit/variables/bgpfunctional/l3vpn_ipv4/empty_route/volatiles.list b/csit/variables/bgpfunctional/l3vpn_ipv4/empty_route/volatiles.list new file mode 100644 index 0000000000..e20793431c --- /dev/null +++ b/csit/variables/bgpfunctional/l3vpn_ipv4/empty_route/volatiles.list @@ -0,0 +1 @@ +uptodate diff --git a/csit/variables/bgpfunctional/l3vpn_ipv4/route_expected/exa-expected.json b/csit/variables/bgpfunctional/l3vpn_ipv4/exa_expected/data.json similarity index 100% rename from csit/variables/bgpfunctional/l3vpn_ipv4/route_expected/exa-expected.json rename to csit/variables/bgpfunctional/l3vpn_ipv4/exa_expected/data.json diff --git a/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.fluorine/data.json b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.fluorine/data.json new file mode 100644 index 0000000000..ec3ea55019 --- /dev/null +++ b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.fluorine/data.json @@ -0,0 +1,3 @@ +{ + "bgp-l3vpn-mcast:l3vpn-mcast-routes-ipv4": {} +} diff --git a/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.fluorine/location.uri b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.fluorine/location.uri new file mode 100644 index 0000000000..ceff12f0c4 --- /dev/null +++ b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.fluorine/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-l3vpn-mcast:mcast-mpls-labeled-vpn-subsequent-address-family/bgp-l3vpn-mcast:l3vpn-mcast-routes-ipv4 diff --git a/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.oxygen/data.json b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.oxygen/data.json new file mode 100644 index 0000000000..ec3ea55019 --- /dev/null +++ b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.oxygen/data.json @@ -0,0 +1,3 @@ +{ + "bgp-l3vpn-mcast:l3vpn-mcast-routes-ipv4": {} +} diff --git a/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.oxygen/location.uri b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.oxygen/location.uri new file mode 100644 index 0000000000..ceff12f0c4 --- /dev/null +++ b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.oxygen/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-l3vpn-mcast:mcast-mpls-labeled-vpn-subsequent-address-family/bgp-l3vpn-mcast:l3vpn-mcast-routes-ipv4 diff --git a/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4/data.json b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4/data.json index ec3ea55019..1fdd416137 100644 --- a/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4/data.json +++ b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4/data.json @@ -1,3 +1,11 @@ { - "bgp-l3vpn-mcast:l3vpn-mcast-routes-ipv4": {} + "tables": [ + { + "afi": "bgp-types:ipv4-address-family", + "safi": "bgp-l3vpn-mcast:mcast-mpls-labeled-vpn-subsequent-address-family", + "attributes": { + "uptodate": "*" + } + } + ] } diff --git a/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4/location.uri b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4/location.uri index ceff12f0c4..ffda217313 100644 --- a/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4/location.uri +++ b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4/location.uri @@ -1 +1 @@ -restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-l3vpn-mcast:mcast-mpls-labeled-vpn-subsequent-address-family/bgp-l3vpn-mcast:l3vpn-mcast-routes-ipv4 +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-l3vpn-mcast:mcast-mpls-labeled-vpn-subsequent-address-family/ diff --git a/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4/volatiles.list b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4/volatiles.list new file mode 100644 index 0000000000..e20793431c --- /dev/null +++ b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4/volatiles.list @@ -0,0 +1 @@ +uptodate diff --git a/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.fluorine/data.json b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.fluorine/data.json new file mode 100644 index 0000000000..fe6788d81e --- /dev/null +++ b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.fluorine/data.json @@ -0,0 +1,3 @@ +{ + "bgp-l3vpn-mcast:l3vpn-mcast-routes-ipv6": {} +} diff --git a/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.fluorine/location.uri b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.fluorine/location.uri new file mode 100644 index 0000000000..2ea86440c1 --- /dev/null +++ b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.fluorine/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv6-address-family/bgp-l3vpn-mcast:mcast-mpls-labeled-vpn-subsequent-address-family/bgp-l3vpn-mcast:l3vpn-mcast-routes-ipv6 diff --git a/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.oxygen/data.json b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.oxygen/data.json new file mode 100644 index 0000000000..fe6788d81e --- /dev/null +++ b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.oxygen/data.json @@ -0,0 +1,3 @@ +{ + "bgp-l3vpn-mcast:l3vpn-mcast-routes-ipv6": {} +} diff --git a/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.oxygen/location.uri b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.oxygen/location.uri new file mode 100644 index 0000000000..2ea86440c1 --- /dev/null +++ b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.oxygen/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv6-address-family/bgp-l3vpn-mcast:mcast-mpls-labeled-vpn-subsequent-address-family/bgp-l3vpn-mcast:l3vpn-mcast-routes-ipv6 diff --git a/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6/data.json b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6/data.json index fe6788d81e..6493c64047 100644 --- a/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6/data.json +++ b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6/data.json @@ -1,3 +1,11 @@ { - "bgp-l3vpn-mcast:l3vpn-mcast-routes-ipv6": {} + "tables": [ + { + "afi": "bgp-types:ipv6-address-family", + "safi": "bgp-l3vpn-mcast:mcast-mpls-labeled-vpn-subsequent-address-family", + "attributes": { + "uptodate": "*" + } + } + ] } diff --git a/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6/location.uri b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6/location.uri index 2ea86440c1..665f676669 100644 --- a/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6/location.uri +++ b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6/location.uri @@ -1 +1 @@ -restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv6-address-family/bgp-l3vpn-mcast:mcast-mpls-labeled-vpn-subsequent-address-family/bgp-l3vpn-mcast:l3vpn-mcast-routes-ipv6 +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv6-address-family/bgp-l3vpn-mcast:mcast-mpls-labeled-vpn-subsequent-address-family/ diff --git a/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6/volatiles.list b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6/volatiles.list new file mode 100644 index 0000000000..e20793431c --- /dev/null +++ b/csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6/volatiles.list @@ -0,0 +1 @@ +uptodate diff --git a/csit/variables/bgpfunctional/l3vpn_mcast/l3vpn_mcast/rib/data.json b/csit/variables/bgpfunctional/l3vpn_mcast/l3vpn_mcast/rib/data.json index a09cd28cd4..f1ed1c2b22 100644 --- a/csit/variables/bgpfunctional/l3vpn_mcast/l3vpn_mcast/rib/data.json +++ b/csit/variables/bgpfunctional/l3vpn_mcast/l3vpn_mcast/rib/data.json @@ -7,8 +7,7 @@ "attributes": { "ipv4-next-hop": { "global": "127.16.0.44" - }, - "as-path": {}, + },$AS_PATH "extended-communities": [ { "vrf-route-import-extended-community": { diff --git a/csit/variables/bgpfunctional/l3vpn_mcast/l3vpn_mcast_ipv6/rib/data.json b/csit/variables/bgpfunctional/l3vpn_mcast/l3vpn_mcast_ipv6/rib/data.json index c724a81afa..828ecadcc6 100644 --- a/csit/variables/bgpfunctional/l3vpn_mcast/l3vpn_mcast_ipv6/rib/data.json +++ b/csit/variables/bgpfunctional/l3vpn_mcast/l3vpn_mcast_ipv6/rib/data.json @@ -7,8 +7,7 @@ "attributes": { "ipv6-next-hop": { "global": "2001:db8:1::7" - }, - "as-path": {}, + },$AS_PATH "extended-communities": [ { "vrf-route-import-extended-community": { diff --git a/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.fluorine/data.json b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.fluorine/data.json new file mode 100644 index 0000000000..da9e2d3c12 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.fluorine/data.json @@ -0,0 +1,3 @@ +{ + "bgp-mvpn-ipv4:mvpn-routes-ipv4": {} +} diff --git a/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.fluorine/location.uri b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.fluorine/location.uri new file mode 100644 index 0000000000..1256403496 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.fluorine/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv4:mvpn-routes-ipv4 diff --git a/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.oxygen/data.json b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.oxygen/data.json new file mode 100644 index 0000000000..da9e2d3c12 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.oxygen/data.json @@ -0,0 +1,3 @@ +{ + "bgp-mvpn-ipv4:mvpn-routes-ipv4": {} +} diff --git a/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.oxygen/location.uri b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.oxygen/location.uri new file mode 100644 index 0000000000..1256403496 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.oxygen/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv4:mvpn-routes-ipv4 diff --git a/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4/data.json b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4/data.json index da9e2d3c12..e1f398ff04 100644 --- a/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4/data.json +++ b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4/data.json @@ -1,3 +1,11 @@ { - "bgp-mvpn-ipv4:mvpn-routes-ipv4": {} + "tables": [ + { + "afi": "bgp-types:ipv4-address-family", + "safi": "bgp-mvpn:mcast-vpn-subsequent-address-family", + "attributes": { + "uptodate": "*" + } + } + ] } diff --git a/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4/location.uri b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4/location.uri index 1256403496..e3733d69e0 100644 --- a/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4/location.uri +++ b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4/location.uri @@ -1 +1 @@ -restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv4:mvpn-routes-ipv4 +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/ diff --git a/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4/volatiles.list b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4/volatiles.list new file mode 100644 index 0000000000..e20793431c --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv4/volatiles.list @@ -0,0 +1 @@ +uptodate diff --git a/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.fluorine/data.json b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.fluorine/data.json new file mode 100644 index 0000000000..21650b8b0a --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.fluorine/data.json @@ -0,0 +1,3 @@ +{ + "bgp-mvpn-ipv6:mvpn-routes-ipv6": {} +} diff --git a/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.fluorine/location.uri b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.fluorine/location.uri new file mode 100644 index 0000000000..99626a4185 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.fluorine/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv6-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv6:mvpn-routes-ipv6 diff --git a/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.oxygen/data.json b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.oxygen/data.json new file mode 100644 index 0000000000..21650b8b0a --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.oxygen/data.json @@ -0,0 +1,3 @@ +{ + "bgp-mvpn-ipv6:mvpn-routes-ipv6": {} +} diff --git a/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.oxygen/location.uri b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.oxygen/location.uri new file mode 100644 index 0000000000..99626a4185 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.oxygen/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv6-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv6:mvpn-routes-ipv6 diff --git a/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6/data.json b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6/data.json index 21650b8b0a..1a9eacb23d 100644 --- a/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6/data.json +++ b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6/data.json @@ -1,3 +1,11 @@ { - "bgp-mvpn-ipv6:mvpn-routes-ipv6": {} + "tables": [ + { + "afi": "bgp-types:ipv6-address-family", + "safi": "bgp-mvpn:mcast-vpn-subsequent-address-family", + "attributes": { + "uptodate": "*" + } + } + ] } diff --git a/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6/location.uri b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6/location.uri index 99626a4185..5eb1166952 100644 --- a/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6/location.uri +++ b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6/location.uri @@ -1 +1 @@ -restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv6-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv6:mvpn-routes-ipv6 +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv6-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/ diff --git a/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6/volatiles.list b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6/volatiles.list new file mode 100644 index 0000000000..e20793431c --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/empty_routes/ipv6/volatiles.list @@ -0,0 +1 @@ +uptodate diff --git a/csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/rib/data.json b/csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/rib/data.json index 8a0336aa49..11345447ea 100644 --- a/csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/rib/data.json +++ b/csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/rib/data.json @@ -10,8 +10,7 @@ }, "multi-exit-disc": { "med": 0 - }, - "as-path": {}, + },$AS_PATH "origin": { "value": "egp" }, diff --git a/csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/rib/data.json b/csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/rib/data.json index 53d969e311..906573be4f 100644 --- a/csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/rib/data.json +++ b/csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/rib/data.json @@ -10,8 +10,7 @@ }, "multi-exit-disc": { "med": 0 - }, - "as-path": {}, + },$AS_PATH "origin": { "value": "egp" }, diff --git a/csit/variables/bgpfunctional/mvpn/intra_ipv6/rib/data.json b/csit/variables/bgpfunctional/mvpn/intra_ipv6/rib/data.json index 3ffb7890d5..08b8547c09 100644 --- a/csit/variables/bgpfunctional/mvpn/intra_ipv6/rib/data.json +++ b/csit/variables/bgpfunctional/mvpn/intra_ipv6/rib/data.json @@ -8,9 +8,7 @@ "route-distinguisher": "172.16.0.44:101", "orig-route-ip": "192.168.100.1" }, - "attributes": { - "as-path": { - }, + "attributes": {$AS_PATH "ipv6-next-hop": { "global": "2001:db8:1::6" }, diff --git a/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/rib/data.json b/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/rib/data.json index c27f09db14..d4e3ef459b 100644 --- a/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/rib/data.json +++ b/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/rib/data.json @@ -10,8 +10,7 @@ }, "multi-exit-disc": { "med": 0 - }, - "as-path": {}, + },$AS_PATH "pe-distinguisher-labels-attribute": { "pe-distinguisher-label-attribute": [ { diff --git a/csit/variables/bgpfunctional/mvpn/intra_source_as/rib/data.json b/csit/variables/bgpfunctional/mvpn/intra_source_as/rib/data.json index ff9d8599dc..b69c2feda3 100644 --- a/csit/variables/bgpfunctional/mvpn/intra_source_as/rib/data.json +++ b/csit/variables/bgpfunctional/mvpn/intra_source_as/rib/data.json @@ -18,8 +18,7 @@ ], "ipv4-next-hop": { "global": "127.1.1.1" - }, - "as-path": {}, + },$AS_PATH "origin": { "value": "egp" }, @@ -34,4 +33,4 @@ } ] } -} \ No newline at end of file +} diff --git a/csit/variables/bgpfunctional/mvpn/intra_source_as_4/rib/data.json b/csit/variables/bgpfunctional/mvpn/intra_source_as_4/rib/data.json index 2dd2b09e9c..32e1237917 100644 --- a/csit/variables/bgpfunctional/mvpn/intra_source_as_4/rib/data.json +++ b/csit/variables/bgpfunctional/mvpn/intra_source_as_4/rib/data.json @@ -18,8 +18,7 @@ ], "ipv4-next-hop": { "global": "127.1.1.1" - }, - "as-path": {}, + },$AS_PATH "origin": { "value": "igp" }, @@ -34,4 +33,4 @@ } ] } -} \ No newline at end of file +} diff --git a/csit/variables/bgpfunctional/mvpn/intra_vrf/rib/data.json b/csit/variables/bgpfunctional/mvpn/intra_vrf/rib/data.json index 0d00ea9244..243fc7c1be 100644 --- a/csit/variables/bgpfunctional/mvpn/intra_vrf/rib/data.json +++ b/csit/variables/bgpfunctional/mvpn/intra_vrf/rib/data.json @@ -21,8 +21,7 @@ ], "ipv4-next-hop": { "global": "127.1.1.1" - }, - "as-path": {}, + },$AS_PATH "origin": { "value": "egp" }, @@ -37,4 +36,4 @@ } ] } -} \ No newline at end of file +} diff --git a/csit/variables/bgpfunctional/mvpn/leaf_ad/rib/data.json b/csit/variables/bgpfunctional/mvpn/leaf_ad/rib/data.json index 4c1a737e1d..a1efb21cef 100644 --- a/csit/variables/bgpfunctional/mvpn/leaf_ad/rib/data.json +++ b/csit/variables/bgpfunctional/mvpn/leaf_ad/rib/data.json @@ -10,8 +10,7 @@ }, "multi-exit-disc": { "med": 0 - }, - "as-path": {}, + },$AS_PATH "origin": { "value": "egp" }, diff --git a/csit/variables/bgpfunctional/mvpn/shared_tree_join/rib/data.json b/csit/variables/bgpfunctional/mvpn/shared_tree_join/rib/data.json index c8e87161be..50e1a99f86 100644 --- a/csit/variables/bgpfunctional/mvpn/shared_tree_join/rib/data.json +++ b/csit/variables/bgpfunctional/mvpn/shared_tree_join/rib/data.json @@ -10,8 +10,7 @@ }, "multi-exit-disc": { "med": 0 - }, - "as-path": {}, + },$AS_PATH "origin": { "value": "egp" }, diff --git a/csit/variables/bgpfunctional/mvpn/source_active_ad/rib/data.json b/csit/variables/bgpfunctional/mvpn/source_active_ad/rib/data.json index 1da57727c1..eed47aa950 100644 --- a/csit/variables/bgpfunctional/mvpn/source_active_ad/rib/data.json +++ b/csit/variables/bgpfunctional/mvpn/source_active_ad/rib/data.json @@ -10,8 +10,7 @@ }, "multi-exit-disc": { "med": 0 - }, - "as-path": {}, + },$AS_PATH "origin": { "value": "egp" }, diff --git a/csit/variables/bgpfunctional/mvpn/source_tree_join/rib/data.json b/csit/variables/bgpfunctional/mvpn/source_tree_join/rib/data.json index b646dc6404..61eaa1a66b 100644 --- a/csit/variables/bgpfunctional/mvpn/source_tree_join/rib/data.json +++ b/csit/variables/bgpfunctional/mvpn/source_tree_join/rib/data.json @@ -10,8 +10,7 @@ }, "multi-exit-disc": { "med": 0 - }, - "as-path": {}, + },$AS_PATH "origin": { "value": "egp" }, diff --git a/csit/variables/bgpfunctional/mvpn/spmsi_ad/rib/data.json b/csit/variables/bgpfunctional/mvpn/spmsi_ad/rib/data.json index c3346ac46a..c35b648621 100644 --- a/csit/variables/bgpfunctional/mvpn/spmsi_ad/rib/data.json +++ b/csit/variables/bgpfunctional/mvpn/spmsi_ad/rib/data.json @@ -10,8 +10,7 @@ }, "multi-exit-disc": { "med": 0 - }, - "as-path": {}, + },$AS_PATH "origin": { "value": "egp" }, diff --git a/csit/variables/bgpfunctional/rt_constrain/empty_l3vpn/data.json b/csit/variables/bgpfunctional/rt_constrain/empty_l3vpn/data.json new file mode 100644 index 0000000000..8d2885cd0e --- /dev/null +++ b/csit/variables/bgpfunctional/rt_constrain/empty_l3vpn/data.json @@ -0,0 +1,3 @@ +{ + "bgp-vpn-ipv4:vpn-ipv4-routes": {} +} diff --git a/csit/variables/bgpfunctional/rt_constrain/empty_l3vpn/location.uri b/csit/variables/bgpfunctional/rt_constrain/empty_l3vpn/location.uri new file mode 100644 index 0000000000..08fb5603d5 --- /dev/null +++ b/csit/variables/bgpfunctional/rt_constrain/empty_l3vpn/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-types:mpls-labeled-vpn-subsequent-address-family/bgp-vpn-ipv4:vpn-ipv4-routes diff --git a/csit/variables/bgpfunctional/rt_constrain/empty_route/data.json b/csit/variables/bgpfunctional/rt_constrain/empty_route/data.json new file mode 100644 index 0000000000..3566ea931f --- /dev/null +++ b/csit/variables/bgpfunctional/rt_constrain/empty_route/data.json @@ -0,0 +1,11 @@ +{ + "tables": [ + { + "afi": "bgp-types:ipv4-address-family", + "safi": "bgp-types:mpls-labeled-vpn-subsequent-address-family", + "attributes": { + "uptodate": "*" + } + } + ] +} diff --git a/csit/variables/bgpfunctional/rt_constrain/empty_route/location.uri b/csit/variables/bgpfunctional/rt_constrain/empty_route/location.uri new file mode 100644 index 0000000000..08fb5603d5 --- /dev/null +++ b/csit/variables/bgpfunctional/rt_constrain/empty_route/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-types:mpls-labeled-vpn-subsequent-address-family/bgp-vpn-ipv4:vpn-ipv4-routes diff --git a/csit/variables/bgpfunctional/rt_constrain/empty_route/volatiles.list b/csit/variables/bgpfunctional/rt_constrain/empty_route/volatiles.list new file mode 100644 index 0000000000..e20793431c --- /dev/null +++ b/csit/variables/bgpfunctional/rt_constrain/empty_route/volatiles.list @@ -0,0 +1 @@ +uptodate diff --git a/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.fluorine/data.json b/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.fluorine/data.json new file mode 100644 index 0000000000..6ca559acc5 --- /dev/null +++ b/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.fluorine/data.json @@ -0,0 +1,3 @@ +{ + "bgp-route-target-constrain:route-target-constrain-routes": {} +} diff --git a/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.fluorine/location.uri b/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.fluorine/location.uri new file mode 100644 index 0000000000..6dbb985871 --- /dev/null +++ b/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.fluorine/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-route-target-constrain:route-target-constrain-subsequent-address-family/bgp-route-target-constrain:route-target-constrain-routes diff --git a/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.oxygen/data.json b/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.oxygen/data.json new file mode 100644 index 0000000000..6ca559acc5 --- /dev/null +++ b/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.oxygen/data.json @@ -0,0 +1,3 @@ +{ + "bgp-route-target-constrain:route-target-constrain-routes": {} +} diff --git a/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.oxygen/location.uri b/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.oxygen/location.uri new file mode 100644 index 0000000000..6dbb985871 --- /dev/null +++ b/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.oxygen/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-route-target-constrain:route-target-constrain-subsequent-address-family/bgp-route-target-constrain:route-target-constrain-routes diff --git a/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4/data.json b/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4/data.json index 6ca559acc5..9dec9e972d 100644 --- a/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4/data.json +++ b/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4/data.json @@ -1,3 +1,11 @@ { - "bgp-route-target-constrain:route-target-constrain-routes": {} + "tables": [ + { + "afi": "bgp-types:ipv4-address-family", + "safi": "bgp-route-target-constrain:route-target-constrain-subsequent-address-family", + "attributes": { + "uptodate": "*" + } + } + ] } diff --git a/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4/location.uri b/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4/location.uri index 6dbb985871..f6e4d665ef 100644 --- a/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4/location.uri +++ b/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4/location.uri @@ -1 +1 @@ -restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-route-target-constrain:route-target-constrain-subsequent-address-family/bgp-route-target-constrain:route-target-constrain-routes +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-route-target-constrain:route-target-constrain-subsequent-address-family/ diff --git a/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4/volatiles.list b/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4/volatiles.list new file mode 100644 index 0000000000..e20793431c --- /dev/null +++ b/csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4/volatiles.list @@ -0,0 +1 @@ +uptodate diff --git a/csit/variables/bgpfunctional/rt_constrain/l3vpn_rt_arg/rib/data.json b/csit/variables/bgpfunctional/rt_constrain/l3vpn_rt_arg/rib/data.json index d7152afac8..74bd2ad546 100644 --- a/csit/variables/bgpfunctional/rt_constrain/l3vpn_rt_arg/rib/data.json +++ b/csit/variables/bgpfunctional/rt_constrain/l3vpn_rt_arg/rib/data.json @@ -25,11 +25,10 @@ ], "ipv4-next-hop": { "global": "10.0.255.254" - }, + },$AS_PATH "origin": { "value": "igp" - }, - "as-path": {} + } }, "prefix": "1.1.1.0/24" } diff --git a/csit/variables/bgpfunctional/rt_constrain/rt_constrain_default/rib/data.json b/csit/variables/bgpfunctional/rt_constrain/rt_constrain_default/rib/data.json index 39882ff61e..b2ebd14839 100644 --- a/csit/variables/bgpfunctional/rt_constrain/rt_constrain_default/rib/data.json +++ b/csit/variables/bgpfunctional/rt_constrain/rt_constrain_default/rib/data.json @@ -4,8 +4,7 @@ { "route-key": "", "path-id": 0, - "attributes": { - "as-path": {}, + "attributes": {$AS_PATH "ipv4-next-hop": { "global": "199.20.166.41" }, diff --git a/csit/variables/bgpfunctional/rt_constrain/rt_constrain_type_0/rib/data.json b/csit/variables/bgpfunctional/rt_constrain/rt_constrain_type_0/rib/data.json index b21c12bfb5..7c34965193 100644 --- a/csit/variables/bgpfunctional/rt_constrain/rt_constrain_type_0/rib/data.json +++ b/csit/variables/bgpfunctional/rt_constrain/rt_constrain_type_0/rib/data.json @@ -7,8 +7,7 @@ "attributes": { "ipv4-next-hop": { "global": "199.20.166.41" - }, - "as-path": {}, + },$AS_PATH "origin": { "value": "igp" }, diff --git a/csit/variables/bgpfunctional/rt_constrain/rt_constrain_type_1/rib/data.json b/csit/variables/bgpfunctional/rt_constrain/rt_constrain_type_1/rib/data.json index 069ac6949d..62af72453e 100644 --- a/csit/variables/bgpfunctional/rt_constrain/rt_constrain_type_1/rib/data.json +++ b/csit/variables/bgpfunctional/rt_constrain/rt_constrain_type_1/rib/data.json @@ -7,8 +7,7 @@ "attributes": { "ipv4-next-hop": { "global": "199.20.166.41" - }, - "as-path": {}, + },$AS_PATH "origin": { "value": "igp" }, diff --git a/csit/variables/bgpfunctional/rt_constrain/rt_constrain_type_2/rib/data.json b/csit/variables/bgpfunctional/rt_constrain/rt_constrain_type_2/rib/data.json index a6c3422735..583070a8d0 100644 --- a/csit/variables/bgpfunctional/rt_constrain/rt_constrain_type_2/rib/data.json +++ b/csit/variables/bgpfunctional/rt_constrain/rt_constrain_type_2/rib/data.json @@ -8,8 +8,7 @@ "local-administrator": 123 } }, - "attributes": { - "as-path": {}, + "attributes": {$AS_PATH "ipv4-next-hop": { "global": "199.20.166.41" }, -- 2.36.6