diff options
Diffstat (limited to 'tests/topotests/lib/bgp.py')
| -rw-r--r-- | tests/topotests/lib/bgp.py | 54 |
1 files changed, 40 insertions, 14 deletions
diff --git a/tests/topotests/lib/bgp.py b/tests/topotests/lib/bgp.py index 50cb586acd..db7b3586f1 100644 --- a/tests/topotests/lib/bgp.py +++ b/tests/topotests/lib/bgp.py @@ -990,7 +990,7 @@ def modify_bgp_config_when_bgpd_down(tgen, topo, input_dict): # Verification APIs ############################################# @retry(attempts=4, wait=2, return_is_str=True) -def verify_router_id(tgen, topo, input_dict): +def verify_router_id(tgen, topo, input_dict, expected=True): """ Running command "show ip bgp json" for DUT and reading router-id from input_dict and verifying with command output. @@ -1006,6 +1006,8 @@ def verify_router_id(tgen, topo, input_dict): * `topo`: input json file data * `input_dict`: input dictionary, have details of Device Under Test, for which user wants to test the data + * `expected` : expected results from API, by-default True + Usage ----- # Verify if router-id for r1 is 12.12.12.12 @@ -1060,7 +1062,7 @@ def verify_router_id(tgen, topo, input_dict): @retry(attempts=50, wait=3, return_is_str=True) -def verify_bgp_convergence(tgen, topo, dut=None): +def verify_bgp_convergence(tgen, topo, dut=None, expected=True): """ API will verify if BGP is converged with in the given time frame. Running "show bgp summary json" command and verify bgp neighbor @@ -1070,6 +1072,8 @@ def verify_bgp_convergence(tgen, topo, dut=None): * `tgen`: topogen object * `topo`: input json file data * `dut`: device under test + * `expected` : expected results from API, by-default True + Usage ----- # To veriry is BGP is converged for all the routers used in @@ -1264,7 +1268,7 @@ def verify_bgp_convergence(tgen, topo, dut=None): @retry(attempts=4, wait=4, return_is_str=True) def verify_bgp_community( - tgen, addr_type, router, network, input_dict=None, vrf=None, bestpath=False + tgen, addr_type, router, network, input_dict=None, vrf=None, bestpath=False, expected=True ): """ API to veiryf BGP large community is attached in route for any given @@ -1280,6 +1284,7 @@ def verify_bgp_community( values needs to be verified * `vrf`: VRF name * `bestpath`: To check best path cli + * `expected` : expected results from API, by-default True Usage ----- @@ -1423,7 +1428,7 @@ def modify_as_number(tgen, topo, input_dict): @retry(attempts=4, wait=2, return_is_str=True) -def verify_as_numbers(tgen, topo, input_dict): +def verify_as_numbers(tgen, topo, input_dict, expected=True): """ This API is to verify AS numbers for given DUT by running "show ip bgp neighbor json" command. Local AS and Remote AS @@ -1435,6 +1440,7 @@ def verify_as_numbers(tgen, topo, input_dict): * `topo`: input json file data * `addr_type` : ip type, ipv4/ipv6 * `input_dict`: defines - for which router, AS numbers needs to be verified + * `expected` : expected results from API, by-default True Usage ----- @@ -1522,7 +1528,7 @@ def verify_as_numbers(tgen, topo, input_dict): @retry(attempts=50, wait=3, return_is_str=True) -def verify_bgp_convergence_from_running_config(tgen, dut=None): +def verify_bgp_convergence_from_running_config(tgen, dut=None, expected=True): """ API to verify BGP convergence b/w loopback and physical interface. This API would be used when routers have BGP neighborship is loopback @@ -1532,6 +1538,7 @@ def verify_bgp_convergence_from_running_config(tgen, dut=None): ---------- * `tgen`: topogen object * `dut`: device under test + * `expected` : expected results from API, by-default True Usage ----- @@ -2086,6 +2093,7 @@ def verify_bgp_attributes( input_dict=None, seq_id=None, nexthop=None, + expected=True ): """ API will verify BGP attributes set by Route-map for given prefix and @@ -2101,6 +2109,7 @@ def verify_bgp_attributes( * `rmap_name`: route map name for which set criteria needs to be verified * `input_dict`: defines for which router, AS numbers needs * `seq_id`: sequence number of rmap, default is None + * `expected` : expected results from API, by-default True Usage ----- @@ -2216,7 +2225,7 @@ def verify_bgp_attributes( @retry(attempts=4, wait=2, return_is_str=True) def verify_best_path_as_per_bgp_attribute( - tgen, addr_type, router, input_dict, attribute + tgen, addr_type, router, input_dict, attribute, expected=True ): """ API is to verify best path according to BGP attributes for given routes. @@ -2231,6 +2240,8 @@ def verify_best_path_as_per_bgp_attribute( * `attribute` : calculate best path using this attribute * `input_dict`: defines different routes to calculate for which route best path is selected + * `expected` : expected results from API, by-default True + Usage ----- # To verify best path for routes 200.50.2.0/32 and 200.60.2.0/32 from @@ -2420,7 +2431,7 @@ def verify_best_path_as_per_bgp_attribute( @retry(attempts=5, wait=2, return_is_str=True) def verify_best_path_as_per_admin_distance( - tgen, addr_type, router, input_dict, attribute + tgen, addr_type, router, input_dict, attribute, expected=True ): """ API is to verify best path according to admin distance for given @@ -2435,6 +2446,8 @@ def verify_best_path_as_per_admin_distance( * `attribute` : calculate best path using admin distance * `input_dict`: defines different routes with different admin distance to calculate for which route best path is selected + * `expected` : expected results from API, by-default True + Usage ----- # To verify best path for route 200.50.2.0/32 from router r2 to @@ -2532,7 +2545,7 @@ def verify_best_path_as_per_admin_distance( @retry(attempts=5, wait=2, return_is_str=True, initial_wait=2) def verify_bgp_rib( - tgen, addr_type, dut, input_dict, next_hop=None, aspath=None, multi_nh=None + tgen, addr_type, dut, input_dict, next_hop=None, aspath=None, multi_nh=None, expected=True ): """ This API is to verify whether bgp rib has any @@ -2547,6 +2560,7 @@ def verify_bgp_rib( * `next_hop`[optional]: next_hop which needs to be verified, default = static * 'aspath'[optional]: aspath which needs to be verified + * `expected` : expected results from API, by-default True Usage ----- @@ -2833,7 +2847,7 @@ def verify_bgp_rib( @retry(attempts=5, wait=2, return_is_str=True) -def verify_graceful_restart(tgen, topo, addr_type, input_dict, dut, peer): +def verify_graceful_restart(tgen, topo, addr_type, input_dict, dut, peer, expected=True): """ This API is to verify verify_graceful_restart configuration of DUT and cross verify the same from the peer bgp routerrouter. @@ -2847,6 +2861,7 @@ def verify_graceful_restart(tgen, topo, addr_type, input_dict, dut, peer): which user wants to test the data * `dut`: input dut router name * `peer`: input peer router name + * `expected` : expected results from API, by-default True Usage ----- @@ -3082,7 +3097,7 @@ def verify_graceful_restart(tgen, topo, addr_type, input_dict, dut, peer): @retry(attempts=5, wait=2, return_is_str=True) -def verify_r_bit(tgen, topo, addr_type, input_dict, dut, peer): +def verify_r_bit(tgen, topo, addr_type, input_dict, dut, peer, expected=True): """ This API is to verify r_bit in the BGP gr capability advertised by the neighbor router @@ -3096,6 +3111,8 @@ def verify_r_bit(tgen, topo, addr_type, input_dict, dut, peer): which user wants to test the data * `dut`: input dut router name * `peer`: peer name + * `expected` : expected results from API, by-default True + Usage ----- input_dict = { @@ -3200,7 +3217,7 @@ def verify_r_bit(tgen, topo, addr_type, input_dict, dut, peer): @retry(attempts=5, wait=2, return_is_str=True) -def verify_eor(tgen, topo, addr_type, input_dict, dut, peer): +def verify_eor(tgen, topo, addr_type, input_dict, dut, peer, expected=True): """ This API is to verify EOR @@ -3363,7 +3380,7 @@ def verify_eor(tgen, topo, addr_type, input_dict, dut, peer): @retry(attempts=4, wait=2, return_is_str=True) -def verify_f_bit(tgen, topo, addr_type, input_dict, dut, peer): +def verify_f_bit(tgen, topo, addr_type, input_dict, dut, peer, expected=True): """ This API is to verify f_bit in the BGP gr capability advertised by the neighbor router @@ -3377,6 +3394,7 @@ def verify_f_bit(tgen, topo, addr_type, input_dict, dut, peer): which user wants to test the data * `dut`: input dut router name * `peer`: peer name + * `expected` : expected results from API, by-default True Usage ----- @@ -3516,6 +3534,8 @@ def verify_graceful_restart_timers(tgen, topo, addr_type, input_dict, dut, peer) for which user wants to test the data * `dut`: input dut router name * `peer`: peer name + * `expected` : expected results from API, by-default True + Usage ----- # Configure graceful-restart @@ -3629,7 +3649,7 @@ def verify_graceful_restart_timers(tgen, topo, addr_type, input_dict, dut, peer) @retry(attempts=4, wait=2, return_is_str=True) -def verify_gr_address_family(tgen, topo, addr_type, addr_family, dut): +def verify_gr_address_family(tgen, topo, addr_type, addr_family, dut, expected=True): """ This API is to verify gr_address_family in the BGP gr capability advertised by the neighbor router @@ -3641,6 +3661,7 @@ def verify_gr_address_family(tgen, topo, addr_type, addr_family, dut): * `addr_type` : ip type ipv4/ipv6 * `addr_type` : ip type IPV4 Unicast/IPV6 Unicast * `dut`: input dut router name + * `expected` : expected results from API, by-default True Usage ----- @@ -3730,6 +3751,7 @@ def verify_attributes_for_evpn_routes( ipLen=None, rd_peer=None, rt_peer=None, + expected=True ): """ API to verify rd and rt value using "sh bgp l2vpn evpn 10.1.1.1" @@ -3747,6 +3769,8 @@ def verify_attributes_for_evpn_routes( * `ipLen` : IP prefix length * `rd_peer` : Peer name from which RD will be auto-generated * `rt_peer` : Peer name from which RT will be auto-generated + * `expected` : expected results from API, by-default True + Usage ----- input_dict_1 = { @@ -4117,7 +4141,7 @@ def verify_attributes_for_evpn_routes( @retry(attempts=5, wait=2, return_is_str=True) def verify_evpn_routes( - tgen, topo, dut, input_dict, routeType=5, EthTag=0, next_hop=None + tgen, topo, dut, input_dict, routeType=5, EthTag=0, next_hop=None, expected=True ): """ API to verify evpn routes using "sh bgp l2vpn evpn" @@ -4132,6 +4156,8 @@ def verify_evpn_routes( * `route_type` : Route type 5 is supported as of now * `EthTag` : Ethernet tag, by-default is 0 * `next_hop` : Prefered nexthop for the evpn routes + * `expected` : expected results from API, by-default True + Usage ----- input_dict_1 = { |
