From: Tomas Markovic Date: Mon, 21 May 2018 10:01:28 +0000 (+0200) Subject: Mvpn functional tests X-Git-Tag: pre-potassium~764 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=aba529b557c71f6ddf9202a91cb446c6c8921e49;hp=b47a552b8a93b62cc8c3672938c7aa9750ac8dc2;p=integration%2Ftest.git Mvpn functional tests 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 --- 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 index 0000000000..36441bbc35 --- /dev/null +++ b/csit/suites/bgpcep/bgpfunct/060_bgp_functional_mvpn.robot @@ -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} diff --git a/csit/testplans/bgpcep-userfeatures-fluorine.txt b/csit/testplans/bgpcep-userfeatures-fluorine.txt index 1e2ecd08d9..c87ce4566d 100644 --- a/csit/testplans/bgpcep-userfeatures-fluorine.txt +++ b/csit/testplans/bgpcep-userfeatures-fluorine.txt @@ -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 index 0000000000..3b1b32f147 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/app_peer/data.xml @@ -0,0 +1,6 @@ + + $IP + + application-peers + + diff --git a/csit/variables/bgpfunctional/mvpn/app_peer/location.uri b/csit/variables/bgpfunctional/mvpn/app_peer/location.uri new file mode 100644 index 0000000000..2e9bef7295 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/app_peer/location.uri @@ -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 index 0000000000..ba486131a3 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/bgp_peer/data.xml @@ -0,0 +1,36 @@ + + $IP + + + false + + + + + $HOLDTIME + + + + + $PEER_PORT + $PASSIVE_MODE + + + + INTERNAL + + + + x:IPV4-UNICAST + + + IPV4-MCAST-VPN + + + IPV6-MCAST-VPN + + + LINKSTATE + + + diff --git a/csit/variables/bgpfunctional/mvpn/bgp_peer/location.uri b/csit/variables/bgpfunctional/mvpn/bgp_peer/location.uri new file mode 100644 index 0000000000..2e9bef7295 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/bgp_peer/location.uri @@ -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 index 0000000000..da9e2d3c12 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/empty_routes_ipv4/data.json @@ -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 index 0000000000..1256403496 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/empty_routes_ipv4/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv4:mvpn-routes-ipv4 diff --git a/csit/variables/bgpfunctional/mvpn/empty_routes_ipv6/data.json b/csit/variables/bgpfunctional/mvpn/empty_routes_ipv6/data.json new file mode 100644 index 0000000000..21650b8b0a --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/empty_routes_ipv6/data.json @@ -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 index 0000000000..99626a4185 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/empty_routes_ipv6/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv6-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv6:mvpn-routes-ipv6 diff --git a/csit/variables/bgpfunctional/mvpn/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 index 0000000000..ee1a050617 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/announce_inter_as_ipmsi_ad.hex @@ -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 index 0000000000..df3068157c --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/app/location.uri @@ -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 index 0000000000..b056275d4e --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/app/post_data.xml @@ -0,0 +1,24 @@ + + + 0 + AgwAAQECAwQBAgAA+/A= + + + 127.1.1.1 + + + 0 + + + + egp + + + 100 + + + + 1.2.3.4:258 + 64496 + + 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 index 0000000000..8a0336aa49 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/rib/data.json @@ -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 index 0000000000..1256403496 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/rib/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv4:mvpn-routes-ipv4 diff --git a/csit/variables/bgpfunctional/mvpn/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 index 0000000000..b2efffaa0e --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/inter_as_ipmsi_ad/withdraw_inter_as_ipmsi_ad.hex @@ -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 index 0000000000..9c02a83cb2 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/announce_intra_as_ipmsi_ad.hex @@ -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 index 0000000000..df3068157c --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/app/location.uri @@ -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 index 0000000000..a7fdb5019a --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/app/post_data.xml @@ -0,0 +1,24 @@ + + + 0 + AQwAAQECAwQBAgoKCgo= + + + 127.1.1.1 + + + 0 + + + + egp + + + 100 + + + + 1.2.3.4:258 + 10.10.10.10 + + 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 index 0000000000..53d969e311 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/rib/data.json @@ -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 index 0000000000..1256403496 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/rib/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv4:mvpn-routes-ipv4 diff --git a/csit/variables/bgpfunctional/mvpn/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 index 0000000000..541446977b --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_as_ipmsi_ad/withdraw_intra_as_ipmsi_ad.hex @@ -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 index 0000000000..68710dfa87 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_ipv6/announce_intra_ipv6.hex @@ -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 index 0000000000..8d637372dd --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_ipv6/app/location.uri @@ -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 index 0000000000..a0d7960dc4 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_ipv6/app/post_data.xml @@ -0,0 +1,21 @@ + + + flow1 + 0 + + 172.16.0.44:101 + 192.168.100.1 + + + + 2001:db8:1::6 + + + + igp + + + 100 + + + 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 index 0000000000..3ffb7890d5 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_ipv6/rib/data.json @@ -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 index 0000000000..99626a4185 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_ipv6/rib/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv6-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv6:mvpn-routes-ipv6 diff --git a/csit/variables/bgpfunctional/mvpn/intra_ipv6/withdraw_intra_ipv6.hex b/csit/variables/bgpfunctional/mvpn/intra_ipv6/withdraw_intra_ipv6.hex new file mode 100644 index 0000000000..e92bb6a433 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_ipv6/withdraw_intra_ipv6.hex @@ -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 index 0000000000..305f2176b2 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/announce_intra_pe_distinguisher.hex @@ -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 index 0000000000..df3068157c --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/app/location.uri @@ -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 index 0000000000..63a8e62733 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/app/post_data.xml @@ -0,0 +1,34 @@ + + + 0 + AQwAAQECAwQBAgoKCgo= + + + 127.1.1.1 + + + 0 + + + + egp + + + 100 + + + + 10.10.10.1 + 20024 + + + 10.10.20.2 + 20028 + + + + + 1.2.3.4:258 + 10.10.10.10 + + 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 index 0000000000..c27f09db14 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/rib/data.json @@ -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 index 0000000000..1256403496 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/rib/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv4:mvpn-routes-ipv4 diff --git a/csit/variables/bgpfunctional/mvpn/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 index 0000000000..576b4af273 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_pe_distinguisher/withdraw_intra_pe_distinguisher.hex @@ -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 index 0000000000..b890cb8ec0 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_source_as/announce_intra_source_as.hex @@ -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 index 0000000000..df3068157c --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_source_as/app/location.uri @@ -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 index 0000000000..0431bcdadb --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_source_as/app/post_data.xml @@ -0,0 +1,30 @@ + + + 0 + AQwAAQECAwQBAgoKCgo= + + + 127.1.1.1 + + + 0 + + + + egp + + + 100 + + + true + + 65 + + + + + 1.2.3.4:258 + 10.10.10.10 + + \ 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 index 0000000000..ff9d8599dc --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_source_as/rib/data.json @@ -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 index 0000000000..1256403496 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_source_as/rib/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv4:mvpn-routes-ipv4 diff --git a/csit/variables/bgpfunctional/mvpn/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 index 0000000000..cbdfd8eeb4 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_source_as/withdraw_intra_source_as.hex @@ -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 index 0000000000..62eb8015a6 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_source_as_4/announce_intra_source_as_4.hex @@ -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 index 0000000000..df3068157c --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_source_as_4/app/location.uri @@ -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 index 0000000000..1f06133307 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_source_as_4/app/post_data.xml @@ -0,0 +1,30 @@ + + + 0 + AQwAAQECAwQBAgoKCgo= + + + 127.1.1.1 + + + 0 + + + + igp + + + 100 + + + true + + 64496 + + + + + 1.2.3.4:258 + 10.10.10.10 + + \ 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 index 0000000000..2dd2b09e9c --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_source_as_4/rib/data.json @@ -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 index 0000000000..1256403496 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_source_as_4/rib/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv4:mvpn-routes-ipv4 diff --git a/csit/variables/bgpfunctional/mvpn/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 index 0000000000..411fa8595a --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_source_as_4/withdraw_intra_source_as_4.hex @@ -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 index 0000000000..e0a119d725 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_vrf/announce_intra_vrf.hex @@ -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 index 0000000000..df3068157c --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_vrf/app/location.uri @@ -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 index 0000000000..6f28b8b426 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_vrf/app/post_data.xml @@ -0,0 +1,33 @@ + + + 0 + AQwAAQECAwQBAgoKCgo= + + + 127.1.1.1 + + + 0 + + + + egp + + + 100 + + + true + + + 10.0.0.1 + MTA= + + + + + + 1.2.3.4:258 + 10.10.10.10 + + \ 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 index 0000000000..0d00ea9244 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_vrf/rib/data.json @@ -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 index 0000000000..1256403496 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_vrf/rib/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv4:mvpn-routes-ipv4 diff --git a/csit/variables/bgpfunctional/mvpn/intra_vrf/withdraw_intra_vrf.hex b/csit/variables/bgpfunctional/mvpn/intra_vrf/withdraw_intra_vrf.hex new file mode 100644 index 0000000000..1b03f66fa2 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/intra_vrf/withdraw_intra_vrf.hex @@ -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 index 0000000000..26bc75229c --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/leaf_ad/announce_leaf_ad.hex @@ -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 index 0000000000..df3068157c --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/leaf_ad/app/location.uri @@ -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 index 0000000000..589768aa31 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/leaf_ad/app/post_data.xml @@ -0,0 +1,27 @@ + + + 0 + BBICDAABAQIDBAECAAAAAQEAAAE= + + + 127.1.1.1 + + + 0 + + + + egp + + + 100 + + + + 1.0.0.1 + + 1.2.3.4:258 + 1 + + + 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 index 0000000000..4c1a737e1d --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/leaf_ad/rib/data.json @@ -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 index 0000000000..1256403496 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/leaf_ad/rib/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv4:mvpn-routes-ipv4 diff --git a/csit/variables/bgpfunctional/mvpn/leaf_ad/withdraw_leaf_ad.hex b/csit/variables/bgpfunctional/mvpn/leaf_ad/withdraw_leaf_ad.hex new file mode 100644 index 0000000000..5a8ab85597 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/leaf_ad/withdraw_leaf_ad.hex @@ -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 index 0000000000..6d06e42fd3 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/shared_tree_join/announce_shared_tree_join.hex @@ -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 index 0000000000..df3068157c --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/shared_tree_join/app/location.uri @@ -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 index 0000000000..920e8c5628 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/shared_tree_join/app/post_data.xml @@ -0,0 +1,28 @@ + + + 0 + BhYAAQECAwQBAgAAABAgAQAAASACAAAC + + + 127.1.1.1 + + + 0 + + + + egp + + + 100 + + + + + 1.0.0.1 + 1.2.3.4:258 + 16 + 2.0.0.2 + + + 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 index 0000000000..c8e87161be --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/shared_tree_join/rib/data.json @@ -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 index 0000000000..1256403496 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/shared_tree_join/rib/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv4:mvpn-routes-ipv4 diff --git a/csit/variables/bgpfunctional/mvpn/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 index 0000000000..3cc66133b2 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/shared_tree_join/withdraw_shared_tree_join.hex @@ -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 index 0000000000..0afe7b7d86 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/source_active_ad/announce_source_active_ad.hex @@ -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 index 0000000000..df3068157c --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/source_active_ad/app/location.uri @@ -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 index 0000000000..8c4321a3a1 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/source_active_ad/app/post_data.xml @@ -0,0 +1,25 @@ + + + 0 + BRIAAQECAwQBAiABAAABIAIAAAI= + + + 127.1.1.1 + + + 0 + + + + egp + + + 100 + + + + 1.2.3.4:258 + 1.0.0.1 + 2.0.0.2 + + 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 index 0000000000..1da57727c1 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/source_active_ad/rib/data.json @@ -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 index 0000000000..1256403496 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/source_active_ad/rib/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv4:mvpn-routes-ipv4 diff --git a/csit/variables/bgpfunctional/mvpn/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 index 0000000000..2cd02fd1b4 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/source_active_ad/withdraw_source_active_ad.hex @@ -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 index 0000000000..c6a767cace --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/source_tree_join/announce_source_tree_join.hex @@ -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 index 0000000000..df3068157c --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/source_tree_join/app/location.uri @@ -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 index 0000000000..fb284e162a --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/source_tree_join/app/post_data.xml @@ -0,0 +1,28 @@ + + + 0 + BxYAAQECAwQBAgAAAAogAQAAASACAAAC + + + 127.1.1.1 + + + 0 + + + + egp + + + 100 + + + + + 1.0.0.1 + 1.2.3.4:258 + 10 + 2.0.0.2 + + + 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 index 0000000000..b646dc6404 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/source_tree_join/rib/data.json @@ -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 index 0000000000..1256403496 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/source_tree_join/rib/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv4:mvpn-routes-ipv4 diff --git a/csit/variables/bgpfunctional/mvpn/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 index 0000000000..16f8292484 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/source_tree_join/withdraw_source_tree_join.hex @@ -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 index 0000000000..730e242760 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/spmsi_ad/announce_spmsi_ad.hex @@ -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 index 0000000000..df3068157c --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/spmsi_ad/app/location.uri @@ -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 index 0000000000..0087fe8860 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/spmsi_ad/app/post_data.xml @@ -0,0 +1,26 @@ + + + 0 + AxYAAQECAwQBAiAKAAAKIAwAAAwBAAAB + + + 127.1.1.1 + + + 0 + + + + egp + + + 100 + + + + 1.0.0.1 + 10.0.0.10 + 1.2.3.4:258 + 12.0.0.12 + + 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 index 0000000000..c3346ac46a --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/spmsi_ad/rib/data.json @@ -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 index 0000000000..1256403496 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/spmsi_ad/rib/location.uri @@ -0,0 +1 @@ +restconf/operational/bgp-rib:bgp-rib/rib/$BGP_RIB/$PATH/tables/bgp-types:ipv4-address-family/bgp-mvpn:mcast-vpn-subsequent-address-family/bgp-mvpn-ipv4:mvpn-routes-ipv4 diff --git a/csit/variables/bgpfunctional/mvpn/spmsi_ad/withdraw_spmsi_ad.hex b/csit/variables/bgpfunctional/mvpn/spmsi_ad/withdraw_spmsi_ad.hex new file mode 100644 index 0000000000..25e32edc19 --- /dev/null +++ b/csit/variables/bgpfunctional/mvpn/spmsi_ad/withdraw_spmsi_ad.hex @@ -0,0 +1 @@ +ffffffffffffffffffffffffffffffff004a0200000033400101014002008004040000000040050400000064800f1b00010503160001010203040102200a00000a200c00000c01000001 diff --git a/csit/variables/bgpuser/bgp_peer/location.uri b/csit/variables/bgpuser/bgp_peer/location.uri index d713ddf1ec..2e9bef7295 100644 --- a/csit/variables/bgpuser/bgp_peer/location.uri +++ b/csit/variables/bgpuser/bgp_peer/location.uri @@ -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 diff --git a/tools/fastbgp/play.py b/tools/fastbgp/play.py index 3a347e425b..4cc0fce66f 100755 --- a/tools/fastbgp/play.py +++ b/tools/fastbgp/play.py @@ -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