Fix empty uri for functional tests 15/77715/19
authortomas.markovic <tomas.markovic@pantheon.tech>
Tue, 13 Nov 2018 10:43:38 +0000 (11:43 +0100)
committerJamo Luhrsen <jluhrsen@redhat.com>
Wed, 21 Nov 2018 23:55:02 +0000 (23:55 +0000)
- fix as_path across functional tests

Change-Id: Ifb00546e0cd277ea18417f2e819778b294b6010c
Signed-off-by: tomas.markovic <tomas.markovic@pantheon.tech>
72 files changed:
csit/libraries/BgpOperations.robot
csit/suites/bgpcep/bgpfunct/010_bgp_functional_l3vpn.robot
csit/suites/bgpcep/bgpfunct/090_bgp_functional_rt_constrain_validation.robot
csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4/data.json [moved from csit/variables/bgpfunctional/l3vpn_ipv4/bgp-l3vpn-ipv4.json with 100% similarity]
csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4_empty/data.json [moved from csit/variables/bgpfunctional/l3vpn_ipv4/bgp-l3vpn-ipv4-empty.json with 100% similarity]
csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4_empty/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4_path/data.json [moved from csit/variables/bgpfunctional/l3vpn_ipv4/bgp-l3vpn-ipv4-path.json with 91% similarity]
csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4_path/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/l3vpn_ipv4/empty_route/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/l3vpn_ipv4/empty_route/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/l3vpn_ipv4/empty_route/volatiles.list [new file with mode: 0644]
csit/variables/bgpfunctional/l3vpn_ipv4/exa_expected/data.json [moved from csit/variables/bgpfunctional/l3vpn_ipv4/route_expected/exa-expected.json with 100% similarity]
csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.fluorine/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.fluorine/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.oxygen/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4.oxygen/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4/data.json
csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4/location.uri
csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv4/volatiles.list [new file with mode: 0644]
csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.fluorine/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.fluorine/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.oxygen/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6.oxygen/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6/data.json
csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6/location.uri
csit/variables/bgpfunctional/l3vpn_mcast/empty_routes/ipv6/volatiles.list [new file with mode: 0644]
csit/variables/bgpfunctional/l3vpn_mcast/l3vpn_mcast/rib/data.json
csit/variables/bgpfunctional/l3vpn_mcast/l3vpn_mcast_ipv6/rib/data.json
csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.fluorine/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.fluorine/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.oxygen/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/empty_routes/ipv4.oxygen/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/empty_routes/ipv4/data.json
csit/variables/bgpfunctional/mvpn/empty_routes/ipv4/location.uri
csit/variables/bgpfunctional/mvpn/empty_routes/ipv4/volatiles.list [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.fluorine/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.fluorine/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.oxygen/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/empty_routes/ipv6.oxygen/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/empty_routes/ipv6/data.json
csit/variables/bgpfunctional/mvpn/empty_routes/ipv6/location.uri
csit/variables/bgpfunctional/mvpn/empty_routes/ipv6/volatiles.list [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/rib/data.json
csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/rib/data.json
csit/variables/bgpfunctional/mvpn/intra_ipv6/rib/data.json
csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/rib/data.json
csit/variables/bgpfunctional/mvpn/intra_source_as/rib/data.json
csit/variables/bgpfunctional/mvpn/intra_source_as_4/rib/data.json
csit/variables/bgpfunctional/mvpn/intra_vrf/rib/data.json
csit/variables/bgpfunctional/mvpn/leaf_ad/rib/data.json
csit/variables/bgpfunctional/mvpn/shared_tree_join/rib/data.json
csit/variables/bgpfunctional/mvpn/source_active_ad/rib/data.json
csit/variables/bgpfunctional/mvpn/source_tree_join/rib/data.json
csit/variables/bgpfunctional/mvpn/spmsi_ad/rib/data.json
csit/variables/bgpfunctional/rt_constrain/empty_l3vpn/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/rt_constrain/empty_l3vpn/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/rt_constrain/empty_route/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/rt_constrain/empty_route/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/rt_constrain/empty_route/volatiles.list [new file with mode: 0644]
csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.fluorine/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.fluorine/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.oxygen/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4.oxygen/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4/data.json
csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4/location.uri
csit/variables/bgpfunctional/rt_constrain/empty_routes/ipv4/volatiles.list [new file with mode: 0644]
csit/variables/bgpfunctional/rt_constrain/l3vpn_rt_arg/rib/data.json
csit/variables/bgpfunctional/rt_constrain/rt_constrain_default/rib/data.json
csit/variables/bgpfunctional/rt_constrain/rt_constrain_type_0/rib/data.json
csit/variables/bgpfunctional/rt_constrain/rt_constrain_type_1/rib/data.json
csit/variables/bgpfunctional/rt_constrain/rt_constrain_type_2/rib/data.json

index c16b4bb57776c4aa2484d6d54157ba9fee4d0006..85443631fc0cc58b765725ee63bce35a02a5b82f 100644 (file)
@@ -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}
index 7ee2df7607b8799c0d61eeff5df3118d7c3ebe26..1fe29d9e92e4a3f0de836c0d37e32388e0ccbe4a 100644 (file)
@@ -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
index 02fdc00cf300f37ce161da8c55ff5f9b2b4d74d6..c18254ad6b597ffcb0468deb105c84f9a9d59908 100644 (file)
@@ -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/location.uri b/csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4/location.uri
new file mode 100644 (file)
index 0000000..def7839
--- /dev/null
@@ -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/location.uri b/csit/variables/bgpfunctional/l3vpn_ipv4/bgp_l3vpn_ipv4_empty/location.uri
new file mode 100644 (file)
index 0000000..def7839
--- /dev/null
@@ -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
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 90a97e9d41493e6ba75fb7b554aa85bcb0c27763..9ef16743f637d5915e8665065e5cb1d50c1d7bdd 100644 (file)
@@ -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 (file)
index 0000000..def7839
--- /dev/null
@@ -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 (file)
index 0000000..3566ea9
--- /dev/null
@@ -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 (file)
index 0000000..c512232
--- /dev/null
@@ -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 (file)
index 0000000..e207934
--- /dev/null
@@ -0,0 +1 @@
+uptodate
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 (file)
index 0000000..ec3ea55
--- /dev/null
@@ -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 (file)
index 0000000..ceff12f
--- /dev/null
@@ -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 (file)
index 0000000..ec3ea55
--- /dev/null
@@ -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 (file)
index 0000000..ceff12f
--- /dev/null
@@ -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
index ec3ea550191281cb15773c3cbaf97630989cecbc..1fdd416137a3a5518f99c436c3c448a433788922 100644 (file)
@@ -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": "*"
+      }
+    }
+  ]
 }
index ceff12f0c4de1907e9dbf4a928db4ee29d9bffe2..ffda217313fb7d6f362a187f3b238efbbc70ab81 100644 (file)
@@ -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 (file)
index 0000000..e207934
--- /dev/null
@@ -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 (file)
index 0000000..fe6788d
--- /dev/null
@@ -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 (file)
index 0000000..2ea8644
--- /dev/null
@@ -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 (file)
index 0000000..fe6788d
--- /dev/null
@@ -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 (file)
index 0000000..2ea8644
--- /dev/null
@@ -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
index fe6788d81eecad3384b7830359dedc1af0f7b8df..6493c64047e0fde22b8ad9e933b449455f4a4a85 100644 (file)
@@ -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": "*"
+      }
+    }
+  ]
 }
index 2ea86440c1bf7886acd63c63bcfdadf3fe7aa725..665f6766698c49281ea1ede4f1c1d6e424af3882 100644 (file)
@@ -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 (file)
index 0000000..e207934
--- /dev/null
@@ -0,0 +1 @@
+uptodate
index a09cd28cd4d52fe0ea625172a8818241fe3bfc44..f1ed1c2b227af30783f361c8ed6497d7c0da68d5 100644 (file)
@@ -7,8 +7,7 @@
                 "attributes": {
                     "ipv4-next-hop": {
                         "global": "127.16.0.44"
-                    },
-                    "as-path": {},
+                    },$AS_PATH
                     "extended-communities": [
                         {
                             "vrf-route-import-extended-community": {
index c724a81afa9addc4dd910286fee24a395419afe6..828ecadcc644d03eccba5ebf335a2af823db39e8 100644 (file)
@@ -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 (file)
index 0000000..da9e2d3
--- /dev/null
@@ -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 (file)
index 0000000..1256403
--- /dev/null
@@ -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 (file)
index 0000000..da9e2d3
--- /dev/null
@@ -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 (file)
index 0000000..1256403
--- /dev/null
@@ -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
index da9e2d3c128623abaf7138d834a1f6e55b625327..e1f398ff049b12fe28903898624c9c84d24eb5a5 100644 (file)
@@ -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": "*"
+      }
+    }
+  ]
 }
index 1256403496e017b7d6597cabf267dd90c0f4b6d5..e3733d69e0cfb5d3f999202c0299a8e56016aa6a 100644 (file)
@@ -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 (file)
index 0000000..e207934
--- /dev/null
@@ -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 (file)
index 0000000..21650b8
--- /dev/null
@@ -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 (file)
index 0000000..99626a4
--- /dev/null
@@ -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 (file)
index 0000000..21650b8
--- /dev/null
@@ -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 (file)
index 0000000..99626a4
--- /dev/null
@@ -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
index 21650b8b0ad720cb924f9a159e6d55d2231e93e1..1a9eacb23d7825309af9ae4eaadcb09d60285c45 100644 (file)
@@ -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": "*"
+      }
+    }
+  ]
 }
index 99626a41854f224a470ebde8fc8f8b1ea24e7716..5eb1166952cfa9ff7170594e691c442bea227fdf 100644 (file)
@@ -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 (file)
index 0000000..e207934
--- /dev/null
@@ -0,0 +1 @@
+uptodate
index 8a0336aa498f806e135ad9c6c22b8c4e418578a7..11345447ea52b8890cc77be73892ae6d34f872f0 100644 (file)
@@ -10,8 +10,7 @@
           },
           "multi-exit-disc": {
             "med": 0
-          },
-          "as-path": {},
+          },$AS_PATH
           "origin": {
             "value": "egp"
           },
index 53d969e3116ae5209b490e7f5823c642ed4481fc..906573be4f9f2895b9efdbbb383ac96e3118274e 100644 (file)
@@ -10,8 +10,7 @@
           },
           "multi-exit-disc": {
             "med": 0
-          },
-          "as-path": {},
+          },$AS_PATH
           "origin": {
             "value": "egp"
           },
index 3ffb7890d5b0827aeaa98bf1af719b713ba375bd..08b8547c09ca1788fc5b2fd611084e21d3b8712a 100644 (file)
@@ -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"
                     },
index c27f09db144ad56431cccbf91d289368d1908fc0..d4e3ef459b9f52a885f4f5e171af0df5d58372a6 100644 (file)
@@ -10,8 +10,7 @@
           },
           "multi-exit-disc": {
             "med": 0
-          },
-          "as-path": {},
+          },$AS_PATH
           "pe-distinguisher-labels-attribute": {
             "pe-distinguisher-label-attribute": [
               {
index ff9d8599dc7cedd6e3dd0d612a91b29a92d4d9e0..b69c2feda35397deef5ab0cb898b349cd86fb7d3 100644 (file)
@@ -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
+}
index 2dd2b09e9c2a7675b4d8f13886baf58d4a36e122..32e1237917410b8a26ad610578b7b379ddace68e 100644 (file)
@@ -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
+}
index 0d00ea92442e689aeae08205aa1e9a14f952f465..243fc7c1bef8fea5b3cf522e191f67e64acf43e4 100644 (file)
@@ -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
+}
index 4c1a737e1de12d98f31fa238a2cf4fb3c2aee6b7..a1efb21cefae9e1670982e04066f9f54cdd12836 100644 (file)
@@ -10,8 +10,7 @@
           },
           "multi-exit-disc": {
             "med": 0
-          },
-          "as-path": {},
+          },$AS_PATH
           "origin": {
             "value": "egp"
           },
index c8e87161be91b4b9b62f2b09c95956ff338bf2bf..50e1a99f86a9ae75f7906c4bb1d60c8a46af5001 100644 (file)
@@ -10,8 +10,7 @@
           },
           "multi-exit-disc": {
             "med": 0
-          },
-          "as-path": {},
+          },$AS_PATH
           "origin": {
             "value": "egp"
           },
index 1da57727c1e6641a948271117574cd4f6c851063..eed47aa9504b1619d8b34d6b164da980a60074a8 100644 (file)
@@ -10,8 +10,7 @@
           },
           "multi-exit-disc": {
             "med": 0
-          },
-          "as-path": {},
+          },$AS_PATH
           "origin": {
             "value": "egp"
           },
index b646dc6404cedc8e3a6bfcf8139df95c5610d50e..61eaa1a66b12183baf93e772b67ac12f562623c2 100644 (file)
@@ -10,8 +10,7 @@
           },
           "multi-exit-disc": {
             "med": 0
-          },
-          "as-path": {},
+          },$AS_PATH
           "origin": {
             "value": "egp"
           },
index c3346ac46ad5f07f0665479c3a46f01fe96828f8..c35b64862174f312699324e923da136500a993f2 100644 (file)
@@ -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 (file)
index 0000000..8d2885c
--- /dev/null
@@ -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 (file)
index 0000000..08fb560
--- /dev/null
@@ -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 (file)
index 0000000..3566ea9
--- /dev/null
@@ -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 (file)
index 0000000..08fb560
--- /dev/null
@@ -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 (file)
index 0000000..e207934
--- /dev/null
@@ -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 (file)
index 0000000..6ca559a
--- /dev/null
@@ -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 (file)
index 0000000..6dbb985
--- /dev/null
@@ -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 (file)
index 0000000..6ca559a
--- /dev/null
@@ -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 (file)
index 0000000..6dbb985
--- /dev/null
@@ -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
index 6ca559acc52efd9d4359830f7a861dd06c2d7f53..9dec9e972d75b3ccbb4b7e226791fe4de3f8daa6 100644 (file)
@@ -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": "*"
+      }
+    }
+  ]
 }
index 6dbb9858713bf51b3447d117d54d9b0473541da6..f6e4d665efa500153cf108b8e17e6d4467430bb4 100644 (file)
@@ -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 (file)
index 0000000..e207934
--- /dev/null
@@ -0,0 +1 @@
+uptodate
index d7152afac871910941066a512b0379198a6220b8..74bd2ad546ce9d0a92fd4c18f12f3e19f8f8c700 100644 (file)
                     ],
                     "ipv4-next-hop": {
                         "global": "10.0.255.254"
-                    },
+                    },$AS_PATH
                     "origin": {
                         "value": "igp"
-                    },
-                    "as-path": {}
+                    }
                 },
                 "prefix": "1.1.1.0/24"
             }
index 39882ff61eb7b8e82129e9f85eeaf5ec7db24974..b2ebd14839d91a5040f40f26469f5f2db1e65241 100644 (file)
@@ -4,8 +4,7 @@
             {
                 "route-key": "",
                 "path-id": 0,
-                "attributes": {
-                    "as-path": {},
+                "attributes": {$AS_PATH
                     "ipv4-next-hop": {
                         "global": "199.20.166.41"
                     },
index b21c12bfb5f20ed1334dec3a082596b5175c4f87..7c34965193f197991e29db5a227cff43774efaf9 100644 (file)
@@ -7,8 +7,7 @@
                 "attributes": {
                     "ipv4-next-hop": {
                         "global": "199.20.166.41"
-                    },
-                    "as-path": {},
+                    },$AS_PATH
                     "origin": {
                         "value": "igp"
                     },
index 069ac6949d1bf679c54e3325cac63b7722cd9c25..62af72453eb3cf765b726303e1f7fec1fe87c959 100644 (file)
@@ -7,8 +7,7 @@
                 "attributes": {
                     "ipv4-next-hop": {
                         "global": "199.20.166.41"
-                    },
-                    "as-path": {},
+                    },$AS_PATH
                     "origin": {
                         "value": "igp"
                     },
index a6c3422735860d84288d29f6287d52a5a76d554d..583070a8d0e508c7832a329fd58d94d2e362045d 100644 (file)
@@ -8,8 +8,7 @@
                         "local-administrator": 123
                     }
                 },
-                "attributes": {
-                    "as-path": {},
+                "attributes": {$AS_PATH
                     "ipv4-next-hop": {
                         "global": "199.20.166.41"
                     },