Mvpn functional tests 11/72111/39
authorTomas Markovic <tomas.markovic@pantheon.tech>
Mon, 21 May 2018 10:01:28 +0000 (12:01 +0200)
committerJamo Luhrsen <jluhrsen@redhat.com>
Mon, 4 Jun 2018 17:59:41 +0000 (17:59 +0000)
Testing mcast-vpn functionality.
Testing 7 types of routes and 4 attributes
introduced by mcast-vpn.
Sending routes from application-peer, and verifying
it with play.py, and sending routes with play.py in hex,
and verifying it at odl side.
Based on rfc6514.

Fluorine test only.

Change-Id: Iee46907b847d8801a684634035e239f46b4e4c15
Signed-off-by: Tomas Markovic <tomas.markovic@pantheon.tech>
84 files changed:
csit/suites/bgpcep/bgpfunct/060_bgp_functional_mvpn.robot [new file with mode: 0644]
csit/testplans/bgpcep-userfeatures-fluorine.txt
csit/variables/bgpfunctional/mvpn/app_peer/data.xml [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/app_peer/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/bgp_peer/data.xml [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/bgp_peer/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/empty_routes_ipv4/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/empty_routes_ipv4/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/empty_routes_ipv6/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/empty_routes_ipv6/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/announce_inter_as_ipmsi_ad.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/app/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/app/post_data.xml [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/rib/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/rib/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/withdraw_inter_as_ipmsi_ad.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/announce_intra_as_ipmsi_ad.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/app/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/app/post_data.xml [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/rib/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/rib/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/withdraw_intra_as_ipmsi_ad.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_ipv6/announce_intra_ipv6.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_ipv6/app/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_ipv6/app/post_data.xml [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_ipv6/rib/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_ipv6/rib/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_ipv6/withdraw_intra_ipv6.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/announce_intra_pe_distinguisher.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/app/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/app/post_data.xml [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/rib/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/rib/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/withdraw_intra_pe_distinguisher.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_source_as/announce_intra_source_as.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_source_as/app/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_source_as/app/post_data.xml [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_source_as/rib/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_source_as/rib/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_source_as/withdraw_intra_source_as.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_source_as_4/announce_intra_source_as_4.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_source_as_4/app/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_source_as_4/app/post_data.xml [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_source_as_4/rib/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_source_as_4/rib/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_source_as_4/withdraw_intra_source_as_4.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_vrf/announce_intra_vrf.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_vrf/app/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_vrf/app/post_data.xml [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_vrf/rib/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_vrf/rib/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/intra_vrf/withdraw_intra_vrf.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/leaf_ad/announce_leaf_ad.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/leaf_ad/app/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/leaf_ad/app/post_data.xml [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/leaf_ad/rib/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/leaf_ad/rib/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/leaf_ad/withdraw_leaf_ad.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/shared_tree_join/announce_shared_tree_join.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/shared_tree_join/app/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/shared_tree_join/app/post_data.xml [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/shared_tree_join/rib/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/shared_tree_join/rib/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/shared_tree_join/withdraw_shared_tree_join.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/source_active_ad/announce_source_active_ad.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/source_active_ad/app/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/source_active_ad/app/post_data.xml [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/source_active_ad/rib/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/source_active_ad/rib/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/source_active_ad/withdraw_source_active_ad.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/source_tree_join/announce_source_tree_join.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/source_tree_join/app/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/source_tree_join/app/post_data.xml [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/source_tree_join/rib/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/source_tree_join/rib/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/source_tree_join/withdraw_source_tree_join.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/spmsi_ad/announce_spmsi_ad.hex [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/spmsi_ad/app/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/spmsi_ad/app/post_data.xml [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/spmsi_ad/rib/data.json [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/spmsi_ad/rib/location.uri [new file with mode: 0644]
csit/variables/bgpfunctional/mvpn/spmsi_ad/withdraw_spmsi_ad.hex [new file with mode: 0644]
csit/variables/bgpuser/bgp_peer/location.uri
tools/fastbgp/play.py

diff --git a/csit/suites/bgpcep/bgpfunct/060_bgp_functional_mvpn.robot b/csit/suites/bgpcep/bgpfunct/060_bgp_functional_mvpn.robot
new file mode 100644 (file)
index 0000000..36441bb
--- /dev/null
@@ -0,0 +1,227 @@
+*** Settings ***
+Documentation     Functional test for bgp - mvpn
+...
+...               Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+...
+...               This program and the accompanying materials are made available under the
+...               terms of the Eclipse Public License v1.0 which accompanies this distbmution,
+...               and is available at http://www.eclipse.org/legal/epl-v10.html
+...
+...               This suite tests advertising mvpn routes to odl. For advertising play.py is used,
+...               and particular files are stored as *.hex files. There are 7 different
+...               types of routes used for auto-discovery of multicast network. Also 4 more routes
+...               with new attributes specific for mvpn.
+Suite Setup       Start_Suite
+Suite Teardown    Stop_Suite
+Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+Library           RequestsLibrary
+Library           SSHLibrary
+Library           String
+Library           ../../../libraries/BgpRpcClient.py    ${TOOLS_SYSTEM_IP}
+Resource          ../../../libraries/BGPcliKeywords.robot
+Resource          ../../../libraries/BGPSpeaker.robot
+Resource          ../../../libraries/CompareStream.robot
+Resource          ../../../libraries/SetupUtils.robot
+Resource          ../../../libraries/SSHKeywords.robot
+Resource          ../../../libraries/TemplatedRequests.robot
+Resource          ../../../variables/Variables.robot
+
+*** Variables ***
+${HOLDTIME}       180
+${APP_PEER_NAME}    example-bgp-peer-app
+${BGP_DIR}        ${CURDIR}/../../../variables/bgpfunctional
+${CONFIG_SESSION}    config-session
+${MVPN_DIR}       ${CURDIR}/../../../variables/bgpfunctional/mvpn
+${PLAY_SCRIPT}    ${CURDIR}/../../../../tools/fastbgp/play.py
+${RIB_NAME}       example-bgp-rib
+&{MVPN_ADJ_RIB_IN}    PATH=peer/bgp:%2F%2F${TOOLS_SYSTEM_IP}/adj-rib-in    BGP_RIB=${RIB_NAME}
+&{MVPN_LOC_RIB}    PATH=loc-rib    BGP_RIB=${RIB_NAME}
+&{MVPN_EFFECTIVE_RIB_IN}    PATH=peer/bgp:%2F%2F${TOOLS_SYSTEM_IP}/effective-rib-in    BGP_RIB=${RIB_NAME}
+&{MVPN_APP_PEER}    IP=${ODL_SYSTEM_IP}    BGP_RIB=${RIB_NAME}
+&{MVPN_ODL_CONFIG}    IP=${TOOLS_SYSTEM_IP}    HOLDTIME=${HOLDTIME}    PEER_PORT=${BGP_TOOL_PORT}    INITIATE=false    BGP_RIB=${RIB_NAME}    PASSIVE_MODE=true
+
+*** Test Cases ***
+Configure_App_Peer
+    [Documentation]    Configures bgp application peer.
+    [Setup]    SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+    TemplatedRequests.Put_As_Xml_Templated    ${MVPN_DIR}/app_peer    mapping=${MVPN_APP_PEER}    session=${CONFIG_SESSION}
+
+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
+    TemplatedRequests.Put_As_Xml_Templated    ${MVPN_DIR}/bgp_peer    mapping=${MVPN_ODL_CONFIG}    session=${CONFIG_SESSION}
+
+Start_Bgp_Peer
+    [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
+    BuiltIn.Wait_Until_Keyword_Succeeds    3x    1s    Start Bgp Peer
+
+Odl_To_Play_intra_as_ipmsi_ad
+    [Template]    Odl_To_Play_Template
+    intra_as_ipmsi_ad
+
+Play_To_Odl_intra_as_ipmsi_ad
+    [Template]    Play_To_Odl_Template
+    intra_as_ipmsi_ad
+
+Odl_To_Play_inter_as_ipmsi_ad
+    [Template]    Odl_To_Play_Template
+    inter_as_ipmsi_ad
+
+Play_To_Odl_inter_as_ipmsi_ad
+    [Template]    Play_To_Odl_Template
+    inter_as_ipmsi_ad
+
+Odl_To_Play_spmsi_ad
+    [Template]    Odl_To_Play_Template
+    spmsi_ad
+
+Play_To_Odl_spmsi_ad
+    [Template]    Play_To_Odl_Template
+    spmsi_ad
+
+Odl_To_Play_leaf_ad
+    [Template]    Odl_To_Play_Template
+    leaf_ad
+
+Play_To_Odl_leaf_ad
+    [Template]    Play_To_Odl_Template
+    leaf_ad
+
+Odl_To_Play_source_active_ad
+    [Template]    Odl_To_Play_Template
+    source_active_ad
+
+Play_To_Odl_source_active_ad
+    [Template]    Play_To_Odl_Template
+    source_active_ad
+
+Odl_To_Play_shared_tree_join
+    [Template]    Odl_To_Play_Template
+    shared_tree_join
+
+Play_To_Odl_shared_tree_join
+    [Template]    Play_To_Odl_Template
+    shared_tree_join
+
+Odl_To_Play_source_tree_join
+    [Template]    Odl_To_Play_Template
+    source_tree_join
+
+Play_To_Odl_source_tree_join
+    [Template]    Play_To_Odl_Template
+    source_tree_join
+
+Odl_To_Play_intra_pe_distinguisher
+    [Template]    Odl_To_Play_Template
+    intra_pe_distinguisher
+
+Play_To_Odl_intra_pe_distinguisher
+    [Template]    Play_To_Odl_Template
+    intra_pe_distinguisher
+
+Odl_To_Play_intra_vrf
+    [Template]    Odl_To_Play_Template
+    intra_vrf
+
+Play_To_Odl_intra_vrf
+    [Template]    Play_To_Odl_Template
+    intra_vrf
+
+Odl_To_Play_intra_source_as
+    [Template]    Odl_To_Play_Template
+    intra_source_as
+
+Play_To_Odl_intra_source_as
+    [Template]    Play_To_Odl_Template
+    intra_source_as
+
+Odl_To_Play_intra_source_as_4
+    [Template]    Odl_To_Play_Template
+    intra_source_as_4
+
+Play_To_Odl_intra_source_as_4
+    [Template]    Play_To_Odl_Template
+    intra_source_as_4
+
+Kill_Talking_BGP_Speaker
+    [Documentation]    Abort the Python speaker
+    [Setup]    SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+    BGPSpeaker.Kill_BGP_Speaker
+    BGPcliKeywords.Store_File_To_Workspace    play.py.out    mvpn_play.log
+
+Delete_Bgp_Peer_Configuration
+    [Documentation]    Revert the BGP configuration to the original state: without any configured peers.
+    [Setup]    SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+    TemplatedRequests.Delete_Templated    ${MVPN_DIR}/bgp_peer    mapping=${MVPN_ODL_CONFIG}    session=${CONFIG_SESSION}
+
+Deconfigure_App_Peer
+    [Documentation]    Revert the BGP configuration to the original state: without application peer
+    [Setup]    SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
+    TemplatedRequests.Delete_Templated    ${MVPN_DIR}/app_peer    mapping=${MVPN_APP_PEER}    session=${CONFIG_SESSION}
+
+*** Keywords ***
+Start_Suite
+    [Documentation]    Initialize SetupUtils. Suite setup keyword.
+    SetupUtils.Setup_Utils_For_Setup_And_Teardown
+    ${mininet_conn_id} =    SSHLibrary.Open Connection    ${TOOLS_SYSTEM_IP}    prompt=${DEFAULT_LINUX_PROMPT}    timeout=6s
+    Builtin.Set Suite Variable    ${mininet_conn_id}
+    SSHKeywords.Flexible Mininet Login    ${TOOLS_SYSTEM_USER}
+    RequestsLibrary.Create Session    ${CONFIG_SESSION}    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}
+    SSHLibrary.Put File    ${PLAY_SCRIPT}    .
+    SSHKeywords.Assure_Library_Ipaddr    target_dir=.
+
+Stop_Suite
+    [Documentation]    Suite teardown keyword
+    SSHLibrary.Close_All_Connections
+    RequestsLibrary.Delete_All_Sessions
+
+Start_Bgp_Peer
+    [Documentation]    Starts bgp peer and verifies that the peer runs.
+    BGPSpeaker.Start_BGP_Speaker    --amount 0 --myip=${TOOLS_SYSTEM_IP} --myport=${BGP_TOOL_PORT} --peerip=${ODL_SYSTEM_IP} --peerport=${ODL_BGP_PORT} --debug --mvpn --wfr 1
+    BGPcliKeywords.Read_And_Fail_If_Prompt_Is_Seen
+
+Odl_To_Play_Template
+    [Arguments]    ${totest}
+    ${announce_hex} =    OperatingSystem.Get_File    ${MVPN_DIR}/${totest}/announce_${totest}.hex
+    ${announce_hex} =    String.Remove_String    ${announce_hex}    \n
+    ${withdraw_hex} =    OperatingSystem.Get_File    ${MVPN_DIR}/${totest}/withdraw_${totest}.hex
+    ${withdraw_hex} =    String.Remove_String    ${withdraw_hex}    \n
+    BgpRpcClient.play_clean
+    TemplatedRequests.Post_As_Xml_Templated    ${MVPN_DIR}/${totest}/app    mapping=${MVPN_APP_PEER}    session=${CONFIG_SESSION}
+    ${update}    BuiltIn.Wait_Until_Keyword_Succeeds    3x    2s    Get_Update_Message
+    BuiltIn.Should_Be_Equal_As_Strings    ${update}    ${announce_hex}
+    BgpRpcClient.play_clean
+    Remove_Configured_Routes    ${totest}
+    ${update}    BuiltIn.Wait_Until_Keyword_Succeeds    3x    2s    Get_Update_Message
+    BuiltIn.Should_Be_Equal_As_Strings    ${update}    ${withdraw_hex}
+    [Teardown]    Remove_Configured_Routes    ${totest}
+
+Play_To_Odl_Template
+    [Arguments]    ${totest}
+    ${announce_hex} =    OperatingSystem.Get_File    ${MVPN_DIR}/${totest}/announce_${totest}.hex
+    ${withdraw_hex} =    OperatingSystem.Get_File    ${MVPN_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    ${MVPN_DIR}/${totest}/rib    mapping=${MVPN_ADJ_RIB_IN}    session=${CONFIG_SESSION}
+    ...    verify=True
+    BuiltIn.Wait_Until_Keyword_Succeeds    3x    2s    TemplatedRequests.Get_As_Json_Templated    ${MVPN_DIR}/${totest}/rib    mapping=${MVPN_EFFECTIVE_RIB_IN}    session=${CONFIG_SESSION}
+    ...    verify=True
+    BuiltIn.Wait_Until_Keyword_Succeeds    3x    2s    TemplatedRequests.Get_As_Json_Templated    ${MVPN_DIR}/${totest}/rib    mapping=${MVPN_LOC_RIB}    session=${CONFIG_SESSION}
+    ...    verify=True
+    BgpRpcClient.play_send    ${withdraw_hex}
+    ${ipv}    BuiltIn.Set_Variable_If    '${totest}' == 'intra_ipv6'    ipv6    ipv4
+    BuiltIn.Wait_Until_Keyword_Succeeds    3x    2s    TemplatedRequests.Get_As_Json_Templated    ${MVPN_DIR}/empty_routes_${ipv}    mapping=${MVPN_LOC_RIB}    session=${CONFIG_SESSION}
+    ...    verify=True
+    [Teardown]    BgpRpcClient.play_send    ${withdraw_hex}
+
+Get_Update_Message
+    [Documentation]    Returns hex update message.
+    ${update} =    BgpRpcClient.play_get
+    BuiltIn.Should_Not_Be_Equal    ${update}    ${Empty}
+    [Return]    ${update}
+
+Remove_Configured_Routes
+    [Arguments]    ${totest}
+    [Documentation]    Removes the route if present.
+    BuiltIn.Run_Keyword_And_Ignore_Error    TemplatedRequests.Delete_Templated    ${MVPN_DIR}/${totest}/app    mapping=${MVPN_APP_PEER}    session=${CONFIG_SESSION}
index 1e2ecd08d90fb98eca6f5a5884421d9b6748b9c2..c87ce4566ddad89f28dba1a3cf32043d1987c3d0 100644 (file)
@@ -19,5 +19,6 @@ integration/test/csit/suites/bgpcep/bgpfunct/010_bgp_functional_l3vpn.robot
 integration/test/csit/suites/bgpcep/bgpfunct/030_bgp_functional_evpn.robot
 integration/test/csit/suites/bgpcep/bgpfunct/040_bgp_functional_route_ref.robot
 integration/test/csit/suites/bgpcep/bgpfunct/020_bgp_functional_multipath.robot
+integration/test/csit/suites/bgpcep/bgpfunct/060_bgp_functional_mvpn.robot
 integration/test/csit/suites/bgpcep/bgpfunct/bgp_policies_default.robot
 integration/test/csit/suites/bgpcep/tcpmd5user/tcpmd5user.robot
diff --git a/csit/variables/bgpfunctional/mvpn/app_peer/data.xml b/csit/variables/bgpfunctional/mvpn/app_peer/data.xml
new file mode 100644 (file)
index 0000000..3b1b32f
--- /dev/null
@@ -0,0 +1,6 @@
+<neighbor xmlns="urn:opendaylight:params:xml:ns:yang:bgp:openconfig-extensions">
+    <neighbor-address>$IP</neighbor-address>
+    <config>
+        <peer-group>application-peers</peer-group>
+    </config>
+</neighbor>
diff --git a/csit/variables/bgpfunctional/mvpn/app_peer/location.uri b/csit/variables/bgpfunctional/mvpn/app_peer/location.uri
new file mode 100644 (file)
index 0000000..2e9bef7
--- /dev/null
@@ -0,0 +1 @@
+restconf/config/openconfig-network-instance:network-instances/network-instance/global-bgp/openconfig-network-instance:protocols/protocol/openconfig-policy-types:BGP/$BGP_RIB/bgp/neighbors/neighbor/$IP
diff --git a/csit/variables/bgpfunctional/mvpn/bgp_peer/data.xml b/csit/variables/bgpfunctional/mvpn/bgp_peer/data.xml
new file mode 100644 (file)
index 0000000..ba48613
--- /dev/null
@@ -0,0 +1,36 @@
+<neighbor xmlns="urn:opendaylight:params:xml:ns:yang:bgp:openconfig-extensions">
+    <neighbor-address>$IP</neighbor-address>
+    <route-reflector>
+        <config>
+            <route-reflector-client>false</route-reflector-client>
+        </config>
+    </route-reflector>
+    <timers>
+        <config>
+            <hold-time>$HOLDTIME</hold-time>
+        </config>
+    </timers>
+    <transport>
+        <config>
+            <remote-port>$PEER_PORT</remote-port>
+            <passive-mode>$PASSIVE_MODE</passive-mode>
+        </config>
+    </transport>
+    <config>
+        <peer-type>INTERNAL</peer-type>
+    </config>
+    <afi-safis>
+        <afi-safi>
+            <afi-safi-name xmlns:x="http://openconfig.net/yang/bgp-types">x:IPV4-UNICAST</afi-safi-name>
+        </afi-safi>
+        <afi-safi>
+            <afi-safi-name>IPV4-MCAST-VPN</afi-safi-name>
+        </afi-safi>
+        <afi-safi>
+            <afi-safi-name>IPV6-MCAST-VPN</afi-safi-name>
+        </afi-safi>
+        <afi-safi>
+            <afi-safi-name>LINKSTATE</afi-safi-name>
+        </afi-safi>
+    </afi-safis>
+</neighbor>
diff --git a/csit/variables/bgpfunctional/mvpn/bgp_peer/location.uri b/csit/variables/bgpfunctional/mvpn/bgp_peer/location.uri
new file mode 100644 (file)
index 0000000..2e9bef7
--- /dev/null
@@ -0,0 +1 @@
+restconf/config/openconfig-network-instance:network-instances/network-instance/global-bgp/openconfig-network-instance:protocols/protocol/openconfig-policy-types:BGP/$BGP_RIB/bgp/neighbors/neighbor/$IP
diff --git a/csit/variables/bgpfunctional/mvpn/empty_routes_ipv4/data.json b/csit/variables/bgpfunctional/mvpn/empty_routes_ipv4/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/location.uri b/csit/variables/bgpfunctional/mvpn/empty_routes_ipv4/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_ipv6/data.json b/csit/variables/bgpfunctional/mvpn/empty_routes_ipv6/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/location.uri b/csit/variables/bgpfunctional/mvpn/empty_routes_ipv6/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/inter_as_ipmsi_ad/announce_inter_as_ipmsi_ad.hex b/csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/announce_inter_as_ipmsi_ad.hex
new file mode 100644 (file)
index 0000000..ee1a050
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff0046020000002f400101014002008004040000000040050400000064800e17000105047f01010100020c00010102030401020000fbf0
diff --git a/csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/app/location.uri b/csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/app/location.uri
new file mode 100644 (file)
index 0000000..df30681
--- /dev/null
@@ -0,0 +1 @@
+/restconf/config/bgp-rib:application-rib/$IP/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/inter_as_ipmsi_ad/app/post_data.xml b/csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/app/post_data.xml
new file mode 100644 (file)
index 0000000..b056275
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<mvpn-route xmlns="urn:opendaylight:params:xml:ns:yang:bgp:mvpn:ipv4">
+    <path-id>0</path-id>
+    <route-key>AgwAAQECAwQBAgAA+/A=</route-key>
+    <attributes>
+      <ipv4-next-hop>
+        <global>127.1.1.1</global>
+      </ipv4-next-hop>
+      <multi-exit-disc>
+        <med>0</med>
+      </multi-exit-disc>
+      <as-path/>
+      <origin>
+        <value>egp</value>
+      </origin>
+      <local-pref>
+        <pref>100</pref>
+      </local-pref>
+    </attributes>
+    <inter-as-i-pmsi-a-d>
+      <route-distinguisher>1.2.3.4:258</route-distinguisher>
+      <source-as>64496</source-as>
+    </inter-as-i-pmsi-a-d>
+  </mvpn-route>
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
new file mode 100644 (file)
index 0000000..8a0336a
--- /dev/null
@@ -0,0 +1,29 @@
+{
+  "bgp-mvpn-ipv4:mvpn-routes-ipv4": {
+    "mvpn-route": [
+      {
+        "path-id": 0,
+        "route-key": "AgwAAQECAwQBAgAA+/A=",
+        "attributes": {
+          "ipv4-next-hop": {
+            "global": "127.1.1.1"
+          },
+          "multi-exit-disc": {
+            "med": 0
+          },
+          "as-path": {},
+          "origin": {
+            "value": "egp"
+          },
+          "local-pref": {
+            "pref": 100
+          }
+        },
+        "inter-as-i-pmsi-a-d": {
+          "route-distinguisher": "1.2.3.4:258",
+          "source-as": 64496
+        }
+      }
+    ]
+  }
+}
diff --git a/csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/rib/location.uri b/csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/rib/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/inter_as_ipmsi_ad/withdraw_inter_as_ipmsi_ad.hex b/csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/withdraw_inter_as_ipmsi_ad.hex
new file mode 100644 (file)
index 0000000..b2efffa
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff00400200000029400101014002008004040000000040050400000064800f11000105020c00010102030401020000fbf0
diff --git a/csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/announce_intra_as_ipmsi_ad.hex b/csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/announce_intra_as_ipmsi_ad.hex
new file mode 100644 (file)
index 0000000..9c02a83
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff0046020000002f400101014002008004040000000040050400000064800e17000105047f01010100010c00010102030401020a0a0a0a
diff --git a/csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/app/location.uri b/csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/app/location.uri
new file mode 100644 (file)
index 0000000..df30681
--- /dev/null
@@ -0,0 +1 @@
+/restconf/config/bgp-rib:application-rib/$IP/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/intra_as_ipmsi_ad/app/post_data.xml b/csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/app/post_data.xml
new file mode 100644 (file)
index 0000000..a7fdb50
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<mvpn-route xmlns="urn:opendaylight:params:xml:ns:yang:bgp:mvpn:ipv4">
+    <path-id>0</path-id>
+    <route-key>AQwAAQECAwQBAgoKCgo=</route-key>
+    <attributes>
+      <ipv4-next-hop>
+        <global>127.1.1.1</global>
+      </ipv4-next-hop>
+      <multi-exit-disc>
+        <med>0</med>
+      </multi-exit-disc>
+      <as-path/>
+      <origin>
+        <value>egp</value>
+      </origin>
+      <local-pref>
+        <pref>100</pref>
+      </local-pref>
+    </attributes>
+    <intra-as-i-pmsi-a-d>
+      <route-distinguisher>1.2.3.4:258</route-distinguisher>
+      <orig-route-ip>10.10.10.10</orig-route-ip>
+    </intra-as-i-pmsi-a-d>
+</mvpn-route>
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
new file mode 100644 (file)
index 0000000..53d969e
--- /dev/null
@@ -0,0 +1,29 @@
+{
+  "bgp-mvpn-ipv4:mvpn-routes-ipv4": {
+    "mvpn-route": [
+      {
+        "path-id": 0,
+        "route-key": "AQwAAQECAwQBAgoKCgo=",
+        "attributes": {
+          "ipv4-next-hop": {
+            "global": "127.1.1.1"
+          },
+          "multi-exit-disc": {
+            "med": 0
+          },
+          "as-path": {},
+          "origin": {
+            "value": "egp"
+          },
+          "local-pref": {
+            "pref": 100
+          }
+        },
+        "intra-as-i-pmsi-a-d": {
+          "route-distinguisher": "1.2.3.4:258",
+          "orig-route-ip": "10.10.10.10"
+        }
+      }
+    ]
+  }
+}
diff --git a/csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/rib/location.uri b/csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/rib/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/intra_as_ipmsi_ad/withdraw_intra_as_ipmsi_ad.hex b/csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/withdraw_intra_as_ipmsi_ad.hex
new file mode 100644 (file)
index 0000000..5414469
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff00400200000029400101014002008004040000000040050400000064800f11000105010c00010102030401020a0a0a0a
diff --git a/csit/variables/bgpfunctional/mvpn/intra_ipv6/announce_intra_ipv6.hex b/csit/variables/bgpfunctional/mvpn/intra_ipv6/announce_intra_ipv6.hex
new file mode 100644 (file)
index 0000000..68710df
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff004b02000000344001010040020040050400000064800e230002051020010db800010000000000000000000600010c0001ac10002c0065c0a86401
diff --git a/csit/variables/bgpfunctional/mvpn/intra_ipv6/app/location.uri b/csit/variables/bgpfunctional/mvpn/intra_ipv6/app/location.uri
new file mode 100644 (file)
index 0000000..8d63737
--- /dev/null
@@ -0,0 +1 @@
+/restconf/config/bgp-rib:application-rib/$IP/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/intra_ipv6/app/post_data.xml b/csit/variables/bgpfunctional/mvpn/intra_ipv6/app/post_data.xml
new file mode 100644 (file)
index 0000000..a0d7960
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" ?>
+<mvpn-route xmlns="urn:opendaylight:params:xml:ns:yang:bgp:mvpn:ipv6">
+    <route-key>flow1</route-key>
+    <path-id>0</path-id>
+    <intra-as-i-pmsi-a-d>
+        <route-distinguisher>172.16.0.44:101</route-distinguisher>
+        <orig-route-ip>192.168.100.1</orig-route-ip>
+    </intra-as-i-pmsi-a-d>
+    <attributes>
+        <ipv6-next-hop>
+            <global>2001:db8:1::6</global>
+        </ipv6-next-hop>
+        <as-path/>
+        <origin>
+            <value>igp</value>
+        </origin>
+        <local-pref>
+            <pref>100</pref>
+        </local-pref>
+    </attributes>
+</mvpn-route>
diff --git a/csit/variables/bgpfunctional/mvpn/intra_ipv6/rib/data.json b/csit/variables/bgpfunctional/mvpn/intra_ipv6/rib/data.json
new file mode 100644 (file)
index 0000000..3ffb789
--- /dev/null
@@ -0,0 +1,27 @@
+{
+    "bgp-mvpn-ipv6:mvpn-routes-ipv6": {
+        "mvpn-route": [
+            {
+                "route-key": "AQwAAawQACwAZcCoZAE=",
+                "path-id": 0,
+                "intra-as-i-pmsi-a-d": {
+                    "route-distinguisher": "172.16.0.44:101",
+                    "orig-route-ip": "192.168.100.1"
+                },
+                "attributes": {
+                    "as-path": {
+                    },
+                    "ipv6-next-hop": {
+                        "global": "2001:db8:1::6"
+                    },
+                    "origin": {
+                        "value": "igp"
+                    },
+                    "local-pref": {
+                      "pref": 100
+                    }
+                }
+            }
+        ]
+    }
+}
diff --git a/csit/variables/bgpfunctional/mvpn/intra_ipv6/rib/location.uri b/csit/variables/bgpfunctional/mvpn/intra_ipv6/rib/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/intra_ipv6/withdraw_intra_ipv6.hex b/csit/variables/bgpfunctional/mvpn/intra_ipv6/withdraw_intra_ipv6.hex
new file mode 100644 (file)
index 0000000..e92bb6a
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff003902000000224001010040020040050400000064800f11000205010c0001ac10002c0065c0a86401
\ No newline at end of file
diff --git a/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/announce_intra_pe_distinguisher.hex b/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/announce_intra_pe_distinguisher.hex
new file mode 100644 (file)
index 0000000..305f217
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff00570200000040c01b0e0a0a0a0104e3800a0a140204e3c0400101014002008004040000000040050400000064800e17000105047f01010100010c00010102030401020a0a0a0a
\ No newline at end of file
diff --git a/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/app/location.uri b/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/app/location.uri
new file mode 100644 (file)
index 0000000..df30681
--- /dev/null
@@ -0,0 +1 @@
+/restconf/config/bgp-rib:application-rib/$IP/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/intra_pe_distinguisher/app/post_data.xml b/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/app/post_data.xml
new file mode 100644 (file)
index 0000000..63a8e62
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<mvpn-route xmlns="urn:opendaylight:params:xml:ns:yang:bgp:mvpn:ipv4">
+    <path-id>0</path-id>
+    <route-key>AQwAAQECAwQBAgoKCgo=</route-key>
+    <attributes>
+        <ipv4-next-hop>
+            <global>127.1.1.1</global>
+        </ipv4-next-hop>
+        <multi-exit-disc>
+            <med>0</med>
+        </multi-exit-disc>
+        <as-path/>
+        <origin>
+            <value>egp</value>
+        </origin>
+        <local-pref>
+            <pref>100</pref>
+        </local-pref>
+        <pe-distinguisher-labels-attribute>
+            <pe-distinguisher-label-attribute>
+                <pe-address>10.10.10.1</pe-address>
+                <mpls-label>20024</mpls-label>
+            </pe-distinguisher-label-attribute>
+            <pe-distinguisher-label-attribute>
+                <pe-address>10.10.20.2</pe-address>
+                <mpls-label>20028</mpls-label>
+            </pe-distinguisher-label-attribute>
+        </pe-distinguisher-labels-attribute>
+    </attributes>
+    <intra-as-i-pmsi-a-d>
+        <route-distinguisher>1.2.3.4:258</route-distinguisher>
+        <orig-route-ip>10.10.10.10</orig-route-ip>
+    </intra-as-i-pmsi-a-d>
+</mvpn-route>
diff --git a/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/rib/data.json b/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/rib/data.json
new file mode 100644 (file)
index 0000000..c27f09d
--- /dev/null
@@ -0,0 +1,41 @@
+{
+  "bgp-mvpn-ipv4:mvpn-routes-ipv4": {
+    "mvpn-route": [
+      {
+        "route-key": "AQwAAQECAwQBAgoKCgo=",
+        "path-id": 0,
+        "attributes": {
+          "ipv4-next-hop": {
+            "global": "127.1.1.1"
+          },
+          "multi-exit-disc": {
+            "med": 0
+          },
+          "as-path": {},
+          "pe-distinguisher-labels-attribute": {
+            "pe-distinguisher-label-attribute": [
+              {
+                "pe-address": "10.10.10.1",
+                "mpls-label": 20024
+              },
+              {
+                "pe-address": "10.10.20.2",
+                "mpls-label": 20028
+              }
+            ]
+          },
+          "origin": {
+            "value": "egp"
+          },
+          "local-pref": {
+            "pref": 100
+          }
+        },
+        "intra-as-i-pmsi-a-d": {
+          "route-distinguisher": "1.2.3.4:258",
+          "orig-route-ip": "10.10.10.10"
+        }
+      }
+    ]
+  }
+}
diff --git a/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/rib/location.uri b/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/rib/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/intra_pe_distinguisher/withdraw_intra_pe_distinguisher.hex b/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/withdraw_intra_pe_distinguisher.hex
new file mode 100644 (file)
index 0000000..576b4af
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff0051020000003ac01b0e0a0a0a0104e3800a0a140204e3c0400101014002008004040000000040050400000064800f11000105010c00010102030401020a0a0a0a
\ No newline at end of file
diff --git a/csit/variables/bgpfunctional/mvpn/intra_source_as/announce_intra_source_as.hex b/csit/variables/bgpfunctional/mvpn/intra_source_as/announce_intra_source_as.hex
new file mode 100644 (file)
index 0000000..b890cb8
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff0051020000003a400101014002008004040000000040050400000064800e17000105047f01010100010c00010102030401020a0a0a0ac010080009004100000000
\ No newline at end of file
diff --git a/csit/variables/bgpfunctional/mvpn/intra_source_as/app/location.uri b/csit/variables/bgpfunctional/mvpn/intra_source_as/app/location.uri
new file mode 100644 (file)
index 0000000..df30681
--- /dev/null
@@ -0,0 +1 @@
+/restconf/config/bgp-rib:application-rib/$IP/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/intra_source_as/app/post_data.xml b/csit/variables/bgpfunctional/mvpn/intra_source_as/app/post_data.xml
new file mode 100644 (file)
index 0000000..0431bcd
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<mvpn-route xmlns="urn:opendaylight:params:xml:ns:yang:bgp:mvpn:ipv4">
+    <path-id>0</path-id>
+    <route-key>AQwAAQECAwQBAgoKCgo=</route-key>
+    <attributes>
+        <ipv4-next-hop>
+            <global>127.1.1.1</global>
+        </ipv4-next-hop>
+        <multi-exit-disc>
+            <med>0</med>
+        </multi-exit-disc>
+        <as-path/>
+        <origin>
+            <value>egp</value>
+        </origin>
+        <local-pref>
+            <pref>100</pref>
+        </local-pref>
+        <extended-communities>
+            <transitive>true</transitive>
+            <source-as-extended-community>
+                <global-administrator>65</global-administrator>
+            </source-as-extended-community>
+        </extended-communities>
+    </attributes>
+    <intra-as-i-pmsi-a-d>
+        <route-distinguisher>1.2.3.4:258</route-distinguisher>
+        <orig-route-ip>10.10.10.10</orig-route-ip>
+    </intra-as-i-pmsi-a-d>
+</mvpn-route>
\ No newline at end of file
diff --git a/csit/variables/bgpfunctional/mvpn/intra_source_as/rib/data.json b/csit/variables/bgpfunctional/mvpn/intra_source_as/rib/data.json
new file mode 100644 (file)
index 0000000..ff9d859
--- /dev/null
@@ -0,0 +1,37 @@
+{
+  "bgp-mvpn-ipv4:mvpn-routes-ipv4": {
+    "mvpn-route": [
+      {
+        "route-key": "AQwAAQECAwQBAgoKCgo=",
+        "path-id": 0,
+        "attributes": {
+          "multi-exit-disc": {
+            "med": 0
+          },
+          "extended-communities": [
+            {
+              "transitive": true,
+              "source-as-extended-community": {
+                "global-administrator": 65
+              }
+            }
+          ],
+          "ipv4-next-hop": {
+            "global": "127.1.1.1"
+          },
+          "as-path": {},
+          "origin": {
+            "value": "egp"
+          },
+          "local-pref": {
+            "pref": 100
+          }
+        },
+        "intra-as-i-pmsi-a-d": {
+          "route-distinguisher": "1.2.3.4:258",
+          "orig-route-ip": "10.10.10.10"
+        }
+      }
+    ]
+  }
+}
\ No newline at end of file
diff --git a/csit/variables/bgpfunctional/mvpn/intra_source_as/rib/location.uri b/csit/variables/bgpfunctional/mvpn/intra_source_as/rib/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/intra_source_as/withdraw_intra_source_as.hex b/csit/variables/bgpfunctional/mvpn/intra_source_as/withdraw_intra_source_as.hex
new file mode 100644 (file)
index 0000000..cbdfd8e
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff004b0200000034400101014002008004040000000040050400000064800f11000105010c00010102030401020a0a0a0ac010080009004100000000
\ No newline at end of file
diff --git a/csit/variables/bgpfunctional/mvpn/intra_source_as_4/announce_intra_source_as_4.hex b/csit/variables/bgpfunctional/mvpn/intra_source_as_4/announce_intra_source_as_4.hex
new file mode 100644 (file)
index 0000000..62eb801
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff0051020000003a400101004002008004040000000040050400000064800e17000105047f01010100010c00010102030401020a0a0a0ac0100802d10000fbf00000
\ No newline at end of file
diff --git a/csit/variables/bgpfunctional/mvpn/intra_source_as_4/app/location.uri b/csit/variables/bgpfunctional/mvpn/intra_source_as_4/app/location.uri
new file mode 100644 (file)
index 0000000..df30681
--- /dev/null
@@ -0,0 +1 @@
+/restconf/config/bgp-rib:application-rib/$IP/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/intra_source_as_4/app/post_data.xml b/csit/variables/bgpfunctional/mvpn/intra_source_as_4/app/post_data.xml
new file mode 100644 (file)
index 0000000..1f06133
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<mvpn-route xmlns="urn:opendaylight:params:xml:ns:yang:bgp:mvpn:ipv4">
+    <path-id>0</path-id>
+    <route-key>AQwAAQECAwQBAgoKCgo=</route-key>
+    <attributes>
+        <ipv4-next-hop>
+            <global>127.1.1.1</global>
+        </ipv4-next-hop>
+        <multi-exit-disc>
+            <med>0</med>
+        </multi-exit-disc>
+        <as-path/>
+        <origin>
+            <value>igp</value>
+        </origin>
+        <local-pref>
+            <pref>100</pref>
+        </local-pref>
+        <extended-communities>
+            <transitive>true</transitive>
+            <source-as-4-extended-community>
+                <global-administrator>64496</global-administrator>
+            </source-as-4-extended-community>
+        </extended-communities>
+    </attributes>
+    <intra-as-i-pmsi-a-d>
+        <route-distinguisher>1.2.3.4:258</route-distinguisher>
+        <orig-route-ip>10.10.10.10</orig-route-ip>
+    </intra-as-i-pmsi-a-d>
+</mvpn-route>
\ 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
new file mode 100644 (file)
index 0000000..2dd2b09
--- /dev/null
@@ -0,0 +1,37 @@
+{
+  "bgp-mvpn-ipv4:mvpn-routes-ipv4": {
+    "mvpn-route": [
+      {
+        "route-key": "AQwAAQECAwQBAgoKCgo=",
+        "path-id": 0,
+        "attributes": {
+          "multi-exit-disc": {
+            "med": 0
+          },
+          "extended-communities": [
+            {
+              "transitive": true,
+              "source-as-4-extended-community": {
+                "global-administrator": 64496
+              }
+            }
+          ],
+          "ipv4-next-hop": {
+            "global": "127.1.1.1"
+          },
+          "as-path": {},
+          "origin": {
+            "value": "igp"
+          },
+          "local-pref": {
+            "pref": 100
+          }
+        },
+        "intra-as-i-pmsi-a-d": {
+          "route-distinguisher": "1.2.3.4:258",
+          "orig-route-ip": "10.10.10.10"
+        }
+      }
+    ]
+  }
+}
\ No newline at end of file
diff --git a/csit/variables/bgpfunctional/mvpn/intra_source_as_4/rib/location.uri b/csit/variables/bgpfunctional/mvpn/intra_source_as_4/rib/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/intra_source_as_4/withdraw_intra_source_as_4.hex b/csit/variables/bgpfunctional/mvpn/intra_source_as_4/withdraw_intra_source_as_4.hex
new file mode 100644 (file)
index 0000000..411fa85
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff004b0200000034400101004002008004040000000040050400000064800f11000105010c00010102030401020a0a0a0ac0100802d10000fbf00000
\ No newline at end of file
diff --git a/csit/variables/bgpfunctional/mvpn/intra_vrf/announce_intra_vrf.hex b/csit/variables/bgpfunctional/mvpn/intra_vrf/announce_intra_vrf.hex
new file mode 100644 (file)
index 0000000..e0a119d
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff0051020000003a400101014002008004040000000040050400000064800e17000105047f01010100010c00010102030401020a0a0a0ac01008010b0a0000013130
\ No newline at end of file
diff --git a/csit/variables/bgpfunctional/mvpn/intra_vrf/app/location.uri b/csit/variables/bgpfunctional/mvpn/intra_vrf/app/location.uri
new file mode 100644 (file)
index 0000000..df30681
--- /dev/null
@@ -0,0 +1 @@
+/restconf/config/bgp-rib:application-rib/$IP/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/intra_vrf/app/post_data.xml b/csit/variables/bgpfunctional/mvpn/intra_vrf/app/post_data.xml
new file mode 100644 (file)
index 0000000..6f28b8b
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<mvpn-route xmlns="urn:opendaylight:params:xml:ns:yang:bgp:mvpn:ipv4">
+    <path-id>0</path-id>
+    <route-key>AQwAAQECAwQBAgoKCgo=</route-key>
+    <attributes>
+        <ipv4-next-hop>
+            <global>127.1.1.1</global>
+        </ipv4-next-hop>
+        <multi-exit-disc>
+            <med>0</med>
+        </multi-exit-disc>
+        <as-path/>
+        <origin>
+            <value>egp</value>
+        </origin>
+        <local-pref>
+            <pref>100</pref>
+        </local-pref>
+        <extended-communities>
+            <transitive>true</transitive>
+            <vrf-route-import-extended-community>
+                <inet4-specific-extended-community-common>
+                    <global-administrator>10.0.0.1</global-administrator>
+                    <local-administrator>MTA=</local-administrator>
+                </inet4-specific-extended-community-common>
+            </vrf-route-import-extended-community>
+        </extended-communities>
+    </attributes>
+    <intra-as-i-pmsi-a-d>
+        <route-distinguisher>1.2.3.4:258</route-distinguisher>
+        <orig-route-ip>10.10.10.10</orig-route-ip>
+    </intra-as-i-pmsi-a-d>
+</mvpn-route>
\ 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
new file mode 100644 (file)
index 0000000..0d00ea9
--- /dev/null
@@ -0,0 +1,40 @@
+{
+  "bgp-mvpn-ipv4:mvpn-routes-ipv4": {
+    "mvpn-route": [
+      {
+        "route-key": "AQwAAQECAwQBAgoKCgo=",
+        "path-id": 0,
+        "attributes": {
+          "multi-exit-disc": {
+            "med": 0
+          },
+          "extended-communities": [
+            {
+              "transitive": true,
+              "vrf-route-import-extended-community": {
+                "inet4-specific-extended-community-common": {
+                  "global-administrator": "10.0.0.1",
+                  "local-administrator": "MTA="
+                }
+              }
+            }
+          ],
+          "ipv4-next-hop": {
+            "global": "127.1.1.1"
+          },
+          "as-path": {},
+          "origin": {
+            "value": "egp"
+          },
+          "local-pref": {
+            "pref": 100
+          }
+        },
+        "intra-as-i-pmsi-a-d": {
+          "route-distinguisher": "1.2.3.4:258",
+          "orig-route-ip": "10.10.10.10"
+        }
+      }
+    ]
+  }
+}
\ No newline at end of file
diff --git a/csit/variables/bgpfunctional/mvpn/intra_vrf/rib/location.uri b/csit/variables/bgpfunctional/mvpn/intra_vrf/rib/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/intra_vrf/withdraw_intra_vrf.hex b/csit/variables/bgpfunctional/mvpn/intra_vrf/withdraw_intra_vrf.hex
new file mode 100644 (file)
index 0000000..1b03f66
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff004b0200000034400101014002008004040000000040050400000064800f11000105010c00010102030401020a0a0a0ac01008010b0a0000013130
\ No newline at end of file
diff --git a/csit/variables/bgpfunctional/mvpn/leaf_ad/announce_leaf_ad.hex b/csit/variables/bgpfunctional/mvpn/leaf_ad/announce_leaf_ad.hex
new file mode 100644 (file)
index 0000000..26bc752
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff004c0200000035400101014002008004040000000040050400000064800e1d000105047f010101000412020c00010102030401020000000101000001
diff --git a/csit/variables/bgpfunctional/mvpn/leaf_ad/app/location.uri b/csit/variables/bgpfunctional/mvpn/leaf_ad/app/location.uri
new file mode 100644 (file)
index 0000000..df30681
--- /dev/null
@@ -0,0 +1 @@
+/restconf/config/bgp-rib:application-rib/$IP/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/leaf_ad/app/post_data.xml b/csit/variables/bgpfunctional/mvpn/leaf_ad/app/post_data.xml
new file mode 100644 (file)
index 0000000..589768a
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<mvpn-route xmlns="urn:opendaylight:params:xml:ns:yang:bgp:mvpn:ipv4">
+    <path-id>0</path-id>
+    <route-key>BBICDAABAQIDBAECAAAAAQEAAAE=</route-key>
+    <attributes>
+      <ipv4-next-hop>
+        <global>127.1.1.1</global>
+      </ipv4-next-hop>
+      <multi-exit-disc>
+        <med>0</med>
+      </multi-exit-disc>
+      <as-path/>
+      <origin>
+        <value>egp</value>
+      </origin>
+      <local-pref>
+        <pref>100</pref>
+      </local-pref>
+    </attributes>
+    <leaf-a-d>
+      <orig-route-ip>1.0.0.1</orig-route-ip>
+      <inter-as-i-pmsi-a-d>
+        <route-distinguisher>1.2.3.4:258</route-distinguisher>
+        <source-as>1</source-as>
+      </inter-as-i-pmsi-a-d>
+    </leaf-a-d>
+</mvpn-route>
diff --git a/csit/variables/bgpfunctional/mvpn/leaf_ad/rib/data.json b/csit/variables/bgpfunctional/mvpn/leaf_ad/rib/data.json
new file mode 100644 (file)
index 0000000..4c1a737
--- /dev/null
@@ -0,0 +1,32 @@
+{
+  "bgp-mvpn-ipv4:mvpn-routes-ipv4": {
+    "mvpn-route": [
+      {
+        "path-id": 0,
+        "route-key": "BBICDAABAQIDBAECAAAAAQEAAAE=",
+        "attributes": {
+          "ipv4-next-hop": {
+            "global": "127.1.1.1"
+          },
+          "multi-exit-disc": {
+            "med": 0
+          },
+          "as-path": {},
+          "origin": {
+            "value": "egp"
+          },
+          "local-pref": {
+            "pref": 100
+          }
+        },
+        "leaf-a-d": {
+          "orig-route-ip": "1.0.0.1",
+          "inter-as-i-pmsi-a-d": {
+            "route-distinguisher": "1.2.3.4:258",
+            "source-as": 1
+          }
+        }
+      }
+    ]
+  }
+}
diff --git a/csit/variables/bgpfunctional/mvpn/leaf_ad/rib/location.uri b/csit/variables/bgpfunctional/mvpn/leaf_ad/rib/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/leaf_ad/withdraw_leaf_ad.hex b/csit/variables/bgpfunctional/mvpn/leaf_ad/withdraw_leaf_ad.hex
new file mode 100644 (file)
index 0000000..5a8ab85
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff0046020000002f400101014002008004040000000040050400000064800f170001050412020c00010102030401020000000101000001
\ No newline at end of file
diff --git a/csit/variables/bgpfunctional/mvpn/shared_tree_join/announce_shared_tree_join.hex b/csit/variables/bgpfunctional/mvpn/shared_tree_join/announce_shared_tree_join.hex
new file mode 100644 (file)
index 0000000..6d06e42
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff00500200000039400101014002008004040000000040050400000064800e21000105047f01010100061600010102030401020000001020010000012002000002
diff --git a/csit/variables/bgpfunctional/mvpn/shared_tree_join/app/location.uri b/csit/variables/bgpfunctional/mvpn/shared_tree_join/app/location.uri
new file mode 100644 (file)
index 0000000..df30681
--- /dev/null
@@ -0,0 +1 @@
+/restconf/config/bgp-rib:application-rib/$IP/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/shared_tree_join/app/post_data.xml b/csit/variables/bgpfunctional/mvpn/shared_tree_join/app/post_data.xml
new file mode 100644 (file)
index 0000000..920e8c5
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<mvpn-route xmlns="urn:opendaylight:params:xml:ns:yang:bgp:mvpn:ipv4">
+    <path-id>0</path-id>
+    <route-key>BhYAAQECAwQBAgAAABAgAQAAASACAAAC</route-key>
+    <attributes>
+      <ipv4-next-hop>
+        <global>127.1.1.1</global>
+      </ipv4-next-hop>
+      <multi-exit-disc>
+        <med>0</med>
+      </multi-exit-disc>
+      <as-path/>
+      <origin>
+        <value>egp</value>
+      </origin>
+      <local-pref>
+        <pref>100</pref>
+      </local-pref>
+    </attributes>
+    <shared-tree-join>
+      <c-multicast>
+        <multicast-source>1.0.0.1</multicast-source>
+        <route-distinguisher>1.2.3.4:258</route-distinguisher>
+        <source-as>16</source-as>
+        <c-g-address>2.0.0.2</c-g-address>
+      </c-multicast>
+    </shared-tree-join>
+</mvpn-route>
diff --git a/csit/variables/bgpfunctional/mvpn/shared_tree_join/rib/data.json b/csit/variables/bgpfunctional/mvpn/shared_tree_join/rib/data.json
new file mode 100644 (file)
index 0000000..c8e8716
--- /dev/null
@@ -0,0 +1,33 @@
+{
+  "bgp-mvpn-ipv4:mvpn-routes-ipv4": {
+    "mvpn-route": [
+      {
+        "path-id": 0,
+        "route-key": "BhYAAQECAwQBAgAAABAgAQAAASACAAAC",
+        "attributes": {
+          "ipv4-next-hop": {
+            "global": "127.1.1.1"
+          },
+          "multi-exit-disc": {
+            "med": 0
+          },
+          "as-path": {},
+          "origin": {
+            "value": "egp"
+          },
+          "local-pref": {
+            "pref": 100
+          }
+        },
+        "shared-tree-join": {
+          "c-multicast": {
+            "multicast-source": "1.0.0.1",
+            "route-distinguisher": "1.2.3.4:258",
+            "source-as": 16,
+            "c-g-address": "2.0.0.2"
+          }
+        }
+      }
+    ]
+  }
+}
diff --git a/csit/variables/bgpfunctional/mvpn/shared_tree_join/rib/location.uri b/csit/variables/bgpfunctional/mvpn/shared_tree_join/rib/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/shared_tree_join/withdraw_shared_tree_join.hex b/csit/variables/bgpfunctional/mvpn/shared_tree_join/withdraw_shared_tree_join.hex
new file mode 100644 (file)
index 0000000..3cc6613
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff004a0200000033400101014002008004040000000040050400000064800f1b000105061600010102030401020000001020010000012002000002
diff --git a/csit/variables/bgpfunctional/mvpn/source_active_ad/announce_source_active_ad.hex b/csit/variables/bgpfunctional/mvpn/source_active_ad/announce_source_active_ad.hex
new file mode 100644 (file)
index 0000000..0afe7b7
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff004c0200000035400101014002008004040000000040050400000064800e1d000105047f010101000512000101020304010220010000012002000002
diff --git a/csit/variables/bgpfunctional/mvpn/source_active_ad/app/location.uri b/csit/variables/bgpfunctional/mvpn/source_active_ad/app/location.uri
new file mode 100644 (file)
index 0000000..df30681
--- /dev/null
@@ -0,0 +1 @@
+/restconf/config/bgp-rib:application-rib/$IP/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/source_active_ad/app/post_data.xml b/csit/variables/bgpfunctional/mvpn/source_active_ad/app/post_data.xml
new file mode 100644 (file)
index 0000000..8c4321a
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<mvpn-route xmlns="urn:opendaylight:params:xml:ns:yang:bgp:mvpn:ipv4">
+    <path-id>0</path-id>
+    <route-key>BRIAAQECAwQBAiABAAABIAIAAAI=</route-key>
+    <attributes>
+      <ipv4-next-hop>
+        <global>127.1.1.1</global>
+      </ipv4-next-hop>
+      <multi-exit-disc>
+        <med>0</med>
+      </multi-exit-disc>
+      <as-path/>
+      <origin>
+        <value>egp</value>
+      </origin>
+      <local-pref>
+        <pref>100</pref>
+      </local-pref>
+    </attributes>
+    <source-active-a-d>
+      <route-distinguisher>1.2.3.4:258</route-distinguisher>
+      <multicast-source>1.0.0.1</multicast-source>
+      <multicast-group>2.0.0.2</multicast-group>
+    </source-active-a-d>
+</mvpn-route>
diff --git a/csit/variables/bgpfunctional/mvpn/source_active_ad/rib/data.json b/csit/variables/bgpfunctional/mvpn/source_active_ad/rib/data.json
new file mode 100644 (file)
index 0000000..1da5772
--- /dev/null
@@ -0,0 +1,30 @@
+{
+  "bgp-mvpn-ipv4:mvpn-routes-ipv4": {
+    "mvpn-route": [
+      {
+        "path-id": 0,
+        "route-key": "BRIAAQECAwQBAiABAAABIAIAAAI=",
+        "attributes": {
+          "ipv4-next-hop": {
+            "global": "127.1.1.1"
+          },
+          "multi-exit-disc": {
+            "med": 0
+          },
+          "as-path": {},
+          "origin": {
+            "value": "egp"
+          },
+          "local-pref": {
+            "pref": 100
+          }
+        },
+        "source-active-a-d": {
+          "route-distinguisher": "1.2.3.4:258",
+          "multicast-source": "1.0.0.1",
+          "multicast-group": "2.0.0.2"
+        }
+      }
+    ]
+  }
+}
diff --git a/csit/variables/bgpfunctional/mvpn/source_active_ad/rib/location.uri b/csit/variables/bgpfunctional/mvpn/source_active_ad/rib/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/source_active_ad/withdraw_source_active_ad.hex b/csit/variables/bgpfunctional/mvpn/source_active_ad/withdraw_source_active_ad.hex
new file mode 100644 (file)
index 0000000..2cd02fd
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff0046020000002f400101014002008004040000000040050400000064800f170001050512000101020304010220010000012002000002
diff --git a/csit/variables/bgpfunctional/mvpn/source_tree_join/announce_source_tree_join.hex b/csit/variables/bgpfunctional/mvpn/source_tree_join/announce_source_tree_join.hex
new file mode 100644 (file)
index 0000000..c6a767c
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff00500200000039400101014002008004040000000040050400000064800e21000105047f01010100071600010102030401020000000a20010000012002000002
diff --git a/csit/variables/bgpfunctional/mvpn/source_tree_join/app/location.uri b/csit/variables/bgpfunctional/mvpn/source_tree_join/app/location.uri
new file mode 100644 (file)
index 0000000..df30681
--- /dev/null
@@ -0,0 +1 @@
+/restconf/config/bgp-rib:application-rib/$IP/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/source_tree_join/app/post_data.xml b/csit/variables/bgpfunctional/mvpn/source_tree_join/app/post_data.xml
new file mode 100644 (file)
index 0000000..fb284e1
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<mvpn-route xmlns="urn:opendaylight:params:xml:ns:yang:bgp:mvpn:ipv4">
+    <path-id>0</path-id>
+    <route-key>BxYAAQECAwQBAgAAAAogAQAAASACAAAC</route-key>
+    <attributes>
+      <ipv4-next-hop>
+        <global>127.1.1.1</global>
+      </ipv4-next-hop>
+      <multi-exit-disc>
+        <med>0</med>
+      </multi-exit-disc>
+      <as-path/>
+      <origin>
+        <value>egp</value>
+      </origin>
+      <local-pref>
+        <pref>100</pref>
+      </local-pref>
+    </attributes>
+    <source-tree-join>
+      <c-multicast>
+        <multicast-source>1.0.0.1</multicast-source>
+        <route-distinguisher>1.2.3.4:258</route-distinguisher>
+        <source-as>10</source-as>
+        <c-g-address>2.0.0.2</c-g-address>
+      </c-multicast>
+    </source-tree-join>
+</mvpn-route>
diff --git a/csit/variables/bgpfunctional/mvpn/source_tree_join/rib/data.json b/csit/variables/bgpfunctional/mvpn/source_tree_join/rib/data.json
new file mode 100644 (file)
index 0000000..b646dc6
--- /dev/null
@@ -0,0 +1,33 @@
+{
+  "bgp-mvpn-ipv4:mvpn-routes-ipv4": {
+    "mvpn-route": [
+      {
+        "path-id": 0,
+        "route-key": "BxYAAQECAwQBAgAAAAogAQAAASACAAAC",
+        "attributes": {
+          "ipv4-next-hop": {
+            "global": "127.1.1.1"
+          },
+          "multi-exit-disc": {
+            "med": 0
+          },
+          "as-path": {},
+          "origin": {
+            "value": "egp"
+          },
+          "local-pref": {
+            "pref": 100
+          }
+        },
+        "source-tree-join": {
+          "c-multicast": {
+            "multicast-source": "1.0.0.1",
+            "route-distinguisher": "1.2.3.4:258",
+            "source-as": 10,
+            "c-g-address": "2.0.0.2"
+          }
+        }
+      }
+    ]
+  }
+}
diff --git a/csit/variables/bgpfunctional/mvpn/source_tree_join/rib/location.uri b/csit/variables/bgpfunctional/mvpn/source_tree_join/rib/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/source_tree_join/withdraw_source_tree_join.hex b/csit/variables/bgpfunctional/mvpn/source_tree_join/withdraw_source_tree_join.hex
new file mode 100644 (file)
index 0000000..16f8292
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff004a0200000033400101014002008004040000000040050400000064800f1b000105071600010102030401020000000a20010000012002000002
diff --git a/csit/variables/bgpfunctional/mvpn/spmsi_ad/announce_spmsi_ad.hex b/csit/variables/bgpfunctional/mvpn/spmsi_ad/announce_spmsi_ad.hex
new file mode 100644 (file)
index 0000000..730e242
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff00500200000039400101014002008004040000000040050400000064800e21000105047f0101010003160001010203040102200a00000a200c00000c01000001
diff --git a/csit/variables/bgpfunctional/mvpn/spmsi_ad/app/location.uri b/csit/variables/bgpfunctional/mvpn/spmsi_ad/app/location.uri
new file mode 100644 (file)
index 0000000..df30681
--- /dev/null
@@ -0,0 +1 @@
+/restconf/config/bgp-rib:application-rib/$IP/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/spmsi_ad/app/post_data.xml b/csit/variables/bgpfunctional/mvpn/spmsi_ad/app/post_data.xml
new file mode 100644 (file)
index 0000000..0087fe8
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<mvpn-route xmlns="urn:opendaylight:params:xml:ns:yang:bgp:mvpn:ipv4">
+    <path-id>0</path-id>
+    <route-key>AxYAAQECAwQBAiAKAAAKIAwAAAwBAAAB</route-key>
+    <attributes>
+      <ipv4-next-hop>
+        <global>127.1.1.1</global>
+      </ipv4-next-hop>
+      <multi-exit-disc>
+        <med>0</med>
+      </multi-exit-disc>
+      <as-path/>
+      <origin>
+        <value>egp</value>
+      </origin>
+      <local-pref>
+        <pref>100</pref>
+      </local-pref>
+    </attributes>
+    <s-pmsi-a-d>
+      <orig-route-ip>1.0.0.1</orig-route-ip>
+      <multicast-source>10.0.0.10</multicast-source>
+      <route-distinguisher>1.2.3.4:258</route-distinguisher>
+      <c-g-address>12.0.0.12</c-g-address>
+    </s-pmsi-a-d>
+</mvpn-route>
diff --git a/csit/variables/bgpfunctional/mvpn/spmsi_ad/rib/data.json b/csit/variables/bgpfunctional/mvpn/spmsi_ad/rib/data.json
new file mode 100644 (file)
index 0000000..c3346ac
--- /dev/null
@@ -0,0 +1,31 @@
+{
+  "bgp-mvpn-ipv4:mvpn-routes-ipv4": {
+    "mvpn-route": [
+      {
+        "path-id": 0,
+        "route-key": "AxYAAQECAwQBAiAKAAAKIAwAAAwBAAAB",
+        "attributes": {
+          "ipv4-next-hop": {
+            "global": "127.1.1.1"
+          },
+          "multi-exit-disc": {
+            "med": 0
+          },
+          "as-path": {},
+          "origin": {
+            "value": "egp"
+          },
+          "local-pref": {
+            "pref": 100
+          }
+        },
+        "s-pmsi-a-d": {
+          "orig-route-ip": "1.0.0.1",
+          "multicast-source": "10.0.0.10",
+          "route-distinguisher": "1.2.3.4:258",
+          "c-g-address": "12.0.0.12"
+        }
+      }
+    ]
+  }
+}
diff --git a/csit/variables/bgpfunctional/mvpn/spmsi_ad/rib/location.uri b/csit/variables/bgpfunctional/mvpn/spmsi_ad/rib/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/spmsi_ad/withdraw_spmsi_ad.hex b/csit/variables/bgpfunctional/mvpn/spmsi_ad/withdraw_spmsi_ad.hex
new file mode 100644 (file)
index 0000000..25e32ed
--- /dev/null
@@ -0,0 +1 @@
+ffffffffffffffffffffffffffffffff004a0200000033400101014002008004040000000040050400000064800f1b00010503160001010203040102200a00000a200c00000c01000001
index d713ddf1ec1b5c4cad75036a6e246354cfc1faae..2e9bef729577a72e45906d65379b937eb44bcc21 100644 (file)
@@ -1 +1 @@
-restconf/config/openconfig-network-instance:network-instances/network-instance/global-bgp/openconfig-network-instance:protocols/protocol/openconfig-policy-types:BGP/$BGP_RIB_OPENCONFIG/bgp/neighbors/neighbor/$IP
+restconf/config/openconfig-network-instance:network-instances/network-instance/global-bgp/openconfig-network-instance:protocols/protocol/openconfig-policy-types:BGP/$BGP_RIB/bgp/neighbors/neighbor/$IP
index 3a347e425bdb685a722722019d441c47b4f315cf..4cc0fce66f23536dae04ec6e1e30c29d24849581 100755 (executable)
@@ -156,6 +156,10 @@ def parse_arguments():
 Enabling this flag makes the script not decoding the update mesage, because of not\
 supported decoding for these elements."
     parser.add_argument("--evpn", default=False, action="store_true", help=str_help)
+    str_help = "Open message includes Multicast in MPLS/BGP IP VPNs arguments.\
+    Enabling this flag makes the script not decoding the update mesage, because of not\
+    supported decoding for these elements."
+    parser.add_argument("--mvpn", default=False, action="store_true", help=str_help)
     parser.add_argument("--wfr", default=10, type=int, help="Wait for read timeout")
     str_help = "Skipping well known attributes for update message"
     parser.add_argument("--skipattr", default=False, action="store_true", help=str_help)
@@ -355,6 +359,7 @@ class MessageGenerator(object):
         self.rfc4760 = args.rfc4760
         self.bgpls = args.bgpls
         self.evpn = args.evpn
+        self.mvpn = args.mvpn
         self.skipattr = args.skipattr
         # Default values when BGP-LS Attributes are used
         if self.bgpls:
@@ -823,6 +828,28 @@ class MessageGenerator(object):
             )
             optional_parameters_hex += optional_parameter_hex
 
+        if self.mvpn:
+            optional_parameter_hex = (
+                "\x02"  # Param type ("Capability Ad")
+                "\x06"  # Length (6 bytes)
+                "\x01"  # Multiprotocol extetension capability,
+                "\x04"  # Capability value length
+                "\x00\x01"  # AFI (IPV4)
+                "\x00"  # (reserved)
+                "\x05"  # SAFI (MCAST-VPN)
+            )
+            optional_parameters_hex += optional_parameter_hex
+            optional_parameter_hex = (
+                "\x02"  # Param type ("Capability Ad")
+                "\x06"  # Length (6 bytes)
+                "\x01"  # Multiprotocol extetension capability,
+                "\x04"  # Capability value length
+                "\x00\x02"  # AFI (IPV6)
+                "\x00"  # (reserved)
+                "\x05"  # SAFI (MCAST-VPN)
+            )
+            optional_parameters_hex += optional_parameter_hex
+
         optional_parameter_hex = (
             "\x02"  # Param type ("Capability Ad")
             "\x06"  # Length (6 bytes)
@@ -1278,7 +1305,7 @@ class ReadTracker(object):
     for idle waiting.
     """
 
-    def __init__(self, bgp_socket, timer, storage, evpn=False, wait_for_read=10):
+    def __init__(self, bgp_socket, timer, storage, evpn=False, mvpn=False, wait_for_read=10):
         """The reader initialisation.
 
         Arguments:
@@ -1286,6 +1313,7 @@ class ReadTracker(object):
             timer: timer to be used for scheduling
             storage: thread safe dict
             evpn: flag that evpn functionality is tested
+            mvpn: flag that mvpn functionality is tested
         """
         # References to outside objects.
         self.socket = bgp_socket
@@ -1308,6 +1336,7 @@ class ReadTracker(object):
         self.rx_activity_detected = True
         self.storage = storage
         self.evpn = evpn
+        self.mvpn = mvpn
         self.wfr = wait_for_read
 
     def read_message_chunk(self):
@@ -1318,6 +1347,7 @@ class ReadTracker(object):
         """
         # TODO: We could return the whole message, currently not needed.
         # We assume the socket is readable.
+        logger.info("READING MESSAGE")
         chunk_message = self.socket.recv(self.bytes_to_read)
         self.msg_in += chunk_message
         self.bytes_to_read -= len(chunk_message)
@@ -1516,6 +1546,11 @@ class ReadTracker(object):
             logger.debug("Skipping update decoding due to evpn data expected")
             return
 
+        logger.debug("Mvpn {}".format(self.mvpn))
+        if self.mvpn:
+            logger.debug("Skipping update decoding due to mvpn data expected")
+            return
+
         if msg_type == 2:
             logger.debug("Message type: 0x%s (update)",
                          binascii.b2a_hex(msg_type_hex))
@@ -1680,7 +1715,8 @@ class StateTracker(object):
         self.generator = generator
         self.timer = timer
         # Sub-trackers.
-        self.reader = ReadTracker(bgp_socket, timer, storage, evpn=cliargs.evpn, wait_for_read=cliargs.wfr)
+        self.reader = ReadTracker(bgp_socket, timer, storage, evpn=cliargs.evpn,
+                                  mvpn=cliargs.mvpn, wait_for_read=cliargs.wfr)
         self.writer = WriteTracker(bgp_socket, generator, timer)
         # Prioritization state.
         self.prioritize_writing = False