diff options
| -rw-r--r-- | .clang-format | 3 | ||||
| -rw-r--r-- | .git-blame-ignore-revs | 1 | ||||
| -rw-r--r-- | .travis.yml | 20 | ||||
| -rw-r--r-- | bfdd/bfd.c | 8 | ||||
| -rw-r--r-- | bgpd/bgp_evpn.c | 29 | ||||
| -rw-r--r-- | bgpd/bgp_evpn_mh.c | 58 | ||||
| -rw-r--r-- | bgpd/bgp_evpn_mh.h | 6 | ||||
| -rw-r--r-- | bgpd/bgp_main.c | 12 | ||||
| -rw-r--r-- | bgpd/bgp_nb.c | 3 | ||||
| -rw-r--r-- | bgpd/bgp_nb.h | 6 | ||||
| -rw-r--r-- | bgpd/bgp_nb_config.c | 156 | ||||
| -rw-r--r-- | bgpd/bgp_nht.c | 4 | ||||
| -rw-r--r-- | bgpd/bgp_pbr.c | 70 | ||||
| -rw-r--r-- | bgpd/bgp_route.c | 12 | ||||
| -rw-r--r-- | bgpd/bgp_vty.c | 61 | ||||
| -rw-r--r-- | bgpd/bgp_zebra.c | 43 | ||||
| -rw-r--r-- | bgpd/bgpd.c | 50 | ||||
| -rw-r--r-- | bgpd/bgpd.h | 2 | ||||
| -rw-r--r-- | bgpd/subdir.am | 4 | ||||
| -rw-r--r-- | configure.ac | 4 | ||||
| -rw-r--r-- | debian/control | 4 | ||||
| -rw-r--r-- | doc/developer/building-libyang.rst | 22 | ||||
| -rw-r--r-- | doc/developer/topotests.rst | 12 | ||||
| -rw-r--r-- | doc/user/bgp.rst | 50 | ||||
| -rw-r--r-- | doc/user/ospf6d.rst | 10 | ||||
| -rw-r--r-- | doc/user/pathd.rst | 40 | ||||
| -rw-r--r-- | docker/ubuntu18-ci/Dockerfile | 14 | ||||
| -rw-r--r-- | docker/ubuntu20-ci/Dockerfile | 14 | ||||
| -rw-r--r-- | eigrpd/eigrp_cli.c | 2 | ||||
| -rw-r--r-- | isisd/isis_adjacency.h | 2 | ||||
| -rw-r--r-- | isisd/isis_bfd.c | 421 | ||||
| -rw-r--r-- | isisd/isis_bfd.h | 8 | ||||
| -rw-r--r-- | isisd/isis_circuit.c | 7 | ||||
| -rw-r--r-- | isisd/isis_circuit.h | 7 | ||||
| -rw-r--r-- | isisd/isis_cli.c | 58 | ||||
| -rw-r--r-- | isisd/isis_main.c | 2 | ||||
| -rw-r--r-- | isisd/isis_nb_config.c | 77 | ||||
| -rw-r--r-- | isisd/isis_vty_fabricd.c | 15 | ||||
| -rw-r--r-- | isisd/isis_zebra.c | 2 | ||||
| -rw-r--r-- | isisd/isisd.c | 3 | ||||
| -rw-r--r-- | lib/bfd.c | 419 | ||||
| -rw-r--r-- | lib/bfd.h | 78 | ||||
| -rw-r--r-- | lib/grammar_sandbox_main.c | 1 | ||||
| -rw-r--r-- | lib/if.c | 6 | ||||
| -rw-r--r-- | lib/if.h | 3 | ||||
| -rw-r--r-- | lib/libfrr.c | 6 | ||||
| -rw-r--r-- | lib/nexthop.c | 102 | ||||
| -rw-r--r-- | lib/nexthop.h | 5 | ||||
| -rw-r--r-- | lib/northbound.c | 377 | ||||
| -rw-r--r-- | lib/northbound.h | 15 | ||||
| -rw-r--r-- | lib/northbound_cli.c | 93 | ||||
| -rw-r--r-- | lib/northbound_confd.c | 16 | ||||
| -rw-r--r-- | lib/northbound_grpc.cpp | 2 | ||||
| -rw-r--r-- | lib/northbound_sysrepo.c | 22 | ||||
| -rw-r--r-- | lib/privs.c | 4 | ||||
| -rw-r--r-- | lib/privs.h | 1 | ||||
| -rw-r--r-- | lib/vrf.c | 3 | ||||
| -rw-r--r-- | lib/yang.c | 400 | ||||
| -rw-r--r-- | lib/yang.h | 143 | ||||
| -rw-r--r-- | lib/yang_translator.c | 129 | ||||
| -rw-r--r-- | lib/yang_wrappers.c | 546 | ||||
| -rw-r--r-- | ospf6d/ospf6_flood.c | 18 | ||||
| -rw-r--r-- | ospf6d/ospf6_interface.c | 13 | ||||
| -rw-r--r-- | ospf6d/ospf6_interface.h | 1 | ||||
| -rw-r--r-- | ospf6d/ospf6_intra.c | 32 | ||||
| -rw-r--r-- | ospf6d/ospf6_main.c | 5 | ||||
| -rw-r--r-- | ospf6d/ospf6_top.c | 18 | ||||
| -rw-r--r-- | ospf6d/ospf6_top.h | 4 | ||||
| -rw-r--r-- | ospf6d/ospf6_zebra.c | 23 | ||||
| -rw-r--r-- | ospfd/ospf_asbr.c | 6 | ||||
| -rw-r--r-- | ospfd/ospf_flood.c | 10 | ||||
| -rw-r--r-- | ospfd/ospf_gr_helper.c | 53 | ||||
| -rw-r--r-- | ospfd/ospf_nsm.c | 2 | ||||
| -rw-r--r-- | ospfd/ospf_packet.c | 2 | ||||
| -rw-r--r-- | ospfd/ospf_spf.c | 2 | ||||
| -rw-r--r-- | ospfd/ospfd.c | 1 | ||||
| -rw-r--r-- | pathd/path_cli.c | 297 | ||||
| -rw-r--r-- | pathd/path_main.c | 4 | ||||
| -rw-r--r-- | pathd/path_nb.c | 9 | ||||
| -rw-r--r-- | pathd/path_nb.h | 2 | ||||
| -rw-r--r-- | pathd/path_nb_config.c | 41 | ||||
| -rw-r--r-- | pathd/path_pcep_config.c | 87 | ||||
| -rw-r--r-- | pathd/path_pcep_debug.c | 2 | ||||
| -rw-r--r-- | pathd/path_ted.c | 726 | ||||
| -rw-r--r-- | pathd/path_ted.h | 178 | ||||
| -rw-r--r-- | pathd/path_zebra.c | 56 | ||||
| -rw-r--r-- | pathd/pathd.c | 278 | ||||
| -rw-r--r-- | pathd/pathd.h | 70 | ||||
| -rw-r--r-- | pathd/subdir.am | 8 | ||||
| -rw-r--r-- | pceplib/test/pcep_msg_messages_test.c | 42 | ||||
| -rw-r--r-- | pceplib/test/pcep_msg_objects_test.c | 19 | ||||
| -rw-r--r-- | pceplib/test/pcep_msg_tlvs_test.c | 25 | ||||
| -rw-r--r-- | pceplib/test/pcep_msg_tools_test.c | 23 | ||||
| -rw-r--r-- | pceplib/test/pcep_pcc_api_test.c | 10 | ||||
| -rw-r--r-- | pceplib/test/pcep_session_logic_loop_test.c | 5 | ||||
| -rw-r--r-- | pceplib/test/pcep_session_logic_states_test.c | 10 | ||||
| -rw-r--r-- | pceplib/test/pcep_session_logic_test.c | 17 | ||||
| -rw-r--r-- | pceplib/test/pcep_socket_comm_test.c | 13 | ||||
| -rw-r--r-- | pceplib/test/pcep_utils_counters_test.c | 3 | ||||
| -rw-r--r-- | pceplib/test/pcep_utils_double_linked_list_test.c | 14 | ||||
| -rw-r--r-- | pceplib/test/pcep_utils_ordered_list_test.c | 5 | ||||
| -rw-r--r-- | pceplib/test/pcep_utils_queue_test.c | 2 | ||||
| -rw-r--r-- | pimd/pim_cmd.c | 85 | ||||
| -rw-r--r-- | pimd/pim_ifchannel.c | 2 | ||||
| -rw-r--r-- | pimd/pim_nb_config.c | 13 | ||||
| -rw-r--r-- | pimd/pim_upstream.c | 22 | ||||
| -rw-r--r-- | pimd/pim_upstream.h | 1 | ||||
| -rw-r--r-- | pimd/pim_vty.c | 33 | ||||
| -rw-r--r-- | pimd/pimd.c | 3 | ||||
| -rw-r--r-- | redhat/frr.spec.in | 2 | ||||
| -rw-r--r-- | ripd/rip_cli.c | 12 | ||||
| -rw-r--r-- | ripd/rip_interface.c | 5 | ||||
| -rw-r--r-- | ripd/ripd.c | 10 | ||||
| -rw-r--r-- | ripngd/ripng_interface.c | 5 | ||||
| -rw-r--r-- | ripngd/ripngd.c | 10 | ||||
| -rw-r--r-- | staticd/static_nb.c | 2 | ||||
| -rw-r--r-- | staticd/static_nb.h | 4 | ||||
| -rw-r--r-- | staticd/static_nb_config.c | 37 | ||||
| -rw-r--r-- | tests/.gitignore | 1 | ||||
| -rw-r--r-- | tests/bgpd/test_peer_attr.c | 3 | ||||
| -rw-r--r-- | tests/helpers/c/main.c | 1 | ||||
| -rw-r--r-- | tests/isisd/test_isis_spf.c | 2 | ||||
| -rw-r--r-- | tests/lib/cli/common_cli.c | 1 | ||||
| -rw-r--r-- | tests/lib/cli/test_commands.c | 1 | ||||
| -rw-r--r-- | tests/lib/northbound/test_oper_data.c | 1 | ||||
| -rw-r--r-- | tests/lib/test_assert.c | 2 | ||||
| -rw-r--r-- | tests/lib/test_nexthop.c | 201 | ||||
| -rw-r--r-- | tests/lib/test_nexthop.py | 8 | ||||
| -rw-r--r-- | tests/subdir.am | 8 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/babeld.conf (renamed from tests/topotests/all-protocol-startup/r1/babeld.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/bgpd.conf (renamed from tests/topotests/all-protocol-startup/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/ip_nht.ref (renamed from tests/topotests/all-protocol-startup/r1/ip_nht.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/ipv4_routes.ref (renamed from tests/topotests/all-protocol-startup/r1/ipv4_routes.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/ipv6_nht.ref (renamed from tests/topotests/all-protocol-startup/r1/ipv6_nht.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/ipv6_routes.ref (renamed from tests/topotests/all-protocol-startup/r1/ipv6_routes.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/isisd.conf (renamed from tests/topotests/all-protocol-startup/r1/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/ldpd.conf (renamed from tests/topotests/all-protocol-startup/r1/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/nhrpd.conf (renamed from tests/topotests/all-protocol-startup/r1/nhrpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/ospf6d.conf (renamed from tests/topotests/all-protocol-startup/r1/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/ospf6d.conf-pre-v4 (renamed from tests/topotests/all-protocol-startup/r1/ospf6d.conf-pre-v4) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/ospfd.conf (renamed from tests/topotests/all-protocol-startup/r1/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/pbrd.conf (renamed from tests/topotests/all-protocol-startup/r1/pbrd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/rip_status.ref (renamed from tests/topotests/all-protocol-startup/r1/rip_status.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/ripd.conf (renamed from tests/topotests/all-protocol-startup/r1/ripd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/ripng_status.ref (renamed from tests/topotests/all-protocol-startup/r1/ripng_status.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/ripngd.conf (renamed from tests/topotests/all-protocol-startup/r1/ripngd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/show_bgp_ipv4-post4.1.ref (renamed from tests/topotests/all-protocol-startup/r1/show_bgp_ipv4-post4.1.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/show_bgp_ipv4-post5.0.ref (renamed from tests/topotests/all-protocol-startup/r1/show_bgp_ipv4-post5.0.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/show_bgp_ipv4-post6.1.ref (renamed from tests/topotests/all-protocol-startup/r1/show_bgp_ipv4-post6.1.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/show_bgp_ipv4.ref (renamed from tests/topotests/all-protocol-startup/r1/show_bgp_ipv4.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/show_bgp_ipv6-post4.1.ref (renamed from tests/topotests/all-protocol-startup/r1/show_bgp_ipv6-post4.1.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/show_bgp_ipv6.ref (renamed from tests/topotests/all-protocol-startup/r1/show_bgp_ipv6.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/show_bgp_ipv6_post6.1.ref (renamed from tests/topotests/all-protocol-startup/r1/show_bgp_ipv6_post6.1.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/show_bgp_ipv6_summary.ref (renamed from tests/topotests/all-protocol-startup/r1/show_bgp_ipv6_summary.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/show_ip_bgp_summary.ref (renamed from tests/topotests/all-protocol-startup/r1/show_ip_bgp_summary.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/show_ip_ospf_interface.ref (renamed from tests/topotests/all-protocol-startup/r1/show_ip_ospf_interface.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/show_ipv6_ospf6_interface (renamed from tests/topotests/all-protocol-startup/r1/show_ipv6_ospf6_interface) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/show_ipv6_ospf6_interface.ref (renamed from tests/topotests/all-protocol-startup/r1/show_ipv6_ospf6_interface.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/show_isis_interface_detail.ref (renamed from tests/topotests/all-protocol-startup/r1/show_isis_interface_detail.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/show_mpls_ldp_interface.ref (renamed from tests/topotests/all-protocol-startup/r1/show_mpls_ldp_interface.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/show_route_map.ref (renamed from tests/topotests/all-protocol-startup/r1/show_route_map.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/r1/zebra.conf (renamed from tests/topotests/all-protocol-startup/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/test_all_protocol_startup.dot (renamed from tests/topotests/all-protocol-startup/test_all_protocol_startup.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/all_protocol_startup/test_all_protocol_startup.pdf (renamed from tests/topotests/all-protocol-startup/test_all_protocol_startup.pdf) | bin | 21760 -> 21760 bytes | |||
| -rw-r--r-- | tests/topotests/all_protocol_startup/test_all_protocol_startup.py (renamed from tests/topotests/all-protocol-startup/test_all_protocol_startup.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_bgp_cbit_topo3/__init__.py (renamed from tests/topotests/bfd-bgp-cbit-topo3/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_bgp_cbit_topo3/r1/bfdd.conf (renamed from tests/topotests/bfd-bgp-cbit-topo3/r1/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_bgp_cbit_topo3/r1/bgp_ipv6_routes_down.json (renamed from tests/topotests/bfd-bgp-cbit-topo3/r1/bgp_ipv6_routes_down.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_bgp_cbit_topo3/r1/bgpd.conf (renamed from tests/topotests/bfd-bgp-cbit-topo3/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_bgp_cbit_topo3/r1/ipv6_routes.json (renamed from tests/topotests/bfd-bgp-cbit-topo3/r1/ipv6_routes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_bgp_cbit_topo3/r1/peers.json (renamed from tests/topotests/bfd-bgp-cbit-topo3/r1/peers.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_bgp_cbit_topo3/r1/peers_down.json (renamed from tests/topotests/bfd-bgp-cbit-topo3/r1/peers_down.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_bgp_cbit_topo3/r1/zebra.conf (renamed from tests/topotests/bfd-bgp-cbit-topo3/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_bgp_cbit_topo3/r2/zebra.conf (renamed from tests/topotests/bfd-bgp-cbit-topo3/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_bgp_cbit_topo3/r3/bfdd.conf (renamed from tests/topotests/bfd-bgp-cbit-topo3/r3/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_bgp_cbit_topo3/r3/bgp_ipv6_routes_down.json (renamed from tests/topotests/bfd-bgp-cbit-topo3/r3/bgp_ipv6_routes_down.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_bgp_cbit_topo3/r3/bgpd.conf (renamed from tests/topotests/bfd-bgp-cbit-topo3/r3/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_bgp_cbit_topo3/r3/ipv6_routes.json (renamed from tests/topotests/bfd-bgp-cbit-topo3/r3/ipv6_routes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_bgp_cbit_topo3/r3/peers.json (renamed from tests/topotests/bfd-bgp-cbit-topo3/r3/peers.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_bgp_cbit_topo3/r3/peers_down.json (renamed from tests/topotests/bfd-bgp-cbit-topo3/r3/peers_down.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_bgp_cbit_topo3/r3/zebra.conf (renamed from tests/topotests/bfd-bgp-cbit-topo3/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_bgp_cbit_topo3/test_bfd_bgp_cbit_topo3.dot (renamed from tests/topotests/bfd-bgp-cbit-topo3/test_bfd_bgp_cbit_topo3.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_bgp_cbit_topo3/test_bfd_bgp_cbit_topo3.py (renamed from tests/topotests/bfd-bgp-cbit-topo3/test_bfd_bgp_cbit_topo3.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/__init__.py (renamed from tests/topotests/bfd-isis-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt1/bfdd.conf (renamed from tests/topotests/bfd-isis-topo1/rt1/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt1/isisd.conf (renamed from tests/topotests/bfd-isis-topo1/rt1/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt1/step1/show_ip_route.ref (renamed from tests/topotests/bfd-isis-topo1/rt1/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt1/step1/show_ipv6_route.ref (renamed from tests/topotests/bfd-isis-topo1/rt1/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt1/step2/show_bfd_peers.ref (renamed from tests/topotests/bfd-isis-topo1/rt1/step2/show_bfd_peers.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt1/step3/show_bfd_peers_healthy.ref (renamed from tests/topotests/bfd-isis-topo1/rt1/step3/show_bfd_peers_healthy.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt1/step3/show_bfd_peers_rt2_down.ref (renamed from tests/topotests/bfd-isis-topo1/rt1/step3/show_bfd_peers_rt2_down.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt1/step3/show_bfd_peers_rt3_down.ref (renamed from tests/topotests/bfd-isis-topo1/rt1/step3/show_bfd_peers_rt3_down.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt1/step3/show_ip_route_healthy.ref (renamed from tests/topotests/bfd-isis-topo1/rt1/step3/show_ip_route_healthy.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt1/step3/show_ip_route_rt2_down.ref (renamed from tests/topotests/bfd-isis-topo1/rt1/step3/show_ip_route_rt2_down.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt1/step3/show_ip_route_rt3_down.ref (renamed from tests/topotests/bfd-isis-topo1/rt1/step3/show_ip_route_rt3_down.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt1/step3/show_ipv6_route_healthy.ref (renamed from tests/topotests/bfd-isis-topo1/rt1/step3/show_ipv6_route_healthy.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt1/step3/show_ipv6_route_rt2_down.ref (renamed from tests/topotests/bfd-isis-topo1/rt1/step3/show_ipv6_route_rt2_down.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt1/step3/show_ipv6_route_rt3_down.ref (renamed from tests/topotests/bfd-isis-topo1/rt1/step3/show_ipv6_route_rt3_down.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt1/zebra.conf (renamed from tests/topotests/bfd-isis-topo1/rt1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt2/bfdd.conf (renamed from tests/topotests/bfd-isis-topo1/rt2/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt2/isisd.conf (renamed from tests/topotests/bfd-isis-topo1/rt2/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt2/step2/show_bfd_peers.ref (renamed from tests/topotests/bfd-isis-topo1/rt2/step2/show_bfd_peers.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt2/zebra.conf (renamed from tests/topotests/bfd-isis-topo1/rt2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt3/bfdd.conf (renamed from tests/topotests/bfd-isis-topo1/rt3/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt3/isisd.conf (renamed from tests/topotests/bfd-isis-topo1/rt3/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt3/step2/show_bfd_peers.ref (renamed from tests/topotests/bfd-isis-topo1/rt3/step2/show_bfd_peers.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt3/zebra.conf (renamed from tests/topotests/bfd-isis-topo1/rt3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt4/bfdd.conf (renamed from tests/topotests/bfd-isis-topo1/rt4/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt4/isisd.conf (renamed from tests/topotests/bfd-isis-topo1/rt4/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt4/zebra.conf (renamed from tests/topotests/bfd-isis-topo1/rt4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt5/bfdd.conf (renamed from tests/topotests/bfd-isis-topo1/rt5/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt5/isisd.conf (renamed from tests/topotests/bfd-isis-topo1/rt5/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/rt5/zebra.conf (renamed from tests/topotests/bfd-isis-topo1/rt5/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_isis_topo1/test_bfd_isis_topo1.py (renamed from tests/topotests/bfd-isis-topo1/test_bfd_isis_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/__init__.py (renamed from tests/topotests/bfd-ospf-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt1/bfdd.conf (renamed from tests/topotests/bfd-ospf-topo1/rt1/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt1/ospf6d.conf (renamed from tests/topotests/bfd-ospf-topo1/rt1/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt1/ospfd.conf (renamed from tests/topotests/bfd-ospf-topo1/rt1/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt1/step1/show_ip_route.ref (renamed from tests/topotests/bfd-ospf-topo1/rt1/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt1/step1/show_ipv6_route.ref (renamed from tests/topotests/bfd-ospf-topo1/rt1/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt1/step2/show_bfd_peers.ref (renamed from tests/topotests/bfd-ospf-topo1/rt1/step2/show_bfd_peers.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt1/step3/show_bfd_peers_healthy.ref (renamed from tests/topotests/bfd-ospf-topo1/rt1/step3/show_bfd_peers_healthy.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt1/step3/show_bfd_peers_rt2_down.ref (renamed from tests/topotests/bfd-ospf-topo1/rt1/step3/show_bfd_peers_rt2_down.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt1/step3/show_bfd_peers_rt3_down.ref (renamed from tests/topotests/bfd-ospf-topo1/rt1/step3/show_bfd_peers_rt3_down.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt1/step3/show_ip_route_healthy.ref (renamed from tests/topotests/bfd-ospf-topo1/rt1/step3/show_ip_route_healthy.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt1/step3/show_ip_route_rt2_down.ref (renamed from tests/topotests/bfd-ospf-topo1/rt1/step3/show_ip_route_rt2_down.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt1/step3/show_ip_route_rt3_down.ref (renamed from tests/topotests/bfd-ospf-topo1/rt1/step3/show_ip_route_rt3_down.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt1/step3/show_ipv6_route_healthy.ref (renamed from tests/topotests/bfd-ospf-topo1/rt1/step3/show_ipv6_route_healthy.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt1/step3/show_ipv6_route_rt2_down.ref (renamed from tests/topotests/bfd-ospf-topo1/rt1/step3/show_ipv6_route_rt2_down.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt1/step3/show_ipv6_route_rt3_down.ref (renamed from tests/topotests/bfd-ospf-topo1/rt1/step3/show_ipv6_route_rt3_down.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt1/zebra.conf (renamed from tests/topotests/bfd-ospf-topo1/rt1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt2/bfdd.conf (renamed from tests/topotests/bfd-ospf-topo1/rt2/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt2/ospf6d.conf (renamed from tests/topotests/bfd-ospf-topo1/rt2/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt2/ospfd.conf (renamed from tests/topotests/bfd-ospf-topo1/rt2/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt2/step2/show_bfd_peers.ref (renamed from tests/topotests/bfd-ospf-topo1/rt2/step2/show_bfd_peers.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt2/zebra.conf (renamed from tests/topotests/bfd-ospf-topo1/rt2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt3/bfdd.conf (renamed from tests/topotests/bfd-ospf-topo1/rt3/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt3/ospf6d.conf (renamed from tests/topotests/bfd-ospf-topo1/rt3/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt3/ospfd.conf (renamed from tests/topotests/bfd-ospf-topo1/rt3/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt3/step2/show_bfd_peers.ref (renamed from tests/topotests/bfd-ospf-topo1/rt3/step2/show_bfd_peers.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt3/zebra.conf (renamed from tests/topotests/bfd-ospf-topo1/rt3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt4/bfdd.conf (renamed from tests/topotests/bfd-ospf-topo1/rt4/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt4/ospf6d.conf (renamed from tests/topotests/bfd-ospf-topo1/rt4/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt4/ospfd.conf (renamed from tests/topotests/bfd-ospf-topo1/rt4/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt4/zebra.conf (renamed from tests/topotests/bfd-ospf-topo1/rt4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt5/bfdd.conf (renamed from tests/topotests/bfd-ospf-topo1/rt5/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt5/ospf6d.conf (renamed from tests/topotests/bfd-ospf-topo1/rt5/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt5/ospfd.conf (renamed from tests/topotests/bfd-ospf-topo1/rt5/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_ospf_topo1/rt5/zebra.conf (renamed from tests/topotests/bfd-ospf-topo1/rt5/zebra.conf) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bfd_ospf_topo1/test_bfd_ospf_topo1.py (renamed from tests/topotests/bfd-ospf-topo1/test_bfd_ospf_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/__init__.py (renamed from tests/topotests/bfd-profiles-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r1/bfd-peers-initial.json (renamed from tests/topotests/bfd-profiles-topo1/r1/bfd-peers-initial.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r1/bfdd.conf (renamed from tests/topotests/bfd-profiles-topo1/r1/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r1/ospfd.conf (renamed from tests/topotests/bfd-profiles-topo1/r1/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r1/zebra.conf (renamed from tests/topotests/bfd-profiles-topo1/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r2/bfd-peers-initial.json (renamed from tests/topotests/bfd-profiles-topo1/r2/bfd-peers-initial.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r2/bfdd.conf (renamed from tests/topotests/bfd-profiles-topo1/r2/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r2/bgpd.conf (renamed from tests/topotests/bfd-profiles-topo1/r2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r2/zebra.conf (renamed from tests/topotests/bfd-profiles-topo1/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r3/bfd-peers-initial.json (renamed from tests/topotests/bfd-profiles-topo1/r3/bfd-peers-initial.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r3/bfdd.conf (renamed from tests/topotests/bfd-profiles-topo1/r3/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r3/bgpd.conf (renamed from tests/topotests/bfd-profiles-topo1/r3/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r3/isisd.conf (renamed from tests/topotests/bfd-profiles-topo1/r3/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r3/zebra.conf (renamed from tests/topotests/bfd-profiles-topo1/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r4/bfd-peers-initial.json (renamed from tests/topotests/bfd-profiles-topo1/r4/bfd-peers-initial.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r4/bfdd.conf (renamed from tests/topotests/bfd-profiles-topo1/r4/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r4/bgpd.conf (renamed from tests/topotests/bfd-profiles-topo1/r4/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r4/isisd.conf (renamed from tests/topotests/bfd-profiles-topo1/r4/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r4/ospf6d.conf (renamed from tests/topotests/bfd-profiles-topo1/r4/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r4/zebra.conf (renamed from tests/topotests/bfd-profiles-topo1/r4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r5/bfd-peers-initial.json (renamed from tests/topotests/bfd-profiles-topo1/r5/bfd-peers-initial.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r5/bfdd.conf (renamed from tests/topotests/bfd-profiles-topo1/r5/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r5/ospf6d.conf (renamed from tests/topotests/bfd-profiles-topo1/r5/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r5/zebra.conf (renamed from tests/topotests/bfd-profiles-topo1/r5/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r6/bfd-peers-initial.json (renamed from tests/topotests/bfd-profiles-topo1/r6/bfd-peers-initial.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r6/bfdd.conf (renamed from tests/topotests/bfd-profiles-topo1/r6/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r6/ospfd.conf (renamed from tests/topotests/bfd-profiles-topo1/r6/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/r6/zebra.conf (renamed from tests/topotests/bfd-profiles-topo1/r6/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/test_bfd_profiles_topo1.dot (renamed from tests/topotests/bfd-profiles-topo1/test_bfd_profiles_topo1.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/test_bfd_profiles_topo1.png (renamed from tests/topotests/bfd-profiles-topo1/test_bfd_profiles_topo1.png) | bin | 43508 -> 43508 bytes | |||
| -rw-r--r-- | tests/topotests/bfd_profiles_topo1/test_bfd_profiles_topo1.py (renamed from tests/topotests/bfd-profiles-topo1/test_bfd_profiles_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/__init__.py (renamed from tests/topotests/bfd-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r1/bfdd.conf (renamed from tests/topotests/bfd-topo1/r1/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r1/bgp_prefixes.json (renamed from tests/topotests/bfd-topo1/r1/bgp_prefixes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r1/bgp_summary.json (renamed from tests/topotests/bfd-topo1/r1/bgp_summary.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r1/bgpd.conf (renamed from tests/topotests/bfd-topo1/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r1/peers.json (renamed from tests/topotests/bfd-topo1/r1/peers.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r1/zebra.conf (renamed from tests/topotests/bfd-topo1/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r2/bfdd.conf (renamed from tests/topotests/bfd-topo1/r2/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r2/bgp_prefixes.json (renamed from tests/topotests/bfd-topo1/r2/bgp_prefixes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r2/bgp_summary.json (renamed from tests/topotests/bfd-topo1/r2/bgp_summary.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r2/bgpd.conf (renamed from tests/topotests/bfd-topo1/r2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r2/peers.json (renamed from tests/topotests/bfd-topo1/r2/peers.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r2/zebra.conf (renamed from tests/topotests/bfd-topo1/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r3/bfdd.conf (renamed from tests/topotests/bfd-topo1/r3/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r3/bgp_prefixes.json (renamed from tests/topotests/bfd-topo1/r3/bgp_prefixes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r3/bgp_summary.json (renamed from tests/topotests/bfd-topo1/r3/bgp_summary.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r3/bgpd.conf (renamed from tests/topotests/bfd-topo1/r3/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r3/peers.json (renamed from tests/topotests/bfd-topo1/r3/peers.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r3/zebra.conf (renamed from tests/topotests/bfd-topo1/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r4/bfdd.conf (renamed from tests/topotests/bfd-topo1/r4/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r4/bgp_prefixes.json (renamed from tests/topotests/bfd-topo1/r4/bgp_prefixes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r4/bgp_summary.json (renamed from tests/topotests/bfd-topo1/r4/bgp_summary.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r4/bgpd.conf (renamed from tests/topotests/bfd-topo1/r4/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r4/peers.json (renamed from tests/topotests/bfd-topo1/r4/peers.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/r4/zebra.conf (renamed from tests/topotests/bfd-topo1/r4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/test_bfd_topo1.dot (renamed from tests/topotests/bfd-topo1/test_bfd_topo1.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo1/test_bfd_topo1.jpg (renamed from tests/topotests/bfd-topo1/test_bfd_topo1.jpg) | bin | 25713 -> 25713 bytes | |||
| -rw-r--r-- | tests/topotests/bfd_topo1/test_bfd_topo1.py (renamed from tests/topotests/bfd-topo1/test_bfd_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/__init__.py (renamed from tests/topotests/bfd-topo2/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r1/bfdd.conf (renamed from tests/topotests/bfd-topo2/r1/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r1/bgpd.conf (renamed from tests/topotests/bfd-topo2/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r1/ipv4_routes.json (renamed from tests/topotests/bfd-topo2/r1/ipv4_routes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r1/ipv6_routes.json (renamed from tests/topotests/bfd-topo2/r1/ipv6_routes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r1/peers.json (renamed from tests/topotests/bfd-topo2/r1/peers.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r1/zebra.conf (renamed from tests/topotests/bfd-topo2/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r2/bfdd.conf (renamed from tests/topotests/bfd-topo2/r2/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r2/bgpd.conf (renamed from tests/topotests/bfd-topo2/r2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r2/ipv4_routes.json (renamed from tests/topotests/bfd-topo2/r2/ipv4_routes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r2/ipv6_routes.json (renamed from tests/topotests/bfd-topo2/r2/ipv6_routes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r2/ospf6d.conf (renamed from tests/topotests/bfd-topo2/r2/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r2/ospfd.conf (renamed from tests/topotests/bfd-topo2/r2/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r2/peers.json (renamed from tests/topotests/bfd-topo2/r2/peers.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r2/zebra.conf (renamed from tests/topotests/bfd-topo2/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r3/bfdd.conf (renamed from tests/topotests/bfd-topo2/r3/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r3/ipv4_routes.json (renamed from tests/topotests/bfd-topo2/r3/ipv4_routes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r3/ipv6_routes.json (renamed from tests/topotests/bfd-topo2/r3/ipv6_routes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r3/ospfd.conf (renamed from tests/topotests/bfd-topo2/r3/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r3/peers.json (renamed from tests/topotests/bfd-topo2/r3/peers.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r3/zebra.conf (renamed from tests/topotests/bfd-topo2/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r4/bfdd.conf (renamed from tests/topotests/bfd-topo2/r4/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r4/ipv4_routes.json (renamed from tests/topotests/bfd-topo2/r4/ipv4_routes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r4/ipv6_routes.json (renamed from tests/topotests/bfd-topo2/r4/ipv6_routes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r4/ospf6d.conf (renamed from tests/topotests/bfd-topo2/r4/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r4/peers.json (renamed from tests/topotests/bfd-topo2/r4/peers.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/r4/zebra.conf (renamed from tests/topotests/bfd-topo2/r4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/test_bfd_topo2.dot (renamed from tests/topotests/bfd-topo2/test_bfd_topo2.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo2/test_bfd_topo2.jpg (renamed from tests/topotests/bfd-topo2/test_bfd_topo2.jpg) | bin | 24206 -> 24206 bytes | |||
| -rw-r--r-- | tests/topotests/bfd_topo2/test_bfd_topo2.py (renamed from tests/topotests/bfd-topo2/test_bfd_topo2.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo3/__init__.py (renamed from tests/topotests/bfd-topo3/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo3/r1/bfd-peers.json (renamed from tests/topotests/bfd-topo3/r1/bfd-peers.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo3/r1/bfdd.conf (renamed from tests/topotests/bfd-topo3/r1/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo3/r1/bgpd.conf (renamed from tests/topotests/bfd-topo3/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo3/r1/zebra.conf (renamed from tests/topotests/bfd-topo3/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo3/r2/bfd-peers.json (renamed from tests/topotests/bfd-topo3/r2/bfd-peers.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo3/r2/bfdd.conf (renamed from tests/topotests/bfd-topo3/r2/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo3/r2/bgpd.conf (renamed from tests/topotests/bfd-topo3/r2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo3/r2/zebra.conf (renamed from tests/topotests/bfd-topo3/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo3/r3/bfd-peers.json (renamed from tests/topotests/bfd-topo3/r3/bfd-peers.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo3/r3/bfdd.conf (renamed from tests/topotests/bfd-topo3/r3/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo3/r3/bgpd.conf (renamed from tests/topotests/bfd-topo3/r3/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo3/r3/zebra.conf (renamed from tests/topotests/bfd-topo3/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo3/r4/bfd-peers.json (renamed from tests/topotests/bfd-topo3/r4/bfd-peers.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo3/r4/bfdd.conf (renamed from tests/topotests/bfd-topo3/r4/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo3/r4/bgpd.conf (renamed from tests/topotests/bfd-topo3/r4/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo3/r4/zebra.conf (renamed from tests/topotests/bfd-topo3/r4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo3/test_bfd_topo3.dot (renamed from tests/topotests/bfd-topo3/test_bfd_topo3.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_topo3/test_bfd_topo3.jpg (renamed from tests/topotests/bfd-topo3/test_bfd_topo3.jpg) | bin | 34705 -> 34705 bytes | |||
| -rw-r--r-- | tests/topotests/bfd_topo3/test_bfd_topo3.py (renamed from tests/topotests/bfd-topo3/test_bfd_topo3.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/__init__.py (renamed from tests/topotests/bfd-vrf-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r1/bfdd.conf (renamed from tests/topotests/bfd-vrf-topo1/r1/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r1/bgp_prefixes.json (renamed from tests/topotests/bfd-vrf-topo1/r1/bgp_prefixes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r1/bgp_summary.json (renamed from tests/topotests/bfd-vrf-topo1/r1/bgp_summary.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r1/bgpd.conf (renamed from tests/topotests/bfd-vrf-topo1/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r1/peers.json (renamed from tests/topotests/bfd-vrf-topo1/r1/peers.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r1/zebra.conf (renamed from tests/topotests/bfd-vrf-topo1/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r2/bfdd.conf (renamed from tests/topotests/bfd-vrf-topo1/r2/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r2/bgp_prefixes.json (renamed from tests/topotests/bfd-vrf-topo1/r2/bgp_prefixes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r2/bgp_summary.json (renamed from tests/topotests/bfd-vrf-topo1/r2/bgp_summary.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r2/bgpd.conf (renamed from tests/topotests/bfd-vrf-topo1/r2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r2/peers.json (renamed from tests/topotests/bfd-vrf-topo1/r2/peers.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r2/zebra.conf (renamed from tests/topotests/bfd-vrf-topo1/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r3/bfdd.conf (renamed from tests/topotests/bfd-vrf-topo1/r3/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r3/bgp_prefixes.json (renamed from tests/topotests/bfd-vrf-topo1/r3/bgp_prefixes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r3/bgp_summary.json (renamed from tests/topotests/bfd-vrf-topo1/r3/bgp_summary.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r3/bgpd.conf (renamed from tests/topotests/bfd-vrf-topo1/r3/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r3/peers.json (renamed from tests/topotests/bfd-vrf-topo1/r3/peers.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r3/zebra.conf (renamed from tests/topotests/bfd-vrf-topo1/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r4/bfdd.conf (renamed from tests/topotests/bfd-vrf-topo1/r4/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r4/bgp_prefixes.json (renamed from tests/topotests/bfd-vrf-topo1/r4/bgp_prefixes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r4/bgp_summary.json (renamed from tests/topotests/bfd-vrf-topo1/r4/bgp_summary.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r4/bgpd.conf (renamed from tests/topotests/bfd-vrf-topo1/r4/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r4/peers.json (renamed from tests/topotests/bfd-vrf-topo1/r4/peers.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/r4/zebra.conf (renamed from tests/topotests/bfd-vrf-topo1/r4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/test_bfd_vrf_topo1.dot (renamed from tests/topotests/bfd-vrf-topo1/test_bfd_vrf_topo1.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/test_bfd_vrf_topo1.jpg (renamed from tests/topotests/bfd-vrf-topo1/test_bfd_vrf_topo1.jpg) | bin | 25713 -> 25713 bytes | |||
| -rw-r--r-- | tests/topotests/bfd_vrf_topo1/test_bfd_vrf_topo1.py (renamed from tests/topotests/bfd-vrf-topo1/test_bfd_vrf_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_aggregate_address_origin/__init__.py (renamed from tests/topotests/bgp-aggregator-zero/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_aggregate_address_origin/r1/bgpd.conf (renamed from tests/topotests/bgp_aggregate-address_origin/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_aggregate_address_origin/r1/zebra.conf (renamed from tests/topotests/bgp_aggregate-address_origin/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_aggregate_address_origin/r2/bgpd.conf (renamed from tests/topotests/bgp_aggregate-address_origin/r2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_aggregate_address_origin/r2/zebra.conf (renamed from tests/topotests/bgp-default-ipv4-ipv6-unicast/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_aggregate_address_origin/test_bgp_aggregate-address_origin.py (renamed from tests/topotests/bgp_aggregate-address_origin/test_bgp_aggregate-address_origin.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_aggregate_address_route_map/__init__.py (renamed from tests/topotests/bgp-basic-functionality-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_aggregate_address_route_map/r1/bgpd.conf (renamed from tests/topotests/bgp_aggregate-address_route-map/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_aggregate_address_route_map/r1/zebra.conf (renamed from tests/topotests/bgp_aggregate-address_route-map/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_aggregate_address_route_map/r2/bgpd.conf (renamed from tests/topotests/bgp_aggregate-address_route-map/r2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_aggregate_address_route_map/r2/zebra.conf (renamed from tests/topotests/bgp_aggregate-address_origin/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_aggregate_address_route_map/test_bgp_aggregate-address_route-map.py (renamed from tests/topotests/bgp_aggregate-address_route-map/test_bgp_aggregate-address_route-map.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_aggregator_zero/__init__.py (renamed from tests/topotests/bgp-community-alias/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_aggregator_zero/exabgp.env (renamed from tests/topotests/bgp-aggregator-zero/exabgp.env) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_aggregator_zero/peer1/exabgp.cfg (renamed from tests/topotests/bgp-aggregator-zero/peer1/exabgp.cfg) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_aggregator_zero/r1/bgpd.conf (renamed from tests/topotests/bgp-aggregator-zero/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_aggregator_zero/r1/zebra.conf (renamed from tests/topotests/bgp-aggregator-zero/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_aggregator_zero/test_bgp_aggregator_zero.py (renamed from tests/topotests/bgp-aggregator-zero/test_bgp_aggregator_zero.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R1/bgpd.conf (renamed from tests/topotests/bgp-auth/R1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R1/bgpd_multi_vrf.conf (renamed from tests/topotests/bgp-auth/R1/bgpd_multi_vrf.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R1/bgpd_multi_vrf_prefix.conf (renamed from tests/topotests/bgp-auth/R1/bgpd_multi_vrf_prefix.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R1/bgpd_prefix.conf (renamed from tests/topotests/bgp-auth/R1/bgpd_prefix.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R1/bgpd_vrf.conf (renamed from tests/topotests/bgp-auth/R1/bgpd_vrf.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R1/bgpd_vrf_prefix.conf (renamed from tests/topotests/bgp-auth/R1/bgpd_vrf_prefix.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R1/ospfd.conf (renamed from tests/topotests/bgp-auth/R1/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R1/ospfd_multi_vrf.conf (renamed from tests/topotests/bgp-auth/R1/ospfd_multi_vrf.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R1/ospfd_vrf.conf (renamed from tests/topotests/bgp-auth/R1/ospfd_vrf.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R1/zebra.conf (renamed from tests/topotests/bgp-auth/R1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R2/bgpd.conf (renamed from tests/topotests/bgp-auth/R2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R2/bgpd_multi_vrf.conf (renamed from tests/topotests/bgp-auth/R2/bgpd_multi_vrf.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R2/bgpd_multi_vrf_prefix.conf (renamed from tests/topotests/bgp-auth/R2/bgpd_multi_vrf_prefix.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R2/bgpd_prefix.conf (renamed from tests/topotests/bgp-auth/R2/bgpd_prefix.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R2/bgpd_vrf.conf (renamed from tests/topotests/bgp-auth/R2/bgpd_vrf.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R2/bgpd_vrf_prefix.conf (renamed from tests/topotests/bgp-auth/R2/bgpd_vrf_prefix.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R2/ospfd.conf (renamed from tests/topotests/bgp-auth/R2/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R2/ospfd_multi_vrf.conf (renamed from tests/topotests/bgp-auth/R2/ospfd_multi_vrf.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R2/ospfd_vrf.conf (renamed from tests/topotests/bgp-auth/R2/ospfd_vrf.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R2/zebra.conf (renamed from tests/topotests/bgp-auth/R2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R3/bgpd.conf (renamed from tests/topotests/bgp-auth/R3/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R3/bgpd_multi_vrf.conf (renamed from tests/topotests/bgp-auth/R3/bgpd_multi_vrf.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R3/bgpd_multi_vrf_prefix.conf (renamed from tests/topotests/bgp-auth/R3/bgpd_multi_vrf_prefix.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R3/bgpd_prefix.conf (renamed from tests/topotests/bgp-auth/R3/bgpd_prefix.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R3/bgpd_vrf.conf (renamed from tests/topotests/bgp-auth/R3/bgpd_vrf.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R3/bgpd_vrf_prefix.conf (renamed from tests/topotests/bgp-auth/R3/bgpd_vrf_prefix.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R3/ospfd.conf (renamed from tests/topotests/bgp-auth/R3/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R3/ospfd_multi_vrf.conf (renamed from tests/topotests/bgp-auth/R3/ospfd_multi_vrf.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R3/ospfd_vrf.conf (renamed from tests/topotests/bgp-auth/R3/ospfd_vrf.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/R3/zebra.conf (renamed from tests/topotests/bgp-auth/R3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_auth/test_bgp_auth.py (renamed from tests/topotests/bgp-auth/test_bgp_auth.py) | 7 | ||||
| -rw-r--r-- | tests/topotests/bgp_basic_functionality_topo1/__init__.py (renamed from tests/topotests/bgp-default-ipv4-ipv6-unicast/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_basic_functionality_topo1/bgp_basic_functionality.json (renamed from tests/topotests/bgp-basic-functionality-topo1/bgp_basic_functionality.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_basic_functionality_topo1/test_bgp_basic_functionality.py (renamed from tests/topotests/bgp-basic-functionality-topo1/test_bgp_basic_functionality.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_comm_list_delete/__init__.py (renamed from tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_comm_list_delete/r1/bgpd.conf (renamed from tests/topotests/bgp_comm-list_delete/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_comm_list_delete/r1/zebra.conf (renamed from tests/topotests/bgp_comm-list_delete/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_comm_list_delete/r2/bgpd.conf (renamed from tests/topotests/bgp_comm-list_delete/r2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_comm_list_delete/r2/zebra.conf (renamed from tests/topotests/bgp_aggregate-address_route-map/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_comm_list_delete/test_bgp_comm-list_delete.py (renamed from tests/topotests/bgp_comm-list_delete/test_bgp_comm-list_delete.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_community_alias/__init__.py (renamed from tests/topotests/bgp-ecmp-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_community_alias/r1/bgpd.conf (renamed from tests/topotests/bgp-community-alias/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_community_alias/r1/zebra.conf (renamed from tests/topotests/bgp-community-alias/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_community_alias/r2/bgpd.conf (renamed from tests/topotests/bgp-community-alias/r2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_community_alias/r2/zebra.conf (renamed from tests/topotests/bgp-community-alias/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_community_alias/test_bgp-community-alias.py (renamed from tests/topotests/bgp-community-alias/test_bgp-community-alias.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_ipv4_ipv6_unicast/__init__.py (renamed from tests/topotests/bgp-evpn-vxlan_topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_ipv4_ipv6_unicast/r1/bgpd.conf (renamed from tests/topotests/bgp-default-ipv4-ipv6-unicast/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_ipv4_ipv6_unicast/r1/zebra.conf (renamed from tests/topotests/bgp-default-ipv4-ipv6-unicast/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_ipv4_ipv6_unicast/r2/bgpd.conf (renamed from tests/topotests/bgp-default-ipv4-ipv6-unicast/r2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_ipv4_ipv6_unicast/r2/zebra.conf (renamed from tests/topotests/bgp_comm-list_delete/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_ipv4_ipv6_unicast/r3/bgpd.conf (renamed from tests/topotests/bgp-default-ipv4-ipv6-unicast/r3/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_ipv4_ipv6_unicast/r3/zebra.conf (renamed from tests/topotests/bgp-default-ipv4-ipv6-unicast/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_ipv4_ipv6_unicast/test_bgp-default-ipv4-ipv6-unicast.py (renamed from tests/topotests/bgp-default-ipv4-ipv6-unicast/test_bgp-default-ipv4-ipv6-unicast.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route/__init__.py (renamed from tests/topotests/bgp-path-attributes-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route/r1/bgpd.conf (renamed from tests/topotests/bgp_default-route/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route/r1/zebra.conf (renamed from tests/topotests/bgp_default-route/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route/r2/bgpd.conf (renamed from tests/topotests/bgp_default-route/r2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route/r2/zebra.conf (renamed from tests/topotests/bgp_default-route/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route/test_bgp_default-originate.py (renamed from tests/topotests/bgp_default-route/test_bgp_default-originate.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route_route_map_match/__init__.py (renamed from tests/topotests/bgp-prefix-list-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route_route_map_match/r1/bgpd.conf (renamed from tests/topotests/bgp_default-route_route-map_match/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route_route_map_match/r1/zebra.conf (renamed from tests/topotests/bgp_default-route_route-map_match/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route_route_map_match/r2/bgpd.conf (renamed from tests/topotests/bgp_default-route_route-map_match/r2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route_route_map_match/r2/zebra.conf (renamed from tests/topotests/bgp_default-route_route-map_match/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route_route_map_match/test_bgp_default-originate_route-map_match.py (renamed from tests/topotests/bgp_default-route_route-map_match/test_bgp_default-originate_route-map_match.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route_route_map_match_set/__init__.py (renamed from tests/topotests/bgp_aggregate-address_origin/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route_route_map_match_set/r1/bgpd.conf (renamed from tests/topotests/bgp_default-route_route-map_match_set/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route_route_map_match_set/r1/zebra.conf (renamed from tests/topotests/bgp_default-route_route-map_match_set/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route_route_map_match_set/r2/bgpd.conf (renamed from tests/topotests/bgp_default-route_route-map_match_set/r2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route_route_map_match_set/r2/zebra.conf (renamed from tests/topotests/bgp_default-route_route-map_match_set/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route_route_map_match_set/test_bgp_default-originate_route-map_match_set.py (renamed from tests/topotests/bgp_default-route_route-map_match_set/test_bgp_default-originate_route-map_match_set.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route_route_map_set/__init__.py (renamed from tests/topotests/bgp_aggregate-address_route-map/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route_route_map_set/r1/bgpd.conf (renamed from tests/topotests/bgp_default-route_route-map_set/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route_route_map_set/r1/zebra.conf (renamed from tests/topotests/bgp_default-route_route-map_set/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route_route_map_set/r2/bgpd.conf (renamed from tests/topotests/bgp_default-route_route-map_set/r2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route_route_map_set/r2/zebra.conf (renamed from tests/topotests/bgp_default-route_route-map_set/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_default_route_route_map_set/test_bgp_default-originate_route-map_set.py (renamed from tests/topotests/bgp_default-route_route-map_set/test_bgp_default-originate_route-map_set.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/__init__.py (renamed from tests/topotests/bgp_comm-list_delete/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/r1/bgpd.conf (renamed from tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/r1/zebra.conf (renamed from tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/r2/bgpd.conf (renamed from tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/r2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/r2/zebra.conf (renamed from tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/r3/bgpd.conf (renamed from tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/r3/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/r3/zebra.conf (renamed from tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/test_bgp-ebgp-common-subnet-nexthop-unchanged.py (renamed from tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/test_bgp-ebgp-common-subnet-nexthop-unchanged.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/__init__.py (renamed from tests/topotests/bgp_default-route/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/bgp-ecmp-topo1.dot (renamed from tests/topotests/bgp-ecmp-topo1/bgp-ecmp-topo1.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/bgp-ecmp-topo1.pdf (renamed from tests/topotests/bgp-ecmp-topo1/bgp-ecmp-topo1.pdf) | bin | 21367 -> 21367 bytes | |||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/exabgp.env (renamed from tests/topotests/bgp-ecmp-topo1/exabgp.env) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer1/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer1/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer1/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer1/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer1/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer1/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer10/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer10/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer10/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer10/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer10/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer10/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer11/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer11/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer11/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer11/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer11/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer11/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer12/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer12/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer12/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer12/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer12/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer12/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer13/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer13/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer13/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer13/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer13/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer13/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer14/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer14/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer14/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer14/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer14/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer14/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer15/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer15/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer15/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer15/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer15/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer15/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer16/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer16/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer16/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer16/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer16/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer16/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer17/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer17/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer17/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer17/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer17/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer17/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer18/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer18/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer18/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer18/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer18/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer18/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer19/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer19/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer19/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer19/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer19/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer19/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer2/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer2/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer2/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer2/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer2/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer2/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer20/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer20/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer20/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer20/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer20/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer20/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer3/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer3/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer3/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer3/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer3/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer3/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer4/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer4/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer4/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer4/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer4/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer4/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer5/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer5/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer5/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer5/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer5/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer5/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer6/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer6/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer6/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer6/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer6/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer6/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer7/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer7/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer7/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer7/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer7/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer7/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer8/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer8/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer8/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer8/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer8/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer8/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer9/exa-receive.py (renamed from tests/topotests/bgp-ecmp-topo1/peer9/exa-receive.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo1/peer9/exa-send.py (renamed from tests/topotests/bgp-ecmp-topo1/peer9/exa-send.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/peer9/exabgp.cfg (renamed from tests/topotests/bgp-ecmp-topo1/peer9/exabgp.cfg) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/r1/bgpd.conf (renamed from tests/topotests/bgp-ecmp-topo1/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/r1/summary.txt (renamed from tests/topotests/bgp-ecmp-topo1/r1/summary.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/r1/summary20.txt (renamed from tests/topotests/bgp-ecmp-topo1/r1/summary20.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/r1/zebra.conf (renamed from tests/topotests/bgp-ecmp-topo1/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo1/test_bgp_ecmp_topo1.py (renamed from tests/topotests/bgp-ecmp-topo1/test_bgp_ecmp_topo1.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo2/ebgp_ecmp_topo2.json (renamed from tests/topotests/bgp-ecmp-topo2/ebgp_ecmp_topo2.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_ecmp_topo2/ibgp_ecmp_topo2.json (renamed from tests/topotests/bgp-ecmp-topo2/ibgp_ecmp_topo2.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo2/test_ebgp_ecmp_topo2.py (renamed from tests/topotests/bgp-ecmp-topo2/test_ebgp_ecmp_topo2.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_ecmp_topo2/test_ibgp_ecmp_topo2.py (renamed from tests/topotests/bgp-ecmp-topo2/test_ibgp_ecmp_topo2.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/evpn-mh-topo-tests.pdf (renamed from tests/topotests/bgp-evpn-mh/evpn-mh-topo-tests.pdf) | bin | 90963 -> 90963 bytes | |||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/hostd11/evpn.conf (renamed from tests/topotests/bgp-evpn-mh/hostd11/evpn.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/hostd11/pim.conf (renamed from tests/topotests/bgp-evpn-mh/hostd11/pim.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/hostd11/zebra.conf (renamed from tests/topotests/bgp-evpn-mh/hostd11/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/hostd12/evpn.conf (renamed from tests/topotests/bgp-evpn-mh/hostd12/evpn.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/hostd12/pim.conf (renamed from tests/topotests/bgp-evpn-mh/hostd12/pim.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/hostd12/zebra.conf (renamed from tests/topotests/bgp-evpn-mh/hostd12/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/hostd21/evpn.conf (renamed from tests/topotests/bgp-evpn-mh/hostd21/evpn.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/hostd21/pim.conf (renamed from tests/topotests/bgp-evpn-mh/hostd21/pim.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/hostd21/zebra.conf (renamed from tests/topotests/bgp-evpn-mh/hostd21/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/hostd22/evpn.conf (renamed from tests/topotests/bgp-evpn-mh/hostd22/evpn.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/hostd22/pim.conf (renamed from tests/topotests/bgp-evpn-mh/hostd22/pim.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/hostd22/zebra.conf (renamed from tests/topotests/bgp-evpn-mh/hostd22/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/spine1/evpn.conf (renamed from tests/topotests/bgp-evpn-mh/spine1/evpn.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/spine1/pim.conf (renamed from tests/topotests/bgp-evpn-mh/spine1/pim.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/spine1/zebra.conf (renamed from tests/topotests/bgp-evpn-mh/spine1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/spine2/evpn.conf (renamed from tests/topotests/bgp-evpn-mh/spine2/evpn.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/spine2/pim.conf (renamed from tests/topotests/bgp-evpn-mh/spine2/pim.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/spine2/zebra.conf (renamed from tests/topotests/bgp-evpn-mh/spine2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/test_evpn_mh.py (renamed from tests/topotests/bgp-evpn-mh/test_evpn_mh.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/torm11/evpn.conf (renamed from tests/topotests/bgp-evpn-mh/torm11/evpn.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/torm11/pim.conf (renamed from tests/topotests/bgp-evpn-mh/torm11/pim.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/torm11/zebra.conf (renamed from tests/topotests/bgp-evpn-mh/torm11/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/torm12/evpn.conf (renamed from tests/topotests/bgp-evpn-mh/torm12/evpn.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/torm12/pim.conf (renamed from tests/topotests/bgp-evpn-mh/torm12/pim.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/torm12/zebra.conf (renamed from tests/topotests/bgp-evpn-mh/torm12/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/torm21/evpn.conf (renamed from tests/topotests/bgp-evpn-mh/torm21/evpn.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/torm21/pim.conf (renamed from tests/topotests/bgp-evpn-mh/torm21/pim.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/torm21/zebra.conf (renamed from tests/topotests/bgp-evpn-mh/torm21/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/torm22/evpn.conf (renamed from tests/topotests/bgp-evpn-mh/torm22/evpn.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/torm22/pim.conf (renamed from tests/topotests/bgp-evpn-mh/torm22/pim.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_mh/torm22/zebra.conf (renamed from tests/topotests/bgp-evpn-mh/torm22/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_vxlan_topo1/P1/bgpd.conf (renamed from tests/topotests/bgp-evpn-vxlan_topo1/P1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_vxlan_topo1/P1/ospfd.conf (renamed from tests/topotests/bgp-evpn-vxlan_topo1/P1/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_vxlan_topo1/P1/zebra.conf (renamed from tests/topotests/bgp-evpn-vxlan_topo1/P1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_vxlan_topo1/PE1/bgpd.conf (renamed from tests/topotests/bgp-evpn-vxlan_topo1/PE1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_vxlan_topo1/PE1/evpn.vni.json (renamed from tests/topotests/bgp-evpn-vxlan_topo1/PE1/evpn.vni.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_vxlan_topo1/PE1/ospfd.conf (renamed from tests/topotests/bgp-evpn-vxlan_topo1/PE1/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_vxlan_topo1/PE1/zebra.conf (renamed from tests/topotests/bgp-evpn-vxlan_topo1/PE1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_vxlan_topo1/PE2/bgpd.conf (renamed from tests/topotests/bgp-evpn-vxlan_topo1/PE2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_vxlan_topo1/PE2/evpn.vni.json (renamed from tests/topotests/bgp-evpn-vxlan_topo1/PE2/evpn.vni.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_vxlan_topo1/PE2/ospfd.conf (renamed from tests/topotests/bgp-evpn-vxlan_topo1/PE2/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_vxlan_topo1/PE2/zebra.conf (renamed from tests/topotests/bgp-evpn-vxlan_topo1/PE2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_vxlan_topo1/__init__.py (renamed from tests/topotests/bgp_default-route_route-map_match/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_vxlan_topo1/host1/bgpd.conf (renamed from tests/topotests/bgp-evpn-vxlan_topo1/host1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_vxlan_topo1/host1/ospfd.conf (renamed from tests/topotests/bgp-evpn-vxlan_topo1/host1/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_vxlan_topo1/host1/zebra.conf (renamed from tests/topotests/bgp-evpn-vxlan_topo1/host1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_vxlan_topo1/host2/bgpd.conf (renamed from tests/topotests/bgp-evpn-vxlan_topo1/host2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_vxlan_topo1/host2/ospfd.conf (renamed from tests/topotests/bgp-evpn-vxlan_topo1/host2/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_evpn_vxlan_topo1/host2/zebra.conf (renamed from tests/topotests/bgp-evpn-vxlan_topo1/host2/zebra.conf) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_evpn_vxlan_topo1/test_bgp_evpn_vxlan.py (renamed from tests/topotests/bgp-evpn-vxlan_topo1/test_bgp_evpn_vxlan.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_flowspec/test_bgp_flowspec_topo.py | 4 | ||||
| -rw-r--r-- | tests/topotests/bgp_path_attributes_topo1/__init__.py (renamed from tests/topotests/bgp_default-route_route-map_match_set/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_path_attributes_topo1/bgp_path_attributes.json (renamed from tests/topotests/bgp-path-attributes-topo1/bgp_path_attributes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_path_attributes_topo1/test_bgp_path_attributes.py (renamed from tests/topotests/bgp-path-attributes-topo1/test_bgp_path_attributes.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_group/__init__.py (renamed from tests/topotests/bgp_default-route_route-map_set/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_group/r1/bgpd.conf (renamed from tests/topotests/bgp_peer-group/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_group/r1/zebra.conf (renamed from tests/topotests/bgp_peer-group/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_group/r2/bgpd.conf (renamed from tests/topotests/bgp_peer-group/r2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_group/r2/zebra.conf (renamed from tests/topotests/bgp_peer-group/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_group/r3/bgpd.conf (renamed from tests/topotests/bgp_peer-group/r3/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_group/r3/zebra.conf (renamed from tests/topotests/bgp_peer-group/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_group/test_bgp_peer-group.py (renamed from tests/topotests/bgp_peer-group/test_bgp_peer-group.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/exabgp.env (renamed from tests/topotests/bgp_peer-type_multipath-relax/exabgp.env) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_peer_type_multipath_relax/peer1/exa-receive.py (renamed from tests/topotests/bgp_peer-type_multipath-relax/peer1/exa-receive.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/peer1/exa_readpipe.py (renamed from tests/topotests/bgp_peer-type_multipath-relax/peer1/exa_readpipe.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/peer1/exabgp.cfg (renamed from tests/topotests/bgp_peer-type_multipath-relax/peer1/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_peer_type_multipath_relax/peer2/exa-receive.py (renamed from tests/topotests/bgp_peer-type_multipath-relax/peer2/exa-receive.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/peer2/exa_readpipe.py (renamed from tests/topotests/bgp_peer-type_multipath-relax/peer2/exa_readpipe.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/peer2/exabgp.cfg (renamed from tests/topotests/bgp_peer-type_multipath-relax/peer2/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_peer_type_multipath_relax/peer3/exa-receive.py (renamed from tests/topotests/bgp_peer-type_multipath-relax/peer3/exa-receive.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/peer3/exa_readpipe.py (renamed from tests/topotests/bgp_peer-type_multipath-relax/peer3/exa_readpipe.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/peer3/exabgp.cfg (renamed from tests/topotests/bgp_peer-type_multipath-relax/peer3/exabgp.cfg) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_peer_type_multipath_relax/peer4/exa-receive.py (renamed from tests/topotests/bgp_peer-type_multipath-relax/peer4/exa-receive.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/peer4/exa_readpipe.py (renamed from tests/topotests/bgp_peer-type_multipath-relax/peer4/exa_readpipe.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/peer4/exabgp.cfg (renamed from tests/topotests/bgp_peer-type_multipath-relax/peer4/exabgp.cfg) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/r1/bgpd.conf (renamed from tests/topotests/bgp_peer-type_multipath-relax/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/r1/multipath.json (renamed from tests/topotests/bgp_peer-type_multipath-relax/r1/multipath.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/r1/not-multipath.json (renamed from tests/topotests/bgp_peer-type_multipath-relax/r1/not-multipath.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/r1/prefix1-eBGP-confed.json (renamed from tests/topotests/bgp_peer-type_multipath-relax/r1/prefix1-eBGP-confed.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/r1/prefix1-eBGP-iBGP.json (renamed from tests/topotests/bgp_peer-type_multipath-relax/r1/prefix1-eBGP-iBGP.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/r1/prefix1-no-recursive.json (renamed from tests/topotests/bgp_peer-type_multipath-relax/r1/prefix1-no-recursive.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/r1/prefix1-recursive.json (renamed from tests/topotests/bgp_peer-type_multipath-relax/r1/prefix1-recursive.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/r1/prefix1.json (renamed from tests/topotests/bgp_peer-type_multipath-relax/r1/prefix1.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/r1/prefix3-ip-route.json (renamed from tests/topotests/bgp_peer-type_multipath-relax/r1/prefix3-ip-route.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/r1/prefix3-no-recursive.json (renamed from tests/topotests/bgp_peer-type_multipath-relax/r1/prefix3-no-recursive.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/r1/prefix3-recursive.json (renamed from tests/topotests/bgp_peer-type_multipath-relax/r1/prefix3-recursive.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/r1/zebra.conf (renamed from tests/topotests/bgp_peer-type_multipath-relax/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/r2/bgpd.conf (renamed from tests/topotests/bgp_peer-type_multipath-relax/r2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/r2/staticd.conf (renamed from tests/topotests/bgp_peer-type_multipath-relax/r2/staticd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_peer_type_multipath_relax/r2/zebra.conf (renamed from tests/topotests/bgp_peer-type_multipath-relax/r2/zebra.conf) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_peer_type_multipath_relax/test_bgp_peer-type_multipath-relax.py (renamed from tests/topotests/bgp_peer-type_multipath-relax/test_bgp_peer-type_multipath-relax.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_prefix_list_topo1/__init__.py (renamed from tests/topotests/bgp_peer-group/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_prefix_list_topo1/prefix_lists.json (renamed from tests/topotests/bgp-prefix-list-topo1/prefix_lists.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_prefix_list_topo1/test_prefix_lists.py (renamed from tests/topotests/bgp-prefix-list-topo1/test_prefix_lists.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_recursive_route_ebgp_multi_hop/test_bgp_recursive_route_ebgp_multi_hop.py | 30 | ||||
| -rw-r--r-- | tests/topotests/bgp_route_map/bgp_route_map_topo1.json (renamed from tests/topotests/bgp-route-map/bgp_route_map_topo1.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_route_map/bgp_route_map_topo2.json (renamed from tests/topotests/bgp-route-map/bgp_route_map_topo2.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_route_map/test_route_map_topo1.py (renamed from tests/topotests/bgp-route-map/test_route_map_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_route_map/test_route_map_topo2.py (renamed from tests/topotests/bgp-route-map/test_route_map_topo2.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_sender_as_path_loop_detection/__init__.py (renamed from tests/topotests/bgp_sender-as-path-loop-detection/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_sender_as_path_loop_detection/r1/bgpd.conf (renamed from tests/topotests/bgp_sender-as-path-loop-detection/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_sender_as_path_loop_detection/r1/zebra.conf (renamed from tests/topotests/bgp_sender-as-path-loop-detection/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_sender_as_path_loop_detection/r2/bgpd.conf (renamed from tests/topotests/bgp_sender-as-path-loop-detection/r2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_sender_as_path_loop_detection/r2/zebra.conf (renamed from tests/topotests/bgp_sender-as-path-loop-detection/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_sender_as_path_loop_detection/r3/bgpd.conf (renamed from tests/topotests/bgp_sender-as-path-loop-detection/r3/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_sender_as_path_loop_detection/r3/zebra.conf (renamed from tests/topotests/bgp_sender-as-path-loop-detection/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_sender_as_path_loop_detection/test_bgp_sender-as-path-loop-detection.py (renamed from tests/topotests/bgp_sender-as-path-loop-detection/test_bgp_sender-as-path-loop-detection.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_set_local_preference_add_subtract/__init__.py (renamed from tests/topotests/bgp_set_local-preference_add_subtract/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_set_local_preference_add_subtract/r1/bgpd.conf (renamed from tests/topotests/bgp_set_local-preference_add_subtract/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_set_local_preference_add_subtract/r1/zebra.conf (renamed from tests/topotests/bgp_set_local-preference_add_subtract/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_set_local_preference_add_subtract/r2/bgpd.conf (renamed from tests/topotests/bgp_set_local-preference_add_subtract/r2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_set_local_preference_add_subtract/r2/zebra.conf (renamed from tests/topotests/bgp_set_local-preference_add_subtract/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_set_local_preference_add_subtract/r3/bgpd.conf (renamed from tests/topotests/bgp_set_local-preference_add_subtract/r3/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_set_local_preference_add_subtract/r3/zebra.conf (renamed from tests/topotests/bgp_set_local-preference_add_subtract/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_set_local_preference_add_subtract/test_bgp_set_local-preference_add_subtract.py (renamed from tests/topotests/bgp_set_local-preference_add_subtract/test_bgp_set_local-preference_add_subtract.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/ce1/bgpd.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/ce1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/ce1/snmpd.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/ce1/snmpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/ce1/zebra.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/ce1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/ce2/bgpd.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/ce2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/ce2/snmpd.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/ce2/snmpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/ce2/zebra.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/ce2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/ce3/bgpd.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/ce3/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/ce3/snmpd.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/ce3/snmpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/ce3/zebra.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/ce3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/ce4/bgpd.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/ce4/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/ce4/snmpd.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/ce4/snmpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/ce4/zebra.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/ce4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/r1/bgpd.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/r1/isisd.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/r1/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/r1/snmpd.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/r1/snmpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/r1/zebra.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/r2/isisd.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/r2/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/r2/snmpd.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/r2/snmpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/r2/zebra.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/r3/isisd.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/r3/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/r3/snmpd.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/r3/snmpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/r3/zebra.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/r4/bgpd.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/r4/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/r4/isisd.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/r4/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/r4/snmpd.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/r4/snmpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_snmp_mplsl3vpn/r4/zebra.conf (renamed from tests/topotests/bgp-snmp-mplsl3vpn/r4/zebra.conf) | 0 | ||||
| -rwxr-xr-x | tests/topotests/bgp_snmp_mplsl3vpn/test_bgp_snmp_mplsvpn.py (renamed from tests/topotests/bgp-snmp-mplsl3vpn/test_bgp_snmp_mplsvpn.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_vrf_route_leak_basic/r1/bgpd.conf (renamed from tests/topotests/bgp-vrf-route-leak-basic/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_vrf_route_leak_basic/r1/zebra.conf (renamed from tests/topotests/bgp-vrf-route-leak-basic/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_vrf_route_leak_basic/setup_vrfs (renamed from tests/topotests/bgp-vrf-route-leak-basic/setup_vrfs) | 0 | ||||
| -rw-r--r-- | tests/topotests/bgp_vrf_route_leak_basic/test_bgp-vrf-route-leak-basic.py (renamed from tests/topotests/bgp-vrf-route-leak-basic/test_bgp-vrf-route-leak-basic.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/eigrp_topo1/r1/eigrpd.conf (renamed from tests/topotests/eigrp-topo1/r1/eigrpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/eigrp_topo1/r1/show_ip_eigrp.json (renamed from tests/topotests/eigrp-topo1/r1/show_ip_eigrp.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/eigrp_topo1/r1/show_ip_eigrp.ref (renamed from tests/topotests/eigrp-topo1/r1/show_ip_eigrp.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/eigrp_topo1/r1/show_ip_route.json_ref (renamed from tests/topotests/eigrp-topo1/r1/show_ip_route.json_ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/eigrp_topo1/r1/zebra.conf (renamed from tests/topotests/eigrp-topo1/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/eigrp_topo1/r2/eigrpd.conf (renamed from tests/topotests/eigrp-topo1/r2/eigrpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/eigrp_topo1/r2/show_ip_eigrp.json (renamed from tests/topotests/eigrp-topo1/r2/show_ip_eigrp.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/eigrp_topo1/r2/show_ip_eigrp.ref (renamed from tests/topotests/eigrp-topo1/r2/show_ip_eigrp.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/eigrp_topo1/r2/show_ip_route.json_ref (renamed from tests/topotests/eigrp-topo1/r2/show_ip_route.json_ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/eigrp_topo1/r2/zebra.conf (renamed from tests/topotests/eigrp-topo1/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/eigrp_topo1/r3/eigrpd.conf (renamed from tests/topotests/eigrp-topo1/r3/eigrpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/eigrp_topo1/r3/show_ip_eigrp.json (renamed from tests/topotests/eigrp-topo1/r3/show_ip_eigrp.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/eigrp_topo1/r3/show_ip_eigrp.ref (renamed from tests/topotests/eigrp-topo1/r3/show_ip_eigrp.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/eigrp_topo1/r3/show_ip_route.json_ref (renamed from tests/topotests/eigrp-topo1/r3/show_ip_route.json_ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/eigrp_topo1/r3/zebra.conf (renamed from tests/topotests/eigrp-topo1/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/eigrp_topo1/test_eigrp_topo1.dot (renamed from tests/topotests/eigrp-topo1/test_eigrp_topo1.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/eigrp_topo1/test_eigrp_topo1.py (renamed from tests/topotests/eigrp-topo1/test_eigrp_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/evpn_pim_1/host1/bgpd.conf (renamed from tests/topotests/evpn-pim-1/host1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/evpn_pim_1/host1/pimd.conf (renamed from tests/topotests/evpn-pim-1/host1/pimd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/evpn_pim_1/host1/zebra.conf (renamed from tests/topotests/evpn-pim-1/host1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/evpn_pim_1/host2/bgpd.conf (renamed from tests/topotests/evpn-pim-1/host2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/evpn_pim_1/host2/pimd.conf (renamed from tests/topotests/evpn-pim-1/host2/pimd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/evpn_pim_1/host2/zebra.conf (renamed from tests/topotests/evpn-pim-1/host2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/evpn_pim_1/leaf1/bgpd.conf (renamed from tests/topotests/evpn-pim-1/leaf1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/evpn_pim_1/leaf1/pimd.conf (renamed from tests/topotests/evpn-pim-1/leaf1/pimd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/evpn_pim_1/leaf1/zebra.conf (renamed from tests/topotests/evpn-pim-1/leaf1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/evpn_pim_1/leaf2/bgpd.conf (renamed from tests/topotests/evpn-pim-1/leaf2/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/evpn_pim_1/leaf2/pimd.conf (renamed from tests/topotests/evpn-pim-1/leaf2/pimd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/evpn_pim_1/leaf2/zebra.conf (renamed from tests/topotests/evpn-pim-1/leaf2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/evpn_pim_1/spine/bgp.summ.json (renamed from tests/topotests/evpn-pim-1/spine/bgp.summ.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/evpn_pim_1/spine/bgpd.conf (renamed from tests/topotests/evpn-pim-1/spine/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/evpn_pim_1/spine/join-info.json (renamed from tests/topotests/evpn-pim-1/spine/join-info.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/evpn_pim_1/spine/pimd.conf (renamed from tests/topotests/evpn-pim-1/spine/pimd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/evpn_pim_1/spine/zebra.conf (renamed from tests/topotests/evpn-pim-1/spine/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/evpn_pim_1/test_evpn_pim_topo1.py (renamed from tests/topotests/evpn-pim-1/test_evpn_pim_topo1.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/example_test/__init__.py (renamed from tests/topotests/example-test/__init__.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/example_test/test_example.py (renamed from tests/topotests/example-test/test_example.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/example_test/test_template.dot (renamed from tests/topotests/example-test/test_template.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/example_test/test_template.jpg (renamed from tests/topotests/example-test/test_template.jpg) | bin | 15470 -> 15470 bytes | |||
| -rw-r--r-- | tests/topotests/example_test/test_template.py (renamed from tests/topotests/example-test/test_template.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/example_topojson_test/__init__.py (renamed from tests/topotests/example-topojson-test/__init__.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/example_topojson_test/test_topo_json_multiple_links/__init__.py (renamed from tests/topotests/example-topojson-test/test_topo_json_multiple_links/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/example_topojson_test/test_topo_json_multiple_links/example_topojson_multiple_links.json (renamed from tests/topotests/example-topojson-test/test_topo_json_multiple_links/example_topojson_multiple_links.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/example_topojson_test/test_topo_json_multiple_links/test_example_topojson_multiple_links.py (renamed from tests/topotests/example-topojson-test/test_topo_json_multiple_links/test_example_topojson_multiple_links.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/example_topojson_test/test_topo_json_single_link/__init__.py (renamed from tests/topotests/example-topojson-test/test_topo_json_single_link/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/example_topojson_test/test_topo_json_single_link/example_topojson.json (renamed from tests/topotests/example-topojson-test/test_topo_json_single_link/example_topojson.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/example_topojson_test/test_topo_json_single_link/test_example_topojson.py (renamed from tests/topotests/example-topojson-test/test_topo_json_single_link/test_example_topojson.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/example_topojson_test/test_topo_json_single_link_loopback/__init__.py (renamed from tests/topotests/example-topojson-test/test_topo_json_single_link_loopback/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/example_topojson_test/test_topo_json_single_link_loopback/example_topojson.json (renamed from tests/topotests/example-topojson-test/test_topo_json_single_link_loopback/example_topojson.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/example_topojson_test/test_topo_json_single_link_loopback/test_example_topojson.py (renamed from tests/topotests/example-topojson-test/test_topo_json_single_link_loopback/test_example_topojson.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis-topo1/r5/r5_topology.json | 152 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/__init__.py (renamed from tests/topotests/isis-lfa-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt1/isisd.conf (renamed from tests/topotests/isis-lfa-topo1/rt1/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt1/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-lfa-topo1/rt1/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-lfa-topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt1/step10/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-lfa-topo1/rt1/step10/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt1/step11/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-lfa-topo1/rt1/step11/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt1/step12/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-lfa-topo1/rt1/step12/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt1/step13/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-lfa-topo1/rt1/step13/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt1/step2/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-lfa-topo1/rt1/step2/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt1/step3/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-lfa-topo1/rt1/step3/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt1/step4/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-lfa-topo1/rt1/step4/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt1/step5/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-lfa-topo1/rt1/step5/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt1/step6/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-lfa-topo1/rt1/step6/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt1/step7/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-lfa-topo1/rt1/step7/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt1/step8/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-lfa-topo1/rt1/step8/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt1/step9/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-lfa-topo1/rt1/step9/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt1/zebra.conf (renamed from tests/topotests/isis-lfa-topo1/rt1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt2/isisd.conf (renamed from tests/topotests/isis-lfa-topo1/rt2/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt2/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-lfa-topo1/rt2/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-lfa-topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt2/zebra.conf (renamed from tests/topotests/isis-lfa-topo1/rt2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt3/isisd.conf (renamed from tests/topotests/isis-lfa-topo1/rt3/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt3/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-lfa-topo1/rt3/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-lfa-topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt3/zebra.conf (renamed from tests/topotests/isis-lfa-topo1/rt3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt4/isisd.conf (renamed from tests/topotests/isis-lfa-topo1/rt4/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt4/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-lfa-topo1/rt4/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-lfa-topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt4/zebra.conf (renamed from tests/topotests/isis-lfa-topo1/rt4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt5/isisd.conf (renamed from tests/topotests/isis-lfa-topo1/rt5/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt5/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-lfa-topo1/rt5/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-lfa-topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt5/zebra.conf (renamed from tests/topotests/isis-lfa-topo1/rt5/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt6/isisd.conf (renamed from tests/topotests/isis-lfa-topo1/rt6/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt6/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-lfa-topo1/rt6/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-lfa-topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt6/zebra.conf (renamed from tests/topotests/isis-lfa-topo1/rt6/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt7/isisd.conf (renamed from tests/topotests/isis-lfa-topo1/rt7/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt7/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-lfa-topo1/rt7/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt7/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-lfa-topo1/rt7/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lfa_topo1/rt7/zebra.conf (renamed from tests/topotests/isis-lfa-topo1/rt7/zebra.conf) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_lfa_topo1/test_isis_lfa_topo1.py (renamed from tests/topotests/isis-lfa-topo1/test_isis_lfa_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/__init__.py (renamed from tests/topotests/isis-lsp-bits-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt1/isisd.conf (renamed from tests/topotests/isis-lsp-bits-topo1/rt1/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt1/step1/show_ip_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt1/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt1/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt1/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt1/step2/show_ip_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt1/step2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt1/step2/show_ipv6_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt1/step2/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt1/step3/show_ip_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt1/step3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt1/step3/show_ipv6_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt1/step3/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt1/step4/show_ip_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt1/step4/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt1/step4/show_ipv6_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt1/step4/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt1/zebra.conf (renamed from tests/topotests/isis-lsp-bits-topo1/rt1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt2/isisd.conf (renamed from tests/topotests/isis-lsp-bits-topo1/rt2/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt2/step1/show_ip_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt2/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt2/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt2/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt2/zebra.conf (renamed from tests/topotests/isis-lsp-bits-topo1/rt2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt3/isisd.conf (renamed from tests/topotests/isis-lsp-bits-topo1/rt3/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt3/step1/show_ip_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt3/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt3/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt3/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt3/zebra.conf (renamed from tests/topotests/isis-lsp-bits-topo1/rt3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt4/isisd.conf (renamed from tests/topotests/isis-lsp-bits-topo1/rt4/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt4/step1/show_ip_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt4/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt4/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt4/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt4/zebra.conf (renamed from tests/topotests/isis-lsp-bits-topo1/rt4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt5/isisd.conf (renamed from tests/topotests/isis-lsp-bits-topo1/rt5/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt5/step1/show_ip_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt5/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt5/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt5/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt5/zebra.conf (renamed from tests/topotests/isis-lsp-bits-topo1/rt5/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt6/isisd.conf (renamed from tests/topotests/isis-lsp-bits-topo1/rt6/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt6/step1/show_ip_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt6/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt6/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt6/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt6/step2/show_ip_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt6/step2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt6/step2/show_ipv6_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt6/step2/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt6/step3/show_ip_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt6/step3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt6/step3/show_ipv6_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt6/step3/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt6/step4/show_ip_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt6/step4/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt6/step4/show_ipv6_route.ref (renamed from tests/topotests/isis-lsp-bits-topo1/rt6/step4/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_lsp_bits_topo1/rt6/zebra.conf (renamed from tests/topotests/isis-lsp-bits-topo1/rt6/zebra.conf) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_lsp_bits_topo1/test_isis_lsp_bits_topo1.py (renamed from tests/topotests/isis-lsp-bits-topo1/test_isis_lsp_bits_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/__init__.py (renamed from tests/topotests/isis-rlfa-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/isisd.conf (renamed from tests/topotests/isis-rlfa-topo1/rt1/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/ldpd.conf (renamed from tests/topotests/isis-rlfa-topo1/rt1/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step1/show_ip_route.ref (renamed from tests/topotests/isis-rlfa-topo1/rt1/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-rlfa-topo1/rt1/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-rlfa-topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step10/show_ip_route.ref.diff (renamed from tests/topotests/isis-rlfa-topo1/rt1/step10/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step10/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-rlfa-topo1/rt1/step10/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step2/show_ip_route.ref.diff (renamed from tests/topotests/isis-rlfa-topo1/rt1/step2/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step2/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-rlfa-topo1/rt1/step2/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step3/show_ip_route.ref.diff (renamed from tests/topotests/isis-rlfa-topo1/rt1/step3/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step3/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-rlfa-topo1/rt1/step3/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step4/show_ip_route.ref.diff (renamed from tests/topotests/isis-rlfa-topo1/rt1/step4/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step4/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-rlfa-topo1/rt1/step4/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step5/show_ip_route.ref.diff (renamed from tests/topotests/isis-rlfa-topo1/rt1/step5/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step5/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-rlfa-topo1/rt1/step5/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step6/show_ip_route.ref.diff (renamed from tests/topotests/isis-rlfa-topo1/rt1/step6/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step6/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-rlfa-topo1/rt1/step6/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step7/show_ip_route.ref.diff (renamed from tests/topotests/isis-rlfa-topo1/rt1/step7/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step7/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-rlfa-topo1/rt1/step7/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step8/show_ip_route.ref.diff (renamed from tests/topotests/isis-rlfa-topo1/rt1/step8/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step8/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-rlfa-topo1/rt1/step8/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step9/show_ip_route.ref.diff (renamed from tests/topotests/isis-rlfa-topo1/rt1/step9/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/step9/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-rlfa-topo1/rt1/step9/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt1/zebra.conf (renamed from tests/topotests/isis-rlfa-topo1/rt1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt2/isisd.conf (renamed from tests/topotests/isis-rlfa-topo1/rt2/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt2/ldpd.conf (renamed from tests/topotests/isis-rlfa-topo1/rt2/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt2/zebra.conf (renamed from tests/topotests/isis-rlfa-topo1/rt2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt3/isisd.conf (renamed from tests/topotests/isis-rlfa-topo1/rt3/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt3/ldpd.conf (renamed from tests/topotests/isis-rlfa-topo1/rt3/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt3/zebra.conf (renamed from tests/topotests/isis-rlfa-topo1/rt3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt4/isisd.conf (renamed from tests/topotests/isis-rlfa-topo1/rt4/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt4/ldpd.conf (renamed from tests/topotests/isis-rlfa-topo1/rt4/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt4/zebra.conf (renamed from tests/topotests/isis-rlfa-topo1/rt4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt5/isisd.conf (renamed from tests/topotests/isis-rlfa-topo1/rt5/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt5/ldpd.conf (renamed from tests/topotests/isis-rlfa-topo1/rt5/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt5/zebra.conf (renamed from tests/topotests/isis-rlfa-topo1/rt5/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt6/isisd.conf (renamed from tests/topotests/isis-rlfa-topo1/rt6/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt6/ldpd.conf (renamed from tests/topotests/isis-rlfa-topo1/rt6/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt6/zebra.conf (renamed from tests/topotests/isis-rlfa-topo1/rt6/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt7/isisd.conf (renamed from tests/topotests/isis-rlfa-topo1/rt7/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt7/ldpd.conf (renamed from tests/topotests/isis-rlfa-topo1/rt7/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt7/zebra.conf (renamed from tests/topotests/isis-rlfa-topo1/rt7/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt8/isisd.conf (renamed from tests/topotests/isis-rlfa-topo1/rt8/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt8/ldpd.conf (renamed from tests/topotests/isis-rlfa-topo1/rt8/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_rlfa_topo1/rt8/zebra.conf (renamed from tests/topotests/isis-rlfa-topo1/rt8/zebra.conf) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_rlfa_topo1/test_isis_rlfa_topo1.py (renamed from tests/topotests/isis-rlfa-topo1/test_isis_rlfa_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/ce3/zebra.conf (renamed from tests/topotests/isis-snmp/ce3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r1/isisd.conf (renamed from tests/topotests/isis-snmp/r1/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r1/ldpd.conf (renamed from tests/topotests/isis-snmp/r1/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r1/show_ip_route.ref (renamed from tests/topotests/isis-snmp/r1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-snmp/r1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r1/snmpd.conf (renamed from tests/topotests/isis-snmp/r1/snmpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r1/zebra.conf (renamed from tests/topotests/isis-snmp/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r2/isisd.conf (renamed from tests/topotests/isis-snmp/r2/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r2/ldpd.conf (renamed from tests/topotests/isis-snmp/r2/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r2/show_ip_route.ref (renamed from tests/topotests/isis-snmp/r2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r2/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-snmp/r2/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r2/snmpd.conf (renamed from tests/topotests/isis-snmp/r2/snmpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r2/zebra.conf (renamed from tests/topotests/isis-snmp/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r3/isisd.conf (renamed from tests/topotests/isis-snmp/r3/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r3/ldpd.conf (renamed from tests/topotests/isis-snmp/r3/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r3/show_ip_route.ref (renamed from tests/topotests/isis-snmp/r3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r3/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-snmp/r3/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r3/snmpd.conf (renamed from tests/topotests/isis-snmp/r3/snmpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r3/zebra.conf (renamed from tests/topotests/isis-snmp/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r4/isisd.conf (renamed from tests/topotests/isis-snmp/r4/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r4/ldpd.conf (renamed from tests/topotests/isis-snmp/r4/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r4/show_ip_route.ref (renamed from tests/topotests/isis-snmp/r4/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r4/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-snmp/r4/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r4/snmpd.conf (renamed from tests/topotests/isis-snmp/r4/snmpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r4/zebra.conf (renamed from tests/topotests/isis-snmp/r4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r5/isisd.conf (renamed from tests/topotests/isis-snmp/r5/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r5/ldpd.conf (renamed from tests/topotests/isis-snmp/r5/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r5/ldpdconf (renamed from tests/topotests/isis-snmp/r5/ldpdconf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r5/show_ip_route.ref (renamed from tests/topotests/isis-snmp/r5/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r5/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-snmp/r5/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r5/snmpd.conf (renamed from tests/topotests/isis-snmp/r5/snmpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/r5/zebra.conf (renamed from tests/topotests/isis-snmp/r5/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_snmp/test_isis_snmp.dot (renamed from tests/topotests/isis-snmp/test_isis_snmp.dot) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_snmp/test_isis_snmp.py (renamed from tests/topotests/isis-snmp/test_isis_snmp.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/dst/zebra.conf (renamed from tests/topotests/isis-sr-te-topo1/dst/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt1/bgpd.conf (renamed from tests/topotests/isis-sr-te-topo1/rt1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt1/isisd.conf (renamed from tests/topotests/isis-sr-te-topo1/rt1/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt1/pathd.conf (renamed from tests/topotests/isis-sr-te-topo1/rt1/pathd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt1/step1/show_mpls_table_with_candidate.ref (renamed from tests/topotests/isis-sr-te-topo1/rt1/step1/show_mpls_table_with_candidate.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt1/step1/show_mpls_table_without_candidate.ref (renamed from tests/topotests/isis-sr-te-topo1/rt1/step1/show_mpls_table_without_candidate.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt1/step2/show_operational_data.ref (renamed from tests/topotests/isis-sr-te-topo1/rt1/step2/show_operational_data.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt1/step2/show_operational_data_with_candidate.ref (renamed from tests/topotests/isis-sr-te-topo1/rt1/step2/show_operational_data_with_candidate.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt1/step3/show_operational_data_with_single_candidate.ref (renamed from tests/topotests/isis-sr-te-topo1/rt1/step3/show_operational_data_with_single_candidate.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt1/step3/show_operational_data_with_two_candidates.ref (renamed from tests/topotests/isis-sr-te-topo1/rt1/step3/show_operational_data_with_two_candidates.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt1/step4/show_mpls_table.ref (renamed from tests/topotests/isis-sr-te-topo1/rt1/step4/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt1/step4/show_mpls_table_add_segment.ref (renamed from tests/topotests/isis-sr-te-topo1/rt1/step4/show_mpls_table_add_segment.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt1/step4/show_mpls_table_change_segment.ref (renamed from tests/topotests/isis-sr-te-topo1/rt1/step4/show_mpls_table_change_segment.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt1/step5/show_ip_route_bgp_active_srte.ref (renamed from tests/topotests/isis-sr-te-topo1/rt1/step5/show_ip_route_bgp_active_srte.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt1/step5/show_ip_route_bgp_inactive_srte.ref (renamed from tests/topotests/isis-sr-te-topo1/rt1/step5/show_ip_route_bgp_inactive_srte.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt1/step5/show_operational_data_active.ref (renamed from tests/topotests/isis-sr-te-topo1/rt1/step5/show_operational_data_active.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt1/step5/show_operational_data_inactive.ref (renamed from tests/topotests/isis-sr-te-topo1/rt1/step5/show_operational_data_inactive.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt1/zebra.conf (renamed from tests/topotests/isis-sr-te-topo1/rt1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt2/isisd.conf (renamed from tests/topotests/isis-sr-te-topo1/rt2/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt2/zebra.conf (renamed from tests/topotests/isis-sr-te-topo1/rt2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt3/isisd.conf (renamed from tests/topotests/isis-sr-te-topo1/rt3/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt3/zebra.conf (renamed from tests/topotests/isis-sr-te-topo1/rt3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt4/isisd.conf (renamed from tests/topotests/isis-sr-te-topo1/rt4/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt4/zebra.conf (renamed from tests/topotests/isis-sr-te-topo1/rt4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt5/isisd.conf (renamed from tests/topotests/isis-sr-te-topo1/rt5/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt5/zebra.conf (renamed from tests/topotests/isis-sr-te-topo1/rt5/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt6/bgpd.conf (renamed from tests/topotests/isis-sr-te-topo1/rt6/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt6/isisd.conf (renamed from tests/topotests/isis-sr-te-topo1/rt6/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt6/pathd.conf (renamed from tests/topotests/isis-sr-te-topo1/rt6/pathd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt6/step1/show_mpls_table_with_candidate.ref (renamed from tests/topotests/isis-sr-te-topo1/rt6/step1/show_mpls_table_with_candidate.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt6/step1/show_mpls_table_without_candidate.ref (renamed from tests/topotests/isis-sr-te-topo1/rt6/step1/show_mpls_table_without_candidate.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt6/step2/show_operational_data.ref (renamed from tests/topotests/isis-sr-te-topo1/rt6/step2/show_operational_data.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt6/step2/show_operational_data_with_candidate.ref (renamed from tests/topotests/isis-sr-te-topo1/rt6/step2/show_operational_data_with_candidate.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt6/step3/show_operational_data_with_single_candidate.ref (renamed from tests/topotests/isis-sr-te-topo1/rt6/step3/show_operational_data_with_single_candidate.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt6/step3/show_operational_data_with_two_candidates.ref (renamed from tests/topotests/isis-sr-te-topo1/rt6/step3/show_operational_data_with_two_candidates.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt6/step4/show_mpls_table.ref (renamed from tests/topotests/isis-sr-te-topo1/rt6/step4/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_te_topo1/rt6/zebra.conf (renamed from tests/topotests/isis-sr-te-topo1/rt6/zebra.conf) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_sr_te_topo1/test_isis_sr_te_topo1.py (renamed from tests/topotests/isis-sr-te-topo1/test_isis_sr_te_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/__init__.py (renamed from tests/topotests/isis-sr-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/isisd.conf (renamed from tests/topotests/isis-sr-topo1/rt1/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step1/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step1/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step1/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step10/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step10/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step10/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step10/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step10/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step10/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt1/step10/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step10/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step2/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step2/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step2/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step2/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step2/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt1/step2/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step2/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step3/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step3/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step3/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step3/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step3/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt1/step3/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step3/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step4/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step4/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step4/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step4/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step4/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step4/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt1/step4/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step4/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step5/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step5/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step5/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step5/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step5/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step5/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt1/step5/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step5/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step6/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step6/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step6/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step6/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step6/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step6/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt1/step6/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step6/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step7/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step7/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step7/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step7/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step7/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step7/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt1/step7/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step7/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step8/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step8/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step8/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step8/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step8/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step8/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt1/step8/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step8/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step9/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step9/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step9/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step9/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/step9/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step9/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt1/step9/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt1/step9/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt1/zebra.conf (renamed from tests/topotests/isis-sr-topo1/rt1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/isisd.conf (renamed from tests/topotests/isis-sr-topo1/rt2/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step1/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step1/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step1/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step10/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step10/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step10/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step10/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step10/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step10/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt2/step10/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step10/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step2/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step2/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step2/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step2/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step2/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt2/step2/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step2/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step3/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step3/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step3/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step3/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step3/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt2/step3/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step3/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step4/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step4/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step4/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step4/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step4/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step4/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt2/step4/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step4/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step5/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step5/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step5/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step5/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step5/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step5/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt2/step5/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step5/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step6/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step6/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step6/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step6/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step6/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step6/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt2/step6/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step6/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step7/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step7/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step7/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step7/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step7/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step7/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt2/step7/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step7/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step8/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step8/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step8/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step8/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step8/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step8/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt2/step8/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step8/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step9/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step9/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step9/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step9/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/step9/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step9/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt2/step9/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt2/step9/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt2/zebra.conf (renamed from tests/topotests/isis-sr-topo1/rt2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/isisd.conf (renamed from tests/topotests/isis-sr-topo1/rt3/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step1/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step1/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step1/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step10/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step10/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step10/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step10/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step10/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step10/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt3/step10/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step10/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step2/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step2/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step2/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step2/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step2/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt3/step2/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step2/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step3/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step3/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step3/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step3/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step3/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt3/step3/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step3/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step4/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step4/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step4/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step4/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step4/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step4/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt3/step4/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step4/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step5/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step5/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step5/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step5/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step5/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step5/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt3/step5/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step5/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step6/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step6/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step6/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step6/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step6/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step6/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt3/step6/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step6/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step7/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step7/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step7/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step7/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step7/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step7/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt3/step7/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step7/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step8/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step8/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step8/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step8/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step8/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step8/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt3/step8/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step8/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step9/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step9/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step9/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step9/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/step9/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step9/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt3/step9/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt3/step9/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt3/zebra.conf (renamed from tests/topotests/isis-sr-topo1/rt3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/isisd.conf (renamed from tests/topotests/isis-sr-topo1/rt4/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step1/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step1/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step1/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step10/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step10/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step10/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step10/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step10/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step10/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt4/step10/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step10/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step2/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step2/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step2/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step2/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step2/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step2/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step2/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step3/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step3/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step3/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step3/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step3/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step3/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step3/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step4/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step4/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step4/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step4/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step4/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step4/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt4/step4/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step4/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step5/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step5/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step5/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step5/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step5/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step5/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt4/step5/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step5/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step6/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step6/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step6/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step6/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step6/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step6/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt4/step6/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step6/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step7/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step7/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step7/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step7/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step7/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step7/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt4/step7/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step7/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step8/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step8/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step8/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step8/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step8/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step8/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt4/step8/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step8/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step9/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step9/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step9/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step9/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/step9/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step9/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt4/step9/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt4/step9/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt4/zebra.conf (renamed from tests/topotests/isis-sr-topo1/rt4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/isisd.conf (renamed from tests/topotests/isis-sr-topo1/rt5/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step1/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step1/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step1/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step10/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step10/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step10/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step10/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step10/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step10/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt5/step10/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step10/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step2/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step2/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step2/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step2/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step2/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step2/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step2/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step3/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step3/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step3/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step3/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step3/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step3/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step3/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step4/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step4/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step4/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step4/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step4/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step4/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step4/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step4/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step5/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step5/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step5/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step5/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step5/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step5/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt5/step5/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step5/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step6/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step6/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step6/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step6/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step6/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step6/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt5/step6/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step6/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step7/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step7/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step7/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step7/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step7/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step7/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt5/step7/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step7/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step8/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step8/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step8/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step8/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step8/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step8/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt5/step8/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step8/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step9/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step9/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step9/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step9/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/step9/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step9/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt5/step9/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt5/step9/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt5/zebra.conf (renamed from tests/topotests/isis-sr-topo1/rt5/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/isisd.conf (renamed from tests/topotests/isis-sr-topo1/rt6/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step1/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step1/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step1/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step10/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step10/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step10/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step10/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step10/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step10/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt6/step10/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step10/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step2/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step2/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step2/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step2/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step2/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt6/step2/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step2/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step3/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step3/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step3/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step3/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step3/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step3/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step3/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step4/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step4/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step4/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step4/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step4/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step4/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt6/step4/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step4/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step5/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step5/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step5/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step5/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step5/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step5/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt6/step5/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step5/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step6/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step6/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step6/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step6/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step6/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step6/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt6/step6/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step6/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step7/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step7/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step7/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step7/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step7/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step7/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt6/step7/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step7/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step8/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step8/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step8/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step8/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step8/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step8/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt6/step8/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step8/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step9/show_ip_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step9/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step9/show_ipv6_route.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step9/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/step9/show_mpls_table.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step9/show_mpls_table.ref) | 0 | ||||
| l--------- | tests/topotests/isis_sr_topo1/rt6/step9/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-sr-topo1/rt6/step9/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/rt6/zebra.conf (renamed from tests/topotests/isis-sr-topo1/rt6/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_sr_topo1/test_isis_sr_topo1.py (renamed from tests/topotests/isis-sr-topo1/test_isis_sr_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/__init__.py (renamed from tests/topotests/isis-tilfa-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/isisd.conf (renamed from tests/topotests/isis-tilfa-topo1/rt1/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step1/show_ip_route.ref (renamed from tests/topotests/isis-tilfa-topo1/rt1/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-tilfa-topo1/rt1/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step1/show_mpls_table.ref (renamed from tests/topotests/isis-tilfa-topo1/rt1/step1/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-tilfa-topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step2/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step2/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step2/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step2/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step2/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step2/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step3/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step3/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step3/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step3/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step3/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step3/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step4/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step4/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step4/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step4/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step4/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step4/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step5/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step5/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step5/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step5/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step5/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step5/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step6/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step6/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step6/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step6/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step6/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step6/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step7/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step7/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step7/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step7/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step7/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step7/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step8/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step8/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step8/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step8/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step8/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step8/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step9/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step9/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step9/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step9/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/step9/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt1/step9/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt1/zebra.conf (renamed from tests/topotests/isis-tilfa-topo1/rt1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/isisd.conf (renamed from tests/topotests/isis-tilfa-topo1/rt2/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step1/show_ip_route.ref (renamed from tests/topotests/isis-tilfa-topo1/rt2/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-tilfa-topo1/rt2/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step1/show_mpls_table.ref (renamed from tests/topotests/isis-tilfa-topo1/rt2/step1/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-tilfa-topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step2/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step2/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step2/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step2/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step2/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step2/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step3/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step3/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step3/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step3/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step3/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step3/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step4/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step4/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step4/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step4/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step4/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step4/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step5/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step5/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step5/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step5/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step5/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step5/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step6/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step6/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step6/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step6/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step6/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step6/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step7/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step7/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step7/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step7/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step7/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step7/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step8/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step8/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step8/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step8/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step8/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step8/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step9/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step9/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step9/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step9/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/step9/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt2/step9/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt2/zebra.conf (renamed from tests/topotests/isis-tilfa-topo1/rt2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/isisd.conf (renamed from tests/topotests/isis-tilfa-topo1/rt3/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step1/show_ip_route.ref (renamed from tests/topotests/isis-tilfa-topo1/rt3/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-tilfa-topo1/rt3/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step1/show_mpls_table.ref (renamed from tests/topotests/isis-tilfa-topo1/rt3/step1/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-tilfa-topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step2/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step2/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step2/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step2/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step2/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step2/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step3/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step3/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step3/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step3/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step3/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step3/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step4/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step4/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step4/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step4/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step4/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step4/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step5/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step5/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step5/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step5/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step5/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step5/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step6/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step6/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step6/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step6/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step6/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step6/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step7/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step7/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step7/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step7/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step7/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step7/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step8/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step8/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step8/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step8/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step8/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step8/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step9/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step9/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step9/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step9/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/step9/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt3/step9/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt3/zebra.conf (renamed from tests/topotests/isis-tilfa-topo1/rt3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/isisd.conf (renamed from tests/topotests/isis-tilfa-topo1/rt4/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step1/show_ip_route.ref (renamed from tests/topotests/isis-tilfa-topo1/rt4/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-tilfa-topo1/rt4/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step1/show_mpls_table.ref (renamed from tests/topotests/isis-tilfa-topo1/rt4/step1/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-tilfa-topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step2/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step2/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step2/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step2/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step2/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step2/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step3/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step3/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step3/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step3/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step3/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step3/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step4/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step4/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step4/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step4/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step4/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step4/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step5/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step5/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step5/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step5/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step5/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step5/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step6/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step6/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step6/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step6/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step6/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step6/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step7/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step7/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step7/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step7/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step7/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step7/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step8/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step8/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step8/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step8/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step8/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step8/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step9/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step9/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step9/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step9/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/step9/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt4/step9/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt4/zebra.conf (renamed from tests/topotests/isis-tilfa-topo1/rt4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/isisd.conf (renamed from tests/topotests/isis-tilfa-topo1/rt5/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step1/show_ip_route.ref (renamed from tests/topotests/isis-tilfa-topo1/rt5/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-tilfa-topo1/rt5/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step1/show_mpls_table.ref (renamed from tests/topotests/isis-tilfa-topo1/rt5/step1/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-tilfa-topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step2/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step2/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step2/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step2/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step2/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step2/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step3/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step3/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step3/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step3/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step3/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step3/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step4/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step4/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step4/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step4/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step4/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step4/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step5/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step5/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step5/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step5/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step5/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step5/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step6/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step6/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step6/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step6/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step6/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step6/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step7/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step7/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step7/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step7/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step7/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step7/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step8/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step8/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step8/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step8/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step8/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step8/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step9/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step9/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step9/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step9/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/step9/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt5/step9/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt5/zebra.conf (renamed from tests/topotests/isis-tilfa-topo1/rt5/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/isisd.conf (renamed from tests/topotests/isis-tilfa-topo1/rt6/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step1/show_ip_route.ref (renamed from tests/topotests/isis-tilfa-topo1/rt6/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step1/show_ipv6_route.ref (renamed from tests/topotests/isis-tilfa-topo1/rt6/step1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step1/show_mpls_table.ref (renamed from tests/topotests/isis-tilfa-topo1/rt6/step1/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/isis-tilfa-topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step2/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step2/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step2/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step2/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step2/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step2/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step3/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step3/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step3/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step3/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step3/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step3/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step4/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step4/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step4/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step4/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step4/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step4/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step5/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step5/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step5/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step5/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step5/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step5/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step6/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step6/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step6/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step6/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step6/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step6/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step7/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step7/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step7/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step7/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step7/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step7/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step8/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step8/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step8/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step8/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step8/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step8/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step9/show_ip_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step9/show_ip_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step9/show_ipv6_route.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step9/show_ipv6_route.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/step9/show_mpls_table.ref.diff (renamed from tests/topotests/isis-tilfa-topo1/rt6/step9/show_mpls_table.ref.diff) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_tilfa_topo1/rt6/zebra.conf (renamed from tests/topotests/isis-tilfa-topo1/rt6/zebra.conf) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_tilfa_topo1/test_isis_tilfa_topo1.py (renamed from tests/topotests/isis-tilfa-topo1/test_isis_tilfa_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/__init__.py (renamed from tests/topotests/isis-topo1-vrf/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r1/isisd.conf (renamed from tests/topotests/isis-topo1/r1/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r1/r1_route.json (renamed from tests/topotests/isis-topo1/r1/r1_route.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r1/r1_route6.json (renamed from tests/topotests/isis-topo1/r1/r1_route6.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r1/r1_route6_linux.json (renamed from tests/topotests/isis-topo1/r1/r1_route6_linux.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r1/r1_route_linux.json (renamed from tests/topotests/isis-topo1/r1/r1_route_linux.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r1/r1_topology.json (renamed from tests/topotests/isis-topo1/r1/r1_topology.json) | 60 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r1/zebra.conf (renamed from tests/topotests/isis-topo1/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r2/isisd.conf (renamed from tests/topotests/isis-topo1/r2/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r2/r2_route.json (renamed from tests/topotests/isis-topo1/r2/r2_route.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r2/r2_route6.json (renamed from tests/topotests/isis-topo1/r2/r2_route6.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r2/r2_route6_linux.json (renamed from tests/topotests/isis-topo1/r2/r2_route6_linux.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r2/r2_route_linux.json (renamed from tests/topotests/isis-topo1/r2/r2_route_linux.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r2/r2_topology.json (renamed from tests/topotests/isis-topo1/r2/r2_topology.json) | 60 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r2/zebra.conf (renamed from tests/topotests/isis-topo1/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r3/isisd.conf (renamed from tests/topotests/isis-topo1/r3/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r3/r3_route.json (renamed from tests/topotests/isis-topo1/r3/r3_route.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r3/r3_route6.json (renamed from tests/topotests/isis-topo1/r3/r3_route6.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r3/r3_route6_linux.json (renamed from tests/topotests/isis-topo1/r3/r3_route6_linux.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r3/r3_route_linux.json (renamed from tests/topotests/isis-topo1/r3/r3_route_linux.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r3/r3_topology.json (renamed from tests/topotests/isis-topo1/r3/r3_topology.json) | 139 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r3/zebra.conf (renamed from tests/topotests/isis-topo1/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r4/isisd.conf (renamed from tests/topotests/isis-topo1/r4/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r4/r4_route.json (renamed from tests/topotests/isis-topo1/r4/r4_route.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r4/r4_route6.json (renamed from tests/topotests/isis-topo1/r4/r4_route6.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r4/r4_route6_linux.json (renamed from tests/topotests/isis-topo1/r4/r4_route6_linux.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r4/r4_route_linux.json (renamed from tests/topotests/isis-topo1/r4/r4_route_linux.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r4/r4_topology.json (renamed from tests/topotests/isis-topo1/r4/r4_topology.json) | 139 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r4/zebra.conf (renamed from tests/topotests/isis-topo1/r4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r5/isisd.conf (renamed from tests/topotests/isis-topo1/r5/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r5/r5_route.json (renamed from tests/topotests/isis-topo1/r5/r5_route.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r5/r5_route6.json (renamed from tests/topotests/isis-topo1/r5/r5_route6.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r5/r5_route6_linux.json (renamed from tests/topotests/isis-topo1/r5/r5_route6_linux.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r5/r5_route_linux.json (renamed from tests/topotests/isis-topo1/r5/r5_route_linux.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r5/r5_topology.json | 156 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/r5/zebra.conf (renamed from tests/topotests/isis-topo1/r5/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/test_isis_topo1.dot (renamed from tests/topotests/isis-topo1/test_isis_topo1.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1/test_isis_topo1.jpg (renamed from tests/topotests/isis-topo1/test_isis_topo1.jpg) | bin | 74340 -> 74340 bytes | |||
| -rw-r--r-- | tests/topotests/isis_topo1/test_isis_topo1.py (renamed from tests/topotests/isis-topo1/test_isis_topo1.py) | 62 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1_vrf/__init__.py (renamed from tests/topotests/isis-topo1/__init__.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r1/isisd.conf (renamed from tests/topotests/isis-topo1-vrf/r1/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1_vrf/r1/r1_route.json (renamed from tests/topotests/isis-topo1-vrf/r1/r1_route.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1_vrf/r1/r1_route6.json (renamed from tests/topotests/isis-topo1-vrf/r1/r1_route6.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r1/r1_route6_linux.json (renamed from tests/topotests/isis-topo1-vrf/r1/r1_route6_linux.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r1/r1_route_linux.json (renamed from tests/topotests/isis-topo1-vrf/r1/r1_route_linux.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1_vrf/r1/r1_topology.json (renamed from tests/topotests/isis-topo1-vrf/r1/r1_topology.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r1/zebra.conf (renamed from tests/topotests/isis-topo1-vrf/r1/zebra.conf) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r2/isisd.conf (renamed from tests/topotests/isis-topo1-vrf/r2/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1_vrf/r2/r2_route.json (renamed from tests/topotests/isis-topo1-vrf/r2/r2_route.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1_vrf/r2/r2_route6.json (renamed from tests/topotests/isis-topo1-vrf/r2/r2_route6.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r2/r2_route6_linux.json (renamed from tests/topotests/isis-topo1-vrf/r2/r2_route6_linux.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r2/r2_route_linux.json (renamed from tests/topotests/isis-topo1-vrf/r2/r2_route_linux.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1_vrf/r2/r2_topology.json (renamed from tests/topotests/isis-topo1-vrf/r2/r2_topology.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r2/zebra.conf (renamed from tests/topotests/isis-topo1-vrf/r2/zebra.conf) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r3/isisd.conf (renamed from tests/topotests/isis-topo1-vrf/r3/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1_vrf/r3/r3_route.json (renamed from tests/topotests/isis-topo1-vrf/r3/r3_route.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1_vrf/r3/r3_route6.json (renamed from tests/topotests/isis-topo1-vrf/r3/r3_route6.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r3/r3_route6_linux.json (renamed from tests/topotests/isis-topo1-vrf/r3/r3_route6_linux.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r3/r3_route_linux.json (renamed from tests/topotests/isis-topo1-vrf/r3/r3_route_linux.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1_vrf/r3/r3_topology.json (renamed from tests/topotests/isis-topo1-vrf/r3/r3_topology.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r3/zebra.conf (renamed from tests/topotests/isis-topo1-vrf/r3/zebra.conf) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r4/isisd.conf (renamed from tests/topotests/isis-topo1-vrf/r4/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1_vrf/r4/r4_route.json (renamed from tests/topotests/isis-topo1-vrf/r4/r4_route.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1_vrf/r4/r4_route6.json (renamed from tests/topotests/isis-topo1-vrf/r4/r4_route6.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r4/r4_route6_linux.json (renamed from tests/topotests/isis-topo1-vrf/r4/r4_route6_linux.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r4/r4_route_linux.json (renamed from tests/topotests/isis-topo1-vrf/r4/r4_route_linux.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1_vrf/r4/r4_topology.json (renamed from tests/topotests/isis-topo1-vrf/r4/r4_topology.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r4/zebra.conf (renamed from tests/topotests/isis-topo1-vrf/r4/zebra.conf) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r5/isisd.conf (renamed from tests/topotests/isis-topo1-vrf/r5/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1_vrf/r5/r5_route.json (renamed from tests/topotests/isis-topo1-vrf/r5/r5_route.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1_vrf/r5/r5_route6.json (renamed from tests/topotests/isis-topo1-vrf/r5/r5_route6.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r5/r5_route6_linux.json (renamed from tests/topotests/isis-topo1-vrf/r5/r5_route6_linux.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r5/r5_route_linux.json (renamed from tests/topotests/isis-topo1-vrf/r5/r5_route_linux.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/isis_topo1_vrf/r5/r5_topology.json (renamed from tests/topotests/isis-topo1-vrf/r5/r5_topology.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/r5/zebra.conf (renamed from tests/topotests/isis-topo1-vrf/r5/zebra.conf) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/test_isis_topo1_vrf.dot (renamed from tests/topotests/isis-topo1-vrf/test_isis_topo1_vrf.dot) | 0 | ||||
| -rwxr-xr-x | tests/topotests/isis_topo1_vrf/test_isis_topo1_vrf.jpg (renamed from tests/topotests/isis-topo1-vrf/test_isis_topo1_vrf.jpg) | bin | 74340 -> 74340 bytes | |||
| -rw-r--r-- | tests/topotests/isis_topo1_vrf/test_isis_topo1_vrf.py (renamed from tests/topotests/isis-topo1-vrf/test_isis_topo1_vrf.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r1/ldpd.conf (renamed from tests/topotests/ldp-oc-acl-topo1/r1/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r1/ospfd.conf (renamed from tests/topotests/ldp-oc-acl-topo1/r1/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r1/show_ip_ospf_neighbor.json (renamed from tests/topotests/ldp-oc-acl-topo1/r1/show_ip_ospf_neighbor.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r1/show_ip_route.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r1/show_ldp_all_binding.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r1/show_ldp_all_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r1/show_ldp_binding.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r1/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r1/show_ldp_discovery.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r1/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r1/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r1/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r1/zebra.conf (renamed from tests/topotests/ldp-oc-acl-topo1/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r2/ldpd.conf (renamed from tests/topotests/ldp-oc-acl-topo1/r2/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r2/ospfd.conf (renamed from tests/topotests/ldp-oc-acl-topo1/r2/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r2/show_ip_ospf_neighbor.json (renamed from tests/topotests/ldp-oc-acl-topo1/r2/show_ip_ospf_neighbor.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r2/show_ip_route.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r2/show_ldp_all_binding.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r2/show_ldp_all_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r2/show_ldp_binding.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r2/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r2/show_ldp_discovery.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r2/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r2/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r2/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r2/zebra.conf (renamed from tests/topotests/ldp-oc-acl-topo1/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r3/ldpd.conf (renamed from tests/topotests/ldp-oc-acl-topo1/r3/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r3/ospfd.conf (renamed from tests/topotests/ldp-oc-acl-topo1/r3/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r3/show_ip_ospf_neighbor.json (renamed from tests/topotests/ldp-oc-acl-topo1/r3/show_ip_ospf_neighbor.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r3/show_ip_route.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r3/show_ldp_all_binding.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r3/show_ldp_all_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r3/show_ldp_binding.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r3/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r3/show_ldp_discovery.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r3/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r3/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r3/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r3/zebra.conf (renamed from tests/topotests/ldp-oc-acl-topo1/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r4/ldpd.conf (renamed from tests/topotests/ldp-oc-acl-topo1/r4/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r4/ospfd.conf (renamed from tests/topotests/ldp-oc-acl-topo1/r4/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r4/show_ip_ospf_neighbor.json (renamed from tests/topotests/ldp-oc-acl-topo1/r4/show_ip_ospf_neighbor.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r4/show_ip_route.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r4/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r4/show_ldp_all_binding.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r4/show_ldp_all_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r4/show_ldp_binding.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r4/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r4/show_ldp_discovery.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r4/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r4/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-oc-acl-topo1/r4/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/r4/zebra.conf (renamed from tests/topotests/ldp-oc-acl-topo1/r4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/test_ldp_oc_acl_topo1.dot (renamed from tests/topotests/ldp-oc-acl-topo1/test_ldp_oc_acl_topo1.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_acl_topo1/test_ldp_oc_acl_topo1.py (renamed from tests/topotests/ldp-oc-acl-topo1/test_ldp_oc_acl_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r1/ldpd.conf (renamed from tests/topotests/ldp-oc-topo1/r1/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r1/ospfd.conf (renamed from tests/topotests/ldp-oc-topo1/r1/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r1/show_ip_ospf_neighbor.json (renamed from tests/topotests/ldp-oc-topo1/r1/show_ip_ospf_neighbor.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r1/show_ip_route.ref (renamed from tests/topotests/ldp-oc-topo1/r1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r1/show_ldp_binding.ref (renamed from tests/topotests/ldp-oc-topo1/r1/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r1/show_ldp_discovery.ref (renamed from tests/topotests/ldp-oc-topo1/r1/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r1/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-oc-topo1/r1/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r1/zebra.conf (renamed from tests/topotests/ldp-oc-topo1/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r2/ldpd.conf (renamed from tests/topotests/ldp-oc-topo1/r2/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r2/ospfd.conf (renamed from tests/topotests/ldp-oc-topo1/r2/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r2/show_ip_ospf_neighbor.json (renamed from tests/topotests/ldp-oc-topo1/r2/show_ip_ospf_neighbor.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r2/show_ip_route.ref (renamed from tests/topotests/ldp-oc-topo1/r2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r2/show_ldp_binding.ref (renamed from tests/topotests/ldp-oc-topo1/r2/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r2/show_ldp_discovery.ref (renamed from tests/topotests/ldp-oc-topo1/r2/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r2/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-oc-topo1/r2/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r2/zebra.conf (renamed from tests/topotests/ldp-oc-topo1/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r3/ldpd.conf (renamed from tests/topotests/ldp-oc-topo1/r3/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r3/ospfd.conf (renamed from tests/topotests/ldp-oc-topo1/r3/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r3/show_ip_ospf_neighbor.json (renamed from tests/topotests/ldp-oc-topo1/r3/show_ip_ospf_neighbor.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r3/show_ip_route.ref (renamed from tests/topotests/ldp-oc-topo1/r3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r3/show_ldp_binding.ref (renamed from tests/topotests/ldp-oc-topo1/r3/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r3/show_ldp_discovery.ref (renamed from tests/topotests/ldp-oc-topo1/r3/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r3/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-oc-topo1/r3/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r3/zebra.conf (renamed from tests/topotests/ldp-oc-topo1/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r4/ldpd.conf (renamed from tests/topotests/ldp-oc-topo1/r4/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r4/ospfd.conf (renamed from tests/topotests/ldp-oc-topo1/r4/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r4/show_ip_ospf_neighbor.json (renamed from tests/topotests/ldp-oc-topo1/r4/show_ip_ospf_neighbor.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r4/show_ip_route.ref (renamed from tests/topotests/ldp-oc-topo1/r4/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r4/show_ldp_binding.ref (renamed from tests/topotests/ldp-oc-topo1/r4/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r4/show_ldp_discovery.ref (renamed from tests/topotests/ldp-oc-topo1/r4/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r4/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-oc-topo1/r4/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/r4/zebra.conf (renamed from tests/topotests/ldp-oc-topo1/r4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/test_ldp_oc_topo1.dot (renamed from tests/topotests/ldp-oc-topo1/test_ldp_oc_topo1.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_oc_topo1/test_ldp_oc_topo1.py (renamed from tests/topotests/ldp-oc-topo1/test_ldp_oc_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/ce1/zebra.conf (renamed from tests/topotests/ldp-snmp/ce1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/ce2/zebra.conf (renamed from tests/topotests/ldp-snmp/ce2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/ce3/zebra.conf (renamed from tests/topotests/ldp-snmp/ce3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r1/isisd.conf (renamed from tests/topotests/ldp-snmp/r1/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r1/ldpd.conf (renamed from tests/topotests/ldp-snmp/r1/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r1/show_ip_route.ref (renamed from tests/topotests/ldp-snmp/r1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r1/show_isis_interface_detail.ref (renamed from tests/topotests/ldp-snmp/r1/show_isis_interface_detail.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r1/show_isis_interface_detail_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-snmp/r1/show_isis_interface_detail_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r1/show_isis_interface_detail_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-snmp/r1/show_isis_interface_detail_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r1/show_isis_ldp_sync.ref (renamed from tests/topotests/ldp-snmp/r1/show_isis_ldp_sync.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r1/show_isis_ldp_sync_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-snmp/r1/show_isis_ldp_sync_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r1/show_isis_ldp_sync_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-snmp/r1/show_isis_ldp_sync_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r1/show_l2vpn_binding.ref (renamed from tests/topotests/ldp-snmp/r1/show_l2vpn_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r1/show_l2vpn_vc.ref (renamed from tests/topotests/ldp-snmp/r1/show_l2vpn_vc.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r1/show_ldp_binding.ref (renamed from tests/topotests/ldp-snmp/r1/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r1/show_ldp_discovery.ref (renamed from tests/topotests/ldp-snmp/r1/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r1/show_ldp_igp_sync.ref (renamed from tests/topotests/ldp-snmp/r1/show_ldp_igp_sync.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r1/show_ldp_igp_sync_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-snmp/r1/show_ldp_igp_sync_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r1/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-snmp/r1/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/ldp-snmp/r1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r1/snmpd.conf (renamed from tests/topotests/ldp-snmp/r1/snmpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r1/zebra.conf (renamed from tests/topotests/ldp-snmp/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/isisd.conf (renamed from tests/topotests/ldp-snmp/r2/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/ldpd.conf (renamed from tests/topotests/ldp-snmp/r2/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/ospfd.conf (renamed from tests/topotests/ldp-snmp/r2/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/show_ip_route.ref (renamed from tests/topotests/ldp-snmp/r2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/show_isis_interface_detail.ref (renamed from tests/topotests/ldp-snmp/r2/show_isis_interface_detail.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/show_isis_interface_detail_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-snmp/r2/show_isis_interface_detail_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/show_isis_interface_detail_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-snmp/r2/show_isis_interface_detail_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/show_isis_ldp_sync.ref (renamed from tests/topotests/ldp-snmp/r2/show_isis_ldp_sync.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/show_isis_ldp_sync_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-snmp/r2/show_isis_ldp_sync_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/show_isis_ldp_sync_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-snmp/r2/show_isis_ldp_sync_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/show_l2vpn_binding.ref (renamed from tests/topotests/ldp-snmp/r2/show_l2vpn_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/show_l2vpn_vc.ref (renamed from tests/topotests/ldp-snmp/r2/show_l2vpn_vc.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/show_ldp_binding.ref (renamed from tests/topotests/ldp-snmp/r2/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/show_ldp_discovery.ref (renamed from tests/topotests/ldp-snmp/r2/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/show_ldp_igp_sync.ref (renamed from tests/topotests/ldp-snmp/r2/show_ldp_igp_sync.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/show_ldp_igp_sync_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-snmp/r2/show_ldp_igp_sync_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/show_ldp_igp_sync_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-snmp/r2/show_ldp_igp_sync_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-snmp/r2/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/ldp-snmp/r2/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/snmpd.conf (renamed from tests/topotests/ldp-snmp/r2/snmpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r2/zebra.conf (renamed from tests/topotests/ldp-snmp/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r3/isisd.conf (renamed from tests/topotests/ldp-snmp/r3/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r3/ldpd.conf (renamed from tests/topotests/ldp-snmp/r3/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r3/show_ip_route.ref (renamed from tests/topotests/ldp-snmp/r3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r3/show_isis_interface_detail.ref (renamed from tests/topotests/ldp-snmp/r3/show_isis_interface_detail.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r3/show_isis_interface_detail_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-snmp/r3/show_isis_interface_detail_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r3/show_isis_interface_detail_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-snmp/r3/show_isis_interface_detail_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r3/show_isis_ldp_sync.ref (renamed from tests/topotests/ldp-snmp/r3/show_isis_ldp_sync.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r3/show_isis_ldp_sync_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-snmp/r3/show_isis_ldp_sync_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r3/show_isis_ldp_sync_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-snmp/r3/show_isis_ldp_sync_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r3/show_l2vpn_binding.ref (renamed from tests/topotests/ldp-snmp/r3/show_l2vpn_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r3/show_l2vpn_vc.ref (renamed from tests/topotests/ldp-snmp/r3/show_l2vpn_vc.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r3/show_ldp_binding.ref (renamed from tests/topotests/ldp-snmp/r3/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r3/show_ldp_discovery.ref (renamed from tests/topotests/ldp-snmp/r3/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r3/show_ldp_igp_sync.ref (renamed from tests/topotests/ldp-snmp/r3/show_ldp_igp_sync.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r3/show_ldp_igp_sync_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-snmp/r3/show_ldp_igp_sync_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r3/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-snmp/r3/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r3/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/ldp-snmp/r3/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/r3/zebra.conf (renamed from tests/topotests/ldp-snmp/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_snmp/test_ldp_snmp_topo1.py (renamed from tests/topotests/ldp-snmp/test_ldp_snmp_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/ce1/zebra.conf (renamed from tests/topotests/ldp-sync-isis-topo1/ce1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/ce2/zebra.conf (renamed from tests/topotests/ldp-sync-isis-topo1/ce2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/ce3/zebra.conf (renamed from tests/topotests/ldp-sync-isis-topo1/ce3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r1/isisd.conf (renamed from tests/topotests/ldp-sync-isis-topo1/r1/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r1/ldpd.conf (renamed from tests/topotests/ldp-sync-isis-topo1/r1/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r1/show_ip_route.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r1/show_isis_interface_detail.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r1/show_isis_interface_detail.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r1/show_isis_interface_detail_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r1/show_isis_interface_detail_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r1/show_isis_interface_detail_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r1/show_isis_interface_detail_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r1/show_isis_ldp_sync.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r1/show_isis_ldp_sync.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r1/show_isis_ldp_sync_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r1/show_isis_ldp_sync_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r1/show_isis_ldp_sync_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r1/show_isis_ldp_sync_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r1/show_l2vpn_binding.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r1/show_l2vpn_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r1/show_l2vpn_vc.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r1/show_l2vpn_vc.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r1/show_ldp_binding.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r1/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r1/show_ldp_discovery.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r1/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r1/show_ldp_igp_sync.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r1/show_ldp_igp_sync.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r1/show_ldp_igp_sync_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r1/show_ldp_igp_sync_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r1/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r1/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r1/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r1/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r1/zebra.conf (renamed from tests/topotests/ldp-sync-isis-topo1/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r2/isisd.conf (renamed from tests/topotests/ldp-sync-isis-topo1/r2/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r2/ldpd.conf (renamed from tests/topotests/ldp-sync-isis-topo1/r2/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r2/show_ip_route.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r2/show_isis_interface_detail.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r2/show_isis_interface_detail.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r2/show_isis_interface_detail_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r2/show_isis_interface_detail_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r2/show_isis_interface_detail_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r2/show_isis_interface_detail_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r2/show_isis_ldp_sync.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r2/show_isis_ldp_sync.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r2/show_isis_ldp_sync_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r2/show_isis_ldp_sync_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r2/show_isis_ldp_sync_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r2/show_isis_ldp_sync_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r2/show_l2vpn_binding.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r2/show_l2vpn_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r2/show_l2vpn_vc.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r2/show_l2vpn_vc.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r2/show_ldp_binding.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r2/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r2/show_ldp_discovery.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r2/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r2/show_ldp_igp_sync.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r2/show_ldp_igp_sync.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r2/show_ldp_igp_sync_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r2/show_ldp_igp_sync_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r2/show_ldp_igp_sync_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r2/show_ldp_igp_sync_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r2/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r2/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r2/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r2/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r2/zebra.conf (renamed from tests/topotests/ldp-sync-isis-topo1/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r3/isisd.conf (renamed from tests/topotests/ldp-sync-isis-topo1/r3/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r3/ldpd.conf (renamed from tests/topotests/ldp-sync-isis-topo1/r3/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r3/show_ip_route.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r3/show_isis_interface_detail.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r3/show_isis_interface_detail.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r3/show_isis_interface_detail_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r3/show_isis_interface_detail_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r3/show_isis_interface_detail_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r3/show_isis_interface_detail_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r3/show_isis_ldp_sync.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r3/show_isis_ldp_sync.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r3/show_isis_ldp_sync_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r3/show_isis_ldp_sync_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r3/show_isis_ldp_sync_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r3/show_isis_ldp_sync_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r3/show_l2vpn_binding.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r3/show_l2vpn_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r3/show_l2vpn_vc.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r3/show_l2vpn_vc.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r3/show_ldp_binding.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r3/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r3/show_ldp_discovery.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r3/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r3/show_ldp_igp_sync.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r3/show_ldp_igp_sync.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r3/show_ldp_igp_sync_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r3/show_ldp_igp_sync_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r3/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r3/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r3/show_yang_interface_isis_adjacencies.ref (renamed from tests/topotests/ldp-sync-isis-topo1/r3/show_yang_interface_isis_adjacencies.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/r3/zebra.conf (renamed from tests/topotests/ldp-sync-isis-topo1/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/test_ldp_sync_isis_topo1.dot (renamed from tests/topotests/ldp-sync-isis-topo1/test_ldp_sync_isis_topo1.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_isis_topo1/test_ldp_sync_isis_topo1.py (renamed from tests/topotests/ldp-sync-isis-topo1/test_ldp_sync_isis_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/ce1/zebra.conf (renamed from tests/topotests/ldp-sync-ospf-topo1/ce1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/ce2/zebra.conf (renamed from tests/topotests/ldp-sync-ospf-topo1/ce2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/ce3/zebra.conf (renamed from tests/topotests/ldp-sync-ospf-topo1/ce3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r1/ldpd.conf (renamed from tests/topotests/ldp-sync-ospf-topo1/r1/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r1/ospf-nbrs.txt (renamed from tests/topotests/ldp-sync-ospf-topo1/r1/ospf-nbrs.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r1/ospfd.conf (renamed from tests/topotests/ldp-sync-ospf-topo1/r1/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r1/show_ip_ospf_interface.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r1/show_ip_ospf_interface.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r1/show_ip_ospf_interface_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r1/show_ip_ospf_interface_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r1/show_ip_ospf_interface_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r1/show_ip_ospf_interface_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r1/show_ip_ospf_neighbor.json (renamed from tests/topotests/ldp-sync-ospf-topo1/r1/show_ip_ospf_neighbor.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r1/show_ip_route.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r1/show_l2vpn_binding.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r1/show_l2vpn_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r1/show_l2vpn_vc.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r1/show_l2vpn_vc.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r1/show_ldp_binding.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r1/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r1/show_ldp_discovery.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r1/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r1/show_ldp_igp_sync.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r1/show_ldp_igp_sync.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r1/show_ldp_igp_sync_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r1/show_ldp_igp_sync_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r1/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r1/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r1/show_ospf_ldp_sync.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r1/show_ospf_ldp_sync.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r1/show_ospf_ldp_sync_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r1/show_ospf_ldp_sync_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r1/show_ospf_ldp_sync_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r1/show_ospf_ldp_sync_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r1/zebra.conf (renamed from tests/topotests/ldp-sync-ospf-topo1/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r2/ldpd.conf (renamed from tests/topotests/ldp-sync-ospf-topo1/r2/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r2/ospfd.conf (renamed from tests/topotests/ldp-sync-ospf-topo1/r2/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r2/show_ip_ospf_interface.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r2/show_ip_ospf_interface.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r2/show_ip_ospf_interface_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r2/show_ip_ospf_interface_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r2/show_ip_ospf_interface_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r2/show_ip_ospf_interface_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r2/show_ip_ospf_neighbor.json (renamed from tests/topotests/ldp-sync-ospf-topo1/r2/show_ip_ospf_neighbor.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r2/show_ip_route.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r2/show_l2vpn_binding.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r2/show_l2vpn_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r2/show_l2vpn_vc.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r2/show_l2vpn_vc.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r2/show_ldp_binding.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r2/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r2/show_ldp_discovery.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r2/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r2/show_ldp_igp_sync.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r2/show_ldp_igp_sync.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r2/show_ldp_igp_sync_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r2/show_ldp_igp_sync_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r2/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r2/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r2/show_ospf_ldp_sync.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r2/show_ospf_ldp_sync.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r2/show_ospf_ldp_sync_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r2/show_ospf_ldp_sync_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r2/show_ospf_ldp_sync_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r2/show_ospf_ldp_sync_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r2/zebra.conf (renamed from tests/topotests/ldp-sync-ospf-topo1/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r3/ldpd.conf (renamed from tests/topotests/ldp-sync-ospf-topo1/r3/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r3/ospfd.conf (renamed from tests/topotests/ldp-sync-ospf-topo1/r3/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r3/show_ip_ospf_interface.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r3/show_ip_ospf_interface.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r3/show_ip_ospf_interface_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r3/show_ip_ospf_interface_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r3/show_ip_ospf_interface_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r3/show_ip_ospf_interface_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r3/show_ip_ospf_neighbor.json (renamed from tests/topotests/ldp-sync-ospf-topo1/r3/show_ip_ospf_neighbor.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r3/show_ip_route.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r3/show_l2vpn_binding.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r3/show_l2vpn_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r3/show_l2vpn_vc.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r3/show_l2vpn_vc.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r3/show_ldp_binding.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r3/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r3/show_ldp_discovery.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r3/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r3/show_ldp_igp_sync.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r3/show_ldp_igp_sync.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r3/show_ldp_igp_sync_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r3/show_ldp_igp_sync_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r3/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r3/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r3/show_ospf_ldp_sync.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r3/show_ospf_ldp_sync.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r3/show_ospf_ldp_sync_r1_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r3/show_ospf_ldp_sync_r1_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r3/show_ospf_ldp_sync_r2_eth1_shutdown.ref (renamed from tests/topotests/ldp-sync-ospf-topo1/r3/show_ospf_ldp_sync_r2_eth1_shutdown.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/r3/zebra.conf (renamed from tests/topotests/ldp-sync-ospf-topo1/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/test_ldp_sync_ospf_topo1.dot (renamed from tests/topotests/ldp-sync-ospf-topo1/test_ldp_sync_ospf_topo1.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_sync_ospf_topo1/test_ldp_sync_ospf_topo1.py (renamed from tests/topotests/ldp-sync-ospf-topo1/test_ldp_sync_ospf_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r1/ip_mpls_route.ref (renamed from tests/topotests/ldp-topo1/r1/ip_mpls_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r1/ldpd.conf (renamed from tests/topotests/ldp-topo1/r1/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r1/ospfd.conf (renamed from tests/topotests/ldp-topo1/r1/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r1/show_ipv4_route.ref (renamed from tests/topotests/ldp-topo1/r1/show_ipv4_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r1/show_mpls_ldp_binding.ref (renamed from tests/topotests/ldp-topo1/r1/show_mpls_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r1/show_mpls_ldp_discovery.ref (renamed from tests/topotests/ldp-topo1/r1/show_mpls_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r1/show_mpls_ldp_interface.ref (renamed from tests/topotests/ldp-topo1/r1/show_mpls_ldp_interface.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r1/show_mpls_ldp_neighbor.ref (renamed from tests/topotests/ldp-topo1/r1/show_mpls_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r1/show_mpls_table.ref (renamed from tests/topotests/ldp-topo1/r1/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r1/zebra.conf (renamed from tests/topotests/ldp-topo1/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r2/ip_mpls_route.ref (renamed from tests/topotests/ldp-topo1/r2/ip_mpls_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r2/ldpd.conf (renamed from tests/topotests/ldp-topo1/r2/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r2/ospfd.conf (renamed from tests/topotests/ldp-topo1/r2/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r2/show_ipv4_route.ref (renamed from tests/topotests/ldp-topo1/r2/show_ipv4_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r2/show_mpls_ldp_binding.ref (renamed from tests/topotests/ldp-topo1/r2/show_mpls_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r2/show_mpls_ldp_discovery.ref (renamed from tests/topotests/ldp-topo1/r2/show_mpls_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r2/show_mpls_ldp_interface.ref (renamed from tests/topotests/ldp-topo1/r2/show_mpls_ldp_interface.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r2/show_mpls_ldp_neighbor.ref (renamed from tests/topotests/ldp-topo1/r2/show_mpls_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r2/show_mpls_table.ref (renamed from tests/topotests/ldp-topo1/r2/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r2/zebra.conf (renamed from tests/topotests/ldp-topo1/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r3/ip_mpls_route.ref (renamed from tests/topotests/ldp-topo1/r3/ip_mpls_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r3/ldpd.conf (renamed from tests/topotests/ldp-topo1/r3/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r3/ospfd.conf (renamed from tests/topotests/ldp-topo1/r3/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r3/show_ipv4_route.ref (renamed from tests/topotests/ldp-topo1/r3/show_ipv4_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r3/show_mpls_ldp_binding.ref (renamed from tests/topotests/ldp-topo1/r3/show_mpls_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r3/show_mpls_ldp_discovery.ref (renamed from tests/topotests/ldp-topo1/r3/show_mpls_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r3/show_mpls_ldp_interface.ref (renamed from tests/topotests/ldp-topo1/r3/show_mpls_ldp_interface.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r3/show_mpls_ldp_neighbor.ref (renamed from tests/topotests/ldp-topo1/r3/show_mpls_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r3/show_mpls_table.ref (renamed from tests/topotests/ldp-topo1/r3/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r3/zebra.conf (renamed from tests/topotests/ldp-topo1/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r4/ip_mpls_route.ref (renamed from tests/topotests/ldp-topo1/r4/ip_mpls_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r4/ldpd.conf (renamed from tests/topotests/ldp-topo1/r4/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r4/ospfd.conf (renamed from tests/topotests/ldp-topo1/r4/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r4/show_ipv4_route.ref (renamed from tests/topotests/ldp-topo1/r4/show_ipv4_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r4/show_mpls_ldp_binding.ref (renamed from tests/topotests/ldp-topo1/r4/show_mpls_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r4/show_mpls_ldp_discovery.ref (renamed from tests/topotests/ldp-topo1/r4/show_mpls_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r4/show_mpls_ldp_interface.ref (renamed from tests/topotests/ldp-topo1/r4/show_mpls_ldp_interface.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r4/show_mpls_ldp_neighbor.ref (renamed from tests/topotests/ldp-topo1/r4/show_mpls_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r4/show_mpls_table.ref (renamed from tests/topotests/ldp-topo1/r4/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/r4/zebra.conf (renamed from tests/topotests/ldp-topo1/r4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_topo1/test_ldp_topo1.py (renamed from tests/topotests/ldp-topo1/test_ldp_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/__init__.py (renamed from tests/topotests/ldp-vpls-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/ce1/zebra.conf (renamed from tests/topotests/ldp-vpls-topo1/ce1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/ce2/zebra.conf (renamed from tests/topotests/ldp-vpls-topo1/ce2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/ce3/zebra.conf (renamed from tests/topotests/ldp-vpls-topo1/ce3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r1/ldpd.conf (renamed from tests/topotests/ldp-vpls-topo1/r1/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r1/ospf-nbrs.txt (renamed from tests/topotests/ldp-vpls-topo1/r1/ospf-nbrs.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r1/ospfd.conf (renamed from tests/topotests/ldp-vpls-topo1/r1/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r1/show_ip_ospf_neighbor.json (renamed from tests/topotests/ldp-vpls-topo1/r1/show_ip_ospf_neighbor.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r1/show_ip_route.ref (renamed from tests/topotests/ldp-vpls-topo1/r1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r1/show_l2vpn_binding.ref (renamed from tests/topotests/ldp-vpls-topo1/r1/show_l2vpn_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r1/show_l2vpn_vc.ref (renamed from tests/topotests/ldp-vpls-topo1/r1/show_l2vpn_vc.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r1/show_ldp_binding.ref (renamed from tests/topotests/ldp-vpls-topo1/r1/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r1/show_ldp_discovery.ref (renamed from tests/topotests/ldp-vpls-topo1/r1/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r1/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-vpls-topo1/r1/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r1/zebra.conf (renamed from tests/topotests/ldp-vpls-topo1/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r2/ldpd.conf (renamed from tests/topotests/ldp-vpls-topo1/r2/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r2/ospfd.conf (renamed from tests/topotests/ldp-vpls-topo1/r2/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r2/show_ip_ospf_neighbor.json (renamed from tests/topotests/ldp-vpls-topo1/r2/show_ip_ospf_neighbor.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r2/show_ip_route.ref (renamed from tests/topotests/ldp-vpls-topo1/r2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r2/show_l2vpn_binding.ref (renamed from tests/topotests/ldp-vpls-topo1/r2/show_l2vpn_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r2/show_l2vpn_vc.ref (renamed from tests/topotests/ldp-vpls-topo1/r2/show_l2vpn_vc.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r2/show_ldp_binding.ref (renamed from tests/topotests/ldp-vpls-topo1/r2/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r2/show_ldp_discovery.ref (renamed from tests/topotests/ldp-vpls-topo1/r2/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r2/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-vpls-topo1/r2/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r2/zebra.conf (renamed from tests/topotests/ldp-vpls-topo1/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r3/ldpd.conf (renamed from tests/topotests/ldp-vpls-topo1/r3/ldpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r3/ospfd.conf (renamed from tests/topotests/ldp-vpls-topo1/r3/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r3/show_ip_ospf_neighbor.json (renamed from tests/topotests/ldp-vpls-topo1/r3/show_ip_ospf_neighbor.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r3/show_ip_route.ref (renamed from tests/topotests/ldp-vpls-topo1/r3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r3/show_l2vpn_binding.ref (renamed from tests/topotests/ldp-vpls-topo1/r3/show_l2vpn_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r3/show_l2vpn_vc.ref (renamed from tests/topotests/ldp-vpls-topo1/r3/show_l2vpn_vc.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r3/show_ldp_binding.ref (renamed from tests/topotests/ldp-vpls-topo1/r3/show_ldp_binding.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r3/show_ldp_discovery.ref (renamed from tests/topotests/ldp-vpls-topo1/r3/show_ldp_discovery.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r3/show_ldp_neighbor.ref (renamed from tests/topotests/ldp-vpls-topo1/r3/show_ldp_neighbor.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/r3/zebra.conf (renamed from tests/topotests/ldp-vpls-topo1/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/test_ldp_vpls_topo1.dot (renamed from tests/topotests/ldp-vpls-topo1/test_ldp_vpls_topo1.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/test_ldp_vpls_topo1.pdf (renamed from tests/topotests/ldp-vpls-topo1/test_ldp_vpls_topo1.pdf) | bin | 16693 -> 16693 bytes | |||
| -rw-r--r-- | tests/topotests/ldp_vpls_topo1/test_ldp_vpls_topo1.py (renamed from tests/topotests/ldp-vpls-topo1/test_ldp_vpls_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/multicast_pim_bsm_topo1/mcast_pim_bsmp_01.json (renamed from tests/topotests/multicast-pim-bsm-topo1/mcast_pim_bsmp_01.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/multicast_pim_bsm_topo1/test_mcast_pim_bsmp_01.py (renamed from tests/topotests/multicast-pim-bsm-topo1/test_mcast_pim_bsmp_01.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/multicast_pim_bsm_topo2/mcast_pim_bsmp_02.json (renamed from tests/topotests/multicast-pim-bsm-topo2/mcast_pim_bsmp_02.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/multicast_pim_bsm_topo2/test_mcast_pim_bsmp_02.py (renamed from tests/topotests/multicast-pim-bsm-topo2/test_mcast_pim_bsmp_02.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/multicast_pim_sm_topo1/multicast_pim_sm_topo1.json (renamed from tests/topotests/multicast-pim-sm-topo1/multicast_pim_sm_topo1.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/multicast_pim_sm_topo1/test_multicast_pim_sm_topo1.py (renamed from tests/topotests/multicast-pim-sm-topo1/test_multicast_pim_sm_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/multicast_pim_sm_topo2/multicast_pim_sm_topo2.json (renamed from tests/topotests/multicast-pim-sm-topo2/multicast_pim_sm_topo2.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/multicast_pim_sm_topo2/test_multicast_pim_sm_topo2.py (renamed from tests/topotests/multicast-pim-sm-topo2/test_multicast_pim_sm_topo2.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/multicast_pim_sm_topo3/multicast_pim_sm_topo3.json (renamed from tests/topotests/multicast-pim-sm-topo3/multicast_pim_sm_topo3.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/multicast_pim_sm_topo3/multicast_pim_sm_topo4.json (renamed from tests/topotests/multicast-pim-sm-topo3/multicast_pim_sm_topo4.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/multicast_pim_sm_topo3/test_multicast_pim_sm_topo3.py (renamed from tests/topotests/multicast-pim-sm-topo3/test_multicast_pim_sm_topo3.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/multicast_pim_sm_topo3/test_multicast_pim_sm_topo4.py (renamed from tests/topotests/multicast-pim-sm-topo3/test_multicast_pim_sm_topo4.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/multicast_pim_static_rp_topo1/__init__.py (renamed from tests/topotests/multicast-pim-static-rp-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/multicast_pim_static_rp_topo1/multicast_pim_static_rp.json (renamed from tests/topotests/multicast-pim-static-rp-topo1/multicast_pim_static_rp.json) | 0 | ||||
| -rwxr-xr-x | tests/topotests/multicast_pim_static_rp_topo1/test_multicast_pim_static_rp.py (renamed from tests/topotests/multicast-pim-static-rp-topo1/test_multicast_pim_static_rp.py) | 430 | ||||
| -rw-r--r-- | tests/topotests/nhrp_topo/r1/nhrp4_cache.json (renamed from tests/topotests/nhrp-topo/r1/nhrp4_cache.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/nhrp_topo/r1/nhrp_route4.json (renamed from tests/topotests/nhrp-topo/r1/nhrp_route4.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/nhrp_topo/r1/nhrpd.conf (renamed from tests/topotests/nhrp-topo/r1/nhrpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/nhrp_topo/r1/zebra.conf (renamed from tests/topotests/nhrp-topo/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/nhrp_topo/r2/nhrp4_cache.json (renamed from tests/topotests/nhrp-topo/r2/nhrp4_cache.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/nhrp_topo/r2/nhrp_route4.json (renamed from tests/topotests/nhrp-topo/r2/nhrp_route4.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/nhrp_topo/r2/nhrpd.conf (renamed from tests/topotests/nhrp-topo/r2/nhrpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/nhrp_topo/r2/zebra.conf (renamed from tests/topotests/nhrp-topo/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/nhrp_topo/r3/zebra.conf (renamed from tests/topotests/nhrp-topo/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/nhrp_topo/test_nhrp_topo.dot (renamed from tests/topotests/nhrp-topo/test_nhrp_topo.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/nhrp_topo/test_nhrp_topo.py (renamed from tests/topotests/nhrp-topo/test_nhrp_topo.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/dst/zebra.conf | 23 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt1/bgpd.conf | 16 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt1/ospfd.conf | 36 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt1/pathd.conf | 27 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt1/step2/show_operational_data.ref | 13 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt1/step2/show_operational_data_with_candidate.ref | 20 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt1/step3/show_operational_data_with_single_candidate.ref | 20 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt1/step3/show_operational_data_with_two_candidates.ref | 25 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt1/zebra.conf | 21 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt2/ospfd.conf | 47 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt2/zebra.conf | 35 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt3/ospfd.conf | 46 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt3/zebra.conf | 33 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt4/ospfd.conf | 53 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt4/zebra.conf | 43 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt5/ospfd.conf | 53 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt5/zebra.conf | 43 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt6/bgpd.conf | 12 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt6/ospfd.conf | 41 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt6/pathd.conf | 25 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt6/step2/show_operational_data.ref | 13 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt6/step2/show_operational_data_with_candidate.ref | 19 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt6/step3/show_operational_data_with_single_candidate.ref | 19 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt6/step3/show_operational_data_with_two_candidates.ref | 23 | ||||
| -rw-r--r-- | tests/topotests/ospf-sr-te-topo1/rt6/zebra.conf | 38 | ||||
| -rwxr-xr-x | tests/topotests/ospf-sr-te-topo1/test_ospf_sr_te_topo1.py | 640 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/README.md (renamed from tests/topotests/ospf6-topo1/README.md) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r1/ip_6_address.nhg.ref (renamed from tests/topotests/ospf6-topo1-vrf/r1/ip_6_address.nhg.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r1/ip_6_address.ref (renamed from tests/topotests/ospf6-topo1/r1/ip_6_address.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r1/ospf6d.conf (renamed from tests/topotests/ospf6-topo1/r1/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r1/show_ipv6_route.ref (renamed from tests/topotests/ospf6-topo1/r1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r1/zebra.conf (renamed from tests/topotests/ospf6-topo1/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r2/ip_6_address.nhg.ref (renamed from tests/topotests/ospf6-topo1/r2/ip_6_address.nhg.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r2/ip_6_address.ref (renamed from tests/topotests/ospf6-topo1/r2/ip_6_address.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r2/ospf6d.conf (renamed from tests/topotests/ospf6-topo1/r2/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r2/show_ipv6_route.ref (renamed from tests/topotests/ospf6-topo1/r2/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r2/zebra.conf (renamed from tests/topotests/ospf6-topo1/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r3/ip_6_address.nhg.ref (renamed from tests/topotests/ospf6-topo1/r3/ip_6_address.nhg.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r3/ip_6_address.ref (renamed from tests/topotests/ospf6-topo1/r3/ip_6_address.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r3/ospf6d.conf (renamed from tests/topotests/ospf6-topo1/r3/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r3/show_ipv6_route.ref (renamed from tests/topotests/ospf6-topo1/r3/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r3/zebra.conf (renamed from tests/topotests/ospf6-topo1/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r4/ip_6_address.nhg.ref (renamed from tests/topotests/ospf6-topo1/r4/ip_6_address.nhg.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r4/ip_6_address.ref (renamed from tests/topotests/ospf6-topo1/r4/ip_6_address.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r4/ospf6d.conf (renamed from tests/topotests/ospf6-topo1/r4/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r4/show_ipv6_route.ref (renamed from tests/topotests/ospf6-topo1/r4/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/r4/zebra.conf (renamed from tests/topotests/ospf6-topo1/r4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1/test_ospf6_topo1.py (renamed from tests/topotests/ospf6-topo1/test_ospf6_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1_vrf/README.md (renamed from tests/topotests/ospf6-topo1-vrf/README.md) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1_vrf/r1/ip_6_address.nhg.ref (renamed from tests/topotests/ospf6-topo1/r1/ip_6_address.nhg.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1_vrf/r1/ip_6_address.ref (renamed from tests/topotests/ospf6-topo1-vrf/r1/ip_6_address.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1_vrf/r1/ospf6d.conf (renamed from tests/topotests/ospf6-topo1-vrf/r1/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1_vrf/r1/show_ipv6_vrf_route.ref (renamed from tests/topotests/ospf6-topo1-vrf/r1/show_ipv6_vrf_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1_vrf/r1/zebra.conf (renamed from tests/topotests/ospf6-topo1-vrf/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1_vrf/r2/ip_6_address.ref (renamed from tests/topotests/ospf6-topo1-vrf/r2/ip_6_address.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1_vrf/r2/ospf6d.conf (renamed from tests/topotests/ospf6-topo1-vrf/r2/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1_vrf/r2/show_ipv6_vrf_route.ref (renamed from tests/topotests/ospf6-topo1-vrf/r2/show_ipv6_vrf_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1_vrf/r2/zebra.conf (renamed from tests/topotests/ospf6-topo1-vrf/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1_vrf/r3/ip_6_address.ref (renamed from tests/topotests/ospf6-topo1-vrf/r3/ip_6_address.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1_vrf/r3/ospf6d.conf (renamed from tests/topotests/ospf6-topo1-vrf/r3/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1_vrf/r3/show_ipv6_vrf_route.ref (renamed from tests/topotests/ospf6-topo1-vrf/r3/show_ipv6_vrf_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1_vrf/r3/zebra.conf (renamed from tests/topotests/ospf6-topo1-vrf/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1_vrf/r4/ip_6_address.ref (renamed from tests/topotests/ospf6-topo1-vrf/r4/ip_6_address.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1_vrf/r4/ospf6d.conf (renamed from tests/topotests/ospf6-topo1-vrf/r4/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1_vrf/r4/show_ipv6_vrf_route.ref (renamed from tests/topotests/ospf6-topo1-vrf/r4/show_ipv6_vrf_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo1_vrf/r4/zebra.conf (renamed from tests/topotests/ospf6-topo1-vrf/r4/zebra.conf) | 0 | ||||
| -rwxr-xr-x | tests/topotests/ospf6_topo1_vrf/test_ospf6_topo1_vrf.py (renamed from tests/topotests/ospf6-topo1-vrf/test_ospf6_topo1_vrf.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo2/r1/ospf6d.conf (renamed from tests/topotests/ospf6-topo2/r1/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo2/r1/zebra.conf (renamed from tests/topotests/ospf6-topo2/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo2/r2/ospf6d.conf (renamed from tests/topotests/ospf6-topo2/r2/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo2/r2/zebra.conf (renamed from tests/topotests/ospf6-topo2/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo2/r3/ospf6d.conf (renamed from tests/topotests/ospf6-topo2/r3/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo2/r3/zebra.conf (renamed from tests/topotests/ospf6-topo2/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo2/test_ospf6_topo2.dot (renamed from tests/topotests/ospf6-topo2/test_ospf6_topo2.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf6_topo2/test_ospf6_topo2.png (renamed from tests/topotests/ospf6-topo2/test_ospf6_topo2.png) | bin | 31523 -> 31523 bytes | |||
| -rw-r--r-- | tests/topotests/ospf6_topo2/test_ospf6_topo2.py (renamed from tests/topotests/ospf6-topo2/test_ospf6_topo2.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_dual_stack/test_ospf_dual_stack.dot (renamed from tests/topotests/ospf-dual-stack/test_ospf_dual_stack.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_dual_stack/test_ospf_dual_stack.jpg (renamed from tests/topotests/ospf-dual-stack/test_ospf_dual_stack.jpg) | bin | 98314 -> 98314 bytes | |||
| -rw-r--r-- | tests/topotests/ospf_dual_stack/test_ospf_dual_stack.json (renamed from tests/topotests/ospf-dual-stack/test_ospf_dual_stack.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_dual_stack/test_ospf_dual_stack.py (renamed from tests/topotests/ospf-dual-stack/test_ospf_dual_stack.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/__init__.py (renamed from tests/topotests/ospf-sr-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/ospfd.conf (renamed from tests/topotests/ospf-sr-topo1/rt1/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step1/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step1/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step1/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step10/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step10/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step10/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step10/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step2/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step2/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step2/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step3/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step3/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step3/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step4/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step4/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step4/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step4/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step5/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step5/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step5/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step5/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step6/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step6/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step6/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step6/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step7/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step7/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step7/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step7/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step8/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step8/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step8/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step8/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step9/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step9/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/step9/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt1/step9/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt1/zebra.conf (renamed from tests/topotests/ospf-sr-topo1/rt1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/ospfd.conf (renamed from tests/topotests/ospf-sr-topo1/rt2/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step1/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step1/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step1/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step10/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step10/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step10/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step10/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step2/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step2/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step2/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step3/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step3/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step3/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step4/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step4/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step4/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step4/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step5/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step5/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step5/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step5/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step6/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step6/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step6/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step6/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step7/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step7/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step7/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step7/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step8/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step8/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step8/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step8/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step9/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step9/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/step9/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt2/step9/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt2/zebra.conf (renamed from tests/topotests/ospf-sr-topo1/rt2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/ospfd.conf (renamed from tests/topotests/ospf-sr-topo1/rt3/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step1/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step1/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step1/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step10/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step10/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step10/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step10/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step2/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step2/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step2/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step3/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step3/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step3/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step4/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step4/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step4/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step4/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step5/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step5/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step5/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step5/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step6/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step6/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step6/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step6/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step7/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step7/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step7/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step7/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step8/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step8/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step8/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step8/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step9/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step9/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/step9/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt3/step9/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt3/zebra.conf (renamed from tests/topotests/ospf-sr-topo1/rt3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/ospfd.conf (renamed from tests/topotests/ospf-sr-topo1/rt4/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step1/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step1/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step1/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step10/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step10/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step10/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step10/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step2/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step2/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step2/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step3/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step3/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step3/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step4/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step4/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step4/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step4/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step5/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step5/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step5/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step5/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step6/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step6/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step6/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step6/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step7/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step7/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step7/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step7/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step8/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step8/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step8/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step8/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step9/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step9/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/step9/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt4/step9/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt4/zebra.conf (renamed from tests/topotests/ospf-sr-topo1/rt4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/ospfd.conf (renamed from tests/topotests/ospf-sr-topo1/rt5/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step1/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step1/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step1/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step10/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step10/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step10/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step10/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step2/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step2/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step2/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step3/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step3/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step3/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step4/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step4/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step4/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step4/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step5/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step5/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step5/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step5/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step6/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step6/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step6/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step6/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step7/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step7/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step7/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step7/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step8/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step8/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step8/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step8/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step9/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step9/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/step9/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt5/step9/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt5/zebra.conf (renamed from tests/topotests/ospf-sr-topo1/rt5/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/ospfd.conf (renamed from tests/topotests/ospf-sr-topo1/rt6/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step1/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step1/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step1/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step10/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step10/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step10/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step10/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step2/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step2/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step2/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step3/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step3/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step3/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step4/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step4/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step4/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step4/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step5/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step5/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step5/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step5/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step6/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step6/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step6/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step6/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step7/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step7/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step7/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step7/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step8/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step8/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step8/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step8/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step9/show_ip_route.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step9/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/step9/show_mpls_table.ref (renamed from tests/topotests/ospf-sr-topo1/rt6/step9/show_mpls_table.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/rt6/zebra.conf (renamed from tests/topotests/ospf-sr-topo1/rt6/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_sr_topo1/test_ospf_sr_topo1.py (renamed from tests/topotests/ospf-sr-topo1/test_ospf_sr_topo1.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/ospf_te_topo1/__init__.py (renamed from tests/topotests/ospf-te-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_te_topo1/r1/ospfd.conf (renamed from tests/topotests/ospf-te-topo1/r1/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_te_topo1/r1/zebra.conf (renamed from tests/topotests/ospf-te-topo1/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_te_topo1/r2/ospfd.conf (renamed from tests/topotests/ospf-te-topo1/r2/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_te_topo1/r2/zebra.conf (renamed from tests/topotests/ospf-te-topo1/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_te_topo1/r3/ospfd.conf (renamed from tests/topotests/ospf-te-topo1/r3/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_te_topo1/r3/zebra.conf (renamed from tests/topotests/ospf-te-topo1/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_te_topo1/r4/ospfd.conf (renamed from tests/topotests/ospf-te-topo1/r4/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_te_topo1/r4/zebra.conf (renamed from tests/topotests/ospf-te-topo1/r4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_te_topo1/reference/ted_step1.json (renamed from tests/topotests/ospf-te-topo1/reference/ted_step1.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_te_topo1/reference/ted_step2.json (renamed from tests/topotests/ospf-te-topo1/reference/ted_step2.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_te_topo1/reference/ted_step3.json (renamed from tests/topotests/ospf-te-topo1/reference/ted_step3.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_te_topo1/reference/ted_step4.json (renamed from tests/topotests/ospf-te-topo1/reference/ted_step4.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_te_topo1/reference/ted_step5.json (renamed from tests/topotests/ospf-te-topo1/reference/ted_step5.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_te_topo1/reference/ted_step6.json (renamed from tests/topotests/ospf-te-topo1/reference/ted_step6.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_te_topo1/reference/ted_step7.json (renamed from tests/topotests/ospf-te-topo1/reference/ted_step7.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_te_topo1/test_ospf_te_topo1.py (renamed from tests/topotests/ospf-te-topo1/test_ospf_te_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_tilfa_topo1/__init__.py (renamed from tests/topotests/ospf-tilfa-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_tilfa_topo1/rt1/ospfd.conf (renamed from tests/topotests/ospf-tilfa-topo1/rt1/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_tilfa_topo1/rt1/step1/show_ip_route_initial.ref (renamed from tests/topotests/ospf-tilfa-topo1/rt1/step1/show_ip_route_initial.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_tilfa_topo1/rt1/step2/show_ip_route_initial.ref (renamed from tests/topotests/ospf-tilfa-topo1/rt1/step2/show_ip_route_initial.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_tilfa_topo1/rt1/step2/show_ip_route_link_protection.ref (renamed from tests/topotests/ospf-tilfa-topo1/rt1/step2/show_ip_route_link_protection.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_tilfa_topo1/rt1/step3/show_ip_route_initial.ref (renamed from tests/topotests/ospf-tilfa-topo1/rt1/step3/show_ip_route_initial.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_tilfa_topo1/rt1/step3/show_ip_route_node_protection.ref (renamed from tests/topotests/ospf-tilfa-topo1/rt1/step3/show_ip_route_node_protection.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_tilfa_topo1/rt1/zebra.conf (renamed from tests/topotests/ospf-tilfa-topo1/rt1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_tilfa_topo1/rt2/ospfd.conf (renamed from tests/topotests/ospf-tilfa-topo1/rt2/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_tilfa_topo1/rt2/zebra.conf (renamed from tests/topotests/ospf-tilfa-topo1/rt2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_tilfa_topo1/rt3/ospfd.conf (renamed from tests/topotests/ospf-tilfa-topo1/rt3/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_tilfa_topo1/rt3/zebra.conf (renamed from tests/topotests/ospf-tilfa-topo1/rt3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_tilfa_topo1/rt4/ospfd.conf (renamed from tests/topotests/ospf-tilfa-topo1/rt4/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_tilfa_topo1/rt4/zebra.conf (renamed from tests/topotests/ospf-tilfa-topo1/rt4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_tilfa_topo1/rt5/ospfd.conf (renamed from tests/topotests/ospf-tilfa-topo1/rt5/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_tilfa_topo1/rt5/zebra.conf (renamed from tests/topotests/ospf-tilfa-topo1/rt5/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_tilfa_topo1/test_ospf_tilfa_topo1.py (renamed from tests/topotests/ospf-tilfa-topo1/test_ospf_tilfa_topo1.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/ospf_topo1/__init__.py (renamed from tests/topotests/ospf-topo1-vrf/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r1/ospf6d.conf (renamed from tests/topotests/ospf-topo1/r1/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r1/ospf6route.txt (renamed from tests/topotests/ospf-topo1/r1/ospf6route.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r1/ospf6route_down.txt (renamed from tests/topotests/ospf-topo1/r1/ospf6route_down.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r1/ospf6route_ecmp.txt (renamed from tests/topotests/ospf-topo1/r1/ospf6route_ecmp.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r1/ospfd.conf (renamed from tests/topotests/ospf-topo1/r1/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r1/ospfroute.txt (renamed from tests/topotests/ospf-topo1/r1/ospfroute.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r1/ospfroute_down.txt (renamed from tests/topotests/ospf-topo1/r1/ospfroute_down.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r1/zebra.conf (renamed from tests/topotests/ospf-topo1/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r2/ospf6d.conf (renamed from tests/topotests/ospf-topo1/r2/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r2/ospf6route.txt (renamed from tests/topotests/ospf-topo1/r2/ospf6route.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r2/ospf6route_down.txt (renamed from tests/topotests/ospf-topo1/r2/ospf6route_down.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r2/ospf6route_ecmp.txt (renamed from tests/topotests/ospf-topo1/r2/ospf6route_ecmp.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r2/ospfd.conf (renamed from tests/topotests/ospf-topo1/r2/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r2/ospfroute.txt (renamed from tests/topotests/ospf-topo1/r2/ospfroute.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r2/ospfroute_down.txt (renamed from tests/topotests/ospf-topo1/r2/ospfroute_down.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r2/zebra.conf (renamed from tests/topotests/ospf-topo1/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r3/ospf6d.conf (renamed from tests/topotests/ospf-topo1/r3/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r3/ospf6route.txt (renamed from tests/topotests/ospf-topo1/r3/ospf6route.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r3/ospf6route_down.txt (renamed from tests/topotests/ospf-topo1/r3/ospf6route_down.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r3/ospf6route_ecmp.txt (renamed from tests/topotests/ospf-topo1/r3/ospf6route_ecmp.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r3/ospfd.conf (renamed from tests/topotests/ospf-topo1/r3/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r3/ospfroute.txt (renamed from tests/topotests/ospf-topo1/r3/ospfroute.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r3/ospfroute_down.txt (renamed from tests/topotests/ospf-topo1/r3/ospfroute_down.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r3/zebra.conf (renamed from tests/topotests/ospf-topo1/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r4/ospf6d.conf (renamed from tests/topotests/ospf-topo1/r4/ospf6d.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r4/ospf6route.txt (renamed from tests/topotests/ospf-topo1/r4/ospf6route.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r4/ospf6route_down.txt (renamed from tests/topotests/ospf-topo1/r4/ospf6route_down.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r4/ospf6route_ecmp.txt (renamed from tests/topotests/ospf-topo1/r4/ospf6route_ecmp.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r4/ospfd.conf (renamed from tests/topotests/ospf-topo1/r4/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r4/ospfroute.txt (renamed from tests/topotests/ospf-topo1/r4/ospfroute.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r4/ospfroute_down.txt (renamed from tests/topotests/ospf-topo1/r4/ospfroute_down.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/r4/zebra.conf (renamed from tests/topotests/ospf-topo1/r4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/test_ospf_topo1.dot (renamed from tests/topotests/ospf-topo1/test_ospf_topo1.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1/test_ospf_topo1.jpg (renamed from tests/topotests/ospf-topo1/test_ospf_topo1.jpg) | bin | 123663 -> 123663 bytes | |||
| -rw-r--r-- | tests/topotests/ospf_topo1/test_ospf_topo1.py (renamed from tests/topotests/ospf-topo1/test_ospf_topo1.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/ospf_topo1_vrf/__init__.py (renamed from tests/topotests/ospf-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/r1/ospfd.conf (renamed from tests/topotests/ospf-topo1-vrf/r1/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/r1/ospfroute.txt (renamed from tests/topotests/ospf-topo1-vrf/r1/ospfroute.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/r1/ospfroute_down.txt (renamed from tests/topotests/ospf-topo1-vrf/r1/ospfroute_down.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/r1/zebra.conf (renamed from tests/topotests/ospf-topo1-vrf/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/r1/zebraroute.txt (renamed from tests/topotests/ospf-topo1-vrf/r1/zebraroute.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/r1/zebraroutedown.txt (renamed from tests/topotests/ospf-topo1-vrf/r1/zebraroutedown.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/r2/ospfd.conf (renamed from tests/topotests/ospf-topo1-vrf/r2/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/r2/ospfroute.txt (renamed from tests/topotests/ospf-topo1-vrf/r2/ospfroute.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/r2/ospfroute_down.txt (renamed from tests/topotests/ospf-topo1-vrf/r2/ospfroute_down.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/r2/zebra.conf (renamed from tests/topotests/ospf-topo1-vrf/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/r2/zebraroute.txt (renamed from tests/topotests/ospf-topo1-vrf/r2/zebraroute.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/r2/zebraroutedown.txt (renamed from tests/topotests/ospf-topo1-vrf/r2/zebraroutedown.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/r3/ospfd.conf (renamed from tests/topotests/ospf-topo1-vrf/r3/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/r3/ospfroute.txt (renamed from tests/topotests/ospf-topo1-vrf/r3/ospfroute.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/r3/ospfroute_down.txt (renamed from tests/topotests/ospf-topo1-vrf/r3/ospfroute_down.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/r3/zebra.conf (renamed from tests/topotests/ospf-topo1-vrf/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/r3/zebraroute.txt (renamed from tests/topotests/ospf-topo1-vrf/r3/zebraroute.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/r3/zebraroutedown.txt (renamed from tests/topotests/ospf-topo1-vrf/r3/zebraroutedown.txt) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/test_ospf_topo1-vrf.dot (renamed from tests/topotests/ospf-topo1-vrf/test_ospf_topo1-vrf.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/test_ospf_topo1_vrf.jpg (renamed from tests/topotests/ospf-topo1-vrf/test_ospf_topo1_vrf.jpg) | bin | 65859 -> 65859 bytes | |||
| -rw-r--r-- | tests/topotests/ospf_topo1_vrf/test_ospf_topo1_vrf.py (renamed from tests/topotests/ospf-topo1-vrf/test_ospf_topo1_vrf.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo2/r1/ospf-route.json (renamed from tests/topotests/ospf-topo2/r1/ospf-route.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo2/r1/ospfd.conf (renamed from tests/topotests/ospf-topo2/r1/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo2/r1/v4_route.json (renamed from tests/topotests/ospf-topo2/r1/v4_route.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo2/r1/zebra.conf (renamed from tests/topotests/ospf-topo2/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo2/r2/ospf-route.json (renamed from tests/topotests/ospf-topo2/r2/ospf-route.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo2/r2/ospfd.conf (renamed from tests/topotests/ospf-topo2/r2/ospfd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo2/r2/v4_route.json (renamed from tests/topotests/ospf-topo2/r2/v4_route.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo2/r2/zebra.conf (renamed from tests/topotests/ospf-topo2/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ospf_topo2/test_ospf_topo2.py (renamed from tests/topotests/ospf-topo2/test_ospf_topo2.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/pbr_topo1/__init__.py (renamed from tests/topotests/pbr-topo1/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/pbr_topo1/r1/linux-rules.json (renamed from tests/topotests/pbr-topo1/r1/linux-rules.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/pbr_topo1/r1/pbr-interface.json (renamed from tests/topotests/pbr-topo1/r1/pbr-interface.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/pbr_topo1/r1/pbr-map.json (renamed from tests/topotests/pbr-topo1/r1/pbr-map.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/pbr_topo1/r1/pbr-nexthop-groups.json (renamed from tests/topotests/pbr-topo1/r1/pbr-nexthop-groups.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/pbr_topo1/r1/pbrd.conf (renamed from tests/topotests/pbr-topo1/r1/pbrd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pbr_topo1/r1/zebra.conf (renamed from tests/topotests/pbr-topo1/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pbr_topo1/test_pbr_topo1.py (renamed from tests/topotests/pbr-topo1/test_pbr_topo1.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/pim_basic/mcast-rx.py (renamed from tests/topotests/pim-basic/mcast-rx.py) | 0 | ||||
| -rwxr-xr-x | tests/topotests/pim_basic/mcast-tx.py (renamed from tests/topotests/pim-basic/mcast-tx.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic/r1/bgpd.conf (renamed from tests/topotests/pim-basic/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic/r1/pimd.conf (renamed from tests/topotests/pim-basic/r1/pimd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic/r1/rp-info.json (renamed from tests/topotests/pim-basic/r1/rp-info.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic/r1/zebra.conf (renamed from tests/topotests/pim-basic/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic/r2/pimd.conf (renamed from tests/topotests/pim-basic/r2/pimd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic/r2/zebra.conf (renamed from tests/topotests/pim-basic/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic/r3/pimd.conf (renamed from tests/topotests/pim-basic/r3/pimd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic/r3/zebra.conf (renamed from tests/topotests/pim-basic/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic/rp/bgpd.conf (renamed from tests/topotests/pim-basic/rp/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic/rp/pimd.conf (renamed from tests/topotests/pim-basic/rp/pimd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic/rp/upstream.json (renamed from tests/topotests/pim-basic/rp/upstream.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic/rp/zebra.conf (renamed from tests/topotests/pim-basic/rp/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic/test_pim.py (renamed from tests/topotests/pim-basic/test_pim.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic_topo2/__init__.py (renamed from tests/topotests/pim-basic-topo2/__init__.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic_topo2/r1/bfdd.conf (renamed from tests/topotests/pim-basic-topo2/r1/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic_topo2/r1/pimd.conf (renamed from tests/topotests/pim-basic-topo2/r1/pimd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic_topo2/r1/zebra.conf (renamed from tests/topotests/pim-basic-topo2/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic_topo2/r2/bfdd.conf (renamed from tests/topotests/pim-basic-topo2/r2/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic_topo2/r2/pimd.conf (renamed from tests/topotests/pim-basic-topo2/r2/pimd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic_topo2/r2/zebra.conf (renamed from tests/topotests/pim-basic-topo2/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic_topo2/r3/bfdd.conf (renamed from tests/topotests/pim-basic-topo2/r3/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic_topo2/r3/pimd.conf (renamed from tests/topotests/pim-basic-topo2/r3/pimd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic_topo2/r3/zebra.conf (renamed from tests/topotests/pim-basic-topo2/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic_topo2/r4/bfdd.conf (renamed from tests/topotests/pim-basic-topo2/r4/bfdd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic_topo2/r4/pimd.conf (renamed from tests/topotests/pim-basic-topo2/r4/pimd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic_topo2/r4/zebra.conf (renamed from tests/topotests/pim-basic-topo2/r4/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic_topo2/test_pim_basic_topo2.dot (renamed from tests/topotests/pim-basic-topo2/test_pim_basic_topo2.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/pim_basic_topo2/test_pim_basic_topo2.png (renamed from tests/topotests/pim-basic-topo2/test_pim_basic_topo2.png) | bin | 33496 -> 33496 bytes | |||
| -rw-r--r-- | tests/topotests/pim_basic_topo2/test_pim_basic_topo2.py (renamed from tests/topotests/pim-basic-topo2/test_pim_basic_topo2.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/pytest.ini | 2 | ||||
| -rw-r--r-- | tests/topotests/rip_topo1/r1/rip_status.ref (renamed from tests/topotests/rip-topo1/r1/rip_status.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/rip_topo1/r1/ripd.conf (renamed from tests/topotests/rip-topo1/r1/ripd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/rip_topo1/r1/show_ip_rip.ref (renamed from tests/topotests/rip-topo1/r1/show_ip_rip.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/rip_topo1/r1/show_ip_route.ref (renamed from tests/topotests/rip-topo1/r1/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/rip_topo1/r1/zebra.conf (renamed from tests/topotests/rip-topo1/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/rip_topo1/r2/rip_status.ref (renamed from tests/topotests/rip-topo1/r2/rip_status.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/rip_topo1/r2/ripd.conf (renamed from tests/topotests/rip-topo1/r2/ripd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/rip_topo1/r2/show_ip_rip.ref (renamed from tests/topotests/rip-topo1/r2/show_ip_rip.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/rip_topo1/r2/show_ip_route.ref (renamed from tests/topotests/rip-topo1/r2/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/rip_topo1/r2/zebra.conf (renamed from tests/topotests/rip-topo1/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/rip_topo1/r3/rip_status.ref (renamed from tests/topotests/rip-topo1/r3/rip_status.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/rip_topo1/r3/ripd.conf (renamed from tests/topotests/rip-topo1/r3/ripd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/rip_topo1/r3/show_ip_rip.ref (renamed from tests/topotests/rip-topo1/r3/show_ip_rip.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/rip_topo1/r3/show_ip_route.ref (renamed from tests/topotests/rip-topo1/r3/show_ip_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/rip_topo1/r3/zebra.conf (renamed from tests/topotests/rip-topo1/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/rip_topo1/test_rip_topo1.dot (renamed from tests/topotests/rip-topo1/test_rip_topo1.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/rip_topo1/test_rip_topo1.pdf (renamed from tests/topotests/rip-topo1/test_rip_topo1.pdf) | bin | 18433 -> 18433 bytes | |||
| -rw-r--r-- | tests/topotests/rip_topo1/test_rip_topo1.py (renamed from tests/topotests/rip-topo1/test_rip_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/ripng_topo1/r1/ripng_status.ref (renamed from tests/topotests/ripng-topo1/r1/ripng_status.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ripng_topo1/r1/ripngd.conf (renamed from tests/topotests/ripng-topo1/r1/ripngd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ripng_topo1/r1/show_ipv6_ripng.ref (renamed from tests/topotests/ripng-topo1/r1/show_ipv6_ripng.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ripng_topo1/r1/show_ipv6_route.ref (renamed from tests/topotests/ripng-topo1/r1/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ripng_topo1/r1/zebra.conf (renamed from tests/topotests/ripng-topo1/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ripng_topo1/r2/ripng_status.ref (renamed from tests/topotests/ripng-topo1/r2/ripng_status.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ripng_topo1/r2/ripngd.conf (renamed from tests/topotests/ripng-topo1/r2/ripngd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ripng_topo1/r2/show_ipv6_ripng.ref (renamed from tests/topotests/ripng-topo1/r2/show_ipv6_ripng.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ripng_topo1/r2/show_ipv6_route.ref (renamed from tests/topotests/ripng-topo1/r2/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ripng_topo1/r2/zebra.conf (renamed from tests/topotests/ripng-topo1/r2/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ripng_topo1/r3/ripng_status.ref (renamed from tests/topotests/ripng-topo1/r3/ripng_status.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ripng_topo1/r3/ripngd.conf (renamed from tests/topotests/ripng-topo1/r3/ripngd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ripng_topo1/r3/show_ipv6_ripng.ref (renamed from tests/topotests/ripng-topo1/r3/show_ipv6_ripng.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ripng_topo1/r3/show_ipv6_route.ref (renamed from tests/topotests/ripng-topo1/r3/show_ipv6_route.ref) | 0 | ||||
| -rw-r--r-- | tests/topotests/ripng_topo1/r3/zebra.conf (renamed from tests/topotests/ripng-topo1/r3/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/ripng_topo1/test_ripng_topo1.dot (renamed from tests/topotests/ripng-topo1/test_ripng_topo1.dot) | 0 | ||||
| -rw-r--r-- | tests/topotests/ripng_topo1/test_ripng_topo1.pdf (renamed from tests/topotests/ripng-topo1/test_ripng_topo1.pdf) | bin | 18609 -> 18609 bytes | |||
| -rw-r--r-- | tests/topotests/ripng_topo1/test_ripng_topo1.py (renamed from tests/topotests/ripng-topo1/test_ripng_topo1.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/route_scale/r1/installed.routes.json (renamed from tests/topotests/route-scale/r1/installed.routes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/route_scale/r1/no.routes.json (renamed from tests/topotests/route-scale/r1/no.routes.json) | 0 | ||||
| -rw-r--r-- | tests/topotests/route_scale/r1/sharpd.conf (renamed from tests/topotests/route-scale/r1/sharpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/route_scale/r1/zebra.conf (renamed from tests/topotests/route-scale/r1/zebra.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/route_scale/test_route_scale.py (renamed from tests/topotests/route-scale/test_route_scale.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/simple_snmp_test/r1/bgpd.conf (renamed from tests/topotests/simple-snmp-test/r1/bgpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/simple_snmp_test/r1/isisd.conf (renamed from tests/topotests/simple-snmp-test/r1/isisd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/simple_snmp_test/r1/snmpd.conf (renamed from tests/topotests/simple-snmp-test/r1/snmpd.conf) | 0 | ||||
| -rw-r--r-- | tests/topotests/simple_snmp_test/r1/zebra.conf (renamed from tests/topotests/simple-snmp-test/r1/zebra.conf) | 0 | ||||
| -rwxr-xr-x | tests/topotests/simple_snmp_test/test_simple_snmp.py (renamed from tests/topotests/simple-snmp-test/test_simple_snmp.py) | 0 | ||||
| -rw-r--r-- | tests/topotests/static_routing_with_ebgp/test_static_routes_topo1_ebgp.py | 404 | ||||
| -rw-r--r-- | tests/topotests/static_routing_with_ebgp/test_static_routes_topo2_ebgp.py | 196 | ||||
| -rw-r--r-- | tests/topotests/static_routing_with_ebgp/test_static_routes_topo3_ebgp.py | 170 | ||||
| -rw-r--r-- | tests/topotests/static_routing_with_ebgp/test_static_routes_topo4_ebgp.py | 39 | ||||
| -rw-r--r-- | tests/topotests/static_routing_with_ibgp/test_static_routes_topo1_ibgp.py | 238 | ||||
| -rw-r--r-- | tests/topotests/static_routing_with_ibgp/test_static_routes_topo2_ibgp.py | 251 | ||||
| -rw-r--r-- | tests/topotests/static_routing_with_ibgp/test_static_routes_topo3_ibgp.py | 120 | ||||
| -rw-r--r-- | tests/topotests/static_routing_with_ibgp/test_static_routes_topo4_ibgp.py | 30 | ||||
| -rw-r--r-- | tools/gen_northbound_callbacks.c | 29 | ||||
| -rw-r--r-- | tools/gen_yang_deviations.c | 7 | ||||
| -rw-r--r-- | tools/valgrind.supp (renamed from bgpd/valgrind.supp) | 14 | ||||
| -rw-r--r-- | vrrpd/vrrp_vty.c | 2 | ||||
| -rwxr-xr-x | vtysh/extract.pl.in | 2 | ||||
| -rw-r--r-- | vtysh/vtysh.c | 33 | ||||
| -rw-r--r-- | watchfrr/subdir.am | 2 | ||||
| -rw-r--r-- | yang/embedmodel.py | 2 | ||||
| -rw-r--r-- | yang/frr-bgp-bmp.yang | 2 | ||||
| -rw-r--r-- | yang/frr-bgp-common-multiprotocol.yang | 30 | ||||
| -rw-r--r-- | yang/frr-bgp-common-structure.yang | 3 | ||||
| -rw-r--r-- | yang/frr-bgp-common.yang | 7 | ||||
| -rw-r--r-- | yang/frr-bgp-neighbor.yang | 3 | ||||
| -rw-r--r-- | yang/frr-bgp-peer-group.yang | 3 | ||||
| -rw-r--r-- | yang/frr-bgp-route-map.yang | 88 | ||||
| -rw-r--r-- | yang/frr-bgp.yang | 4 | ||||
| -rw-r--r-- | yang/frr-isisd.yang | 18 | ||||
| -rw-r--r-- | yang/frr-ospfd.yang | 6 | ||||
| -rw-r--r-- | yang/frr-pathd.yang | 109 | ||||
| -rw-r--r-- | yang/frr-pim.yang | 4 | ||||
| -rw-r--r-- | yang/frr-ripd.yang | 12 | ||||
| -rw-r--r-- | yang/frr-zebra-route-map.yang | 26 | ||||
| -rw-r--r-- | yang/frr-zebra.yang | 2 | ||||
| -rw-r--r-- | zebra/connected.c | 28 | ||||
| -rw-r--r-- | zebra/if_netlink.c | 39 | ||||
| -rw-r--r-- | zebra/kernel_netlink.c | 2 | ||||
| -rw-r--r-- | zebra/redistribute.c | 17 | ||||
| -rw-r--r-- | zebra/rt_netlink.c | 7 | ||||
| -rw-r--r-- | zebra/zapi_msg.c | 12 | ||||
| -rw-r--r-- | zebra/zebra_evpn.c | 8 | ||||
| -rw-r--r-- | zebra/zebra_evpn_mac.c | 2 | ||||
| -rw-r--r-- | zebra/zebra_evpn_mh.c | 4 | ||||
| -rw-r--r-- | zebra/zebra_evpn_neigh.c | 2 | ||||
| -rw-r--r-- | zebra/zebra_mpls.c | 13 | ||||
| -rw-r--r-- | zebra/zebra_pbr.c | 2 | ||||
| -rw-r--r-- | zebra/zebra_rib.c | 69 | ||||
| -rw-r--r-- | zebra/zebra_vrf.c | 9 | ||||
| -rw-r--r-- | zebra/zebra_vrf.h | 2 | ||||
| -rw-r--r-- | zebra/zebra_vxlan.c | 17 |
2288 files changed, 7248 insertions, 3770 deletions
diff --git a/.clang-format b/.clang-format index 47d681e0e2..e1897bfa99 100644 --- a/.clang-format +++ b/.clang-format @@ -50,8 +50,11 @@ ForEachMacros: - FOR_ALL_INTERFACES_ADDRESSES - JSON_FOREACH # libyang + - LY_FOR_KEYS + - LY_LIST_FOR - LY_TREE_FOR - LY_TREE_DFS_BEGIN + - LYD_TREE_DFS_BEGIN # zebra - RE_DEST_FOREACH_ROUTE - RE_DEST_FOREACH_ROUTE_SAFE diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 837ec75b8d..1ecdfd2fb3 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -19,3 +19,4 @@ c14777c6bfd0a446c85243d3a9835054a259c276 96244aca23adec551c29b78f26605f8af8eea53e 8451921b70044a2c1075e7ba391f095fabee2550 bf8d3d6aca3f20255a621ed1c148fd05b3a8ae5c +96941f80927ce31a41f7d1905717f099187be723 diff --git a/.travis.yml b/.travis.yml index d8e450a646..010292bb6a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,14 +5,14 @@ services: - docker jobs: include: - - script: - - docker/centos-7/build.sh - - docker images - name: centos7 - - script: - - docker/centos-8/build.sh - - docker images - name: centos8 + # - script: + # - docker/centos-7/build.sh + # - docker images + # name: centos7 + # - script: + # - docker/centos-8/build.sh + # - docker images + # name: centos8 - script: - sudo apt install -y linux-modules-extra-$(uname -r) - docker build -t frr-ubuntu18:latest -f docker/ubuntu18-ci/Dockerfile . @@ -22,7 +22,7 @@ jobs: - docker ps - docker exec frr-ubuntu18 bash -c 'cd ~/frr ; make check' - docker exec frr-ubuntu18 bash -c 'ps agxu ; lsmod | grep mpls || true' - - docker exec frr-ubuntu18 bash -c 'cd ~/frr/tests/topotests/ospf-topo1 ; sudo pytest test_ospf_topo1.py' + - docker exec frr-ubuntu18 bash -c 'cd ~/frr/tests/topotests/ospf_topo1 ; sudo pytest test_ospf_topo1.py' - docker exec frr-ubuntu18 bash -c 'cd ~/frr/tests/topotests/bgp_l3vpn_to_bgp_vrf ; sudo pytest test_bgp_l3vpn_to_bgp_vrf.py' name: ubuntu18+minimalCI - script: @@ -34,7 +34,7 @@ jobs: - docker ps - docker exec frr-ubuntu20 bash -c 'cd ~/frr ; make check' - docker exec frr-ubuntu20 bash -c 'ps agxu ; lsmod | grep mpls || true' - - docker exec frr-ubuntu20 bash -c 'cd ~/frr/tests/topotests/ospf-topo1 ; sudo pytest test_ospf_topo1.py' + - docker exec frr-ubuntu20 bash -c 'cd ~/frr/tests/topotests/ospf_topo1 ; sudo pytest test_ospf_topo1.py' - docker exec frr-ubuntu20 bash -c 'cd ~/frr/tests/topotests/bgp_l3vpn_to_bgp_vrf ; sudo pytest test_bgp_l3vpn_to_bgp_vrf.py' name: ubuntu20+minimalCI diff --git a/bfdd/bfd.c b/bfdd/bfd.c index 18f331e201..c66fccb853 100644 --- a/bfdd/bfd.c +++ b/bfdd/bfd.c @@ -2195,13 +2195,13 @@ void bfd_session_update_vrf_name(struct bfd_session *bs, struct vrf *vrf) snprintf(xpath + slen, sizeof(xpath) - slen, "[vrf='%s']/vrf", bs->key.vrfname); - bfd_dnode = yang_dnode_get(running_config->dnode, xpath, - bs->key.vrfname); + bfd_dnode = yang_dnode_getf(running_config->dnode, xpath, + bs->key.vrfname); if (bfd_dnode) { - yang_dnode_get_path(bfd_dnode->parent, oldpath, + yang_dnode_get_path(lyd_parent(bfd_dnode), oldpath, sizeof(oldpath)); yang_dnode_change_leaf(bfd_dnode, vrf->name); - yang_dnode_get_path(bfd_dnode->parent, newpath, + yang_dnode_get_path(lyd_parent(bfd_dnode), newpath, sizeof(newpath)); nb_running_move_tree(oldpath, newpath); running_config->version++; diff --git a/bgpd/bgp_evpn.c b/bgpd/bgp_evpn.c index fae3f1000f..d8e57419ee 100644 --- a/bgpd/bgp_evpn.c +++ b/bgpd/bgp_evpn.c @@ -3562,8 +3562,12 @@ static int update_advertise_vni_routes(struct bgp *bgp, struct bgpevpn *vpn) const struct prefix_evpn *evp = (const struct prefix_evpn *)bgp_dest_get_prefix(dest); - /* Identify MAC-IP local routes. */ - if (evp->prefix.route_type != BGP_EVPN_MAC_IP_ROUTE) + /* + * We have already processed type-3 routes. + * Process only type-1 and type-2 routes here. + */ + if (evp->prefix.route_type != BGP_EVPN_MAC_IP_ROUTE + && evp->prefix.route_type != BGP_EVPN_AD_ROUTE) continue; for (pi = bgp_dest_get_bgp_path_info(dest); pi; pi = pi->next) @@ -3581,10 +3585,23 @@ static int update_advertise_vni_routes(struct bgp *bgp, struct bgpevpn *vpn) global_dest = bgp_global_evpn_node_get(bgp->rib[afi][safi], afi, safi, evp, &vpn->prd); assert(global_dest); - update_evpn_route_entry(bgp, vpn, afi, safi, global_dest, attr, 1, - &global_pi, 0, - mac_mobility_seqnum(attr), + + if (evp->prefix.route_type == BGP_EVPN_MAC_IP_ROUTE) { + /* Type-2 route */ + update_evpn_route_entry( + bgp, vpn, afi, safi, global_dest, attr, 1, + &global_pi, 0, mac_mobility_seqnum(attr), false /* setup_sync */, NULL /* old_is_sync */); + } else { + /* Type-1 route */ + struct bgp_evpn_es *es; + int route_changed = 0; + + es = bgp_evpn_es_find(&evp->prefix.ead_addr.esi); + bgp_evpn_mh_route_update(bgp, es, vpn, afi, safi, + global_dest, attr, 1, + &global_pi, &route_changed); + } /* Schedule for processing and unlock node. */ bgp_process(bgp, global_dest, afi, safi); @@ -3630,6 +3647,8 @@ static int delete_withdraw_vni_routes(struct bgp *bgp, struct bgpevpn *vpn) bgp_dest_unlock_node(global_dest); } + + delete_global_ead_evi_routes(bgp, vpn); return 0; } diff --git a/bgpd/bgp_evpn_mh.c b/bgpd/bgp_evpn_mh.c index 6467ff8a28..59bced6f93 100644 --- a/bgpd/bgp_evpn_mh.c +++ b/bgpd/bgp_evpn_mh.c @@ -347,11 +347,10 @@ static void bgp_evpn_es_route_del_all(struct bgp *bgp, struct bgp_evpn_es *es) * Note: vpn is applicable only to EAD-EVI routes (NULL for EAD-ES and * ESR). */ -static int bgp_evpn_mh_route_update(struct bgp *bgp, struct bgp_evpn_es *es, - struct bgpevpn *vpn, afi_t afi, safi_t safi, - struct bgp_dest *dest, struct attr *attr, - int add, struct bgp_path_info **ri, - int *route_changed) +int bgp_evpn_mh_route_update(struct bgp *bgp, struct bgp_evpn_es *es, + struct bgpevpn *vpn, afi_t afi, safi_t safi, + struct bgp_dest *dest, struct attr *attr, int add, + struct bgp_path_info **ri, int *route_changed) { struct bgp_path_info *tmp_pi = NULL; struct bgp_path_info *local_pi = NULL; /* local route entry if any */ @@ -384,7 +383,8 @@ static int bgp_evpn_mh_route_update(struct bgp *bgp, struct bgp_evpn_es *es, flog_err( EC_BGP_ES_INVALID, "%u ERROR: local es route for ESI: %s Vtep %pI4 also learnt from remote", - bgp->vrf_id, es->esi_str, &es->originator_ip); + bgp->vrf_id, es ? es->esi_str : "Null", + &es->originator_ip); return -1; } @@ -441,7 +441,7 @@ static int bgp_evpn_mh_route_update(struct bgp *bgp, struct bgp_evpn_es *es, if (BGP_DEBUG(evpn_mh, EVPN_MH_RT)) zlog_debug( "local ES %s vni %u route-type %s nexthop %pI4 updated", - es->esi_str, vpn ? vpn->vni : 0, + es ? es->esi_str : "Null", vpn ? vpn->vni : 0, evp->prefix.route_type == BGP_EVPN_ES_ROUTE ? "esr" : (vpn ? "ead-evi" : "ead-es"), @@ -524,6 +524,50 @@ static int bgp_evpn_mh_route_delete(struct bgp *bgp, struct bgp_evpn_es *es, return 0; } +/* + * This function is called when the VNI RD changes. + * Delete all EAD/EVI local routes for this VNI from the global routing table. + * These routes are scheduled for withdraw from peers. + */ +int delete_global_ead_evi_routes(struct bgp *bgp, struct bgpevpn *vpn) +{ + afi_t afi; + safi_t safi; + struct bgp_dest *rdrn, *rn; + struct bgp_table *table; + struct bgp_path_info *pi; + + afi = AFI_L2VPN; + safi = SAFI_EVPN; + + /* Find the RD node for the VNI in the global table */ + rdrn = bgp_node_lookup(bgp->rib[afi][safi], (struct prefix *)&vpn->prd); + if (rdrn && bgp_dest_has_bgp_path_info_data(rdrn)) { + table = bgp_dest_get_bgp_table_info(rdrn); + + /* + * Iterate over all the routes in this table and delete EAD/EVI + * routes + */ + for (rn = bgp_table_top(table); rn; rn = bgp_route_next(rn)) { + struct prefix_evpn *evp = (struct prefix_evpn *)&rn->p; + + if (evp->prefix.route_type != BGP_EVPN_AD_ROUTE) + continue; + + delete_evpn_route_entry(bgp, afi, safi, rn, &pi); + if (pi) + bgp_process(bgp, rn, afi, safi); + } + } + + /* Unlock RD node. */ + if (rdrn) + bgp_dest_unlock_node(rdrn); + + return 0; +} + /***************************************************************************** * Ethernet Segment (Type-4) Routes * ESRs are used for DF election. Currently service-carving described in diff --git a/bgpd/bgp_evpn_mh.h b/bgpd/bgp_evpn_mh.h index c96de86871..22a4215664 100644 --- a/bgpd/bgp_evpn_mh.h +++ b/bgpd/bgp_evpn_mh.h @@ -377,6 +377,12 @@ extern int bgp_evpn_es_route_install_uninstall(struct bgp *bgp, struct prefix_evpn *evp, struct bgp_path_info *pi, int install); extern void update_type1_routes_for_evi(struct bgp *bgp, struct bgpevpn *vpn); +extern int delete_global_ead_evi_routes(struct bgp *bgp, struct bgpevpn *vpn); +extern int bgp_evpn_mh_route_update(struct bgp *bgp, struct bgp_evpn_es *es, + struct bgpevpn *vpn, afi_t afi, safi_t safi, + struct bgp_dest *dest, struct attr *attr, + int add, struct bgp_path_info **ri, + int *route_changed); int bgp_evpn_type1_route_process(struct peer *peer, afi_t afi, safi_t safi, struct attr *attr, uint8_t *pfx, int psize, uint32_t addpath_id); diff --git a/bgpd/bgp_main.c b/bgpd/bgp_main.c index 995917b6bd..d545becded 100644 --- a/bgpd/bgp_main.c +++ b/bgpd/bgp_main.c @@ -197,8 +197,6 @@ static __attribute__((__noreturn__)) void bgp_exit(int status) frr_early_fini(); - bfd_gbl_exit(); - bgp_close(); bgp_default = bgp_get_default(); @@ -316,9 +314,6 @@ static int bgp_vrf_enable(struct vrf *vrf) bgp_vrf_link(bgp, vrf); bgp_handle_socket(bgp, vrf, old_vrf_id, true); - /* Update any redistribution if vrf_id changed */ - if (old_vrf_id != bgp->vrf_id) - bgp_redistribute_redo(bgp); bgp_instance_up(bgp); vpn_leak_zebra_vrf_label_update(bgp, AFI_IP); vpn_leak_zebra_vrf_label_update(bgp, AFI_IP6); @@ -338,7 +333,6 @@ static int bgp_vrf_enable(struct vrf *vrf) static int bgp_vrf_disable(struct vrf *vrf) { struct bgp *bgp; - vrf_id_t old_vrf_id; if (vrf->vrf_id == VRF_DEFAULT) return 0; @@ -360,15 +354,11 @@ static int bgp_vrf_disable(struct vrf *vrf) vpn_leak_prechange(BGP_VPN_POLICY_DIR_FROMVPN, AFI_IP6, bgp_get_default(), bgp); - old_vrf_id = bgp->vrf_id; bgp_handle_socket(bgp, vrf, VRF_UNKNOWN, false); /* We have instance configured, unlink from VRF and make it * "down". */ - bgp_vrf_unlink(bgp, vrf); - /* Delete any redistribute vrf bitmaps if the vrf_id changed */ - if (old_vrf_id != bgp->vrf_id) - bgp_unset_redist_vrf_bitmaps(bgp, old_vrf_id); bgp_instance_down(bgp); + bgp_vrf_unlink(bgp, vrf); } /* Note: This is a callback, the VRF will be deleted by the caller. */ diff --git a/bgpd/bgp_nb.c b/bgpd/bgp_nb.c index 21810b634d..71824cd6d3 100644 --- a/bgpd/bgp_nb.c +++ b/bgpd/bgp_nb.c @@ -632,7 +632,6 @@ const struct frr_yang_module_info frr_bgp_info = { .xpath = "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/local-as/no-prepend", .cbs = { .modify = bgp_neighbors_neighbor_local_as_no_prepend_modify, - .destroy = bgp_neighbors_neighbor_local_as_no_prepend_destroy, } }, { @@ -923,7 +922,6 @@ const struct frr_yang_module_info frr_bgp_info = { .xpath = "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/local-as/no-prepend", .cbs = { .modify = bgp_neighbors_unnumbered_neighbor_local_as_no_prepend_modify, - .destroy = bgp_neighbors_unnumbered_neighbor_local_as_no_prepend_destroy, } }, { @@ -1215,7 +1213,6 @@ const struct frr_yang_module_info frr_bgp_info = { .xpath = "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/local-as/no-prepend", .cbs = { .modify = bgp_peer_groups_peer_group_local_as_no_prepend_modify, - .destroy = bgp_peer_groups_peer_group_local_as_no_prepend_destroy, } }, { diff --git a/bgpd/bgp_nb.h b/bgpd/bgp_nb.h index 57f379b6cc..f8bb31aad6 100644 --- a/bgpd/bgp_nb.h +++ b/bgpd/bgp_nb.h @@ -233,8 +233,6 @@ int bgp_neighbors_neighbor_local_as_local_as_destroy( struct nb_cb_destroy_args *args); int bgp_neighbors_neighbor_local_as_no_prepend_modify( struct nb_cb_modify_args *args); -int bgp_neighbors_neighbor_local_as_no_prepend_destroy( - struct nb_cb_destroy_args *args); int bgp_neighbors_neighbor_local_as_no_replace_as_modify( struct nb_cb_modify_args *args); int bgp_neighbors_neighbor_bfd_options_enable_modify( @@ -367,8 +365,6 @@ int bgp_neighbors_unnumbered_neighbor_local_as_local_as_destroy( struct nb_cb_destroy_args *args); int bgp_neighbors_unnumbered_neighbor_local_as_no_prepend_modify( struct nb_cb_modify_args *args); -int bgp_neighbors_unnumbered_neighbor_local_as_no_prepend_destroy( - struct nb_cb_destroy_args *args); int bgp_neighbors_unnumbered_neighbor_local_as_no_replace_as_modify( struct nb_cb_modify_args *args); int bgp_neighbors_unnumbered_neighbor_bfd_options_enable_modify( @@ -501,8 +497,6 @@ int bgp_peer_groups_peer_group_local_as_local_as_destroy( struct nb_cb_destroy_args *args); int bgp_peer_groups_peer_group_local_as_no_prepend_modify( struct nb_cb_modify_args *args); -int bgp_peer_groups_peer_group_local_as_no_prepend_destroy( - struct nb_cb_destroy_args *args); int bgp_peer_groups_peer_group_local_as_no_replace_as_modify( struct nb_cb_modify_args *args); int bgp_peer_groups_peer_group_bfd_options_enable_modify( diff --git a/bgpd/bgp_nb_config.c b/bgpd/bgp_nb_config.c index ff2c8ce93e..a430124b51 100644 --- a/bgpd/bgp_nb_config.c +++ b/bgpd/bgp_nb_config.c @@ -111,15 +111,24 @@ int bgp_router_create(struct nb_cb_create_args *args) is_new_bgp = (bgp_lookup_by_name(name) == NULL); ret = bgp_get_vty(&bgp, &as, name, inst_type); - switch (ret) { - case BGP_ERR_AS_MISMATCH: - snprintf(args->errmsg, args->errmsg_len, - "BGP instance is already running; AS is %u", - as); - return NB_ERR_INCONSISTENCY; - case BGP_ERR_INSTANCE_MISMATCH: - snprintf(args->errmsg, args->errmsg_len, - "BGP instance type mismatch"); + if (ret) { + switch (ret) { + case BGP_ERR_AS_MISMATCH: + snprintf( + args->errmsg, args->errmsg_len, + "BGP instance is already running; AS is %u", + as); + break; + case BGP_ERR_INSTANCE_MISMATCH: + snprintf(args->errmsg, args->errmsg_len, + "BGP instance type mismatch"); + break; + } + + UNSET_FLAG(bgp->vrf_flags, BGP_VRF_AUTO); + + nb_running_set_entry(args->dnode, bgp); + return NB_ERR_INCONSISTENCY; } @@ -221,64 +230,26 @@ int bgp_router_destroy(struct nb_cb_destroy_args *args) int bgp_global_local_as_modify(struct nb_cb_modify_args *args) { struct bgp *bgp; - as_t as; - const struct lyd_node *vrf_dnode; - const char *vrf_name; - const char *name = NULL; - enum bgp_instance_type inst_type; - int ret; - bool is_view_inst = false; switch (args->event) { case NB_EV_VALIDATE: - as = yang_dnode_get_uint32(args->dnode, NULL); - - inst_type = BGP_INSTANCE_TYPE_DEFAULT; - - vrf_dnode = yang_dnode_get_parent(args->dnode, - "control-plane-protocol"); - vrf_name = yang_dnode_get_string(vrf_dnode, "./vrf"); - - if (strmatch(vrf_name, VRF_DEFAULT_NAME)) { - name = NULL; - } else { - name = vrf_name; - inst_type = BGP_INSTANCE_TYPE_VRF; - } - - is_view_inst = yang_dnode_get_bool(args->dnode, - "../instance-type-view"); - if (is_view_inst) - inst_type = BGP_INSTANCE_TYPE_VIEW; - - ret = bgp_lookup_by_as_name_type(&bgp, &as, name, inst_type); - switch (ret) { - case BGP_ERR_AS_MISMATCH: - snprintf(args->errmsg, args->errmsg_len, - "BGP instance is already running; AS is %u", - as); - return NB_ERR_VALIDATION; - case BGP_ERR_INSTANCE_MISMATCH: + /* + * Changing AS number is not allowed, but we must allow it + * once, when the BGP instance is created the first time. + * If the instance already exists - return the validation + * error. + */ + bgp = nb_running_get_entry_non_rec( + lyd_parent(lyd_parent(args->dnode)), NULL, false); + if (bgp) { snprintf(args->errmsg, args->errmsg_len, - "BGP instance type mismatch"); + "Changing AS number is not allowed"); return NB_ERR_VALIDATION; } break; case NB_EV_PREPARE: case NB_EV_ABORT: - return NB_OK; case NB_EV_APPLY: - /* NOTE: handled in bgp_global_create callback, the as change - * will be rejected in validate phase. - */ - as = yang_dnode_get_uint32(args->dnode, NULL); - bgp = nb_running_get_entry(args->dnode, NULL, true); - if (bgp->as != as) { - snprintf(args->errmsg, args->errmsg_len, - "BGP instance is already running; AS is %u", - bgp->as); - return NB_ERR_INCONSISTENCY; - } break; } @@ -609,16 +580,11 @@ int bgp_global_route_reflector_route_reflector_cluster_id_modify( struct bgp *bgp; struct in_addr cluster_id; - const struct lyd_node_leaf_list *dleaf; bgp = nb_running_get_entry(args->dnode, NULL, true); - dleaf = (const struct lyd_node_leaf_list *)args->dnode; - if (dleaf->value_type == LY_TYPE_STRING) - yang_dnode_get_ipv4(&cluster_id, args->dnode, NULL); - else - (void)inet_aton(dleaf->value_str, &cluster_id); - + /* cluster-id is either dotted-quad or a uint32 */ + (void)inet_aton(lyd_get_value(args->dnode), &cluster_id); bgp_cluster_id_set(bgp, &cluster_id); if (bgp_clear_star_soft_out(bgp->name, args->errmsg, args->errmsg_len)) @@ -1514,12 +1480,27 @@ int bgp_global_global_config_timers_keepalive_modify( */ int bgp_global_instance_type_view_modify(struct nb_cb_modify_args *args) { + struct bgp *bgp; + switch (args->event) { case NB_EV_VALIDATE: + /* + * Changing instance type is not allowed, but we must allow it + * once, when the BGP instance is created the first time. + * If the instance already exists - return the validation + * error. + */ + bgp = nb_running_get_entry_non_rec( + lyd_parent(lyd_parent(args->dnode)), NULL, false); + if (bgp) { + snprintf(args->errmsg, args->errmsg_len, + "Changing instance type is not allowed"); + return NB_ERR_VALIDATION; + } + break; case NB_EV_PREPARE: case NB_EV_ABORT: case NB_EV_APPLY: - /* TODO: implement me. */ break; } @@ -3574,21 +3555,6 @@ int bgp_neighbors_neighbor_local_as_no_prepend_modify( return NB_OK; } -int bgp_neighbors_neighbor_local_as_no_prepend_destroy( - struct nb_cb_destroy_args *args) -{ - switch (args->event) { - case NB_EV_VALIDATE: - case NB_EV_PREPARE: - case NB_EV_ABORT: - case NB_EV_APPLY: - /* TODO: implement me. */ - break; - } - - return NB_OK; -} - /* * XPath: * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/local-as/no-replace-as @@ -5590,21 +5556,6 @@ int bgp_neighbors_unnumbered_neighbor_local_as_no_prepend_modify( return NB_OK; } -int bgp_neighbors_unnumbered_neighbor_local_as_no_prepend_destroy( - struct nb_cb_destroy_args *args) -{ - switch (args->event) { - case NB_EV_VALIDATE: - case NB_EV_PREPARE: - case NB_EV_ABORT: - case NB_EV_APPLY: - /* TODO: implement me. */ - break; - } - - return NB_OK; -} - /* * XPath: * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/local-as/no-replace-as @@ -7507,21 +7458,6 @@ int bgp_peer_groups_peer_group_local_as_no_prepend_modify( return NB_OK; } -int bgp_peer_groups_peer_group_local_as_no_prepend_destroy( - struct nb_cb_destroy_args *args) -{ - switch (args->event) { - case NB_EV_VALIDATE: - case NB_EV_PREPARE: - case NB_EV_ABORT: - case NB_EV_APPLY: - /* TODO: implement me. */ - break; - } - - return NB_OK; -} - /* * XPath: * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/local-as/no-replace-as diff --git a/bgpd/bgp_nht.c b/bgpd/bgp_nht.c index dc2b0b679b..e94f63541d 100644 --- a/bgpd/bgp_nht.c +++ b/bgpd/bgp_nht.c @@ -620,8 +620,8 @@ void bgp_parse_nexthop_update(int command, vrf_id_t vrf_id) } if (!zapi_nexthop_update_decode(zclient->ibuf, &nhr)) { - zlog_err("%s[%s]: Failure to decode nexthop update", - __PRETTY_FUNCTION__, bgp->name_pretty); + zlog_err("%s[%s]: Failure to decode nexthop update", __func__, + bgp->name_pretty); return; } diff --git a/bgpd/bgp_pbr.c b/bgpd/bgp_pbr.c index 01443c778f..27d868afa1 100644 --- a/bgpd/bgp_pbr.c +++ b/bgpd/bgp_pbr.c @@ -1072,22 +1072,31 @@ static void *bgp_pbr_rule_alloc_intern(void *arg) return new; } +static void bgp_pbr_bpa_remove(struct bgp_pbr_action *bpa) +{ + if ((bpa->refcnt == 0) && bpa->installed && bpa->table_id != 0) { + bgp_send_pbr_rule_action(bpa, NULL, false); + bgp_zebra_announce_default(bpa->bgp, &bpa->nh, bpa->afi, + bpa->table_id, false); + bpa->installed = false; + } +} + +static void bgp_pbr_bpa_add(struct bgp_pbr_action *bpa) +{ + if (!bpa->installed && !bpa->install_in_progress) { + bgp_send_pbr_rule_action(bpa, NULL, true); + bgp_zebra_announce_default(bpa->bgp, &bpa->nh, bpa->afi, + bpa->table_id, true); + } +} + static void bgp_pbr_action_free(void *arg) { - struct bgp_pbr_action *bpa; + struct bgp_pbr_action *bpa = arg; - bpa = (struct bgp_pbr_action *)arg; + bgp_pbr_bpa_remove(bpa); - if (bpa->refcnt == 0) { - if (bpa->installed && bpa->table_id != 0) { - bgp_send_pbr_rule_action(bpa, NULL, false); - bgp_zebra_announce_default(bpa->bgp, &(bpa->nh), - AFI_IP, - bpa->table_id, - false); - bpa->installed = false; - } - } XFREE(MTYPE_PBR_ACTION, bpa); } @@ -1691,16 +1700,7 @@ static void bgp_pbr_flush_iprule(struct bgp *bgp, struct bgp_pbr_action *bpa, } } hash_release(bgp->pbr_rule_hash, bpr); - if (bpa->refcnt == 0) { - if (bpa->installed && bpa->table_id != 0) { - bgp_send_pbr_rule_action(bpa, NULL, false); - bgp_zebra_announce_default(bpa->bgp, &(bpa->nh), - AFI_IP, - bpa->table_id, - false); - bpa->installed = false; - } - } + bgp_pbr_bpa_remove(bpa); } static void bgp_pbr_flush_entry(struct bgp *bgp, struct bgp_pbr_action *bpa, @@ -1748,16 +1748,7 @@ static void bgp_pbr_flush_entry(struct bgp *bgp, struct bgp_pbr_action *bpa, * note that drop does not need to call send_pbr_action */ } - if (bpa->refcnt == 0) { - if (bpa->installed && bpa->table_id != 0) { - bgp_send_pbr_rule_action(bpa, NULL, false); - bgp_zebra_announce_default(bpa->bgp, &(bpa->nh), - bpa->afi, - bpa->table_id, - false); - bpa->installed = false; - } - } + bgp_pbr_bpa_remove(bpa); } struct bgp_pbr_match_entry_remain { @@ -2374,12 +2365,9 @@ static void bgp_pbr_policyroute_add_to_zebra_unit(struct bgp *bgp, return; } } - if (!bpa->installed && !bpa->install_in_progress) { - bgp_send_pbr_rule_action(bpa, NULL, true); - bgp_zebra_announce_default(bgp, nh, - bpa->afi, - bpa->table_id, true); - } + + bgp_pbr_bpa_add(bpa); + /* ip rule add */ if (bpr && !bpr->installed) bgp_send_pbr_rule_action(bpa, bpr, true); @@ -2547,11 +2535,7 @@ static void bgp_pbr_policyroute_add_to_zebra_unit(struct bgp *bgp, * it will be suppressed subsequently */ /* ip rule add */ - if (!bpa->installed && !bpa->install_in_progress) { - bgp_send_pbr_rule_action(bpa, NULL, true); - bgp_zebra_announce_default(bgp, nh, - bpa->afi, bpa->table_id, true); - } + bgp_pbr_bpa_add(bpa); /* ipset create */ if (!bpm->installed) diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index 77a0b5fea7..2c792b7abf 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -550,6 +550,7 @@ static int bgp_path_info_cmp(struct bgp *bgp, struct bgp_path_info *new, char *pfx_buf, afi_t afi, safi_t safi, enum bgp_path_selection_reason *reason) { + const struct prefix *new_p; struct attr *newattr, *existattr; bgp_peer_sort_t new_sort; bgp_peer_sort_t exist_sort; @@ -614,10 +615,13 @@ static int bgp_path_info_cmp(struct bgp *bgp, struct bgp_path_info *new, newattr = new->attr; existattr = exist->attr; + new_p = bgp_dest_get_prefix(new->net); + /* For EVPN routes, we cannot just go by local vs remote, we have to * look at the MAC mobility sequence number, if present. */ - if (safi == SAFI_EVPN) { + if ((safi == SAFI_EVPN) + && (new_p->u.prefix_evpn.route_type == BGP_EVPN_MAC_IP_ROUTE)) { /* This is an error condition described in RFC 7432 Section * 15.2. The RFC * states that in this scenario "the PE MUST alert the operator" @@ -630,9 +634,9 @@ static int bgp_path_info_cmp(struct bgp *bgp, struct bgp_path_info *new, */ if (newattr->sticky != existattr->sticky) { if (!debug) { - prefix2str( - bgp_dest_get_prefix(new->net), pfx_buf, - sizeof(*pfx_buf) * PREFIX2STR_BUFFER); + prefix2str(new_p, pfx_buf, + sizeof(*pfx_buf) + * PREFIX2STR_BUFFER); bgp_path_info_path_with_addpath_rx_str( new, new_buf, sizeof(new_buf)); bgp_path_info_path_with_addpath_rx_str( diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c index 7cd36ef538..1fa6d4f002 100644 --- a/bgpd/bgp_vty.c +++ b/bgpd/bgp_vty.c @@ -132,10 +132,6 @@ DEFINE_HOOK(bgp_inst_config_write, (bgp, vty)); DEFINE_HOOK(bgp_snmp_update_last_changed, (struct bgp *bgp), (bgp)); -#define GR_NO_OPER \ - "The Graceful Restart No Operation was executed as cmd same as previous one." -#define GR_INVALID \ - "The Graceful Restart command used is not valid at this moment." static struct peer_group *listen_range_exists(struct bgp *bgp, struct prefix *range, int exact); @@ -750,9 +746,6 @@ int bgp_nb_errmsg_return(char *errmsg, size_t errmsg_len, int ret) case BGP_ERR_GR_OPERATION_FAILED: str = "The Graceful Restart Operation failed due to an err."; break; - case BGP_GR_NO_OPERATION: - str = GR_NO_OPER; - break; case BGP_ERR_PEER_GROUP_MEMBER: str = "Peer-group member cannot override remote-as of peer-group"; break; @@ -1387,6 +1380,10 @@ DEFUN_YANG_NOSH(router_bgp, nb_cli_enqueue_change(vty, "./global/instance-type-view", NB_OP_MODIFY, "true"); + } else { + nb_cli_enqueue_change(vty, + "./global/instance-type-view", + NB_OP_MODIFY, "false"); } ret = nb_cli_apply_changes(vty, base_xpath); @@ -4375,12 +4372,12 @@ DEFUN_YANG(neighbor_remote_as, snprintf(prgrp_xpath, sizeof(prgrp_xpath), FRR_BGP_PEER_GROUP_XPATH, argv[idx_peer]->arg, ""); - if (yang_dnode_exists(vty->candidate_config->dnode, "%s%s", - VTY_CURR_XPATH, unnbr_xpath + 1)) { + if (yang_dnode_existsf(vty->candidate_config->dnode, "%s%s", + VTY_CURR_XPATH, unnbr_xpath + 1)) { strlcpy(base_xpath, unnbr_xpath, sizeof(base_xpath)); - } else if (yang_dnode_exists(vty->candidate_config->dnode, - "%s%s", VTY_CURR_XPATH, - prgrp_xpath + 1)) { + } else if (yang_dnode_existsf(vty->candidate_config->dnode, + "%s%s", VTY_CURR_XPATH, + prgrp_xpath + 1)) { snprintf(base_xpath, sizeof(base_xpath), FRR_BGP_PEER_GROUP_XPATH, argv[idx_peer]->arg, ""); @@ -4651,8 +4648,8 @@ DEFUN_YANG(no_neighbor, if (str2sockunion(argv[idx_peer]->arg, &su) == 0) { snprintf(num_xpath, sizeof(num_xpath), FRR_BGP_NEIGHBOR_NUM_XPATH, argv[idx_peer]->arg, ""); - if (yang_dnode_exists(vty->candidate_config->dnode, "%s%s", - VTY_CURR_XPATH, num_xpath + 1)) { + if (yang_dnode_existsf(vty->candidate_config->dnode, "%s%s", + VTY_CURR_XPATH, num_xpath + 1)) { strlcpy(base_xpath, num_xpath, sizeof(base_xpath)); } } else { @@ -4662,12 +4659,12 @@ DEFUN_YANG(no_neighbor, snprintf(prgrp_xpath, sizeof(prgrp_xpath), FRR_BGP_PEER_GROUP_XPATH, argv[idx_peer]->arg, ""); - if (yang_dnode_exists(vty->candidate_config->dnode, "%s%s", - VTY_CURR_XPATH, unnbr_xpath + 1)) { + if (yang_dnode_existsf(vty->candidate_config->dnode, "%s%s", + VTY_CURR_XPATH, unnbr_xpath + 1)) { strlcpy(base_xpath, unnbr_xpath, sizeof(base_xpath)); - } else if (yang_dnode_exists(vty->candidate_config->dnode, - "%s%s", VTY_CURR_XPATH, - prgrp_xpath + 1)) { + } else if (yang_dnode_existsf(vty->candidate_config->dnode, + "%s%s", VTY_CURR_XPATH, + prgrp_xpath + 1)) { strlcpy(base_xpath, prgrp_xpath, sizeof(base_xpath)); } else { vty_out(vty, @@ -4743,11 +4740,11 @@ DEFUN_YANG(no_neighbor_interface_peer_group_remote_as, snprintf(prgrp_xpath, sizeof(prgrp_xpath), FRR_BGP_PEER_GROUP_XPATH, argv[idx_peer]->arg, ""); - if (yang_dnode_exists(vty->candidate_config->dnode, "%s%s", - VTY_CURR_XPATH, unnbr_xpath + 1)) { + if (yang_dnode_existsf(vty->candidate_config->dnode, "%s%s", + VTY_CURR_XPATH, unnbr_xpath + 1)) { strlcpy(base_xpath, unnbr_xpath, sizeof(base_xpath)); - } else if (yang_dnode_exists(vty->candidate_config->dnode, "%s%s", - VTY_CURR_XPATH, prgrp_xpath + 1)) { + } else if (yang_dnode_existsf(vty->candidate_config->dnode, "%s%s", + VTY_CURR_XPATH, prgrp_xpath + 1)) { strlcpy(base_xpath, prgrp_xpath, sizeof(base_xpath)); } else { vty_out(vty, "%% Create the peer-group or interface first\n"); @@ -7039,8 +7036,8 @@ static int peer_and_group_lookup_nb(struct vty *vty, const char *peer_str, if (str2sockunion(peer_str, &su) == 0) { snprintf(num_xpath, sizeof(num_xpath), "/neighbors/neighbor[remote-address='%s']", peer_str); - if (yang_dnode_exists(vty->candidate_config->dnode, "%s%s", - VTY_CURR_XPATH, num_xpath)) { + if (yang_dnode_existsf(vty->candidate_config->dnode, "%s%s", + VTY_CURR_XPATH, num_xpath)) { snprintf(base_xpath, xpath_len, FRR_BGP_NEIGHBOR_NUM_XPATH, peer_str, xpath ? xpath : ""); @@ -7059,14 +7056,14 @@ static int peer_and_group_lookup_nb(struct vty *vty, const char *peer_str, "/peer-groups/peer-group[peer-group-name='%s']", peer_str); - if (yang_dnode_exists(vty->candidate_config->dnode, "%s%s", - VTY_CURR_XPATH, unnbr_xpath)) { + if (yang_dnode_existsf(vty->candidate_config->dnode, "%s%s", + VTY_CURR_XPATH, unnbr_xpath)) { snprintf(base_xpath, xpath_len, FRR_BGP_NEIGHBOR_UNNUM_XPATH, peer_str, xpath ? xpath : ""); - } else if (yang_dnode_exists(vty->candidate_config->dnode, - "%s%s", VTY_CURR_XPATH, - prgrp_xpath)) { + } else if (yang_dnode_existsf(vty->candidate_config->dnode, + "%s%s", VTY_CURR_XPATH, + prgrp_xpath)) { snprintf(base_xpath, xpath_len, FRR_BGP_PEER_GROUP_XPATH, peer_str, xpath ? xpath : ""); @@ -8088,7 +8085,7 @@ DEFPY_YANG( bgp_afi_safi_get_container_str(afi, safi)); if (!no) { - if (!yang_dnode_exists( + if (!yang_dnode_existsf( vty->candidate_config->dnode, "/frr-route-map:lib/route-map[name='%s']", rmap_str)) { @@ -17757,7 +17754,7 @@ int bgp_config_write(struct vty *vty) /* BGP timers configuration. */ if (bgp->default_keepalive != SAVE_BGP_KEEPALIVE - && bgp->default_holdtime != SAVE_BGP_HOLDTIME) + || bgp->default_holdtime != SAVE_BGP_HOLDTIME) vty_out(vty, " timers bgp %u %u\n", bgp->default_keepalive, bgp->default_holdtime); diff --git a/bgpd/bgp_zebra.c b/bgpd/bgp_zebra.c index 288c2851b3..63214c5676 100644 --- a/bgpd/bgp_zebra.c +++ b/bgpd/bgp_zebra.c @@ -1180,7 +1180,6 @@ void bgp_zebra_announce(struct bgp_dest *dest, const struct prefix *p, route_tag_t tag; mpls_label_t label; int nh_othervrf = 0; - char buf_prefix[PREFIX_STRLEN]; /* filled in if we are debugging */ bool is_evpn; bool nh_updated = false; bool do_wt_ecmp; @@ -1197,9 +1196,6 @@ void bgp_zebra_announce(struct bgp_dest *dest, const struct prefix *p, if (bgp->main_zebra_update_hold) return; - if (bgp_debug_zebra(p)) - prefix2str(p, buf_prefix, sizeof(buf_prefix)); - if (safi == SAFI_FLOWSPEC) { bgp_pbr_update_entry(bgp, bgp_dest_get_prefix(dest), info, afi, safi, true); @@ -1312,13 +1308,14 @@ void bgp_zebra_announce(struct bgp_dest *dest, const struct prefix *p, if (bgp_debug_zebra(&api.prefix)) { if (mpinfo->extra) { - zlog_debug("%s: p=%s, bgp_is_valid_label: %d", - __func__, buf_prefix, + zlog_debug("%s: p=%pFX, bgp_is_valid_label: %d", + __func__, p, bgp_is_valid_label( &mpinfo->extra->label[0])); } else { - zlog_debug("%s: p=%s, extra is NULL, no label", - __func__, buf_prefix); + zlog_debug( + "%s: p=%pFX, extra is NULL, no label", + __func__, p); } } @@ -1500,9 +1497,8 @@ void bgp_zebra_announce(struct bgp_dest *dest, const struct prefix *p, if (CHECK_FLAG(api.flags, ZEBRA_FLAG_ALLOW_RECURSION)) recursion_flag = 1; - zlog_debug("%s: %s: announcing to zebra (recursion %sset)", - __func__, buf_prefix, - (recursion_flag ? "" : "NOT ")); + zlog_debug("%s: %pFX: announcing to zebra (recursion %sset)", + __func__, p, (recursion_flag ? "" : "NOT ")); } zclient_route_send(is_add ? ZEBRA_ROUTE_ADD : ZEBRA_ROUTE_DELETE, zclient, &api); @@ -1700,6 +1696,9 @@ int bgp_redistribute_set(struct bgp *bgp, afi_t afi, int type, redist_add_instance(&zclient->mi_redist[afi][type], instance); } else { + if (vrf_bitmap_check(zclient->redist[afi][type], bgp->vrf_id)) + return CMD_WARNING; + #ifdef ENABLE_BGP_VNC if (EVPN_ENABLED(bgp) && type == ZEBRA_ROUTE_VNC_DIRECT) { vnc_export_bgp_enable( @@ -1909,22 +1908,6 @@ void bgp_redistribute_redo(struct bgp *bgp) } } -/* Unset redistribute vrf bitmap during triggers like - restart networking or delete VRFs */ -void bgp_unset_redist_vrf_bitmaps(struct bgp *bgp, vrf_id_t old_vrf_id) -{ - int i; - afi_t afi; - - for (afi = AFI_IP; afi < AFI_MAX; afi++) - for (i = 0; i < ZEBRA_ROUTE_MAX; i++) - if (vrf_bitmap_check(zclient->redist[afi][i], - old_vrf_id)) - vrf_bitmap_unset(zclient->redist[afi][i], - old_vrf_id); - return; -} - void bgp_zclient_reset(void) { zclient_reset(zclient); @@ -2407,7 +2390,7 @@ static int bgp_zebra_route_notify_owner(int command, struct zclient *zclient, if (!zapi_route_notify_decode(zclient->ibuf, &p, &table_id, ¬e, &afi, &safi)) { - zlog_err("%s : error in msg decode", __PRETTY_FUNCTION__); + zlog_err("%s : error in msg decode", __func__); return -1; } @@ -2415,8 +2398,8 @@ static int bgp_zebra_route_notify_owner(int command, struct zclient *zclient, bgp = bgp_lookup_by_vrf_id(vrf_id); if (!bgp) { flog_err(EC_BGP_INVALID_BGP_INSTANCE, - "%s : bgp instance not found vrf %d", - __PRETTY_FUNCTION__, vrf_id); + "%s : bgp instance not found vrf %d", __func__, + vrf_id); return -1; } diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index 21abfeb001..5991bff752 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -3378,13 +3378,13 @@ int bgp_lookup_by_as_name_type(struct bgp **bgp_val, as_t *as, const char *name, bgp = bgp_get_default(); if (bgp) { + *bgp_val = bgp; if (bgp->as != *as) { *as = bgp->as; return BGP_ERR_AS_MISMATCH; } if (bgp->inst_type != inst_type) return BGP_ERR_INSTANCE_MISMATCH; - *bgp_val = bgp; return BGP_SUCCESS; } *bgp_val = NULL; @@ -3438,6 +3438,46 @@ int bgp_get(struct bgp **bgp_val, as_t *as, const char *name, return BGP_CREATED; } +static void bgp_zclient_set_redist(afi_t afi, int type, unsigned short instance, + vrf_id_t vrf_id, bool set) +{ + if (instance) { + if (set) + redist_add_instance(&zclient->mi_redist[afi][type], + instance); + else + redist_del_instance(&zclient->mi_redist[afi][type], + instance); + } else { + if (set) + vrf_bitmap_set(zclient->redist[afi][type], vrf_id); + else + vrf_bitmap_unset(zclient->redist[afi][type], vrf_id); + } +} + +static void bgp_set_redist_vrf_bitmaps(struct bgp *bgp, bool set) +{ + afi_t afi; + int i; + struct list *red_list; + struct listnode *node; + struct bgp_redist *red; + + for (afi = AFI_IP; afi < AFI_MAX; afi++) { + for (i = 0; i < ZEBRA_ROUTE_MAX; i++) { + + red_list = bgp->redist[afi][i]; + if (!red_list) + continue; + + for (ALL_LIST_ELEMENTS_RO(red_list, node, red)) + bgp_zclient_set_redist(afi, i, red->instance, + bgp->vrf_id, set); + } + } +} + /* * Make BGP instance "up". Applies only to VRFs (non-default) and * implies the VRF has been learnt from Zebra. @@ -3447,6 +3487,8 @@ void bgp_instance_up(struct bgp *bgp) struct peer *peer; struct listnode *node, *next; + bgp_set_redist_vrf_bitmaps(bgp, true); + /* Register with zebra. */ bgp_zebra_instance_register(bgp); @@ -3491,6 +3533,10 @@ void bgp_instance_down(struct bgp *bgp) /* Cleanup registered nexthops (flags) */ bgp_cleanup_nexthops(bgp); + + bgp_zebra_instance_deregister(bgp); + + bgp_set_redist_vrf_bitmaps(bgp, false); } /* Delete BGP instance. */ @@ -6891,7 +6937,7 @@ static void peer_advertise_map_filter_update(struct peer *peer, afi_t afi, /* Removed advertise-map configuration */ if (!set) { - memset(filter, 0, sizeof(struct bgp_filter)); + memset(&filter->advmap, 0, sizeof(filter->advmap)); /* decrement condition_filter_count delete timer if * this is the last advertise-map to be removed. diff --git a/bgpd/bgpd.h b/bgpd/bgpd.h index 38c6a70b8b..4a17b72b7f 100644 --- a/bgpd/bgpd.h +++ b/bgpd/bgpd.h @@ -2386,8 +2386,6 @@ static inline bool bgp_in_graceful_shutdown(struct bgp *bgp) !!CHECK_FLAG(bm->flags, BM_FLAG_GRACEFUL_SHUTDOWN)); } -extern void bgp_unset_redist_vrf_bitmaps(struct bgp *, vrf_id_t); - /* For benefit of rfapi */ extern struct peer *peer_new(struct bgp *bgp); diff --git a/bgpd/subdir.am b/bgpd/subdir.am index b54c41cabe..53225192f2 100644 --- a/bgpd/subdir.am +++ b/bgpd/subdir.am @@ -214,8 +214,8 @@ bgpd_bgpd_SOURCES = bgpd/bgp_main.c bgpd_bgp_btoa_SOURCES = bgpd/bgp_btoa.c # RFPLDADD is set in bgpd/rfp-example/librfp/subdir.am -bgpd_bgpd_LDADD = bgpd/libbgp.a $(RFPLDADD) lib/libfrr.la $(LIBCAP) $(LIBM) $(UST_LIBS) -bgpd_bgp_btoa_LDADD = bgpd/libbgp.a $(RFPLDADD) lib/libfrr.la $(LIBCAP) $(LIBM) $(UST_LIBS) +bgpd_bgpd_LDADD = bgpd/libbgp.a $(RFPLDADD) lib/libfrr.la $(LIBYANG_LIBS) $(LIBCAP) $(LIBM) $(UST_LIBS) +bgpd_bgp_btoa_LDADD = bgpd/libbgp.a $(RFPLDADD) lib/libfrr.la $(LIBYANG_LIBS) $(LIBCAP) $(LIBM) $(UST_LIBS) bgpd_bgpd_snmp_la_SOURCES = bgpd/bgp_snmp.c bgpd/bgp_mplsvpn_snmp.c bgpd_bgpd_snmp_la_CFLAGS = $(AM_CFLAGS) $(SNMP_CFLAGS) -std=gnu11 diff --git a/configure.ac b/configure.ac index c082a9e527..f84a3d3c5e 100644 --- a/configure.ac +++ b/configure.ac @@ -1866,8 +1866,8 @@ AC_SUBST([SNMP_CFLAGS]) dnl --------------- dnl libyang dnl --------------- -PKG_CHECK_MODULES([LIBYANG], [libyang >= 1.0.184 libyang < 2.0], , [ - AC_MSG_ERROR([libyang (>= 1.0.184) was not found on your system.]) +PKG_CHECK_MODULES([LIBYANG], [libyang >= 2.0.0], , [ + AC_MSG_ERROR([libyang (>= 2.0.0) was not found on your system.]) ]) ac_cflags_save="$CFLAGS" CFLAGS="$CFLAGS $LIBYANG_CFLAGS" diff --git a/debian/control b/debian/control index 7a08cbbdb0..0bbe99b312 100644 --- a/debian/control +++ b/debian/control @@ -16,14 +16,14 @@ Build-Depends: bison, libelf-dev, libjson-c-dev | libjson0-dev, libpam0g-dev | libpam-dev, - libpcre3-dev, + libpcre2-dev, libpython3-dev, libreadline-dev, librtr-dev <!pkg.frr.nortrlib>, libsnmp-dev, libssh-dev <!pkg.frr.nortrlib>, libsystemd-dev <!pkg.frr.nosystemd>, - libyang-dev (>= 1.0.184), + libyang2-dev, lsb-base, pkg-config, python3, diff --git a/doc/developer/building-libyang.rst b/doc/developer/building-libyang.rst index 5f82447d74..a447f58309 100644 --- a/doc/developer/building-libyang.rst +++ b/doc/developer/building-libyang.rst @@ -10,11 +10,12 @@ The FRR project builds some binary ``libyang`` packages. RPM packages are at our `RPM repository <https://rpm.frrouting.org>`_. DEB packages are available as CI artifacts `here -<https://ci1.netdef.org/browse/LIBYANG-LY1REL-DEB10AMD64-4/artifact>`_. +<https://ci1.netdef.org/browse/LIBYANG-LIBYANG-V2/latestSuccessful/artifact>`_. .. warning:: - ``libyang`` version 1.0.184 or newer is required to build FRR. + ``libyang`` version 2.0.0 or newer is required to build FRR. Currently a tag + (``v2.0.0``) is used from the libyang2 branch. .. note:: @@ -26,31 +27,22 @@ DEB packages are available as CI artifacts `here Depending on your platform, you may also need to install the PCRE development package. Typically this is ``libpcre-dev`` or ``pcre-devel``. -.. note:: - - For Debian-based systems, the official ``libyang`` package requires recent - versions of ``swig`` (3.0.12) and ``debhelper`` (11) which are only - available in Debian buster (10). However, ``libyang`` packages built on - Debian buster can be installed on both Debian jessie (8) and Debian stretch - (9), as well as various Ubuntu systems. The ``python3-yang`` package will - not work, but the other packages (``libyang-dev`` is the one needed for FRR) - will. - **Option 2: Source Install** .. note:: Ensure that the `libyang build requirements - <https://github.com/CESNET/libyang/blob/master/README.md#build-requirements>`_ + <https://github.com/CESNET/libyang/tree/libyang2#build-requirements>`_ are met before continuing. Usually this entails installing ``cmake`` and ``libpcre-dev`` or ``pcre-devel``. .. code-block:: console - git clone https://github.com/CESNET/libyang.git + git clone https://github.com/CESNET/libyang.git -b libyang2 cd libyang + git checkout v2.0.0 mkdir build; cd build - cmake -DENABLE_LYD_PRIV=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr \ + cmake -D CMAKE_INSTALL_PREFIX:PATH=/usr \ -D CMAKE_BUILD_TYPE:String="Release" .. make sudo make install diff --git a/doc/developer/topotests.rst b/doc/developer/topotests.rst index a86566dbb0..dd797a6949 100644 --- a/doc/developer/topotests.rst +++ b/doc/developer/topotests.rst @@ -59,7 +59,7 @@ there are some errors in the upstream MIBS which need to be patched up. The following steps will get you there on Ubuntu 20.04. .. code:: shell - + apt install libsnmp-dev apt install snmpd snmp apt install snmp-mibs-downloader @@ -68,9 +68,9 @@ following steps will get you there on Ubuntu 20.04. wget http://pastebin.com/raw.php?i=p3QyuXzZ -O /usr/share/snmp/mibs/ietf/SNMPv2-PDU wget http://pastebin.com/raw.php?i=gG7j8nyk -O /usr/share/snmp/mibs/ietf/IPATM-IPMC-MIB edit /etc/snmp/snmp.conf to look like this - # As the snmp packages come without MIB files due to license reasons, loading - # of MIBs is disabled by default. If you added the MIBs you can reenable - # loading them by commenting out the following line. + # As the snmp packages come without MIB files due to license reasons, loading + # of MIBs is disabled by default. If you added the MIBs you can reenable + # loading them by commenting out the following line. mibs +ALL @@ -485,7 +485,7 @@ Some things to keep in mind: in BGP, the test should look for the peers reconverging instead of just sleeping an arbitrary amount of time and continuing on. It is ok to use sleep in a tight loop with appropriate show commands to ensure that - the protocol reaches the desired state. This should be bounded by + the protocol reaches the desired state. This should be bounded by appropriate timeouts for the protocol in question though. See verify_bgp_convergence as a good example of this. If you are having troubles figuring out what to look for, please do not be afraid to ask. @@ -882,6 +882,8 @@ Example: Requirements: +- Directory name for a new topotest must not contain hyphen (``-``) characters. + To separate words, use underscores (``_``). For example, `tests/topotests/bgp_new_example`. - Test code should always be declared inside functions that begin with the ``test_`` prefix. Functions beginning with different prefixes will not be run by pytest. diff --git a/doc/user/bgp.rst b/doc/user/bgp.rst index 14b2389ca9..f6aa5d1ca0 100644 --- a/doc/user/bgp.rst +++ b/doc/user/bgp.rst @@ -2022,24 +2022,6 @@ expanded attribute in BGP updates. The expanded community is only used to filter, not `set` actions. -.. clicmd:: bgp community alias NAME ALIAS - - This command creates an alias name for a community that will be used - later in various CLI outputs in a human-readable format. - - .. code-block:: frr - - ~# show ip bgp 172.16.16.1/32 - BGP routing table entry for 172.16.16.1/32, version 21 - Paths: (2 available, best #2, table default) - Advertised to non peer-group peers: - 65030 - 192.168.0.2 from 192.168.0.2 (172.16.16.1) - Origin incomplete, metric 0, valid, external, best (Neighbor IP) - Community: 65001:12 65001:13 community-1 65001:65534 - Large Community: lcommunity-1 65001:123:2 - Last update: Fri Apr 16 12:51:27 2021 - .. deprecated:: 5.0 It is recommended to use the more explicit versions of this command. @@ -2097,6 +2079,38 @@ is called as named community lists. This command defines a new expanded community list. The argument to (100-199) defines the list identifier. +.. _bgp-community-alias: + +Community alias +^^^^^^^^^^^^^^^ + +BGP community aliases are useful to quickly identify what communities are set +for a specific prefix in a human-readable format. Especially handy for a huge +amount of communities. Accurately defined aliases can help you faster spot +things on the wire. + +.. clicmd:: bgp community alias NAME ALIAS + + This command creates an alias name for a community that will be used + later in various CLI outputs in a human-readable format. + + .. code-block:: frr + + ~# vtysh -c 'show run' | grep 'bgp community alias' + bgp community alias 65001:14 community-1 + bgp community alias 65001:123:1 lcommunity-1 + + ~# vtysh -c 'show ip bgp 172.16.16.1/32' + BGP routing table entry for 172.16.16.1/32, version 21 + Paths: (2 available, best #2, table default) + Advertised to non peer-group peers: + 65030 + 192.168.0.2 from 192.168.0.2 (172.16.16.1) + Origin incomplete, metric 0, valid, external, best (Neighbor IP) + Community: 65001:12 65001:13 community-1 65001:65534 + Large Community: lcommunity-1 65001:123:2 + Last update: Fri Apr 16 12:51:27 2021 + .. _bgp-using-communities-in-route-map: Using Communities in Route Maps diff --git a/doc/user/ospf6d.rst b/doc/user/ospf6d.rst index 573b9c8d7e..d7f4a3303e 100644 --- a/doc/user/ospf6d.rst +++ b/doc/user/ospf6d.rst @@ -305,3 +305,13 @@ Larger example with policy and various options set: ipv6 access-class access6 exec-timeout 0 0 ! + + +Configuration Limits +==================== + +Ospf6d currently supports 100 interfaces addresses if MTU is set to +default value, and 200 interface addresses if MTU is set to jumbo +packet size or larger. + + diff --git a/doc/user/pathd.rst b/doc/user/pathd.rst index 5fc3837839..c40efffc88 100644 --- a/doc/user/pathd.rst +++ b/doc/user/pathd.rst @@ -28,25 +28,8 @@ documented elsewhere. PCEP Support ============ -To build the PCC for pathd, the externall library `pceplib 1.2 <https://github.com/volta-networks/pceplib/tree/devel-1.2>`_ is required. +A pceplib is included in the frr source tree and build by default. -To build FRR with support for PCEP the following steps must be followed: - - - Checkout and build pceplib: - -``` -$ git clone https://github.com/volta-networks/pceplib -$ cd pceplib -$ make -$ make install -$ export PCEPLIB_ROOT=$PWD -``` - - - Configure FRR with the extra parameters: - -``` ---enable-pcep LDFLAGS="-L${PCEPLIB_ROOT}/install/lib" CPPFLAGS="-I${PCEPLIB_ROOT}/install/include" -``` To start pathd with pcep support the extra parameter `-M pathd_pcep` should be passed to the pathd daemon. @@ -62,10 +45,18 @@ Example: debug pathd pcep basic segment-routing traffic-eng + mpls-te on + mpls-te import ospfv2 segment-list SL1 index 10 mpls label 16010 index 20 mpls label 16030 ! + segment-list SL2 + index 10 nai prefix 10.1.2.1/32 iface 1 + index 20 nai adjacency 10.1.20.1 10.1.20.2 + index 30 nai prefix 10.10.10.5/32 algorithm 0 + index 40 mpls label 18001 + ! policy color 1 endpoint 1.1.1.1 name default binding-sid 4000 @@ -113,11 +104,22 @@ Configuration Commands Configure segment routing traffic engineering. +.. clicmd:: [no] mpls-te <on|off> + + Activate/Deactivate use of internal Traffic Engineering Database + +.. clicmd:: [no] mpls-te import <ospfv2|ospfv3|isis> + + Load data from the selected igp + .. clicmd:: segment-list NAME Delete or start a segment list definition. -.. clicmd:: index INDEX mpls label LABEL [nai node ADDRESS] +.. clicmd:: index INDEX mpls label LABEL +.. clicmd:: index INDEX nai adjacency A.B.C.D A.B.C.D +.. clicmd:: index INDEX nai prefix A.B.C.D/M algorithm <0|1> +.. clicmd:: index INDEX nai prefix A.B.C.D/M iface (0-65535) Delete or specify a segment in a segment list definition. diff --git a/docker/ubuntu18-ci/Dockerfile b/docker/ubuntu18-ci/Dockerfile index f6fa910381..86fbe4f49c 100644 --- a/docker/ubuntu18-ci/Dockerfile +++ b/docker/ubuntu18-ci/Dockerfile @@ -26,19 +26,19 @@ RUN groupadd -r -g 92 frr && \ echo 'frr ALL = NOPASSWD: ALL' | tee /etc/sudoers.d/frr && \ mkdir -p /home/frr && chown frr.frr /home/frr -#for libyang 1 -RUN apt-get install -y cmake libpcre3-dev +#for libyang 2 +RUN apt-get install -y cmake libpcre2-dev USER frr:frr # build and install libyang1 RUN cd && pwd && ls -al && \ - git clone https://github.com/CESNET/libyang.git && \ + git clone https://github.com/CESNET/libyang.git -b libyang2 && \ cd libyang && \ - git checkout v1.0.225 && \ + git checkout v2.0.0 && \ mkdir build; cd build && \ - cmake -DENABLE_LYD_PRIV=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr \ - -D CMAKE_BUILD_TYPE:String="Release" .. && \ + cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr \ + -DCMAKE_BUILD_TYPE:String="Release" .. && \ make -j $(nproc) && \ sudo make install @@ -47,7 +47,7 @@ COPY --chown=frr:frr . /home/frr/frr/ RUN cd && ls -al && ls -al frr RUN cd ~/frr && \ - ./bootstrap.sh && \ + ./bootstrap.sh && \ ./configure \ --prefix=/usr \ --localstatedir=/var/run/frr \ diff --git a/docker/ubuntu20-ci/Dockerfile b/docker/ubuntu20-ci/Dockerfile index 0b08c2f278..ead5c56c54 100644 --- a/docker/ubuntu20-ci/Dockerfile +++ b/docker/ubuntu20-ci/Dockerfile @@ -29,19 +29,19 @@ RUN groupadd -r -g 92 frr && \ echo 'frr ALL = NOPASSWD: ALL' | tee /etc/sudoers.d/frr && \ mkdir -p /home/frr && chown frr.frr /home/frr -#for libyang 1 -RUN apt-get install -y cmake libpcre3-dev +#for libyang 2 +RUN apt-get install -y cmake libpcre2-dev USER frr:frr # build and install libyang1 RUN cd && pwd && ls -al && \ - git clone https://github.com/CESNET/libyang.git && \ + git clone https://github.com/CESNET/libyang.git -b libyang2 && \ cd libyang && \ - git checkout v1.0.225 && \ + git checkout v2.0.0 && \ mkdir build; cd build && \ - cmake -DENABLE_LYD_PRIV=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr \ - -D CMAKE_BUILD_TYPE:String="Release" .. && \ + cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr \ + -DCMAKE_BUILD_TYPE:String="Release" .. && \ make -j $(nproc) && \ sudo make install @@ -50,7 +50,7 @@ COPY --chown=frr:frr . /home/frr/frr/ RUN cd && ls -al && ls -al frr RUN cd ~/frr && \ - ./bootstrap.sh && \ + ./bootstrap.sh && \ ./configure \ --prefix=/usr \ --localstatedir=/var/run/frr \ diff --git a/eigrpd/eigrp_cli.c b/eigrpd/eigrp_cli.c index ae15e97d4a..cf3999b457 100644 --- a/eigrpd/eigrp_cli.c +++ b/eigrpd/eigrp_cli.c @@ -880,7 +880,7 @@ static int eigrp_write_interface(struct vty *vty) RB_FOREACH(vrf, vrf_name_head, &vrfs_by_name) { FOR_ALL_INTERFACES(vrf, ifp) { - dnode = yang_dnode_get( + dnode = yang_dnode_getf( running_config->dnode, "/frr-interface:lib/interface[name='%s'][vrf='%s']", ifp->name, vrf->name); diff --git a/isisd/isis_adjacency.h b/isisd/isis_adjacency.h index 754345c008..b7fab7ae1e 100644 --- a/isisd/isis_adjacency.h +++ b/isisd/isis_adjacency.h @@ -105,7 +105,7 @@ struct isis_adjacency { struct isis_circuit *circuit; /* back pointer */ uint16_t *mt_set; /* Topologies this adjacency is valid for */ unsigned int mt_count; /* Number of entries in mt_set */ - struct bfd_session *bfd_session; + struct bfd_session_params *bfd_session; struct list *adj_sids; /* Segment Routing Adj-SIDs. */ uint32_t snmp_idx; struct listnode *snmp_list_node; diff --git a/isisd/isis_bfd.c b/isisd/isis_bfd.c index 89f1ed0ba3..ed4d2c6539 100644 --- a/isisd/isis_bfd.c +++ b/isisd/isis_bfd.c @@ -34,319 +34,32 @@ DEFINE_MTYPE_STATIC(ISISD, BFD_SESSION, "ISIS BFD Session"); -struct bfd_session { - int family; - union g_addr dst_ip; - union g_addr src_ip; - int status; -}; - -static struct bfd_session *bfd_session_new(int family, union g_addr *dst_ip, - union g_addr *src_ip) -{ - struct bfd_session *rv; - - rv = XCALLOC(MTYPE_BFD_SESSION, sizeof(*rv)); - rv->family = family; - rv->dst_ip = *dst_ip; - rv->src_ip = *src_ip; - return rv; -} - -static void bfd_session_free(struct bfd_session **session) -{ - if (!*session) - return; - - XFREE(MTYPE_BFD_SESSION, *session); -} - -static bool bfd_session_same(const struct bfd_session *session, int family, - const union g_addr *src, const union g_addr *dst) -{ - if (session->family != family) - return false; - - switch (session->family) { - case AF_INET: - if (!IPV4_ADDR_SAME(&session->dst_ip.ipv4, &dst->ipv4)) - return false; - if (!IPV4_ADDR_SAME(&session->src_ip.ipv4, &src->ipv4)) - return false; - break; - case AF_INET6: - if (!IPV6_ADDR_SAME(&session->dst_ip.ipv6, &dst->ipv6)) - return false; - if (!IPV6_ADDR_SAME(&session->src_ip.ipv6, &src->ipv6)) - return false; - break; - default: - flog_err(EC_LIB_DEVELOPMENT, "%s: unknown address-family: %u", - __func__, session->family); - exit(1); - } - - return true; -} - -static void bfd_adj_event(struct isis_adjacency *adj, struct prefix *dst, - int new_status) -{ - if (!adj->bfd_session) { - if (IS_DEBUG_BFD) - zlog_debug( - "ISIS-BFD: Ignoring update for adjacency with %s, could not find bfd session on the adjacency", - isis_adj_name(adj)); - return; - } - - if (adj->bfd_session->family != dst->family) { - if (IS_DEBUG_BFD) - zlog_debug( - "ISIS-BFD: Ignoring update for adjacency with %s, address family does not match the family on the adjacency", - isis_adj_name(adj)); - return; - } - - switch (adj->bfd_session->family) { - case AF_INET: - if (!IPV4_ADDR_SAME(&adj->bfd_session->dst_ip.ipv4, - &dst->u.prefix4)) { - if (IS_DEBUG_BFD) - zlog_debug( - "ISIS-BFD: Ignoring update for adjacency with %s, IPv4 address does not match", - isis_adj_name(adj)); - return; - } - break; - case AF_INET6: - if (!IPV6_ADDR_SAME(&adj->bfd_session->dst_ip.ipv6, - &dst->u.prefix6)) { - if (IS_DEBUG_BFD) - zlog_debug( - "ISIS-BFD: Ignoring update for adjacency with %s, IPv6 address does not match", - isis_adj_name(adj)); - return; - } - break; - default: - flog_err(EC_LIB_DEVELOPMENT, "%s: unknown address-family: %u", - __func__, adj->bfd_session->family); - exit(1); - } - - int old_status = adj->bfd_session->status; - - BFD_SET_CLIENT_STATUS(adj->bfd_session->status, new_status); - - if (old_status == new_status) { - if (IS_DEBUG_BFD) - zlog_debug( - "ISIS-BFD: Ignoring update for adjacency with %s, new status matches current known status", - isis_adj_name(adj)); - return; - } - - if (IS_DEBUG_BFD) { - char dst_str[INET6_ADDRSTRLEN]; - - inet_ntop(adj->bfd_session->family, &adj->bfd_session->dst_ip, - dst_str, sizeof(dst_str)); - zlog_debug("ISIS-BFD: Peer %s on %s changed from %s to %s", - dst_str, adj->circuit->interface->name, - bfd_get_status_str(old_status), - bfd_get_status_str(new_status)); - } - - if (old_status != BFD_STATUS_UP - || new_status != BFD_STATUS_DOWN) { - return; - } - - adj->circuit->area->bfd_signalled_down = true; - - isis_adj_state_change(&adj, ISIS_ADJ_DOWN, "bfd session went down"); -} - -static int isis_bfd_interface_dest_update(ZAPI_CALLBACK_ARGS) -{ - struct interface *ifp; - struct prefix dst_ip, src_ip; - int status; - - ifp = bfd_get_peer_info(zclient->ibuf, &dst_ip, &src_ip, &status, NULL, - vrf_id); - if (!ifp || (dst_ip.family != AF_INET && dst_ip.family != AF_INET6)) - return 0; - - if (IS_DEBUG_BFD) { - char dst_buf[INET6_ADDRSTRLEN]; - - inet_ntop(dst_ip.family, &dst_ip.u.prefix, dst_buf, - sizeof(dst_buf)); - - zlog_debug("ISIS-BFD: Received update for %s on %s: Changed state to %s", - dst_buf, ifp->name, bfd_get_status_str(status)); - } - - struct isis_circuit *circuit = circuit_scan_by_ifp(ifp); - - if (!circuit) { - if (IS_DEBUG_BFD) - zlog_debug( - "ISIS-BFD: Ignoring update, could not find circuit"); - return 0; - } - - if (circuit->circ_type == CIRCUIT_T_BROADCAST) { - for (int level = ISIS_LEVEL1; level <= ISIS_LEVEL2; level++) { - struct list *adjdb = circuit->u.bc.adjdb[level - 1]; - - struct listnode *node, *nnode; - struct isis_adjacency *adj; - - for (ALL_LIST_ELEMENTS(adjdb, node, nnode, adj)) - bfd_adj_event(adj, &dst_ip, status); - } - } else if (circuit->circ_type == CIRCUIT_T_P2P) { - if (circuit->u.p2p.neighbor) { - bfd_adj_event(circuit->u.p2p.neighbor, - &dst_ip, status); - } - } - - return 0; -} - -static int isis_bfd_nbr_replay(ZAPI_CALLBACK_ARGS) +static void adj_bfd_cb(struct bfd_session_params *bsp, + const struct bfd_session_status *bss, void *arg) { - bfd_client_sendmsg(zclient, ZEBRA_BFD_CLIENT_REGISTER, vrf_id); - - struct listnode *anode; - struct isis_area *area; - struct isis *isis = NULL; - - isis = isis_lookup_by_vrfid(vrf_id); - - if (isis == NULL) { - zlog_warn(" %s : ISIS routing instance not found", __func__); - return -1; - } - - if (IS_DEBUG_BFD) - zlog_debug("ISIS-BFD: Got neighbor replay request, resending neighbors."); - - for (ALL_LIST_ELEMENTS_RO(isis->area_list, anode, area)) { - struct listnode *cnode; - struct isis_circuit *circuit; - - for (ALL_LIST_ELEMENTS_RO(area->circuit_list, cnode, circuit)) - isis_bfd_circuit_cmd(circuit, ZEBRA_BFD_DEST_UPDATE); - } + struct isis_adjacency *adj = arg; if (IS_DEBUG_BFD) - zlog_debug("ISIS-BFD: Done with replay."); - - return 0; -} - -static void (*orig_zebra_connected)(struct zclient *); -static void isis_bfd_zebra_connected(struct zclient *zclient) -{ - if (orig_zebra_connected) - orig_zebra_connected(zclient); - - bfd_client_sendmsg(zclient, ZEBRA_BFD_CLIENT_REGISTER, VRF_DEFAULT); -} - -static void bfd_debug(int family, union g_addr *dst, union g_addr *src, - const char *interface, int command) -{ - if (!(IS_DEBUG_BFD)) - return; - - char dst_str[INET6_ADDRSTRLEN]; - char src_str[INET6_ADDRSTRLEN]; - - inet_ntop(family, dst, dst_str, sizeof(dst_str)); - inet_ntop(family, src, src_str, sizeof(src_str)); - - const char *command_str; - - switch (command) { - case ZEBRA_BFD_DEST_REGISTER: - command_str = "Register"; - break; - case ZEBRA_BFD_DEST_DEREGISTER: - command_str = "Deregister"; - break; - case ZEBRA_BFD_DEST_UPDATE: - command_str = "Update"; - break; - default: - command_str = "Unknown-Cmd"; - break; - } - - zlog_debug("ISIS-BFD: %s peer %s on %s (src %s)", - command_str, dst_str, interface, src_str); -} - -static void bfd_command(int command, struct bfd_info *bfd_info, int family, - const void *dst_ip, const void *src_ip, - const char *if_name) -{ - struct bfd_session_arg args = {}; - size_t addrlen; - - args.cbit = 1; - args.family = family; - args.vrf_id = VRF_DEFAULT; - args.command = command; - args.bfd_info = bfd_info; - if (args.bfd_info) { - args.min_rx = bfd_info->required_min_rx; - args.min_tx = bfd_info->desired_min_tx; - args.detection_multiplier = bfd_info->detect_mult; - if (bfd_info->profile[0]) { - args.profilelen = strlen(bfd_info->profile); - strlcpy(args.profile, bfd_info->profile, - sizeof(args.profile)); - } - } - - addrlen = family == AF_INET ? sizeof(struct in_addr) - : sizeof(struct in6_addr); - memcpy(&args.dst, dst_ip, addrlen); - if (src_ip) - memcpy(&args.src, src_ip, addrlen); + zlog_debug( + "ISIS-BFD: BFD changed status for adjacency %s old %s new %s", + isis_adj_name(adj), + bfd_get_status_str(bss->previous_state), + bfd_get_status_str(bss->state)); - if (if_name) { - strlcpy(args.ifname, if_name, sizeof(args.ifname)); - args.ifnamelen = strlen(args.ifname); + if (bss->state == BFD_STATUS_DOWN + && bss->previous_state == BFD_STATUS_UP) { + adj->circuit->area->bfd_signalled_down = true; + isis_adj_state_change(&adj, ISIS_ADJ_DOWN, + "bfd session went down"); } - - zclient_bfd_command(zclient, &args); } static void bfd_handle_adj_down(struct isis_adjacency *adj) { - if (!adj->bfd_session) - return; - - bfd_debug(adj->bfd_session->family, &adj->bfd_session->dst_ip, - &adj->bfd_session->src_ip, adj->circuit->interface->name, - ZEBRA_BFD_DEST_DEREGISTER); - - bfd_command(ZEBRA_BFD_DEST_DEREGISTER, NULL, adj->bfd_session->family, - &adj->bfd_session->dst_ip, &adj->bfd_session->src_ip, - (adj->circuit->interface) ? adj->circuit->interface->name - : NULL); - - bfd_session_free(&adj->bfd_session); + bfd_sess_free(&adj->bfd_session); } -static void bfd_handle_adj_up(struct isis_adjacency *adj, int command) +static void bfd_handle_adj_up(struct isis_adjacency *adj) { struct isis_circuit *circuit = adj->circuit; int family; @@ -355,10 +68,10 @@ static void bfd_handle_adj_up(struct isis_adjacency *adj, int command) struct list *local_ips; struct prefix *local_ip; - if (!circuit->bfd_info) { + if (!circuit->bfd_config.enabled) { if (IS_DEBUG_BFD) zlog_debug( - "ISIS-BFD: skipping BFD initialization on adjacency with %s because there is no bfd_info in the circuit", + "ISIS-BFD: skipping BFD initialization on adjacency with %s because BFD is not enabled for the circuit", isis_adj_name(adj)); goto out; } @@ -407,28 +120,20 @@ static void bfd_handle_adj_up(struct isis_adjacency *adj, int command) } else goto out; - if (adj->bfd_session) { - if (bfd_session_same(adj->bfd_session, family, &src_ip, - &dst_ip)) - bfd_handle_adj_down(adj); - } - - if (!adj->bfd_session) { - if (IS_DEBUG_BFD) - zlog_debug( - "ISIS-BFD: creating BFD session for adjacency with %s", - isis_adj_name(adj)); - adj->bfd_session = bfd_session_new(family, &dst_ip, &src_ip); - } - - bfd_debug(adj->bfd_session->family, &adj->bfd_session->dst_ip, - &adj->bfd_session->src_ip, circuit->interface->name, command); - - bfd_command(command, circuit->bfd_info, family, - &adj->bfd_session->dst_ip, &adj->bfd_session->src_ip, - (adj->circuit->interface) ? adj->circuit->interface->name - : NULL); + if (adj->bfd_session == NULL) + adj->bfd_session = bfd_sess_new(adj_bfd_cb, adj); + bfd_sess_set_timers(adj->bfd_session, BFD_DEF_DETECT_MULT, + BFD_DEF_MIN_RX, BFD_DEF_MIN_TX); + if (family == AF_INET) + bfd_sess_set_ipv4_addrs(adj->bfd_session, &src_ip.ipv4, + &dst_ip.ipv4); + else + bfd_sess_set_ipv6_addrs(adj->bfd_session, &src_ip.ipv6, + &dst_ip.ipv6); + bfd_sess_set_interface(adj->bfd_session, adj->circuit->interface->name); + bfd_sess_set_profile(adj->bfd_session, circuit->bfd_config.profile); + bfd_sess_install(adj->bfd_session); return; out: bfd_handle_adj_down(adj); @@ -437,23 +142,21 @@ out: static int bfd_handle_adj_state_change(struct isis_adjacency *adj) { if (adj->adj_state == ISIS_ADJ_UP) - bfd_handle_adj_up(adj, ZEBRA_BFD_DEST_REGISTER); + bfd_handle_adj_up(adj); else bfd_handle_adj_down(adj); return 0; } -static void bfd_adj_cmd(struct isis_adjacency *adj, int command) +static void bfd_adj_cmd(struct isis_adjacency *adj) { - if (adj->adj_state == ISIS_ADJ_UP - && command != ZEBRA_BFD_DEST_DEREGISTER) { - bfd_handle_adj_up(adj, command); - } else { + if (adj->adj_state == ISIS_ADJ_UP && adj->circuit->bfd_config.enabled) + bfd_handle_adj_up(adj); + else bfd_handle_adj_down(adj); - } } -void isis_bfd_circuit_cmd(struct isis_circuit *circuit, int command) +void isis_bfd_circuit_cmd(struct isis_circuit *circuit) { switch (circuit->circ_type) { case CIRCUIT_T_BROADCAST: @@ -464,45 +167,18 @@ void isis_bfd_circuit_cmd(struct isis_circuit *circuit, int command) struct isis_adjacency *adj; for (ALL_LIST_ELEMENTS_RO(adjdb, node, adj)) - bfd_adj_cmd(adj, command); + bfd_adj_cmd(adj); } break; case CIRCUIT_T_P2P: if (circuit->u.p2p.neighbor) - bfd_adj_cmd(circuit->u.p2p.neighbor, command); + bfd_adj_cmd(circuit->u.p2p.neighbor); break; default: break; } } -void isis_bfd_circuit_param_set(struct isis_circuit *circuit, uint32_t min_rx, - uint32_t min_tx, uint32_t detect_mult, - const char *profile, int defaults) -{ - int command = 0; - - bfd_set_param(&circuit->bfd_info, min_rx, min_tx, detect_mult, profile, - defaults, &command); - - if (command) - isis_bfd_circuit_cmd(circuit, command); -} - -#ifdef FABRICD -static int bfd_circuit_write_settings(struct isis_circuit *circuit, - struct vty *vty) -{ - struct bfd_info *bfd_info = circuit->bfd_info; - - if (!bfd_info) - return 0; - - vty_out(vty, " %s bfd\n", PROTO_NAME); - return 1; -} -#endif - static int bfd_handle_adj_ip_enabled(struct isis_adjacency *adj, int family) { @@ -515,7 +191,7 @@ static int bfd_handle_adj_ip_enabled(struct isis_adjacency *adj, int family) if (adj->adj_state != ISIS_ADJ_UP) return 0; - bfd_handle_adj_up(adj, ZEBRA_BFD_DEST_REGISTER); + bfd_handle_adj_up(adj); return 0; } @@ -535,26 +211,17 @@ static int bfd_handle_circuit_add_addr(struct isis_circuit *circuit) if (adj->adj_state != ISIS_ADJ_UP) continue; - bfd_handle_adj_up(adj, ZEBRA_BFD_DEST_REGISTER); + bfd_handle_adj_up(adj); } return 0; } -void isis_bfd_init(void) +void isis_bfd_init(struct thread_master *tm) { - bfd_gbl_init(); - - orig_zebra_connected = zclient->zebra_connected; - zclient->zebra_connected = isis_bfd_zebra_connected; - zclient->interface_bfd_dest_update = isis_bfd_interface_dest_update; - zclient->bfd_dest_replay = isis_bfd_nbr_replay; - hook_register(isis_adj_state_change_hook, - bfd_handle_adj_state_change); -#ifdef FABRICD - hook_register(isis_circuit_config_write, - bfd_circuit_write_settings); -#endif + bfd_protocol_integration_init(zclient, tm); + + hook_register(isis_adj_state_change_hook, bfd_handle_adj_state_change); hook_register(isis_adj_ip_enabled_hook, bfd_handle_adj_ip_enabled); hook_register(isis_circuit_add_addr_hook, bfd_handle_circuit_add_addr); } diff --git a/isisd/isis_bfd.h b/isisd/isis_bfd.h index 6ce630688c..1dec7ae20f 100644 --- a/isisd/isis_bfd.h +++ b/isisd/isis_bfd.h @@ -20,12 +20,10 @@ #define ISIS_BFD_H struct isis_circuit; +struct thread_master; -void isis_bfd_circuit_cmd(struct isis_circuit *circuit, int command); -void isis_bfd_circuit_param_set(struct isis_circuit *circuit, uint32_t min_rx, - uint32_t min_tx, uint32_t detect_mult, - const char *profile, int defaults); -void isis_bfd_init(void); +void isis_bfd_circuit_cmd(struct isis_circuit *circuit); +void isis_bfd_init(struct thread_master *tm); #endif diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c index 7fd9c07ed2..2a197ab2b7 100644 --- a/isisd/isis_circuit.c +++ b/isisd/isis_circuit.c @@ -205,6 +205,7 @@ void isis_circuit_del(struct isis_circuit *circuit) isis_lfa_excluded_ifaces_clear(circuit, ISIS_LEVEL1); isis_lfa_excluded_ifaces_clear(circuit, ISIS_LEVEL2); + XFREE(MTYPE_TMP, circuit->bfd_config.profile); XFREE(MTYPE_ISIS_CIRCUIT, circuit->tag); /* and lastly the circuit itself */ @@ -1282,6 +1283,10 @@ static int isis_interface_config_write(struct vty *vty) circuit->passwd.passwd); write++; } + if (circuit->bfd_config.enabled) { + vty_out(vty, " " PROTO_NAME " bfd\n"); + write++; + } write += hook_call(isis_circuit_config_write, circuit, vty); } @@ -1301,7 +1306,7 @@ static int isis_interface_config_write(struct vty *vty) FOR_ALL_INTERFACES (vrf, ifp) { struct lyd_node *dnode; - dnode = yang_dnode_get( + dnode = yang_dnode_getf( running_config->dnode, "/frr-interface:lib/interface[name='%s'][vrf='%s']", ifp->name, vrf->name); diff --git a/isisd/isis_circuit.h b/isisd/isis_circuit.h index 84c3ca3ff2..e7b7a2434d 100644 --- a/isisd/isis_circuit.h +++ b/isisd/isis_circuit.h @@ -70,8 +70,6 @@ struct isis_p2p_info { struct thread *t_send_p2p_hello; /* send P2P IIHs in this thread */ }; -struct bfd_info; - struct isis_circuit_arg { int level; struct isis_circuit *circuit; @@ -144,7 +142,10 @@ struct isis_circuit { #define ISIS_CIRCUIT_FLAPPED_AFTER_SPF 0x01 uint8_t flags; bool disable_threeway_adj; - struct bfd_info *bfd_info; + struct { + bool enabled; + char *profile; + } bfd_config; struct ldp_sync_info *ldp_sync_info; bool lfa_protection[ISIS_LEVELS]; bool rlfa_protection[ISIS_LEVELS]; diff --git a/isisd/isis_cli.c b/isisd/isis_cli.c index f316e0279c..5aea9f25d9 100644 --- a/isisd/isis_cli.c +++ b/isisd/isis_cli.c @@ -110,7 +110,7 @@ DEFPY_YANG(no_router_isis, no_router_isis_cmd, if (!vrf_name) vrf_name = VRF_DEFAULT_NAME; - if (!yang_dnode_exists( + if (!yang_dnode_existsf( vty->candidate_config->dnode, "/frr-isisd:isis/instance[area-tag='%s'][vrf='%s']", tag, vrf_name)) { @@ -277,8 +277,8 @@ DEFPY_YANG(no_ip_router_isis, no_ip_router_isis_cmd, { const struct lyd_node *dnode; - dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/frr-isisd:isis", VTY_CURR_XPATH); + dnode = yang_dnode_getf(vty->candidate_config->dnode, + "%s/frr-isisd:isis", VTY_CURR_XPATH); if (!dnode) return CMD_SUCCESS; @@ -345,8 +345,8 @@ DEFPY_YANG(isis_bfd, { const struct lyd_node *dnode; - dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/frr-isisd:isis", VTY_CURR_XPATH); + dnode = yang_dnode_getf(vty->candidate_config->dnode, + "%s/frr-isisd:isis", VTY_CURR_XPATH); if (dnode == NULL) { vty_out(vty, "ISIS is not enabled on this circuit\n"); return CMD_SUCCESS; @@ -363,7 +363,7 @@ DEFPY_YANG(isis_bfd, */ DEFPY_YANG(isis_bfd_profile, isis_bfd_profile_cmd, - "[no] isis bfd profile WORD", + "[no] isis bfd profile BFDPROF$profile", NO_STR PROTO_HELP "Enable BFD support\n" "Use a pre-configured profile\n" @@ -371,15 +371,21 @@ DEFPY_YANG(isis_bfd_profile, { const struct lyd_node *dnode; - dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/frr-isisd:isis", VTY_CURR_XPATH); + dnode = yang_dnode_getf(vty->candidate_config->dnode, + "%s/frr-isisd:isis", VTY_CURR_XPATH); if (dnode == NULL) { vty_out(vty, "ISIS is not enabled on this circuit\n"); return CMD_SUCCESS; } - nb_cli_enqueue_change(vty, "./frr-isisd:isis/bfd-monitoring/profile", - NB_OP_MODIFY, no ? NULL : profile); + if (no) + nb_cli_enqueue_change(vty, + "./frr-isisd:isis/bfd-monitoring/profile", + NB_OP_DESTROY, NULL); + else + nb_cli_enqueue_change(vty, + "./frr-isisd:isis/bfd-monitoring/profile", + NB_OP_MODIFY, profile); return nb_cli_apply_changes(vty, NULL); } @@ -387,18 +393,16 @@ DEFPY_YANG(isis_bfd_profile, void cli_show_ip_isis_bfd_monitoring(struct vty *vty, struct lyd_node *dnode, bool show_defaults) { - const char *profile; - - if (!yang_dnode_get_bool(dnode, "./enabled")) - vty_out(vty, " no"); - - vty_out(vty, " isis bfd\n"); - - if (yang_dnode_exists(dnode, "./profile")) { - profile = yang_dnode_get_string(dnode, "./profile"); - if (profile[0] != '\0') - vty_out(vty, " isis bfd profile %s\n", profile); + if (!yang_dnode_get_bool(dnode, "./enabled")) { + if (show_defaults) + vty_out(vty, " no isis bfd\n"); + } else { + vty_out(vty, " isis bfd\n"); } + + if (yang_dnode_exists(dnode, "./profile")) + vty_out(vty, " isis bfd profile %s\n", + yang_dnode_get_string(dnode, "./profile")); } /* @@ -3088,8 +3092,8 @@ DEFPY(isis_mpls_if_ldp_sync, isis_mpls_if_ldp_sync_cmd, { const struct lyd_node *dnode; - dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/frr-isisd:isis", VTY_CURR_XPATH); + dnode = yang_dnode_getf(vty->candidate_config->dnode, + "%s/frr-isisd:isis", VTY_CURR_XPATH); if (dnode == NULL) { vty_out(vty, "ISIS is not enabled on this circuit\n"); return CMD_SUCCESS; @@ -3119,8 +3123,8 @@ DEFPY(isis_mpls_if_ldp_sync_holddown, isis_mpls_if_ldp_sync_holddown_cmd, { const struct lyd_node *dnode; - dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/frr-isisd:isis", VTY_CURR_XPATH); + dnode = yang_dnode_getf(vty->candidate_config->dnode, + "%s/frr-isisd:isis", VTY_CURR_XPATH); if (dnode == NULL) { vty_out(vty, "ISIS is not enabled on this circuit\n"); return CMD_SUCCESS; @@ -3139,8 +3143,8 @@ DEFPY(no_isis_mpls_if_ldp_sync_holddown, no_isis_mpls_if_ldp_sync_holddown_cmd, { const struct lyd_node *dnode; - dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/frr-isisd:isis", VTY_CURR_XPATH); + dnode = yang_dnode_getf(vty->candidate_config->dnode, + "%s/frr-isisd:isis", VTY_CURR_XPATH); if (dnode == NULL) { vty_out(vty, "ISIS is not enabled on this circuit\n"); return CMD_SUCCESS; diff --git a/isisd/isis_main.c b/isisd/isis_main.c index c03cedb187..c93bbb83af 100644 --- a/isisd/isis_main.c +++ b/isisd/isis_main.c @@ -269,7 +269,7 @@ int main(int argc, char **argv, char **envp) isis_global_instance_create(VRF_DEFAULT_NAME); isis_zebra_init(master, instance); - isis_bfd_init(); + isis_bfd_init(master); isis_ldp_sync_init(); fabricd_init(); diff --git a/isisd/isis_nb_config.c b/isisd/isis_nb_config.c index 5ca2329dd3..68a4581a46 100644 --- a/isisd/isis_nb_config.c +++ b/isisd/isis_nb_config.c @@ -2509,10 +2509,10 @@ int lib_interface_isis_area_tag_modify(struct nb_cb_modify_args *args) if (args->event == NB_EV_VALIDATE) { /* libyang doesn't like relative paths across module boundaries */ - ifname = yang_dnode_get_string(args->dnode->parent->parent, - "./name"); - vrfname = yang_dnode_get_string(args->dnode->parent->parent, - "./vrf"); + ifname = yang_dnode_get_string( + lyd_parent(lyd_parent(args->dnode)), "./name"); + vrfname = yang_dnode_get_string( + lyd_parent(lyd_parent(args->dnode)), "./vrf"); vrf = vrf_lookup_by_name(vrfname); assert(vrf); ifp = if_lookup_by_name(ifname, vrf->vrf_id); @@ -2549,10 +2549,10 @@ int lib_interface_isis_circuit_type_modify(struct nb_cb_modify_args *args) case NB_EV_VALIDATE: /* libyang doesn't like relative paths across module boundaries */ - ifname = yang_dnode_get_string(args->dnode->parent->parent, - "./name"); - vrfname = yang_dnode_get_string(args->dnode->parent->parent, - "./vrf"); + ifname = yang_dnode_get_string( + lyd_parent(lyd_parent(args->dnode)), "./name"); + vrfname = yang_dnode_get_string( + lyd_parent(lyd_parent(args->dnode)), "./vrf"); vrf = vrf_lookup_by_name(vrfname); assert(vrf); ifp = if_lookup_by_name(ifname, vrf->vrf_id); @@ -2626,23 +2626,9 @@ void lib_interface_isis_bfd_monitoring_apply_finish( struct nb_cb_apply_finish_args *args) { struct isis_circuit *circuit; - bool enabled; - const char *profile = NULL; circuit = nb_running_get_entry(args->dnode, NULL, true); - enabled = yang_dnode_get_bool(args->dnode, "./enabled"); - - if (yang_dnode_exists(args->dnode, "./profile")) - profile = yang_dnode_get_string(args->dnode, "./profile"); - - if (enabled) { - isis_bfd_circuit_param_set(circuit, BFD_DEF_MIN_RX, - BFD_DEF_MIN_TX, BFD_DEF_DETECT_MULT, - profile, true); - } else { - isis_bfd_circuit_cmd(circuit, ZEBRA_BFD_DEST_DEREGISTER); - bfd_info_free(&circuit->bfd_info); - } + isis_bfd_circuit_cmd(circuit); } /* @@ -2651,7 +2637,14 @@ void lib_interface_isis_bfd_monitoring_apply_finish( int lib_interface_isis_bfd_monitoring_enabled_modify( struct nb_cb_modify_args *args) { - /* Everything done in apply_finish */ + struct isis_circuit *circuit; + + if (args->event != NB_EV_APPLY) + return NB_OK; + + circuit = nb_running_get_entry(args->dnode, NULL, true); + circuit->bfd_config.enabled = yang_dnode_get_bool(args->dnode, NULL); + return NB_OK; } @@ -2661,14 +2654,30 @@ int lib_interface_isis_bfd_monitoring_enabled_modify( int lib_interface_isis_bfd_monitoring_profile_modify( struct nb_cb_modify_args *args) { - /* Everything done in apply_finish */ + struct isis_circuit *circuit; + + if (args->event != NB_EV_APPLY) + return NB_OK; + + circuit = nb_running_get_entry(args->dnode, NULL, true); + XFREE(MTYPE_TMP, circuit->bfd_config.profile); + circuit->bfd_config.profile = + XSTRDUP(MTYPE_TMP, yang_dnode_get_string(args->dnode, NULL)); + return NB_OK; } int lib_interface_isis_bfd_monitoring_profile_destroy( struct nb_cb_destroy_args *args) { - /* Everything done in apply_finish */ + struct isis_circuit *circuit; + + if (args->event != NB_EV_APPLY) + return NB_OK; + + circuit = nb_running_get_entry(args->dnode, NULL, true); + XFREE(MTYPE_TMP, circuit->bfd_config.profile); + return NB_OK; } @@ -3175,8 +3184,9 @@ int lib_interface_isis_mpls_ldp_sync_modify(struct nb_cb_modify_args *args) switch (args->event) { case NB_EV_VALIDATE: - ifp = nb_running_get_entry(args->dnode->parent->parent->parent, - NULL, false); + ifp = nb_running_get_entry( + lyd_parent(lyd_parent(lyd_parent(args->dnode))), NULL, + false); if (ifp == NULL) return NB_ERR_VALIDATION; if (if_is_loopback(ifp)) { @@ -3230,8 +3240,10 @@ int lib_interface_isis_mpls_holddown_modify(struct nb_cb_modify_args *args) switch (args->event) { case NB_EV_VALIDATE: - ifp = nb_running_get_entry(args->dnode->parent->parent->parent, - NULL, false); + + ifp = nb_running_get_entry( + lyd_parent(lyd_parent(lyd_parent(args->dnode))), NULL, + false); if (ifp == NULL) return NB_ERR_VALIDATION; if (if_is_loopback(ifp)) { @@ -3274,8 +3286,9 @@ int lib_interface_isis_mpls_holddown_destroy(struct nb_cb_destroy_args *args) switch (args->event) { case NB_EV_VALIDATE: - ifp = nb_running_get_entry(args->dnode->parent->parent->parent, - NULL, false); + ifp = nb_running_get_entry( + lyd_parent(lyd_parent(lyd_parent(args->dnode))), NULL, + false); if (ifp == NULL) return NB_ERR_VALIDATION; if (if_is_loopback(ifp)) { diff --git a/isisd/isis_vty_fabricd.c b/isisd/isis_vty_fabricd.c index 7020b6efeb..a19fcc240f 100644 --- a/isisd/isis_vty_fabricd.c +++ b/isisd/isis_vty_fabricd.c @@ -319,13 +319,11 @@ DEFUN (isis_bfd, if (!circuit) return CMD_ERR_NO_MATCH; - if (circuit->bfd_info - && CHECK_FLAG(circuit->bfd_info->flags, BFD_FLAG_PARAM_CFG)) { + if (circuit->bfd_config.enabled) return CMD_SUCCESS; - } - isis_bfd_circuit_param_set(circuit, BFD_DEF_MIN_RX, BFD_DEF_MIN_TX, - BFD_DEF_DETECT_MULT, NULL, true); + circuit->bfd_config.enabled = true; + isis_bfd_circuit_cmd(circuit); return CMD_SUCCESS; } @@ -343,11 +341,12 @@ DEFUN (no_isis_bfd, if (!circuit) return CMD_ERR_NO_MATCH; - if (!circuit->bfd_info) + if (!circuit->bfd_config.enabled) return CMD_SUCCESS; - isis_bfd_circuit_cmd(circuit, ZEBRA_BFD_DEST_DEREGISTER); - bfd_info_free(&circuit->bfd_info); + circuit->bfd_config.enabled = false; + isis_bfd_circuit_cmd(circuit); + return CMD_SUCCESS; } diff --git a/isisd/isis_zebra.c b/isisd/isis_zebra.c index 90959eb98c..4bd42ead86 100644 --- a/isisd/isis_zebra.c +++ b/isisd/isis_zebra.c @@ -37,6 +37,7 @@ #include "nexthop.h" #include "vrf.h" #include "libfrr.h" +#include "bfd.h" #include "isisd/isis_constants.h" #include "isisd/isis_common.h" @@ -730,6 +731,7 @@ static void isis_zebra_connected(struct zclient *zclient) zclient_register_opaque(zclient, LDP_RLFA_LABELS); zclient_register_opaque(zclient, LDP_IGP_SYNC_IF_STATE_UPDATE); zclient_register_opaque(zclient, LDP_IGP_SYNC_ANNOUNCE_UPDATE); + bfd_client_sendmsg(zclient, ZEBRA_BFD_CLIENT_REGISTER, VRF_DEFAULT); } /* diff --git a/isisd/isisd.c b/isisd/isisd.c index 37416fc1a4..cb3734bd41 100644 --- a/isisd/isisd.c +++ b/isisd/isisd.c @@ -41,6 +41,7 @@ #include "vrf.h" #include "spf_backoff.h" #include "lib/northbound_cli.h" +#include "bfd.h" #include "isisd/isis_constants.h" #include "isisd/isis_common.h" @@ -664,6 +665,8 @@ void isis_terminate() struct isis *isis; struct listnode *node, *nnode; + bfd_protocol_integration_set_shutdown(true); + if (listcount(im->isis) == 0) return; @@ -35,190 +35,88 @@ DEFINE_MTYPE_STATIC(LIB, BFD_INFO, "BFD info"); -static int bfd_debug = 0; -static struct bfd_gbl bfd_gbl; - -/* - * bfd_gbl_init - Initialize the BFD global structure - */ -void bfd_gbl_init(void) -{ - memset(&bfd_gbl, 0, sizeof(struct bfd_gbl)); -} - -/* - * bfd_gbl_exit - Called when daemon exits - */ -void bfd_gbl_exit(void) -{ - SET_FLAG(bfd_gbl.flags, BFD_GBL_FLAG_IN_SHUTDOWN); -} - -/* - * bfd_info_create - Allocate the BFD information - */ -struct bfd_info *bfd_info_create(void) -{ - struct bfd_info *bfd_info; - - bfd_info = XCALLOC(MTYPE_BFD_INFO, sizeof(struct bfd_info)); - assert(bfd_info); - - bfd_info->status = BFD_STATUS_UNKNOWN; - bfd_info->type = BFD_TYPE_NOT_CONFIGURED; - bfd_info->last_update = 0; - return bfd_info; -} - -/* - * bfd_info_free - Free the BFD information. +/** + * BFD protocol integration configuration. */ -void bfd_info_free(struct bfd_info **bfd_info) -{ - XFREE(MTYPE_BFD_INFO, *bfd_info); -} -/* - * bfd_validate_param - Validate the BFD paramter information. - */ -int bfd_validate_param(struct vty *vty, const char *dm_str, const char *rx_str, - const char *tx_str, uint8_t *dm_val, uint32_t *rx_val, - uint32_t *tx_val) -{ - *dm_val = strtoul(dm_str, NULL, 10); - *rx_val = strtoul(rx_str, NULL, 10); - *tx_val = strtoul(tx_str, NULL, 10); - return CMD_SUCCESS; -} +/** Events definitions. */ +enum bfd_session_event { + /** Remove the BFD session configuration. */ + BSE_UNINSTALL, + /** Install the BFD session configuration. */ + BSE_INSTALL, +}; -/* - * bfd_set_param - Set the configured BFD paramter values +/** + * Data structure to do the necessary tricks to hide the BFD protocol + * integration internals. */ -void bfd_set_param(struct bfd_info **bfd_info, uint32_t min_rx, uint32_t min_tx, - uint8_t detect_mult, const char *profile, int defaults, - int *command) -{ - if (!*bfd_info) { - *bfd_info = bfd_info_create(); - *command = ZEBRA_BFD_DEST_REGISTER; - } else { - if (((*bfd_info)->required_min_rx != min_rx) - || ((*bfd_info)->desired_min_tx != min_tx) - || ((*bfd_info)->detect_mult != detect_mult) - || ((*bfd_info)->profile[0] == 0 && profile) - || ((*bfd_info)->profile[0] && profile == NULL) - || (profile && (*bfd_info)->profile[0] - && strcmp((*bfd_info)->profile, profile))) - *command = ZEBRA_BFD_DEST_UPDATE; - } - - if (*command) { - (*bfd_info)->required_min_rx = min_rx; - (*bfd_info)->desired_min_tx = min_tx; - (*bfd_info)->detect_mult = detect_mult; - if (profile) - strlcpy((*bfd_info)->profile, profile, - BFD_PROFILE_NAME_LEN); - else - (*bfd_info)->profile[0] = '\0'; - } - - if (!defaults) - SET_FLAG((*bfd_info)->flags, BFD_FLAG_PARAM_CFG); - else - UNSET_FLAG((*bfd_info)->flags, BFD_FLAG_PARAM_CFG); -} +struct bfd_session_params { + /** Contains the session parameters and more. */ + struct bfd_session_arg args; + /** Contains the session state. */ + struct bfd_session_status bss; + /** Protocol implementation status update callback. */ + bsp_status_update updatecb; + /** Protocol implementation custom data pointer. */ + void *arg; -/* - * bfd_peer_sendmsg - Format and send a peer register/Unregister - * command to Zebra to be forwarded to BFD - * - * DEPRECATED: use zclient_bfd_command instead - */ -void bfd_peer_sendmsg(struct zclient *zclient, struct bfd_info *bfd_info, - int family, void *dst_ip, void *src_ip, char *if_name, - int ttl, int multihop, int cbit, int command, - int set_flag, vrf_id_t vrf_id) -{ - struct bfd_session_arg args = {}; - size_t addrlen; + /** + * Next event. + * + * This variable controls what action to execute when the command batch + * finishes. Normally we'd use `thread_add_event` value, however since + * that function is going to be called multiple times and the value + * might be different we'll use this variable to keep track of it. + */ + enum bfd_session_event lastev; + /** + * BFD session configuration event. + * + * Multiple actions might be asked during a command batch (either via + * configuration load or northbound batch), so we'll use this to + * install/uninstall the BFD session parameters only once. + */ + struct thread *installev; - /* Individual reg/dereg messages are suppressed during shutdown. */ - if (CHECK_FLAG(bfd_gbl.flags, BFD_GBL_FLAG_IN_SHUTDOWN)) { - if (bfd_debug) - zlog_debug( - "%s: Suppressing BFD peer reg/dereg messages", - __func__); - return; - } + /** BFD session installation state. */ + bool installed; - /* Check socket. */ - if (!zclient || zclient->sock < 0) { - if (bfd_debug) - zlog_debug( - "%s: Can't send BFD peer register, Zebra client not established", - __func__); - return; - } + /** Global BFD paramaters list. */ + TAILQ_ENTRY(bfd_session_params) entry; +}; - /* Fill in all arguments. */ - args.ttl = ttl; - args.cbit = cbit; - args.family = family; - args.mhop = multihop; - args.vrf_id = vrf_id; - args.command = command; - args.set_flag = set_flag; - args.bfd_info = bfd_info; - if (args.bfd_info) { - args.min_rx = bfd_info->required_min_rx; - args.min_tx = bfd_info->desired_min_tx; - args.detection_multiplier = bfd_info->detect_mult; - if (bfd_info->profile[0]) { - args.profilelen = strlen(bfd_info->profile); - strlcpy(args.profile, bfd_info->profile, - sizeof(args.profile)); - } - } +struct bfd_sessions_global { + /** + * Global BFD session parameters list for (re)installation and update + * without code duplication among daemons. + */ + TAILQ_HEAD(bsplist, bfd_session_params) bsplist; - addrlen = family == AF_INET ? sizeof(struct in_addr) - : sizeof(struct in6_addr); - memcpy(&args.dst, dst_ip, addrlen); - if (src_ip) - memcpy(&args.src, src_ip, addrlen); + /** Pointer to FRR's event manager. */ + struct thread_master *tm; + /** Pointer to zebra client data structure. */ + struct zclient *zc; - if (if_name) - args.ifnamelen = - strlcpy(args.ifname, if_name, sizeof(args.ifname)); + /** Debugging state. */ + bool debugging; + /** Is shutting down? */ + bool shutting_down; +}; - zclient_bfd_command(zclient, &args); -} +/** Global configuration variable. */ +static struct bfd_sessions_global bsglobal; -/* - * bfd_get_command_dbg_str - Convert command to a debug string. - */ -const char *bfd_get_command_dbg_str(int command) -{ - switch (command) { - case ZEBRA_BFD_DEST_REGISTER: - return "Register"; - case ZEBRA_BFD_DEST_DEREGISTER: - return "Deregister"; - case ZEBRA_BFD_DEST_UPDATE: - return "Update"; - default: - return "Unknown"; - } -} +/** Global empty address for IPv4/IPv6. */ +static const struct in6_addr i6a_zero; /* * bfd_get_peer_info - Extract the Peer information for which the BFD session * went down from the message sent from Zebra to clients. */ -struct interface *bfd_get_peer_info(struct stream *s, struct prefix *dp, - struct prefix *sp, int *status, - int *remote_cbit, - vrf_id_t vrf_id) +static struct interface *bfd_get_peer_info(struct stream *s, struct prefix *dp, + struct prefix *sp, int *status, + int *remote_cbit, vrf_id_t vrf_id) { unsigned int ifindex; struct interface *ifp = NULL; @@ -243,7 +141,7 @@ struct interface *bfd_get_peer_info(struct stream *s, struct prefix *dp, if (ifindex != 0) { ifp = if_lookup_by_index(ifindex, vrf_id); if (ifp == NULL) { - if (bfd_debug) + if (bsglobal.debugging) zlog_debug( "zebra_interface_bfd_read: Can't find interface by ifindex: %d ", ifindex); @@ -322,96 +220,6 @@ static void bfd_last_update(time_t last_update, char *buf, size_t len) } /* - * bfd_show_param - Show the BFD parameter information. - */ -void bfd_show_param(struct vty *vty, struct bfd_info *bfd_info, int bfd_tag, - int extra_space, bool use_json, json_object *json_obj) -{ - json_object *json_bfd = NULL; - - if (!bfd_info) - return; - - if (use_json) { - if (bfd_tag) - json_bfd = json_object_new_object(); - else - json_bfd = json_obj; - - json_object_int_add(json_bfd, "detectMultiplier", - bfd_info->detect_mult); - json_object_int_add(json_bfd, "rxMinInterval", - bfd_info->required_min_rx); - json_object_int_add(json_bfd, "txMinInterval", - bfd_info->desired_min_tx); - if (bfd_tag) - json_object_object_add(json_obj, "peerBfdInfo", - json_bfd); - } else { - vty_out(vty, - " %s%sDetect Multiplier: %d, Min Rx interval: %d, Min Tx interval: %d\n", - (extra_space) ? " " : "", (bfd_tag) ? "BFD: " : " ", - bfd_info->detect_mult, bfd_info->required_min_rx, - bfd_info->desired_min_tx); - } -} - -/* - * bfd_show_status - Show the BFD status information. - */ -static void bfd_show_status(struct vty *vty, struct bfd_info *bfd_info, - int bfd_tag, int extra_space, bool use_json, - json_object *json_bfd) -{ - char time_buf[32]; - - if (!bfd_info) - return; - - bfd_last_update(bfd_info->last_update, time_buf, 32); - if (use_json) { - json_object_string_add(json_bfd, "status", - bfd_get_status_str(bfd_info->status)); - json_object_string_add(json_bfd, "lastUpdate", time_buf); - } else { - vty_out(vty, " %s%sStatus: %s, Last update: %s\n", - (extra_space) ? " " : "", (bfd_tag) ? "BFD: " : " ", - bfd_get_status_str(bfd_info->status), time_buf); - } -} - -/* - * bfd_show_info - Show the BFD information. - */ -void bfd_show_info(struct vty *vty, struct bfd_info *bfd_info, int multihop, - int extra_space, bool use_json, json_object *json_obj) -{ - json_object *json_bfd = NULL; - - if (!bfd_info) - return; - - if (use_json) { - json_bfd = json_object_new_object(); - if (multihop) - json_object_string_add(json_bfd, "type", "multi hop"); - else - json_object_string_add(json_bfd, "type", "single hop"); - } else { - vty_out(vty, " %sBFD: Type: %s\n", (extra_space) ? " " : "", - (multihop) ? "multi hop" : "single hop"); - } - - bfd_show_param(vty, bfd_info, 0, extra_space, use_json, json_bfd); - bfd_show_status(vty, bfd_info, 0, extra_space, use_json, json_bfd); - - if (use_json) - json_object_object_add(json_obj, "peerBfdInfo", json_bfd); - else - vty_out(vty, "\n"); -} - -/* * bfd_client_sendmsg - Format and send a client register * command to Zebra to be forwarded to BFD */ @@ -423,7 +231,7 @@ void bfd_client_sendmsg(struct zclient *zclient, int command, /* Check socket. */ if (!zclient || zclient->sock < 0) { - if (bfd_debug) + if (bsglobal.debugging) zlog_debug( "%s: Can't send BFD client register, Zebra client not established", __func__); @@ -441,7 +249,7 @@ void bfd_client_sendmsg(struct zclient *zclient, int command, ret = zclient_send_message(zclient); if (ret == ZCLIENT_SEND_FAILURE) { - if (bfd_debug) + if (bsglobal.debugging) zlog_debug( "bfd_client_sendmsg %ld: zclient_send_message() failed", (long)getpid()); @@ -457,8 +265,8 @@ int zclient_bfd_command(struct zclient *zc, struct bfd_session_arg *args) size_t addrlen; /* Individual reg/dereg messages are suppressed during shutdown. */ - if (CHECK_FLAG(bfd_gbl.flags, BFD_GBL_FLAG_IN_SHUTDOWN)) { - if (bfd_debug) + if (bsglobal.shutting_down) { + if (bsglobal.debugging) zlog_debug( "%s: Suppressing BFD peer reg/dereg messages", __func__); @@ -467,7 +275,7 @@ int zclient_bfd_command(struct zclient *zc, struct bfd_session_arg *args) /* Check socket. */ if (!zc || zc->sock < 0) { - if (bfd_debug) + if (bsglobal.debugging) zlog_debug("%s: zclient unavailable", __func__); return -1; } @@ -557,97 +365,14 @@ int zclient_bfd_command(struct zclient *zc, struct bfd_session_arg *args) /* Send message to zebra. */ if (zclient_send_message(zc) == ZCLIENT_SEND_FAILURE) { - if (bfd_debug) + if (bsglobal.debugging) zlog_debug("%s: zclient_send_message failed", __func__); return -1; } - /* Write registration indicator into data structure. */ - if (args->bfd_info && args->set_flag) { - if (args->command == ZEBRA_BFD_DEST_REGISTER) - SET_FLAG(args->bfd_info->flags, BFD_FLAG_BFD_REG); - else if (args->command == ZEBRA_BFD_DEST_DEREGISTER) - UNSET_FLAG(args->bfd_info->flags, BFD_FLAG_BFD_REG); - } - return 0; } -/** - * BFD protocol integration configuration. - */ - -/** Events definitions. */ -enum bfd_session_event { - /** Remove the BFD session configuration. */ - BSE_UNINSTALL, - /** Install the BFD session configuration. */ - BSE_INSTALL, -}; - -/** - * Data structure to do the necessary tricks to hide the BFD protocol - * integration internals. - */ -struct bfd_session_params { - /** Contains the session parameters and more. */ - struct bfd_session_arg args; - /** Contains the session state. */ - struct bfd_session_status bss; - /** Protocol implementation status update callback. */ - bsp_status_update updatecb; - /** Protocol implementation custom data pointer. */ - void *arg; - - /** - * Next event. - * - * This variable controls what action to execute when the command batch - * finishes. Normally we'd use `thread_add_event` value, however since - * that function is going to be called multiple times and the value - * might be different we'll use this variable to keep track of it. - */ - enum bfd_session_event lastev; - /** - * BFD session configuration event. - * - * Multiple actions might be asked during a command batch (either via - * configuration load or northbound batch), so we'll use this to - * install/uninstall the BFD session parameters only once. - */ - struct thread *installev; - - /** BFD session installation state. */ - bool installed; - - /** Global BFD paramaters list. */ - TAILQ_ENTRY(bfd_session_params) entry; -}; - -struct bfd_sessions_global { - /** - * Global BFD session parameters list for (re)installation and update - * without code duplication among daemons. - */ - TAILQ_HEAD(bsplist, bfd_session_params) bsplist; - - /** Pointer to FRR's event manager. */ - struct thread_master *tm; - /** Pointer to zebra client data structure. */ - struct zclient *zc; - - /** Debugging state. */ - bool debugging; - /** Is shutting down? */ - bool shutting_down; -}; - -/** Global configuration variable. */ -static struct bfd_sessions_global bsglobal; - -/** Global empty address for IPv4/IPv6. */ -static const struct in6_addr i6a_zero; - struct bfd_session_params *bfd_sess_new(bsp_status_update updatecb, void *arg) { struct bfd_session_params *bsp; @@ -40,17 +40,6 @@ extern "C" { #define BFD_MIN_DETECT_MULT 2 #define BFD_MAX_DETECT_MULT 255 -#define BFD_GBL_FLAG_IN_SHUTDOWN (1 << 0) /* The daemon in shutdown */ -struct bfd_gbl { - uint16_t flags; -}; - -#define BFD_FLAG_PARAM_CFG (1 << 0) /* parameters have been configured */ -#define BFD_FLAG_BFD_REG (1 << 1) /* Peer registered with BFD */ -#define BFD_FLAG_BFD_TYPE_MULTIHOP (1 << 2) /* Peer registered with BFD as multihop */ -#define BFD_FLAG_BFD_CBIT_ON (1 << 3) /* Peer registered with CBIT set to on */ -#define BFD_FLAG_BFD_CHECK_CONTROLPLANE (1 << 4) /* BFD and controlplane daemon are linked */ - #define BFD_STATUS_UNKNOWN (1 << 0) /* BFD session status never received */ #define BFD_STATUS_DOWN (1 << 1) /* BFD session status is down */ #define BFD_STATUS_UP (1 << 2) /* BFD session status is up */ @@ -58,72 +47,11 @@ struct bfd_gbl { #define BFD_PROFILE_NAME_LEN 64 -#define BFD_SET_CLIENT_STATUS(current_status, new_status) \ - do { \ - (current_status) = \ - (((new_status) == BFD_STATUS_ADMIN_DOWN) ? \ - BFD_STATUS_DOWN : (new_status));\ - } while (0) - -enum bfd_sess_type { - BFD_TYPE_NOT_CONFIGURED, - BFD_TYPE_SINGLEHOP, - BFD_TYPE_MULTIHOP -}; - -struct bfd_info { - uint16_t flags; - uint8_t detect_mult; - uint32_t desired_min_tx; - uint32_t required_min_rx; - time_t last_update; - uint8_t status; - enum bfd_sess_type type; - char profile[BFD_PROFILE_NAME_LEN]; -}; - -extern struct bfd_info *bfd_info_create(void); - -extern void bfd_info_free(struct bfd_info **bfd_info); - -extern int bfd_validate_param(struct vty *vty, const char *dm_str, - const char *rx_str, const char *tx_str, - uint8_t *dm_val, uint32_t *rx_val, - uint32_t *tx_val); - -extern void bfd_set_param(struct bfd_info **bfd_info, uint32_t min_rx, - uint32_t min_tx, uint8_t detect_mult, - const char *profile, int defaults, int *command); -extern void bfd_peer_sendmsg(struct zclient *zclient, struct bfd_info *bfd_info, - int family, void *dst_ip, void *src_ip, - char *if_name, int ttl, int multihop, int cbit, - int command, int set_flag, vrf_id_t vrf_id); - -extern const char *bfd_get_command_dbg_str(int command); - -extern struct interface *bfd_get_peer_info(struct stream *s, struct prefix *dp, - struct prefix *sp, int *status, - int *remote_cbit, - vrf_id_t vrf_id); - const char *bfd_get_status_str(int status); -extern void bfd_show_param(struct vty *vty, struct bfd_info *bfd_info, - int bfd_tag, int extra_space, bool use_json, - json_object *json_obj); - -extern void bfd_show_info(struct vty *vty, struct bfd_info *bfd_info, - int multihop, int extra_space, bool use_json, - json_object *json_obj); - extern void bfd_client_sendmsg(struct zclient *zclient, int command, vrf_id_t vrf_id); -extern void bfd_gbl_init(void); - -extern void bfd_gbl_exit(void); - - /* * BFD new API. */ @@ -519,12 +447,6 @@ struct bfd_session_arg { uint32_t min_tx; /** Detection multiplier. */ uint32_t detection_multiplier; - - /** BFD client information output. */ - struct bfd_info *bfd_info; - - /** Write registration indicator. */ - uint8_t set_flag; }; /** diff --git a/lib/grammar_sandbox_main.c b/lib/grammar_sandbox_main.c index 2066e4c96d..6469b49262 100644 --- a/lib/grammar_sandbox_main.c +++ b/lib/grammar_sandbox_main.c @@ -54,7 +54,6 @@ int main(int argc, char **argv) vty_init(master, true); lib_cmd_init(); - yang_init(true); nb_init(master, NULL, 0, false); vty_stdio(vty_do_exit); @@ -266,16 +266,16 @@ void if_update_to_new_vrf(struct interface *ifp, vrf_id_t vrf_id) char oldpath[XPATH_MAXLEN]; char newpath[XPATH_MAXLEN]; - if_dnode = yang_dnode_get( + if_dnode = yang_dnode_getf( running_config->dnode, "/frr-interface:lib/interface[name='%s'][vrf='%s']/vrf", ifp->name, old_vrf->name); if (if_dnode) { - yang_dnode_get_path(if_dnode->parent, oldpath, + yang_dnode_get_path(lyd_parent(if_dnode), oldpath, sizeof(oldpath)); yang_dnode_change_leaf(if_dnode, vrf->name); - yang_dnode_get_path(if_dnode->parent, newpath, + yang_dnode_get_path(lyd_parent(if_dnode), newpath, sizeof(newpath)); nb_running_move_tree(oldpath, newpath); running_config->version++; @@ -393,6 +393,7 @@ struct connected { #define ZEBRA_IFC_REAL (1 << 0) #define ZEBRA_IFC_CONFIGURED (1 << 1) #define ZEBRA_IFC_QUEUED (1 << 2) +#define ZEBRA_IFC_DOWN (1 << 3) /* The ZEBRA_IFC_REAL flag should be set if and only if this address exists in the kernel and is actually usable. (A case where it exists @@ -406,6 +407,8 @@ struct connected { in the kernel. It may and should be set although the address might not be usable yet. (compare with ZEBRA_IFC_REAL) + The ZEBRA_IFC_DOWN flag is used to record that an address is + present, but down/unavailable. */ /* Flags for connected address. */ diff --git a/lib/libfrr.c b/lib/libfrr.c index 970e82c064..0817182f7a 100644 --- a/lib/libfrr.c +++ b/lib/libfrr.c @@ -765,16 +765,14 @@ struct thread_master *frr_init(void) log_ref_vty_init(); lib_error_init(); - yang_init(true); - - debug_init_cli(); - nb_init(master, di->yang_modules, di->n_yang_modules, true); if (nb_db_init() != NB_OK) flog_warn(EC_LIB_NB_DATABASE, "%s: failed to initialize northbound database", __func__); + debug_init_cli(); + return master; } diff --git a/lib/nexthop.c b/lib/nexthop.c index 8439398149..0ac6c0ae1b 100644 --- a/lib/nexthop.c +++ b/lib/nexthop.c @@ -62,7 +62,8 @@ static int _nexthop_labels_cmp(const struct nexthop *nh1, if (nhl1->num_labels < nhl2->num_labels) return -1; - return memcmp(nhl1->label, nhl2->label, nhl1->num_labels); + return memcmp(nhl1->label, nhl2->label, + (nhl1->num_labels * sizeof(mpls_label_t))); } int nexthop_g_addr_cmp(enum nexthop_types_t type, const union g_addr *addr1, @@ -203,6 +204,105 @@ int nexthop_cmp(const struct nexthop *next1, const struct nexthop *next2) } /* + * More-limited comparison function used to detect duplicate + * nexthops. This is used in places where we don't need the full + * comparison of 'nexthop_cmp()'. + */ +int nexthop_cmp_basic(const struct nexthop *nh1, + const struct nexthop *nh2) +{ + int ret = 0; + const struct mpls_label_stack *nhl1 = NULL; + const struct mpls_label_stack *nhl2 = NULL; + + if (nh1 == NULL && nh2 == NULL) + return 0; + + if (nh1 && !nh2) + return 1; + + if (!nh1 && nh2) + return -1; + + if (nh1->vrf_id < nh2->vrf_id) + return -1; + + if (nh1->vrf_id > nh2->vrf_id) + return 1; + + if (nh1->type < nh2->type) + return -1; + + if (nh1->type > nh2->type) + return 1; + + if (nh1->weight < nh2->weight) + return -1; + + if (nh1->weight > nh2->weight) + return 1; + + switch (nh1->type) { + case NEXTHOP_TYPE_IPV4: + case NEXTHOP_TYPE_IPV6: + ret = nexthop_g_addr_cmp(nh1->type, &nh1->gate, &nh2->gate); + if (ret != 0) + return ret; + break; + case NEXTHOP_TYPE_IPV4_IFINDEX: + case NEXTHOP_TYPE_IPV6_IFINDEX: + ret = nexthop_g_addr_cmp(nh1->type, &nh1->gate, &nh2->gate); + if (ret != 0) + return ret; + /* Intentional Fall-Through */ + case NEXTHOP_TYPE_IFINDEX: + if (nh1->ifindex < nh2->ifindex) + return -1; + + if (nh1->ifindex > nh2->ifindex) + return 1; + break; + case NEXTHOP_TYPE_BLACKHOLE: + if (nh1->bh_type < nh2->bh_type) + return -1; + + if (nh1->bh_type > nh2->bh_type) + return 1; + break; + } + + /* Compare source addr */ + ret = nexthop_g_addr_cmp(nh1->type, &nh1->src, &nh2->src); + if (ret != 0) + goto done; + + nhl1 = nh1->nh_label; + nhl2 = nh2->nh_label; + + /* No labels is a match */ + if (!nhl1 && !nhl2) + return 0; + + if (nhl1 && !nhl2) + return 1; + + if (nhl2 && !nhl1) + return -1; + + if (nhl1->num_labels > nhl2->num_labels) + return 1; + + if (nhl1->num_labels < nhl2->num_labels) + return -1; + + ret = memcmp(nhl1->label, nhl2->label, + (nhl1->num_labels * sizeof(mpls_label_t))); + +done: + return ret; +} + +/* * nexthop_type_to_str */ const char *nexthop_type_to_str(enum nexthop_types_t nh_type) diff --git a/lib/nexthop.h b/lib/nexthop.h index f1ad195cf4..d6ea83cf06 100644 --- a/lib/nexthop.h +++ b/lib/nexthop.h @@ -207,6 +207,11 @@ extern int nexthop_g_addr_cmp(enum nexthop_types_t type, const union g_addr *addr1, const union g_addr *addr2); +/* More-limited comparison function used to detect duplicate nexthops. + * Returns -1, 0, 1 + */ +int nexthop_cmp_basic(const struct nexthop *nh1, const struct nexthop *nh2); + extern const char *nexthop_type_to_str(enum nexthop_types_t nh_type); extern bool nexthop_labels_match(const struct nexthop *nh1, const struct nexthop *nh2); diff --git a/lib/northbound.c b/lib/northbound.c index 34ad5dbfa9..3634fed04f 100644 --- a/lib/northbound.c +++ b/lib/northbound.c @@ -83,14 +83,14 @@ static int nb_transaction_process(enum nb_event event, char *errmsg, size_t errmsg_len); static void nb_transaction_apply_finish(struct nb_transaction *transaction, char *errmsg, size_t errmsg_len); -static int nb_oper_data_iter_node(const struct lys_node *snode, +static int nb_oper_data_iter_node(const struct lysc_node *snode, const char *xpath, const void *list_entry, const struct yang_list_keys *list_keys, struct yang_translator *translator, bool first, uint32_t flags, nb_oper_data_cb cb, void *arg); -static int nb_node_check_config_only(const struct lys_node *snode, void *arg) +static int nb_node_check_config_only(const struct lysc_node *snode, void *arg) { bool *config_only = arg; @@ -102,10 +102,10 @@ static int nb_node_check_config_only(const struct lys_node *snode, void *arg) return YANG_ITER_CONTINUE; } -static int nb_node_new_cb(const struct lys_node *snode, void *arg) +static int nb_node_new_cb(const struct lysc_node *snode, void *arg) { struct nb_node *nb_node; - struct lys_node *sparent, *sparent_list; + struct lysc_node *sparent, *sparent_list; nb_node = XCALLOC(MTYPE_NB_NODE, sizeof(*nb_node)); yang_snode_get_path(snode, YANG_PATH_DATA, nb_node->xpath, @@ -129,10 +129,7 @@ static int nb_node_new_cb(const struct lys_node *snode, void *arg) SET_FLAG(nb_node->flags, F_NB_NODE_CONFIG_ONLY); } if (CHECK_FLAG(snode->nodetype, LYS_LIST)) { - struct lys_node_list *slist; - - slist = (struct lys_node_list *)snode; - if (slist->keys_size == 0) + if (yang_snode_num_keys(snode) == 0) SET_FLAG(nb_node->flags, F_NB_NODE_KEYLESS_LIST); } @@ -142,18 +139,18 @@ static int nb_node_new_cb(const struct lys_node *snode, void *arg) */ nb_node->snode = snode; assert(snode->priv == NULL); - lys_set_private(snode, nb_node); + ((struct lysc_node *)snode)->priv = nb_node; return YANG_ITER_CONTINUE; } -static int nb_node_del_cb(const struct lys_node *snode, void *arg) +static int nb_node_del_cb(const struct lysc_node *snode, void *arg) { struct nb_node *nb_node; nb_node = snode->priv; if (nb_node) { - lys_set_private(snode, NULL); + ((struct lysc_node *)snode)->priv = NULL; XFREE(MTYPE_NB_NODE, nb_node); } @@ -170,15 +167,15 @@ void nb_nodes_delete(void) yang_snodes_iterate(NULL, nb_node_del_cb, 0, NULL); } -struct nb_node *nb_node_find(const char *xpath) +struct nb_node *nb_node_find(const char *path) { - const struct lys_node *snode; + const struct lysc_node *snode; /* - * Use libyang to find the schema node associated to the xpath and get + * Use libyang to find the schema node associated to the path and get * the northbound node from there (snode private pointer). */ - snode = ly_ctx_get_node(ly_native_ctx, NULL, xpath, 0); + snode = lys_find_path(ly_native_ctx, NULL, path, 0); if (!snode) return NULL; @@ -288,7 +285,7 @@ static unsigned int nb_node_validate_priority(const struct nb_node *nb_node) return 0; } -static int nb_node_validate(const struct lys_node *snode, void *arg) +static int nb_node_validate(const struct lysc_node *snode, void *arg) { struct nb_node *nb_node = snode->priv; unsigned int *errors = arg; @@ -339,7 +336,7 @@ int nb_config_merge(struct nb_config *config_dst, struct nb_config *config_src, { int ret; - ret = lyd_merge(config_dst->dnode, config_src->dnode, LYD_OPT_EXPLICIT); + ret = lyd_merge_tree(&config_dst->dnode, config_src->dnode, 0); if (ret != 0) flog_warn(EC_LIB_LIBYANG, "%s: lyd_merge() failed", __func__); @@ -451,7 +448,7 @@ static void nb_config_diff_created(const struct lyd_node *dnode, uint32_t *seq, switch (dnode->schema->nodetype) { case LYS_LEAF: case LYS_LEAFLIST: - if (lyd_wd_default((struct lyd_node_leaf_list *)dnode)) + if (lyd_is_default(dnode)) break; if (nb_operation_is_valid(NB_OP_CREATE, dnode->schema)) @@ -470,7 +467,7 @@ static void nb_config_diff_created(const struct lyd_node *dnode, uint32_t *seq, dnode); /* Process child nodes recursively. */ - LY_TREE_FOR (dnode->child, child) { + LY_LIST_FOR (lyd_child(dnode), child) { nb_config_diff_created(child, seq, changes); } break; @@ -497,52 +494,142 @@ static void nb_config_diff_deleted(const struct lyd_node *dnode, uint32_t *seq, * do is to call the "destroy" callbacks of their child nodes * when applicable (i.e. optional nodes). */ - LY_TREE_FOR (dnode->child, child) { + LY_LIST_FOR (lyd_child(dnode), child) { nb_config_diff_deleted(child, seq, changes); } } } +static int nb_lyd_diff_get_op(const struct lyd_node *dnode) +{ + const struct lyd_meta *meta; + LY_LIST_FOR (dnode->meta, meta) { + if (strcmp(meta->name, "operation") + || strcmp(meta->annotation->module->name, "yang")) + continue; + return lyd_get_meta_value(meta)[0]; + } + return 'n'; +} + +static inline void nb_config_diff_dnode_log_path(const char *context, + const char *path, + const struct lyd_node *dnode) +{ + if (dnode->schema->nodetype & LYD_NODE_TERM) + zlog_debug("nb_config_diff: %s: %s: %s", context, path, + lyd_get_value(dnode)); + else + zlog_debug("nb_config_diff: %s: %s", context, path); +} + +static inline void nb_config_diff_dnode_log(const char *context, + const struct lyd_node *dnode) +{ + if (!dnode) { + zlog_debug("nb_config_diff: %s: NULL", context); + return; + } + + char *path = lyd_path(dnode, LYD_PATH_STD, NULL, 0); + nb_config_diff_dnode_log_path(context, path, dnode); + free(path); +} + /* Calculate the delta between two different configurations. */ static void nb_config_diff(const struct nb_config *config1, const struct nb_config *config2, struct nb_config_cbs *changes) { - struct lyd_difflist *diff; - uint32_t seq = 0; + struct lyd_node *diff = NULL; + const struct lyd_node *root, *dnode; + struct lyd_node *target; + int op; + LY_ERR err; + char *path; + +#if 0 /* Useful (but noisy) when debugging diff code, and for improving later \ + */ + if (DEBUG_MODE_CHECK(&nb_dbg_cbs_config, DEBUG_MODE_ALL)) { + LY_LIST_FOR(config1->dnode, root) { + LYD_TREE_DFS_BEGIN(root, dnode) { + nb_config_diff_dnode_log("from", dnode); + LYD_TREE_DFS_END(root, dnode); + } + } + LY_LIST_FOR(config2->dnode, root) { + LYD_TREE_DFS_BEGIN(root, dnode) { + nb_config_diff_dnode_log("to", dnode); + LYD_TREE_DFS_END(root, dnode); + } + } + } +#endif - diff = lyd_diff(config1->dnode, config2->dnode, - LYD_DIFFOPT_WITHDEFAULTS); - assert(diff); + err = lyd_diff_siblings(config1->dnode, config2->dnode, + LYD_DIFF_DEFAULTS, &diff); + assert(!err); - for (int i = 0; diff->type[i] != LYD_DIFF_END; i++) { - LYD_DIFFTYPE type; - struct lyd_node *dnode; + if (diff && DEBUG_MODE_CHECK(&nb_dbg_cbs_config, DEBUG_MODE_ALL)) + nb_config_diff_dnode_log("iterating diff", diff); - type = diff->type[i]; + uint32_t seq = 0; + LY_LIST_FOR (diff, root) { + LYD_TREE_DFS_BEGIN (root, dnode) { + op = nb_lyd_diff_get_op(dnode); + + path = lyd_path(dnode, LYD_PATH_STD, NULL, 0); + +#if 0 /* Useful (but noisy) when debugging diff code, and for improving later \ + */ + if (DEBUG_MODE_CHECK(&nb_dbg_cbs_config, DEBUG_MODE_ALL)) { + char context[80]; + snprintf(context, sizeof(context), + "iterating diff: oper: %c seq: %u", op, seq); + nb_config_diff_dnode_log_path(context, path, dnode); + } +#endif + switch (op) { + case 'c': /* create */ + /* + * This is rather inefficient, but when we use + * dnode from the diff instead of the + * candidate config node we get failures when + * looking up default values, etc, based on + * the diff tree. + */ + target = yang_dnode_get(config2->dnode, path); + nb_config_diff_created(target, &seq, changes); + + /* Skip rest of sub-tree, move to next sibling + */ + LYD_TREE_DFS_continue = 1; + break; + case 'd': /* delete */ + target = yang_dnode_get(config1->dnode, path); + nb_config_diff_deleted(target, &seq, changes); - switch (type) { - case LYD_DIFF_CREATED: - dnode = diff->second[i]; - nb_config_diff_created(dnode, &seq, changes); - break; - case LYD_DIFF_DELETED: - dnode = diff->first[i]; - nb_config_diff_deleted(dnode, &seq, changes); - break; - case LYD_DIFF_CHANGED: - dnode = diff->second[i]; - nb_config_diff_add_change(changes, NB_OP_MODIFY, &seq, - dnode); - break; - case LYD_DIFF_MOVEDAFTER1: - case LYD_DIFF_MOVEDAFTER2: - default: - continue; + /* Skip rest of sub-tree, move to next sibling + */ + LYD_TREE_DFS_continue = 1; + break; + case 'r': /* replace */ + /* either moving an entry or changing a value */ + target = yang_dnode_get(config2->dnode, path); + assert(target); + nb_config_diff_add_change(changes, NB_OP_MODIFY, + &seq, target); + break; + case 'n': /* none */ + default: + break; + } + free(path); + LYD_TREE_DFS_END(root, dnode); } } - lyd_free_diff(diff); + lyd_free_tree(diff); } int nb_candidate_edit(struct nb_config *candidate, @@ -554,6 +641,7 @@ int nb_candidate_edit(struct nb_config *candidate, struct lyd_node *dnode, *dep_dnode; char xpath_edit[XPATH_MAXLEN]; char dep_xpath[XPATH_MAXLEN]; + LY_ERR err; /* Use special notation for leaf-lists (RFC 6020, section 9.13.5). */ if (nb_node->snode->nodetype == LYS_LEAFLIST) @@ -565,11 +653,15 @@ int nb_candidate_edit(struct nb_config *candidate, switch (operation) { case NB_OP_CREATE: case NB_OP_MODIFY: - ly_errno = 0; - dnode = lyd_new_path(candidate->dnode, ly_native_ctx, - xpath_edit, (void *)data->value, 0, - LYD_PATH_OPT_UPDATE); - if (dnode) { + err = lyd_new_path(candidate->dnode, ly_native_ctx, xpath_edit, + (void *)data->value, LYD_NEW_PATH_UPDATE, + &dnode); + if (err) { + flog_warn(EC_LIB_LIBYANG, + "%s: lyd_new_path(%s) failed: %d", __func__, + xpath_edit, err); + return NB_ERR; + } else if (dnode) { /* * create dependency * @@ -581,22 +673,18 @@ int nb_candidate_edit(struct nb_config *candidate, nb_node->dep_cbs.get_dependency_xpath( dnode, dep_xpath); - ly_errno = 0; - dep_dnode = lyd_new_path(candidate->dnode, - ly_native_ctx, - dep_xpath, NULL, 0, - LYD_PATH_OPT_UPDATE); - if (!dep_dnode && ly_errno) { - flog_warn(EC_LIB_LIBYANG, - "%s: lyd_new_path(%s) failed", - __func__, dep_xpath); + err = lyd_new_path(candidate->dnode, + ly_native_ctx, dep_xpath, + NULL, LYD_NEW_PATH_UPDATE, + &dep_dnode); + if (err) { + flog_warn( + EC_LIB_LIBYANG, + "%s: lyd_new_path(%s) failed: %d", + __func__, dep_xpath, err); return NB_ERR; } } - } else if (ly_errno) { - flog_warn(EC_LIB_LIBYANG, "%s: lyd_new_path(%s) failed", - __func__, xpath_edit); - return NB_ERR; } break; case NB_OP_DESTROY: @@ -613,9 +701,9 @@ int nb_candidate_edit(struct nb_config *candidate, dep_dnode = yang_dnode_get(candidate->dnode, dep_xpath); if (dep_dnode) - lyd_free(dep_dnode); + lyd_free_tree(dep_dnode); } - lyd_free(dnode); + lyd_free_tree(dnode); break; case NB_OP_MOVE: /* TODO: update configuration. */ @@ -660,9 +748,8 @@ int nb_candidate_update(struct nb_config *candidate) static int nb_candidate_validate_yang(struct nb_config *candidate, char *errmsg, size_t errmsg_len) { - if (lyd_validate(&candidate->dnode, - LYD_OPT_STRICT | LYD_OPT_CONFIG | LYD_OPT_WHENAUTODEL, - ly_native_ctx) + if (lyd_validate_all(&candidate->dnode, ly_native_ctx, + LYD_VALIDATE_NO_STATE, NULL) != 0) { yang_print_errors(ly_native_ctx, errmsg, errmsg_len); return NB_ERR_VALIDATION; @@ -678,12 +765,12 @@ static int nb_candidate_validate_code(struct nb_context *context, char *errmsg, size_t errmsg_len) { struct nb_config_cb *cb; - struct lyd_node *root, *next, *child; + struct lyd_node *root, *child; int ret; /* First validate the candidate as a whole. */ - LY_TREE_FOR (candidate->dnode, root) { - LY_TREE_DFS_BEGIN (root, next, child) { + LY_LIST_FOR (candidate->dnode, root) { + LYD_TREE_DFS_BEGIN (root, child) { struct nb_node *nb_node; nb_node = child->schema->priv; @@ -696,7 +783,7 @@ static int nb_candidate_validate_code(struct nb_context *context, return NB_ERR_VALIDATION; next: - LY_TREE_DFS_END(root, next, child); + LYD_TREE_DFS_END(root, child); } } @@ -1439,7 +1526,7 @@ static void nb_transaction_apply_finish(struct nb_transaction *transaction, if (change->cb.operation == NB_OP_DESTROY) { char xpath[XPATH_MAXLEN]; - dnode = dnode->parent; + dnode = lyd_parent(dnode); if (!dnode) break; @@ -1470,7 +1557,7 @@ static void nb_transaction_apply_finish(struct nb_transaction *transaction, nb_apply_finish_cb_new(&cbs, nb_node, dnode); next: - dnode = dnode->parent; + dnode = lyd_parent(dnode); } } @@ -1487,16 +1574,16 @@ static void nb_transaction_apply_finish(struct nb_transaction *transaction, } } -static int nb_oper_data_iter_children(const struct lys_node *snode, +static int nb_oper_data_iter_children(const struct lysc_node *snode, const char *xpath, const void *list_entry, const struct yang_list_keys *list_keys, struct yang_translator *translator, bool first, uint32_t flags, nb_oper_data_cb cb, void *arg) { - struct lys_node *child; + const struct lysc_node *child; - LY_TREE_FOR (snode->child, child) { + LY_LIST_FOR (lysc_node_child(snode), child) { int ret; ret = nb_oper_data_iter_node(child, xpath, list_entry, @@ -1521,7 +1608,7 @@ static int nb_oper_data_iter_leaf(const struct nb_node *nb_node, return NB_OK; /* Ignore list keys. */ - if (lys_is_key((struct lys_node_leaf *)nb_node->snode, NULL)) + if (lysc_is_key(nb_node->snode)) return NB_OK; data = nb_callback_get_elem(nb_node, xpath, list_entry); @@ -1605,7 +1692,7 @@ static int nb_oper_data_iter_list(const struct nb_node *nb_node, struct yang_translator *translator, uint32_t flags, nb_oper_data_cb cb, void *arg) { - struct lys_node_list *slist = (struct lys_node_list *)nb_node->snode; + const struct lysc_node *snode = nb_node->snode; const void *list_entry = NULL; uint32_t position = 1; @@ -1614,6 +1701,7 @@ static int nb_oper_data_iter_list(const struct nb_node *nb_node, /* Iterate over all list entries. */ do { + const struct lysc_node_leaf *skey; struct yang_list_keys list_keys; char xpath[XPATH_MAXLEN * 2]; int ret; @@ -1638,12 +1726,16 @@ static int nb_oper_data_iter_list(const struct nb_node *nb_node, /* Build XPath of the list entry. */ strlcpy(xpath, xpath_list, sizeof(xpath)); - for (unsigned int i = 0; i < list_keys.num; i++) { + unsigned int i = 0; + LY_FOR_KEYS (snode, skey) { + assert(i < list_keys.num); snprintf(xpath + strlen(xpath), sizeof(xpath) - strlen(xpath), - "[%s='%s']", slist->keys[i]->name, + "[%s='%s']", skey->name, list_keys.key[i]); + i++; } + assert(i == list_keys.num); } else { /* * Keyless list - build XPath using a positional index. @@ -1664,7 +1756,7 @@ static int nb_oper_data_iter_list(const struct nb_node *nb_node, return NB_OK; } -static int nb_oper_data_iter_node(const struct lys_node *snode, +static int nb_oper_data_iter_node(const struct lysc_node *snode, const char *xpath_parent, const void *list_entry, const struct yang_list_keys *list_keys, @@ -1683,18 +1775,16 @@ static int nb_oper_data_iter_node(const struct lys_node *snode, /* Update XPath. */ strlcpy(xpath, xpath_parent, sizeof(xpath)); if (!first && snode->nodetype != LYS_USES) { - struct lys_node *parent; + struct lysc_node *parent; /* Get the real parent. */ parent = snode->parent; - while (parent && parent->nodetype == LYS_USES) - parent = parent->parent; /* * When necessary, include the namespace of the augmenting * module. */ - if (parent && parent->nodetype == LYS_AUGMENT) + if (parent && parent->module != snode->module) snprintf(xpath + strlen(xpath), sizeof(xpath) - strlen(xpath), "/%s:%s", snode->module->name, snode->name); @@ -1769,12 +1859,14 @@ int nb_oper_data_iterate(const char *xpath, struct yang_translator *translator, * Create a data tree from the XPath so that we can parse the keys of * all YANG lists (if any). */ - ly_errno = 0; - dnode = lyd_new_path(NULL, ly_native_ctx, xpath, NULL, 0, - LYD_PATH_OPT_UPDATE | LYD_PATH_OPT_NOPARENTRET); - if (!dnode) { - flog_warn(EC_LIB_LIBYANG, "%s: lyd_new_path() failed", - __func__); + + LY_ERR err = lyd_new_path(NULL, ly_native_ctx, xpath, NULL, + LYD_NEW_PATH_UPDATE, &dnode); + if (err || !dnode) { + const char *errmsg = + err ? ly_errmsg(ly_native_ctx) : "node not found"; + flog_warn(EC_LIB_LIBYANG, "%s: lyd_new_path() failed %s", + __func__, errmsg); return NB_ERR; } @@ -1782,8 +1874,8 @@ int nb_oper_data_iterate(const char *xpath, struct yang_translator *translator, * Create a linked list to sort the data nodes starting from the root. */ list_dnodes = list_new(); - for (dn = dnode; dn; dn = dn->parent) { - if (dn->schema->nodetype != LYS_LIST || !dn->child) + for (dn = dnode; dn; dn = lyd_parent(dn)) { + if (dn->schema->nodetype != LYS_LIST || !lyd_child(dn)) continue; listnode_add_head(list_dnodes, dn); } @@ -1798,18 +1890,16 @@ int nb_oper_data_iterate(const char *xpath, struct yang_translator *translator, /* Obtain the list entry keys. */ memset(&list_keys, 0, sizeof(list_keys)); - LY_TREE_FOR (dn->child, child) { - if (!lys_is_key((struct lys_node_leaf *)child->schema, - NULL)) - continue; + LY_LIST_FOR (lyd_child(dn), child) { + if (!lysc_is_key(child->schema)) + break; strlcpy(list_keys.key[n], yang_dnode_get_string(child, NULL), sizeof(list_keys.key[n])); n++; } list_keys.num = n; - if (list_keys.num - != ((struct lys_node_list *)dn->schema)->keys_size) { + if (list_keys.num != yang_snode_num_keys(dn->schema)) { list_delete(&list_dnodes); yang_dnode_free(dnode); return NB_ERR_NOT_FOUND; @@ -1837,7 +1927,7 @@ int nb_oper_data_iterate(const char *xpath, struct yang_translator *translator, } /* If a list entry was given, iterate over that list entry only. */ - if (dnode->schema->nodetype == LYS_LIST && dnode->child) + if (dnode->schema->nodetype == LYS_LIST && lyd_child(dnode)) ret = nb_oper_data_iter_children( nb_node->snode, xpath, list_entry, &list_keys, translator, true, flags, cb, arg); @@ -1853,11 +1943,11 @@ int nb_oper_data_iterate(const char *xpath, struct yang_translator *translator, } bool nb_operation_is_valid(enum nb_operation operation, - const struct lys_node *snode) + const struct lysc_node *snode) { struct nb_node *nb_node = snode->priv; - struct lys_node_container *scontainer; - struct lys_node_leaf *sleaf; + struct lysc_node_container *scontainer; + struct lysc_node_leaf *sleaf; switch (operation) { case NB_OP_CREATE: @@ -1866,13 +1956,13 @@ bool nb_operation_is_valid(enum nb_operation operation, switch (snode->nodetype) { case LYS_LEAF: - sleaf = (struct lys_node_leaf *)snode; - if (sleaf->type.base != LY_TYPE_EMPTY) + sleaf = (struct lysc_node_leaf *)snode; + if (sleaf->type->basetype != LY_TYPE_EMPTY) return false; break; case LYS_CONTAINER: - scontainer = (struct lys_node_container *)snode; - if (!scontainer->presence) + scontainer = (struct lysc_node_container *)snode; + if (!CHECK_FLAG(scontainer->flags, LYS_PRESENCE)) return false; break; case LYS_LIST: @@ -1888,12 +1978,12 @@ bool nb_operation_is_valid(enum nb_operation operation, switch (snode->nodetype) { case LYS_LEAF: - sleaf = (struct lys_node_leaf *)snode; - if (sleaf->type.base == LY_TYPE_EMPTY) + sleaf = (struct lysc_node_leaf *)snode; + if (sleaf->type->basetype == LY_TYPE_EMPTY) return false; /* List keys can't be modified. */ - if (lys_is_key(sleaf, NULL)) + if (lysc_is_key(sleaf)) return false; break; default: @@ -1906,10 +1996,10 @@ bool nb_operation_is_valid(enum nb_operation operation, switch (snode->nodetype) { case LYS_LEAF: - sleaf = (struct lys_node_leaf *)snode; + sleaf = (struct lysc_node_leaf *)snode; /* List keys can't be deleted. */ - if (lys_is_key(sleaf, NULL)) + if (lysc_is_key(sleaf)) return false; /* @@ -1925,8 +2015,8 @@ bool nb_operation_is_valid(enum nb_operation operation, return false; break; case LYS_CONTAINER: - scontainer = (struct lys_node_container *)snode; - if (!scontainer->presence) + scontainer = (struct lysc_node_container *)snode; + if (!CHECK_FLAG(scontainer->flags, LYS_PRESENCE)) return false; break; case LYS_LIST: @@ -1943,7 +2033,7 @@ bool nb_operation_is_valid(enum nb_operation operation, switch (snode->nodetype) { case LYS_LIST: case LYS_LEAFLIST: - if (!CHECK_FLAG(snode->flags, LYS_USERORDERED)) + if (!CHECK_FLAG(snode->flags, LYS_ORDBY_USER)) return false; break; default: @@ -1964,8 +2054,8 @@ bool nb_operation_is_valid(enum nb_operation operation, case LYS_LEAFLIST: break; case LYS_CONTAINER: - scontainer = (struct lys_node_container *)snode; - if (!scontainer->presence) + scontainer = (struct lysc_node_container *)snode; + if (!CHECK_FLAG(scontainer->flags, LYS_PRESENCE)) return false; break; default: @@ -2114,7 +2204,7 @@ static void *nb_running_unset_entry_helper(const struct lyd_node *dnode) /* Unset user pointers from the child nodes. */ if (CHECK_FLAG(dnode->schema->nodetype, LYS_LIST | LYS_CONTAINER)) { - LY_TREE_FOR (dnode->child, child) { + LY_LIST_FOR (lyd_child(dnode), child) { (void)nb_running_unset_entry_helper(child); } } @@ -2156,7 +2246,7 @@ static void *nb_running_get_entry_worker(const struct lyd_node *dnode, rec_flag = rec_search; - dnode = dnode->parent; + dnode = lyd_parent(dnode); } if (!abort_if_not_found) @@ -2312,27 +2402,42 @@ void nb_validate_callbacks(void) } } -void nb_load_module(const struct frr_yang_module_info *module_info) -{ - struct yang_module *module; - - DEBUGD(&nb_dbg_events, "northbound: loading %s.yang", - module_info->name); - - module = yang_module_load(module_info->name); - yang_snodes_iterate(module->info, nb_node_new_cb, 0, NULL); - nb_load_callbacks(module_info); -} void nb_init(struct thread_master *tm, const struct frr_yang_module_info *const modules[], size_t nmodules, bool db_enabled) { + struct yang_module *loaded[nmodules], **loadedp = loaded; + bool explicit_compile; + + /* + * Currently using this explicit compile feature in libyang2 leads to + * incorrect behavior in FRR. The functionality suppresses the compiling + * of modules until they have all been loaded into the context. This + * avoids multiple recompiles of the same modules as they are + * imported/augmented etc. + */ + explicit_compile = false; + nb_db_enabled = db_enabled; + yang_init(true, explicit_compile); + /* Load YANG modules and their corresponding northbound callbacks. */ - for (size_t i = 0; i < nmodules; i++) - nb_load_module(modules[i]); + for (size_t i = 0; i < nmodules; i++) { + DEBUGD(&nb_dbg_events, "northbound: loading %s.yang", + modules[i]->name); + *loadedp++ = yang_module_load(modules[i]->name); + } + + if (explicit_compile) + yang_init_loading_complete(); + + /* Initialize the compiled nodes with northbound data */ + for (size_t i = 0; i < nmodules; i++) { + yang_snodes_iterate(loaded[i]->info, nb_node_new_cb, 0, NULL); + nb_load_callbacks(modules[i]); + } /* Validate northbound callbacks. */ nb_validate_callbacks(); diff --git a/lib/northbound.h b/lib/northbound.h index 417ecc81ea..7ccab5cad5 100644 --- a/lib/northbound.h +++ b/lib/northbound.h @@ -537,7 +537,7 @@ struct nb_dependency_callbacks { */ struct nb_node { /* Back pointer to the libyang schema node. */ - const struct lys_node *snode; + const struct lysc_node *snode; /* Data path of this YANG node. */ char xpath[XPATH_MAXLEN]; @@ -685,7 +685,7 @@ struct nb_transaction { }; /* Callback function used by nb_oper_data_iterate(). */ -typedef int (*nb_oper_data_cb)(const struct lys_node *snode, +typedef int (*nb_oper_data_cb)(const struct lysc_node *snode, struct yang_translator *translator, struct yang_data *data, void *arg); @@ -1114,7 +1114,7 @@ extern int nb_oper_data_iterate(const char *xpath, * true if the operation is valid, false otherwise. */ extern bool nb_operation_is_valid(enum nb_operation operation, - const struct lys_node *snode); + const struct lysc_node *snode); /* * Send a YANG notification. This is a no-op unless the 'nb_notification_send' @@ -1285,15 +1285,6 @@ extern const char *nb_client_name(enum nb_client client); void nb_validate_callbacks(void); /* - * Load a YANG module with its corresponding northbound callbacks. - * - * module_info - * Pointer to structure containing the module name and its northbound - * callbacks. - */ -void nb_load_module(const struct frr_yang_module_info *module_info); - -/* * Initialize the northbound layer. Should be called only once during the * daemon initialization process. * diff --git a/lib/northbound_cli.c b/lib/northbound_cli.c index 81e30bce49..d291a1f24d 100644 --- a/lib/northbound_cli.c +++ b/lib/northbound_cli.c @@ -448,6 +448,7 @@ static int nb_cli_candidate_load_file(struct vty *vty, struct ly_ctx *ly_ctx; int ly_format; char buf[BUFSIZ]; + LY_ERR err; switch (format) { case NB_CFG_FMT_CMDS: @@ -465,8 +466,10 @@ static int nb_cli_candidate_load_file(struct vty *vty, ly_format = (format == NB_CFG_FMT_JSON) ? LYD_JSON : LYD_XML; ly_ctx = translator ? translator->ly_ctx : ly_native_ctx; - dnode = lyd_parse_path(ly_ctx, path, ly_format, LYD_OPT_EDIT); - if (!dnode) { + err = lyd_parse_data_path(ly_ctx, path, ly_format, + LYD_PARSE_ONLY | LYD_PARSE_NO_STATE, + 0, &dnode); + if (err || !dnode) { flog_warn(EC_LIB_LIBYANG, "%s: lyd_parse_path() failed", __func__); vty_out(vty, "%% Failed to load configuration:\n\n"); @@ -536,8 +539,6 @@ void nb_cli_show_config_prepare(struct nb_config *config, bool with_defaults) if (config->dnode == NULL) return; - lyd_schema_sort(config->dnode, 1); - /* * Call lyd_validate() only to create default child nodes, ignoring * any possible validation error. This doesn't need to be done when @@ -545,9 +546,8 @@ void nb_cli_show_config_prepare(struct nb_config *config, bool with_defaults) * validated. */ if (config != running_config) - (void)lyd_validate(&config->dnode, - LYD_OPT_CONFIG | LYD_OPT_WHENAUTODEL, - ly_native_ctx); + (void)lyd_validate_all(&config->dnode, ly_native_ctx, + LYD_VALIDATE_NO_STATE, NULL); } static void show_dnode_children_cmds(struct vty *vty, struct lyd_node *root, @@ -559,7 +559,7 @@ static void show_dnode_children_cmds(struct vty *vty, struct lyd_node *root, struct list *sort_list; void *data; - LY_TREE_FOR (root->child, child) { + LY_LIST_FOR (lyd_child(root), child) { nb_node = child->schema->priv; /* @@ -634,8 +634,9 @@ static void nb_cli_show_config_cmds(struct vty *vty, struct nb_config *config, vty_out(vty, "frr version %s\n", FRR_VER_SHORT); vty_out(vty, "frr defaults %s\n", frr_defaults_profile()); - LY_TREE_FOR (config->dnode, root) + LY_LIST_FOR (config->dnode, root) { nb_cli_show_dnode_cmds(vty, root, with_defaults); + } vty_out(vty, "!\n"); vty_out(vty, "end\n"); @@ -660,11 +661,11 @@ static int nb_cli_show_config_libyang(struct vty *vty, LYD_FORMAT format, return CMD_WARNING; } - SET_FLAG(options, LYP_FORMAT | LYP_WITHSIBLINGS); + SET_FLAG(options, LYD_PRINT_WITHSIBLINGS); if (with_defaults) - SET_FLAG(options, LYP_WD_ALL); + SET_FLAG(options, LYD_PRINT_WD_ALL); else - SET_FLAG(options, LYP_WD_TRIM); + SET_FLAG(options, LYD_PRINT_WD_TRIM); if (lyd_print_mem(&strp, dnode, format, options) == 0 && strp) { vty_out(vty, "%s", strp); @@ -1401,7 +1402,7 @@ DEFPY (show_config_transaction, #endif /* HAVE_CONFIG_ROLLBACKS */ } -static int nb_cli_oper_data_cb(const struct lys_node *snode, +static int nb_cli_oper_data_cb(const struct lysc_node *snode, struct yang_translator *translator, struct yang_data *data, void *arg) { @@ -1427,12 +1428,12 @@ static int nb_cli_oper_data_cb(const struct lys_node *snode, } else ly_ctx = ly_native_ctx; - ly_errno = 0; - dnode = lyd_new_path(dnode, ly_ctx, data->xpath, (void *)data->value, 0, - LYD_PATH_OPT_UPDATE); - if (!dnode && ly_errno) { - flog_warn(EC_LIB_LIBYANG, "%s: lyd_new_path() failed", - __func__); + LY_ERR err = + lyd_new_path(dnode, ly_ctx, data->xpath, (void *)data->value, + LYD_NEW_PATH_UPDATE, &dnode); + if (err) { + flog_warn(EC_LIB_LIBYANG, "%s: lyd_new_path(%s) failed: %s", + __func__, data->xpath, ly_errmsg(ly_native_ctx)); goto error; } @@ -1494,11 +1495,11 @@ DEFPY (show_yang_operational_data, yang_dnode_free(dnode); return CMD_WARNING; } - lyd_validate(&dnode, LYD_OPT_GET, ly_ctx); + (void)lyd_validate_all(&dnode, ly_ctx, 0, NULL); /* Display the data. */ if (lyd_print_mem(&strp, dnode, format, - LYP_FORMAT | LYP_WITHSIBLINGS | LYP_WD_ALL) + LYD_PRINT_WITHSIBLINGS | LYD_PRINT_WD_ALL) != 0 || !strp) { vty_out(vty, "%% Failed to display operational data.\n"); @@ -1551,13 +1552,12 @@ DEFPY (show_yang_module, snprintf(flags, sizeof(flags), "%c%c", module->implemented ? 'I' : ' ', - (module->deviated == 1) ? 'D' : ' '); + LY_ARRAY_COUNT(module->deviated_by) ? 'D' : ' '); ttable_add_row(tt, "%s|%s|%s|%s|%s", module->name, - (module->version == 2) ? "1.1" : "1.0", - (module->rev_size > 0) ? module->rev[0].date - : "-", - flags, module->ns); + (module->parsed->version == 2) ? "1.1" : "1.0", + module->revision ? module->revision : "-", flags, + module->ns); } /* Dump the generated table. */ @@ -1577,21 +1577,21 @@ DEFPY (show_yang_module, return CMD_SUCCESS; } -DEFPY (show_yang_module_detail, - show_yang_module_detail_cmd, - "show yang module\ +DEFPY(show_yang_module_detail, show_yang_module_detail_cmd, + "show yang module\ [module-translator WORD$translator_family]\ - WORD$module_name <summary|tree$tree|yang$yang|yin$yin>", - SHOW_STR - "YANG information\n" - "Show loaded modules\n" - "YANG module translator\n" - "YANG module translator\n" - "Module name\n" - "Display summary information about the module\n" - "Display module in the tree (RFC 8340) format\n" - "Display module in the YANG format\n" - "Display module in the YIN format\n") + WORD$module_name <compiled$compiled|summary|tree$tree|yang$yang|yin$yin>", + SHOW_STR + "YANG information\n" + "Show loaded modules\n" + "YANG module translator\n" + "YANG module translator\n" + "Module name\n" + "Display compiled module in YANG format\n" + "Display summary information about the module\n" + "Display module in the tree (RFC 8340) format\n" + "Display module in the YANG format\n" + "Display module in the YIN format\n") { struct ly_ctx *ly_ctx; struct yang_translator *translator = NULL; @@ -1610,7 +1610,7 @@ DEFPY (show_yang_module_detail, } else ly_ctx = ly_native_ctx; - module = ly_ctx_get_module(ly_ctx, module_name, NULL, 0); + module = ly_ctx_get_module_latest(ly_ctx, module_name); if (!module) { vty_out(vty, "%% Module \"%s\" not found\n", module_name); return CMD_WARNING; @@ -1620,12 +1620,17 @@ DEFPY (show_yang_module_detail, format = LYS_OUT_YANG; else if (yin) format = LYS_OUT_YIN; + else if (compiled) + format = LYS_OUT_YANG_COMPILED; else if (tree) format = LYS_OUT_TREE; - else - format = LYS_OUT_INFO; + else { + vty_out(vty, + "%% libyang v2 does not currently support summary\n"); + return CMD_WARNING; + } - if (lys_print_mem(&strp, module, format, NULL, 0, 0) == 0) { + if (lys_print_mem(&strp, module, format, 0) == 0) { vty_out(vty, "%s\n", strp); free(strp); } else { diff --git a/lib/northbound_confd.c b/lib/northbound_confd.c index 403537e043..76af494e30 100644 --- a/lib/northbound_confd.c +++ b/lib/northbound_confd.c @@ -515,7 +515,7 @@ static int frr_confd_init_cdb(void) /* Subscribe to all loaded YANG data modules. */ confd_spoints = list_new(); RB_FOREACH (module, yang_modules, &yang_modules) { - struct lys_node *snode; + struct lysc_node *snode; module->confd_hash = confd_str2hash(module->info->ns); if (module->confd_hash == 0) { @@ -531,7 +531,7 @@ static int frr_confd_init_cdb(void) * entire YANG module. So we have to find the top level * nodes ourselves and subscribe to their paths. */ - LY_TREE_FOR (module->info->data, snode) { + LY_LIST_FOR (module->info->data, snode) { struct nb_node *nb_node; int *spoint; int ret; @@ -762,7 +762,7 @@ static int frr_confd_data_get_object(struct confd_trans_ctx *tctx, confd_hkeypath_t *kp) { struct nb_node *nb_node; - const struct lys_node *child; + const struct lysc_node *child; char xpath[XPATH_MAXLEN]; char xpath_child[XPATH_MAXLEN * 2]; struct list *elements; @@ -789,7 +789,7 @@ static int frr_confd_data_get_object(struct confd_trans_ctx *tctx, elements = yang_data_list_new(); /* Loop through list child nodes. */ - LY_TREE_FOR (nb_node->snode->child, child) { + LY_LIST_FOR (lysc_node_child(nb_node->snode), child) { struct nb_node *nb_node_child = child->priv; confd_value_t *v; @@ -869,7 +869,7 @@ static int frr_confd_data_get_next_object(struct confd_trans_ctx *tctx, memset(objects, 0, sizeof(objects)); for (int j = 0; j < CONFD_OBJECTS_PER_TIME; j++) { struct confd_next_object *object; - struct lys_node *child; + struct lysc_node *child; struct yang_data *data; size_t nvalues = 0; @@ -919,7 +919,7 @@ static int frr_confd_data_get_next_object(struct confd_trans_ctx *tctx, } /* Loop through list child nodes. */ - LY_TREE_FOR (nb_node->snode->child, child) { + LY_LIST_FOR (lysc_node_child(nb_node->snode), child) { struct nb_node *nb_node_child = child->priv; char xpath_child[XPATH_MAXLEN * 2]; confd_value_t *v; @@ -1187,7 +1187,7 @@ static int frr_confd_dp_read(struct thread *thread) return 0; } -static int frr_confd_subscribe_state(const struct lys_node *snode, void *arg) +static int frr_confd_subscribe_state(const struct lysc_node *snode, void *arg) { struct nb_node *nb_node = snode->priv; struct confd_data_cbs *data_cbs = arg; @@ -1391,7 +1391,7 @@ static void frr_confd_cli_init(void) /* ------------ Main ------------ */ -static int frr_confd_calculate_snode_hash(const struct lys_node *snode, +static int frr_confd_calculate_snode_hash(const struct lysc_node *snode, void *arg) { struct nb_node *nb_node = snode->priv; diff --git a/lib/northbound_grpc.cpp b/lib/northbound_grpc.cpp index 58f4e42516..dc2d29c11d 100644 --- a/lib/northbound_grpc.cpp +++ b/lib/northbound_grpc.cpp @@ -1109,7 +1109,7 @@ class NorthboundImpl } } - static int get_oper_data_cb(const struct lys_node *snode, + static int get_oper_data_cb(const struct lysc_node *snode, struct yang_translator *translator, struct yang_data *data, void *arg) { diff --git a/lib/northbound_sysrepo.c b/lib/northbound_sysrepo.c index 63fd40f8d3..7c463dd61f 100644 --- a/lib/northbound_sysrepo.c +++ b/lib/northbound_sysrepo.c @@ -48,10 +48,10 @@ static int frr_sr_finish(void); static int yang_data_frr2sr(struct yang_data *frr_data, sr_val_t *sr_data) { struct nb_node *nb_node; - const struct lys_node *snode; - struct lys_node_container *scontainer; - struct lys_node_leaf *sleaf; - struct lys_node_leaflist *sleaflist; + const struct lysc_node *snode; + struct lysc_node_container *scontainer; + struct lysc_node_leaf *sleaf; + struct lysc_node_leaflist *sleaflist; LY_DATA_TYPE type; sr_val_set_xpath(sr_data, frr_data->xpath); @@ -67,8 +67,8 @@ static int yang_data_frr2sr(struct yang_data *frr_data, sr_val_t *sr_data) snode = nb_node->snode; switch (snode->nodetype) { case LYS_CONTAINER: - scontainer = (struct lys_node_container *)snode; - if (!scontainer->presence) + scontainer = (struct lysc_node_container *)snode; + if (!CHECK_FLAG(scontainer->flags, LYS_PRESENCE)) return -1; sr_data->type = SR_CONTAINER_PRESENCE_T; return 0; @@ -76,11 +76,11 @@ static int yang_data_frr2sr(struct yang_data *frr_data, sr_val_t *sr_data) sr_data->type = SR_LIST_T; return 0; case LYS_LEAF: - sleaf = (struct lys_node_leaf *)snode; + sleaf = (struct lysc_node_leaf *)snode; type = sleaf->type.base; break; case LYS_LEAFLIST: - sleaflist = (struct lys_node_leaflist *)snode; + sleaflist = (struct lysc_node_leaflist *)snode; type = sleaflist->type.base; break; default: @@ -359,7 +359,7 @@ static int frr_sr_config_change_cb(sr_session_ctx_t *session, } } -static int frr_sr_state_data_iter_cb(const struct lys_node *snode, +static int frr_sr_state_data_iter_cb(const struct lysc_node *snode, struct yang_translator *translator, struct yang_data *data, void *arg) { @@ -562,7 +562,7 @@ static void frr_sr_subscribe_config(struct yang_module *module) sr_strerror(ret)); } -static int frr_sr_subscribe_state(const struct lys_node *snode, void *arg) +static int frr_sr_subscribe_state(const struct lysc_node *snode, void *arg) { struct yang_module *module = arg; struct nb_node *nb_node; @@ -591,7 +591,7 @@ static int frr_sr_subscribe_state(const struct lys_node *snode, void *arg) return YANG_ITER_CONTINUE; } -static int frr_sr_subscribe_rpc(const struct lys_node *snode, void *arg) +static int frr_sr_subscribe_rpc(const struct lysc_node *snode, void *arg) { struct yang_module *module = arg; struct nb_node *nb_node; diff --git a/lib/privs.c b/lib/privs.c index 49761af871..b3f51267d1 100644 --- a/lib/privs.c +++ b/lib/privs.c @@ -159,6 +159,10 @@ static struct { { 1, (pvalue_t[]){CAP_FOWNER}, }, + [ZCAP_IPC_LOCK] = + { + 1, (pvalue_t[]){CAP_IPC_LOCK}, + }, #endif /* HAVE_LCAPS */ }; diff --git a/lib/privs.h b/lib/privs.h index 2dcdbe2e6c..9f22d28cf8 100644 --- a/lib/privs.h +++ b/lib/privs.h @@ -44,6 +44,7 @@ typedef enum { ZCAP_DAC_OVERRIDE, ZCAP_READ_SEARCH, ZCAP_FOWNER, + ZCAP_IPC_LOCK, ZCAP_MAX } zebra_capabilities_t; @@ -1214,7 +1214,8 @@ const struct frr_yang_module_info frr_vrf_info = { .get_next = lib_vrf_get_next, .get_keys = lib_vrf_get_keys, .lookup_entry = lib_vrf_lookup_entry, - } + }, + .priority = NB_DFLT_PRIORITY - 2, }, { .xpath = "/frr-vrf:lib/vrf/state/id", diff --git a/lib/yang.c b/lib/yang.c index df3b07fb09..1e241f049e 100644 --- a/lib/yang.c +++ b/lib/yang.c @@ -25,8 +25,6 @@ #include "yang_translator.h" #include "northbound.h" -#include <libyang/user_types.h> - DEFINE_MTYPE_STATIC(LIB, YANG_MODULE, "YANG module"); DEFINE_MTYPE_STATIC(LIB, YANG_DATA, "YANG data structure"); @@ -42,14 +40,12 @@ void yang_module_embed(struct yang_module_embed *embed) embedupd = &embed->next; } -static const char *yang_module_imp_clb(const char *mod_name, - const char *mod_rev, - const char *submod_name, - const char *submod_rev, - void *user_data, - LYS_INFORMAT *format, - void (**free_module_data) - (void *, void*)) +static LY_ERR yang_module_imp_clb(const char *mod_name, const char *mod_rev, + const char *submod_name, + const char *submod_rev, void *user_data, + LYS_INFORMAT *format, + const char **module_data, + void (**free_module_data)(void *, void *)) { struct yang_module_embed *e; @@ -69,15 +65,17 @@ static const char *yang_module_imp_clb(const char *mod_name, } *format = e->format; - return e->data; + *module_data = e->data; + return LY_SUCCESS; } - flog_warn( - EC_LIB_YANG_MODULE_LOAD, + /* We get here for indirect modules like ietf-inet-types */ + zlog_debug( "YANG model \"%s@%s\" \"%s@%s\"not embedded, trying external file", mod_name, mod_rev ? mod_rev : "*", submod_name ? submod_name : "*", submod_rev ? submod_rev : "*"); - return NULL; + + return LY_ENOTFOUND; } /* clang-format off */ @@ -111,7 +109,8 @@ struct yang_module *yang_module_load(const char *module_name) struct yang_module *module; const struct lys_module *module_info; - module_info = ly_ctx_load_module(ly_native_ctx, module_name, NULL); + module_info = + ly_ctx_load_module(ly_native_ctx, module_name, NULL, NULL); if (!module_info) { flog_err(EC_LIB_YANG_MODULE_LOAD, "%s: failed to load data model: %s", __func__, @@ -147,62 +146,39 @@ struct yang_module *yang_module_find(const char *module_name) return RB_FIND(yang_modules, &yang_modules, &s); } -int yang_snodes_iterate_subtree(const struct lys_node *snode, +int yang_snodes_iterate_subtree(const struct lysc_node *snode, const struct lys_module *module, yang_iterate_cb cb, uint16_t flags, void *arg) { - struct lys_node *child; + const struct lysc_node *child; int ret = YANG_ITER_CONTINUE; if (module && snode->module != module) goto next; - if (CHECK_FLAG(flags, YANG_ITER_FILTER_IMPLICIT)) { - switch (snode->nodetype) { - case LYS_CASE: - case LYS_INPUT: - case LYS_OUTPUT: - if (CHECK_FLAG(snode->flags, LYS_IMPLICIT)) - goto next; - break; - default: - break; - } - } - switch (snode->nodetype) { case LYS_CONTAINER: if (CHECK_FLAG(flags, YANG_ITER_FILTER_NPCONTAINERS)) { - struct lys_node_container *scontainer; - - scontainer = (struct lys_node_container *)snode; - if (!scontainer->presence) + if (!CHECK_FLAG(snode->flags, LYS_PRESENCE)) goto next; } break; case LYS_LEAF: if (CHECK_FLAG(flags, YANG_ITER_FILTER_LIST_KEYS)) { - struct lys_node_leaf *sleaf; - /* Ignore list keys. */ - sleaf = (struct lys_node_leaf *)snode; - if (lys_is_key(sleaf, NULL)) + if (lysc_is_key(snode)) goto next; } break; - case LYS_GROUPING: - /* Return since we're not interested in the grouping subtree. */ - return YANG_ITER_CONTINUE; - case LYS_USES: - case LYS_AUGMENT: - /* Always ignore nodes of these types. */ - goto next; case LYS_INPUT: case LYS_OUTPUT: if (CHECK_FLAG(flags, YANG_ITER_FILTER_INPUT_OUTPUT)) goto next; break; default: + assert(snode->nodetype != LYS_AUGMENT + && snode->nodetype != LYS_GROUPING + && snode->nodetype != LYS_USES); break; } @@ -212,19 +188,17 @@ int yang_snodes_iterate_subtree(const struct lys_node *snode, next: /* - * YANG leafs and leaf-lists can't have child nodes, and trying to - * access snode->child is undefined behavior. + * YANG leafs and leaf-lists can't have child nodes. */ if (CHECK_FLAG(snode->nodetype, LYS_LEAF | LYS_LEAFLIST)) return YANG_ITER_CONTINUE; - LY_TREE_FOR (snode->child, child) { + LY_LIST_FOR (lysc_node_child(snode), child) { ret = yang_snodes_iterate_subtree(child, module, cb, flags, arg); if (ret == YANG_ITER_STOP) return ret; } - return ret; } @@ -237,12 +211,24 @@ int yang_snodes_iterate(const struct lys_module *module, yang_iterate_cb cb, idx = ly_ctx_internal_modules_count(ly_native_ctx); while ((module_iter = ly_ctx_get_module_iter(ly_native_ctx, &idx))) { - struct lys_node *snode; + struct lysc_node *snode; if (!module_iter->implemented) continue; - LY_TREE_FOR (module_iter->data, snode) { + LY_LIST_FOR (module_iter->compiled->data, snode) { + ret = yang_snodes_iterate_subtree(snode, module, cb, + flags, arg); + if (ret == YANG_ITER_STOP) + return ret; + } + LY_LIST_FOR (&module_iter->compiled->rpcs->node, snode) { + ret = yang_snodes_iterate_subtree(snode, module, cb, + flags, arg); + if (ret == YANG_ITER_STOP) + return ret; + } + LY_LIST_FOR (&module_iter->compiled->notifs->node, snode) { ret = yang_snodes_iterate_subtree(snode, module, cb, flags, arg); if (ret == YANG_ITER_STOP) @@ -253,38 +239,32 @@ int yang_snodes_iterate(const struct lys_module *module, yang_iterate_cb cb, return ret; } -void yang_snode_get_path(const struct lys_node *snode, enum yang_path_type type, - char *xpath, size_t xpath_len) +void yang_snode_get_path(const struct lysc_node *snode, + enum yang_path_type type, char *xpath, + size_t xpath_len) { - char *xpath_ptr; - switch (type) { case YANG_PATH_SCHEMA: - xpath_ptr = lys_path(snode, 0); + (void)lysc_path(snode, LYSC_PATH_LOG, xpath, xpath_len); break; case YANG_PATH_DATA: - xpath_ptr = lys_data_path(snode); + (void)lysc_path(snode, LYSC_PATH_DATA, xpath, xpath_len); break; default: flog_err(EC_LIB_DEVELOPMENT, "%s: unknown yang path type: %u", __func__, type); exit(1); } - strlcpy(xpath, xpath_ptr, xpath_len); - free(xpath_ptr); } -struct lys_node *yang_snode_real_parent(const struct lys_node *snode) +struct lysc_node *yang_snode_real_parent(const struct lysc_node *snode) { - struct lys_node *parent = snode->parent; + struct lysc_node *parent = snode->parent; while (parent) { - struct lys_node_container *scontainer; - switch (parent->nodetype) { case LYS_CONTAINER: - scontainer = (struct lys_node_container *)parent; - if (scontainer->presence) + if (CHECK_FLAG(parent->flags, LYS_PRESENCE)) return parent; break; case LYS_LIST: @@ -298,9 +278,9 @@ struct lys_node *yang_snode_real_parent(const struct lys_node *snode) return NULL; } -struct lys_node *yang_snode_parent_list(const struct lys_node *snode) +struct lysc_node *yang_snode_parent_list(const struct lysc_node *snode) { - struct lys_node *parent = snode->parent; + struct lysc_node *parent = snode->parent; while (parent) { switch (parent->nodetype) { @@ -315,14 +295,14 @@ struct lys_node *yang_snode_parent_list(const struct lys_node *snode) return NULL; } -bool yang_snode_is_typeless_data(const struct lys_node *snode) +bool yang_snode_is_typeless_data(const struct lysc_node *snode) { - struct lys_node_leaf *sleaf; + const struct lysc_node_leaf *sleaf; switch (snode->nodetype) { case LYS_LEAF: - sleaf = (struct lys_node_leaf *)snode; - if (sleaf->type.base == LY_TYPE_EMPTY) + sleaf = (struct lysc_node_leaf *)snode; + if (sleaf->type->basetype == LY_TYPE_EMPTY) return true; return false; case LYS_LEAFLIST: @@ -332,16 +312,16 @@ bool yang_snode_is_typeless_data(const struct lys_node *snode) } } -const char *yang_snode_get_default(const struct lys_node *snode) +const char *yang_snode_get_default(const struct lysc_node *snode) { - struct lys_node_leaf *sleaf; + const struct lysc_node_leaf *sleaf; switch (snode->nodetype) { case LYS_LEAF: - sleaf = (struct lys_node_leaf *)snode; - - /* NOTE: this might be null. */ - return sleaf->dflt; + sleaf = (const struct lysc_node_leaf *)snode; + return sleaf->dflt ? lyd_value_get_canonical(sleaf->module->ctx, + sleaf->dflt) + : NULL; case LYS_LEAFLIST: /* TODO: check leaf-list default values */ return NULL; @@ -350,29 +330,40 @@ const char *yang_snode_get_default(const struct lys_node *snode) } } -const struct lys_type *yang_snode_get_type(const struct lys_node *snode) +const struct lysc_type *yang_snode_get_type(const struct lysc_node *snode) { - struct lys_node_leaf *sleaf = (struct lys_node_leaf *)snode; - struct lys_type *type; + struct lysc_node_leaf *sleaf = (struct lysc_node_leaf *)snode; + struct lysc_type *type; if (!CHECK_FLAG(sleaf->nodetype, LYS_LEAF | LYS_LEAFLIST)) return NULL; - type = &sleaf->type; - while (type->base == LY_TYPE_LEAFREF) - type = &type->info.lref.target->type; + type = sleaf->type; + while (type->basetype == LY_TYPE_LEAFREF) + type = ((struct lysc_type_leafref *)type)->realtype; return type; } +unsigned int yang_snode_num_keys(const struct lysc_node *snode) +{ + const struct lysc_node_leaf *skey; + uint count = 0; + + if (!CHECK_FLAG(snode->nodetype, LYS_LIST)) + return 0; + + /* Walk list of children */ + LY_FOR_KEYS (snode, skey) { + count++; + } + return count; +} + void yang_dnode_get_path(const struct lyd_node *dnode, char *xpath, size_t xpath_len) { - char *xpath_ptr; - - xpath_ptr = lyd_path(dnode); - strlcpy(xpath, xpath_ptr, xpath_len); - free(xpath_ptr); + lyd_path(dnode, LYD_PATH_STD, xpath, xpath_len); } const char *yang_dnode_get_schema_name(const struct lyd_node *dnode, @@ -398,55 +389,78 @@ const char *yang_dnode_get_schema_name(const struct lyd_node *dnode, return dnode->schema->name; } -struct lyd_node *yang_dnode_get(const struct lyd_node *dnode, - const char *xpath_fmt, ...) +struct lyd_node *yang_dnode_get(const struct lyd_node *dnode, const char *xpath) { - va_list ap; - char xpath[XPATH_MAXLEN]; - struct ly_set *set; + struct ly_set *set = NULL; struct lyd_node *dnode_ret = NULL; - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); + /* + * XXX a lot of the code uses this for style I guess. It shouldn't, as + * it adds to the xpath parsing complexity in libyang. + */ + if (xpath[0] == '.' && xpath[1] == '/') + xpath += 2; - set = lyd_find_path(dnode, xpath); - assert(set); - if (set->number == 0) + if (lyd_find_xpath(dnode, xpath, &set)) { + assert(0); /* XXX replicates old libyang1 base code */ + goto exit; + } + if (set->count == 0) goto exit; - if (set->number > 1) { + if (set->count > 1) { flog_warn(EC_LIB_YANG_DNODE_NOT_FOUND, "%s: found %u elements (expected 0 or 1) [xpath %s]", - __func__, set->number, xpath); + __func__, set->count, xpath); goto exit; } - dnode_ret = set->set.d[0]; + dnode_ret = set->dnodes[0]; exit: - ly_set_free(set); + ly_set_free(set, NULL); return dnode_ret; } -bool yang_dnode_exists(const struct lyd_node *dnode, const char *xpath_fmt, ...) +struct lyd_node *yang_dnode_getf(const struct lyd_node *dnode, + const char *xpath_fmt, ...) { va_list ap; char xpath[XPATH_MAXLEN]; - struct ly_set *set; - bool found; va_start(ap, xpath_fmt); vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); va_end(ap); - set = lyd_find_path(dnode, xpath); - assert(set); - found = (set->number > 0); - ly_set_free(set); + return yang_dnode_get(dnode, xpath); +} + +bool yang_dnode_exists(const struct lyd_node *dnode, const char *xpath) +{ + struct ly_set *set = NULL; + bool exists = false; - return found; + if (xpath[0] == '.' && xpath[1] == '/') + xpath += 2; + if (lyd_find_xpath(dnode, xpath, &set)) + return false; + exists = set->count > 0; + ly_set_free(set, NULL); + return exists; +} + +bool yang_dnode_existsf(const struct lyd_node *dnode, const char *xpath_fmt, + ...) +{ + va_list ap; + char xpath[XPATH_MAXLEN]; + + va_start(ap, xpath_fmt); + vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); + va_end(ap); + + return yang_dnode_exists(dnode, xpath); } void yang_dnode_iterate(yang_dnode_iter_cb cb, void *arg, @@ -461,52 +475,42 @@ void yang_dnode_iterate(yang_dnode_iter_cb cb, void *arg, vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); va_end(ap); - set = lyd_find_path(dnode, xpath); - assert(set); - for (unsigned int i = 0; i < set->number; i++) { + if (lyd_find_xpath(dnode, xpath, &set)) { + assert(0); /* XXX libyang2: ly1 code asserted success */ + return; + } + for (unsigned int i = 0; i < set->count; i++) { int ret; - dnode = set->set.d[i]; - ret = (*cb)(dnode, arg); + ret = (*cb)(set->dnodes[i], arg); if (ret == YANG_ITER_STOP) break; } - ly_set_free(set); + ly_set_free(set, NULL); } -bool yang_dnode_is_default(const struct lyd_node *dnode, const char *xpath_fmt, - ...) +bool yang_dnode_is_default(const struct lyd_node *dnode, const char *xpath) { - struct lys_node *snode; - struct lys_node_leaf *sleaf; - struct lys_node_container *scontainer; - - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); + const struct lysc_node *snode; + struct lysc_node_leaf *sleaf; + if (xpath) dnode = yang_dnode_get(dnode, xpath); - } assert(dnode); snode = dnode->schema; switch (snode->nodetype) { case LYS_LEAF: - sleaf = (struct lys_node_leaf *)snode; - if (sleaf->type.base == LY_TYPE_EMPTY) + sleaf = (struct lysc_node_leaf *)snode; + if (sleaf->type->basetype == LY_TYPE_EMPTY) return false; - return lyd_wd_default((struct lyd_node_leaf_list *)dnode); + return lyd_is_default(dnode); case LYS_LEAFLIST: /* TODO: check leaf-list default values */ return false; case LYS_CONTAINER: - scontainer = (struct lys_node_container *)snode; - if (scontainer->presence) + if (CHECK_FLAG(snode->flags, LYS_PRESENCE)) return false; return true; default: @@ -514,24 +518,39 @@ bool yang_dnode_is_default(const struct lyd_node *dnode, const char *xpath_fmt, } } -bool yang_dnode_is_default_recursive(const struct lyd_node *dnode) +bool yang_dnode_is_defaultf(const struct lyd_node *dnode, const char *xpath_fmt, + ...) { - struct lys_node *snode; - struct lyd_node *root, *next, *dnode_iter; - - snode = dnode->schema; - if (CHECK_FLAG(snode->nodetype, LYS_LEAF | LYS_LEAFLIST)) + if (!xpath_fmt) return yang_dnode_is_default(dnode, NULL); + else { + va_list ap; + char xpath[XPATH_MAXLEN]; + + va_start(ap, xpath_fmt); + vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); + va_end(ap); + + return yang_dnode_is_default(dnode, xpath); + } +} + +bool yang_dnode_is_default_recursive(const struct lyd_node *dnode) +{ + struct lyd_node *root, *dnode_iter; if (!yang_dnode_is_default(dnode, NULL)) return false; - LY_TREE_FOR (dnode->child, root) { - LY_TREE_DFS_BEGIN (root, next, dnode_iter) { + if (CHECK_FLAG(dnode->schema->nodetype, LYS_LEAF | LYS_LEAFLIST)) + return true; + + LY_LIST_FOR (lyd_child(dnode), root) { + LYD_TREE_DFS_BEGIN (root, dnode_iter) { if (!yang_dnode_is_default(dnode_iter, NULL)) return false; - LY_TREE_DFS_END(root, next, dnode_iter); + LYD_TREE_DFS_END(root, dnode_iter); } } @@ -541,21 +560,15 @@ bool yang_dnode_is_default_recursive(const struct lyd_node *dnode) void yang_dnode_change_leaf(struct lyd_node *dnode, const char *value) { assert(dnode->schema->nodetype == LYS_LEAF); - lyd_change_leaf((struct lyd_node_leaf_list *)dnode, value); + lyd_change_term(dnode, value); } struct lyd_node *yang_dnode_new(struct ly_ctx *ly_ctx, bool config_only) { - struct lyd_node *dnode; - int options; - - if (config_only) - options = LYD_OPT_CONFIG; - else - options = LYD_OPT_DATA | LYD_OPT_DATA_NO_YANGLIB; + struct lyd_node *dnode = NULL; + int options = config_only ? LYD_VALIDATE_NO_STATE : 0; - dnode = NULL; - if (lyd_validate(&dnode, options, ly_ctx) != 0) { + if (lyd_validate_all(&dnode, ly_ctx, options, NULL) != 0) { /* Should never happen. */ flog_err(EC_LIB_LIBYANG, "%s: lyd_validate() failed", __func__); exit(1); @@ -566,14 +579,18 @@ struct lyd_node *yang_dnode_new(struct ly_ctx *ly_ctx, bool config_only) struct lyd_node *yang_dnode_dup(const struct lyd_node *dnode) { - return lyd_dup_withsiblings(dnode, 1); + struct lyd_node *dup = NULL; + LY_ERR err; + err = lyd_dup_siblings(dnode, NULL, LYD_DUP_RECURSIVE, &dup); + assert(!err); + return dup; } void yang_dnode_free(struct lyd_node *dnode) { while (dnode->parent) - dnode = dnode->parent; - lyd_free_withsiblings(dnode); + dnode = lyd_parent(dnode); + lyd_free_all(dnode); } struct yang_data *yang_data_new(const char *xpath, const char *value) @@ -679,18 +696,19 @@ const char *yang_print_errors(struct ly_ctx *ly_ctx, char *buf, size_t buf_len) void yang_debugging_set(bool enable) { if (enable) { - ly_verb(LY_LLDBG); - ly_verb_dbg(0xFF); + ly_log_level(LY_LLDBG); + ly_log_dbg_groups(0xFF); } else { - ly_verb(LY_LLERR); - ly_verb_dbg(0); + ly_log_level(LY_LLERR); + ly_log_dbg_groups(0); } } -struct ly_ctx *yang_ctx_new_setup(bool embedded_modules) +struct ly_ctx *yang_ctx_new_setup(bool embedded_modules, bool explicit_compile) { - struct ly_ctx *ctx; + struct ly_ctx *ctx = NULL; const char *yang_models_path = YANG_MODELS_PATH; + LY_ERR err; if (access(yang_models_path, R_OK | X_OK)) { yang_models_path = NULL; @@ -703,8 +721,11 @@ struct ly_ctx *yang_ctx_new_setup(bool embedded_modules) YANG_MODELS_PATH); } - ctx = ly_ctx_new(yang_models_path, LY_CTX_DISABLE_SEARCHDIR_CWD); - if (!ctx) + uint options = LY_CTX_NO_YANGLIBRARY | LY_CTX_DISABLE_SEARCHDIR_CWD; + if (explicit_compile) + options |= LY_CTX_EXPLICIT_COMPILE; + err = ly_ctx_new(yang_models_path, options, &ctx); + if (err) return NULL; if (embedded_modules) @@ -713,14 +734,14 @@ struct ly_ctx *yang_ctx_new_setup(bool embedded_modules) return ctx; } -void yang_init(bool embedded_modules) +void yang_init(bool embedded_modules, bool defer_compile) { /* Initialize libyang global parameters that affect all containers. */ ly_set_log_clb(ly_log_cb, 1); ly_log_options(LY_LOLOG | LY_LOSTORE); /* Initialize libyang container for native models. */ - ly_native_ctx = yang_ctx_new_setup(embedded_modules); + ly_native_ctx = yang_ctx_new_setup(embedded_modules, defer_compile); if (!ly_native_ctx) { flog_err(EC_LIB_LIBYANG, "%s: ly_ctx_new() failed", __func__); exit(1); @@ -729,6 +750,17 @@ void yang_init(bool embedded_modules) yang_translator_init(); } +void yang_init_loading_complete(void) +{ + /* Compile everything */ + if (ly_ctx_compile(ly_native_ctx) != LY_SUCCESS) { + flog_err(EC_LIB_YANG_MODULE_LOAD, + "%s: failed to compile loaded modules: %s", __func__, + ly_errmsg(ly_native_ctx)); + exit(1); + } +} + void yang_terminate(void) { struct yang_module *module; @@ -748,7 +780,7 @@ void yang_terminate(void) XFREE(MTYPE_YANG_MODULE, module); } - ly_ctx_destroy(ly_native_ctx, NULL); + ly_ctx_destroy(ly_native_ctx); } const struct lyd_node *yang_dnode_get_parent(const struct lyd_node *dnode, @@ -767,7 +799,7 @@ const struct lyd_node *yang_dnode_get_parent(const struct lyd_node *dnode, break; } - orig_dnode = orig_dnode->parent; + orig_dnode = lyd_parent(orig_dnode); } return NULL; @@ -788,17 +820,17 @@ bool yang_is_last_list_dnode(const struct lyd_node *dnode) bool yang_is_last_level_dnode(const struct lyd_node *dnode) { const struct lyd_node *parent; - const struct lys_node_list *snode; const struct lyd_node *key_leaf; uint8_t keys_size; switch (dnode->schema->nodetype) { case LYS_LIST: assert(dnode->parent); - parent = dnode->parent; - snode = (struct lys_node_list *)parent->schema; + parent = lyd_parent(dnode); + uint snode_num_keys = yang_snode_num_keys(parent->schema); + /* XXX libyang2: q: really don't understand this code. */ key_leaf = dnode->prev; - for (keys_size = 1; keys_size < snode->keys_size; keys_size++) + for (keys_size = 1; keys_size < snode_num_keys; keys_size++) key_leaf = key_leaf->prev; if (key_leaf->prev == dnode) return true; @@ -812,13 +844,11 @@ bool yang_is_last_level_dnode(const struct lyd_node *dnode) return false; } - const struct lyd_node * yang_get_subtree_with_no_sibling(const struct lyd_node *dnode) { bool parent = true; const struct lyd_node *node; - const struct lys_node_container *snode; node = dnode; if (node->schema->nodetype != LYS_LIST) @@ -827,13 +857,11 @@ yang_get_subtree_with_no_sibling(const struct lyd_node *dnode) while (parent) { switch (node->schema->nodetype) { case LYS_CONTAINER: - snode = (struct lys_node_container *)node->schema; - if ((!snode->presence) - && yang_is_last_level_dnode(node)) { + if (!CHECK_FLAG(node->schema->flags, LYS_PRESENCE)) { if (node->parent && (node->parent->schema->module == dnode->schema->module)) - node = node->parent; + node = lyd_parent(node); else parent = false; } else @@ -845,7 +873,7 @@ yang_get_subtree_with_no_sibling(const struct lyd_node *dnode) if (node->parent && (node->parent->schema->module == dnode->schema->module)) - node = node->parent; + node = lyd_parent(node); else parent = false; } else @@ -867,7 +895,7 @@ uint32_t yang_get_list_pos(const struct lyd_node *node) uint32_t yang_get_list_elements_count(const struct lyd_node *node) { unsigned int count; - struct lys_node *schema; + const struct lysc_node *schema; if (!node || ((node->schema->nodetype != LYS_LIST) @@ -884,11 +912,3 @@ uint32_t yang_get_list_elements_count(const struct lyd_node *node) } while (node); return count; } - - -const struct lyd_node *yang_dnode_get_child(const struct lyd_node *dnode) -{ - if (dnode) - return dnode->child; - return NULL; -} diff --git a/lib/yang.h b/lib/yang.h index b8bf07ee7e..d4517f969a 100644 --- a/lib/yang.h +++ b/lib/yang.h @@ -99,13 +99,10 @@ enum yang_iter_flags { /* Filter RPC input/output nodes. */ YANG_ITER_FILTER_INPUT_OUTPUT = (1<<2), - - /* Filter implicitely created nodes. */ - YANG_ITER_FILTER_IMPLICIT = (1<<3), }; /* Callback used by the yang_snodes_iterate_*() family of functions. */ -typedef int (*yang_iterate_cb)(const struct lys_node *snode, void *arg); +typedef int (*yang_iterate_cb)(const struct lysc_node *snode, void *arg); /* Callback used by the yang_dnode_iterate() function. */ typedef int (*yang_dnode_iter_cb)(const struct lyd_node *dnode, void *arg); @@ -180,7 +177,7 @@ extern void yang_module_embed(struct yang_module_embed *embed); * Returns: * The return value of the last called callback. */ -extern int yang_snodes_iterate_subtree(const struct lys_node *snode, +extern int yang_snodes_iterate_subtree(const struct lysc_node *snode, const struct lys_module *module, yang_iterate_cb cb, uint16_t flags, void *arg); @@ -222,7 +219,7 @@ extern int yang_snodes_iterate(const struct lys_module *module, * xpath_len * Size of the xpath buffer. */ -extern void yang_snode_get_path(const struct lys_node *snode, +extern void yang_snode_get_path(const struct lysc_node *snode, enum yang_path_type type, char *xpath, size_t xpath_len); @@ -236,7 +233,7 @@ extern void yang_snode_get_path(const struct lys_node *snode, * Returns: * The parent libyang schema node if found, or NULL if not found. */ -extern struct lys_node *yang_snode_real_parent(const struct lys_node *snode); +extern struct lysc_node *yang_snode_real_parent(const struct lysc_node *snode); /* * Find first parent schema node which is a list. @@ -247,7 +244,7 @@ extern struct lys_node *yang_snode_real_parent(const struct lys_node *snode); * Returns: * The parent libyang schema node (list) if found, or NULL if not found. */ -extern struct lys_node *yang_snode_parent_list(const struct lys_node *snode); +extern struct lysc_node *yang_snode_parent_list(const struct lysc_node *snode); /* * Check if the libyang schema node represents typeless data (e.g. containers, @@ -259,7 +256,7 @@ extern struct lys_node *yang_snode_parent_list(const struct lys_node *snode); * Returns: * true if the schema node represents typeless data, false otherwise. */ -extern bool yang_snode_is_typeless_data(const struct lys_node *snode); +extern bool yang_snode_is_typeless_data(const struct lysc_node *snode); /* * Get the default value associated to a YANG leaf or leaf-list. @@ -270,7 +267,7 @@ extern bool yang_snode_is_typeless_data(const struct lys_node *snode); * Returns: * The default value if it exists, NULL otherwise. */ -extern const char *yang_snode_get_default(const struct lys_node *snode); +extern const char *yang_snode_get_default(const struct lysc_node *snode); /* * Get the type structure of a leaf of leaf-list. If the type is a leafref, the @@ -283,7 +280,27 @@ extern const char *yang_snode_get_default(const struct lys_node *snode); * The found type if the schema node represents a leaf or a leaf-list, NULL * otherwise. */ -extern const struct lys_type *yang_snode_get_type(const struct lys_node *snode); +extern const struct lysc_type * +yang_snode_get_type(const struct lysc_node *snode); + +/* + * Get the number of key nodes for the given list. + * + * snode + * libyang (LYS_LIST) schema node to operate on. + * + * Returns: + * The number of key LYS_LEAFs as children of this list node. + */ +extern unsigned int yang_snode_num_keys(const struct lysc_node *snode); + +#define LY_FOR_KEYS(snode, skey) \ + for ((skey) = (const struct lysc_node_leaf *)lysc_node_child((snode)); \ + (skey); (skey) = (const struct lysc_node_leaf *)((skey)->next)) \ + if (!lysc_is_key(skey)) { \ + break; \ + } else + /* * Build data path of the data node. @@ -322,14 +339,49 @@ extern const char *yang_dnode_get_schema_name(const struct lyd_node *dnode, * dnode * Base libyang data node to operate on. * - * xpath_fmt - * XPath expression (absolute or relative). + * xpath + * Limited XPath (absolute or relative) string. See Path in libyang + * documentation for restrictions. * * Returns: * The libyang data node if found, or NULL if not found. */ extern struct lyd_node *yang_dnode_get(const struct lyd_node *dnode, - const char *xpath_fmt, ...); + const char *xpath); + +/* + * Find a libyang data node by its YANG data path. + * + * dnode + * Base libyang data node to operate on. + * + * xpath_fmt + * Limited XPath (absolute or relative) format string. See Path in libyang + * documentation for restrictions. + * + * ... + * any parameters for xpath_fmt. + * + * Returns: + * The libyang data node if found, or NULL if not found. + */ +extern struct lyd_node *yang_dnode_getf(const struct lyd_node *dnode, + const char *path_fmt, ...); + +/* + * Check if a libyang data node exists. + * + * dnode + * Base libyang data node to operate on. + * + * xpath + * Limited XPath (absolute or relative) string. See Path in libyang + * documentation for restrictions. + * + * Returns: + * true if a libyang data node was found, false otherwise. + */ +extern bool yang_dnode_exists(const struct lyd_node *dnode, const char *xpath); /* * Check if a libyang data node exists. @@ -338,13 +390,17 @@ extern struct lyd_node *yang_dnode_get(const struct lyd_node *dnode, * Base libyang data node to operate on. * * xpath_fmt - * XPath expression (absolute or relative). + * Limited XPath (absolute or relative) format string. See Path in + * libyang documentation for restrictions. + * + * ... + * any parameters for xpath_fmt. * * Returns: - * true if the libyang data node was found, false otherwise. + * true if a libyang data node was found, false otherwise. */ -extern bool yang_dnode_exists(const struct lyd_node *dnode, - const char *xpath_fmt, ...); +extern bool yang_dnode_existsf(const struct lyd_node *dnode, + const char *xpath_fmt, ...); /* * Iterate over all libyang data nodes that satisfy an XPath query. @@ -360,6 +416,9 @@ extern bool yang_dnode_exists(const struct lyd_node *dnode, * * xpath_fmt * XPath expression (absolute or relative). + * + * ... + * any parameters for xpath_fmt. */ void yang_dnode_iterate(yang_dnode_iter_cb cb, void *arg, const struct lyd_node *dnode, const char *xpath_fmt, @@ -372,7 +431,7 @@ void yang_dnode_iterate(yang_dnode_iter_cb cb, void *arg, * dnode * Base libyang data node to operate on. * - * xpath_fmt + * xpath * Optional XPath expression (absolute or relative) to specify a different * data node to operate on in the same data tree. * @@ -380,7 +439,27 @@ void yang_dnode_iterate(yang_dnode_iter_cb cb, void *arg, * true if the data node contains the default value, false otherwise. */ extern bool yang_dnode_is_default(const struct lyd_node *dnode, - const char *xpath_fmt, ...); + const char *xpath); + +/* + * Check if the libyang data node contains a default value. Non-presence + * containers are assumed to always contain a default value. + * + * dnode + * Base libyang data node to operate on. + * + * xpath + * Optional limited XPath (absolute or relative) format string. See Path in + * libyang documentation for restrictions. + * + * ... + * any parameters for xpath_fmt. + * + * Returns: + * true if the data node contains the default value, false otherwise. + */ +extern bool yang_dnode_is_defaultf(const struct lyd_node *dnode, + const char *xpath_fmt, ...); /* * Check if the libyang data node and all of its children contain default @@ -437,7 +516,8 @@ extern struct lyd_node *yang_dnode_dup(const struct lyd_node *dnode); * Delete a libyang data node. * * dnode - * Pointer to the libyang data node that is going to be deleted. + * Pointer to the libyang data node that is going to be deleted along with + * the entire tree it belongs to. */ extern void yang_dnode_free(struct lyd_node *dnode); @@ -493,8 +573,13 @@ extern struct yang_data *yang_data_list_find(const struct list *list, * * embedded_modules * Specify whether libyang should attempt to look for embedded YANG modules. + * + * explicit_compile + * True if the caller will later call ly_ctx_compile to compile all loaded + * modules at once. */ -extern struct ly_ctx *yang_ctx_new_setup(bool embedded_modules); +extern struct ly_ctx *yang_ctx_new_setup(bool embedded_modules, + bool explicit_compile); /* * Enable or disable libyang verbose debugging. @@ -528,8 +613,16 @@ extern const char *yang_print_errors(struct ly_ctx *ly_ctx, char *buf, * * embedded_modules * Specify whether libyang should attempt to look for embedded YANG modules. + * defer_compile + * Hold off on compiling modules until yang_init_loading_complete is called. */ -extern void yang_init(bool embedded_modules); +extern void yang_init(bool embedded_modules, bool defer_compile); + +/* + * Should be called after yang_init and all yang_module_load()s have been done, + * compiles all modules loaded into the yang context. + */ +extern void yang_init_loading_complete(void); /* * Finish the YANG subsystem gracefully. Should be called only when the daemon @@ -583,10 +676,6 @@ extern uint32_t yang_get_list_pos(const struct lyd_node *node); */ extern uint32_t yang_get_list_elements_count(const struct lyd_node *node); - -/* To get the immediate child of a dnode */ -const struct lyd_node *yang_dnode_get_child(const struct lyd_node *dnode); - /* API to check if the given node is last node in the list */ bool yang_is_last_list_dnode(const struct lyd_node *dnode); diff --git a/lib/yang_translator.c b/lib/yang_translator.c index 5b1d96f24c..d562e4d29e 100644 --- a/lib/yang_translator.c +++ b/lib/yang_translator.c @@ -93,7 +93,7 @@ yang_mapping_lookup(const struct yang_translator *translator, int dir, } static void yang_mapping_add(struct yang_translator *translator, int dir, - const struct lys_node *snode, + const struct lysc_node *snode, const char *xpath_from_fmt, const char *xpath_to_fmt) { @@ -135,13 +135,15 @@ struct yang_translator *yang_translator_load(const char *path) struct lyd_node *dnode; struct ly_set *set; struct listnode *ln; + LY_ERR err; /* Load module translator (JSON file). */ - dnode = lyd_parse_path(ly_translator_ctx, path, LYD_JSON, - LYD_OPT_CONFIG); - if (!dnode) { + err = lyd_parse_data_path(ly_translator_ctx, path, LYD_JSON, + LYD_PARSE_NO_STATE, LYD_VALIDATE_NO_STATE, + &dnode); + if (err) { flog_warn(EC_LIB_YANG_TRANSLATOR_LOAD, - "%s: lyd_parse_path() failed", __func__); + "%s: lyd_parse_path() failed: %d", __func__, err); return NULL; } dnode = yang_dnode_get(dnode, @@ -171,89 +173,94 @@ struct yang_translator *yang_translator_load(const char *path) RB_INSERT(yang_translators, &yang_translators, translator); /* Initialize the translator libyang context. */ - translator->ly_ctx = yang_ctx_new_setup(false); + translator->ly_ctx = yang_ctx_new_setup(false, false); if (!translator->ly_ctx) { flog_warn(EC_LIB_LIBYANG, "%s: ly_ctx_new() failed", __func__); goto error; } - /* Load modules and deviations. */ - set = lyd_find_path(dnode, "./module"); - assert(set); - for (size_t i = 0; i < set->number; i++) { + /* Load modules */ + if (lyd_find_xpath(dnode, "./module", &set) != LY_SUCCESS) + assert(0); /* XXX libyang2: old ly1 code asserted success */ + + for (size_t i = 0; i < set->count; i++) { const char *module_name; tmodule = XCALLOC(MTYPE_YANG_TRANSLATOR_MODULE, sizeof(*tmodule)); - module_name = yang_dnode_get_string(set->set.d[i], "./name"); + module_name = yang_dnode_get_string(set->dnodes[i], "./name"); tmodule->module = ly_ctx_load_module(translator->ly_ctx, - module_name, NULL); + module_name, NULL, NULL); if (!tmodule->module) { flog_warn(EC_LIB_YANG_TRANSLATOR_LOAD, "%s: failed to load module: %s", __func__, module_name); - ly_set_free(set); + ly_set_free(set, NULL); goto error; } + } - module_name = - yang_dnode_get_string(set->set.d[i], "./deviations"); - tmodule->deviations = ly_ctx_load_module(translator->ly_ctx, - module_name, NULL); + /* Count nodes in modules. */ + for (ALL_LIST_ELEMENTS_RO(translator->modules, ln, tmodule)) { + tmodule->nodes_before_deviations = + yang_module_nodes_count(tmodule->module); + } + + /* Load the deviations and count nodes again */ + for (ALL_LIST_ELEMENTS_RO(translator->modules, ln, tmodule)) { + const char *module_name = tmodule->module->name; + tmodule->deviations = ly_ctx_load_module( + translator->ly_ctx, module_name, NULL, NULL); if (!tmodule->deviations) { flog_warn(EC_LIB_YANG_TRANSLATOR_LOAD, "%s: failed to load module: %s", __func__, module_name); - ly_set_free(set); + ly_set_free(set, NULL); goto error; } - lys_set_disabled(tmodule->deviations); - listnode_add(translator->modules, tmodule); + tmodule->nodes_after_deviations = + yang_module_nodes_count(tmodule->module); } - ly_set_free(set); + ly_set_free(set, NULL); /* Calculate the coverage. */ for (ALL_LIST_ELEMENTS_RO(translator->modules, ln, tmodule)) { - tmodule->nodes_before_deviations = - yang_module_nodes_count(tmodule->module); - - lys_set_enabled(tmodule->deviations); - - tmodule->nodes_after_deviations = - yang_module_nodes_count(tmodule->module); tmodule->coverage = ((double)tmodule->nodes_after_deviations / (double)tmodule->nodes_before_deviations) * 100; } /* Load mappings. */ - set = lyd_find_path(dnode, "./module/mappings"); - assert(set); - for (size_t i = 0; i < set->number; i++) { + if (lyd_find_xpath(dnode, "./module/mappings", &set) != LY_SUCCESS) + assert(0); /* XXX libyang2: old ly1 code asserted success */ + for (size_t i = 0; i < set->count; i++) { const char *xpath_custom, *xpath_native; - const struct lys_node *snode_custom, *snode_native; + const struct lysc_node *snode_custom, *snode_native; + + xpath_custom = + yang_dnode_get_string(set->dnodes[i], "./custom"); - xpath_custom = yang_dnode_get_string(set->set.d[i], "./custom"); - snode_custom = ly_ctx_get_node(translator->ly_ctx, NULL, - xpath_custom, 0); + snode_custom = lys_find_path(translator->ly_ctx, NULL, + xpath_custom, 0); if (!snode_custom) { flog_warn(EC_LIB_YANG_TRANSLATOR_LOAD, "%s: unknown data path: %s", __func__, xpath_custom); - ly_set_free(set); + ly_set_free(set, NULL); goto error; } - xpath_native = yang_dnode_get_string(set->set.d[i], "./native"); + xpath_native = + yang_dnode_get_string(set->dnodes[i], "./native"); snode_native = - ly_ctx_get_node(ly_native_ctx, NULL, xpath_native, 0); + lys_find_path(ly_native_ctx, NULL, xpath_native, 0); if (!snode_native) { flog_warn(EC_LIB_YANG_TRANSLATOR_LOAD, "%s: unknown data path: %s", __func__, xpath_native); - ly_set_free(set); + ly_set_free(set, NULL); goto error; } @@ -262,7 +269,7 @@ struct yang_translator *yang_translator_load(const char *path) yang_mapping_add(translator, YANG_TRANSLATE_FROM_NATIVE, snode_native, xpath_native, xpath_custom); } - ly_set_free(set); + ly_set_free(set, NULL); /* Validate mappings. */ if (yang_translator_validate(translator) != 0) @@ -290,7 +297,7 @@ void yang_translator_unload(struct yang_translator *translator) hash_clean(translator->mappings[i], yang_mapping_hash_free); translator->modules->del = (void (*)(void *))yang_tmodule_delete; list_delete(&translator->modules); - ly_ctx_destroy(translator->ly_ctx, NULL); + ly_ctx_destroy(translator->ly_ctx); RB_REMOVE(yang_translators, &yang_translators, translator); XFREE(MTYPE_YANG_TRANSLATOR, translator); } @@ -308,7 +315,7 @@ yang_translate_xpath(const struct yang_translator *translator, int dir, char *xpath, size_t xpath_len) { struct ly_ctx *ly_ctx; - const struct lys_node *snode; + const struct lysc_node *snode; struct yang_mapping_node *mapping; char xpath_canonical[XPATH_MAXLEN]; char keys[4][LIST_MAXKEYLEN]; @@ -319,7 +326,7 @@ yang_translate_xpath(const struct yang_translator *translator, int dir, else ly_ctx = ly_native_ctx; - snode = ly_ctx_get_node(ly_ctx, NULL, xpath, 0); + snode = lys_find_path(ly_ctx, NULL, xpath, 0); if (!snode) { flog_warn(EC_LIB_YANG_TRANSLATION_ERROR, "%s: unknown data path: %s", __func__, xpath); @@ -352,7 +359,7 @@ int yang_translate_dnode(const struct yang_translator *translator, int dir, { struct ly_ctx *ly_ctx; struct lyd_node *new; - struct lyd_node *root, *next, *dnode_iter; + struct lyd_node *root, *dnode_iter; /* Create new libyang data node to hold the translated data. */ if (dir == YANG_TRANSLATE_TO_NATIVE) @@ -362,8 +369,8 @@ int yang_translate_dnode(const struct yang_translator *translator, int dir, new = yang_dnode_new(ly_ctx, false); /* Iterate over all nodes from the data tree. */ - LY_TREE_FOR (*dnode, root) { - LY_TREE_DFS_BEGIN (root, next, dnode_iter) { + LY_LIST_FOR (*dnode, root) { + LYD_TREE_DFS_BEGIN (root, dnode_iter) { char xpath[XPATH_MAXLEN]; enum yang_translate_result ret; @@ -380,19 +387,17 @@ int yang_translate_dnode(const struct yang_translator *translator, int dir, } /* Create new node in the tree of translated data. */ - ly_errno = 0; - if (!lyd_new_path(new, ly_ctx, xpath, - (void *)yang_dnode_get_string( - dnode_iter, NULL), - 0, LYD_PATH_OPT_UPDATE) - && ly_errno) { + if (lyd_new_path(new, ly_ctx, xpath, + (void *)yang_dnode_get_string( + dnode_iter, NULL), + LYD_NEW_PATH_UPDATE, NULL)) { flog_err(EC_LIB_LIBYANG, "%s: lyd_new_path() failed", __func__); goto error; } next: - LY_TREE_DFS_END(root, next, dnode_iter); + LYD_TREE_DFS_END(root, dnode_iter); } } @@ -413,13 +418,13 @@ struct translator_validate_args { unsigned int errors; }; -static int yang_translator_validate_cb(const struct lys_node *snode_custom, +static int yang_translator_validate_cb(const struct lysc_node *snode_custom, void *arg) { struct translator_validate_args *args = arg; struct yang_mapping_node *mapping; - const struct lys_node *snode_native; - const struct lys_type *stype_custom, *stype_native; + const struct lysc_node *snode_native; + const struct lysc_type *stype_custom, *stype_native; char xpath[XPATH_MAXLEN]; yang_snode_get_path(snode_custom, YANG_PATH_DATA, xpath, sizeof(xpath)); @@ -433,14 +438,14 @@ static int yang_translator_validate_cb(const struct lys_node *snode_custom, } snode_native = - ly_ctx_get_node(ly_native_ctx, NULL, mapping->xpath_to_fmt, 0); + lys_find_path(ly_native_ctx, NULL, mapping->xpath_to_fmt, 0); assert(snode_native); /* Check if the YANG types are compatible. */ stype_custom = yang_snode_get_type(snode_custom); stype_native = yang_snode_get_type(snode_native); if (stype_custom && stype_native) { - if (stype_custom->base != stype_native->base) { + if (stype_custom->basetype != stype_native->basetype) { flog_warn( EC_LIB_YANG_TRANSLATOR_LOAD, "%s: YANG types are incompatible (xpath: \"%s\")", @@ -486,7 +491,7 @@ static unsigned int yang_translator_validate(struct yang_translator *translator) return args.errors; } -static int yang_module_nodes_count_cb(const struct lys_node *snode, void *arg) +static int yang_module_nodes_count_cb(const struct lysc_node *snode, void *arg) { unsigned int *total = arg; @@ -511,14 +516,14 @@ static unsigned int yang_module_nodes_count(const struct lys_module *module) void yang_translator_init(void) { - ly_translator_ctx = yang_ctx_new_setup(true); + ly_translator_ctx = yang_ctx_new_setup(true, false); if (!ly_translator_ctx) { flog_err(EC_LIB_LIBYANG, "%s: ly_ctx_new() failed", __func__); exit(1); } if (!ly_ctx_load_module(ly_translator_ctx, "frr-module-translator", - NULL)) { + NULL, NULL)) { flog_err( EC_LIB_YANG_MODULE_LOAD, "%s: failed to load the \"frr-module-translator\" module", @@ -536,5 +541,5 @@ void yang_translator_terminate(void) yang_translator_unload(translator); } - ly_ctx_destroy(ly_translator_ctx, NULL); + ly_ctx_destroy(ly_translator_ctx); } diff --git a/lib/yang_wrappers.c b/lib/yang_wrappers.c index 98f8fea0fe..85aa003db7 100644 --- a/lib/yang_wrappers.c +++ b/lib/yang_wrappers.c @@ -26,12 +26,80 @@ #include "nexthop.h" #include "printfrr.h" + +#define YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt) \ + ({ \ + va_list __ap; \ + va_start(__ap, (xpath_fmt)); \ + const struct lyd_value *__dvalue = \ + yang_dnode_xpath_get_value(dnode, xpath_fmt, __ap); \ + va_end(__ap); \ + __dvalue; \ + }) + +#define YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt) \ + ({ \ + va_list __ap; \ + va_start(__ap, (xpath_fmt)); \ + const char *__canon = \ + yang_dnode_xpath_get_canon(dnode, xpath_fmt, __ap); \ + va_end(__ap); \ + __canon; \ + }) + +#define YANG_DNODE_GET_ASSERT(dnode, xpath) \ + do { \ + if ((dnode) == NULL) { \ + flog_err(EC_LIB_YANG_DNODE_NOT_FOUND, \ + "%s: couldn't find %s", __func__, (xpath)); \ + zlog_backtrace(LOG_ERR); \ + abort(); \ + } \ + } while (0) + +static inline const char * +yang_dnode_xpath_get_canon(const struct lyd_node *dnode, const char *xpath_fmt, + va_list ap) +{ + const struct lyd_node_term *__dleaf = + (const struct lyd_node_term *)dnode; + assert(__dleaf); + if (xpath_fmt) { + char __xpath[XPATH_MAXLEN]; + vsnprintf(__xpath, sizeof(__xpath), xpath_fmt, ap); + __dleaf = (const struct lyd_node_term *)yang_dnode_get(dnode, + __xpath); + YANG_DNODE_GET_ASSERT(__dleaf, __xpath); + } + return lyd_get_value(&__dleaf->node); +} + +static inline const struct lyd_value * +yang_dnode_xpath_get_value(const struct lyd_node *dnode, const char *xpath_fmt, + va_list ap) +{ + const struct lyd_node_term *__dleaf = + (const struct lyd_node_term *)dnode; + assert(__dleaf); + if (xpath_fmt) { + char __xpath[XPATH_MAXLEN]; + vsnprintf(__xpath, sizeof(__xpath), xpath_fmt, ap); + __dleaf = (const struct lyd_node_term *)yang_dnode_get(dnode, + __xpath); + YANG_DNODE_GET_ASSERT(__dleaf, __xpath); + } + const struct lyd_value *__dvalue = &__dleaf->value; + if (__dvalue->realtype->basetype == LY_TYPE_UNION) + __dvalue = &__dvalue->subvalue->value; + return __dvalue; +} + static const char *yang_get_default_value(const char *xpath) { - const struct lys_node *snode; + const struct lysc_node *snode; const char *value; - snode = ly_ctx_get_node(ly_native_ctx, NULL, xpath, 0); + snode = lys_find_path(ly_native_ctx, NULL, xpath, 0); if (snode == NULL) { flog_err(EC_LIB_YANG_UNKNOWN_DATA_PATH, "%s: unknown data path: %s", __func__, xpath); @@ -45,16 +113,6 @@ static const char *yang_get_default_value(const char *xpath) return value; } -#define YANG_DNODE_GET_ASSERT(dnode, xpath) \ - do { \ - if ((dnode) == NULL) { \ - flog_err(EC_LIB_YANG_DNODE_NOT_FOUND, \ - "%s: couldn't find %s", __func__, (xpath)); \ - zlog_backtrace(LOG_ERR); \ - abort(); \ - } \ - } while (0) - /* * Primitive type: bool. */ @@ -71,23 +129,10 @@ struct yang_data *yang_data_new_bool(const char *xpath, bool value) bool yang_dnode_get_bool(const struct lyd_node *dnode, const char *xpath_fmt, ...) { - const struct lyd_node_leaf_list *dleaf; - - assert(dnode); - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); - dnode = yang_dnode_get(dnode, xpath); - YANG_DNODE_GET_ASSERT(dnode, xpath); - } - - dleaf = (const struct lyd_node_leaf_list *)dnode; - assert(dleaf->value_type == LY_TYPE_BOOL); - return dleaf->value.bln; + const struct lyd_value *dvalue; + dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt); + assert(dvalue->realtype->basetype == LY_TYPE_BOOL); + return dvalue->boolean; } bool yang_get_default_bool(const char *xpath_fmt, ...) @@ -133,24 +178,18 @@ struct yang_data *yang_data_new_dec64(const char *xpath, double value) double yang_dnode_get_dec64(const struct lyd_node *dnode, const char *xpath_fmt, ...) { - const struct lyd_node_leaf_list *dleaf; - - assert(dnode); - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); - dnode = yang_dnode_get(dnode, xpath); - YANG_DNODE_GET_ASSERT(dnode, xpath); - } + const double denom[19] = {1e0, 1e-1, 1e-2, 1e-3, 1e-4, + 1e-5, 1e-6, 1e-7, 1e-8, 1e-9, + 1e-10, 1e-11, 1e-12, 1e-13, 1e-14, + 1e-15, 1e-16, 1e-17, 1e-18}; + const struct lysc_type_dec *dectype; + const struct lyd_value *dvalue; - dleaf = (const struct lyd_node_leaf_list *)dnode; - assert(dleaf->value_type == LY_TYPE_DEC64); - - return lyd_dec64_to_double(dnode); + dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt); + dectype = (const struct lysc_type_dec *)dvalue->realtype; + assert(dectype->basetype == LY_TYPE_DEC64); + assert(dectype->fraction_digits < sizeof(denom) / sizeof(*denom)); + return (double)dvalue->dec64 * denom[dectype->fraction_digits]; } double yang_get_default_dec64(const char *xpath_fmt, ...) @@ -172,12 +211,12 @@ double yang_get_default_dec64(const char *xpath_fmt, ...) */ int yang_str2enum(const char *xpath, const char *value) { - const struct lys_node *snode; - const struct lys_node_leaf *sleaf; - const struct lys_type *type; - const struct lys_type_info_enums *enums; + const struct lysc_node *snode; + const struct lysc_node_leaf *sleaf; + const struct lysc_type_enum *type; + const struct lysc_type_bitenum_item *enums; - snode = ly_ctx_get_node(ly_native_ctx, NULL, xpath, 0); + snode = lys_find_path(ly_native_ctx, NULL, xpath, 0); if (snode == NULL) { flog_err(EC_LIB_YANG_UNKNOWN_DATA_PATH, "%s: unknown data path: %s", __func__, xpath); @@ -185,18 +224,17 @@ int yang_str2enum(const char *xpath, const char *value) abort(); } - sleaf = (const struct lys_node_leaf *)snode; - type = &sleaf->type; - enums = &type->info.enums; - while (enums->count == 0 && type->der) { - type = &type->der->type; - enums = &type->info.enums; - } - for (unsigned int i = 0; i < enums->count; i++) { - const struct lys_type_enum *enm = &enums->enm[i]; - - if (strmatch(value, enm->name)) - return enm->value; + assert(snode->nodetype == LYS_LEAF); + sleaf = (const struct lysc_node_leaf *)snode; + type = (const struct lysc_type_enum *)sleaf->type; + assert(type->basetype == LY_TYPE_ENUM); + enums = type->enums; + unsigned int count = LY_ARRAY_COUNT(enums); + for (unsigned int i = 0; i < count; i++) { + if (strmatch(value, enums[i].name)) { + assert(CHECK_FLAG(enums[i].flags, LYS_SET_VALUE)); + return enums[i].value; + } } flog_err(EC_LIB_YANG_DATA_CONVERT, @@ -208,12 +246,12 @@ int yang_str2enum(const char *xpath, const char *value) struct yang_data *yang_data_new_enum(const char *xpath, int value) { - const struct lys_node *snode; - const struct lys_node_leaf *sleaf; - const struct lys_type *type; - const struct lys_type_info_enums *enums; + const struct lysc_node *snode; + const struct lysc_node_leaf *sleaf; + const struct lysc_type_enum *type; + const struct lysc_type_bitenum_item *enums; - snode = ly_ctx_get_node(ly_native_ctx, NULL, xpath, 0); + snode = lys_find_path(ly_native_ctx, NULL, xpath, 0); if (snode == NULL) { flog_err(EC_LIB_YANG_UNKNOWN_DATA_PATH, "%s: unknown data path: %s", __func__, xpath); @@ -221,18 +259,16 @@ struct yang_data *yang_data_new_enum(const char *xpath, int value) abort(); } - sleaf = (const struct lys_node_leaf *)snode; - type = &sleaf->type; - enums = &type->info.enums; - while (enums->count == 0 && type->der) { - type = &type->der->type; - enums = &type->info.enums; - } - for (unsigned int i = 0; i < enums->count; i++) { - const struct lys_type_enum *enm = &enums->enm[i]; - - if (value == enm->value) - return yang_data_new(xpath, enm->name); + assert(snode->nodetype == LYS_LEAF); + sleaf = (const struct lysc_node_leaf *)snode; + type = (const struct lysc_type_enum *)sleaf->type; + assert(type->basetype == LY_TYPE_ENUM); + enums = type->enums; + unsigned int count = LY_ARRAY_COUNT(enums); + for (unsigned int i = 0; i < count; i++) { + if (CHECK_FLAG(enums[i].flags, LYS_SET_VALUE) + && value == enums[i].value) + return yang_data_new(xpath, enums[i].name); } flog_err(EC_LIB_YANG_DATA_CONVERT, @@ -245,23 +281,12 @@ struct yang_data *yang_data_new_enum(const char *xpath, int value) int yang_dnode_get_enum(const struct lyd_node *dnode, const char *xpath_fmt, ...) { - const struct lyd_node_leaf_list *dleaf; + const struct lyd_value *dvalue; - assert(dnode); - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); - dnode = yang_dnode_get(dnode, xpath); - YANG_DNODE_GET_ASSERT(dnode, xpath); - } - - dleaf = (const struct lyd_node_leaf_list *)dnode; - assert(dleaf->value_type == LY_TYPE_ENUM); - return dleaf->value.enm->value; + dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt); + assert(dvalue->realtype->basetype == LY_TYPE_ENUM); + assert(dvalue->enum_item->flags & LYS_SET_VALUE); + return dvalue->enum_item->value; } int yang_get_default_enum(const char *xpath_fmt, ...) @@ -297,23 +322,10 @@ struct yang_data *yang_data_new_int8(const char *xpath, int8_t value) int8_t yang_dnode_get_int8(const struct lyd_node *dnode, const char *xpath_fmt, ...) { - const struct lyd_node_leaf_list *dleaf; - - assert(dnode); - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); - dnode = yang_dnode_get(dnode, xpath); - YANG_DNODE_GET_ASSERT(dnode, xpath); - } - - dleaf = (const struct lyd_node_leaf_list *)dnode; - assert(dleaf->value_type == LY_TYPE_INT8); - return dleaf->value.int8; + const struct lyd_value *dvalue; + dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt); + assert(dvalue->realtype->basetype == LY_TYPE_INT8); + return dvalue->int8; } int8_t yang_get_default_int8(const char *xpath_fmt, ...) @@ -349,23 +361,10 @@ struct yang_data *yang_data_new_int16(const char *xpath, int16_t value) int16_t yang_dnode_get_int16(const struct lyd_node *dnode, const char *xpath_fmt, ...) { - const struct lyd_node_leaf_list *dleaf; - - assert(dnode); - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); - dnode = yang_dnode_get(dnode, xpath); - YANG_DNODE_GET_ASSERT(dnode, xpath); - } - - dleaf = (const struct lyd_node_leaf_list *)dnode; - assert(dleaf->value_type == LY_TYPE_INT16); - return dleaf->value.int16; + const struct lyd_value *dvalue; + dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt); + assert(dvalue->realtype->basetype == LY_TYPE_INT16); + return dvalue->int16; } int16_t yang_get_default_int16(const char *xpath_fmt, ...) @@ -401,23 +400,10 @@ struct yang_data *yang_data_new_int32(const char *xpath, int32_t value) int32_t yang_dnode_get_int32(const struct lyd_node *dnode, const char *xpath_fmt, ...) { - const struct lyd_node_leaf_list *dleaf; - - assert(dnode); - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); - dnode = yang_dnode_get(dnode, xpath); - YANG_DNODE_GET_ASSERT(dnode, xpath); - } - - dleaf = (const struct lyd_node_leaf_list *)dnode; - assert(dleaf->value_type == LY_TYPE_INT32); - return dleaf->value.int32; + const struct lyd_value *dvalue; + dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt); + assert(dvalue->realtype->basetype == LY_TYPE_INT32); + return dvalue->int32; } int32_t yang_get_default_int32(const char *xpath_fmt, ...) @@ -453,23 +439,10 @@ struct yang_data *yang_data_new_int64(const char *xpath, int64_t value) int64_t yang_dnode_get_int64(const struct lyd_node *dnode, const char *xpath_fmt, ...) { - const struct lyd_node_leaf_list *dleaf; - - assert(dnode); - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); - dnode = yang_dnode_get(dnode, xpath); - YANG_DNODE_GET_ASSERT(dnode, xpath); - } - - dleaf = (const struct lyd_node_leaf_list *)dnode; - assert(dleaf->value_type == LY_TYPE_INT64); - return dleaf->value.int64; + const struct lyd_value *dvalue; + dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt); + assert(dvalue->realtype->basetype == LY_TYPE_INT64); + return dvalue->int64; } int64_t yang_get_default_int64(const char *xpath_fmt, ...) @@ -505,23 +478,10 @@ struct yang_data *yang_data_new_uint8(const char *xpath, uint8_t value) uint8_t yang_dnode_get_uint8(const struct lyd_node *dnode, const char *xpath_fmt, ...) { - const struct lyd_node_leaf_list *dleaf; - - assert(dnode); - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); - dnode = yang_dnode_get(dnode, xpath); - YANG_DNODE_GET_ASSERT(dnode, xpath); - } - - dleaf = (const struct lyd_node_leaf_list *)dnode; - assert(dleaf->value_type == LY_TYPE_UINT8); - return dleaf->value.uint8; + const struct lyd_value *dvalue; + dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt); + assert(dvalue->realtype->basetype == LY_TYPE_UINT8); + return dvalue->uint8; } uint8_t yang_get_default_uint8(const char *xpath_fmt, ...) @@ -557,23 +517,10 @@ struct yang_data *yang_data_new_uint16(const char *xpath, uint16_t value) uint16_t yang_dnode_get_uint16(const struct lyd_node *dnode, const char *xpath_fmt, ...) { - const struct lyd_node_leaf_list *dleaf; - - assert(dnode); - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); - dnode = yang_dnode_get(dnode, xpath); - YANG_DNODE_GET_ASSERT(dnode, xpath); - } - - dleaf = (const struct lyd_node_leaf_list *)dnode; - assert(dleaf->value_type == LY_TYPE_UINT16); - return dleaf->value.uint16; + const struct lyd_value *dvalue; + dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt); + assert(dvalue->realtype->basetype == LY_TYPE_UINT16); + return dvalue->uint16; } uint16_t yang_get_default_uint16(const char *xpath_fmt, ...) @@ -609,23 +556,10 @@ struct yang_data *yang_data_new_uint32(const char *xpath, uint32_t value) uint32_t yang_dnode_get_uint32(const struct lyd_node *dnode, const char *xpath_fmt, ...) { - const struct lyd_node_leaf_list *dleaf; - - assert(dnode); - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); - dnode = yang_dnode_get(dnode, xpath); - YANG_DNODE_GET_ASSERT(dnode, xpath); - } - - dleaf = (const struct lyd_node_leaf_list *)dnode; - assert(dleaf->value_type == LY_TYPE_UINT32); - return dleaf->value.uint32; + const struct lyd_value *dvalue; + dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt); + assert(dvalue->realtype->basetype == LY_TYPE_UINT32); + return dvalue->uint32; } uint32_t yang_get_default_uint32(const char *xpath_fmt, ...) @@ -661,23 +595,10 @@ struct yang_data *yang_data_new_uint64(const char *xpath, uint64_t value) uint64_t yang_dnode_get_uint64(const struct lyd_node *dnode, const char *xpath_fmt, ...) { - const struct lyd_node_leaf_list *dleaf; - - assert(dnode); - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); - dnode = yang_dnode_get(dnode, xpath); - YANG_DNODE_GET_ASSERT(dnode, xpath); - } - - dleaf = (const struct lyd_node_leaf_list *)dnode; - assert(dleaf->value_type == LY_TYPE_UINT64); - return dleaf->value.uint64; + const struct lyd_value *dvalue; + dvalue = YANG_DNODE_XPATH_GET_VALUE(dnode, xpath_fmt); + assert(dvalue->realtype->basetype == LY_TYPE_UINT64); + return dvalue->uint64; } uint64_t yang_get_default_uint64(const char *xpath_fmt, ...) @@ -707,44 +628,15 @@ struct yang_data *yang_data_new_string(const char *xpath, const char *value) const char *yang_dnode_get_string(const struct lyd_node *dnode, const char *xpath_fmt, ...) { - const struct lyd_node_leaf_list *dleaf; - - assert(dnode); - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); - dnode = yang_dnode_get(dnode, xpath); - YANG_DNODE_GET_ASSERT(dnode, xpath); - } - - dleaf = (const struct lyd_node_leaf_list *)dnode; - return dleaf->value_str; + return YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt); } void yang_dnode_get_string_buf(char *buf, size_t size, const struct lyd_node *dnode, const char *xpath_fmt, ...) { - const struct lyd_node_leaf_list *dleaf; - - assert(dnode); - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); - dnode = yang_dnode_get(dnode, xpath); - YANG_DNODE_GET_ASSERT(dnode, xpath); - } - - dleaf = (const struct lyd_node_leaf_list *)dnode; - if (strlcpy(buf, dleaf->value_str, size) >= size) { + const char *canon = YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt); + if (strlcpy(buf, canon, size) >= size) { char xpath[XPATH_MAXLEN]; yang_dnode_get_path(dnode, xpath, sizeof(xpath)); @@ -797,7 +689,7 @@ bool yang_dnode_get_empty(const struct lyd_node *dnode, const char *xpath_fmt, { va_list ap; char xpath[XPATH_MAXLEN]; - const struct lyd_node_leaf_list *dleaf; + const struct lyd_node_term *dleaf; assert(dnode); @@ -807,8 +699,8 @@ bool yang_dnode_get_empty(const struct lyd_node *dnode, const char *xpath_fmt, dnode = yang_dnode_get(dnode, xpath); if (dnode) { - dleaf = (const struct lyd_node_leaf_list *)dnode; - if (dleaf->value_type == LY_TYPE_EMPTY) + dleaf = (const struct lyd_node_term *)dnode; + if (dleaf->value.realtype->basetype == LY_TYPE_EMPTY) return true; } @@ -836,29 +728,16 @@ struct yang_data *yang_data_new_prefix(const char *xpath, void yang_dnode_get_prefix(struct prefix *prefix, const struct lyd_node *dnode, const char *xpath_fmt, ...) { - const struct lyd_node_leaf_list *dleaf; - - assert(dnode); - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); - dnode = yang_dnode_get(dnode, xpath); - YANG_DNODE_GET_ASSERT(dnode, xpath); - } - + const char *canon; /* * Initialize prefix to avoid static analyzer complaints about * uninitialized memory. */ memset(prefix, 0, sizeof(*prefix)); - dleaf = (const struct lyd_node_leaf_list *)dnode; - assert(dleaf->value_type == LY_TYPE_STRING); - (void)str2prefix(dleaf->value_str, prefix); + /* XXX ip_prefix is a native type now in ly2, leverage? */ + canon = YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt); + (void)str2prefix(canon, prefix); } void yang_get_default_prefix(union prefixptr var, const char *xpath_fmt, ...) @@ -895,23 +774,9 @@ struct yang_data *yang_data_new_ipv4(const char *xpath, void yang_dnode_get_ipv4(struct in_addr *addr, const struct lyd_node *dnode, const char *xpath_fmt, ...) { - const struct lyd_node_leaf_list *dleaf; - - assert(dnode); - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); - dnode = yang_dnode_get(dnode, xpath); - YANG_DNODE_GET_ASSERT(dnode, xpath); - } - - dleaf = (const struct lyd_node_leaf_list *)dnode; - assert(dleaf->value_type == LY_TYPE_STRING); - (void)inet_pton(AF_INET, dleaf->value_str, addr); + /* XXX libyang2 IPv4 address is a native type now in ly2 */ + const char *canon = YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt); + (void)inet_pton(AF_INET, canon, addr); } void yang_get_default_ipv4(struct in_addr *var, const char *xpath_fmt, ...) @@ -951,24 +816,10 @@ struct yang_data *yang_data_new_ipv4p(const char *xpath, void yang_dnode_get_ipv4p(union prefixptr prefix, const struct lyd_node *dnode, const char *xpath_fmt, ...) { - const struct lyd_node_leaf_list *dleaf; struct prefix_ipv4 *prefix4 = prefix.p4; - - assert(dnode); - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); - dnode = yang_dnode_get(dnode, xpath); - YANG_DNODE_GET_ASSERT(dnode, xpath); - } - - dleaf = (const struct lyd_node_leaf_list *)dnode; - assert(dleaf->value_type == LY_TYPE_STRING); - (void)str2prefix_ipv4(dleaf->value_str, prefix4); + /* XXX libyang2: ipv4/6 address is a native type now in ly2 */ + const char *canon = YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt); + (void)str2prefix_ipv4(canon, prefix4); } void yang_get_default_ipv4p(union prefixptr var, const char *xpath_fmt, ...) @@ -1005,23 +856,9 @@ struct yang_data *yang_data_new_ipv6(const char *xpath, void yang_dnode_get_ipv6(struct in6_addr *addr, const struct lyd_node *dnode, const char *xpath_fmt, ...) { - const struct lyd_node_leaf_list *dleaf; - - assert(dnode); - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); - dnode = yang_dnode_get(dnode, xpath); - YANG_DNODE_GET_ASSERT(dnode, xpath); - } - - dleaf = (const struct lyd_node_leaf_list *)dnode; - assert(dleaf->value_type == LY_TYPE_STRING); - (void)inet_pton(AF_INET6, dleaf->value_str, addr); + /* XXX libyang2: IPv6 address is a native type now, leverage. */ + const char *canon = YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt); + (void)inet_pton(AF_INET6, canon, addr); } void yang_get_default_ipv6(struct in6_addr *var, const char *xpath_fmt, ...) @@ -1061,24 +898,11 @@ struct yang_data *yang_data_new_ipv6p(const char *xpath, void yang_dnode_get_ipv6p(union prefixptr prefix, const struct lyd_node *dnode, const char *xpath_fmt, ...) { - const struct lyd_node_leaf_list *dleaf; struct prefix_ipv6 *prefix6 = prefix.p6; - assert(dnode); - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); - dnode = yang_dnode_get(dnode, xpath); - YANG_DNODE_GET_ASSERT(dnode, xpath); - } - - dleaf = (const struct lyd_node_leaf_list *)dnode; - assert(dleaf->value_type == LY_TYPE_STRING); - (void)str2prefix_ipv6(dleaf->value_str, prefix6); + /* XXX IPv6 address is a native type now in ly2 -- can we leverage? */ + const char *canon = YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt); + (void)str2prefix_ipv6(canon, prefix6); } void yang_get_default_ipv6p(union prefixptr var, const char *xpath_fmt, ...) @@ -1115,23 +939,9 @@ struct yang_data *yang_data_new_ip(const char *xpath, const struct ipaddr *addr) void yang_dnode_get_ip(struct ipaddr *addr, const struct lyd_node *dnode, const char *xpath_fmt, ...) { - const struct lyd_node_leaf_list *dleaf; - - assert(dnode); - if (xpath_fmt) { - va_list ap; - char xpath[XPATH_MAXLEN]; - - va_start(ap, xpath_fmt); - vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap); - va_end(ap); - dnode = yang_dnode_get(dnode, xpath); - YANG_DNODE_GET_ASSERT(dnode, xpath); - } - - dleaf = (const struct lyd_node_leaf_list *)dnode; - assert(dleaf->value_type == LY_TYPE_STRING); - (void)str2ipaddr(dleaf->value_str, addr); + /* XXX IPv4 address could be a plugin type now in ly2, leverage? */ + const char *canon = YANG_DNODE_XPATH_GET_CANON(dnode, xpath_fmt); + (void)str2ipaddr(canon, addr); } void yang_get_default_ip(struct ipaddr *var, const char *xpath_fmt, ...) diff --git a/ospf6d/ospf6_flood.c b/ospf6d/ospf6_flood.c index 0fa6f8c779..76e81aab7b 100644 --- a/ospf6d/ospf6_flood.c +++ b/ospf6d/ospf6_flood.c @@ -1018,18 +1018,20 @@ void ospf6_receive_lsa(struct ospf6_neighbor *from, if (is_debug) zlog_debug( "%s: Current copy of LSA %s is MAXAGE, but new has recent age, flooding/installing.", - old->name, __PRETTY_FUNCTION__); + __PRETTY_FUNCTION__, old->name); ospf6_lsa_purge(old); ospf6_flood(from, new); ospf6_install_lsa(new); - } else { - if (is_debug) - zlog_debug( - "%s: Current copy of self-originated LSA %s is MAXAGE, but new has recent age, ignoring new.", - old->name, __PRETTY_FUNCTION__); - ospf6_lsa_delete(new); + return; } - return; + /* For self-originated LSA, only trust + * ourselves. Fall through and send + * LS Update with our current copy. + */ + if (is_debug) + zlog_debug( + "%s: Current copy of self-originated LSA %s is MAXAGE, but new has recent age, re-sending current one.", + __PRETTY_FUNCTION__, old->name); } /* XXX, MinLSArrival check !? RFC 2328 13 (8) */ diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c index 11bdd1e355..c2f9c3362e 100644 --- a/ospf6d/ospf6_interface.c +++ b/ospf6d/ospf6_interface.c @@ -405,6 +405,7 @@ void ospf6_interface_connected_route_update(struct interface *ifp) struct connected *c; struct listnode *node, *nnode; struct in6_addr nh_addr; + int count = 0, max_addr_count; oi = (struct ospf6_interface *)ifp->info; if (oi == NULL) @@ -423,10 +424,22 @@ void ospf6_interface_connected_route_update(struct interface *ifp) /* update "route to advertise" interface route table */ ospf6_route_remove_all(oi->route_connected); + if (oi->ifmtu >= OSPF6_JUMBO_MTU) + max_addr_count = OSPF6_MAX_IF_ADDRS_JUMBO; + else + max_addr_count = OSPF6_MAX_IF_ADDRS; + for (ALL_LIST_ELEMENTS(oi->interface->connected, node, nnode, c)) { if (c->address->family != AF_INET6) continue; + /* number of interface addresses supported is based on MTU + * size of OSPFv3 packet + */ + count++; + if (count >= max_addr_count) + break; + CONTINUE_IF_ADDRESS_LINKLOCAL(IS_OSPF6_DEBUG_INTERFACE, c->address); CONTINUE_IF_ADDRESS_UNSPECIFIED(IS_OSPF6_DEBUG_INTERFACE, diff --git a/ospf6d/ospf6_interface.h b/ospf6d/ospf6_interface.h index a45a841406..48b2cbff74 100644 --- a/ospf6d/ospf6_interface.h +++ b/ospf6d/ospf6_interface.h @@ -188,6 +188,7 @@ extern void ospf6_interface_disable(struct ospf6_interface *); extern void ospf6_interface_if_add(struct interface *); extern void ospf6_interface_state_update(struct interface *); extern void ospf6_interface_connected_route_update(struct interface *); +extern void ospf6_interface_connected_route_add(struct connected *); /* interface event */ extern int interface_up(struct thread *); diff --git a/ospf6d/ospf6_intra.c b/ospf6d/ospf6_intra.c index 61a438b04a..12d11d45c1 100644 --- a/ospf6d/ospf6_intra.c +++ b/ospf6d/ospf6_intra.c @@ -757,6 +757,7 @@ int ospf6_link_lsa_originate(struct thread *thread) struct ospf6_link_lsa *link_lsa; struct ospf6_route *route; struct ospf6_prefix *op; + int count, max_addr_count; oi = (struct ospf6_interface *)THREAD_ARG(thread); oi->thread_link_lsa = NULL; @@ -800,14 +801,20 @@ int ospf6_link_lsa_originate(struct thread *thread) memcpy(link_lsa->options, oi->area->options, 3); memcpy(&link_lsa->linklocal_addr, oi->linklocal_addr, sizeof(struct in6_addr)); - link_lsa->prefix_num = htonl(oi->route_connected->count); op = (struct ospf6_prefix *)((caddr_t)link_lsa + sizeof(struct ospf6_link_lsa)); - /* connected prefix to advertise */ - for (route = ospf6_route_head(oi->route_connected); route; - route = ospf6_route_next(route)) { + /* connected prefix to advertise, number of interface addresses + * supported is based on MTU size of OSPFv3 packets + */ + if (oi->ifmtu >= OSPF6_JUMBO_MTU) + max_addr_count = OSPF6_MAX_IF_ADDRS_JUMBO; + else + max_addr_count = OSPF6_MAX_IF_ADDRS; + for (route = ospf6_route_head(oi->route_connected), count = 0; + route && count < max_addr_count; + route = ospf6_route_next(route), count++) { op->prefix_length = route->prefix.prefixlen; op->prefix_options = route->path.prefix_options; op->prefix_metric = htons(0); @@ -816,6 +823,8 @@ int ospf6_link_lsa_originate(struct thread *thread) op = OSPF6_PREFIX_NEXT(op); } + link_lsa->prefix_num = htonl(count); + /* Fill LSA Header */ lsa_header->age = 0; lsa_header->type = htons(OSPF6_LSTYPE_LINK); @@ -995,6 +1004,7 @@ int ospf6_intra_prefix_lsa_originate_stub(struct thread *thread) unsigned short prefix_num = 0; struct ospf6_route_table *route_advertise; int ls_id = 0; + int count, max_addr_count; oa = (struct ospf6_area *)THREAD_ARG(thread); oa->thread_intra_prefix_lsa = NULL; @@ -1040,6 +1050,8 @@ int ospf6_intra_prefix_lsa_originate_stub(struct thread *thread) intra_prefix_lsa->ref_adv_router = oa->ospf6->router_id; route_advertise = ospf6_route_table_create(0, 0); + route_advertise->hook_add = NULL; + route_advertise->hook_remove = NULL; for (ALL_LIST_ELEMENTS_RO(oa->if_list, i, oi)) { if (oi->state == OSPF6_INTERFACE_DOWN) { @@ -1068,8 +1080,14 @@ int ospf6_intra_prefix_lsa_originate_stub(struct thread *thread) zlog_debug(" Interface %s:", oi->interface->name); /* connected prefix to advertise */ - for (route = ospf6_route_head(oi->route_connected); route; - route = ospf6_route_best_next(route)) { + if (oi->ifmtu >= OSPF6_JUMBO_MTU) + max_addr_count = OSPF6_MAX_IF_ADDRS_JUMBO; + else + max_addr_count = OSPF6_MAX_IF_ADDRS; + + for (route = ospf6_route_head(oi->route_connected), count = 0; + route && count < max_addr_count; + route = ospf6_route_best_next(route), count++) { if (IS_OSPF6_DEBUG_ORIGINATE(INTRA_PREFIX)) zlog_debug(" include %pFX", &route->prefix); ospf6_route_add(ospf6_route_copy(route), @@ -1284,6 +1302,8 @@ int ospf6_intra_prefix_lsa_originate_transit(struct thread *thread) /* connected prefix to advertise */ route_advertise = ospf6_route_table_create(0, 0); + route_advertise->hook_add = NULL; + route_advertise->hook_remove = NULL; type = ntohs(OSPF6_LSTYPE_LINK); for (ALL_LSDB_TYPED(oi->lsdb, type, lsa)) { diff --git a/ospf6d/ospf6_main.c b/ospf6d/ospf6_main.c index 5ffcf8c2fa..e233611690 100644 --- a/ospf6d/ospf6_main.c +++ b/ospf6d/ospf6_main.c @@ -87,6 +87,8 @@ static void __attribute__((noreturn)) ospf6_exit(int status) frr_early_fini(); + bfd_protocol_integration_set_shutdown(true); + for (ALL_LIST_ELEMENTS(om6->ospf6, node, nnode, ospf6)) { vrf = vrf_lookup_by_id(ospf6->vrf_id); ospf6_delete(ospf6); @@ -96,9 +98,6 @@ static void __attribute__((noreturn)) ospf6_exit(int status) ospf6_interface_delete(ifp->info); } - bfd_gbl_exit(); - - ospf6_message_terminate(); ospf6_asbr_terminate(); ospf6_lsa_terminate(); diff --git a/ospf6d/ospf6_top.c b/ospf6d/ospf6_top.c index 3ab0f1fbb6..a5c188c465 100644 --- a/ospf6d/ospf6_top.c +++ b/ospf6d/ospf6_top.c @@ -850,6 +850,7 @@ DEFUN (ospf6_interface_area, struct ospf6_interface *oi; struct interface *ifp; vrf_id_t vrf_id = VRF_DEFAULT; + int ipv6_count = 0; if (ospf6->vrf_id != VRF_UNKNOWN) vrf_id = ospf6->vrf_id; @@ -865,6 +866,23 @@ DEFUN (ospf6_interface_area, return CMD_SUCCESS; } + /* if more than OSPF6_MAX_IF_ADDRS are configured on this interface + * then don't allow ospfv3 to be configured + */ + ipv6_count = connected_count_by_family(ifp, AF_INET6); + if (oi->ifmtu == OSPF6_DEFAULT_MTU && ipv6_count > OSPF6_MAX_IF_ADDRS) { + vty_out(vty, + "can not configure OSPFv3 on if %s, must have less than %d interface addresses but has %d addresses\n", + ifp->name, OSPF6_MAX_IF_ADDRS, ipv6_count); + return CMD_WARNING_CONFIG_FAILED; + } else if (oi->ifmtu >= OSPF6_JUMBO_MTU + && ipv6_count > OSPF6_MAX_IF_ADDRS_JUMBO) { + vty_out(vty, + "can not configure OSPFv3 on if %s, must have less than %d interface addresses but has %d addresses\n", + ifp->name, OSPF6_MAX_IF_ADDRS_JUMBO, ipv6_count); + return CMD_WARNING_CONFIG_FAILED; + } + /* parse Area-ID */ OSPF6_CMD_AREA_GET(argv[idx_ipv4]->arg, oa, ospf6); diff --git a/ospf6d/ospf6_top.h b/ospf6d/ospf6_top.h index 9ba5a0f9a4..238d6a40ce 100644 --- a/ospf6d/ospf6_top.h +++ b/ospf6d/ospf6_top.h @@ -153,6 +153,10 @@ DECLARE_QOBJ_TYPE(ospf6); #define OSPF6_DISABLED 0x01 #define OSPF6_STUB_ROUTER 0x02 #define OSPF6_FLAG_ASBR 0x04 +#define OSPF6_MAX_IF_ADDRS 100 +#define OSPF6_MAX_IF_ADDRS_JUMBO 200 +#define OSPF6_DEFAULT_MTU 1500 +#define OSPF6_JUMBO_MTU 9000 /* global pointer for OSPF top data structure */ extern struct ospf6 *ospf6; diff --git a/ospf6d/ospf6_zebra.c b/ospf6d/ospf6_zebra.c index 76e7172870..170d545c49 100644 --- a/ospf6d/ospf6_zebra.c +++ b/ospf6d/ospf6_zebra.c @@ -130,17 +130,38 @@ void ospf6_zebra_no_redistribute(int type, vrf_id_t vrf_id) static int ospf6_zebra_if_address_update_add(ZAPI_CALLBACK_ARGS) { struct connected *c; + struct ospf6_interface *oi; + int ipv6_count = 0; c = zebra_interface_address_read(ZEBRA_INTERFACE_ADDRESS_ADD, zclient->ibuf, vrf_id); if (c == NULL) return 0; + oi = (struct ospf6_interface *)c->ifp->info; + if (oi == NULL) + oi = ospf6_interface_create(c->ifp); + assert(oi); + if (IS_OSPF6_DEBUG_ZEBRA(RECV)) zlog_debug("Zebra Interface address add: %s %5s %pFX", c->ifp->name, prefix_family_str(c->address), c->address); + ipv6_count = connected_count_by_family(c->ifp, AF_INET6); + if (oi->ifmtu == OSPF6_DEFAULT_MTU && ipv6_count > OSPF6_MAX_IF_ADDRS) { + zlog_warn( + "Zebra Interface : %s has too many interface addresses %d only support %d, increase MTU", + c->ifp->name, ipv6_count, OSPF6_MAX_IF_ADDRS); + return 0; + } else if (oi->ifmtu >= OSPF6_JUMBO_MTU + && ipv6_count > OSPF6_MAX_IF_ADDRS_JUMBO) { + zlog_warn( + "Zebra Interface : %s has too many interface addresses %d only support %d", + c->ifp->name, ipv6_count, OSPF6_MAX_IF_ADDRS_JUMBO); + return 0; + } + if (c->address->family == AF_INET6) { ospf6_interface_state_update(c->ifp); ospf6_interface_connected_route_update(c->ifp); @@ -303,7 +324,7 @@ static void ospf6_zebra_route_update(int type, struct ospf6_route *request, struct prefix *dest; if (IS_OSPF6_DEBUG_ZEBRA(SEND)) - zlog_debug("Send %s route: %pFX", + zlog_debug("Zebra Send %s route: %pFX", (type == REM ? "remove" : "add"), &request->prefix); if (zclient->sock < 0) { diff --git a/ospfd/ospf_asbr.c b/ospfd/ospf_asbr.c index b022133dcd..bda00e0c9e 100644 --- a/ospfd/ospf_asbr.c +++ b/ospfd/ospf_asbr.c @@ -692,8 +692,7 @@ struct ospf_lsa *ospf_originate_summary_lsa(struct ospf *ospf, if (IS_DEBUG_OSPF(lsa, EXTNL_LSA_AGGR)) zlog_debug( "%s: LSA is in MAX-AGE so refreshing LSA(%pI4/%d)", - __PRETTY_FUNCTION__, &aggr->p.prefix, - aggr->p.prefixlen); + __func__, &aggr->p.prefix, aggr->p.prefixlen); ospf_external_lsa_refresh(ospf, lsa, &ei_aggr, LSA_REFRESH_FORCE, 1); @@ -711,8 +710,7 @@ struct ospf_lsa *ospf_originate_summary_lsa(struct ospf *ospf, if (IS_DEBUG_OSPF(lsa, EXTNL_LSA_AGGR)) zlog_debug( "%s: External route prefix is same as aggr so refreshing LSA(%pI4/%d)", - __PRETTY_FUNCTION__, &aggr->p.prefix, - aggr->p.prefixlen); + __func__, &aggr->p.prefix, aggr->p.prefixlen); ospf_external_lsa_refresh(ospf, lsa, &ei_aggr, LSA_REFRESH_FORCE, 1); SET_FLAG(aggr->flags, OSPF_EXTERNAL_AGGRT_ORIGINATED); diff --git a/ospfd/ospf_flood.c b/ospfd/ospf_flood.c index caba03c1b5..7eb587899b 100644 --- a/ospfd/ospf_flood.c +++ b/ospfd/ospf_flood.c @@ -388,8 +388,7 @@ int ospf_flood(struct ospf *ospf, struct ospf_neighbor *nbr, if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug( "%s, Received a maxage GRACE-LSA from router %pI4", - __PRETTY_FUNCTION__, - &new->data->adv_router); + __func__, &new->data->adv_router); if (current) { ospf_process_maxage_grace_lsa(ospf, new, nbr); @@ -397,22 +396,21 @@ int ospf_flood(struct ospf *ospf, struct ospf_neighbor *nbr, if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug( "%s, Grace LSA doesn't exist in lsdb, so discarding grace lsa", - __PRETTY_FUNCTION__); + __func__); return -1; } } else { if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug( "%s, Received a GRACE-LSA from router %pI4", - __PRETTY_FUNCTION__, - &new->data->adv_router); + __func__, &new->data->adv_router); if (ospf_process_grace_lsa(ospf, new, nbr) == OSPF_GR_NOT_HELPER) { if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug( "%s, Not moving to HELPER role, So discarding grace LSA", - __PRETTY_FUNCTION__); + __func__); return -1; } } diff --git a/ospfd/ospf_gr_helper.c b/ospfd/ospf_gr_helper.c index a86e1b8401..d818878cf5 100644 --- a/ospfd/ospf_gr_helper.c +++ b/ospfd/ospf_gr_helper.c @@ -164,7 +164,7 @@ void ospf_gr_helper_init(struct ospf *ospf) int rc; if (IS_DEBUG_OSPF_GR_HELPER) - zlog_debug("%s, GR Helper init.", __PRETTY_FUNCTION__); + zlog_debug("%s, GR Helper init.", __func__); ospf->is_helper_supported = OSPF_GR_FALSE; ospf->strict_lsa_check = OSPF_GR_TRUE; @@ -201,7 +201,7 @@ void ospf_gr_helper_stop(struct ospf *ospf) { if (IS_DEBUG_OSPF_GR_HELPER) - zlog_debug("%s, GR helper deinit.", __PRETTY_FUNCTION__); + zlog_debug("%s, GR helper deinit.", __func__); ospf_enable_rtr_hash_destroy(ospf); @@ -305,7 +305,7 @@ static int ospf_extract_grace_lsa_fields(struct ospf_lsa *lsa, if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug( "%s, Malformed packet.Invalid TLV type:%d", - __PRETTY_FUNCTION__, ntohs(tlvh->type)); + __func__, ntohs(tlvh->type)); return OSPF_GR_FAILURE; } } @@ -370,16 +370,14 @@ int ospf_process_grace_lsa(struct ospf *ospf, struct ospf_lsa *lsa, &restart_reason); if (ret != OSPF_GR_SUCCESS) { if (IS_DEBUG_OSPF_GR_HELPER) - zlog_debug("%s, Wrong Grace LSA packet.", - __PRETTY_FUNCTION__); + zlog_debug("%s, Wrong Grace LSA packet.", __func__); return OSPF_GR_NOT_HELPER; } if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug( "%s, Grace LSA received from %pI4, grace interval:%u, restartreason :%s", - __PRETTY_FUNCTION__, &restart_addr, - grace_interval, + __func__, &restart_addr, grace_interval, ospf_restart_reason2str(restart_reason)); /* Incase of broadcast links, if RESTARTER is DR_OTHER, @@ -393,8 +391,7 @@ int ospf_process_grace_lsa(struct ospf *ospf, struct ospf_lsa *lsa, if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug( "%s, Restarter is not a nbr(%pI4) for this router.", - __PRETTY_FUNCTION__, - &restart_addr); + __func__, &restart_addr); return OSPF_GR_NOT_HELPER; } } else @@ -411,7 +408,7 @@ int ospf_process_grace_lsa(struct ospf *ospf, struct ospf_lsa *lsa, if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug( "%s, HELPER support is disabled, So not a HELPER", - __PRETTY_FUNCTION__); + __func__); restarter->gr_helper_info.rejected_reason = OSPF_HELPER_SUPPORT_DISABLED; return OSPF_GR_NOT_HELPER; @@ -426,7 +423,7 @@ int ospf_process_grace_lsa(struct ospf *ospf, struct ospf_lsa *lsa, if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug( "%s, This Neighbour %pI4 is not in FULL state.", - __PRETTY_FUNCTION__, &restarter->src); + __func__, &restarter->src); restarter->gr_helper_info.rejected_reason = OSPF_HELPER_NOT_A_VALID_NEIGHBOUR; return OSPF_GR_NOT_HELPER; @@ -440,7 +437,7 @@ int ospf_process_grace_lsa(struct ospf *ospf, struct ospf_lsa *lsa, if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug( "%s, Router supports only planned restarts but received the GRACE LSA for an unplanned restart.", - __PRETTY_FUNCTION__); + __func__); restarter->gr_helper_info.rejected_reason = OSPF_HELPER_PLANNED_ONLY_RESTART; return OSPF_GR_NOT_HELPER; @@ -454,7 +451,7 @@ int ospf_process_grace_lsa(struct ospf *ospf, struct ospf_lsa *lsa, if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug( "%s, Changed LSA in Rxmt list. So not Helper.", - __PRETTY_FUNCTION__); + __func__); restarter->gr_helper_info.rejected_reason = OSPF_HELPER_TOPO_CHANGE_RTXMT_LIST; return OSPF_GR_NOT_HELPER; @@ -465,8 +462,7 @@ int ospf_process_grace_lsa(struct ospf *ospf, struct ospf_lsa *lsa, if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug( "%s, Grace LSA age(%d) is more than the graceinterval(%d)", - __PRETTY_FUNCTION__, lsa->data->ls_age, - grace_interval); + __func__, lsa->data->ls_age, grace_interval); restarter->gr_helper_info.rejected_reason = OSPF_HELPER_LSA_AGE_MORE; return OSPF_GR_NOT_HELPER; @@ -482,7 +478,7 @@ int ospf_process_grace_lsa(struct ospf *ospf, struct ospf_lsa *lsa, if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug( "%s, Received grace period %d is larger than supported grace %d", - __PRETTY_FUNCTION__, grace_interval, + __func__, grace_interval, ospf->supported_grace_time); actual_grace_interval = ospf->supported_grace_time; } @@ -497,12 +493,12 @@ int ospf_process_grace_lsa(struct ospf *ospf, struct ospf_lsa *lsa, if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug( "%s, Router is already acting as a HELPER for this nbr,so restart the grace timer", - __PRETTY_FUNCTION__); + __func__); } else { if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug( "%s, This Router becomes a HELPER for the neighbour %pI4", - __PRETTY_FUNCTION__, &restarter->src); + __func__, &restarter->src); } /* Became a Helper to the RESTART neighbour. @@ -518,8 +514,8 @@ int ospf_process_grace_lsa(struct ospf *ospf, struct ospf_lsa *lsa, ospf->active_restarter_cnt++; if (IS_DEBUG_OSPF_GR_HELPER) - zlog_debug("%s, Grace timer started.interval:%d", - __PRETTY_FUNCTION__, actual_grace_interval); + zlog_debug("%s, Grace timer started.interval:%d", __func__, + actual_grace_interval); /* Start the grace timer */ thread_add_timer(master, ospf_handle_grace_timer_expiry, restarter, @@ -607,8 +603,7 @@ void ospf_helper_handle_topo_chg(struct ospf *ospf, struct ospf_lsa *lsa) if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug( "%s, Topo change detected due to lsa LSID:%pI4 type:%d", - __PRETTY_FUNCTION__, &lsa->data->id, - lsa->data->type); + __func__, &lsa->data->id, lsa->data->type); lsa->to_be_acknowledged = OSPF_GR_TRUE; @@ -671,8 +666,7 @@ void ospf_gr_helper_exit(struct ospf_neighbor *nbr, if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug("%s, Exiting from HELPER support to %pI4, due to %s", - __PRETTY_FUNCTION__, &nbr->src, - ospf_exit_reason2str(reason)); + __func__, &nbr->src, ospf_exit_reason2str(reason)); /* Reset helper status*/ nbr->gr_helper_info.gr_helper_status = OSPF_GR_NOT_HELPER; @@ -704,7 +698,7 @@ void ospf_gr_helper_exit(struct ospf_neighbor *nbr, if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug( "%s, Failed GR exit, so bringing down the neighbour", - __PRETTY_FUNCTION__); + __func__); OSPF_NSM_EVENT_EXECUTE(nbr, NSM_KillNbr); } @@ -752,14 +746,13 @@ void ospf_process_maxage_grace_lsa(struct ospf *ospf, struct ospf_lsa *lsa, &restartReason); if (ret != OSPF_GR_SUCCESS) { if (IS_DEBUG_OSPF_GR_HELPER) - zlog_debug("%s, Wrong Grace LSA packet.", - __PRETTY_FUNCTION__); + zlog_debug("%s, Wrong Grace LSA packet.", __func__); return; } if (IS_DEBUG_OSPF_GR_HELPER) - zlog_debug("%s, GraceLSA received for neighbour %pI4", - __PRETTY_FUNCTION__, &restartAddr); + zlog_debug("%s, GraceLSA received for neighbour %pI4", __func__, + &restartAddr); /* In case of broadcast links, if RESTARTER is DR_OTHER, * grace LSA might be received from DR, so fetching the @@ -772,7 +765,7 @@ void ospf_process_maxage_grace_lsa(struct ospf *ospf, struct ospf_lsa *lsa, if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug( "%s, Restarter is not a neighbour for this router.", - __PRETTY_FUNCTION__); + __func__); return; } } else { diff --git a/ospfd/ospf_nsm.c b/ospfd/ospf_nsm.c index 006c4888ae..b3b9244b22 100644 --- a/ospfd/ospf_nsm.c +++ b/ospfd/ospf_nsm.c @@ -78,7 +78,7 @@ static int ospf_inactivity_timer(struct thread *thread) else if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug( "%s, Acting as HELPER for this neighbour, So inactivitytimer event will not be fired.", - __PRETTY_FUNCTION__); + __func__); return 0; } diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c index aa98d7dd28..2de6731758 100644 --- a/ospfd/ospf_packet.c +++ b/ospfd/ospf_packet.c @@ -4266,7 +4266,7 @@ void ospf_ls_ack_send(struct ospf_neighbor *nbr, struct ospf_lsa *lsa) if (IS_GRACE_LSA(lsa)) { if (IS_DEBUG_OSPF_GR_HELPER) zlog_debug("%s, Sending GRACE ACK to Restarter.", - __PRETTY_FUNCTION__); + __func__); } if (listcount(oi->ls_ack_direct.ls_ack) == 0) diff --git a/ospfd/ospf_spf.c b/ospfd/ospf_spf.c index 0164bfac67..3849d4b7ea 100644 --- a/ospfd/ospf_spf.c +++ b/ospfd/ospf_spf.c @@ -1994,7 +1994,7 @@ void ospf_spf_calculate_schedule(struct ospf *ospf, ospf_spf_reason_t reason) void ospf_restart_spf(struct ospf *ospf) { if (IS_DEBUG_OSPF_EVENT) - zlog_debug("%s: Restart SPF.", __PRETTY_FUNCTION__); + zlog_debug("%s: Restart SPF.", __func__); /* Handling inter area and intra area routes*/ if (ospf->new_table) { diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c index 2b9457d8b9..cc1404e5e9 100644 --- a/ospfd/ospfd.c +++ b/ospfd/ospfd.c @@ -648,7 +648,6 @@ void ospf_terminate(void) if (listcount(om->ospf) == 0) goto done; - bfd_gbl_exit(); for (ALL_LIST_ELEMENTS(om->ospf, node, nnode, ospf)) ospf_finish(ospf); diff --git a/pathd/path_cli.c b/pathd/path_cli.c index ecb667f985..7a28449e4e 100644 --- a/pathd/path_cli.c +++ b/pathd/path_cli.c @@ -34,6 +34,7 @@ #ifndef VTYSH_EXTRACT_PL #include "pathd/path_cli_clippy.c" #endif +#include "pathd/path_ted.h" #define XPATH_MAXATTRSIZE 64 #define XPATH_MAXKEYSIZE 42 @@ -47,6 +48,18 @@ static int config_write_segment_routing(struct vty *vty); static int config_write_traffic_eng(struct vty *vty); static int config_write_segment_lists(struct vty *vty); static int config_write_sr_policies(struct vty *vty); +static int segment_list_has_src_dst( + struct vty *vty, char *xpath, long index, const char *index_str, + struct in_addr adj_src_ipv4, struct in_addr adj_dst_ipv4, + struct in6_addr adj_src_ipv6, struct in6_addr adj_dst_ipv6, + const char *adj_src_ipv4_str, const char *adj_dst_ipv4_str, + const char *adj_src_ipv6_str, const char *adj_dst_ipv6_str); +static int segment_list_has_prefix( + struct vty *vty, char *xpath, long index, const char *index_str, + const struct prefix_ipv4 *prefix_ipv4, const char *prefix_ipv4_str, + const struct prefix_ipv6 *prefix_ipv6, const char *prefix_ipv6_str, + const char *has_algo, long algo, const char *algo_str, + const char *has_iface_id, long iface_id, const char *iface_id_str); DEFINE_MTYPE_STATIC(PATHD, PATH_CLI, "Client"); @@ -144,6 +157,7 @@ DEFPY(show_srte_policy, return CMD_SUCCESS; } + /* * Show detailed SR-TE info */ @@ -295,56 +309,227 @@ void cli_show_srte_segment_list(struct vty *vty, struct lyd_node *dnode, yang_dnode_get_string(dnode, "./name")); } +static int segment_list_has_src_dst( + struct vty *vty, char *xpath, long index, const char *index_str, + struct in_addr adj_src_ipv4, struct in_addr adj_dst_ipv4, + struct in6_addr adj_src_ipv6, struct in6_addr adj_dst_ipv6, + const char *adj_src_ipv4_str, const char *adj_dst_ipv4_str, + const char *adj_src_ipv6_str, const char *adj_dst_ipv6_str) +{ + const char *node_src_id; + uint32_t ted_sid = MPLS_LABEL_NONE; + + struct ipaddr ip_src = {}; + struct ipaddr ip_dst = {}; + if (adj_src_ipv4_str != NULL) { + ip_src.ipa_type = IPADDR_V4; + ip_src.ip._v4_addr = adj_src_ipv4; + ip_dst.ipa_type = IPADDR_V4; + ip_dst.ip._v4_addr = adj_dst_ipv4; + } else if (adj_src_ipv6_str != NULL) { + ip_src.ipa_type = IPADDR_V6; + ip_src.ip._v6_addr = adj_src_ipv6; + ip_dst.ipa_type = IPADDR_V6; + ip_dst.ip._v6_addr = adj_dst_ipv6; + } else { + return CMD_ERR_NO_MATCH; + } + ted_sid = path_ted_query_type_f(&ip_src, &ip_dst); + if (ted_sid == MPLS_LABEL_NONE) { + zlog_warn( + "%s: [rcv ted] CLI NOT FOUND Continue query_type_f SRC (%pIA) DST (%pIA)!", + __func__, &ip_src, &ip_dst); + } + /* type */ + snprintf(xpath, XPATH_MAXLEN, "./segment[index='%s']/nai/type", + index_str); + if (adj_src_ipv4_str != NULL) { + nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, + "ipv4_adjacency"); + node_src_id = adj_src_ipv4_str; + } else if (adj_src_ipv6_str != NULL) { + nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, + "ipv6_adjacency"); + node_src_id = adj_src_ipv6_str; + } else { + return CMD_ERR_NO_MATCH; + } + /* addresses */ + snprintf(xpath, XPATH_MAXLEN, "./segment[index='%s']/nai/local-address", + index_str); + nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, node_src_id); + snprintf(xpath, XPATH_MAXLEN, + "./segment[index='%s']/nai/remote-address", index_str); + nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, + adj_dst_ipv4_str ? adj_dst_ipv4_str + : adj_dst_ipv6_str); + return CMD_SUCCESS; +} +int segment_list_has_prefix( + struct vty *vty, char *xpath, long index, const char *index_str, + const struct prefix_ipv4 *prefix_ipv4, const char *prefix_ipv4_str, + const struct prefix_ipv6 *prefix_ipv6, const char *prefix_ipv6_str, + const char *has_algo, long algo, const char *algo_str, + const char *has_iface_id, long iface_id, const char *iface_id_str) +{ + char buf_prefix[INET6_ADDRSTRLEN]; + + uint32_t ted_sid = MPLS_LABEL_NONE; + struct prefix prefix_cli = {}; + struct ipaddr pre_ipaddr = {}; + /* prefix with algorithm or local interface id */ + /* Type */ + snprintf(xpath, XPATH_MAXLEN, "./segment[index='%s']/nai/type", + index_str); + if (has_iface_id != NULL) { + if (prefix_ipv4_str != NULL) { + nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, + "ipv4_local_iface"); + } else if (prefix_ipv6_str != NULL) { + nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, + "ipv6_local_iface"); + } else { + return CMD_ERR_NO_MATCH; + } + } else { + if (prefix_ipv4_str != NULL) { + nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, + "ipv4_algo"); + } else if (prefix_ipv6_str != NULL) { + nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, + "ipv6_algo"); + } else { + return CMD_ERR_NO_MATCH; + } + } + /* Prefix */ + if (prefix_ipv4_str != NULL) { + if (!str2prefix(prefix_ipv4_str, &prefix_cli)) { + vty_out(vty, "%% Malformed prefix\n"); + return CMD_WARNING_CONFIG_FAILED; + } + inet_ntop(AF_INET, &prefix_cli.u.prefix4, buf_prefix, + sizeof(buf_prefix)); + pre_ipaddr.ipa_type = IPADDR_V4; + pre_ipaddr.ip._v4_addr = prefix_cli.u.prefix4; + } else if (prefix_ipv6_str != NULL) { + if (!str2prefix(prefix_ipv6_str, &prefix_cli)) { + vty_out(vty, "%% Malformed prefix\n"); + return CMD_WARNING_CONFIG_FAILED; + } + inet_ntop(AF_INET6, &prefix_cli.u.prefix6, buf_prefix, + sizeof(buf_prefix)); + pre_ipaddr.ipa_type = IPADDR_V6; + pre_ipaddr.ip._v6_addr = prefix_cli.u.prefix6; + } else { + return CMD_ERR_NO_MATCH; + } + snprintf(xpath, XPATH_MAXLEN, "./segment[index='%s']/nai/local-address", + index_str); + nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, buf_prefix); + snprintf(xpath, XPATH_MAXLEN, + "./segment[index='%s']/nai/local-prefix-len", index_str); + nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, + prefix_ipv4_str + ? strchr(prefix_ipv4_str, '/') + 1 + : strchr(prefix_ipv6_str, '/') + 1); + /* Alg / Iface */ + if (has_algo != NULL) { + snprintf(xpath, XPATH_MAXLEN, + "./segment[index='%s']/nai/algorithm", index_str); + nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, algo_str); + } else { + if (has_iface_id != NULL) { + snprintf(xpath, XPATH_MAXLEN, + "./segment[index='%s']/nai/local-interface", + index_str); + nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, + iface_id_str); + } + } + if (has_algo != NULL) { + ted_sid = path_ted_query_type_c(&prefix_cli, algo); + if (ted_sid == MPLS_LABEL_NONE) { + zlog_err( + "%s: [rcv ted] CLI NOT FOUND Continue query_type_c PREFIX (%pIA/%d) ALGO (%ld) sid:(%d)!", + __func__, &pre_ipaddr, prefix_cli.prefixlen, + algo, ted_sid); + } + } + if (has_iface_id != NULL) { + ted_sid = path_ted_query_type_e(&prefix_cli, iface_id); + if (ted_sid == MPLS_LABEL_NONE) { + zlog_err( + "%s: [rcv ted] CLI NOT FOUND Continue query_type_e PREFIX (%pIA/%d) IFACE (%ld) sid:(%d)!", + __func__, &pre_ipaddr, prefix_cli.prefixlen, + iface_id, ted_sid); + } + } + return CMD_SUCCESS; +} /* * XPath: /frr-pathd:pathd/srte/segment-list/segment */ -DEFPY(srte_segment_list_segment, - srte_segment_list_segment_cmd, - "index (0-4294967295)$index mpls label (16-1048575)$label " +/* clang-format off */ +DEFPY(srte_segment_list_segment, srte_segment_list_segment_cmd, + "index (0-4294967295)$index <[mpls$has_mpls_label label (16-1048575)$label] " + "|" "[nai$has_nai <" - "node <A.B.C.D$node_ipv4|X:X::X:X$node_ipv6>" - ">]", + "prefix <A.B.C.D/M$prefix_ipv4|X:X::X:X/M$prefix_ipv6>" + "<algorithm$has_algo (0-1)$algo| iface$has_iface_id (0-4294967295)$iface_id>" + "| adjacency$has_adj " + "<A.B.C.D$adj_src_ipv4 A.B.C.D$adj_dst_ipv4|X:X::X:X$adj_src_ipv6 X:X::X:X$adj_dst_ipv6>" + ">]" + ">", "Index\n" "Index Value\n" "MPLS or IP Label\n" "Label\n" "Label Value\n" "Segment NAI\n" - "NAI node identifier\n" - "NAI IPv4 node identifier\n" - "NAI IPv6 node identifier\n") + "NAI prefix identifier\n" + "NAI IPv4 prefix identifier\n" + "NAI IPv6 prefix identifier\n" + "IGP Algorithm\n" + "Algorithm Value SPF or Strict-SPF\n" + "Interface Id\n" + "Interface Value\n" + "ADJ identifier\n" + "ADJ IPv4 src identifier\n" + "ADJ IPv4 dst identifier\n" + "ADJ IPv6 src identifier\n" + "ADJ IPv6 dst identifier\n") +/* clang-format on */ { char xpath[XPATH_MAXLEN]; - const char *node_id; + int status = CMD_SUCCESS; + snprintf(xpath, sizeof(xpath), "./segment[index='%s']", index_str); nb_cli_enqueue_change(vty, xpath, NB_OP_CREATE, NULL); - snprintf(xpath, sizeof(xpath), "./segment[index='%s']/sid-value", - index_str); - nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, label_str); - - if (has_nai != NULL) { - snprintf(xpath, sizeof(xpath), "./segment[index='%s']/nai/type", - index_str); - if (node_ipv4_str != NULL) { - nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, - "ipv4_node"); - node_id = node_ipv4_str; - } else if (node_ipv6_str != NULL) { - nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, - "ipv6_node"); - node_id = node_ipv6_str; - } else { - return CMD_ERR_NO_MATCH; - } + if (has_mpls_label != NULL) { snprintf(xpath, sizeof(xpath), - "./segment[index='%s']/nai/local-address", index_str); - nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, node_id); + "./segment[index='%s']/sid-value", index_str); + nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, label_str); + return nb_cli_apply_changes(vty, NULL); + } + + if (has_adj != NULL) { + status = segment_list_has_src_dst(vty, xpath, index, index_str, + adj_src_ipv4, adj_dst_ipv4, + adj_src_ipv6, adj_dst_ipv6, + adj_src_ipv4_str, adj_dst_ipv4_str, + adj_dst_ipv6_str, adj_src_ipv6_str); + if (status != CMD_SUCCESS) + return status; } else { - snprintf(xpath, sizeof(xpath), "./segment[index='%s']/nai", - index_str); - nb_cli_enqueue_change(vty, xpath, NB_OP_DESTROY, NULL); + segment_list_has_prefix( + vty, xpath, index, index_str, prefix_ipv4, + prefix_ipv4_str, prefix_ipv6, prefix_ipv6_str, has_algo, + algo, algo_str, has_iface_id, iface_id, iface_id_str); + if (status != CMD_SUCCESS) + return status; } return nb_cli_apply_changes(vty, NULL); @@ -369,23 +554,60 @@ void cli_show_srte_segment_list_segment(struct vty *vty, struct lyd_node *dnode, bool show_defaults) { - vty_out(vty, " index %s mpls label %s", - yang_dnode_get_string(dnode, "./index"), - yang_dnode_get_string(dnode, "./sid-value")); + vty_out(vty, " index %s ", yang_dnode_get_string(dnode, "./index")); + if (yang_dnode_exists(dnode, "./sid-value")) { + vty_out(vty, " mpls label %s", + yang_dnode_get_string(dnode, "./sid-value")); + } if (yang_dnode_exists(dnode, "./nai")) { struct ipaddr addr; + struct ipaddr addr_rmt; + switch (yang_dnode_get_enum(dnode, "./nai/type")) { case SRTE_SEGMENT_NAI_TYPE_IPV4_NODE: + case SRTE_SEGMENT_NAI_TYPE_IPV4_LOCAL_IFACE: + case SRTE_SEGMENT_NAI_TYPE_IPV4_ALGORITHM: yang_dnode_get_ip(&addr, dnode, "./nai/local-address"); - vty_out(vty, " nai node %pI4", &addr.ipaddr_v4); + vty_out(vty, " nai prefix %pI4", &addr.ipaddr_v4); break; case SRTE_SEGMENT_NAI_TYPE_IPV6_NODE: + case SRTE_SEGMENT_NAI_TYPE_IPV6_LOCAL_IFACE: + case SRTE_SEGMENT_NAI_TYPE_IPV6_ALGORITHM: yang_dnode_get_ip(&addr, dnode, "./nai/local-address"); - vty_out(vty, " nai node %pI6", &addr.ipaddr_v6); + vty_out(vty, " nai prefix %pI6", &addr.ipaddr_v6); + break; + case SRTE_SEGMENT_NAI_TYPE_IPV4_ADJACENCY: + yang_dnode_get_ip(&addr, dnode, "./nai/local-address"); + yang_dnode_get_ip(&addr_rmt, dnode, + "./nai/remote-address"); + vty_out(vty, " nai adjacency %pI4", &addr.ipaddr_v4); + vty_out(vty, " %pI4", &addr_rmt.ipaddr_v4); + break; + case SRTE_SEGMENT_NAI_TYPE_IPV6_ADJACENCY: + yang_dnode_get_ip(&addr, dnode, "./nai/local-address"); + yang_dnode_get_ip(&addr_rmt, dnode, + "./nai/remote-address"); + vty_out(vty, " nai adjacency %pI6", &addr.ipaddr_v6); + vty_out(vty, " %pI6", &addr_rmt.ipaddr_v6); break; default: break; } + if (yang_dnode_exists(dnode, "./nai/local-prefix-len")) { + vty_out(vty, "/%s", + yang_dnode_get_string( + dnode, "./nai/local-prefix-len")); + } + if (yang_dnode_exists(dnode, "./nai/local-interface")) { + vty_out(vty, " iface %s", + yang_dnode_get_string(dnode, + "./nai/local-interface")); + } + if (yang_dnode_exists(dnode, "./nai/algorithm")) { + vty_out(vty, " algorithm %s", + yang_dnode_get_string(dnode, + "./nai/algorithm")); + } } vty_out(vty, "\n"); } @@ -1038,6 +1260,7 @@ int config_write_segment_routing(struct vty *vty) int config_write_traffic_eng(struct vty *vty) { vty_out(vty, " traffic-eng\n"); + path_ted_config_write(vty); return 1; } diff --git a/pathd/path_main.c b/pathd/path_main.c index f54ab736c4..8d88475206 100644 --- a/pathd/path_main.c +++ b/pathd/path_main.c @@ -33,6 +33,7 @@ #include "path_nb.h" #include "path_zebra.h" #include "path_errors.h" +#include "path_ted.h" char backup_config_file[256]; @@ -70,6 +71,8 @@ static void sighup(void) static void sigint(void) { zlog_notice("Terminating on signal"); + zlog_notice("Unregisterfrom opaque,etc "); + pathd_shutdown(); exit(0); } @@ -146,6 +149,7 @@ int main(int argc, char **argv, char **envp) path_error_init(); path_zebra_init(master); path_cli_init(); + path_ted_init(master); frr_config_fork(); frr_run(master); diff --git a/pathd/path_nb.c b/pathd/path_nb.c index a210e31b9c..9c622883bc 100644 --- a/pathd/path_nb.c +++ b/pathd/path_nb.c @@ -90,6 +90,7 @@ const struct frr_yang_module_info frr_pathd_info = { .xpath = "/frr-pathd:pathd/srte/segment-list/segment/sid-value", .cbs = { .modify = pathd_srte_segment_list_segment_sid_value_modify, + .destroy = pathd_srte_segment_list_segment_sid_value_destroy, }, .priority = NB_DFLT_PRIORITY - 1 }, @@ -115,6 +116,10 @@ const struct frr_yang_module_info frr_pathd_info = { .cbs = {.modify = dummy_modify, .destroy = dummy_destroy} }, { + .xpath = "/frr-pathd:pathd/srte/segment-list/segment/nai/local-prefix-len", + .cbs = {.modify = dummy_modify, .destroy = dummy_destroy} + }, + { .xpath = "/frr-pathd:pathd/srte/segment-list/segment/nai/remote-address", .cbs = {.modify = dummy_modify, .destroy = dummy_destroy} }, @@ -123,6 +128,10 @@ const struct frr_yang_module_info frr_pathd_info = { .cbs = {.modify = dummy_modify, .destroy = dummy_destroy} }, { + .xpath = "/frr-pathd:pathd/srte/segment-list/segment/nai/algorithm", + .cbs = {.modify = dummy_modify, .destroy = dummy_destroy} + }, + { .xpath = "/frr-pathd:pathd/srte/policy", .cbs = { .create = pathd_srte_policy_create, diff --git a/pathd/path_nb.h b/pathd/path_nb.h index 3a0b3863ce..caeadd9ccc 100644 --- a/pathd/path_nb.h +++ b/pathd/path_nb.h @@ -43,6 +43,8 @@ int pathd_srte_segment_list_segment_nai_destroy( struct nb_cb_destroy_args *args); void pathd_srte_segment_list_segment_nai_apply_finish( struct nb_cb_apply_finish_args *args); +int pathd_srte_segment_list_segment_sid_value_destroy( + struct nb_cb_destroy_args *args); int pathd_srte_policy_create(struct nb_cb_create_args *args); int pathd_srte_policy_destroy(struct nb_cb_destroy_args *args); const void *pathd_srte_policy_get_next(struct nb_cb_get_next_args *args); diff --git a/pathd/path_nb_config.c b/pathd/path_nb_config.c index af54f5bce2..5b0f5b44e5 100644 --- a/pathd/path_nb_config.c +++ b/pathd/path_nb_config.c @@ -160,6 +160,22 @@ int pathd_srte_segment_list_segment_sid_value_modify( return NB_OK; } +int pathd_srte_segment_list_segment_sid_value_destroy( + struct nb_cb_destroy_args *args) +{ + struct srte_segment_entry *segment; + + if (args->event != NB_EV_APPLY) + return NB_OK; + + segment = nb_running_get_entry(args->dnode, NULL, true); + segment->sid_value = MPLS_LABEL_NONE; + SET_FLAG(segment->segment_list->flags, F_SEGMENT_LIST_MODIFIED); + + return NB_OK; +} + + int pathd_srte_segment_list_segment_nai_destroy(struct nb_cb_destroy_args *args) { struct srte_segment_entry *segment; @@ -184,6 +200,8 @@ void pathd_srte_segment_list_segment_nai_apply_finish( enum srte_segment_nai_type type; struct ipaddr local_addr, remote_addr; uint32_t local_iface = 0, remote_iface = 0; + uint8_t algo = 0, local_prefix_len = 0; + const char *algo_buf, *local_prefix_len_buf; segment = nb_running_get_entry(args->dnode, NULL, true); type = yang_dnode_get_enum(args->dnode, "./type"); @@ -207,12 +225,31 @@ void pathd_srte_segment_list_segment_nai_apply_finish( remote_iface = yang_dnode_get_uint32(args->dnode, "./remote-interface"); break; + case SRTE_SEGMENT_NAI_TYPE_IPV4_ALGORITHM: + algo_buf = yang_dnode_get_string(args->dnode, "./algorithm"); + algo = atoi(algo_buf); + local_prefix_len_buf = yang_dnode_get_string( + args->dnode, "./local-prefix-len"); + local_prefix_len = atoi(local_prefix_len_buf); + break; + case SRTE_SEGMENT_NAI_TYPE_IPV4_LOCAL_IFACE: + local_iface = + yang_dnode_get_uint32(args->dnode, "./local-interface"); + local_prefix_len_buf = yang_dnode_get_string( + args->dnode, "./local-prefix-len"); + local_prefix_len = atoi(local_prefix_len_buf); + break; default: break; } - srte_segment_entry_set_nai(segment, type, &local_addr, local_iface, - &remote_addr, remote_iface); + zlog_debug(" Segment list name (%d) index (%s) ", segment->index, + segment->segment_list->name); + if (srte_segment_entry_set_nai(segment, type, &local_addr, local_iface, + &remote_addr, remote_iface, algo, + local_prefix_len)) + SET_FLAG(segment->segment_list->flags, + F_SEGMENT_LIST_SID_CONFLICT); } /* diff --git a/pathd/path_pcep_config.c b/pathd/path_pcep_config.c index aacbca4ae9..609f091559 100644 --- a/pathd/path_pcep_config.c +++ b/pathd/path_pcep_config.c @@ -246,6 +246,10 @@ path_pcep_config_list_path_hops(struct srte_segment_list *segment_list) switch (segment->nai_type) { case SRTE_SEGMENT_NAI_TYPE_IPV4_NODE: case SRTE_SEGMENT_NAI_TYPE_IPV6_NODE: + case SRTE_SEGMENT_NAI_TYPE_IPV4_LOCAL_IFACE: + case SRTE_SEGMENT_NAI_TYPE_IPV6_LOCAL_IFACE: + case SRTE_SEGMENT_NAI_TYPE_IPV4_ALGORITHM: + case SRTE_SEGMENT_NAI_TYPE_IPV6_ALGORITHM: memcpy(&hop->nai.local_addr, &segment->nai_local_addr, sizeof(struct ipaddr)); break; @@ -278,6 +282,7 @@ int path_pcep_config_update_path(struct path *path) assert(path->nbkey.preference != 0); assert(path->nbkey.endpoint.ipa_type == IPADDR_V4); + int number_of_sid_clashed = 0; struct path_hop *hop; struct path_metric *metric; int index; @@ -297,40 +302,44 @@ int path_pcep_config_update_path(struct path *path) if (candidate->lsp->segment_list) { SET_FLAG(candidate->lsp->segment_list->flags, F_SEGMENT_LIST_DELETED); + srte_segment_list_del(candidate->lsp->segment_list); candidate->lsp->segment_list = NULL; } - if (path->first_hop != NULL) { - snprintf(segment_list_name_buff, sizeof(segment_list_name_buff), - "%s-%u", path->name, path->plsp_id); - segment_list_name = segment_list_name_buff; - - segment_list = srte_segment_list_add(segment_list_name); - segment_list->protocol_origin = path->update_origin; - strlcpy(segment_list->originator, path->originator, - sizeof(segment_list->originator)); - SET_FLAG(segment_list->flags, F_SEGMENT_LIST_NEW); - SET_FLAG(segment_list->flags, F_SEGMENT_LIST_MODIFIED); - - for (hop = path->first_hop, index = 10; hop != NULL; - hop = hop->next, index += 10) { - assert(hop->has_sid); - assert(hop->is_mpls); - - segment = srte_segment_entry_add(segment_list, index); - - segment->sid_value = (mpls_label_t)hop->sid.mpls.label; - SET_FLAG(segment->segment_list->flags, - F_SEGMENT_LIST_MODIFIED); - - if (hop->has_nai) - srte_segment_entry_set_nai( - segment, srte_nai_type(hop->nai.type), - &hop->nai.local_addr, - hop->nai.local_iface, - &hop->nai.remote_addr, - hop->nai.remote_iface); - } + if (path->first_hop == NULL) + return PATH_NB_ERR; + + snprintf(segment_list_name_buff, sizeof(segment_list_name_buff), + "%s-%u", path->name, path->plsp_id); + segment_list_name = segment_list_name_buff; + + segment_list = srte_segment_list_add(segment_list_name); + segment_list->protocol_origin = path->update_origin; + strlcpy(segment_list->originator, path->originator, + sizeof(segment_list->originator)); + SET_FLAG(segment_list->flags, F_SEGMENT_LIST_NEW); + SET_FLAG(segment_list->flags, F_SEGMENT_LIST_MODIFIED); + + for (hop = path->first_hop, index = 10; hop != NULL; + hop = hop->next, index += 10) { + assert(hop->has_sid); + assert(hop->is_mpls); + + segment = srte_segment_entry_add(segment_list, index); + + segment->sid_value = (mpls_label_t)hop->sid.mpls.label; + SET_FLAG(segment->segment_list->flags, F_SEGMENT_LIST_MODIFIED); + + if (!hop->has_nai) + continue; + if (srte_segment_entry_set_nai( + segment, srte_nai_type(hop->nai.type), + &hop->nai.local_addr, hop->nai.local_iface, + &hop->nai.remote_addr, hop->nai.remote_iface, 0, 0) + == PATH_SID_ERROR) + /* TED queries don't match PCE */ + /* Don't apply srte,zebra changes */ + number_of_sid_clashed++; } candidate->lsp->segment_list = segment_list; @@ -352,7 +361,11 @@ int path_pcep_config_update_path(struct path *path) candidate->lsp->objfun = path->pce_objfun; } - srte_apply_changes(); + if (number_of_sid_clashed) + SET_FLAG(segment->segment_list->flags, + F_SEGMENT_LIST_SID_CONFLICT); + else + srte_apply_changes(); return 0; } @@ -402,6 +415,16 @@ enum pcep_sr_subobj_nai pcep_nai_type(enum srte_segment_nai_type type) return PCEP_SR_SUBOBJ_NAI_IPV6_ADJACENCY; case SRTE_SEGMENT_NAI_TYPE_IPV4_UNNUMBERED_ADJACENCY: return PCEP_SR_SUBOBJ_NAI_UNNUMBERED_IPV4_ADJACENCY; + case SRTE_SEGMENT_NAI_TYPE_IPV6_ADJACENCY_LINK_LOCAL_ADDRESSES: + return PCEP_SR_SUBOBJ_NAI_LINK_LOCAL_IPV6_ADJACENCY; + case SRTE_SEGMENT_NAI_TYPE_IPV4_LOCAL_IFACE: + return PCEP_SR_SUBOBJ_NAI_IPV4_NODE; + case SRTE_SEGMENT_NAI_TYPE_IPV6_LOCAL_IFACE: + return PCEP_SR_SUBOBJ_NAI_IPV6_NODE; + case SRTE_SEGMENT_NAI_TYPE_IPV4_ALGORITHM: + return PCEP_SR_SUBOBJ_NAI_IPV4_NODE; + case SRTE_SEGMENT_NAI_TYPE_IPV6_ALGORITHM: + return PCEP_SR_SUBOBJ_NAI_IPV6_NODE; default: return PCEP_SR_SUBOBJ_NAI_UNKNOWN; } diff --git a/pathd/path_pcep_debug.c b/pathd/path_pcep_debug.c index 370484dc1b..55148d9d05 100644 --- a/pathd/path_pcep_debug.c +++ b/pathd/path_pcep_debug.c @@ -980,7 +980,7 @@ const char *format_yang_dnode(struct lyd_node *dnode) char *buff; int len; - lyd_print_mem(&buff, dnode, LYD_JSON, LYP_FORMAT); + lyd_print_mem(&buff, dnode, LYD_JSON, LYD_PRINT_WD_ALL); len = strlen(buff); memcpy(_debug_buff, buff, len); free(buff); diff --git a/pathd/path_ted.c b/pathd/path_ted.c new file mode 100644 index 0000000000..01ada92258 --- /dev/null +++ b/pathd/path_ted.c @@ -0,0 +1,726 @@ +/* + * Copyright (C) 2020 Volta Networks, Inc + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include "stdlib.h" + +#include <zebra.h> + +#include "memory.h" +#include "log.h" +#include "command.h" +#include "prefix.h" +#include <lib/json.h> + +#include "pathd.h" +#include "pathd/path_errors.h" +#include "pathd/path_ted.h" + +#ifndef VTYSH_EXTRACT_PL +#include "pathd/path_ted_clippy.c" +#endif + +static struct ls_ted *path_ted_create_ted(void); +static void path_ted_register_vty(void); +static void path_ted_unregister_vty(void); +static uint32_t path_ted_start_importing_igp(const char *daemon_str); +static uint32_t path_ted_stop_importing_igp(void); +static enum zclient_send_status path_ted_link_state_sync(void); +static int path_ted_timer_handler_sync(struct thread *thread); +static int path_ted_timer_handler_refresh(struct thread *thread); +static int path_ted_cli_debug_config_write(struct vty *vty); +static int path_ted_cli_debug_set_all(uint32_t flags, bool set); + +extern struct zclient *zclient; + +struct ted_state ted_state_g = {}; + +/* + * path_path_ted public API function implementations + */ + +void path_ted_init(struct thread_master *master) +{ + ted_state_g.main = master; + ted_state_g.link_state_delay_interval = TIMER_RETRY_DELAY; + ted_state_g.segment_list_refresh_interval = TIMER_RETRY_DELAY; + path_ted_register_vty(); + path_ted_segment_list_refresh(); +} + +uint32_t path_ted_teardown(void) +{ + PATH_TED_DEBUG("%s : TED [%p]", __func__, ted_state_g.ted); + path_ted_unregister_vty(); + path_ted_stop_importing_igp(); + ls_ted_del_all(ted_state_g.ted); + path_ted_timer_sync_cancel(); + path_ted_timer_refresh_cancel(); + return 0; +} + +/** + * Set all needed to receive igp data. + * + * @return true if ok + * + */ +uint32_t path_ted_start_importing_igp(const char *daemon_str) +{ + uint32_t status = 0; + + if (strcmp(daemon_str, "ospfv2") == 0) + ted_state_g.import = IMPORT_OSPFv2; + else if (strcmp(daemon_str, "ospfv3") == 0) { + ted_state_g.import = IMPORT_UNKNOWN; + return 1; + } else if (strcmp(daemon_str, "isis") == 0) + ted_state_g.import = IMPORT_ISIS; + else { + ted_state_g.import = IMPORT_UNKNOWN; + return 1; + } + + if (ls_register(zclient, false /*client*/) != 0) { + PATH_TED_ERROR("%s: PATHD-TED: Unable to register Link State", + __func__); + ted_state_g.import = IMPORT_UNKNOWN; + status = 1; + } else { + if (path_ted_link_state_sync() != -1) { + PATH_TED_DEBUG("%s: PATHD-TED: Importing %s data ON", + __func__, + PATH_TED_IGP_PRINT(ted_state_g.import)); + } else { + PATH_TED_WARN("%s: PATHD-TED: Importing %s data OFF", + __func__, + PATH_TED_IGP_PRINT(ted_state_g.import)); + ted_state_g.import = IMPORT_UNKNOWN; + } + } + return status; +} + +/** + * Unset all needed to receive igp data. + * + * @return true if ok + * + */ +uint32_t path_ted_stop_importing_igp(void) +{ + uint32_t status = 0; + + if (ted_state_g.import != IMPORT_UNKNOWN) { + if (ls_unregister(zclient, false /*client*/) != 0) { + PATH_TED_ERROR( + "%s: PATHD-TED: Unable to unregister Link State", + __func__); + status = 1; + } else { + ted_state_g.import = IMPORT_UNKNOWN; + PATH_TED_DEBUG("%s: PATHD-TED: Importing igp data OFF", + __func__); + } + path_ted_timer_sync_cancel(); + } + return status; +} +/** + * Check for ted status + * + * @return true if ok + * + */ +bool path_ted_is_initialized(void) +{ + if (ted_state_g.ted == NULL) { + PATH_TED_WARN("PATHD TED ls_ted not initialized"); + return false; + } + + return true; +} + +/** + * Creates an empty ted + * + * @param void + * + * @return Ptr to ted or NULL + */ +struct ls_ted *path_ted_create_ted() +{ + struct ls_ted *ted = ls_ted_new(TED_KEY, TED_NAME, TED_ASN); + + if (ted == NULL) { + PATH_TED_ERROR("%s Unable to initialize TED Key [%d] ASN [%d] Name [%s]", + __func__, TED_KEY, TED_ASN, TED_NAME); + } else { + PATH_TED_INFO("%s Initialize TED Key [%d] ASN [%d] Name [%s]", + __func__, TED_KEY, TED_ASN, TED_NAME); + } + + return ted; +} + +uint32_t path_ted_rcvd_message(struct ls_message *msg) +{ + if (!path_ted_is_initialized()) + return 1; + + if (msg == NULL) { + PATH_TED_ERROR("%s: [rcv ted] TED received NULL message ", + __func__); + return 1; + } + + if (path_ted_get_current_igp(msg->data.node->adv.origin)) + return 1; + + switch (msg->type) { + case LS_MSG_TYPE_NODE: + ls_msg2vertex(ted_state_g.ted, msg, true /*hard delete*/); + break; + + case LS_MSG_TYPE_ATTRIBUTES: + ls_msg2edge(ted_state_g.ted, msg, true /*Ä¥ard delete*/); + break; + + case LS_MSG_TYPE_PREFIX: + ls_msg2subnet(ted_state_g.ted, msg, true /*hard delete*/); + break; + + default: + PATH_TED_DEBUG( + "%s: [rcv ted] TED received unknown message type [%d]", + __func__, msg->type); + break; + } + return 0; +} + +uint32_t path_ted_query_type_f(struct ipaddr *local, struct ipaddr *remote) +{ + uint32_t sid = MPLS_LABEL_NONE; + struct ls_edge *edge; + uint64_t key; + + if (!path_ted_is_initialized()) + return MPLS_LABEL_NONE; + + if (!local || !remote) + return MPLS_LABEL_NONE; + + switch (local->ipa_type) { + case IPADDR_V4: + /* We have local and remote ip */ + /* so check all attributes in ted */ + key = ((uint64_t)ntohl(local->ip._v4_addr.s_addr)) & 0xffffffff; + edge = ls_find_edge_by_key(ted_state_g.ted, key); + if (edge) { + if (edge->attributes->standard.remote.s_addr + == remote->ip._v4_addr.s_addr + && CHECK_FLAG(edge->attributes->flags, + LS_ATTR_ADJ_SID)) { + sid = edge->attributes->adj_sid[0] + .sid; /* from primary */ + break; + } + } + break; + case IPADDR_V6: + key = (uint64_t)(local->ip._v6_addr.s6_addr32[0] & 0xffffffff) + | ((uint64_t)local->ip._v6_addr.s6_addr32[1] << 32); + edge = ls_find_edge_by_key(ted_state_g.ted, key); + if (edge) { + if ((memcmp(&edge->attributes->standard.remote6, + &remote->ip._v6_addr, + sizeof(remote->ip._v6_addr)) + && CHECK_FLAG(edge->attributes->flags, + LS_ATTR_ADJ_SID))) { + sid = edge->attributes->adj_sid[0] + .sid; /* from primary */ + break; + } + } + break; + case IPADDR_NONE: + break; + } + + return sid; +} + +uint32_t path_ted_query_type_c(struct prefix *prefix, uint8_t algo) +{ + uint32_t sid = MPLS_LABEL_NONE; + struct ls_subnet *subnet; + + if (!path_ted_is_initialized()) + return MPLS_LABEL_NONE; + + if (!prefix) + return MPLS_LABEL_NONE; + + switch (prefix->family) { + case AF_INET: + case AF_INET6: + subnet = ls_find_subnet(ted_state_g.ted, *prefix); + if (subnet) { + if ((CHECK_FLAG(subnet->ls_pref->flags, LS_PREF_SR)) + && (subnet->ls_pref->sr.algo == algo)) + sid = subnet->ls_pref->sr.sid; + } + break; + default: + break; + } + + return sid; +} + +uint32_t path_ted_query_type_e(struct prefix *prefix, uint32_t iface_id) +{ + uint32_t sid = MPLS_LABEL_NONE; + struct ls_subnet *subnet; + struct listnode *lst_node; + struct ls_edge *edge; + + if (!path_ted_is_initialized()) + return MPLS_LABEL_NONE; + + if (!prefix) + return MPLS_LABEL_NONE; + + switch (prefix->family) { + case AF_INET: + case AF_INET6: + subnet = ls_find_subnet(ted_state_g.ted, *prefix); + if (subnet && subnet->vertex + && subnet->vertex->outgoing_edges) { + /* from the vertex linked in subnet */ + /* loop over outgoing edges */ + for (ALL_LIST_ELEMENTS_RO( + subnet->vertex->outgoing_edges, lst_node, + edge)) { + /* and look for ifaceid */ + /* so get sid of attribute */ + if (CHECK_FLAG(edge->attributes->flags, + LS_ATTR_LOCAL_ID) + && edge->attributes->standard.local_id + == iface_id) { + sid = subnet->ls_pref->sr.sid; + break; + } + } + } + break; + default: + break; + } + + return sid; +} + +DEFPY (debug_path_ted, + debug_path_ted_cmd, + "[no] debug pathd mpls-te", + NO_STR + DEBUG_STR + "path debugging\n" + "ted debugging\n") +{ + uint32_t mode = DEBUG_NODE2MODE(vty->node); + bool no_debug = (no != NULL); + + DEBUG_MODE_SET(&ted_state_g.dbg, mode, !no); + DEBUG_FLAGS_SET(&ted_state_g.dbg, PATH_TED_DEBUG_BASIC, !no_debug); + return CMD_SUCCESS; +} + +/* + * Followings are vty command functions. + */ +/* clang-format off */ +DEFUN (path_ted_on, + path_ted_on_cmd, + "mpls-te on", + NO_STR + "Enable the TE database (TED) functionality\n") +/* clang-format on */ +{ + + if (ted_state_g.enabled) { + PATH_TED_DEBUG("%s: PATHD-TED: Enabled ON -> ON.", __func__); + return CMD_SUCCESS; + } + + ted_state_g.ted = path_ted_create_ted(); + ted_state_g.enabled = true; + PATH_TED_DEBUG("%s: PATHD-TED: Enabled OFF -> ON.", __func__); + + return CMD_SUCCESS; +} + +/* clang-format off */ +DEFUN (no_path_ted, + no_path_ted_cmd, + "no mpls-te [on]", + NO_STR + NO_STR + "Disable the TE Database functionality\n") +/* clang-format on */ +{ + if (ted_state_g.enabled) { + PATH_TED_DEBUG("%s: PATHD-TED: OFF -> OFF", __func__); + return CMD_SUCCESS; + } + + /* Remove TED */ + ls_ted_del_all(ted_state_g.ted); + ted_state_g.enabled = false; + PATH_TED_DEBUG("%s: PATHD-TED: ON -> OFF", __func__); + ted_state_g.import = IMPORT_UNKNOWN; + if (ls_unregister(zclient, false /*client*/) != 0) { + vty_out(vty, "Unable to unregister Link State\n"); + return CMD_WARNING; + } + + return CMD_SUCCESS; +} + +/* clang-format off */ +DEFPY(path_ted_import, + path_ted_import_cmd, + "mpls-te import <ospfv2|ospfv3|isis>$import_daemon", + "Enable the TE database (TED) fill with remote igp data\n" + "import\n" + "Origin ospfv2\n" + "Origin ospfv3\n" + "Origin isis\n") +/* clang-format on */ +{ + + if (ted_state_g.enabled) + if (path_ted_start_importing_igp(import_daemon)) { + vty_out(vty, "Unable to start importing\n"); + return CMD_WARNING; + } + return CMD_SUCCESS; +} + +/* clang-format off */ +DEFUN (no_path_ted_import, + no_path_ted_import_cmd, + "no mpls-te import", + NO_STR + NO_STR + "Disable the TE Database fill with remote igp data\n") +/* clang-format on */ +{ + + if (ted_state_g.import) { + if (path_ted_stop_importing_igp()) { + vty_out(vty, "Unable to stop importing\n"); + return CMD_WARNING; + } else { + PATH_TED_DEBUG( + "%s: PATHD-TED: Importing igp data already OFF", + __func__); + } + } + return CMD_SUCCESS; +} + +/* clang-format off */ +DEFPY (show_pahtd_ted_db, + show_pathd_ted_db_cmd, + "show pathd ted database <verbose|json>$ver_json ", + "show command\n" + "pathd daemon\n" + "traffic eng\n" + "database\n" + "verbose output\n" + "Show complete received TED database\n") +/* clang-format on */ +{ + bool st_json = false; + json_object *json = NULL; + + if (!ted_state_g.enabled) { + vty_out(vty, "PATHD TED database is not enabled\n"); + return CMD_WARNING; + } + if (strcmp(ver_json, "json") == 0) { + st_json = true; + json = json_object_new_object(); + } + /* Show the complete TED */ + ls_show_ted(ted_state_g.ted, vty, json, !st_json); + if (st_json) { + vty_out(vty, "%s\n", + json_object_to_json_string_ext( + json, JSON_C_TO_STRING_PRETTY)); + json_object_free(json); + } + return CMD_SUCCESS; +} + +/* + * Config Write functions + */ + +int path_ted_cli_debug_config_write(struct vty *vty) +{ + if (DEBUG_MODE_CHECK(&ted_state_g.dbg, DEBUG_MODE_CONF)) { + if (DEBUG_FLAGS_CHECK(&ted_state_g.dbg, PATH_TED_DEBUG_BASIC)) + vty_out(vty, "debug pathd mpls-te\n"); + return 1; + } + return 0; +} + +int path_ted_cli_debug_set_all(uint32_t flags, bool set) +{ + DEBUG_FLAGS_SET(&ted_state_g.dbg, flags, set); + + /* If all modes have been turned off, don't preserve options. */ + if (!DEBUG_MODE_CHECK(&ted_state_g.dbg, DEBUG_MODE_ALL)) + DEBUG_CLEAR(&ted_state_g.dbg); + + return 0; +} + +/** + * Help fn to show ted related configuration + * + * @param vty + * + * @return Status + */ +uint32_t path_ted_config_write(struct vty *vty) +{ + + if (ted_state_g.enabled) { + vty_out(vty, " mpls-te on\n"); + switch (ted_state_g.import) { + case IMPORT_ISIS: + vty_out(vty, " mpls-te import isis\n"); + break; + case IMPORT_OSPFv2: + vty_out(vty, " mpls-te import ospfv2\n"); + break; + case IMPORT_OSPFv3: + vty_out(vty, " mpls-te import ospfv3\n"); + break; + default: + break; + } + } + return 0; +} + +/** + * Register the fn's for CLI and hook for config show + * + * @param void + * + */ +static void path_ted_register_vty(void) +{ + install_element(VIEW_NODE, &show_pathd_ted_db_cmd); + install_element(SR_TRAFFIC_ENG_NODE, &path_ted_on_cmd); + install_element(SR_TRAFFIC_ENG_NODE, &no_path_ted_cmd); + install_element(SR_TRAFFIC_ENG_NODE, &path_ted_import_cmd); + install_element(SR_TRAFFIC_ENG_NODE, &no_path_ted_import_cmd); + + install_element(CONFIG_NODE, &debug_path_ted_cmd); + install_element(ENABLE_NODE, &debug_path_ted_cmd); + + hook_register(nb_client_debug_config_write, + path_ted_cli_debug_config_write); + hook_register(nb_client_debug_set_all, path_ted_cli_debug_set_all); +} + +/** + * UnRegister the fn's for CLI and hook for config show + * + * @param void + * + */ +static void path_ted_unregister_vty(void) +{ + uninstall_element(VIEW_NODE, &show_pathd_ted_db_cmd); + uninstall_element(SR_TRAFFIC_ENG_NODE, &path_ted_on_cmd); + uninstall_element(SR_TRAFFIC_ENG_NODE, &no_path_ted_cmd); + uninstall_element(SR_TRAFFIC_ENG_NODE, &path_ted_import_cmd); + uninstall_element(SR_TRAFFIC_ENG_NODE, &no_path_ted_import_cmd); +} + +/** + * Ask igp for a complete TED so far + * + * @param void + * + * @return zclient status + */ +enum zclient_send_status path_ted_link_state_sync(void) +{ + enum zclient_send_status status; + + status = ls_request_sync(zclient); + if (status == -1) { + PATH_TED_ERROR( + "%s: PATHD-TED: Opaque error asking for TED sync ", + __func__); + return status; + } else { + PATH_TED_DEBUG("%s: PATHD-TED: Opaque asked for TED sync ", + __func__); + } + thread_add_timer(ted_state_g.main, path_ted_timer_handler_sync, + &ted_state_g, ted_state_g.link_state_delay_interval, + &ted_state_g.t_link_state_sync); + + return status; +} + +/** + * Timer cb for check link state sync + * + * @param thread Current thread + * + * @return status + */ +int path_ted_timer_handler_sync(struct thread *thread) +{ + /* data unpacking */ + struct ted_state *data = THREAD_ARG(thread); + + assert(data != NULL); + /* Retry the sync */ + return path_ted_link_state_sync(); +} + +/** + * refresg segment list and create timer to keep up updated + * + * @param void + * + * @return status + */ +int path_ted_segment_list_refresh(void) +{ + int status = 0; + + path_ted_timer_refresh_cancel(); + thread_add_timer(ted_state_g.main, path_ted_timer_handler_refresh, + &ted_state_g, + ted_state_g.segment_list_refresh_interval, + &ted_state_g.t_segment_list_refresh); + + return status; +} + +/** + * Timer cb for refreshing sid in segment lists + * + * @param void + * + * @return status + */ +int path_ted_timer_handler_refresh(struct thread *thread) +{ + if (!path_ted_is_initialized()) + return MPLS_LABEL_NONE; + + PATH_TED_DEBUG("%s: PATHD-TED: Refresh sid from current TED", __func__); + /* data unpacking */ + struct ted_state *data = THREAD_ARG(thread); + + assert(data != NULL); + + srte_policy_update_ted_sid(); + return 0; +} + +/** + * Cancel sync timer + * + * @param void + * + * @return void status + */ +void path_ted_timer_sync_cancel(void) +{ + if (ted_state_g.t_link_state_sync != NULL) { + thread_cancel(&ted_state_g.t_link_state_sync); + ted_state_g.t_link_state_sync = NULL; + } +} + +/** + * Cancel refresh timer + * + * @param void + * + * @return void status + */ +void path_ted_timer_refresh_cancel(void) +{ + if (ted_state_g.t_segment_list_refresh != NULL) { + thread_cancel(&ted_state_g.t_segment_list_refresh); + ted_state_g.t_segment_list_refresh = NULL; + } +} + +/** + * Check which igp is configured + * + * @param igp who want to check against config- + * + * @return status + */ +uint32_t path_ted_get_current_igp(uint32_t igp) +{ + switch (igp) { + case ISIS_L1: + case ISIS_L2: + if (ted_state_g.import != IMPORT_ISIS) { + PATH_TED_ERROR( + "%s: [rcv ted] Incorrect igp origin wait (%s) got (%s) ", + __func__, + PATH_TED_IGP_PRINT(ted_state_g.import), + LS_IGP_PRINT(igp)); + return 1; + } + break; + case OSPFv2: + if (ted_state_g.import != IMPORT_OSPFv2) { + PATH_TED_ERROR( + "%s: [rcv ted] Incorrect igp origin wait (%s) got (%s) ", + __func__, + PATH_TED_IGP_PRINT(ted_state_g.import), + LS_IGP_PRINT(igp)); + return 1; + } + break; + case STATIC: + break; + } + return 0; +} diff --git a/pathd/path_ted.h b/pathd/path_ted.h new file mode 100644 index 0000000000..c6897b1520 --- /dev/null +++ b/pathd/path_ted.h @@ -0,0 +1,178 @@ +/* + * Copyright (C) 2020 Volta Networks, Inc + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + * + */ + +#ifndef _PATH_TED_H +#define _PATH_TED_H + +#ifdef __cplusplus + +extern "C" { +#endif + +#include <zebra.h> + +#include <stdbool.h> + +#include <debug.h> +#include "linklist.h" +#include "log.h" +#include "command.h" +#include "stream.h" +#include "prefix.h" +#include "zclient.h" +#include "link_state.h" + +extern struct ted_state ted_state_g; +#define TIMER_RETRY_DELAY 5 /* Timeout in seconds between ls sync request */ +#define TED_KEY 1 +#define TED_ASN 1 +#define TED_NAME "PATHD TED" + +enum igp_import { + IMPORT_UNKNOWN = 0, + IMPORT_ISIS, + IMPORT_OSPFv2, + IMPORT_OSPFv3 +}; +struct ted_state { + struct thread_master *main; + /* Status of TED: enable or disable */ + bool enabled; + /* From which igp is going to receive data */ + enum igp_import import; + /* The TED itself as in link_state.h */ + struct ls_ted *ted; + /* Timer for ted sync */ + struct thread *t_link_state_sync; + /* Timer for refresh sid in segment list */ + struct thread *t_segment_list_refresh; + /* delay interval in seconds */ + uint32_t link_state_delay_interval; + /* delay interval refresh in seconds */ + uint32_t segment_list_refresh_interval; + struct debug dbg; +}; +/* Debug flags. */ +#define PATH_TED_DEBUG_BASIC 0x01 +#define PATH_TED_DEBUG(fmt, ...) \ + do { \ + if (DEBUG_FLAGS_CHECK(&ted_state_g.dbg, PATH_TED_DEBUG_BASIC)) \ + DEBUGD(&ted_state_g.dbg, "mpls-te: " fmt, ##__VA_ARGS__); \ + } while (0) + +#define PATH_TED_ERROR(fmt, ...) \ + do { \ + if (DEBUG_FLAGS_CHECK(&ted_state_g.dbg, PATH_TED_DEBUG_BASIC)) \ + DEBUGE(&ted_state_g.dbg, "mpls-te: " fmt, ##__VA_ARGS__); \ + } while (0) +#define PATH_TED_WARN(fmt, ...) \ + do { \ + if (DEBUG_FLAGS_CHECK(&ted_state_g.dbg, PATH_TED_DEBUG_BASIC)) \ + DEBUGW(&ted_state_g.dbg, "mpls-te: " fmt, ##__VA_ARGS__); \ + } while (0) +#define PATH_TED_INFO(fmt, ...) \ + do { \ + if (DEBUG_FLAGS_CHECK(&ted_state_g.dbg, PATH_TED_DEBUG_BASIC)) \ + DEBUGI(&ted_state_g.dbg, "mpls-te: " fmt, ##__VA_ARGS__); \ + } while (0) + +/* TED management functions */ +bool path_ted_is_initialized(void); +void path_ted_init(struct thread_master *master); +uint32_t path_ted_teardown(void); +void path_ted_timer_sync_cancel(void); +void path_ted_timer_refresh_cancel(void); +int path_ted_segment_list_refresh(void); + +/* TED configuration functions */ +uint32_t path_ted_config_write(struct vty *vty); + +/* TED util functions */ +/* clang-format off */ +#define LS_MSG_EVENT_PRINT(event) event == LS_MSG_EVENT_ADD?"add"\ + : event == LS_MSG_EVENT_DELETE?"del"\ + : event == LS_MSG_EVENT_UPDATE?"upd"\ + : event == LS_MSG_EVENT_SYNC?"syn"\ + : event == LS_MSG_EVENT_SYNC?"und" : "none" +#define LS_MSG_TYPE_PRINT(type) type == LS_MSG_TYPE_NODE?"node"\ + : type == LS_MSG_TYPE_ATTRIBUTES?"att"\ + : type == LS_MSG_TYPE_PREFIX?"pre" : "none" +#define LS_IGP_PRINT(type) type == ISIS_L1?"ISIS_L1"\ + : type == ISIS_L2?"ISIS_L2"\ + : type == DIRECT?"DIRECT"\ + : type == STATIC?"STATIC"\ + : type == OSPFv2?"OSPFv2" : "none" +#define PATH_TED_IGP_PRINT(type) type == IMPORT_OSPFv2?"OSPFv2"\ + : type == IMPORT_OSPFv3?"OSPFv3"\ + : type == IMPORT_ISIS?"ISIS" : "none" +/* clang-format on */ + + +uint32_t path_ted_get_current_igp(uint32_t); +/* TED Query functions */ + +/* + * Type of queries from draft-ietf-spring-segment-routing-policy-07 for types + * f,c,e + */ + +/** + * Search for sid based in prefix and optional algo + * + * @param prefix Net prefix to resolv + * @param algo Algorithm for link state + * + * @return sid of attribute + */ +uint32_t path_ted_query_type_c(struct prefix *prefix, uint8_t algo); + +/** + * Search for sid based in prefix and interface id + * + * @param prefix Net prefix to resolv + * @param iface_id The interface id + * + * @return sid of attribute + */ +uint32_t path_ted_query_type_e(struct prefix *prefix, uint32_t iface_id); + +/** + * Search for sid based in local, remote pair + * + * @param local local ip of attribute + * @param remote remote ip of attribute + * + * @return sid of attribute + */ +uint32_t path_ted_query_type_f(struct ipaddr *local, struct ipaddr *remote); + + +/** + * Handle the received opaque msg + * + * @param msg Holds the ted data + * + * @return sid of attribute + */ +uint32_t path_ted_rcvd_message(struct ls_message *msg); + +#ifdef __cplusplus +} +#endif + +#endif /* _PATH_TED_H */ diff --git a/pathd/path_zebra.c b/pathd/path_zebra.c index 8c9357460f..53d834f360 100644 --- a/pathd/path_zebra.c +++ b/pathd/path_zebra.c @@ -32,9 +32,14 @@ #include "typesafe.h" #include "pathd/pathd.h" +#include "pathd/path_ted.h" #include "pathd/path_zebra.h" +#include "lib/command.h" +#include "lib/link_state.h" -static struct zclient *zclient; +static int path_zebra_opaque_msg_handler(ZAPI_CALLBACK_ARGS); + +struct zclient *zclient; static struct zclient *zclient_sync; /* Global Variables */ @@ -267,6 +272,54 @@ static void path_zebra_label_manager_connect(void) } } +static int path_zebra_opaque_msg_handler(ZAPI_CALLBACK_ARGS) +{ + int ret = 0; + struct stream *s; + struct zapi_opaque_msg info; + + s = zclient->ibuf; + + if (zclient_opaque_decode(s, &info) != 0) + return -1; + + switch (info.type) { + case LINK_STATE_UPDATE: + case LINK_STATE_SYNC: + /* Start receiving ls data so cancel request sync timer */ + path_ted_timer_sync_cancel(); + + struct ls_message *msg = ls_parse_msg(s); + + if (msg) { + zlog_debug("%s: [rcv ted] ls (%s) msg (%s)-(%s) !", + __func__, + info.type == LINK_STATE_UPDATE + ? "LINK_STATE_UPDATE" + : "LINK_STATE_SYNC", + LS_MSG_TYPE_PRINT(msg->type), + LS_MSG_EVENT_PRINT(msg->event)); + } else { + zlog_err( + "%s: [rcv ted] Could not parse LinkState stream message.", + __func__); + return -1; + } + + ret = path_ted_rcvd_message(msg); + ls_delete_msg(msg); + /* Update local configuration after process update. */ + path_ted_segment_list_refresh(); + break; + default: + zlog_debug("%s: [rcv ted] unknown opaque event (%d) !", + __func__, info.type); + break; + } + + return ret; +} + /** * Initializes Zebra asynchronous connection. * @@ -283,6 +336,7 @@ void path_zebra_init(struct thread_master *master) zclient->zebra_connected = path_zebra_connected; zclient->sr_policy_notify_status = path_zebra_sr_policy_notify_status; zclient->router_id_update = path_zebra_router_id_update; + zclient->opaque_msg_handler = path_zebra_opaque_msg_handler; /* Initialize special zclient for synchronous message exchanges. */ zclient_sync = zclient_new(master, &options); diff --git a/pathd/pathd.c b/pathd/pathd.c index ae82186315..2462b08306 100644 --- a/pathd/pathd.c +++ b/pathd/pathd.c @@ -26,6 +26,7 @@ #include "pathd/pathd.h" #include "pathd/path_zebra.h" #include "pathd/path_debug.h" +#include "pathd/path_ted.h" #define HOOK_DELAY 3 @@ -188,14 +189,20 @@ void srte_segment_entry_del(struct srte_segment_entry *segment) * @param type The remote address of the adjacency * @param type The remote interface index of the unumbered adjacency */ -void srte_segment_entry_set_nai(struct srte_segment_entry *segment, - enum srte_segment_nai_type type, - struct ipaddr *local_ip, uint32_t local_iface, - struct ipaddr *remote_ip, uint32_t remote_iface) +int srte_segment_entry_set_nai(struct srte_segment_entry *segment, + enum srte_segment_nai_type type, + struct ipaddr *local_ip, uint32_t local_iface, + struct ipaddr *remote_ip, uint32_t remote_iface, + uint8_t algo, uint8_t pref_len) { + int32_t status = 0; + struct prefix pre = {0}; segment->nai_type = type; memcpy(&segment->nai_local_addr, local_ip, sizeof(struct ipaddr)); + if (!segment || !local_ip || !remote_ip) + return 1; + switch (type) { case SRTE_SEGMENT_NAI_TYPE_IPV4_NODE: case SRTE_SEGMENT_NAI_TYPE_IPV6_NODE: @@ -204,6 +211,7 @@ void srte_segment_entry_set_nai(struct srte_segment_entry *segment, case SRTE_SEGMENT_NAI_TYPE_IPV6_ADJACENCY: memcpy(&segment->nai_remote_addr, remote_ip, sizeof(struct ipaddr)); + status = srte_ted_do_query_type_f(segment, local_ip, remote_ip); break; case SRTE_SEGMENT_NAI_TYPE_IPV4_UNNUMBERED_ADJACENCY: memcpy(&segment->nai_remote_addr, remote_ip, @@ -211,12 +219,68 @@ void srte_segment_entry_set_nai(struct srte_segment_entry *segment, segment->nai_local_iface = local_iface; segment->nai_remote_iface = remote_iface; break; + case SRTE_SEGMENT_NAI_TYPE_IPV6_ALGORITHM: + pre.family = AF_INET6; + pre.prefixlen = pref_len; + pre.u.prefix6 = local_ip->ip._v6_addr; + segment->nai_local_prefix_len = pref_len; + segment->nai_algorithm = algo; + status = srte_ted_do_query_type_c(segment, &pre, algo); + break; + case SRTE_SEGMENT_NAI_TYPE_IPV4_ALGORITHM: + pre.family = AF_INET; + pre.prefixlen = pref_len; + pre.u.prefix4 = local_ip->ip._v4_addr; + segment->nai_local_prefix_len = pref_len; + segment->nai_algorithm = algo; + status = srte_ted_do_query_type_c(segment, &pre, algo); + break; + case SRTE_SEGMENT_NAI_TYPE_IPV6_LOCAL_IFACE: + pre.family = AF_INET6; + pre.prefixlen = pref_len; + pre.u.prefix6 = local_ip->ip._v6_addr; + segment->nai_local_prefix_len = pref_len; + segment->nai_local_iface = local_iface; + status = srte_ted_do_query_type_e(segment, &pre, local_iface); + break; + case SRTE_SEGMENT_NAI_TYPE_IPV4_LOCAL_IFACE: + pre.family = AF_INET; + pre.prefixlen = pref_len; + pre.u.prefix4 = local_ip->ip._v4_addr; + segment->nai_local_prefix_len = pref_len; + segment->nai_local_iface = local_iface; + status = srte_ted_do_query_type_e(segment, &pre, local_iface); + break; default: segment->nai_local_addr.ipa_type = IPADDR_NONE; segment->nai_local_iface = 0; segment->nai_remote_addr.ipa_type = IPADDR_NONE; segment->nai_remote_iface = 0; } + return status; +} + +/** + * Mark segment as modified depending in protocol and sid conditions + * + * @param protocol_origin Origin of the segment list + * @param s_list Ptr to segment list with flags,sid to modidy + * @param s_entry Ptr to segment entry with sid to modidy + * @param ted_sid The sid from ted query + * @return void + */ +void srte_segment_set_local_modification(struct srte_segment_list *s_list, + struct srte_segment_entry *s_entry, + uint32_t ted_sid) +{ + if (!s_list || !s_entry) + return; + + if (s_list->protocol_origin == SRTE_ORIGIN_LOCAL + && s_entry->sid_value != ted_sid) { + s_entry->sid_value = ted_sid; + SET_FLAG(s_list->flags, F_SEGMENT_LIST_MODIFIED); + } } /** @@ -287,6 +351,105 @@ struct srte_policy *srte_policy_find(uint32_t color, struct ipaddr *endpoint) return RB_FIND(srte_policy_head, &srte_policies, &search); } +/* + * After new data from igp,local and pce the segment list : + * Mark as invalid for origin pce if cannot be validated + * Updated for origin local + */ +int srte_policy_update_ted_sid(void) +{ + + int number_of_sid_clashed = 0; + struct srte_segment_list *s_list; + struct srte_segment_entry *s_entry; + + if (!path_ted_is_initialized()) + return 0; + if (RB_EMPTY(srte_segment_list_head, &srte_segment_lists)) + return 0; + + RB_FOREACH (s_list, srte_segment_list_head, &srte_segment_lists) { + if (CHECK_FLAG(s_list->flags, F_SEGMENT_LIST_DELETED)) + continue; + RB_FOREACH (s_entry, srte_segment_entry_head, + &s_list->segments) { + PATH_TED_DEBUG( + "%s:PATHD-TED: SL: Name: %s index:(%d) sid:(%d) prefix_len:(%d) local iface:(%d) algorithm:(%d)", + __func__, s_list->name, s_entry->index, + s_entry->sid_value, + s_entry->nai_local_prefix_len, + s_entry->nai_local_iface, + s_entry->nai_algorithm); + struct prefix prefix_cli = {0}; + + switch (s_entry->nai_type) { + case SRTE_SEGMENT_NAI_TYPE_IPV6_ADJACENCY: + case SRTE_SEGMENT_NAI_TYPE_IPV4_ADJACENCY: + number_of_sid_clashed += + srte_ted_do_query_type_f( + s_entry, + &s_entry->nai_local_addr, + &s_entry->nai_remote_addr); + break; + case SRTE_SEGMENT_NAI_TYPE_IPV6_LOCAL_IFACE: + prefix_cli.family = AF_INET6; + prefix_cli.prefixlen = + s_entry->nai_local_prefix_len; + prefix_cli.u.prefix6 = + s_entry->nai_local_addr.ip._v6_addr; + number_of_sid_clashed += + srte_ted_do_query_type_e( + s_entry, &prefix_cli, + s_entry->nai_local_iface); + break; + case SRTE_SEGMENT_NAI_TYPE_IPV4_LOCAL_IFACE: + prefix_cli.family = AF_INET; + prefix_cli.prefixlen = + s_entry->nai_local_prefix_len; + prefix_cli.u.prefix4 = + s_entry->nai_local_addr.ip._v4_addr; + number_of_sid_clashed += + srte_ted_do_query_type_e( + s_entry, &prefix_cli, + s_entry->nai_local_iface); + break; + case SRTE_SEGMENT_NAI_TYPE_IPV6_ALGORITHM: + prefix_cli.family = AF_INET6; + prefix_cli.prefixlen = + s_entry->nai_local_prefix_len; + prefix_cli.u.prefix6 = + s_entry->nai_local_addr.ip._v6_addr; + number_of_sid_clashed += + srte_ted_do_query_type_c( + s_entry, &prefix_cli, + s_entry->nai_algorithm); + break; + case SRTE_SEGMENT_NAI_TYPE_IPV4_ALGORITHM: + prefix_cli.family = AF_INET; + prefix_cli.prefixlen = + s_entry->nai_local_prefix_len; + prefix_cli.u.prefix4 = + s_entry->nai_local_addr.ip._v4_addr; + number_of_sid_clashed += + srte_ted_do_query_type_c( + s_entry, &prefix_cli, + s_entry->nai_algorithm); + break; + default: + break; + } + } + if (number_of_sid_clashed) { + SET_FLAG(s_list->flags, F_SEGMENT_LIST_SID_CONFLICT); + number_of_sid_clashed = 0; + } else + UNSET_FLAG(s_list->flags, F_SEGMENT_LIST_SID_CONFLICT); + } + srte_apply_changes(); + + return 0; +} + /** * Update a policy binding SID. * @@ -322,13 +485,23 @@ srte_policy_best_candidate(const struct srte_policy *policy) &policy->candidate_paths) { /* search for highest preference with existing segment list */ if (!CHECK_FLAG(candidate->flags, F_CANDIDATE_DELETED) - && candidate->lsp->segment_list) + && candidate->lsp->segment_list + && (!CHECK_FLAG(candidate->lsp->segment_list->flags, + F_SEGMENT_LIST_SID_CONFLICT))) return candidate; } return NULL; } +void srte_clean_zebra(void) +{ + struct srte_policy *policy, *safe_pol; + + RB_FOREACH_SAFE (policy, srte_policy_head, &srte_policies, safe_pol) + srte_policy_del(policy); +} + /** * Apply changes defined by setting the policies, candidate paths * and segment lists modification flags NEW, MODIFIED and DELETED. @@ -526,6 +699,7 @@ void srte_candidate_set_bandwidth(struct srte_candidate *candidate, { struct srte_policy *policy = candidate->policy; char endpoint[46]; + ipaddr2str(&policy->endpoint, endpoint, sizeof(endpoint)); zlog_debug( "SR-TE(%s, %u): candidate %s %sconfig bandwidth set to %f B/s", @@ -1024,6 +1198,12 @@ const char *srte_origin2str(enum srte_protocol_origin origin) } } +void pathd_shutdown(void) +{ + path_ted_teardown(); + srte_clean_zebra(); +} + void trigger_pathd_candidate_created(struct srte_candidate *candidate) { /* The hook is called asynchronously to let the PCEP module @@ -1124,3 +1304,91 @@ const char *srte_candidate_metric_name(enum srte_candidate_metric_type type) return "UNKNOWN"; } } + +int32_t srte_ted_do_query_type_c(struct srte_segment_entry *entry, + struct prefix *prefix_cli, uint32_t algo) +{ + int32_t status = 0; + uint32_t ted_sid = MPLS_LABEL_NONE; + + if (!entry || !prefix_cli) + return 0; + + if (!path_ted_is_initialized()) + return 0; + + ted_sid = path_ted_query_type_c(prefix_cli, algo); + if (ted_sid == MPLS_LABEL_NONE) { + zlog_warn(" %s: PATHD-TED: SL: ERROR query C : ted-sid (%d)", + __func__, ted_sid); + } else { + zlog_debug("%s: PATHD-TED: SL: Sucess query C : ted-sid (%d)", + __func__, ted_sid); + } + if (CHECK_SID(entry->segment_list->protocol_origin, ted_sid, + entry->sid_value)) { + status = PATH_SID_ERROR; + } else + srte_segment_set_local_modification(entry->segment_list, entry, + ted_sid); + return status; +} + +int32_t srte_ted_do_query_type_e(struct srte_segment_entry *entry, + struct prefix *prefix_cli, + uint32_t local_iface) +{ + int32_t status = 0; + uint32_t ted_sid = MPLS_LABEL_NONE; + + if (!entry || !prefix_cli) + return 0; + + if (!path_ted_is_initialized()) + return 0; + + ted_sid = path_ted_query_type_e(prefix_cli, local_iface); + if (ted_sid == MPLS_LABEL_NONE) { + zlog_warn(" %s: PATHD-TED: SL: ERROR query E : ted-sid (%d)", + __func__, ted_sid); + } else { + zlog_debug("%s: PATHD-TED: SL: Sucess query E : ted-sid (%d)", + __func__, ted_sid); + } + if (CHECK_SID(entry->segment_list->protocol_origin, ted_sid, + entry->sid_value)) { + status = PATH_SID_ERROR; + } else + srte_segment_set_local_modification(entry->segment_list, entry, + ted_sid); + return status; +} + +int32_t srte_ted_do_query_type_f(struct srte_segment_entry *entry, + struct ipaddr *local, struct ipaddr *remote) +{ + int32_t status = 0; + uint32_t ted_sid = MPLS_LABEL_NONE; + + if (!entry || !local || !remote) + return 0; + + if (!path_ted_is_initialized()) + return status; + + ted_sid = path_ted_query_type_f(local, remote); + if (ted_sid == MPLS_LABEL_NONE) { + zlog_warn("%s:SL: ERROR query F : ted-sid (%d)", __func__, + ted_sid); + } else { + zlog_debug("%s:SL: Sucess query F : ted-sid (%d)", __func__, + ted_sid); + } + if (CHECK_SID(entry->segment_list->protocol_origin, ted_sid, + entry->sid_value)) { + status = PATH_SID_ERROR; + } else + srte_segment_set_local_modification(entry->segment_list, entry, + ted_sid); + return status; +} diff --git a/pathd/pathd.h b/pathd/pathd.h index 9c4d256cef..7d38272e85 100644 --- a/pathd/pathd.h +++ b/pathd/pathd.h @@ -24,6 +24,13 @@ #include "lib/ipaddr.h" #include "lib/srte.h" #include "lib/hook.h" +#include "lib/prefix.h" + +#define PATH_SID_ERROR 1 +#define PATH_SID_NO_ERROR 0 +#define CHECK_SID(or, ts, es) \ + ((or == SRTE_ORIGIN_PCEP && (ts == MPLS_LABEL_NONE || es != ts)) \ + || (or == SRTE_ORIGIN_LOCAL && ts == MPLS_LABEL_NONE)) DECLARE_MGROUP(PATHD); @@ -100,7 +107,12 @@ enum srte_segment_nai_type { SRTE_SEGMENT_NAI_TYPE_IPV6_NODE = 2, SRTE_SEGMENT_NAI_TYPE_IPV4_ADJACENCY = 3, SRTE_SEGMENT_NAI_TYPE_IPV6_ADJACENCY = 4, - SRTE_SEGMENT_NAI_TYPE_IPV4_UNNUMBERED_ADJACENCY = 5 + SRTE_SEGMENT_NAI_TYPE_IPV4_UNNUMBERED_ADJACENCY = 5, + SRTE_SEGMENT_NAI_TYPE_IPV6_ADJACENCY_LINK_LOCAL_ADDRESSES = 6, + SRTE_SEGMENT_NAI_TYPE_IPV4_LOCAL_IFACE = 7, + SRTE_SEGMENT_NAI_TYPE_IPV6_LOCAL_IFACE = 8, + SRTE_SEGMENT_NAI_TYPE_IPV4_ALGORITHM = 9, + SRTE_SEGMENT_NAI_TYPE_IPV6_ALGORITHM = 10 }; enum objfun_type { @@ -175,6 +187,9 @@ struct srte_segment_entry { /* NAI remote interface when nai type is not IPv4 unnumbered adjacency */ uint32_t nai_remote_iface; + /* Support draft-ietf-spring-segment-routing-policy sl types queries*/ + uint8_t nai_local_prefix_len; + uint8_t nai_algorithm; }; RB_HEAD(srte_segment_entry_head, srte_segment_entry); RB_PROTOTYPE(srte_segment_entry_head, srte_segment_entry, entry, @@ -200,6 +215,7 @@ struct srte_segment_list { #define F_SEGMENT_LIST_NEW 0x0002 #define F_SEGMENT_LIST_MODIFIED 0x0004 #define F_SEGMENT_LIST_DELETED 0x0008 +#define F_SEGMENT_LIST_SID_CONFLICT 0x0010 }; RB_HEAD(srte_segment_list_head, srte_segment_list); RB_PROTOTYPE(srte_segment_list_head, srte_segment_list, entry, @@ -361,17 +377,22 @@ struct srte_segment_list *srte_segment_list_find(const char *name); struct srte_segment_entry * srte_segment_entry_add(struct srte_segment_list *segment_list, uint32_t index); void srte_segment_entry_del(struct srte_segment_entry *segment); -void srte_segment_entry_set_nai(struct srte_segment_entry *segment, - enum srte_segment_nai_type type, - struct ipaddr *local_ip, uint32_t local_iface, - struct ipaddr *remote_ip, - uint32_t remote_iface); +int srte_segment_entry_set_nai(struct srte_segment_entry *segment, + enum srte_segment_nai_type type, + struct ipaddr *local_ip, uint32_t local_iface, + struct ipaddr *remote_ip, uint32_t remote_iface, + uint8_t algo, uint8_t pref_len); +void srte_segment_set_local_modification(struct srte_segment_list *s_list, + struct srte_segment_entry *s_entry, + uint32_t ted_sid); struct srte_policy *srte_policy_add(uint32_t color, struct ipaddr *endpoint); void srte_policy_del(struct srte_policy *policy); struct srte_policy *srte_policy_find(uint32_t color, struct ipaddr *endpoint); +int srte_policy_update_ted_sid(void); void srte_policy_update_binding_sid(struct srte_policy *policy, uint32_t binding_sid); void srte_apply_changes(void); +void srte_clean_zebra(void); void srte_policy_apply_changes(struct srte_policy *policy); struct srte_candidate *srte_candidate_add(struct srte_policy *policy, uint32_t preference); @@ -408,8 +429,45 @@ srte_segment_entry_find(struct srte_segment_list *segment_list, uint32_t index); void srte_candidate_status_update(struct srte_candidate *candidate, int status); void srte_candidate_unset_segment_list(const char *originator, bool force); const char *srte_origin2str(enum srte_protocol_origin origin); +void pathd_shutdown(void); /* path_cli.c */ void path_cli_init(void); + +/** + * Search for sid based in prefix and algorithm + * + * @param Prefix The prefix to use + * @param algo Algorithm we want to query for + * @param ted_sid Sid to query + * + * @return void + */ +int32_t srte_ted_do_query_type_c(struct srte_segment_entry *entry, + struct prefix *prefix_cli, uint32_t algo); + +/** + * Search for sid based in prefix and interface id + * + * @param Prefix The prefix to use + * @param local_iface The id of interface + * @param ted_sid Sid to query + * + * @return void + */ +int32_t srte_ted_do_query_type_e(struct srte_segment_entry *entry, + struct prefix *prefix_cli, + uint32_t local_iface); +/** + * Search for sid based in local and remote ip + * + * @param entry entry to update + * @param local Local addr for query + * @param remote Local addr for query + * + * @return void + */ +int32_t srte_ted_do_query_type_f(struct srte_segment_entry *entry, + struct ipaddr *local, struct ipaddr *remote); #endif /* _FRR_PATHD_H_ */ diff --git a/pathd/subdir.am b/pathd/subdir.am index 0666e8d3c8..693afabb39 100644 --- a/pathd/subdir.am +++ b/pathd/subdir.am @@ -5,7 +5,10 @@ if PATHD noinst_LIBRARIES += pathd/libpath.a sbin_PROGRAMS += pathd/pathd -vtysh_scan += pathd/path_cli.c +vtysh_scan += \ + pathd/path_cli.c \ + pathd/path_ted.c \ + #end vtysh_daemons += pathd # TODO add man page #man8 += $(MANBUILD)/pathd.8 @@ -24,6 +27,7 @@ pathd_libpath_a_SOURCES = \ pathd/path_nb.c \ pathd/path_nb_config.c \ pathd/path_nb_state.c \ + pathd/path_ted.c \ pathd/path_zebra.c \ pathd/pathd.c \ # end @@ -31,6 +35,7 @@ pathd_libpath_a_SOURCES = \ clippy_scan += \ pathd/path_cli.c \ pathd/path_pcep_cli.c \ + pathd/path_ted.c \ # end noinst_HEADERS += \ @@ -44,6 +49,7 @@ noinst_HEADERS += \ pathd/path_pcep_lib.h \ pathd/path_pcep_config.h \ pathd/path_pcep_pcc.h \ + pathd/path_ted.h \ pathd/path_zebra.h \ pathd/pathd.h \ # end diff --git a/pceplib/test/pcep_msg_messages_test.c b/pceplib/test/pcep_msg_messages_test.c index 61fa94047b..6ae449acd1 100644 --- a/pceplib/test/pcep_msg_messages_test.c +++ b/pceplib/test/pcep_msg_messages_test.c @@ -26,6 +26,7 @@ #endif #include <stdlib.h> +#include <assert.h> #include <CUnit/CUnit.h> @@ -79,13 +80,16 @@ void test_pcep_msg_create_open() pcep_msg_create_open(keepalive, deadtimer, sid); CU_ASSERT_PTR_NOT_NULL(message); pcep_encode_message(message, versioning); + assert(message != NULL); CU_ASSERT_PTR_NOT_NULL(message->msg_header); CU_ASSERT_PTR_NOT_NULL(message->obj_list); + assert(message->obj_list != NULL); CU_ASSERT_EQUAL(message->obj_list->num_entries, 1); CU_ASSERT_EQUAL(message->encoded_message_length, MESSAGE_HEADER_LENGTH + pcep_object_get_length(PCEP_OBJ_CLASS_OPEN, PCEP_OBJ_TYPE_OPEN)); + assert(message->msg_header != NULL); CU_ASSERT_EQUAL(message->msg_header->type, PCEP_TYPE_OPEN); CU_ASSERT_EQUAL(message->msg_header->pcep_version, PCEP_MESSAGE_HEADER_VERSION); @@ -122,6 +126,7 @@ void test_pcep_msg_create_request() CU_ASSERT_PTR_NOT_NULL(message); pcep_encode_message(message, versioning); + assert(message != NULL); CU_ASSERT_PTR_NOT_NULL(message->msg_header); CU_ASSERT_PTR_NOT_NULL(message->obj_list); CU_ASSERT_EQUAL(message->obj_list->num_entries, 2); @@ -130,6 +135,7 @@ void test_pcep_msg_create_request() MESSAGE_HEADER_LENGTH + pcep_object_get_length_by_hdr(&rp_obj->header) + pcep_object_get_length_by_hdr(&ipv4_obj->header)); + assert(message->msg_header != NULL); CU_ASSERT_EQUAL(message->msg_header->type, PCEP_TYPE_PCREQ); CU_ASSERT_EQUAL(message->msg_header->pcep_version, PCEP_MESSAGE_HEADER_VERSION); @@ -144,14 +150,17 @@ void test_pcep_msg_create_request() CU_ASSERT_PTR_NOT_NULL(message); pcep_encode_message(message, versioning); + assert(message != NULL); CU_ASSERT_PTR_NOT_NULL(message->msg_header); CU_ASSERT_PTR_NOT_NULL(message->obj_list); + assert(message->obj_list != NULL); CU_ASSERT_EQUAL(message->obj_list->num_entries, 2); CU_ASSERT_EQUAL( message->encoded_message_length, MESSAGE_HEADER_LENGTH + pcep_object_get_length_by_hdr(&rp_obj->header) + pcep_object_get_length_by_hdr(&ipv6_obj->header)); + assert(message->msg_header != NULL); CU_ASSERT_EQUAL(message->msg_header->type, PCEP_TYPE_PCREQ); CU_ASSERT_EQUAL(message->msg_header->pcep_version, PCEP_MESSAGE_HEADER_VERSION); @@ -169,8 +178,10 @@ void test_pcep_msg_create_request() CU_ASSERT_PTR_NOT_NULL(message); pcep_encode_message(message, versioning); + assert(message != NULL); CU_ASSERT_PTR_NOT_NULL(message->msg_header); CU_ASSERT_PTR_NOT_NULL(message->obj_list); + assert(message->obj_list != NULL); CU_ASSERT_EQUAL(message->obj_list->num_entries, 3); CU_ASSERT_EQUAL( message->encoded_message_length, @@ -179,6 +190,7 @@ void test_pcep_msg_create_request() + pcep_object_get_length_by_hdr(&ipv4_obj->header) + pcep_object_get_length_by_hdr( &bandwidth_obj->header)); + assert(message->msg_header != NULL); CU_ASSERT_EQUAL(message->msg_header->type, PCEP_TYPE_PCREQ); CU_ASSERT_EQUAL(message->msg_header->pcep_version, PCEP_MESSAGE_HEADER_VERSION); @@ -203,13 +215,16 @@ void test_pcep_msg_create_reply_nopath() struct pcep_message *message = pcep_msg_create_reply(rp_obj, obj_list); CU_ASSERT_PTR_NOT_NULL(message); pcep_encode_message(message, versioning); + assert(message != NULL); CU_ASSERT_PTR_NOT_NULL(message->msg_header); CU_ASSERT_PTR_NOT_NULL(message->obj_list); + assert(message->obj_list != NULL); CU_ASSERT_EQUAL(message->obj_list->num_entries, 2); CU_ASSERT_EQUAL(message->encoded_message_length, (MESSAGE_HEADER_LENGTH + pcep_object_get_length_by_hdr(&rp_obj->header) + pcep_object_get_length_by_hdr(&nopath_obj->header))); + assert(message->msg_header != NULL); CU_ASSERT_EQUAL(message->msg_header->type, PCEP_TYPE_PCREP); CU_ASSERT_EQUAL(message->msg_header->pcep_version, PCEP_MESSAGE_HEADER_VERSION); @@ -224,10 +239,12 @@ void test_pcep_msg_create_reply() CU_ASSERT_PTR_NOT_NULL(message); pcep_encode_message(message, versioning); + assert(message != NULL); CU_ASSERT_PTR_NOT_NULL(message->msg_header); CU_ASSERT_PTR_NOT_NULL(message->obj_list); CU_ASSERT_EQUAL(message->obj_list->num_entries, 0); CU_ASSERT_EQUAL(message->encoded_message_length, MESSAGE_HEADER_LENGTH); + assert(message->msg_header != NULL); CU_ASSERT_EQUAL(message->msg_header->type, PCEP_TYPE_PCREP); CU_ASSERT_EQUAL(message->msg_header->pcep_version, PCEP_MESSAGE_HEADER_VERSION); @@ -249,6 +266,7 @@ void test_pcep_msg_create_reply() pcep_encode_message(message, versioning); CU_ASSERT_PTR_NOT_NULL(message->msg_header); CU_ASSERT_PTR_NOT_NULL(message->obj_list); + assert(message->obj_list != NULL); CU_ASSERT_EQUAL(message->obj_list->num_entries, 2); CU_ASSERT_EQUAL(message->encoded_message_length, MESSAGE_HEADER_LENGTH @@ -270,13 +288,16 @@ void test_pcep_msg_create_close() struct pcep_message *message = pcep_msg_create_close(reason); CU_ASSERT_PTR_NOT_NULL(message); pcep_encode_message(message, versioning); + assert(message != NULL); CU_ASSERT_PTR_NOT_NULL(message->msg_header); CU_ASSERT_PTR_NOT_NULL(message->obj_list); + assert(message->obj_list != NULL); CU_ASSERT_EQUAL(message->obj_list->num_entries, 1); CU_ASSERT_EQUAL(message->encoded_message_length, MESSAGE_HEADER_LENGTH + pcep_object_get_length(PCEP_OBJ_CLASS_CLOSE, PCEP_OBJ_TYPE_CLOSE)); + assert(message->msg_header != NULL); CU_ASSERT_EQUAL(message->msg_header->type, PCEP_TYPE_CLOSE); CU_ASSERT_EQUAL(message->msg_header->pcep_version, PCEP_MESSAGE_HEADER_VERSION); @@ -285,6 +306,7 @@ void test_pcep_msg_create_close() * are verified in pcep-objects-test.c */ struct pcep_object_close *close_obj = (struct pcep_object_close *)message->obj_list->head->data; + assert(close_obj != NULL); CU_ASSERT_EQUAL(close_obj->header.object_class, PCEP_OBJ_CLASS_CLOSE); CU_ASSERT_EQUAL(close_obj->header.object_type, PCEP_OBJ_TYPE_CLOSE); CU_ASSERT_EQUAL(close_obj->reason, reason); @@ -301,13 +323,16 @@ void test_pcep_msg_create_error() pcep_msg_create_error(error_type, error_value); CU_ASSERT_PTR_NOT_NULL(message); pcep_encode_message(message, versioning); + assert(message != NULL); CU_ASSERT_PTR_NOT_NULL(message->msg_header); CU_ASSERT_PTR_NOT_NULL(message->obj_list); + assert(message->obj_list != NULL); CU_ASSERT_EQUAL(message->obj_list->num_entries, 1); CU_ASSERT_EQUAL(message->encoded_message_length, MESSAGE_HEADER_LENGTH + pcep_object_get_length(PCEP_OBJ_CLASS_ERROR, PCEP_OBJ_TYPE_ERROR)); + assert(message->msg_header != NULL); CU_ASSERT_EQUAL(message->msg_header->type, PCEP_TYPE_ERROR); CU_ASSERT_EQUAL(message->msg_header->pcep_version, PCEP_MESSAGE_HEADER_VERSION); @@ -330,10 +355,13 @@ void test_pcep_msg_create_keepalive() struct pcep_message *message = pcep_msg_create_keepalive(); CU_ASSERT_PTR_NOT_NULL(message); pcep_encode_message(message, versioning); + assert(message != NULL); CU_ASSERT_PTR_NOT_NULL(message->msg_header); CU_ASSERT_PTR_NOT_NULL(message->obj_list); + assert(message->obj_list != NULL); CU_ASSERT_EQUAL(message->obj_list->num_entries, 0); CU_ASSERT_EQUAL(message->encoded_message_length, MESSAGE_HEADER_LENGTH); + assert(message->msg_header != NULL); CU_ASSERT_EQUAL(message->msg_header->type, PCEP_TYPE_KEEPALIVE); CU_ASSERT_EQUAL(message->msg_header->pcep_version, PCEP_MESSAGE_HEADER_VERSION); @@ -355,12 +383,15 @@ void test_pcep_msg_create_report() message = pcep_msg_create_report(obj_list); CU_ASSERT_PTR_NOT_NULL(message); pcep_encode_message(message, versioning); + assert(message != NULL); CU_ASSERT_PTR_NOT_NULL(message->msg_header); CU_ASSERT_PTR_NOT_NULL(message->obj_list); + assert(message->obj_list != NULL); CU_ASSERT_EQUAL(message->obj_list->num_entries, 1); CU_ASSERT_EQUAL(message->encoded_message_length, MESSAGE_HEADER_LENGTH + lsp->header.encoded_object_length); + assert(message->msg_header != NULL); CU_ASSERT_EQUAL(message->msg_header->type, PCEP_TYPE_REPORT); CU_ASSERT_EQUAL(message->msg_header->pcep_version, PCEP_MESSAGE_HEADER_VERSION); @@ -405,14 +436,17 @@ void test_pcep_msg_create_update() message = pcep_msg_create_update(obj_list); CU_ASSERT_PTR_NOT_NULL(message); pcep_encode_message(message, versioning); + assert(message != NULL); CU_ASSERT_PTR_NOT_NULL(message->msg_header); CU_ASSERT_PTR_NOT_NULL(message->obj_list); + assert(message->obj_list != NULL); CU_ASSERT_EQUAL(message->obj_list->num_entries, 3); CU_ASSERT_EQUAL(message->encoded_message_length, MESSAGE_HEADER_LENGTH + srp->header.encoded_object_length + lsp->header.encoded_object_length + ero->header.encoded_object_length); + assert(message->msg_header != NULL); CU_ASSERT_EQUAL(message->msg_header->type, PCEP_TYPE_UPDATE); CU_ASSERT_EQUAL(message->msg_header->pcep_version, PCEP_MESSAGE_HEADER_VERSION); @@ -454,14 +488,17 @@ void test_pcep_msg_create_initiate() message = pcep_msg_create_initiate(obj_list); CU_ASSERT_PTR_NOT_NULL(message); pcep_encode_message(message, versioning); + assert(message != NULL); CU_ASSERT_PTR_NOT_NULL(message->msg_header); CU_ASSERT_PTR_NOT_NULL(message->obj_list); + assert(message->obj_list != NULL); CU_ASSERT_EQUAL(message->obj_list->num_entries, 3); CU_ASSERT_EQUAL(message->encoded_message_length, MESSAGE_HEADER_LENGTH + srp->header.encoded_object_length + lsp->header.encoded_object_length + ero->header.encoded_object_length); + assert(message->msg_header != NULL); CU_ASSERT_EQUAL(message->msg_header->type, PCEP_TYPE_INITIATE); CU_ASSERT_EQUAL(message->msg_header->pcep_version, PCEP_MESSAGE_HEADER_VERSION); @@ -482,11 +519,14 @@ void test_pcep_msg_create_notify(void) message = pcep_msg_create_notify(notify_obj, NULL); CU_ASSERT_PTR_NOT_NULL(message); pcep_encode_message(message, versioning); + assert(message != NULL); CU_ASSERT_PTR_NOT_NULL(message->obj_list); + assert(message->obj_list != NULL); CU_ASSERT_EQUAL(message->obj_list->num_entries, 1); CU_ASSERT_EQUAL(message->encoded_message_length, MESSAGE_HEADER_LENGTH + notify_obj->header.encoded_object_length); + assert(message->msg_header != NULL); CU_ASSERT_EQUAL(message->msg_header->type, PCEP_TYPE_PCNOTF); CU_ASSERT_EQUAL(message->msg_header->pcep_version, PCEP_MESSAGE_HEADER_VERSION); @@ -504,7 +544,9 @@ void test_pcep_msg_create_notify(void) message = pcep_msg_create_notify(notify_obj, obj_list); CU_ASSERT_PTR_NOT_NULL(message); pcep_encode_message(message, versioning); + assert(message != NULL); CU_ASSERT_PTR_NOT_NULL(message->obj_list); + assert(message->obj_list != NULL); CU_ASSERT_EQUAL(message->obj_list->num_entries, 2); CU_ASSERT_EQUAL(message->encoded_message_length, MESSAGE_HEADER_LENGTH diff --git a/pceplib/test/pcep_msg_objects_test.c b/pceplib/test/pcep_msg_objects_test.c index e0814de543..a92bbe4896 100644 --- a/pceplib/test/pcep_msg_objects_test.c +++ b/pceplib/test/pcep_msg_objects_test.c @@ -25,6 +25,7 @@ #include "config.h" #endif +#include <assert.h> #include <stdlib.h> #include <CUnit/CUnit.h> @@ -128,6 +129,7 @@ static void verify_pcep_obj_header2(uint8_t obj_class, uint8_t obj_type, static void verify_pcep_obj_header(uint8_t obj_class, uint8_t obj_type, struct pcep_object_header *obj_hdr) { + assert(obj_hdr != NULL); verify_pcep_obj_header2(obj_class, obj_type, pcep_object_get_length_by_hdr(obj_hdr), obj_hdr->encoded_object); @@ -172,12 +174,14 @@ void test_pcep_obj_create_open_with_tlvs() pcep_obj_create_open(keepalive, deadtimer, sid, tlv_list); CU_ASSERT_PTR_NOT_NULL(open); + assert(open != NULL); pcep_encode_object(&open->header, versioning, object_buf); verify_pcep_obj_header2(PCEP_OBJ_CLASS_OPEN, PCEP_OBJ_TYPE_OPEN, pcep_object_get_length_by_hdr(&open->header) + sizeof(uint32_t) * 2, open->header.encoded_object); CU_ASSERT_PTR_NOT_NULL(open->header.tlv_list); + assert(open->header.tlv_list != NULL); CU_ASSERT_EQUAL(open->header.tlv_list->num_entries, 1); CU_ASSERT_EQUAL(open->header.encoded_object[4], @@ -240,6 +244,8 @@ void test_pcep_obj_create_nopath() CU_ASSERT_EQUAL(nopath->header.encoded_object[7], 0); /* Verify the TLV */ + assert(nopath != NULL); + assert(nopath->header.tlv_list != NULL); CU_ASSERT_PTR_NOT_NULL(nopath->header.tlv_list); struct pcep_object_tlv_nopath_vector *tlv = (struct pcep_object_tlv_nopath_vector *) @@ -269,6 +275,7 @@ void test_pcep_obj_create_association_ipv4() false, PCEP_ASSOCIATION_TYPE_SR_POLICY_ASSOCIATION_TYPE, all_assoc_groups, src); CU_ASSERT_PTR_NOT_NULL(assoc); + assert(assoc != NULL); CU_ASSERT_EQUAL(assoc->association_type, PCEP_ASSOCIATION_TYPE_SR_POLICY_ASSOCIATION_TYPE); CU_ASSERT_EQUAL(assoc->association_id, all_assoc_groups); @@ -291,6 +298,7 @@ void test_pcep_obj_create_association_ipv6() false, PCEP_ASSOCIATION_TYPE_SR_POLICY_ASSOCIATION_TYPE, all_assoc_groups, src); CU_ASSERT_PTR_NOT_NULL(assoc); + assert(assoc != NULL); CU_ASSERT_EQUAL(assoc->association_type, PCEP_ASSOCIATION_TYPE_SR_POLICY_ASSOCIATION_TYPE); CU_ASSERT_EQUAL(assoc->association_id, all_assoc_groups); @@ -466,6 +474,7 @@ void test_pcep_obj_create_svec() svec = pcep_obj_create_svec(true, true, true, id_list); CU_ASSERT_PTR_NOT_NULL(svec); + assert(svec != NULL); pcep_encode_object(&svec->header, versioning, object_buf); verify_pcep_obj_header2(PCEP_OBJ_CLASS_SVEC, PCEP_OBJ_TYPE_SVEC, (OBJECT_HEADER_LENGTH + sizeof(uint32_t) * 2), @@ -614,6 +623,7 @@ static void test_pcep_obj_create_object_common(ro_func func_to_test, struct pcep_object_ro *ero = func_to_test(NULL); CU_ASSERT_PTR_NOT_NULL(ero); + assert(ero != NULL); pcep_encode_object(&ero->header, versioning, object_buf); verify_pcep_obj_header2(object_class, object_type, OBJECT_HEADER_LENGTH, ero->header.encoded_object); @@ -622,6 +632,7 @@ static void test_pcep_obj_create_object_common(ro_func func_to_test, reset_objects_buffer(); ero = func_to_test(ero_list); CU_ASSERT_PTR_NOT_NULL(ero); + assert(ero != NULL); pcep_encode_object(&ero->header, versioning, object_buf); verify_pcep_obj_header2(object_class, object_type, OBJECT_HEADER_LENGTH, ero->header.encoded_object); @@ -634,6 +645,7 @@ static void test_pcep_obj_create_object_common(ro_func func_to_test, dll_append(ero_list, ro_subobj); ero = func_to_test(ero_list); CU_ASSERT_PTR_NOT_NULL(ero); + assert(ero != NULL); pcep_encode_object(&ero->header, versioning, object_buf); /* 4 bytes for obj header + * 2 bytes for ro_subobj header + @@ -917,6 +929,7 @@ void test_pcep_obj_create_ro_subobj_sr_ipv4_node() sr = pcep_obj_create_ro_subobj_sr_ipv4_node(true, true, false, false, sid, &ipv4_node_id); CU_ASSERT_PTR_NOT_NULL(sr); + assert(sr != NULL); struct pcep_object_ro *ro = encode_ro_subobj(&sr->ro_subobj); verify_pcep_obj_ro_sr_header(ro, &sr->ro_subobj, PCEP_SR_SUBOBJ_NAI_IPV4_NODE, true, @@ -936,10 +949,12 @@ void test_pcep_obj_create_ro_subobj_sr_ipv4_node() sr = pcep_obj_create_ro_subobj_sr_ipv4_node(false, false, true, true, sid, &ipv4_node_id); CU_ASSERT_PTR_NOT_NULL(sr); + assert(sr != NULL); ro = encode_ro_subobj(&sr->ro_subobj); verify_pcep_obj_ro_sr_header(ro, &sr->ro_subobj, PCEP_SR_SUBOBJ_NAI_IPV4_NODE, false, sizeof(uint32_t) * 4); + assert(ro != NULL); CU_ASSERT_TRUE(ro->header.encoded_object[7] & OBJECT_SUBOBJ_SR_FLAG_C); CU_ASSERT_TRUE(ro->header.encoded_object[7] & OBJECT_SUBOBJ_SR_FLAG_M); CU_ASSERT_TRUE(ro->header.encoded_object[7] & ~OBJECT_SUBOBJ_SR_FLAG_S); @@ -1040,6 +1055,7 @@ void test_pcep_obj_create_ro_subobj_sr_ipv4_adj() CU_ASSERT_TRUE(ro->header.encoded_object[7] & ~OBJECT_SUBOBJ_SR_FLAG_F); CU_ASSERT_TRUE(ro->header.encoded_object[7] & ~OBJECT_SUBOBJ_SR_FLAG_C); CU_ASSERT_TRUE(ro->header.encoded_object[7] & ~OBJECT_SUBOBJ_SR_FLAG_M); + assert(sr != NULL); CU_ASSERT_EQUAL(sr->sid, 0); uint32_t *uint32_ptr = (uint32_t *)(ro->header.encoded_object + 8); CU_ASSERT_EQUAL(uint32_ptr[0], local_ipv4.s_addr); @@ -1094,6 +1110,7 @@ void test_pcep_obj_create_ro_subobj_sr_ipv6_adj() sr = pcep_obj_create_ro_subobj_sr_ipv6_adj(true, true, true, true, sid, &local_ipv6, &remote_ipv6); CU_ASSERT_PTR_NOT_NULL(sr); + assert(sr != NULL); struct pcep_object_ro *ro = encode_ro_subobj(&sr->ro_subobj); verify_pcep_obj_ro_sr_header(ro, &sr->ro_subobj, PCEP_SR_SUBOBJ_NAI_IPV6_ADJACENCY, true, @@ -1168,6 +1185,7 @@ void test_pcep_obj_create_ro_subobj_sr_unnumbered_ipv4_adj() CU_ASSERT_TRUE(ro->header.encoded_object[7] & ~OBJECT_SUBOBJ_SR_FLAG_F); CU_ASSERT_TRUE(ro->header.encoded_object[7] & ~OBJECT_SUBOBJ_SR_FLAG_C); CU_ASSERT_TRUE(ro->header.encoded_object[7] & ~OBJECT_SUBOBJ_SR_FLAG_M); + assert(sr != NULL); CU_ASSERT_EQUAL(sr->sid, 0); uint32_t *uint32_ptr = (uint32_t *)(ro->header.encoded_object + 8); CU_ASSERT_EQUAL(uint32_ptr[0], local_node_id); @@ -1244,6 +1262,7 @@ void test_pcep_obj_create_ro_subobj_sr_linklocal_ipv6_adj() CU_ASSERT_TRUE(ro->header.encoded_object[7] & ~OBJECT_SUBOBJ_SR_FLAG_F); CU_ASSERT_TRUE(ro->header.encoded_object[7] & ~OBJECT_SUBOBJ_SR_FLAG_C); CU_ASSERT_TRUE(ro->header.encoded_object[7] & ~OBJECT_SUBOBJ_SR_FLAG_M); + assert(sr != NULL); CU_ASSERT_EQUAL(sr->sid, 0); uint32_t *uint32_ptr = (uint32_t *)(ro->header.encoded_object + 8); CU_ASSERT_EQUAL(uint32_ptr[0], local_ipv6.__in6_u.__u6_addr32[0]); diff --git a/pceplib/test/pcep_msg_tlvs_test.c b/pceplib/test/pcep_msg_tlvs_test.c index 57e1d16e91..888925fdbf 100644 --- a/pceplib/test/pcep_msg_tlvs_test.c +++ b/pceplib/test/pcep_msg_tlvs_test.c @@ -30,6 +30,7 @@ #else #include <endian.h> #endif /* __FreeBSD__ */ +#include <assert.h> #include <stdlib.h> #include <CUnit/CUnit.h> @@ -88,6 +89,7 @@ void test_pcep_tlv_create_stateful_pce_capability() pcep_tlv_create_stateful_pce_capability(true, true, true, true, true, true); CU_ASSERT_PTR_NOT_NULL(tlv); + assert(tlv != NULL); pcep_encode_tlv(&tlv->header, versioning, tlv_buf); CU_ASSERT_EQUAL(tlv->header.type, @@ -126,11 +128,13 @@ void test_pcep_tlv_create_speaker_entity_id() dll_append(list, speaker_entity); tlv = pcep_tlv_create_speaker_entity_id(list); CU_ASSERT_PTR_NOT_NULL(tlv); + assert(tlv != NULL); pcep_encode_tlv(&tlv->header, versioning, tlv_buf); CU_ASSERT_EQUAL(tlv->header.type, PCEP_OBJ_TLV_TYPE_SPEAKER_ENTITY_ID); CU_ASSERT_EQUAL(tlv->header.encoded_tlv_length, sizeof(uint32_t)); CU_ASSERT_PTR_NOT_NULL(tlv->speaker_entity_id_list); + assert(tlv->speaker_entity_id_list != NULL); CU_ASSERT_EQUAL(tlv->speaker_entity_id_list->num_entries, 1); uint32_t *uint32_ptr = (uint32_t *)tlv->header.encoded_tlv; CU_ASSERT_EQUAL(uint32_ptr[1], htonl(*speaker_entity)); @@ -144,6 +148,7 @@ void test_pcep_tlv_create_lsp_db_version() struct pcep_object_tlv_lsp_db_version *tlv = pcep_tlv_create_lsp_db_version(lsp_db_version); CU_ASSERT_PTR_NOT_NULL(tlv); + assert(tlv != NULL); pcep_encode_tlv(&tlv->header, versioning, tlv_buf); CU_ASSERT_EQUAL(tlv->header.type, PCEP_OBJ_TLV_TYPE_LSP_DB_VERSION); @@ -162,6 +167,7 @@ void test_pcep_tlv_create_path_setup_type() struct pcep_object_tlv_path_setup_type *tlv = pcep_tlv_create_path_setup_type(pst); CU_ASSERT_PTR_NOT_NULL(tlv); + assert(tlv != NULL); pcep_encode_tlv(&tlv->header, versioning, tlv_buf); CU_ASSERT_EQUAL(tlv->header.type, PCEP_OBJ_TLV_TYPE_PATH_SETUP_TYPE); CU_ASSERT_EQUAL(tlv->header.encoded_tlv_length, sizeof(uint32_t)); @@ -231,6 +237,7 @@ void test_pcep_tlv_create_path_setup_type_capability() PCEP_OBJ_TLV_TYPE_PATH_SETUP_TYPE_CAPABILITY); CU_ASSERT_EQUAL(tlv->header.encoded_tlv_length, sizeof(uint32_t) * 2); CU_ASSERT_PTR_NOT_NULL(tlv->pst_list); + assert(tlv != NULL); CU_ASSERT_EQUAL(tlv->pst_list->num_entries, 3); uint32_t *uint32_ptr = (uint32_t *)tlv->header.encoded_tlv; CU_ASSERT_EQUAL(uint32_ptr[1], htonl(0x00000003)); @@ -251,6 +258,7 @@ void test_pcep_tlv_create_path_setup_type_capability() tlv = pcep_tlv_create_path_setup_type_capability(pst_list, sub_tlv_list); CU_ASSERT_PTR_NOT_NULL(tlv); + assert(tlv != NULL); pcep_encode_tlv(&tlv->header, versioning, tlv_buf); CU_ASSERT_EQUAL(tlv->header.type, @@ -283,6 +291,7 @@ void test_pcep_tlv_create_sr_pce_capability() struct pcep_object_tlv_sr_pce_capability *tlv = pcep_tlv_create_sr_pce_capability(true, true, 8); CU_ASSERT_PTR_NOT_NULL(tlv); + assert(tlv != NULL); pcep_encode_tlv(&tlv->header, versioning, tlv_buf); CU_ASSERT_EQUAL(tlv->header.type, PCEP_OBJ_TLV_TYPE_SR_PCE_CAPABILITY); @@ -305,6 +314,7 @@ void test_pcep_tlv_create_symbolic_path_name() struct pcep_object_tlv_symbolic_path_name *tlv = pcep_tlv_create_symbolic_path_name(path_name, path_name_length); CU_ASSERT_PTR_NOT_NULL(tlv); + assert(tlv != NULL); pcep_encode_tlv(&tlv->header, versioning, tlv_buf); CU_ASSERT_EQUAL(tlv->header.type, PCEP_OBJ_TLV_TYPE_SYMBOLIC_PATH_NAME); @@ -325,6 +335,8 @@ void test_pcep_tlv_create_symbolic_path_name() reset_tlv_buffer(); tlv = pcep_tlv_create_symbolic_path_name(path_name, 3); CU_ASSERT_PTR_NOT_NULL(tlv); + printf("El tlv es %p", tlv); + assert(tlv != NULL); // crash si FALSE pcep_encode_tlv(&tlv->header, versioning, tlv_buf); CU_ASSERT_EQUAL(tlv->header.type, PCEP_OBJ_TLV_TYPE_SYMBOLIC_PATH_NAME); CU_ASSERT_EQUAL(tlv->header.encoded_tlv_length, 3); @@ -359,6 +371,7 @@ void test_pcep_tlv_create_ipv4_lsp_identifiers() tlv = pcep_tlv_create_ipv4_lsp_identifiers( NULL, NULL, lsp_id, tunnel_id, &extended_tunnel_id); CU_ASSERT_PTR_NULL(tlv); + assert(tlv == NULL); tlv = pcep_tlv_create_ipv4_lsp_identifiers(&sender_ip, &endpoint_ip, lsp_id, tunnel_id, @@ -381,6 +394,7 @@ void test_pcep_tlv_create_ipv4_lsp_identifiers() tlv = pcep_tlv_create_ipv4_lsp_identifiers(&sender_ip, &endpoint_ip, lsp_id, tunnel_id, NULL); CU_ASSERT_PTR_NOT_NULL(tlv); + assert(tlv != NULL); pcep_encode_tlv(&tlv->header, versioning, tlv_buf); CU_ASSERT_EQUAL(tlv->header.type, @@ -424,11 +438,13 @@ void test_pcep_tlv_create_ipv6_lsp_identifiers() NULL, NULL, lsp_id, tunnel_id, (struct in6_addr *)&extended_tunnel_id); CU_ASSERT_PTR_NULL(tlv); + assert(tlv == NULL); tlv = pcep_tlv_create_ipv6_lsp_identifiers( &sender_ip, &endpoint_ip, lsp_id, tunnel_id, (struct in6_addr *)&extended_tunnel_id); CU_ASSERT_PTR_NOT_NULL(tlv); + assert(tlv != NULL); pcep_encode_tlv(&tlv->header, versioning, tlv_buf); CU_ASSERT_EQUAL(tlv->header.type, @@ -449,6 +465,7 @@ void test_pcep_tlv_create_srpag_pol_id_ipv4() struct pcep_object_tlv_srpag_pol_id *tlv = pcep_tlv_create_srpag_pol_id_ipv4(color, (void *)&src); CU_ASSERT_PTR_NOT_NULL(tlv); + assert(tlv != NULL); pcep_encode_tlv(&tlv->header, versioning, tlv_buf); CU_ASSERT_EQUAL(tlv->header.type, (PCEP_OBJ_TLV_TYPE_SRPOLICY_POL_ID)); @@ -506,6 +523,7 @@ void test_pcep_tlv_create_srpag_pol_name() struct pcep_object_tlv_srpag_pol_name *tlv = pcep_tlv_create_srpag_pol_name(pol_name, strlen(pol_name)); CU_ASSERT_PTR_NOT_NULL(tlv); + assert(tlv != NULL); pcep_encode_tlv(&tlv->header, versioning, tlv_buf); CU_ASSERT_EQUAL(tlv->header.type, @@ -559,6 +577,7 @@ void test_pcep_tlv_create_srpag_cp_pref() struct pcep_object_tlv_srpag_cp_pref *tlv = pcep_tlv_create_srpag_cp_pref(preference_default); CU_ASSERT_PTR_NOT_NULL(tlv); + assert(tlv != NULL); pcep_encode_tlv(&tlv->header, versioning, tlv_buf); CU_ASSERT_EQUAL(tlv->header.type, @@ -586,6 +605,7 @@ void test_pcep_tlv_create_lsp_error_code() pcep_tlv_create_lsp_error_code( PCEP_TLV_LSP_ERROR_CODE_RSVP_SIGNALING_ERROR); CU_ASSERT_PTR_NOT_NULL(tlv); + assert(tlv != NULL); pcep_encode_tlv(&tlv->header, versioning, tlv_buf); CU_ASSERT_EQUAL(tlv->header.type, PCEP_OBJ_TLV_TYPE_LSP_ERROR_CODE); @@ -612,6 +632,7 @@ void test_pcep_tlv_create_rsvp_ipv4_error_spec() tlv = pcep_tlv_create_rsvp_ipv4_error_spec(&error_node_ip, error_code, error_value); CU_ASSERT_PTR_NOT_NULL(tlv); + assert(tlv != NULL); pcep_encode_tlv(&tlv->header, versioning, tlv_buf); CU_ASSERT_EQUAL(tlv->header.type, PCEP_OBJ_TLV_TYPE_RSVP_ERROR_SPEC); @@ -635,6 +656,7 @@ void test_pcep_tlv_create_rsvp_ipv6_error_spec() tlv = pcep_tlv_create_rsvp_ipv6_error_spec(&error_node_ip, error_code, error_value); CU_ASSERT_PTR_NOT_NULL(tlv); + assert(tlv != NULL); pcep_encode_tlv(&tlv->header, versioning, tlv_buf); CU_ASSERT_EQUAL(tlv->header.type, PCEP_OBJ_TLV_TYPE_RSVP_ERROR_SPEC); @@ -651,6 +673,7 @@ void test_pcep_tlv_create_nopath_vector() struct pcep_object_tlv_vendor_info *tlv = pcep_tlv_create_vendor_info( enterprise_number, enterprise_specific_info); CU_ASSERT_PTR_NOT_NULL(tlv); + assert(tlv != NULL); pcep_encode_tlv(&tlv->header, versioning, tlv_buf); CU_ASSERT_EQUAL(tlv->header.type, PCEP_OBJ_TLV_TYPE_VENDOR_INFO); @@ -670,6 +693,7 @@ void test_pcep_tlv_create_arbitrary() struct pcep_object_tlv_arbitrary *tlv = pcep_tlv_create_tlv_arbitrary( data, data_length, tlv_id_unknown); CU_ASSERT_PTR_NOT_NULL(tlv); + assert(tlv != NULL); pcep_encode_tlv(&tlv->header, versioning, tlv_buf); CU_ASSERT_EQUAL(tlv->header.type, tlv_id_unknown); @@ -688,6 +712,7 @@ void test_pcep_tlv_create_arbitrary() reset_tlv_buffer(); tlv = pcep_tlv_create_tlv_arbitrary(data, 3, tlv_id_unknown); CU_ASSERT_PTR_NOT_NULL(tlv); + assert(tlv != NULL); pcep_encode_tlv(&tlv->header, versioning, tlv_buf); CU_ASSERT_EQUAL(tlv->header.type, tlv_id_unknown); CU_ASSERT_EQUAL(tlv->header.encoded_tlv_length, 3); diff --git a/pceplib/test/pcep_msg_tools_test.c b/pceplib/test/pcep_msg_tools_test.c index 787df2fd7a..5a7644b21a 100644 --- a/pceplib/test/pcep_msg_tools_test.c +++ b/pceplib/test/pcep_msg_tools_test.c @@ -25,6 +25,7 @@ #include "config.h" #endif +#include <assert.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> @@ -213,6 +214,7 @@ void test_pcep_msg_read_pcep_initiate() } double_linked_list *msg_list = pcep_msg_read(fd); CU_ASSERT_PTR_NOT_NULL(msg_list); + assert(msg_list != NULL); CU_ASSERT_EQUAL(msg_list->num_entries, 1); struct pcep_message *msg = (struct pcep_message *)msg_list->head->data; @@ -274,6 +276,7 @@ void test_pcep_msg_read_pcep_initiate() double_linked_list *ero_subobj_list = ((struct pcep_object_ro *)obj_hdr)->sub_objects; CU_ASSERT_PTR_NOT_NULL(ero_subobj_list); + assert(ero_subobj_list != NULL); CU_ASSERT_EQUAL(ero_subobj_list->num_entries, 2); double_linked_list_node *subobj_node = ero_subobj_list->head; struct pcep_object_ro_subobj *subobj_hdr = @@ -312,6 +315,7 @@ void test_pcep_msg_read_pcep_initiate2() } double_linked_list *msg_list = pcep_msg_read(fd); CU_ASSERT_PTR_NOT_NULL(msg_list); + assert(msg_list != NULL); CU_ASSERT_EQUAL(msg_list->num_entries, 1); struct pcep_message *msg = (struct pcep_message *)msg_list->head->data; @@ -367,6 +371,7 @@ void test_pcep_msg_read_pcep_initiate2() double_linked_list *ero_subobj_list = ((struct pcep_object_ro *)obj_hdr)->sub_objects; CU_ASSERT_PTR_NOT_NULL(ero_subobj_list); + assert(ero_subobj_list != NULL); CU_ASSERT_EQUAL(ero_subobj_list->num_entries, 0); double_linked_list_node *subobj_node = ero_subobj_list->head; CU_ASSERT_PTR_NULL(subobj_node); @@ -399,6 +404,7 @@ void test_pcep_msg_read_pcep_open() } double_linked_list *msg_list = pcep_msg_read(fd); CU_ASSERT_PTR_NOT_NULL(msg_list); + assert(msg_list != NULL); CU_ASSERT_EQUAL(msg_list->num_entries, 1); struct pcep_message *msg = (struct pcep_message *)msg_list->head->data; @@ -443,6 +449,7 @@ void test_pcep_msg_read_pcep_update() } double_linked_list *msg_list = pcep_msg_read(fd); CU_ASSERT_PTR_NOT_NULL(msg_list); + assert(msg_list != NULL); CU_ASSERT_EQUAL(msg_list->num_entries, 1); struct pcep_message *msg = (struct pcep_message *)msg_list->head->data; @@ -492,6 +499,7 @@ void test_pcep_msg_read_pcep_update() double_linked_list *ero_subobj_list = ((struct pcep_object_ro *)obj_hdr)->sub_objects; CU_ASSERT_PTR_NOT_NULL(ero_subobj_list); + assert(ero_subobj_list != NULL); CU_ASSERT_EQUAL(ero_subobj_list->num_entries, 0); double_linked_list_node *subobj_node = ero_subobj_list->head; CU_ASSERT_PTR_NULL(subobj_node); @@ -525,6 +533,7 @@ void test_pcep_msg_read_pcep_open_initiate() } double_linked_list *msg_list = pcep_msg_read(fd); CU_ASSERT_PTR_NOT_NULL(msg_list); + assert(msg_list != NULL); CU_ASSERT_EQUAL(msg_list->num_entries, 2); struct pcep_message *msg = (struct pcep_message *)msg_list->head->data; @@ -554,6 +563,7 @@ void test_pcep_msg_read_pcep_open_cisco_pce() } double_linked_list *msg_list = pcep_msg_read(fd); CU_ASSERT_PTR_NOT_NULL(msg_list); + assert(msg_list != NULL); CU_ASSERT_EQUAL(msg_list->num_entries, 1); struct pcep_message *msg = (struct pcep_message *)msg_list->head->data; @@ -573,6 +583,7 @@ void test_pcep_msg_read_pcep_open_cisco_pce() CU_ASSERT_EQUAL(open->open_sid, 0); CU_ASSERT_EQUAL(open->open_version, 1); CU_ASSERT_PTR_NOT_NULL(open->header.tlv_list); + assert(open->header.tlv_list != NULL); CU_ASSERT_EQUAL(open->header.tlv_list->num_entries, 2); /* Stateful PCE Capability TLV */ @@ -616,6 +627,7 @@ void test_pcep_msg_read_pcep_update_cisco_pce() } double_linked_list *msg_list = pcep_msg_read(fd); CU_ASSERT_PTR_NOT_NULL(msg_list); + assert(msg_list != NULL); CU_ASSERT_EQUAL(msg_list->num_entries, 1); struct pcep_message *msg = (struct pcep_message *)msg_list->head->data; @@ -631,6 +643,7 @@ void test_pcep_msg_read_pcep_update_cisco_pce() CU_ASSERT_EQUAL(srp->header.object_type, PCEP_OBJ_TYPE_SRP); CU_ASSERT_EQUAL(srp->header.encoded_object_length, 20); CU_ASSERT_PTR_NOT_NULL(srp->header.tlv_list); + assert(srp->header.tlv_list != NULL); CU_ASSERT_EQUAL(srp->header.tlv_list->num_entries, 1); CU_ASSERT_EQUAL(srp->srp_id_number, 1); CU_ASSERT_FALSE(srp->flag_lsp_remove); @@ -651,6 +664,7 @@ void test_pcep_msg_read_pcep_update_cisco_pce() CU_ASSERT_EQUAL(lsp->header.object_type, PCEP_OBJ_TYPE_LSP); CU_ASSERT_EQUAL(lsp->header.encoded_object_length, 24); CU_ASSERT_PTR_NOT_NULL(lsp->header.tlv_list); + assert(lsp->header.tlv_list != NULL); CU_ASSERT_EQUAL(lsp->header.tlv_list->num_entries, 1); CU_ASSERT_EQUAL(lsp->plsp_id, 524303); CU_ASSERT_EQUAL(lsp->operational_status, PCEP_LSP_OPERATIONAL_DOWN); @@ -677,6 +691,7 @@ void test_pcep_msg_read_pcep_update_cisco_pce() CU_ASSERT_EQUAL(ero->header.encoded_object_length, 40); CU_ASSERT_PTR_NULL(ero->header.tlv_list); CU_ASSERT_PTR_NOT_NULL(ero->sub_objects); + assert(ero->sub_objects != NULL); CU_ASSERT_EQUAL(ero->sub_objects->num_entries, 3); /* ERO Subobjects */ @@ -757,6 +772,7 @@ void test_pcep_msg_read_pcep_report_cisco_pcc() } double_linked_list *msg_list = pcep_msg_read(fd); CU_ASSERT_PTR_NOT_NULL(msg_list); + assert(msg_list != NULL); CU_ASSERT_EQUAL(msg_list->num_entries, 1); struct pcep_message *msg = (struct pcep_message *)msg_list->head->data; @@ -772,6 +788,7 @@ void test_pcep_msg_read_pcep_report_cisco_pcc() CU_ASSERT_EQUAL(srp->header.object_type, PCEP_OBJ_TYPE_SRP); CU_ASSERT_EQUAL(srp->header.encoded_object_length, 20); CU_ASSERT_PTR_NOT_NULL(srp->header.tlv_list); + assert(srp->header.tlv_list != NULL); CU_ASSERT_EQUAL(srp->header.tlv_list->num_entries, 1); CU_ASSERT_EQUAL(srp->srp_id_number, 0); CU_ASSERT_FALSE(srp->flag_lsp_remove); @@ -838,6 +855,7 @@ void test_pcep_msg_read_pcep_report_cisco_pcc() CU_ASSERT_EQUAL(ero->header.encoded_object_length, 4); CU_ASSERT_PTR_NULL(ero->header.tlv_list); CU_ASSERT_PTR_NOT_NULL(ero->sub_objects); + assert(ero->sub_objects != NULL); CU_ASSERT_EQUAL(ero->sub_objects->num_entries, 0); /* LSPA object */ @@ -916,6 +934,7 @@ void test_pcep_msg_read_pcep_initiate_cisco_pcc() } double_linked_list *msg_list = pcep_msg_read(fd); CU_ASSERT_PTR_NOT_NULL(msg_list); + assert(msg_list != NULL); CU_ASSERT_EQUAL(msg_list->num_entries, 1); struct pcep_message *msg = (struct pcep_message *)msg_list->head->data; @@ -931,6 +950,7 @@ void test_pcep_msg_read_pcep_initiate_cisco_pcc() CU_ASSERT_EQUAL(srp->header.object_type, PCEP_OBJ_TYPE_SRP); CU_ASSERT_EQUAL(srp->header.encoded_object_length, 20); CU_ASSERT_PTR_NOT_NULL(srp->header.tlv_list); + assert(srp->header.tlv_list != NULL); CU_ASSERT_EQUAL(srp->header.tlv_list->num_entries, 1); CU_ASSERT_EQUAL(srp->srp_id_number, 1); CU_ASSERT_FALSE(srp->flag_lsp_remove); @@ -942,6 +962,7 @@ void test_pcep_msg_read_pcep_initiate_cisco_pcc() CU_ASSERT_EQUAL(lsp->header.object_type, PCEP_OBJ_TYPE_LSP); CU_ASSERT_EQUAL(lsp->header.encoded_object_length, 48); CU_ASSERT_PTR_NOT_NULL(lsp->header.tlv_list); + assert(lsp->header.tlv_list != NULL); CU_ASSERT_EQUAL(lsp->header.tlv_list->num_entries, 2); CU_ASSERT_EQUAL(lsp->plsp_id, 0); CU_ASSERT_EQUAL(lsp->operational_status, PCEP_LSP_OPERATIONAL_DOWN); @@ -988,7 +1009,9 @@ void test_pcep_msg_read_pcep_initiate_cisco_pcc() PCEP_OBJ_TYPE_SWITCH_LAYER); CU_ASSERT_EQUAL(switch_layer->header.encoded_object_length, 8); CU_ASSERT_PTR_NULL(switch_layer->header.tlv_list); + assert(switch_layer->header.tlv_list == NULL); CU_ASSERT_PTR_NOT_NULL(switch_layer->switch_layer_rows); + assert(switch_layer->switch_layer_rows != NULL); CU_ASSERT_EQUAL(switch_layer->switch_layer_rows->num_entries, 1); struct pcep_object_switch_layer_row *switch_layer_row = (struct pcep_object_switch_layer_row *) diff --git a/pceplib/test/pcep_pcc_api_test.c b/pceplib/test/pcep_pcc_api_test.c index 4adbb6374e..9106671873 100644 --- a/pceplib/test/pcep_pcc_api_test.c +++ b/pceplib/test/pcep_pcc_api_test.c @@ -25,6 +25,7 @@ #include "config.h" #endif +#include <assert.h> #include <netdb.h> // gethostbyname #include <pthread.h> #include <stdlib.h> @@ -108,6 +109,8 @@ void test_connect_pce() CU_ASSERT_PTR_NOT_NULL(encoded_msg); struct pcep_message *open_msg = pcep_decode_message(encoded_msg); CU_ASSERT_PTR_NOT_NULL(open_msg); + assert(open_msg != NULL); + assert(open_msg->msg_header != NULL); CU_ASSERT_EQUAL(open_msg->msg_header->type, PCEP_TYPE_OPEN); pcep_msg_free_message(open_msg); @@ -134,6 +137,7 @@ void test_connect_pce_ipv6() pcep_session *session = connect_pce_ipv6(config, &dest_address); CU_ASSERT_PTR_NOT_NULL(session); + assert(session != NULL); CU_ASSERT_TRUE(session->socket_comm_session->is_ipv6); CU_ASSERT_EQUAL(mock_info->sent_message_list->num_entries, 1); /* What gets saved in the mock is the msg byte buffer. The msg struct @@ -144,6 +148,7 @@ void test_connect_pce_ipv6() CU_ASSERT_PTR_NOT_NULL(encoded_msg); struct pcep_message *open_msg = pcep_decode_message(encoded_msg); CU_ASSERT_PTR_NOT_NULL(open_msg); + assert(open_msg != NULL); CU_ASSERT_EQUAL(open_msg->msg_header->type, PCEP_TYPE_OPEN); pcep_msg_free_message(open_msg); @@ -175,6 +180,8 @@ void test_connect_pce_with_src_ip() CU_ASSERT_PTR_NOT_NULL(encoded_msg); struct pcep_message *open_msg = pcep_decode_message(encoded_msg); CU_ASSERT_PTR_NOT_NULL(open_msg); + assert(open_msg != NULL); + assert(open_msg->msg_header != NULL); CU_ASSERT_EQUAL(open_msg->msg_header->type, PCEP_TYPE_OPEN); pcep_msg_free_message(open_msg); @@ -207,6 +214,7 @@ void test_disconnect_pce() CU_ASSERT_PTR_NOT_NULL(encoded_msg); struct pcep_message *msg = pcep_decode_message(encoded_msg); CU_ASSERT_PTR_NOT_NULL(msg); + assert(msg != NULL); CU_ASSERT_EQUAL(msg->msg_header->type, PCEP_TYPE_OPEN); pcep_msg_free_message(msg); pceplib_free(PCEPLIB_MESSAGES, encoded_msg); @@ -216,6 +224,8 @@ void test_disconnect_pce() CU_ASSERT_PTR_NOT_NULL(encoded_msg); msg = pcep_decode_message(encoded_msg); CU_ASSERT_PTR_NOT_NULL(msg); + assert(msg != NULL); + assert(msg->msg_header != NULL); CU_ASSERT_EQUAL(msg->msg_header->type, PCEP_TYPE_CLOSE); pcep_msg_free_message(msg); diff --git a/pceplib/test/pcep_session_logic_loop_test.c b/pceplib/test/pcep_session_logic_loop_test.c index d68b200549..4dfed7321f 100644 --- a/pceplib/test/pcep_session_logic_loop_test.c +++ b/pceplib/test/pcep_session_logic_loop_test.c @@ -25,6 +25,7 @@ #include "config.h" #endif +#include <assert.h> #include <pthread.h> #include <stdlib.h> #include <string.h> @@ -161,6 +162,7 @@ void test_session_logic_msg_ready_handler() pcep_session_event *socket_event = (pcep_session_event *)queue_dequeue( session_logic_handle_->session_event_queue); CU_ASSERT_PTR_NOT_NULL(socket_event); + assert(socket_event != NULL); CU_ASSERT_TRUE(socket_event->socket_closed); pceplib_free(PCEPLIB_INFRA, socket_event); @@ -179,6 +181,7 @@ void test_session_logic_msg_ready_handler() socket_event = (pcep_session_event *)queue_dequeue( session_logic_handle_->session_event_queue); CU_ASSERT_PTR_NOT_NULL(socket_event); + assert(socket_event != NULL); CU_ASSERT_FALSE(socket_event->socket_closed); CU_ASSERT_PTR_EQUAL(socket_event->session, &session); CU_ASSERT_EQUAL(socket_event->expired_timer_id, TIMER_ID_NOT_SET); @@ -206,6 +209,7 @@ void test_session_logic_conn_except_notifier() pcep_session_event *socket_event = (pcep_session_event *)queue_dequeue( session_logic_handle_->session_event_queue); CU_ASSERT_PTR_NOT_NULL_FATAL(socket_event); + assert(socket_event != NULL); CU_ASSERT_TRUE(socket_event->socket_closed); CU_ASSERT_PTR_EQUAL(socket_event->session, &session); CU_ASSERT_EQUAL(socket_event->expired_timer_id, TIMER_ID_NOT_SET); @@ -230,6 +234,7 @@ void test_session_logic_timer_expire_handler() pcep_session_event *socket_event = (pcep_session_event *)queue_dequeue( session_logic_handle_->session_event_queue); CU_ASSERT_PTR_NOT_NULL_FATAL(socket_event); + assert(socket_event != NULL); CU_ASSERT_FALSE(socket_event->socket_closed); CU_ASSERT_PTR_EQUAL(socket_event->session, &session); CU_ASSERT_EQUAL(socket_event->expired_timer_id, 42); diff --git a/pceplib/test/pcep_session_logic_states_test.c b/pceplib/test/pcep_session_logic_states_test.c index 24741fa345..e967d74e48 100644 --- a/pceplib/test/pcep_session_logic_states_test.c +++ b/pceplib/test/pcep_session_logic_states_test.c @@ -25,6 +25,7 @@ #include "config.h" #endif +#include <assert.h> #include <stdlib.h> #include <string.h> @@ -394,6 +395,7 @@ void test_handle_socket_comm_event_open() CU_ASSERT_PTR_NOT_NULL(encoded_msg); struct pcep_message *msg = pcep_decode_message(encoded_msg); CU_ASSERT_PTR_NOT_NULL(msg); + assert(msg != NULL); CU_ASSERT_EQUAL(PCEP_TYPE_ERROR, msg->msg_header->type); /* Verify the error object */ CU_ASSERT_EQUAL(1, msg->obj_list->num_entries); @@ -456,6 +458,7 @@ void test_handle_socket_comm_event_open_error() uint8_t *encoded_msg = dll_delete_first_node(mock_info->sent_message_list); CU_ASSERT_PTR_NOT_NULL(encoded_msg); + assert(encoded_msg != NULL); struct pcep_message *open_msg_corrected = pcep_decode_message(encoded_msg); CU_ASSERT_PTR_NOT_NULL(open_msg_corrected); @@ -463,6 +466,7 @@ void test_handle_socket_comm_event_open_error() (struct pcep_object_open *)pcep_obj_get( open_msg_corrected->obj_list, PCEP_OBJ_CLASS_OPEN); CU_ASSERT_PTR_NOT_NULL(open_object_corrected); + assert(open_object_corrected != NULL); /* Verify the Keep-alive and Dead timers have been negotiated */ CU_ASSERT_EQUAL(error_open_object->open_keepalive, open_object_corrected->open_keepalive); @@ -596,6 +600,7 @@ void test_handle_socket_comm_event_pcreq() CU_ASSERT_PTR_NOT_NULL(encoded_msg); struct pcep_message *error_msg = pcep_decode_message(encoded_msg); CU_ASSERT_PTR_NOT_NULL(error_msg); + assert(error_msg != NULL); CU_ASSERT_EQUAL(PCEP_TYPE_ERROR, error_msg->msg_header->type); /* Verify the error object */ CU_ASSERT_EQUAL(1, error_msg->obj_list->num_entries); @@ -627,6 +632,7 @@ void test_handle_socket_comm_event_report() CU_ASSERT_PTR_NOT_NULL(encoded_msg); struct pcep_message *error_msg = pcep_decode_message(encoded_msg); CU_ASSERT_PTR_NOT_NULL(error_msg); + assert(error_msg != NULL); CU_ASSERT_EQUAL(PCEP_TYPE_ERROR, error_msg->msg_header->type); /* Verify the error object */ CU_ASSERT_EQUAL(1, error_msg->obj_list->num_entries); @@ -744,6 +750,7 @@ void test_handle_socket_comm_event_unknown_msg() CU_ASSERT_PTR_NOT_NULL(encoded_msg); struct pcep_message *msg = pcep_decode_message(encoded_msg); CU_ASSERT_PTR_NOT_NULL(msg); + assert(msg != NULL); CU_ASSERT_EQUAL(PCEP_TYPE_ERROR, msg->msg_header->type); /* Verify the error object */ CU_ASSERT_EQUAL(1, msg->obj_list->num_entries); @@ -776,6 +783,7 @@ void test_handle_socket_comm_event_unknown_msg() /* Verify the error message */ encoded_msg = dll_delete_first_node(mock_info->sent_message_list); CU_ASSERT_PTR_NOT_NULL(encoded_msg); + assert(encoded_msg != NULL); msg = pcep_decode_message(encoded_msg); CU_ASSERT_PTR_NOT_NULL(msg); CU_ASSERT_EQUAL(PCEP_TYPE_ERROR, msg->msg_header->type); @@ -793,8 +801,10 @@ void test_handle_socket_comm_event_unknown_msg() /* Verify the Close message */ encoded_msg = dll_delete_first_node(mock_info->sent_message_list); CU_ASSERT_PTR_NOT_NULL(encoded_msg); + assert(encoded_msg != NULL); msg = pcep_decode_message(encoded_msg); CU_ASSERT_PTR_NOT_NULL(msg); + assert(msg != NULL); CU_ASSERT_EQUAL(PCEP_TYPE_CLOSE, msg->msg_header->type); /* Verify the error object */ CU_ASSERT_EQUAL(1, msg->obj_list->num_entries); diff --git a/pceplib/test/pcep_session_logic_test.c b/pceplib/test/pcep_session_logic_test.c index 503e77c20e..8339a7a280 100644 --- a/pceplib/test/pcep_session_logic_test.c +++ b/pceplib/test/pcep_session_logic_test.c @@ -25,6 +25,7 @@ #include "config.h" #endif +#include <assert.h> #include <stdlib.h> #include <string.h> #include <time.h> @@ -134,6 +135,7 @@ void test_create_destroy_pcep_session() CU_ASSERT_PTR_NOT_NULL(encoded_msg); struct pcep_message *open_msg = pcep_decode_message(encoded_msg); CU_ASSERT_PTR_NOT_NULL(open_msg); + assert(open_msg != NULL); /* Should be an Open, with no TLVs: length = 12 */ CU_ASSERT_EQUAL(open_msg->msg_header->type, PCEP_TYPE_OPEN); CU_ASSERT_EQUAL(open_msg->encoded_message_length, 12); @@ -166,6 +168,7 @@ void test_create_destroy_pcep_session_ipv6() mock_info->send_message_save_message = true; session = create_pcep_session_ipv6(&config, &pce_ip); CU_ASSERT_PTR_NOT_NULL(session); + assert(session != NULL); CU_ASSERT_TRUE(session->socket_comm_session->is_ipv6); /* What gets saved in the mock is the msg byte buffer. The msg struct * was deleted when it was sent. Instead of inspecting the msg byte @@ -175,6 +178,7 @@ void test_create_destroy_pcep_session_ipv6() CU_ASSERT_PTR_NOT_NULL(encoded_msg); struct pcep_message *open_msg = pcep_decode_message(encoded_msg); CU_ASSERT_PTR_NOT_NULL(open_msg); + assert(open_msg != NULL); /* Should be an Open, with no TLVs: length = 12 */ CU_ASSERT_EQUAL(open_msg->msg_header->type, PCEP_TYPE_OPEN); CU_ASSERT_EQUAL(open_msg->encoded_message_length, 12); @@ -215,14 +219,17 @@ void test_create_pcep_session_open_tlvs() CU_ASSERT_PTR_NOT_NULL(encoded_msg); open_msg = pcep_decode_message(encoded_msg); CU_ASSERT_PTR_NOT_NULL(open_msg); + assert(open_msg != NULL); /* Get and verify the Open Message objects */ CU_ASSERT_PTR_NOT_NULL(open_msg->obj_list); + assert(open_msg->obj_list != NULL); CU_ASSERT_TRUE(open_msg->obj_list->num_entries > 0); /* Get and verify the Open object */ open_obj = pcep_obj_get(open_msg->obj_list, PCEP_OBJ_CLASS_OPEN); CU_ASSERT_PTR_NOT_NULL(open_obj); /* Get and verify the Open object TLVs */ CU_ASSERT_PTR_NOT_NULL(open_obj->tlv_list); + assert(open_obj->tlv_list != NULL); CU_ASSERT_EQUAL(open_obj->tlv_list->num_entries, 1); CU_ASSERT_EQUAL(((struct pcep_object_tlv_header *) open_obj->tlv_list->head->data) @@ -250,12 +257,14 @@ void test_create_pcep_session_open_tlvs() CU_ASSERT_PTR_NOT_NULL(open_msg); /* Get and verify the Open Message objects */ CU_ASSERT_PTR_NOT_NULL(open_msg->obj_list); + assert(open_msg != NULL); CU_ASSERT_TRUE(open_msg->obj_list->num_entries > 0); /* Get and verify the Open object */ open_obj = pcep_obj_get(open_msg->obj_list, PCEP_OBJ_CLASS_OPEN); CU_ASSERT_PTR_NOT_NULL(open_obj); /* Get and verify the Open object TLVs */ CU_ASSERT_PTR_NOT_NULL(open_obj->tlv_list); + assert(open_obj->tlv_list != NULL); CU_ASSERT_EQUAL(open_obj->tlv_list->num_entries, 2); CU_ASSERT_EQUAL(((struct pcep_object_tlv_header *) open_obj->tlv_list->head->data) @@ -287,14 +296,17 @@ void test_create_pcep_session_open_tlvs() CU_ASSERT_PTR_NOT_NULL(encoded_msg); open_msg = pcep_decode_message(encoded_msg); CU_ASSERT_PTR_NOT_NULL(open_msg); + assert(open_msg != NULL); /* Get and verify the Open Message objects */ CU_ASSERT_PTR_NOT_NULL(open_msg->obj_list); + assert(open_msg->obj_list != NULL); CU_ASSERT_TRUE(open_msg->obj_list->num_entries > 0); /* Get and verify the Open object */ open_obj = pcep_obj_get(open_msg->obj_list, PCEP_OBJ_CLASS_OPEN); CU_ASSERT_PTR_NOT_NULL(open_obj); /* Get and verify the Open object TLVs */ CU_ASSERT_PTR_NOT_NULL(open_obj->tlv_list); + assert(open_obj->tlv_list != NULL); CU_ASSERT_EQUAL(open_obj->tlv_list->num_entries, 3); double_linked_list_node *tlv_node = open_obj->tlv_list->head; CU_ASSERT_EQUAL(((struct pcep_object_tlv_header *)tlv_node->data)->type, @@ -324,16 +336,21 @@ void test_create_pcep_session_open_tlvs() /* Get and verify the Open Message */ encoded_msg = dll_delete_first_node(mock_info->sent_message_list); CU_ASSERT_PTR_NOT_NULL(encoded_msg); + assert(encoded_msg != NULL); open_msg = pcep_decode_message(encoded_msg); CU_ASSERT_PTR_NOT_NULL(open_msg); + assert(open_msg != NULL); /* Get and verify the Open Message objects */ CU_ASSERT_PTR_NOT_NULL(open_msg->obj_list); + assert(open_msg->obj_list != NULL); CU_ASSERT_TRUE(open_msg->obj_list->num_entries > 0); /* Get and verify the Open object */ open_obj = pcep_obj_get(open_msg->obj_list, PCEP_OBJ_CLASS_OPEN); CU_ASSERT_PTR_NOT_NULL(open_obj); + assert(open_obj != NULL); /* Get and verify the Open object TLVs */ CU_ASSERT_PTR_NOT_NULL(open_obj->tlv_list); + assert(open_obj->tlv_list != NULL); CU_ASSERT_EQUAL(open_obj->tlv_list->num_entries, 4); tlv_node = open_obj->tlv_list->head; CU_ASSERT_EQUAL(((struct pcep_object_tlv_header *)tlv_node->data)->type, diff --git a/pceplib/test/pcep_socket_comm_test.c b/pceplib/test/pcep_socket_comm_test.c index 0ab38bf96e..116531f12d 100644 --- a/pceplib/test/pcep_socket_comm_test.c +++ b/pceplib/test/pcep_socket_comm_test.c @@ -25,6 +25,7 @@ #include "config.h" #endif +#include <assert.h> #include <netinet/in.h> #include <CUnit/CUnit.h> @@ -112,6 +113,7 @@ void test_pcep_socket_comm_initialize() test_connection_except_notifier, &test_host_ip, test_port, connect_timeout_millis, NULL, false, NULL); CU_ASSERT_PTR_NOT_NULL(test_session); + assert(test_session != NULL); CU_ASSERT_FALSE(test_session->is_ipv6); } @@ -123,6 +125,7 @@ void test_pcep_socket_comm_initialize_ipv6() test_connection_except_notifier, &test_host_ipv6, test_port, connect_timeout_millis, NULL, false, NULL); CU_ASSERT_PTR_NOT_NULL(test_session); + assert(test_session != NULL); CU_ASSERT_TRUE(test_session->is_ipv6); } @@ -135,6 +138,7 @@ void test_pcep_socket_comm_initialize_with_src() test_connection_except_notifier, NULL, 0, &test_host_ip, test_port, connect_timeout_millis, NULL, false, NULL); CU_ASSERT_PTR_NOT_NULL(test_session); + assert(test_session != NULL); CU_ASSERT_EQUAL( test_session->src_sock_addr.src_sock_addr_ipv4.sin_addr.s_addr, INADDR_ANY); @@ -147,6 +151,7 @@ void test_pcep_socket_comm_initialize_with_src() &test_host_ip, test_port, connect_timeout_millis, NULL, false, NULL); CU_ASSERT_PTR_NOT_NULL(test_session); + assert(test_session != NULL); CU_ASSERT_EQUAL( test_session->src_sock_addr.src_sock_addr_ipv4.sin_addr.s_addr, test_src_ip.s_addr); @@ -164,6 +169,7 @@ void test_pcep_socket_comm_initialize_with_src_ipv6() test_connection_except_notifier, NULL, 0, &test_host_ipv6, test_port, connect_timeout_millis, NULL, false, NULL); CU_ASSERT_PTR_NOT_NULL(test_session); + assert(test_session != NULL); CU_ASSERT_EQUAL(memcmp(&test_session->src_sock_addr.src_sock_addr_ipv6 .sin6_addr, &in6addr_any, sizeof(struct in6_addr)), @@ -177,6 +183,7 @@ void test_pcep_socket_comm_initialize_with_src_ipv6() &test_host_ipv6, test_port, connect_timeout_millis, NULL, false, NULL); CU_ASSERT_PTR_NOT_NULL(test_session); + assert(test_session != NULL); CU_ASSERT_EQUAL(memcmp(&test_session->src_sock_addr.src_sock_addr_ipv6 .sin6_addr, &test_src_ipv6, sizeof(struct in6_addr)), @@ -198,6 +205,7 @@ void test_pcep_socket_comm_initialize_tcpmd5() test_connection_except_notifier, &test_host_ip, test_port, 1, tcp_md5_str, true, NULL); CU_ASSERT_PTR_NOT_NULL(test_session); + assert(test_session != NULL); CU_ASSERT_EQUAL(0, strncmp(tcp_md5_str, test_session->tcp_authentication_str, tcp_md5_strlen)); @@ -213,6 +221,7 @@ void test_pcep_socket_comm_initialize_tcpmd5() test_connection_except_notifier, &test_host_ip, test_port, 1, tcp_md5_str, false, NULL); CU_ASSERT_PTR_NOT_NULL(test_session); + assert(test_session != NULL); CU_ASSERT_EQUAL(0, strncmp(tcp_md5_str, test_session->tcp_authentication_str, tcp_md5_strlen)); @@ -231,6 +240,7 @@ void test_pcep_socket_comm_initialize_ipv6_tcpmd5() test_connection_except_notifier, &test_host_ipv6, test_port, 1, tcp_md5_str, true, NULL); CU_ASSERT_PTR_NOT_NULL(test_session); + assert(test_session != NULL); CU_ASSERT_EQUAL(0, strncmp(tcp_md5_str, test_session->tcp_authentication_str, tcp_md5_strlen)); @@ -246,6 +256,7 @@ void test_pcep_socket_comm_initialize_ipv6_tcpmd5() test_connection_except_notifier, &test_host_ipv6, test_port, 1, tcp_md5_str, false, NULL); CU_ASSERT_PTR_NOT_NULL(test_session); + assert(test_session != NULL); CU_ASSERT_EQUAL(0, strncmp(tcp_md5_str, test_session->tcp_authentication_str, tcp_md5_strlen)); @@ -300,7 +311,9 @@ void test_pcep_socket_comm_session_destroy() test_connection_except_notifier, &test_host_ip, test_port, connect_timeout_millis, NULL, false, NULL); CU_ASSERT_PTR_NOT_NULL(test_session); + assert(test_session != NULL); CU_ASSERT_PTR_NOT_NULL(socket_comm_handle_); + assert(socket_comm_handle_ != NULL); CU_ASSERT_EQUAL(socket_comm_handle_->num_active_sessions, 1); CU_ASSERT_TRUE(socket_comm_session_teardown(test_session)); diff --git a/pceplib/test/pcep_utils_counters_test.c b/pceplib/test/pcep_utils_counters_test.c index bcdce36188..b31715f7ac 100644 --- a/pceplib/test/pcep_utils_counters_test.c +++ b/pceplib/test/pcep_utils_counters_test.c @@ -25,6 +25,7 @@ #include "config.h" #endif +#include <assert.h> #include <stdlib.h> #include <CUnit/CUnit.h> @@ -47,6 +48,7 @@ void test_create_counters_group() group = create_counters_group(group_name, num_subgroups); CU_ASSERT_PTR_NOT_NULL(group); + assert(group != NULL); CU_ASSERT_EQUAL(group->num_subgroups, 0); CU_ASSERT_EQUAL(group->max_subgroups, num_subgroups); @@ -76,6 +78,7 @@ void test_create_counters_subgroup() subgroup = create_counters_subgroup(subgroup_name, subgroup_id, num_counters); CU_ASSERT_PTR_NOT_NULL(subgroup); + assert(subgroup != NULL); CU_ASSERT_EQUAL(subgroup->subgroup_id, subgroup_id); CU_ASSERT_EQUAL(subgroup->num_counters, 0); diff --git a/pceplib/test/pcep_utils_double_linked_list_test.c b/pceplib/test/pcep_utils_double_linked_list_test.c index 4eb85816b9..181cbeca37 100644 --- a/pceplib/test/pcep_utils_double_linked_list_test.c +++ b/pceplib/test/pcep_utils_double_linked_list_test.c @@ -25,6 +25,7 @@ #include "config.h" #endif +#include <assert.h> #include <CUnit/CUnit.h> #include "pcep_utils_double_linked_list.h" @@ -72,16 +73,22 @@ void test_dll_prepend_data() CU_ASSERT_EQUAL(handle->num_entries, 3); double_linked_list_node *node = handle->head; + CU_ASSERT_PTR_NOT_NULL(node); + assert(node != NULL); CU_ASSERT_PTR_EQUAL(node->data, &data1); CU_ASSERT_PTR_NULL(node->prev_node); CU_ASSERT_PTR_NOT_NULL(node->next_node); node = node->next_node; + CU_ASSERT_PTR_NOT_NULL(node); + assert(node != NULL); CU_ASSERT_PTR_EQUAL(node->data, &data2); CU_ASSERT_PTR_NOT_NULL(node->prev_node); CU_ASSERT_PTR_NOT_NULL(node->next_node); node = node->next_node; + CU_ASSERT_PTR_NOT_NULL(node); + assert(node != NULL); CU_ASSERT_PTR_EQUAL(node->data, &data3); CU_ASSERT_PTR_NOT_NULL(node->prev_node); CU_ASSERT_PTR_NULL(node->next_node); @@ -112,11 +119,15 @@ void test_dll_append_data() CU_ASSERT_PTR_NOT_NULL(node->next_node); node = node->next_node; + CU_ASSERT_PTR_NOT_NULL(node); + assert(node != NULL); CU_ASSERT_PTR_EQUAL(node->data, &data2); CU_ASSERT_PTR_NOT_NULL(node->prev_node); CU_ASSERT_PTR_NOT_NULL(node->next_node); node = node->next_node; + CU_ASSERT_PTR_NOT_NULL(node); + assert(node != NULL); CU_ASSERT_PTR_EQUAL(node->data, &data3); CU_ASSERT_PTR_NOT_NULL(node->prev_node); CU_ASSERT_PTR_NULL(node->next_node); @@ -278,8 +289,11 @@ void test_dll_delete_node() node2 = dll_append(handle, &data2); node3 = dll_append(handle, &data3); CU_ASSERT_PTR_NOT_NULL(node1); + assert(node1 != NULL); CU_ASSERT_PTR_NOT_NULL(node2); + assert(node2 != NULL); CU_ASSERT_PTR_NOT_NULL(node3); + assert(node3 != NULL); CU_ASSERT_EQUAL(handle->num_entries, 3); /* Delete the middle entry */ diff --git a/pceplib/test/pcep_utils_ordered_list_test.c b/pceplib/test/pcep_utils_ordered_list_test.c index d20f5e68af..12ac456e23 100644 --- a/pceplib/test/pcep_utils_ordered_list_test.c +++ b/pceplib/test/pcep_utils_ordered_list_test.c @@ -25,6 +25,7 @@ #include "config.h" #endif +#include <assert.h> #include <CUnit/CUnit.h> #include "pcep_utils_ordered_list.h" @@ -55,6 +56,7 @@ void test_empty_list() ordered_list_initialize(node_data_compare); CU_ASSERT_PTR_NOT_NULL(handle); + assert(handle != NULL); CU_ASSERT_PTR_NULL(handle->head); CU_ASSERT_PTR_NOT_NULL(handle->compare_function); CU_ASSERT_EQUAL(handle->num_entries, 0); @@ -134,14 +136,17 @@ void test_find() ordered_list_node *node = ordered_list_find(handle, &data1); CU_ASSERT_PTR_NOT_NULL(node); + assert(node != NULL); CU_ASSERT_PTR_EQUAL(node->data, &data1); node = ordered_list_find(handle, &data2); CU_ASSERT_PTR_NOT_NULL(node); + assert(node != NULL); CU_ASSERT_PTR_EQUAL(node->data, &data2); node = ordered_list_find(handle, &data3); CU_ASSERT_PTR_NOT_NULL(node); + assert(node != NULL); CU_ASSERT_PTR_EQUAL(node->data, &data3); node = ordered_list_find(handle, &data_not_inList); diff --git a/pceplib/test/pcep_utils_queue_test.c b/pceplib/test/pcep_utils_queue_test.c index 061dfbf37b..6e62c75636 100644 --- a/pceplib/test/pcep_utils_queue_test.c +++ b/pceplib/test/pcep_utils_queue_test.c @@ -25,6 +25,7 @@ #include "config.h" #endif +#include <assert.h> #include <CUnit/CUnit.h> #include "pcep_utils_queue.h" @@ -41,6 +42,7 @@ void test_empty_queue() queue_handle *handle = queue_initialize(); CU_ASSERT_PTR_NOT_NULL(handle); + assert(handle != NULL); CU_ASSERT_PTR_NULL(handle->head); CU_ASSERT_EQUAL(handle->num_entries, 0); diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index d2f7dad820..548c866e4d 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -7213,7 +7213,8 @@ DEFUN (no_ip_pim_rp_keep_alive, char rp_ka_timer[5]; char rp_ka_timer_xpath[XPATH_MAXLEN]; - snprintf(rp_ka_timer, sizeof(rp_ka_timer), "%d", PIM_KEEPALIVE_PERIOD); + snprintf(rp_ka_timer, sizeof(rp_ka_timer), "%d", + PIM_RP_KEEPALIVE_PERIOD); vrfname = pim_cli_get_vrf_name(vty); if (vrfname == NULL) @@ -7985,8 +7986,8 @@ DEFUN (interface_no_ip_igmp, snprintf(pim_if_xpath, sizeof(pim_if_xpath), "%s/frr-pim:pim", VTY_CURR_XPATH); - pim_enable_dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/pim-enable", pim_if_xpath); + pim_enable_dnode = yang_dnode_getf(vty->candidate_config->dnode, + "%s/pim-enable", pim_if_xpath); if (!pim_enable_dnode) { nb_cli_enqueue_change(vty, pim_if_xpath, NB_OP_DESTROY, NULL); nb_cli_enqueue_change(vty, ".", NB_OP_DESTROY, NULL); @@ -8080,9 +8081,9 @@ DEFUN (interface_ip_igmp_query_interval, { const struct lyd_node *pim_enable_dnode; - pim_enable_dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/frr-pim:pim/pim-enable", - VTY_CURR_XPATH); + pim_enable_dnode = + yang_dnode_getf(vty->candidate_config->dnode, + "%s/frr-pim:pim/pim-enable", VTY_CURR_XPATH); if (!pim_enable_dnode) { nb_cli_enqueue_change(vty, "./igmp-enable", NB_OP_MODIFY, "true"); @@ -8156,9 +8157,9 @@ DEFUN (interface_ip_igmp_query_max_response_time, { const struct lyd_node *pim_enable_dnode; - pim_enable_dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/frr-pim:pim/pim-enable", - VTY_CURR_XPATH); + pim_enable_dnode = + yang_dnode_getf(vty->candidate_config->dnode, + "%s/frr-pim:pim/pim-enable", VTY_CURR_XPATH); if (!pim_enable_dnode) { nb_cli_enqueue_change(vty, "./igmp-enable", NB_OP_MODIFY, @@ -8205,9 +8206,9 @@ DEFUN_HIDDEN (interface_ip_igmp_query_max_response_time_dsec, { const struct lyd_node *pim_enable_dnode; - pim_enable_dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/frr-pim:pim/pim-enable", - VTY_CURR_XPATH); + pim_enable_dnode = + yang_dnode_getf(vty->candidate_config->dnode, + "%s/frr-pim:pim/pim-enable", VTY_CURR_XPATH); if (!pim_enable_dnode) { nb_cli_enqueue_change(vty, "./igmp-enable", NB_OP_MODIFY, "true"); @@ -8253,9 +8254,9 @@ DEFUN (interface_ip_igmp_last_member_query_count, { const struct lyd_node *pim_enable_dnode; - pim_enable_dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/frr-pim:pim/pim-enable", - VTY_CURR_XPATH); + pim_enable_dnode = + yang_dnode_getf(vty->candidate_config->dnode, + "%s/frr-pim:pim/pim-enable", VTY_CURR_XPATH); if (!pim_enable_dnode) { nb_cli_enqueue_change(vty, "./igmp-enable", NB_OP_MODIFY, "true"); @@ -8300,9 +8301,9 @@ DEFUN (interface_ip_igmp_last_member_query_interval, { const struct lyd_node *pim_enable_dnode; - pim_enable_dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/frr-pim:pim/pim-enable", - VTY_CURR_XPATH); + pim_enable_dnode = + yang_dnode_getf(vty->candidate_config->dnode, + "%s/frr-pim:pim/pim-enable", VTY_CURR_XPATH); if (!pim_enable_dnode) { nb_cli_enqueue_change(vty, "./igmp-enable", NB_OP_MODIFY, "true"); @@ -8530,8 +8531,8 @@ DEFUN_HIDDEN (interface_no_ip_pim_ssm, snprintf(igmp_if_xpath, sizeof(igmp_if_xpath), "%s/frr-igmp:igmp", VTY_CURR_XPATH); - igmp_enable_dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/igmp-enable", igmp_if_xpath); + igmp_enable_dnode = yang_dnode_getf(vty->candidate_config->dnode, + "%s/igmp-enable", igmp_if_xpath); if (!igmp_enable_dnode) { nb_cli_enqueue_change(vty, igmp_if_xpath, NB_OP_DESTROY, NULL); @@ -8562,8 +8563,8 @@ DEFUN_HIDDEN (interface_no_ip_pim_sm, snprintf(igmp_if_xpath, sizeof(igmp_if_xpath), "%s/frr-igmp:igmp", VTY_CURR_XPATH); - igmp_enable_dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/igmp-enable", igmp_if_xpath); + igmp_enable_dnode = yang_dnode_getf(vty->candidate_config->dnode, + "%s/igmp-enable", igmp_if_xpath); if (!igmp_enable_dnode) { nb_cli_enqueue_change(vty, igmp_if_xpath, NB_OP_DESTROY, NULL); @@ -8593,8 +8594,8 @@ DEFUN (interface_no_ip_pim, snprintf(igmp_if_xpath, sizeof(igmp_if_xpath), "%s/frr-igmp:igmp", VTY_CURR_XPATH); - igmp_enable_dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/igmp-enable", igmp_if_xpath); + igmp_enable_dnode = yang_dnode_getf(vty->candidate_config->dnode, + "%s/igmp-enable", igmp_if_xpath); if (!igmp_enable_dnode) { nb_cli_enqueue_change(vty, igmp_if_xpath, NB_OP_DESTROY, NULL); @@ -8715,9 +8716,9 @@ DEFUN (interface_ip_pim_hello, int idx_hold = 4; const struct lyd_node *igmp_enable_dnode; - igmp_enable_dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/frr-igmp:igmp/igmp-enable", - VTY_CURR_XPATH); + igmp_enable_dnode = + yang_dnode_getf(vty->candidate_config->dnode, + "%s/frr-igmp:igmp/igmp-enable", VTY_CURR_XPATH); if (!igmp_enable_dnode) { nb_cli_enqueue_change(vty, "./pim-enable", NB_OP_MODIFY, "true"); @@ -9435,9 +9436,9 @@ DEFPY (ip_pim_bfd, { const struct lyd_node *igmp_enable_dnode; - igmp_enable_dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/frr-igmp:igmp/igmp-enable", - VTY_CURR_XPATH); + igmp_enable_dnode = + yang_dnode_getf(vty->candidate_config->dnode, + "%s/frr-igmp:igmp/igmp-enable", VTY_CURR_XPATH); if (!igmp_enable_dnode) nb_cli_enqueue_change(vty, "./pim-enable", NB_OP_MODIFY, "true"); @@ -9490,9 +9491,9 @@ DEFUN (ip_pim_bsm, { const struct lyd_node *igmp_enable_dnode; - igmp_enable_dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/frr-igmp:igmp/igmp-enable", - VTY_CURR_XPATH); + igmp_enable_dnode = + yang_dnode_getf(vty->candidate_config->dnode, + "%s/frr-igmp:igmp/igmp-enable", VTY_CURR_XPATH); if (!igmp_enable_dnode) nb_cli_enqueue_change(vty, "./pim-enable", NB_OP_MODIFY, "true"); @@ -9529,9 +9530,9 @@ DEFUN (ip_pim_ucast_bsm, { const struct lyd_node *igmp_enable_dnode; - igmp_enable_dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/frr-igmp:igmp/igmp-enable", - VTY_CURR_XPATH); + igmp_enable_dnode = + yang_dnode_getf(vty->candidate_config->dnode, + "%s/frr-igmp:igmp/igmp-enable", VTY_CURR_XPATH); if (!igmp_enable_dnode) nb_cli_enqueue_change(vty, "./pim-enable", NB_OP_MODIFY, "true"); @@ -9588,9 +9589,9 @@ DEFUN_HIDDEN( int idx_number_3 = 5; const struct lyd_node *igmp_enable_dnode; - igmp_enable_dnode = yang_dnode_get(vty->candidate_config->dnode, - "%s/frr-igmp:igmp/igmp-enable", - VTY_CURR_XPATH); + igmp_enable_dnode = + yang_dnode_getf(vty->candidate_config->dnode, + "%s/frr-igmp:igmp/igmp-enable", VTY_CURR_XPATH); if (!igmp_enable_dnode) nb_cli_enqueue_change(vty, "./pim-enable", NB_OP_MODIFY, "true"); @@ -11090,9 +11091,7 @@ void pim_cmd_init(void) install_element(CONFIG_NODE, &ip_pim_ssm_prefix_list_cmd); install_element(VRF_NODE, &ip_pim_ssm_prefix_list_cmd); install_element(CONFIG_NODE, &ip_pim_register_suppress_cmd); - install_element(VRF_NODE, &ip_pim_register_suppress_cmd); install_element(CONFIG_NODE, &no_ip_pim_register_suppress_cmd); - install_element(VRF_NODE, &no_ip_pim_register_suppress_cmd); install_element(CONFIG_NODE, &ip_pim_spt_switchover_infinity_cmd); install_element(VRF_NODE, &ip_pim_spt_switchover_infinity_cmd); install_element(CONFIG_NODE, &ip_pim_spt_switchover_infinity_plist_cmd); @@ -11105,9 +11104,7 @@ void pim_cmd_init(void) install_element(CONFIG_NODE, &pim_register_accept_list_cmd); install_element(VRF_NODE, &pim_register_accept_list_cmd); install_element(CONFIG_NODE, &ip_pim_joinprune_time_cmd); - install_element(VRF_NODE, &ip_pim_joinprune_time_cmd); install_element(CONFIG_NODE, &no_ip_pim_joinprune_time_cmd); - install_element(VRF_NODE, &no_ip_pim_joinprune_time_cmd); install_element(CONFIG_NODE, &ip_pim_keep_alive_cmd); install_element(VRF_NODE, &ip_pim_keep_alive_cmd); install_element(CONFIG_NODE, &ip_pim_rp_keep_alive_cmd); @@ -11117,9 +11114,7 @@ void pim_cmd_init(void) install_element(CONFIG_NODE, &no_ip_pim_rp_keep_alive_cmd); install_element(VRF_NODE, &no_ip_pim_rp_keep_alive_cmd); install_element(CONFIG_NODE, &ip_pim_packets_cmd); - install_element(VRF_NODE, &ip_pim_packets_cmd); install_element(CONFIG_NODE, &no_ip_pim_packets_cmd); - install_element(VRF_NODE, &no_ip_pim_packets_cmd); install_element(CONFIG_NODE, &ip_pim_v6_secondary_cmd); install_element(VRF_NODE, &ip_pim_v6_secondary_cmd); install_element(CONFIG_NODE, &no_ip_pim_v6_secondary_cmd); diff --git a/pimd/pim_ifchannel.c b/pimd/pim_ifchannel.c index 579824c88d..1bf3a619bf 100644 --- a/pimd/pim_ifchannel.c +++ b/pimd/pim_ifchannel.c @@ -743,7 +743,7 @@ static int on_ifjoin_prune_pending_timer(struct thread *t) if (!ch->upstream->channel_oil->installed) pim_upstream_mroute_add( ch->upstream->channel_oil, - __PRETTY_FUNCTION__); + __func__); } } /* from here ch may have been deleted */ diff --git a/pimd/pim_nb_config.c b/pimd/pim_nb_config.c index da2daea7c3..003a9947e4 100644 --- a/pimd/pim_nb_config.c +++ b/pimd/pim_nb_config.c @@ -524,11 +524,10 @@ static bool is_pim_interface(const struct lyd_node *dnode) const struct lyd_node *igmp_enable_dnode; yang_dnode_get_path(dnode, if_xpath, sizeof(if_xpath)); - pim_enable_dnode = yang_dnode_get(dnode, "%s/frr-pim:pim/pim-enable", - if_xpath); - igmp_enable_dnode = yang_dnode_get(dnode, - "%s/frr-igmp:igmp/igmp-enable", - if_xpath); + pim_enable_dnode = + yang_dnode_getf(dnode, "%s/frr-pim:pim/pim-enable", if_xpath); + igmp_enable_dnode = yang_dnode_getf( + dnode, "%s/frr-igmp:igmp/igmp-enable", if_xpath); if (((pim_enable_dnode) && (yang_dnode_get_bool(pim_enable_dnode, "."))) || @@ -763,8 +762,8 @@ int pim_register_suppress_time_modify(struct nb_cb_modify_args *args) case NB_EV_ABORT: break; case NB_EV_APPLY: - router->register_suppress_time = - yang_dnode_get_uint16(args->dnode, NULL); + pim_update_suppress_timers( + yang_dnode_get_uint16(args->dnode, NULL)); break; } diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c index 9899172e6c..918a9a9c7d 100644 --- a/pimd/pim_upstream.c +++ b/pimd/pim_upstream.c @@ -407,6 +407,28 @@ static void pim_upstream_join_timer_restart_msec(struct pim_upstream *up, &up->t_join_timer); } +void pim_update_suppress_timers(uint32_t suppress_time) +{ + struct pim_instance *pim; + struct vrf *vrf; + unsigned int old_rp_ka_time; + + /* stash the old one so we know which values were manually configured */ + old_rp_ka_time = (3 * router->register_suppress_time + + router->register_probe_time); + router->register_suppress_time = suppress_time; + + RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name) { + pim = vrf->info; + if (!pim) + continue; + + /* Only adjust if not manually configured */ + if (pim->rp_keep_alive_time == old_rp_ka_time) + pim->rp_keep_alive_time = PIM_RP_KEEPALIVE_PERIOD; + } +} + void pim_upstream_join_suppress(struct pim_upstream *up, struct in_addr rpf_addr, int holdtime) { diff --git a/pimd/pim_upstream.h b/pimd/pim_upstream.h index adea3cd9ef..56039d5605 100644 --- a/pimd/pim_upstream.h +++ b/pimd/pim_upstream.h @@ -317,6 +317,7 @@ int pim_upstream_eval_inherit_if(struct pim_upstream *up, void pim_upstream_update_join_desired(struct pim_instance *pim, struct pim_upstream *up); +void pim_update_suppress_timers(uint32_t suppress_time); void pim_upstream_join_suppress(struct pim_upstream *up, struct in_addr rpf_addr, int holdtime); diff --git a/pimd/pim_vty.c b/pimd/pim_vty.c index 76e9c3f0aa..929d35101e 100644 --- a/pimd/pim_vty.c +++ b/pimd/pim_vty.c @@ -186,16 +186,24 @@ int pim_global_config_write_worker(struct pim_instance *pim, struct vty *vty) writes += pim_rp_config_write(pim, vty, spaces); - if (router->register_suppress_time - != PIM_REGISTER_SUPPRESSION_TIME_DEFAULT) { - vty_out(vty, "%sip pim register-suppress-time %d\n", spaces, - router->register_suppress_time); - ++writes; - } - if (router->t_periodic != PIM_DEFAULT_T_PERIODIC) { - vty_out(vty, "%sip pim join-prune-interval %d\n", spaces, - router->t_periodic); - ++writes; + if (pim->vrf_id == VRF_DEFAULT) { + if (router->register_suppress_time + != PIM_REGISTER_SUPPRESSION_TIME_DEFAULT) { + vty_out(vty, "%sip pim register-suppress-time %d\n", + spaces, router->register_suppress_time); + ++writes; + } + if (router->t_periodic != PIM_DEFAULT_T_PERIODIC) { + vty_out(vty, "%sip pim join-prune-interval %d\n", + spaces, router->t_periodic); + ++writes; + } + + if (router->packet_process != PIM_DEFAULT_PACKET_PROCESS) { + vty_out(vty, "%sip pim packets %d\n", spaces, + router->packet_process); + ++writes; + } } if (pim->keep_alive_time != PIM_KEEPALIVE_PERIOD) { vty_out(vty, "%sip pim keep-alive-timer %d\n", spaces, @@ -207,11 +215,6 @@ int pim_global_config_write_worker(struct pim_instance *pim, struct vty *vty) pim->rp_keep_alive_time); ++writes; } - if (router->packet_process != PIM_DEFAULT_PACKET_PROCESS) { - vty_out(vty, "%sip pim packets %d\n", spaces, - router->packet_process); - ++writes; - } if (ssm->plist_name) { vty_out(vty, "%sip pim ssm prefix-list %s\n", spaces, ssm->plist_name); diff --git a/pimd/pimd.c b/pimd/pimd.c index 1679480794..38e7273945 100644 --- a/pimd/pimd.c +++ b/pimd/pimd.c @@ -29,6 +29,7 @@ #include "jhash.h" #include "vrf.h" #include "lib_errors.h" +#include "bfd.h" #include "pimd.h" #include "pim_cmd.h" @@ -137,6 +138,8 @@ void pim_terminate(void) { struct zclient *zclient; + bfd_protocol_integration_set_shutdown(true); + /* reverse prefix_list_init */ prefix_list_add_hook(NULL); prefix_list_delete_hook(NULL); diff --git a/redhat/frr.spec.in b/redhat/frr.spec.in index 47c6ad41af..e24a84d1e4 100644 --- a/redhat/frr.spec.in +++ b/redhat/frr.spec.in @@ -176,7 +176,7 @@ BuildRequires: make BuildRequires: ncurses-devel BuildRequires: readline-devel BuildRequires: texinfo -BuildRequires: libyang-devel >= 1.0.184 +BuildRequires: libyang2-devel %if 0%{?rhel} && 0%{?rhel} < 7 #python27-devel is available from ius community repo for RedHat/CentOS 6 BuildRequires: python27-devel diff --git a/ripd/rip_cli.c b/ripd/rip_cli.c index 43e5b21fa1..0c5730b4d5 100644 --- a/ripd/rip_cli.c +++ b/ripd/rip_cli.c @@ -903,9 +903,9 @@ DEFPY_YANG (ip_rip_authentication_string, return CMD_WARNING_CONFIG_FAILED; } - if (yang_dnode_exists(vty->candidate_config->dnode, "%s%s", - VTY_CURR_XPATH, - "/frr-ripd:rip/authentication-key-chain")) { + if (yang_dnode_existsf(vty->candidate_config->dnode, "%s%s", + VTY_CURR_XPATH, + "/frr-ripd:rip/authentication-key-chain")) { vty_out(vty, "%% key-chain configuration exists\n"); return CMD_WARNING_CONFIG_FAILED; } @@ -952,9 +952,9 @@ DEFPY_YANG (ip_rip_authentication_key_chain, "Authentication key-chain\n" "name of key-chain\n") { - if (yang_dnode_exists(vty->candidate_config->dnode, "%s%s", - VTY_CURR_XPATH, - "/frr-ripd:rip/authentication-password")) { + if (yang_dnode_existsf(vty->candidate_config->dnode, "%s%s", + VTY_CURR_XPATH, + "/frr-ripd:rip/authentication-password")) { vty_out(vty, "%% authentication string configuration exists\n"); return CMD_WARNING_CONFIG_FAILED; } diff --git a/ripd/rip_interface.c b/ripd/rip_interface.c index 1ef64ff0de..bdae2c5ef5 100644 --- a/ripd/rip_interface.c +++ b/ripd/rip_interface.c @@ -493,6 +493,9 @@ int rip_if_down(struct interface *ifp) struct listnode *listnode = NULL, *nextnode = NULL; ri = ifp->info; + + THREAD_OFF(ri->t_wakeup); + rip = ri->rip; if (rip) { for (rp = route_top(rip->table); rp; rp = route_next(rp)) @@ -1113,7 +1116,7 @@ static int rip_interface_config_write(struct vty *vty) FOR_ALL_INTERFACES (vrf, ifp) { struct lyd_node *dnode; - dnode = yang_dnode_get( + dnode = yang_dnode_getf( running_config->dnode, "/frr-interface:lib/interface[name='%s'][vrf='%s']", ifp->name, vrf->name); diff --git a/ripd/ripd.c b/ripd/ripd.c index 9832c7c52a..c6c82fb65a 100644 --- a/ripd/ripd.c +++ b/ripd/ripd.c @@ -3632,16 +3632,16 @@ static int rip_vrf_enable(struct vrf *vrf) char oldpath[XPATH_MAXLEN]; char newpath[XPATH_MAXLEN]; - rip_dnode = yang_dnode_get( + rip_dnode = yang_dnode_getf( running_config->dnode, "/frr-ripd:ripd/instance[vrf='%s']/vrf", old_vrf_name); if (rip_dnode) { - yang_dnode_get_path(rip_dnode->parent, oldpath, - sizeof(oldpath)); + yang_dnode_get_path(lyd_parent(rip_dnode), + oldpath, sizeof(oldpath)); yang_dnode_change_leaf(rip_dnode, vrf->name); - yang_dnode_get_path(rip_dnode->parent, newpath, - sizeof(newpath)); + yang_dnode_get_path(lyd_parent(rip_dnode), + newpath, sizeof(newpath)); nb_running_move_tree(oldpath, newpath); running_config->version++; } diff --git a/ripngd/ripng_interface.c b/ripngd/ripng_interface.c index 11a8fdff87..6828398617 100644 --- a/ripngd/ripng_interface.c +++ b/ripngd/ripng_interface.c @@ -169,6 +169,9 @@ static int ripng_if_down(struct interface *ifp) struct listnode *listnode = NULL, *nextnode = NULL; ri = ifp->info; + + THREAD_OFF(ri->t_wakeup); + ripng = ri->ripng; if (ripng) @@ -933,7 +936,7 @@ static int interface_config_write(struct vty *vty) FOR_ALL_INTERFACES (vrf, ifp) { struct lyd_node *dnode; - dnode = yang_dnode_get( + dnode = yang_dnode_getf( running_config->dnode, "/frr-interface:lib/interface[name='%s'][vrf='%s']", ifp->name, vrf->name); diff --git a/ripngd/ripngd.c b/ripngd/ripngd.c index 5a71928fbd..3b8d2076f3 100644 --- a/ripngd/ripngd.c +++ b/ripngd/ripngd.c @@ -2634,16 +2634,16 @@ static int ripng_vrf_enable(struct vrf *vrf) char oldpath[XPATH_MAXLEN]; char newpath[XPATH_MAXLEN]; - ripng_dnode = yang_dnode_get( + ripng_dnode = yang_dnode_getf( running_config->dnode, "/frr-ripngd:ripngd/instance[vrf='%s']/vrf", old_vrf_name); if (ripng_dnode) { - yang_dnode_get_path(ripng_dnode->parent, oldpath, - sizeof(oldpath)); + yang_dnode_get_path(lyd_parent(ripng_dnode), + oldpath, sizeof(oldpath)); yang_dnode_change_leaf(ripng_dnode, vrf->name); - yang_dnode_get_path(ripng_dnode->parent, newpath, - sizeof(newpath)); + yang_dnode_get_path(lyd_parent(ripng_dnode), + newpath, sizeof(newpath)); nb_running_move_tree(oldpath, newpath); running_config->version++; } diff --git a/staticd/static_nb.c b/staticd/static_nb.c index aa9076aa88..c1a6253a1d 100644 --- a/staticd/static_nb.c +++ b/staticd/static_nb.c @@ -61,7 +61,6 @@ const struct frr_yang_module_info frr_staticd_info = { .xpath = "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-staticd:staticd/route-list/path-list/frr-nexthops/nexthop/bh-type", .cbs = { .modify = routing_control_plane_protocols_control_plane_protocol_staticd_route_list_path_list_frr_nexthops_nexthop_bh_type_modify, - .destroy = routing_control_plane_protocols_control_plane_protocol_staticd_route_list_path_list_frr_nexthops_nexthop_bh_type_destroy, } }, { @@ -139,7 +138,6 @@ const struct frr_yang_module_info frr_staticd_info = { .xpath = "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-staticd:staticd/route-list/src-list/path-list/frr-nexthops/nexthop/bh-type", .cbs = { .modify = routing_control_plane_protocols_control_plane_protocol_staticd_route_list_src_list_path_list_frr_nexthops_nexthop_bh_type_modify, - .destroy = routing_control_plane_protocols_control_plane_protocol_staticd_route_list_src_list_path_list_frr_nexthops_nexthop_bh_type_destroy, } }, { diff --git a/staticd/static_nb.h b/staticd/static_nb.h index e85e1d0e9f..96dd05c0cf 100644 --- a/staticd/static_nb.h +++ b/staticd/static_nb.h @@ -37,8 +37,6 @@ int routing_control_plane_protocols_control_plane_protocol_staticd_route_list_pa struct nb_cb_destroy_args *args); int routing_control_plane_protocols_control_plane_protocol_staticd_route_list_path_list_frr_nexthops_nexthop_bh_type_modify( struct nb_cb_modify_args *args); -int routing_control_plane_protocols_control_plane_protocol_staticd_route_list_path_list_frr_nexthops_nexthop_bh_type_destroy( - struct nb_cb_destroy_args *args); int routing_control_plane_protocols_control_plane_protocol_staticd_route_list_path_list_frr_nexthops_nexthop_onlink_modify( struct nb_cb_modify_args *args); int routing_control_plane_protocols_control_plane_protocol_staticd_route_list_path_list_frr_nexthops_nexthop_color_modify( @@ -77,8 +75,6 @@ int routing_control_plane_protocols_control_plane_protocol_staticd_route_list_sr struct nb_cb_destroy_args *args); int routing_control_plane_protocols_control_plane_protocol_staticd_route_list_src_list_path_list_frr_nexthops_nexthop_bh_type_modify( struct nb_cb_modify_args *args); -int routing_control_plane_protocols_control_plane_protocol_staticd_route_list_src_list_path_list_frr_nexthops_nexthop_bh_type_destroy( - struct nb_cb_destroy_args *args); int routing_control_plane_protocols_control_plane_protocol_staticd_route_list_src_list_path_list_frr_nexthops_nexthop_onlink_modify( struct nb_cb_modify_args *args); int routing_control_plane_protocols_control_plane_protocol_staticd_route_list_src_list_path_list_frr_nexthops_nexthop_color_modify( diff --git a/staticd/static_nb_config.c b/staticd/static_nb_config.c index e78f5172a3..cd151bface 100644 --- a/staticd/static_nb_config.c +++ b/staticd/static_nb_config.c @@ -297,7 +297,7 @@ static int static_nexthop_mpls_label_modify(struct nb_cb_modify_args *args) uint8_t index; nh = nb_running_get_entry(args->dnode, NULL, true); - pos = yang_get_list_pos(args->dnode->parent); + pos = yang_get_list_pos(lyd_parent(args->dnode)); if (!pos) { flog_warn(EC_LIB_NB_CB_CONFIG_APPLY, "libyang returns invalid label position"); @@ -457,7 +457,7 @@ int routing_control_plane_protocols_control_plane_protocol_staticd_route_list_pa uint32_t count; mls_dnode = yang_dnode_get(args->dnode, "./mpls-label-stack"); - count = yang_get_list_elements_count(yang_dnode_get_child(mls_dnode)); + count = yang_get_list_elements_count(lyd_child(mls_dnode)); if (count > MPLS_MAX_LABELS) { snprintf(args->errmsg, args->errmsg_len, @@ -689,22 +689,6 @@ int routing_control_plane_protocols_control_plane_protocol_staticd_route_list_pa return static_nexthop_bh_type_modify(args); } -int routing_control_plane_protocols_control_plane_protocol_staticd_route_list_path_list_frr_nexthops_nexthop_bh_type_destroy( - struct nb_cb_destroy_args *args) -{ - /* blackhole type has a boolean type with default value, - * so no need to do any operations in destroy callback - */ - switch (args->event) { - case NB_EV_VALIDATE: - case NB_EV_PREPARE: - case NB_EV_ABORT: - case NB_EV_APPLY: - break; - } - return NB_OK; -} - /* * XPath: * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-staticd:staticd/route-list/path-list/frr-nexthops/nexthop/onlink @@ -1069,23 +1053,6 @@ int routing_control_plane_protocols_control_plane_protocol_staticd_route_list_sr return static_nexthop_bh_type_modify(args); } -int routing_control_plane_protocols_control_plane_protocol_staticd_route_list_src_list_path_list_frr_nexthops_nexthop_bh_type_destroy( - struct nb_cb_destroy_args *args) -{ - /* blackhole type has a boolean type with default value, - * so no need to do any operations in destroy callback - */ - switch (args->event) { - case NB_EV_VALIDATE: - case NB_EV_PREPARE: - case NB_EV_ABORT: - case NB_EV_APPLY: - break; - } - - return NB_OK; -} - /* * XPath: * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-staticd:staticd/route-list/src-list/path-list/frr-nexthops/nexthop/onlink diff --git a/tests/.gitignore b/tests/.gitignore index 0c938beab6..fb2edc939a 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -31,6 +31,7 @@ /lib/test_heavy_wq /lib/test_idalloc /lib/test_memory +/lib/test_nexthop /lib/test_nexthop_iter /lib/test_ntop /lib/test_prefix2str diff --git a/tests/bgpd/test_peer_attr.c b/tests/bgpd/test_peer_attr.c index 123d97bc97..cd5186f2ae 100644 --- a/tests/bgpd/test_peer_attr.c +++ b/tests/bgpd/test_peer_attr.c @@ -783,6 +783,8 @@ static void test_execute(struct test *test, const char *fmt, ...) cmd, ret); } + nb_cli_pending_commit_check(test->vty); + /* Free memory. */ cmd_free_strvec(vline); XFREE(MTYPE_TMP, cmd); @@ -1397,7 +1399,6 @@ static void bgp_startup(void) zprivs_init(&bgpd_privs); master = thread_master_create(NULL); - yang_init(true); nb_init(master, bgpd_yang_modules, array_size(bgpd_yang_modules), false); bgp_master_init(master, BGP_SOCKET_SNDBUF_SIZE, list_new()); bgp_option_set(BGP_OPT_NO_LISTEN); diff --git a/tests/helpers/c/main.c b/tests/helpers/c/main.c index 7f15996daa..64ecab9132 100644 --- a/tests/helpers/c/main.c +++ b/tests/helpers/c/main.c @@ -155,7 +155,6 @@ int main(int argc, char **argv) cmd_init(1); vty_init(master, false); lib_cmd_init(); - yang_init(true); nb_init(master, NULL, 0, false); /* OSPF vty inits. */ diff --git a/tests/isisd/test_isis_spf.c b/tests/isisd/test_isis_spf.c index 8fe1ad0b8a..915f849aec 100644 --- a/tests/isisd/test_isis_spf.c +++ b/tests/isisd/test_isis_spf.c @@ -547,7 +547,7 @@ int main(int argc, char **argv) cmd_init(1); cmd_hostname_set("test"); vty_init(master, false); - yang_init(true); + yang_init(true, false); if (debug) zlog_aux_init("NONE: ", LOG_DEBUG); else diff --git a/tests/lib/cli/common_cli.c b/tests/lib/cli/common_cli.c index 44cc6efe84..49bc0f4fb2 100644 --- a/tests/lib/cli/common_cli.c +++ b/tests/lib/cli/common_cli.c @@ -79,7 +79,6 @@ int main(int argc, char **argv) vty_init(master, false); lib_cmd_init(); - yang_init(true); nb_init(master, NULL, 0, false); test_init(argc, argv); diff --git a/tests/lib/cli/test_commands.c b/tests/lib/cli/test_commands.c index cb512211a4..a00f80073c 100644 --- a/tests/lib/cli/test_commands.c +++ b/tests/lib/cli/test_commands.c @@ -208,7 +208,6 @@ static void test_init(void) struct cmd_element *cmd; cmd_init(1); - yang_init(true); nb_init(master, NULL, 0, false); install_node(&bgp_node); diff --git a/tests/lib/northbound/test_oper_data.c b/tests/lib/northbound/test_oper_data.c index b5f257fa2f..08eb0d527c 100644 --- a/tests/lib/northbound/test_oper_data.c +++ b/tests/lib/northbound/test_oper_data.c @@ -399,7 +399,6 @@ int main(int argc, char **argv) cmd_hostname_set("test"); vty_init(master, false); lib_cmd_init(); - yang_init(true); nb_init(master, modules, array_size(modules), false); /* Create artificial data. */ diff --git a/tests/lib/test_assert.c b/tests/lib/test_assert.c index 8f1f4f2bad..a4535651d4 100644 --- a/tests/lib/test_assert.c +++ b/tests/lib/test_assert.c @@ -27,7 +27,7 @@ #include <assert.h> __attribute__((noinline)) -void func_for_bt(int number) +static void func_for_bt(int number) { assert(number > 2); assertf(number > 3, "(A) the number was %d", number); diff --git a/tests/lib/test_nexthop.c b/tests/lib/test_nexthop.c new file mode 100644 index 0000000000..659d207b4e --- /dev/null +++ b/tests/lib/test_nexthop.c @@ -0,0 +1,201 @@ +/* + * Nexthop module test. + * + * Copyright (C) 2021 by Volta Networks, Inc. + * + * This file is part of FRR. + * + * FRR is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * FRR is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; see the file COPYING; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include <zebra.h> +#include <nexthop.h> + +static bool verbose; + +static void test_run_first(void) +{ + int ret, i; + struct nexthop *nh1, *nh2; + struct in_addr addr; + struct in6_addr addr6; + mpls_label_t labels[MPLS_MAX_LABELS]; + + /* Test comparison apis */ + + /* ifindex comparisons */ + nh1 = nexthop_from_ifindex(11, 0); + nh2 = nexthop_from_ifindex(12, 0); + + ret = nexthop_cmp_basic(nh1, nh2); + assert(ret < 0); + + nexthop_free(nh1); + nh1 = nexthop_from_ifindex(12, 0); + + ret = nexthop_cmp_basic(nh1, nh2); + assert(ret == 0); + + nexthop_free(nh1); + nexthop_free(nh2); + + /* ipv4, vrf */ + addr.s_addr = 0x04030201; + nh1 = nexthop_from_ipv4(&addr, NULL, 0); + nh2 = nexthop_from_ipv4(&addr, NULL, 111); + + ret = nexthop_cmp_basic(nh1, nh2); + assert(ret != 0); + + nexthop_free(nh2); + + addr.s_addr = 0x04030202; + nh2 = nexthop_from_ipv4(&addr, NULL, 0); + + ret = nexthop_cmp_basic(nh1, nh2); + assert(ret != 0); + + nexthop_free(nh2); + + addr.s_addr = 0x04030201; + nh2 = nexthop_from_ipv4(&addr, NULL, 0); + + ret = nexthop_cmp_basic(nh1, nh2); + assert(ret == 0); + + /* Weight */ + nh2->weight = 20; + + ret = nexthop_cmp_basic(nh1, nh2); + assert(ret != 0); + + nexthop_free(nh1); + nexthop_free(nh2); + + /* ipv6 */ + memset(addr6.s6_addr, 0, sizeof(addr6.s6_addr)); + nh1 = nexthop_from_ipv6(&addr6, 0); + nh2 = nexthop_from_ipv6(&addr6, 0); + + ret = nexthop_cmp_basic(nh1, nh2); + assert(ret == 0); + + nexthop_free(nh2); + + nh2 = nexthop_from_ipv6(&addr6, 1); + + ret = nexthop_cmp_basic(nh1, nh2); + assert(ret != 0); + + nexthop_free(nh2); + + addr6.s6_addr[14] = 1; + addr6.s6_addr[15] = 1; + nh2 = nexthop_from_ipv6(&addr6, 0); + + ret = nexthop_cmp_basic(nh1, nh2); + assert(ret != 0); + + nexthop_free(nh1); + nexthop_free(nh2); + + /* Blackhole */ + nh1 = nexthop_from_blackhole(BLACKHOLE_REJECT); + nh2 = nexthop_from_blackhole(BLACKHOLE_REJECT); + + ret = nexthop_cmp_basic(nh1, nh2); + assert(ret == 0); + + nexthop_free(nh2); + + nh2 = nexthop_from_blackhole(BLACKHOLE_NULL); + + ret = nexthop_cmp_basic(nh1, nh2); + assert(ret != 0); + + /* Labels */ + addr.s_addr = 0x04030201; + nh1 = nexthop_from_ipv4(&addr, NULL, 0); + nh2 = nexthop_from_ipv4(&addr, NULL, 0); + + memset(labels, 0, sizeof(labels)); + labels[0] = 111; + labels[1] = 222; + + nexthop_add_labels(nh1, ZEBRA_LSP_STATIC, 2, labels); + + ret = nexthop_cmp_basic(nh1, nh2); + assert(ret != 0); + + nexthop_add_labels(nh2, ZEBRA_LSP_STATIC, 2, labels); + + ret = nexthop_cmp_basic(nh1, nh2); + assert(ret == 0); + + nexthop_free(nh2); + + /* LSP type isn't included */ + nh2 = nexthop_from_ipv4(&addr, NULL, 0); + nexthop_add_labels(nh2, ZEBRA_LSP_LDP, 2, labels); + + ret = nexthop_cmp_basic(nh1, nh2); + assert(ret == 0); + + nexthop_free(nh2); + + labels[2] = 333; + nh2 = nexthop_from_ipv4(&addr, NULL, 0); + nexthop_add_labels(nh2, ZEBRA_LSP_LDP, 3, labels); + + ret = nexthop_cmp_basic(nh1, nh2); + assert(ret != 0); + + nexthop_free(nh1); + nexthop_free(nh2); + + nh1 = nexthop_from_ipv4(&addr, NULL, 0); + nh2 = nexthop_from_ipv4(&addr, NULL, 0); + + for (i = 0; i < MPLS_MAX_LABELS; i++) + labels[i] = 111 * (i + 1); + + nexthop_add_labels(nh1, ZEBRA_LSP_LDP, MPLS_MAX_LABELS, labels); + nexthop_add_labels(nh2, ZEBRA_LSP_LDP, MPLS_MAX_LABELS, labels); + + ret = nexthop_cmp_basic(nh1, nh2); + assert(ret == 0); + + nexthop_free(nh2); + + /* Test very last label in stack */ + labels[15] = 999; + nh2 = nexthop_from_ipv4(&addr, NULL, 0); + nexthop_add_labels(nh2, ZEBRA_LSP_LDP, MPLS_MAX_LABELS, labels); + + ret = nexthop_cmp_basic(nh1, nh2); + assert(ret != 0); + + /* End */ + nexthop_free(nh1); + nexthop_free(nh2); +} + +int main(int argc, char **argv) +{ + if (argc >= 2 && !strcmp("-v", argv[1])) + verbose = true; + test_run_first(); + printf("Simple test passed.\n"); +} diff --git a/tests/lib/test_nexthop.py b/tests/lib/test_nexthop.py new file mode 100644 index 0000000000..81bfa43ab5 --- /dev/null +++ b/tests/lib/test_nexthop.py @@ -0,0 +1,8 @@ +import frrtest + + +class TestNexthopIter(frrtest.TestMultiOut): + program = "./test_nexthop" + + +TestNexthopIter.onesimple("Simple test passed.") diff --git a/tests/subdir.am b/tests/subdir.am index 139f4878c8..3996699774 100644 --- a/tests/subdir.am +++ b/tests/subdir.am @@ -76,6 +76,7 @@ check_PROGRAMS = \ tests/lib/test_idalloc \ tests/lib/test_memory \ tests/lib/test_nexthop_iter \ + tests/lib/test_nexthop \ tests/lib/test_ntop \ tests/lib/test_prefix2str \ tests/lib/test_printfrr \ @@ -156,7 +157,7 @@ TESTS_CFLAGS = \ # note no -Werror ALL_TESTS_LDADD = lib/libfrr.la $(LIBCAP) -BGP_TEST_LDADD = bgpd/libbgp.a $(RFPLDADD) $(ALL_TESTS_LDADD) -lm +BGP_TEST_LDADD = bgpd/libbgp.a $(RFPLDADD) $(ALL_TESTS_LDADD) $(LIBYANG_LIBS) -lm ISISD_TEST_LDADD = isisd/libisis.a $(ALL_TESTS_LDADD) OSPFD_TEST_LDADD = ospfd/libfrrospf.a $(ALL_TESTS_LDADD) OSPF6_TEST_LDADD = ospf6d/libospf6.a $(ALL_TESTS_LDADD) @@ -293,6 +294,10 @@ tests_lib_test_nexthop_iter_CFLAGS = $(TESTS_CFLAGS) tests_lib_test_nexthop_iter_CPPFLAGS = $(TESTS_CPPFLAGS) tests_lib_test_nexthop_iter_LDADD = $(ALL_TESTS_LDADD) tests_lib_test_nexthop_iter_SOURCES = tests/lib/test_nexthop_iter.c tests/helpers/c/prng.c +tests_lib_test_nexthop_CFLAGS = $(TESTS_CFLAGS) +tests_lib_test_nexthop_CPPFLAGS = $(TESTS_CPPFLAGS) +tests_lib_test_nexthop_LDADD = $(ALL_TESTS_LDADD) +tests_lib_test_nexthop_SOURCES = tests/lib/test_nexthop.c tests_lib_test_ntop_CFLAGS = $(TESTS_CFLAGS) tests_lib_test_ntop_CPPFLAGS = $(CPPFLAGS_BASE) # no assert override tests_lib_test_ntop_LDADD = # none @@ -412,6 +417,7 @@ EXTRA_DIST += \ tests/lib/test_assert.py \ tests/lib/test_atomlist.py \ tests/lib/test_nexthop_iter.py \ + tests/lib/test_nexthop.py \ tests/lib/test_ntop.py \ tests/lib/test_prefix2str.py \ tests/lib/test_printfrr.py \ diff --git a/tests/topotests/all-protocol-startup/r1/babeld.conf b/tests/topotests/all_protocol_startup/r1/babeld.conf index 3e119bf24d..3e119bf24d 100644 --- a/tests/topotests/all-protocol-startup/r1/babeld.conf +++ b/tests/topotests/all_protocol_startup/r1/babeld.conf diff --git a/tests/topotests/all-protocol-startup/r1/bgpd.conf b/tests/topotests/all_protocol_startup/r1/bgpd.conf index 32dcb727e5..32dcb727e5 100644 --- a/tests/topotests/all-protocol-startup/r1/bgpd.conf +++ b/tests/topotests/all_protocol_startup/r1/bgpd.conf diff --git a/tests/topotests/all-protocol-startup/r1/ip_nht.ref b/tests/topotests/all_protocol_startup/r1/ip_nht.ref index 1da4da4df5..1da4da4df5 100644 --- a/tests/topotests/all-protocol-startup/r1/ip_nht.ref +++ b/tests/topotests/all_protocol_startup/r1/ip_nht.ref diff --git a/tests/topotests/all-protocol-startup/r1/ipv4_routes.ref b/tests/topotests/all_protocol_startup/r1/ipv4_routes.ref index 044cffae7a..044cffae7a 100644 --- a/tests/topotests/all-protocol-startup/r1/ipv4_routes.ref +++ b/tests/topotests/all_protocol_startup/r1/ipv4_routes.ref diff --git a/tests/topotests/all-protocol-startup/r1/ipv6_nht.ref b/tests/topotests/all_protocol_startup/r1/ipv6_nht.ref index 0255ecdee8..0255ecdee8 100644 --- a/tests/topotests/all-protocol-startup/r1/ipv6_nht.ref +++ b/tests/topotests/all_protocol_startup/r1/ipv6_nht.ref diff --git a/tests/topotests/all-protocol-startup/r1/ipv6_routes.ref b/tests/topotests/all_protocol_startup/r1/ipv6_routes.ref index ef12d615dc..ef12d615dc 100644 --- a/tests/topotests/all-protocol-startup/r1/ipv6_routes.ref +++ b/tests/topotests/all_protocol_startup/r1/ipv6_routes.ref diff --git a/tests/topotests/all-protocol-startup/r1/isisd.conf b/tests/topotests/all_protocol_startup/r1/isisd.conf index 413f8d15a9..413f8d15a9 100644 --- a/tests/topotests/all-protocol-startup/r1/isisd.conf +++ b/tests/topotests/all_protocol_startup/r1/isisd.conf diff --git a/tests/topotests/all-protocol-startup/r1/ldpd.conf b/tests/topotests/all_protocol_startup/r1/ldpd.conf index 02332a4e75..02332a4e75 100644 --- a/tests/topotests/all-protocol-startup/r1/ldpd.conf +++ b/tests/topotests/all_protocol_startup/r1/ldpd.conf diff --git a/tests/topotests/all-protocol-startup/r1/nhrpd.conf b/tests/topotests/all_protocol_startup/r1/nhrpd.conf index 74e0f12e32..74e0f12e32 100644 --- a/tests/topotests/all-protocol-startup/r1/nhrpd.conf +++ b/tests/topotests/all_protocol_startup/r1/nhrpd.conf diff --git a/tests/topotests/all-protocol-startup/r1/ospf6d.conf b/tests/topotests/all_protocol_startup/r1/ospf6d.conf index 5c6f071644..5c6f071644 100644 --- a/tests/topotests/all-protocol-startup/r1/ospf6d.conf +++ b/tests/topotests/all_protocol_startup/r1/ospf6d.conf diff --git a/tests/topotests/all-protocol-startup/r1/ospf6d.conf-pre-v4 b/tests/topotests/all_protocol_startup/r1/ospf6d.conf-pre-v4 index 6d870f355f..6d870f355f 100644 --- a/tests/topotests/all-protocol-startup/r1/ospf6d.conf-pre-v4 +++ b/tests/topotests/all_protocol_startup/r1/ospf6d.conf-pre-v4 diff --git a/tests/topotests/all-protocol-startup/r1/ospfd.conf b/tests/topotests/all_protocol_startup/r1/ospfd.conf index bac9f61620..bac9f61620 100644 --- a/tests/topotests/all-protocol-startup/r1/ospfd.conf +++ b/tests/topotests/all_protocol_startup/r1/ospfd.conf diff --git a/tests/topotests/all-protocol-startup/r1/pbrd.conf b/tests/topotests/all_protocol_startup/r1/pbrd.conf index 360fb13a1b..360fb13a1b 100644 --- a/tests/topotests/all-protocol-startup/r1/pbrd.conf +++ b/tests/topotests/all_protocol_startup/r1/pbrd.conf diff --git a/tests/topotests/all-protocol-startup/r1/rip_status.ref b/tests/topotests/all_protocol_startup/r1/rip_status.ref index 4a5255fe13..4a5255fe13 100644 --- a/tests/topotests/all-protocol-startup/r1/rip_status.ref +++ b/tests/topotests/all_protocol_startup/r1/rip_status.ref diff --git a/tests/topotests/all-protocol-startup/r1/ripd.conf b/tests/topotests/all_protocol_startup/r1/ripd.conf index ace7608873..ace7608873 100644 --- a/tests/topotests/all-protocol-startup/r1/ripd.conf +++ b/tests/topotests/all_protocol_startup/r1/ripd.conf diff --git a/tests/topotests/all-protocol-startup/r1/ripng_status.ref b/tests/topotests/all_protocol_startup/r1/ripng_status.ref index 5d67c1467a..5d67c1467a 100644 --- a/tests/topotests/all-protocol-startup/r1/ripng_status.ref +++ b/tests/topotests/all_protocol_startup/r1/ripng_status.ref diff --git a/tests/topotests/all-protocol-startup/r1/ripngd.conf b/tests/topotests/all_protocol_startup/r1/ripngd.conf index 2e0aef3a14..2e0aef3a14 100644 --- a/tests/topotests/all-protocol-startup/r1/ripngd.conf +++ b/tests/topotests/all_protocol_startup/r1/ripngd.conf diff --git a/tests/topotests/all-protocol-startup/r1/show_bgp_ipv4-post4.1.ref b/tests/topotests/all_protocol_startup/r1/show_bgp_ipv4-post4.1.ref index b38701a53d..b38701a53d 100644 --- a/tests/topotests/all-protocol-startup/r1/show_bgp_ipv4-post4.1.ref +++ b/tests/topotests/all_protocol_startup/r1/show_bgp_ipv4-post4.1.ref diff --git a/tests/topotests/all-protocol-startup/r1/show_bgp_ipv4-post5.0.ref b/tests/topotests/all_protocol_startup/r1/show_bgp_ipv4-post5.0.ref index 82b64c0d98..82b64c0d98 100644 --- a/tests/topotests/all-protocol-startup/r1/show_bgp_ipv4-post5.0.ref +++ b/tests/topotests/all_protocol_startup/r1/show_bgp_ipv4-post5.0.ref diff --git a/tests/topotests/all-protocol-startup/r1/show_bgp_ipv4-post6.1.ref b/tests/topotests/all_protocol_startup/r1/show_bgp_ipv4-post6.1.ref index fd333b3084..fd333b3084 100644 --- a/tests/topotests/all-protocol-startup/r1/show_bgp_ipv4-post6.1.ref +++ b/tests/topotests/all_protocol_startup/r1/show_bgp_ipv4-post6.1.ref diff --git a/tests/topotests/all-protocol-startup/r1/show_bgp_ipv4.ref b/tests/topotests/all_protocol_startup/r1/show_bgp_ipv4.ref index 3be6cd3d7b..3be6cd3d7b 100644 --- a/tests/topotests/all-protocol-startup/r1/show_bgp_ipv4.ref +++ b/tests/topotests/all_protocol_startup/r1/show_bgp_ipv4.ref diff --git a/tests/topotests/all-protocol-startup/r1/show_bgp_ipv6-post4.1.ref b/tests/topotests/all_protocol_startup/r1/show_bgp_ipv6-post4.1.ref index 20034b7408..20034b7408 100644 --- a/tests/topotests/all-protocol-startup/r1/show_bgp_ipv6-post4.1.ref +++ b/tests/topotests/all_protocol_startup/r1/show_bgp_ipv6-post4.1.ref diff --git a/tests/topotests/all-protocol-startup/r1/show_bgp_ipv6.ref b/tests/topotests/all_protocol_startup/r1/show_bgp_ipv6.ref index fffee63c6b..fffee63c6b 100644 --- a/tests/topotests/all-protocol-startup/r1/show_bgp_ipv6.ref +++ b/tests/topotests/all_protocol_startup/r1/show_bgp_ipv6.ref diff --git a/tests/topotests/all-protocol-startup/r1/show_bgp_ipv6_post6.1.ref b/tests/topotests/all_protocol_startup/r1/show_bgp_ipv6_post6.1.ref index 5b5f8596cf..5b5f8596cf 100644 --- a/tests/topotests/all-protocol-startup/r1/show_bgp_ipv6_post6.1.ref +++ b/tests/topotests/all_protocol_startup/r1/show_bgp_ipv6_post6.1.ref diff --git a/tests/topotests/all-protocol-startup/r1/show_bgp_ipv6_summary.ref b/tests/topotests/all_protocol_startup/r1/show_bgp_ipv6_summary.ref index 0246687200..0246687200 100644 --- a/tests/topotests/all-protocol-startup/r1/show_bgp_ipv6_summary.ref +++ b/tests/topotests/all_protocol_startup/r1/show_bgp_ipv6_summary.ref diff --git a/tests/topotests/all-protocol-startup/r1/show_ip_bgp_summary.ref b/tests/topotests/all_protocol_startup/r1/show_ip_bgp_summary.ref index deeae87fa3..deeae87fa3 100644 --- a/tests/topotests/all-protocol-startup/r1/show_ip_bgp_summary.ref +++ b/tests/topotests/all_protocol_startup/r1/show_ip_bgp_summary.ref diff --git a/tests/topotests/all-protocol-startup/r1/show_ip_ospf_interface.ref b/tests/topotests/all_protocol_startup/r1/show_ip_ospf_interface.ref index ff85679256..ff85679256 100644 --- a/tests/topotests/all-protocol-startup/r1/show_ip_ospf_interface.ref +++ b/tests/topotests/all_protocol_startup/r1/show_ip_ospf_interface.ref diff --git a/tests/topotests/all-protocol-startup/r1/show_ipv6_ospf6_interface b/tests/topotests/all_protocol_startup/r1/show_ipv6_ospf6_interface index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/all-protocol-startup/r1/show_ipv6_ospf6_interface +++ b/tests/topotests/all_protocol_startup/r1/show_ipv6_ospf6_interface diff --git a/tests/topotests/all-protocol-startup/r1/show_ipv6_ospf6_interface.ref b/tests/topotests/all_protocol_startup/r1/show_ipv6_ospf6_interface.ref index 6fbf40bbb8..6fbf40bbb8 100644 --- a/tests/topotests/all-protocol-startup/r1/show_ipv6_ospf6_interface.ref +++ b/tests/topotests/all_protocol_startup/r1/show_ipv6_ospf6_interface.ref diff --git a/tests/topotests/all-protocol-startup/r1/show_isis_interface_detail.ref b/tests/topotests/all_protocol_startup/r1/show_isis_interface_detail.ref index 0534b64d33..0534b64d33 100644 --- a/tests/topotests/all-protocol-startup/r1/show_isis_interface_detail.ref +++ b/tests/topotests/all_protocol_startup/r1/show_isis_interface_detail.ref diff --git a/tests/topotests/all-protocol-startup/r1/show_mpls_ldp_interface.ref b/tests/topotests/all_protocol_startup/r1/show_mpls_ldp_interface.ref index c6bb01c34b..c6bb01c34b 100644 --- a/tests/topotests/all-protocol-startup/r1/show_mpls_ldp_interface.ref +++ b/tests/topotests/all_protocol_startup/r1/show_mpls_ldp_interface.ref diff --git a/tests/topotests/all-protocol-startup/r1/show_route_map.ref b/tests/topotests/all_protocol_startup/r1/show_route_map.ref index 612d0a729d..612d0a729d 100644 --- a/tests/topotests/all-protocol-startup/r1/show_route_map.ref +++ b/tests/topotests/all_protocol_startup/r1/show_route_map.ref diff --git a/tests/topotests/all-protocol-startup/r1/zebra.conf b/tests/topotests/all_protocol_startup/r1/zebra.conf index c5ef79630e..c5ef79630e 100644 --- a/tests/topotests/all-protocol-startup/r1/zebra.conf +++ b/tests/topotests/all_protocol_startup/r1/zebra.conf diff --git a/tests/topotests/all-protocol-startup/test_all_protocol_startup.dot b/tests/topotests/all_protocol_startup/test_all_protocol_startup.dot index f39f8f87b8..f39f8f87b8 100644 --- a/tests/topotests/all-protocol-startup/test_all_protocol_startup.dot +++ b/tests/topotests/all_protocol_startup/test_all_protocol_startup.dot diff --git a/tests/topotests/all-protocol-startup/test_all_protocol_startup.pdf b/tests/topotests/all_protocol_startup/test_all_protocol_startup.pdf Binary files differindex 23f69bcddf..23f69bcddf 100644 --- a/tests/topotests/all-protocol-startup/test_all_protocol_startup.pdf +++ b/tests/topotests/all_protocol_startup/test_all_protocol_startup.pdf diff --git a/tests/topotests/all-protocol-startup/test_all_protocol_startup.py b/tests/topotests/all_protocol_startup/test_all_protocol_startup.py index c10e32ad0a..c10e32ad0a 100644 --- a/tests/topotests/all-protocol-startup/test_all_protocol_startup.py +++ b/tests/topotests/all_protocol_startup/test_all_protocol_startup.py diff --git a/tests/topotests/bfd-bgp-cbit-topo3/__init__.py b/tests/topotests/bfd_bgp_cbit_topo3/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bfd-bgp-cbit-topo3/__init__.py +++ b/tests/topotests/bfd_bgp_cbit_topo3/__init__.py diff --git a/tests/topotests/bfd-bgp-cbit-topo3/r1/bfdd.conf b/tests/topotests/bfd_bgp_cbit_topo3/r1/bfdd.conf index f35e772790..f35e772790 100644 --- a/tests/topotests/bfd-bgp-cbit-topo3/r1/bfdd.conf +++ b/tests/topotests/bfd_bgp_cbit_topo3/r1/bfdd.conf diff --git a/tests/topotests/bfd-bgp-cbit-topo3/r1/bgp_ipv6_routes_down.json b/tests/topotests/bfd_bgp_cbit_topo3/r1/bgp_ipv6_routes_down.json index 5cba71ef20..5cba71ef20 100644 --- a/tests/topotests/bfd-bgp-cbit-topo3/r1/bgp_ipv6_routes_down.json +++ b/tests/topotests/bfd_bgp_cbit_topo3/r1/bgp_ipv6_routes_down.json diff --git a/tests/topotests/bfd-bgp-cbit-topo3/r1/bgpd.conf b/tests/topotests/bfd_bgp_cbit_topo3/r1/bgpd.conf index 689797a5e6..689797a5e6 100644 --- a/tests/topotests/bfd-bgp-cbit-topo3/r1/bgpd.conf +++ b/tests/topotests/bfd_bgp_cbit_topo3/r1/bgpd.conf diff --git a/tests/topotests/bfd-bgp-cbit-topo3/r1/ipv6_routes.json b/tests/topotests/bfd_bgp_cbit_topo3/r1/ipv6_routes.json index 8eea183285..8eea183285 100644 --- a/tests/topotests/bfd-bgp-cbit-topo3/r1/ipv6_routes.json +++ b/tests/topotests/bfd_bgp_cbit_topo3/r1/ipv6_routes.json diff --git a/tests/topotests/bfd-bgp-cbit-topo3/r1/peers.json b/tests/topotests/bfd_bgp_cbit_topo3/r1/peers.json index b436d5562e..b436d5562e 100644 --- a/tests/topotests/bfd-bgp-cbit-topo3/r1/peers.json +++ b/tests/topotests/bfd_bgp_cbit_topo3/r1/peers.json diff --git a/tests/topotests/bfd-bgp-cbit-topo3/r1/peers_down.json b/tests/topotests/bfd_bgp_cbit_topo3/r1/peers_down.json index 4984b52cf2..4984b52cf2 100644 --- a/tests/topotests/bfd-bgp-cbit-topo3/r1/peers_down.json +++ b/tests/topotests/bfd_bgp_cbit_topo3/r1/peers_down.json diff --git a/tests/topotests/bfd-bgp-cbit-topo3/r1/zebra.conf b/tests/topotests/bfd_bgp_cbit_topo3/r1/zebra.conf index 3a30cd42fb..3a30cd42fb 100644 --- a/tests/topotests/bfd-bgp-cbit-topo3/r1/zebra.conf +++ b/tests/topotests/bfd_bgp_cbit_topo3/r1/zebra.conf diff --git a/tests/topotests/bfd-bgp-cbit-topo3/r2/zebra.conf b/tests/topotests/bfd_bgp_cbit_topo3/r2/zebra.conf index 0f70be1bda..0f70be1bda 100644 --- a/tests/topotests/bfd-bgp-cbit-topo3/r2/zebra.conf +++ b/tests/topotests/bfd_bgp_cbit_topo3/r2/zebra.conf diff --git a/tests/topotests/bfd-bgp-cbit-topo3/r3/bfdd.conf b/tests/topotests/bfd_bgp_cbit_topo3/r3/bfdd.conf index f35e772790..f35e772790 100644 --- a/tests/topotests/bfd-bgp-cbit-topo3/r3/bfdd.conf +++ b/tests/topotests/bfd_bgp_cbit_topo3/r3/bfdd.conf diff --git a/tests/topotests/bfd-bgp-cbit-topo3/r3/bgp_ipv6_routes_down.json b/tests/topotests/bfd_bgp_cbit_topo3/r3/bgp_ipv6_routes_down.json index c0cb3c4ac9..c0cb3c4ac9 100644 --- a/tests/topotests/bfd-bgp-cbit-topo3/r3/bgp_ipv6_routes_down.json +++ b/tests/topotests/bfd_bgp_cbit_topo3/r3/bgp_ipv6_routes_down.json diff --git a/tests/topotests/bfd-bgp-cbit-topo3/r3/bgpd.conf b/tests/topotests/bfd_bgp_cbit_topo3/r3/bgpd.conf index 1f5aac42ed..1f5aac42ed 100644 --- a/tests/topotests/bfd-bgp-cbit-topo3/r3/bgpd.conf +++ b/tests/topotests/bfd_bgp_cbit_topo3/r3/bgpd.conf diff --git a/tests/topotests/bfd-bgp-cbit-topo3/r3/ipv6_routes.json b/tests/topotests/bfd_bgp_cbit_topo3/r3/ipv6_routes.json index 09808cc09a..09808cc09a 100644 --- a/tests/topotests/bfd-bgp-cbit-topo3/r3/ipv6_routes.json +++ b/tests/topotests/bfd_bgp_cbit_topo3/r3/ipv6_routes.json diff --git a/tests/topotests/bfd-bgp-cbit-topo3/r3/peers.json b/tests/topotests/bfd_bgp_cbit_topo3/r3/peers.json index fc9e145340..fc9e145340 100644 --- a/tests/topotests/bfd-bgp-cbit-topo3/r3/peers.json +++ b/tests/topotests/bfd_bgp_cbit_topo3/r3/peers.json diff --git a/tests/topotests/bfd-bgp-cbit-topo3/r3/peers_down.json b/tests/topotests/bfd_bgp_cbit_topo3/r3/peers_down.json index 620c6ddcd4..620c6ddcd4 100644 --- a/tests/topotests/bfd-bgp-cbit-topo3/r3/peers_down.json +++ b/tests/topotests/bfd_bgp_cbit_topo3/r3/peers_down.json diff --git a/tests/topotests/bfd-bgp-cbit-topo3/r3/zebra.conf b/tests/topotests/bfd_bgp_cbit_topo3/r3/zebra.conf index 7759251dc5..7759251dc5 100644 --- a/tests/topotests/bfd-bgp-cbit-topo3/r3/zebra.conf +++ b/tests/topotests/bfd_bgp_cbit_topo3/r3/zebra.conf diff --git a/tests/topotests/bfd-bgp-cbit-topo3/test_bfd_bgp_cbit_topo3.dot b/tests/topotests/bfd_bgp_cbit_topo3/test_bfd_bgp_cbit_topo3.dot index 270de829c3..270de829c3 100644 --- a/tests/topotests/bfd-bgp-cbit-topo3/test_bfd_bgp_cbit_topo3.dot +++ b/tests/topotests/bfd_bgp_cbit_topo3/test_bfd_bgp_cbit_topo3.dot diff --git a/tests/topotests/bfd-bgp-cbit-topo3/test_bfd_bgp_cbit_topo3.py b/tests/topotests/bfd_bgp_cbit_topo3/test_bfd_bgp_cbit_topo3.py index 560d6eebec..560d6eebec 100644 --- a/tests/topotests/bfd-bgp-cbit-topo3/test_bfd_bgp_cbit_topo3.py +++ b/tests/topotests/bfd_bgp_cbit_topo3/test_bfd_bgp_cbit_topo3.py diff --git a/tests/topotests/bfd-isis-topo1/__init__.py b/tests/topotests/bfd_isis_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bfd-isis-topo1/__init__.py +++ b/tests/topotests/bfd_isis_topo1/__init__.py diff --git a/tests/topotests/bfd-isis-topo1/rt1/bfdd.conf b/tests/topotests/bfd_isis_topo1/rt1/bfdd.conf index 57f9cd9e3d..57f9cd9e3d 100644 --- a/tests/topotests/bfd-isis-topo1/rt1/bfdd.conf +++ b/tests/topotests/bfd_isis_topo1/rt1/bfdd.conf diff --git a/tests/topotests/bfd-isis-topo1/rt1/isisd.conf b/tests/topotests/bfd_isis_topo1/rt1/isisd.conf index 8026aad49d..8026aad49d 100644 --- a/tests/topotests/bfd-isis-topo1/rt1/isisd.conf +++ b/tests/topotests/bfd_isis_topo1/rt1/isisd.conf diff --git a/tests/topotests/bfd-isis-topo1/rt1/step1/show_ip_route.ref b/tests/topotests/bfd_isis_topo1/rt1/step1/show_ip_route.ref index af6e45cf33..af6e45cf33 100644 --- a/tests/topotests/bfd-isis-topo1/rt1/step1/show_ip_route.ref +++ b/tests/topotests/bfd_isis_topo1/rt1/step1/show_ip_route.ref diff --git a/tests/topotests/bfd-isis-topo1/rt1/step1/show_ipv6_route.ref b/tests/topotests/bfd_isis_topo1/rt1/step1/show_ipv6_route.ref index 68d3fe2c44..68d3fe2c44 100644 --- a/tests/topotests/bfd-isis-topo1/rt1/step1/show_ipv6_route.ref +++ b/tests/topotests/bfd_isis_topo1/rt1/step1/show_ipv6_route.ref diff --git a/tests/topotests/bfd-isis-topo1/rt1/step2/show_bfd_peers.ref b/tests/topotests/bfd_isis_topo1/rt1/step2/show_bfd_peers.ref index cb4083d2fd..cb4083d2fd 100644 --- a/tests/topotests/bfd-isis-topo1/rt1/step2/show_bfd_peers.ref +++ b/tests/topotests/bfd_isis_topo1/rt1/step2/show_bfd_peers.ref diff --git a/tests/topotests/bfd-isis-topo1/rt1/step3/show_bfd_peers_healthy.ref b/tests/topotests/bfd_isis_topo1/rt1/step3/show_bfd_peers_healthy.ref index cb4083d2fd..cb4083d2fd 100644 --- a/tests/topotests/bfd-isis-topo1/rt1/step3/show_bfd_peers_healthy.ref +++ b/tests/topotests/bfd_isis_topo1/rt1/step3/show_bfd_peers_healthy.ref diff --git a/tests/topotests/bfd-isis-topo1/rt1/step3/show_bfd_peers_rt2_down.ref b/tests/topotests/bfd_isis_topo1/rt1/step3/show_bfd_peers_rt2_down.ref index f00b9f3d32..f00b9f3d32 100644 --- a/tests/topotests/bfd-isis-topo1/rt1/step3/show_bfd_peers_rt2_down.ref +++ b/tests/topotests/bfd_isis_topo1/rt1/step3/show_bfd_peers_rt2_down.ref diff --git a/tests/topotests/bfd-isis-topo1/rt1/step3/show_bfd_peers_rt3_down.ref b/tests/topotests/bfd_isis_topo1/rt1/step3/show_bfd_peers_rt3_down.ref index f5bd276a4a..f5bd276a4a 100644 --- a/tests/topotests/bfd-isis-topo1/rt1/step3/show_bfd_peers_rt3_down.ref +++ b/tests/topotests/bfd_isis_topo1/rt1/step3/show_bfd_peers_rt3_down.ref diff --git a/tests/topotests/bfd-isis-topo1/rt1/step3/show_ip_route_healthy.ref b/tests/topotests/bfd_isis_topo1/rt1/step3/show_ip_route_healthy.ref index af6e45cf33..af6e45cf33 100644 --- a/tests/topotests/bfd-isis-topo1/rt1/step3/show_ip_route_healthy.ref +++ b/tests/topotests/bfd_isis_topo1/rt1/step3/show_ip_route_healthy.ref diff --git a/tests/topotests/bfd-isis-topo1/rt1/step3/show_ip_route_rt2_down.ref b/tests/topotests/bfd_isis_topo1/rt1/step3/show_ip_route_rt2_down.ref index b8366bc0b7..b8366bc0b7 100644 --- a/tests/topotests/bfd-isis-topo1/rt1/step3/show_ip_route_rt2_down.ref +++ b/tests/topotests/bfd_isis_topo1/rt1/step3/show_ip_route_rt2_down.ref diff --git a/tests/topotests/bfd-isis-topo1/rt1/step3/show_ip_route_rt3_down.ref b/tests/topotests/bfd_isis_topo1/rt1/step3/show_ip_route_rt3_down.ref index 42bd6abf82..42bd6abf82 100644 --- a/tests/topotests/bfd-isis-topo1/rt1/step3/show_ip_route_rt3_down.ref +++ b/tests/topotests/bfd_isis_topo1/rt1/step3/show_ip_route_rt3_down.ref diff --git a/tests/topotests/bfd-isis-topo1/rt1/step3/show_ipv6_route_healthy.ref b/tests/topotests/bfd_isis_topo1/rt1/step3/show_ipv6_route_healthy.ref index 68d3fe2c44..68d3fe2c44 100644 --- a/tests/topotests/bfd-isis-topo1/rt1/step3/show_ipv6_route_healthy.ref +++ b/tests/topotests/bfd_isis_topo1/rt1/step3/show_ipv6_route_healthy.ref diff --git a/tests/topotests/bfd-isis-topo1/rt1/step3/show_ipv6_route_rt2_down.ref b/tests/topotests/bfd_isis_topo1/rt1/step3/show_ipv6_route_rt2_down.ref index 200053c3e8..200053c3e8 100644 --- a/tests/topotests/bfd-isis-topo1/rt1/step3/show_ipv6_route_rt2_down.ref +++ b/tests/topotests/bfd_isis_topo1/rt1/step3/show_ipv6_route_rt2_down.ref diff --git a/tests/topotests/bfd-isis-topo1/rt1/step3/show_ipv6_route_rt3_down.ref b/tests/topotests/bfd_isis_topo1/rt1/step3/show_ipv6_route_rt3_down.ref index 4297f163b5..4297f163b5 100644 --- a/tests/topotests/bfd-isis-topo1/rt1/step3/show_ipv6_route_rt3_down.ref +++ b/tests/topotests/bfd_isis_topo1/rt1/step3/show_ipv6_route_rt3_down.ref diff --git a/tests/topotests/bfd-isis-topo1/rt1/zebra.conf b/tests/topotests/bfd_isis_topo1/rt1/zebra.conf index 6003125b6b..6003125b6b 100644 --- a/tests/topotests/bfd-isis-topo1/rt1/zebra.conf +++ b/tests/topotests/bfd_isis_topo1/rt1/zebra.conf diff --git a/tests/topotests/bfd-isis-topo1/rt2/bfdd.conf b/tests/topotests/bfd_isis_topo1/rt2/bfdd.conf index 6b34e337d3..6b34e337d3 100644 --- a/tests/topotests/bfd-isis-topo1/rt2/bfdd.conf +++ b/tests/topotests/bfd_isis_topo1/rt2/bfdd.conf diff --git a/tests/topotests/bfd-isis-topo1/rt2/isisd.conf b/tests/topotests/bfd_isis_topo1/rt2/isisd.conf index b0fde64a5e..b0fde64a5e 100644 --- a/tests/topotests/bfd-isis-topo1/rt2/isisd.conf +++ b/tests/topotests/bfd_isis_topo1/rt2/isisd.conf diff --git a/tests/topotests/bfd-isis-topo1/rt2/step2/show_bfd_peers.ref b/tests/topotests/bfd_isis_topo1/rt2/step2/show_bfd_peers.ref index 8a90649efa..8a90649efa 100644 --- a/tests/topotests/bfd-isis-topo1/rt2/step2/show_bfd_peers.ref +++ b/tests/topotests/bfd_isis_topo1/rt2/step2/show_bfd_peers.ref diff --git a/tests/topotests/bfd-isis-topo1/rt2/zebra.conf b/tests/topotests/bfd_isis_topo1/rt2/zebra.conf index 5fc7fc5b28..5fc7fc5b28 100644 --- a/tests/topotests/bfd-isis-topo1/rt2/zebra.conf +++ b/tests/topotests/bfd_isis_topo1/rt2/zebra.conf diff --git a/tests/topotests/bfd-isis-topo1/rt3/bfdd.conf b/tests/topotests/bfd_isis_topo1/rt3/bfdd.conf index 22937fe46f..22937fe46f 100644 --- a/tests/topotests/bfd-isis-topo1/rt3/bfdd.conf +++ b/tests/topotests/bfd_isis_topo1/rt3/bfdd.conf diff --git a/tests/topotests/bfd-isis-topo1/rt3/isisd.conf b/tests/topotests/bfd_isis_topo1/rt3/isisd.conf index 5c36e96c0f..5c36e96c0f 100644 --- a/tests/topotests/bfd-isis-topo1/rt3/isisd.conf +++ b/tests/topotests/bfd_isis_topo1/rt3/isisd.conf diff --git a/tests/topotests/bfd-isis-topo1/rt3/step2/show_bfd_peers.ref b/tests/topotests/bfd_isis_topo1/rt3/step2/show_bfd_peers.ref index 13eb2a2c69..13eb2a2c69 100644 --- a/tests/topotests/bfd-isis-topo1/rt3/step2/show_bfd_peers.ref +++ b/tests/topotests/bfd_isis_topo1/rt3/step2/show_bfd_peers.ref diff --git a/tests/topotests/bfd-isis-topo1/rt3/zebra.conf b/tests/topotests/bfd_isis_topo1/rt3/zebra.conf index d368de9bbe..d368de9bbe 100644 --- a/tests/topotests/bfd-isis-topo1/rt3/zebra.conf +++ b/tests/topotests/bfd_isis_topo1/rt3/zebra.conf diff --git a/tests/topotests/bfd-isis-topo1/rt4/bfdd.conf b/tests/topotests/bfd_isis_topo1/rt4/bfdd.conf index f35e772790..f35e772790 100644 --- a/tests/topotests/bfd-isis-topo1/rt4/bfdd.conf +++ b/tests/topotests/bfd_isis_topo1/rt4/bfdd.conf diff --git a/tests/topotests/bfd-isis-topo1/rt4/isisd.conf b/tests/topotests/bfd_isis_topo1/rt4/isisd.conf index 3eac407776..3eac407776 100644 --- a/tests/topotests/bfd-isis-topo1/rt4/isisd.conf +++ b/tests/topotests/bfd_isis_topo1/rt4/isisd.conf diff --git a/tests/topotests/bfd-isis-topo1/rt4/zebra.conf b/tests/topotests/bfd_isis_topo1/rt4/zebra.conf index 7b053bac35..7b053bac35 100644 --- a/tests/topotests/bfd-isis-topo1/rt4/zebra.conf +++ b/tests/topotests/bfd_isis_topo1/rt4/zebra.conf diff --git a/tests/topotests/bfd-isis-topo1/rt5/bfdd.conf b/tests/topotests/bfd_isis_topo1/rt5/bfdd.conf index f35e772790..f35e772790 100644 --- a/tests/topotests/bfd-isis-topo1/rt5/bfdd.conf +++ b/tests/topotests/bfd_isis_topo1/rt5/bfdd.conf diff --git a/tests/topotests/bfd-isis-topo1/rt5/isisd.conf b/tests/topotests/bfd_isis_topo1/rt5/isisd.conf index 5d449f6f93..5d449f6f93 100644 --- a/tests/topotests/bfd-isis-topo1/rt5/isisd.conf +++ b/tests/topotests/bfd_isis_topo1/rt5/isisd.conf diff --git a/tests/topotests/bfd-isis-topo1/rt5/zebra.conf b/tests/topotests/bfd_isis_topo1/rt5/zebra.conf index 0b7c9e02f3..0b7c9e02f3 100644 --- a/tests/topotests/bfd-isis-topo1/rt5/zebra.conf +++ b/tests/topotests/bfd_isis_topo1/rt5/zebra.conf diff --git a/tests/topotests/bfd-isis-topo1/test_bfd_isis_topo1.py b/tests/topotests/bfd_isis_topo1/test_bfd_isis_topo1.py index fcb5672dce..fcb5672dce 100644 --- a/tests/topotests/bfd-isis-topo1/test_bfd_isis_topo1.py +++ b/tests/topotests/bfd_isis_topo1/test_bfd_isis_topo1.py diff --git a/tests/topotests/bfd-ospf-topo1/__init__.py b/tests/topotests/bfd_ospf_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bfd-ospf-topo1/__init__.py +++ b/tests/topotests/bfd_ospf_topo1/__init__.py diff --git a/tests/topotests/bfd-ospf-topo1/rt1/bfdd.conf b/tests/topotests/bfd_ospf_topo1/rt1/bfdd.conf index 610a20f88a..610a20f88a 100644 --- a/tests/topotests/bfd-ospf-topo1/rt1/bfdd.conf +++ b/tests/topotests/bfd_ospf_topo1/rt1/bfdd.conf diff --git a/tests/topotests/bfd-ospf-topo1/rt1/ospf6d.conf b/tests/topotests/bfd_ospf_topo1/rt1/ospf6d.conf index 18def599b4..18def599b4 100644 --- a/tests/topotests/bfd-ospf-topo1/rt1/ospf6d.conf +++ b/tests/topotests/bfd_ospf_topo1/rt1/ospf6d.conf diff --git a/tests/topotests/bfd-ospf-topo1/rt1/ospfd.conf b/tests/topotests/bfd_ospf_topo1/rt1/ospfd.conf index 07b42f9885..07b42f9885 100644 --- a/tests/topotests/bfd-ospf-topo1/rt1/ospfd.conf +++ b/tests/topotests/bfd_ospf_topo1/rt1/ospfd.conf diff --git a/tests/topotests/bfd-ospf-topo1/rt1/step1/show_ip_route.ref b/tests/topotests/bfd_ospf_topo1/rt1/step1/show_ip_route.ref index f354eff697..f354eff697 100644 --- a/tests/topotests/bfd-ospf-topo1/rt1/step1/show_ip_route.ref +++ b/tests/topotests/bfd_ospf_topo1/rt1/step1/show_ip_route.ref diff --git a/tests/topotests/bfd-ospf-topo1/rt1/step1/show_ipv6_route.ref b/tests/topotests/bfd_ospf_topo1/rt1/step1/show_ipv6_route.ref index 6465efb8b5..6465efb8b5 100644 --- a/tests/topotests/bfd-ospf-topo1/rt1/step1/show_ipv6_route.ref +++ b/tests/topotests/bfd_ospf_topo1/rt1/step1/show_ipv6_route.ref diff --git a/tests/topotests/bfd-ospf-topo1/rt1/step2/show_bfd_peers.ref b/tests/topotests/bfd_ospf_topo1/rt1/step2/show_bfd_peers.ref index 63f0d50784..63f0d50784 100644 --- a/tests/topotests/bfd-ospf-topo1/rt1/step2/show_bfd_peers.ref +++ b/tests/topotests/bfd_ospf_topo1/rt1/step2/show_bfd_peers.ref diff --git a/tests/topotests/bfd-ospf-topo1/rt1/step3/show_bfd_peers_healthy.ref b/tests/topotests/bfd_ospf_topo1/rt1/step3/show_bfd_peers_healthy.ref index 42051f9582..42051f9582 100644 --- a/tests/topotests/bfd-ospf-topo1/rt1/step3/show_bfd_peers_healthy.ref +++ b/tests/topotests/bfd_ospf_topo1/rt1/step3/show_bfd_peers_healthy.ref diff --git a/tests/topotests/bfd-ospf-topo1/rt1/step3/show_bfd_peers_rt2_down.ref b/tests/topotests/bfd_ospf_topo1/rt1/step3/show_bfd_peers_rt2_down.ref index d844ee6813..d844ee6813 100644 --- a/tests/topotests/bfd-ospf-topo1/rt1/step3/show_bfd_peers_rt2_down.ref +++ b/tests/topotests/bfd_ospf_topo1/rt1/step3/show_bfd_peers_rt2_down.ref diff --git a/tests/topotests/bfd-ospf-topo1/rt1/step3/show_bfd_peers_rt3_down.ref b/tests/topotests/bfd_ospf_topo1/rt1/step3/show_bfd_peers_rt3_down.ref index 32799084fb..32799084fb 100644 --- a/tests/topotests/bfd-ospf-topo1/rt1/step3/show_bfd_peers_rt3_down.ref +++ b/tests/topotests/bfd_ospf_topo1/rt1/step3/show_bfd_peers_rt3_down.ref diff --git a/tests/topotests/bfd-ospf-topo1/rt1/step3/show_ip_route_healthy.ref b/tests/topotests/bfd_ospf_topo1/rt1/step3/show_ip_route_healthy.ref index f354eff697..f354eff697 100644 --- a/tests/topotests/bfd-ospf-topo1/rt1/step3/show_ip_route_healthy.ref +++ b/tests/topotests/bfd_ospf_topo1/rt1/step3/show_ip_route_healthy.ref diff --git a/tests/topotests/bfd-ospf-topo1/rt1/step3/show_ip_route_rt2_down.ref b/tests/topotests/bfd_ospf_topo1/rt1/step3/show_ip_route_rt2_down.ref index 43eecd0b7a..43eecd0b7a 100644 --- a/tests/topotests/bfd-ospf-topo1/rt1/step3/show_ip_route_rt2_down.ref +++ b/tests/topotests/bfd_ospf_topo1/rt1/step3/show_ip_route_rt2_down.ref diff --git a/tests/topotests/bfd-ospf-topo1/rt1/step3/show_ip_route_rt3_down.ref b/tests/topotests/bfd_ospf_topo1/rt1/step3/show_ip_route_rt3_down.ref index 409af6308b..409af6308b 100644 --- a/tests/topotests/bfd-ospf-topo1/rt1/step3/show_ip_route_rt3_down.ref +++ b/tests/topotests/bfd_ospf_topo1/rt1/step3/show_ip_route_rt3_down.ref diff --git a/tests/topotests/bfd-ospf-topo1/rt1/step3/show_ipv6_route_healthy.ref b/tests/topotests/bfd_ospf_topo1/rt1/step3/show_ipv6_route_healthy.ref index 6465efb8b5..6465efb8b5 100644 --- a/tests/topotests/bfd-ospf-topo1/rt1/step3/show_ipv6_route_healthy.ref +++ b/tests/topotests/bfd_ospf_topo1/rt1/step3/show_ipv6_route_healthy.ref diff --git a/tests/topotests/bfd-ospf-topo1/rt1/step3/show_ipv6_route_rt2_down.ref b/tests/topotests/bfd_ospf_topo1/rt1/step3/show_ipv6_route_rt2_down.ref index cfb1ef1bb6..cfb1ef1bb6 100644 --- a/tests/topotests/bfd-ospf-topo1/rt1/step3/show_ipv6_route_rt2_down.ref +++ b/tests/topotests/bfd_ospf_topo1/rt1/step3/show_ipv6_route_rt2_down.ref diff --git a/tests/topotests/bfd-ospf-topo1/rt1/step3/show_ipv6_route_rt3_down.ref b/tests/topotests/bfd_ospf_topo1/rt1/step3/show_ipv6_route_rt3_down.ref index 58b44da5c2..58b44da5c2 100644 --- a/tests/topotests/bfd-ospf-topo1/rt1/step3/show_ipv6_route_rt3_down.ref +++ b/tests/topotests/bfd_ospf_topo1/rt1/step3/show_ipv6_route_rt3_down.ref diff --git a/tests/topotests/bfd-ospf-topo1/rt1/zebra.conf b/tests/topotests/bfd_ospf_topo1/rt1/zebra.conf index 6003125b6b..6003125b6b 100644 --- a/tests/topotests/bfd-ospf-topo1/rt1/zebra.conf +++ b/tests/topotests/bfd_ospf_topo1/rt1/zebra.conf diff --git a/tests/topotests/bfd-ospf-topo1/rt2/bfdd.conf b/tests/topotests/bfd_ospf_topo1/rt2/bfdd.conf index 437f063d8f..437f063d8f 100644 --- a/tests/topotests/bfd-ospf-topo1/rt2/bfdd.conf +++ b/tests/topotests/bfd_ospf_topo1/rt2/bfdd.conf diff --git a/tests/topotests/bfd-ospf-topo1/rt2/ospf6d.conf b/tests/topotests/bfd_ospf_topo1/rt2/ospf6d.conf index 2f35099564..2f35099564 100644 --- a/tests/topotests/bfd-ospf-topo1/rt2/ospf6d.conf +++ b/tests/topotests/bfd_ospf_topo1/rt2/ospf6d.conf diff --git a/tests/topotests/bfd-ospf-topo1/rt2/ospfd.conf b/tests/topotests/bfd_ospf_topo1/rt2/ospfd.conf index a05d8b58c8..a05d8b58c8 100644 --- a/tests/topotests/bfd-ospf-topo1/rt2/ospfd.conf +++ b/tests/topotests/bfd_ospf_topo1/rt2/ospfd.conf diff --git a/tests/topotests/bfd-ospf-topo1/rt2/step2/show_bfd_peers.ref b/tests/topotests/bfd_ospf_topo1/rt2/step2/show_bfd_peers.ref index d6df1ebfb2..d6df1ebfb2 100644 --- a/tests/topotests/bfd-ospf-topo1/rt2/step2/show_bfd_peers.ref +++ b/tests/topotests/bfd_ospf_topo1/rt2/step2/show_bfd_peers.ref diff --git a/tests/topotests/bfd-ospf-topo1/rt2/zebra.conf b/tests/topotests/bfd_ospf_topo1/rt2/zebra.conf index 5fc7fc5b28..5fc7fc5b28 100644 --- a/tests/topotests/bfd-ospf-topo1/rt2/zebra.conf +++ b/tests/topotests/bfd_ospf_topo1/rt2/zebra.conf diff --git a/tests/topotests/bfd-ospf-topo1/rt3/bfdd.conf b/tests/topotests/bfd_ospf_topo1/rt3/bfdd.conf index 437f063d8f..437f063d8f 100644 --- a/tests/topotests/bfd-ospf-topo1/rt3/bfdd.conf +++ b/tests/topotests/bfd_ospf_topo1/rt3/bfdd.conf diff --git a/tests/topotests/bfd-ospf-topo1/rt3/ospf6d.conf b/tests/topotests/bfd_ospf_topo1/rt3/ospf6d.conf index 3e8777019e..3e8777019e 100644 --- a/tests/topotests/bfd-ospf-topo1/rt3/ospf6d.conf +++ b/tests/topotests/bfd_ospf_topo1/rt3/ospf6d.conf diff --git a/tests/topotests/bfd-ospf-topo1/rt3/ospfd.conf b/tests/topotests/bfd_ospf_topo1/rt3/ospfd.conf index 1196e6d189..1196e6d189 100644 --- a/tests/topotests/bfd-ospf-topo1/rt3/ospfd.conf +++ b/tests/topotests/bfd_ospf_topo1/rt3/ospfd.conf diff --git a/tests/topotests/bfd-ospf-topo1/rt3/step2/show_bfd_peers.ref b/tests/topotests/bfd_ospf_topo1/rt3/step2/show_bfd_peers.ref index d6df1ebfb2..d6df1ebfb2 100644 --- a/tests/topotests/bfd-ospf-topo1/rt3/step2/show_bfd_peers.ref +++ b/tests/topotests/bfd_ospf_topo1/rt3/step2/show_bfd_peers.ref diff --git a/tests/topotests/bfd-ospf-topo1/rt3/zebra.conf b/tests/topotests/bfd_ospf_topo1/rt3/zebra.conf index d368de9bbe..d368de9bbe 100644 --- a/tests/topotests/bfd-ospf-topo1/rt3/zebra.conf +++ b/tests/topotests/bfd_ospf_topo1/rt3/zebra.conf diff --git a/tests/topotests/bfd-ospf-topo1/rt4/bfdd.conf b/tests/topotests/bfd_ospf_topo1/rt4/bfdd.conf index f35e772790..f35e772790 100644 --- a/tests/topotests/bfd-ospf-topo1/rt4/bfdd.conf +++ b/tests/topotests/bfd_ospf_topo1/rt4/bfdd.conf diff --git a/tests/topotests/bfd-ospf-topo1/rt4/ospf6d.conf b/tests/topotests/bfd_ospf_topo1/rt4/ospf6d.conf index bccd1e75bd..bccd1e75bd 100644 --- a/tests/topotests/bfd-ospf-topo1/rt4/ospf6d.conf +++ b/tests/topotests/bfd_ospf_topo1/rt4/ospf6d.conf diff --git a/tests/topotests/bfd-ospf-topo1/rt4/ospfd.conf b/tests/topotests/bfd_ospf_topo1/rt4/ospfd.conf index 3a2568b4ab..3a2568b4ab 100644 --- a/tests/topotests/bfd-ospf-topo1/rt4/ospfd.conf +++ b/tests/topotests/bfd_ospf_topo1/rt4/ospfd.conf diff --git a/tests/topotests/bfd-ospf-topo1/rt4/zebra.conf b/tests/topotests/bfd_ospf_topo1/rt4/zebra.conf index 7b053bac35..7b053bac35 100644 --- a/tests/topotests/bfd-ospf-topo1/rt4/zebra.conf +++ b/tests/topotests/bfd_ospf_topo1/rt4/zebra.conf diff --git a/tests/topotests/bfd-ospf-topo1/rt5/bfdd.conf b/tests/topotests/bfd_ospf_topo1/rt5/bfdd.conf index f35e772790..f35e772790 100644 --- a/tests/topotests/bfd-ospf-topo1/rt5/bfdd.conf +++ b/tests/topotests/bfd_ospf_topo1/rt5/bfdd.conf diff --git a/tests/topotests/bfd-ospf-topo1/rt5/ospf6d.conf b/tests/topotests/bfd_ospf_topo1/rt5/ospf6d.conf index 766862276c..766862276c 100644 --- a/tests/topotests/bfd-ospf-topo1/rt5/ospf6d.conf +++ b/tests/topotests/bfd_ospf_topo1/rt5/ospf6d.conf diff --git a/tests/topotests/bfd-ospf-topo1/rt5/ospfd.conf b/tests/topotests/bfd_ospf_topo1/rt5/ospfd.conf index a35de5f45f..a35de5f45f 100644 --- a/tests/topotests/bfd-ospf-topo1/rt5/ospfd.conf +++ b/tests/topotests/bfd_ospf_topo1/rt5/ospfd.conf diff --git a/tests/topotests/bfd-ospf-topo1/rt5/zebra.conf b/tests/topotests/bfd_ospf_topo1/rt5/zebra.conf index 0b7c9e02f3..0b7c9e02f3 100644 --- a/tests/topotests/bfd-ospf-topo1/rt5/zebra.conf +++ b/tests/topotests/bfd_ospf_topo1/rt5/zebra.conf diff --git a/tests/topotests/bfd-ospf-topo1/test_bfd_ospf_topo1.py b/tests/topotests/bfd_ospf_topo1/test_bfd_ospf_topo1.py index ae148f948c..ae148f948c 100755 --- a/tests/topotests/bfd-ospf-topo1/test_bfd_ospf_topo1.py +++ b/tests/topotests/bfd_ospf_topo1/test_bfd_ospf_topo1.py diff --git a/tests/topotests/bfd-profiles-topo1/__init__.py b/tests/topotests/bfd_profiles_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bfd-profiles-topo1/__init__.py +++ b/tests/topotests/bfd_profiles_topo1/__init__.py diff --git a/tests/topotests/bfd-profiles-topo1/r1/bfd-peers-initial.json b/tests/topotests/bfd_profiles_topo1/r1/bfd-peers-initial.json index 86a7e5139c..86a7e5139c 100644 --- a/tests/topotests/bfd-profiles-topo1/r1/bfd-peers-initial.json +++ b/tests/topotests/bfd_profiles_topo1/r1/bfd-peers-initial.json diff --git a/tests/topotests/bfd-profiles-topo1/r1/bfdd.conf b/tests/topotests/bfd_profiles_topo1/r1/bfdd.conf index 688f2e839c..688f2e839c 100644 --- a/tests/topotests/bfd-profiles-topo1/r1/bfdd.conf +++ b/tests/topotests/bfd_profiles_topo1/r1/bfdd.conf diff --git a/tests/topotests/bfd-profiles-topo1/r1/ospfd.conf b/tests/topotests/bfd_profiles_topo1/r1/ospfd.conf index fcea5d48fc..fcea5d48fc 100644 --- a/tests/topotests/bfd-profiles-topo1/r1/ospfd.conf +++ b/tests/topotests/bfd_profiles_topo1/r1/ospfd.conf diff --git a/tests/topotests/bfd-profiles-topo1/r1/zebra.conf b/tests/topotests/bfd_profiles_topo1/r1/zebra.conf index 4b7982b235..4b7982b235 100644 --- a/tests/topotests/bfd-profiles-topo1/r1/zebra.conf +++ b/tests/topotests/bfd_profiles_topo1/r1/zebra.conf diff --git a/tests/topotests/bfd-profiles-topo1/r2/bfd-peers-initial.json b/tests/topotests/bfd_profiles_topo1/r2/bfd-peers-initial.json index 503f776aec..503f776aec 100644 --- a/tests/topotests/bfd-profiles-topo1/r2/bfd-peers-initial.json +++ b/tests/topotests/bfd_profiles_topo1/r2/bfd-peers-initial.json diff --git a/tests/topotests/bfd-profiles-topo1/r2/bfdd.conf b/tests/topotests/bfd_profiles_topo1/r2/bfdd.conf index 700c46ba1e..700c46ba1e 100644 --- a/tests/topotests/bfd-profiles-topo1/r2/bfdd.conf +++ b/tests/topotests/bfd_profiles_topo1/r2/bfdd.conf diff --git a/tests/topotests/bfd-profiles-topo1/r2/bgpd.conf b/tests/topotests/bfd_profiles_topo1/r2/bgpd.conf index 0c3db97bc1..0c3db97bc1 100644 --- a/tests/topotests/bfd-profiles-topo1/r2/bgpd.conf +++ b/tests/topotests/bfd_profiles_topo1/r2/bgpd.conf diff --git a/tests/topotests/bfd-profiles-topo1/r2/zebra.conf b/tests/topotests/bfd_profiles_topo1/r2/zebra.conf index 6acef139b9..6acef139b9 100644 --- a/tests/topotests/bfd-profiles-topo1/r2/zebra.conf +++ b/tests/topotests/bfd_profiles_topo1/r2/zebra.conf diff --git a/tests/topotests/bfd-profiles-topo1/r3/bfd-peers-initial.json b/tests/topotests/bfd_profiles_topo1/r3/bfd-peers-initial.json index d987a0ae7d..d987a0ae7d 100644 --- a/tests/topotests/bfd-profiles-topo1/r3/bfd-peers-initial.json +++ b/tests/topotests/bfd_profiles_topo1/r3/bfd-peers-initial.json diff --git a/tests/topotests/bfd-profiles-topo1/r3/bfdd.conf b/tests/topotests/bfd_profiles_topo1/r3/bfdd.conf index 08eb0468d6..08eb0468d6 100644 --- a/tests/topotests/bfd-profiles-topo1/r3/bfdd.conf +++ b/tests/topotests/bfd_profiles_topo1/r3/bfdd.conf diff --git a/tests/topotests/bfd-profiles-topo1/r3/bgpd.conf b/tests/topotests/bfd_profiles_topo1/r3/bgpd.conf index 65647b39e5..65647b39e5 100644 --- a/tests/topotests/bfd-profiles-topo1/r3/bgpd.conf +++ b/tests/topotests/bfd_profiles_topo1/r3/bgpd.conf diff --git a/tests/topotests/bfd-profiles-topo1/r3/isisd.conf b/tests/topotests/bfd_profiles_topo1/r3/isisd.conf index ca965e3956..ca965e3956 100644 --- a/tests/topotests/bfd-profiles-topo1/r3/isisd.conf +++ b/tests/topotests/bfd_profiles_topo1/r3/isisd.conf diff --git a/tests/topotests/bfd-profiles-topo1/r3/zebra.conf b/tests/topotests/bfd_profiles_topo1/r3/zebra.conf index 2297bfafe9..2297bfafe9 100644 --- a/tests/topotests/bfd-profiles-topo1/r3/zebra.conf +++ b/tests/topotests/bfd_profiles_topo1/r3/zebra.conf diff --git a/tests/topotests/bfd-profiles-topo1/r4/bfd-peers-initial.json b/tests/topotests/bfd_profiles_topo1/r4/bfd-peers-initial.json index 9ab7479979..9ab7479979 100644 --- a/tests/topotests/bfd-profiles-topo1/r4/bfd-peers-initial.json +++ b/tests/topotests/bfd_profiles_topo1/r4/bfd-peers-initial.json diff --git a/tests/topotests/bfd-profiles-topo1/r4/bfdd.conf b/tests/topotests/bfd_profiles_topo1/r4/bfdd.conf index 4f5e022077..4f5e022077 100644 --- a/tests/topotests/bfd-profiles-topo1/r4/bfdd.conf +++ b/tests/topotests/bfd_profiles_topo1/r4/bfdd.conf diff --git a/tests/topotests/bfd-profiles-topo1/r4/bgpd.conf b/tests/topotests/bfd_profiles_topo1/r4/bgpd.conf index 200937a9a5..200937a9a5 100644 --- a/tests/topotests/bfd-profiles-topo1/r4/bgpd.conf +++ b/tests/topotests/bfd_profiles_topo1/r4/bgpd.conf diff --git a/tests/topotests/bfd-profiles-topo1/r4/isisd.conf b/tests/topotests/bfd_profiles_topo1/r4/isisd.conf index d8ffc9bc2c..d8ffc9bc2c 100644 --- a/tests/topotests/bfd-profiles-topo1/r4/isisd.conf +++ b/tests/topotests/bfd_profiles_topo1/r4/isisd.conf diff --git a/tests/topotests/bfd-profiles-topo1/r4/ospf6d.conf b/tests/topotests/bfd_profiles_topo1/r4/ospf6d.conf index 4ef28c39ca..4ef28c39ca 100644 --- a/tests/topotests/bfd-profiles-topo1/r4/ospf6d.conf +++ b/tests/topotests/bfd_profiles_topo1/r4/ospf6d.conf diff --git a/tests/topotests/bfd-profiles-topo1/r4/zebra.conf b/tests/topotests/bfd_profiles_topo1/r4/zebra.conf index 753041f952..753041f952 100644 --- a/tests/topotests/bfd-profiles-topo1/r4/zebra.conf +++ b/tests/topotests/bfd_profiles_topo1/r4/zebra.conf diff --git a/tests/topotests/bfd-profiles-topo1/r5/bfd-peers-initial.json b/tests/topotests/bfd_profiles_topo1/r5/bfd-peers-initial.json index 0fe56d576b..0fe56d576b 100644 --- a/tests/topotests/bfd-profiles-topo1/r5/bfd-peers-initial.json +++ b/tests/topotests/bfd_profiles_topo1/r5/bfd-peers-initial.json diff --git a/tests/topotests/bfd-profiles-topo1/r5/bfdd.conf b/tests/topotests/bfd_profiles_topo1/r5/bfdd.conf index 74dae5a60d..74dae5a60d 100644 --- a/tests/topotests/bfd-profiles-topo1/r5/bfdd.conf +++ b/tests/topotests/bfd_profiles_topo1/r5/bfdd.conf diff --git a/tests/topotests/bfd-profiles-topo1/r5/ospf6d.conf b/tests/topotests/bfd_profiles_topo1/r5/ospf6d.conf index 20b53cfc55..20b53cfc55 100644 --- a/tests/topotests/bfd-profiles-topo1/r5/ospf6d.conf +++ b/tests/topotests/bfd_profiles_topo1/r5/ospf6d.conf diff --git a/tests/topotests/bfd-profiles-topo1/r5/zebra.conf b/tests/topotests/bfd_profiles_topo1/r5/zebra.conf index de8ae1644b..de8ae1644b 100644 --- a/tests/topotests/bfd-profiles-topo1/r5/zebra.conf +++ b/tests/topotests/bfd_profiles_topo1/r5/zebra.conf diff --git a/tests/topotests/bfd-profiles-topo1/r6/bfd-peers-initial.json b/tests/topotests/bfd_profiles_topo1/r6/bfd-peers-initial.json index ec973eb365..ec973eb365 100644 --- a/tests/topotests/bfd-profiles-topo1/r6/bfd-peers-initial.json +++ b/tests/topotests/bfd_profiles_topo1/r6/bfd-peers-initial.json diff --git a/tests/topotests/bfd-profiles-topo1/r6/bfdd.conf b/tests/topotests/bfd_profiles_topo1/r6/bfdd.conf index 74dae5a60d..74dae5a60d 100644 --- a/tests/topotests/bfd-profiles-topo1/r6/bfdd.conf +++ b/tests/topotests/bfd_profiles_topo1/r6/bfdd.conf diff --git a/tests/topotests/bfd-profiles-topo1/r6/ospfd.conf b/tests/topotests/bfd_profiles_topo1/r6/ospfd.conf index d8fce344a8..d8fce344a8 100644 --- a/tests/topotests/bfd-profiles-topo1/r6/ospfd.conf +++ b/tests/topotests/bfd_profiles_topo1/r6/ospfd.conf diff --git a/tests/topotests/bfd-profiles-topo1/r6/zebra.conf b/tests/topotests/bfd_profiles_topo1/r6/zebra.conf index c0804b94a7..c0804b94a7 100644 --- a/tests/topotests/bfd-profiles-topo1/r6/zebra.conf +++ b/tests/topotests/bfd_profiles_topo1/r6/zebra.conf diff --git a/tests/topotests/bfd-profiles-topo1/test_bfd_profiles_topo1.dot b/tests/topotests/bfd_profiles_topo1/test_bfd_profiles_topo1.dot index a3936093aa..a3936093aa 100644 --- a/tests/topotests/bfd-profiles-topo1/test_bfd_profiles_topo1.dot +++ b/tests/topotests/bfd_profiles_topo1/test_bfd_profiles_topo1.dot diff --git a/tests/topotests/bfd-profiles-topo1/test_bfd_profiles_topo1.png b/tests/topotests/bfd_profiles_topo1/test_bfd_profiles_topo1.png Binary files differindex 775fae13f1..775fae13f1 100644 --- a/tests/topotests/bfd-profiles-topo1/test_bfd_profiles_topo1.png +++ b/tests/topotests/bfd_profiles_topo1/test_bfd_profiles_topo1.png diff --git a/tests/topotests/bfd-profiles-topo1/test_bfd_profiles_topo1.py b/tests/topotests/bfd_profiles_topo1/test_bfd_profiles_topo1.py index 4a2c8ee002..4a2c8ee002 100644 --- a/tests/topotests/bfd-profiles-topo1/test_bfd_profiles_topo1.py +++ b/tests/topotests/bfd_profiles_topo1/test_bfd_profiles_topo1.py diff --git a/tests/topotests/bfd-topo1/__init__.py b/tests/topotests/bfd_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bfd-topo1/__init__.py +++ b/tests/topotests/bfd_topo1/__init__.py diff --git a/tests/topotests/bfd-topo1/r1/bfdd.conf b/tests/topotests/bfd_topo1/r1/bfdd.conf index 4102000337..4102000337 100644 --- a/tests/topotests/bfd-topo1/r1/bfdd.conf +++ b/tests/topotests/bfd_topo1/r1/bfdd.conf diff --git a/tests/topotests/bfd-topo1/r1/bgp_prefixes.json b/tests/topotests/bfd_topo1/r1/bgp_prefixes.json index 1262f5e984..1262f5e984 100644 --- a/tests/topotests/bfd-topo1/r1/bgp_prefixes.json +++ b/tests/topotests/bfd_topo1/r1/bgp_prefixes.json diff --git a/tests/topotests/bfd-topo1/r1/bgp_summary.json b/tests/topotests/bfd_topo1/r1/bgp_summary.json index fa07d60df9..fa07d60df9 100644 --- a/tests/topotests/bfd-topo1/r1/bgp_summary.json +++ b/tests/topotests/bfd_topo1/r1/bgp_summary.json diff --git a/tests/topotests/bfd-topo1/r1/bgpd.conf b/tests/topotests/bfd_topo1/r1/bgpd.conf index 57bde1f234..57bde1f234 100644 --- a/tests/topotests/bfd-topo1/r1/bgpd.conf +++ b/tests/topotests/bfd_topo1/r1/bgpd.conf diff --git a/tests/topotests/bfd-topo1/r1/peers.json b/tests/topotests/bfd_topo1/r1/peers.json index f49768ff75..f49768ff75 100644 --- a/tests/topotests/bfd-topo1/r1/peers.json +++ b/tests/topotests/bfd_topo1/r1/peers.json diff --git a/tests/topotests/bfd-topo1/r1/zebra.conf b/tests/topotests/bfd_topo1/r1/zebra.conf index a14cd7ac88..a14cd7ac88 100644 --- a/tests/topotests/bfd-topo1/r1/zebra.conf +++ b/tests/topotests/bfd_topo1/r1/zebra.conf diff --git a/tests/topotests/bfd-topo1/r2/bfdd.conf b/tests/topotests/bfd_topo1/r2/bfdd.conf index 412450ca1e..412450ca1e 100644 --- a/tests/topotests/bfd-topo1/r2/bfdd.conf +++ b/tests/topotests/bfd_topo1/r2/bfdd.conf diff --git a/tests/topotests/bfd-topo1/r2/bgp_prefixes.json b/tests/topotests/bfd_topo1/r2/bgp_prefixes.json index 0d47c0fc30..0d47c0fc30 100644 --- a/tests/topotests/bfd-topo1/r2/bgp_prefixes.json +++ b/tests/topotests/bfd_topo1/r2/bgp_prefixes.json diff --git a/tests/topotests/bfd-topo1/r2/bgp_summary.json b/tests/topotests/bfd_topo1/r2/bgp_summary.json index c0ef11ac5f..c0ef11ac5f 100644 --- a/tests/topotests/bfd-topo1/r2/bgp_summary.json +++ b/tests/topotests/bfd_topo1/r2/bgp_summary.json diff --git a/tests/topotests/bfd-topo1/r2/bgpd.conf b/tests/topotests/bfd_topo1/r2/bgpd.conf index 50d75ab67f..50d75ab67f 100644 --- a/tests/topotests/bfd-topo1/r2/bgpd.conf +++ b/tests/topotests/bfd_topo1/r2/bgpd.conf diff --git a/tests/topotests/bfd-topo1/r2/peers.json b/tests/topotests/bfd_topo1/r2/peers.json index 267459c7a8..267459c7a8 100644 --- a/tests/topotests/bfd-topo1/r2/peers.json +++ b/tests/topotests/bfd_topo1/r2/peers.json diff --git a/tests/topotests/bfd-topo1/r2/zebra.conf b/tests/topotests/bfd_topo1/r2/zebra.conf index 568abe751e..568abe751e 100644 --- a/tests/topotests/bfd-topo1/r2/zebra.conf +++ b/tests/topotests/bfd_topo1/r2/zebra.conf diff --git a/tests/topotests/bfd-topo1/r3/bfdd.conf b/tests/topotests/bfd_topo1/r3/bfdd.conf index 4cf20bb904..4cf20bb904 100644 --- a/tests/topotests/bfd-topo1/r3/bfdd.conf +++ b/tests/topotests/bfd_topo1/r3/bfdd.conf diff --git a/tests/topotests/bfd-topo1/r3/bgp_prefixes.json b/tests/topotests/bfd_topo1/r3/bgp_prefixes.json index 36fca17bbf..36fca17bbf 100644 --- a/tests/topotests/bfd-topo1/r3/bgp_prefixes.json +++ b/tests/topotests/bfd_topo1/r3/bgp_prefixes.json diff --git a/tests/topotests/bfd-topo1/r3/bgp_summary.json b/tests/topotests/bfd_topo1/r3/bgp_summary.json index d47833377b..d47833377b 100644 --- a/tests/topotests/bfd-topo1/r3/bgp_summary.json +++ b/tests/topotests/bfd_topo1/r3/bgp_summary.json diff --git a/tests/topotests/bfd-topo1/r3/bgpd.conf b/tests/topotests/bfd_topo1/r3/bgpd.conf index ce6055d518..ce6055d518 100644 --- a/tests/topotests/bfd-topo1/r3/bgpd.conf +++ b/tests/topotests/bfd_topo1/r3/bgpd.conf diff --git a/tests/topotests/bfd-topo1/r3/peers.json b/tests/topotests/bfd_topo1/r3/peers.json index ef38008643..ef38008643 100644 --- a/tests/topotests/bfd-topo1/r3/peers.json +++ b/tests/topotests/bfd_topo1/r3/peers.json diff --git a/tests/topotests/bfd-topo1/r3/zebra.conf b/tests/topotests/bfd_topo1/r3/zebra.conf index b4fd80fa10..b4fd80fa10 100644 --- a/tests/topotests/bfd-topo1/r3/zebra.conf +++ b/tests/topotests/bfd_topo1/r3/zebra.conf diff --git a/tests/topotests/bfd-topo1/r4/bfdd.conf b/tests/topotests/bfd_topo1/r4/bfdd.conf index 34b88c9a35..34b88c9a35 100644 --- a/tests/topotests/bfd-topo1/r4/bfdd.conf +++ b/tests/topotests/bfd_topo1/r4/bfdd.conf diff --git a/tests/topotests/bfd-topo1/r4/bgp_prefixes.json b/tests/topotests/bfd_topo1/r4/bgp_prefixes.json index efe7d47b1a..efe7d47b1a 100644 --- a/tests/topotests/bfd-topo1/r4/bgp_prefixes.json +++ b/tests/topotests/bfd_topo1/r4/bgp_prefixes.json diff --git a/tests/topotests/bfd-topo1/r4/bgp_summary.json b/tests/topotests/bfd_topo1/r4/bgp_summary.json index 7d81784b56..7d81784b56 100644 --- a/tests/topotests/bfd-topo1/r4/bgp_summary.json +++ b/tests/topotests/bfd_topo1/r4/bgp_summary.json diff --git a/tests/topotests/bfd-topo1/r4/bgpd.conf b/tests/topotests/bfd_topo1/r4/bgpd.conf index 0d032b4cdd..0d032b4cdd 100644 --- a/tests/topotests/bfd-topo1/r4/bgpd.conf +++ b/tests/topotests/bfd_topo1/r4/bgpd.conf diff --git a/tests/topotests/bfd-topo1/r4/peers.json b/tests/topotests/bfd_topo1/r4/peers.json index 37140089e1..37140089e1 100644 --- a/tests/topotests/bfd-topo1/r4/peers.json +++ b/tests/topotests/bfd_topo1/r4/peers.json diff --git a/tests/topotests/bfd-topo1/r4/zebra.conf b/tests/topotests/bfd_topo1/r4/zebra.conf index afdd44b1ab..afdd44b1ab 100644 --- a/tests/topotests/bfd-topo1/r4/zebra.conf +++ b/tests/topotests/bfd_topo1/r4/zebra.conf diff --git a/tests/topotests/bfd-topo1/test_bfd_topo1.dot b/tests/topotests/bfd_topo1/test_bfd_topo1.dot index c84ace2780..c84ace2780 100644 --- a/tests/topotests/bfd-topo1/test_bfd_topo1.dot +++ b/tests/topotests/bfd_topo1/test_bfd_topo1.dot diff --git a/tests/topotests/bfd-topo1/test_bfd_topo1.jpg b/tests/topotests/bfd_topo1/test_bfd_topo1.jpg Binary files differindex 4d6d56e072..4d6d56e072 100644 --- a/tests/topotests/bfd-topo1/test_bfd_topo1.jpg +++ b/tests/topotests/bfd_topo1/test_bfd_topo1.jpg diff --git a/tests/topotests/bfd-topo1/test_bfd_topo1.py b/tests/topotests/bfd_topo1/test_bfd_topo1.py index 86bdcfed04..86bdcfed04 100644 --- a/tests/topotests/bfd-topo1/test_bfd_topo1.py +++ b/tests/topotests/bfd_topo1/test_bfd_topo1.py diff --git a/tests/topotests/bfd-topo2/__init__.py b/tests/topotests/bfd_topo2/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bfd-topo2/__init__.py +++ b/tests/topotests/bfd_topo2/__init__.py diff --git a/tests/topotests/bfd-topo2/r1/bfdd.conf b/tests/topotests/bfd_topo2/r1/bfdd.conf index f03135021e..f03135021e 100644 --- a/tests/topotests/bfd-topo2/r1/bfdd.conf +++ b/tests/topotests/bfd_topo2/r1/bfdd.conf diff --git a/tests/topotests/bfd-topo2/r1/bgpd.conf b/tests/topotests/bfd_topo2/r1/bgpd.conf index 0918796e95..0918796e95 100644 --- a/tests/topotests/bfd-topo2/r1/bgpd.conf +++ b/tests/topotests/bfd_topo2/r1/bgpd.conf diff --git a/tests/topotests/bfd-topo2/r1/ipv4_routes.json b/tests/topotests/bfd_topo2/r1/ipv4_routes.json index 650c0a81bb..650c0a81bb 100644 --- a/tests/topotests/bfd-topo2/r1/ipv4_routes.json +++ b/tests/topotests/bfd_topo2/r1/ipv4_routes.json diff --git a/tests/topotests/bfd-topo2/r1/ipv6_routes.json b/tests/topotests/bfd_topo2/r1/ipv6_routes.json index 50c1f9ad8f..50c1f9ad8f 100644 --- a/tests/topotests/bfd-topo2/r1/ipv6_routes.json +++ b/tests/topotests/bfd_topo2/r1/ipv6_routes.json diff --git a/tests/topotests/bfd-topo2/r1/peers.json b/tests/topotests/bfd_topo2/r1/peers.json index 9bce991d0d..9bce991d0d 100644 --- a/tests/topotests/bfd-topo2/r1/peers.json +++ b/tests/topotests/bfd_topo2/r1/peers.json diff --git a/tests/topotests/bfd-topo2/r1/zebra.conf b/tests/topotests/bfd_topo2/r1/zebra.conf index 7fe5eb218f..7fe5eb218f 100644 --- a/tests/topotests/bfd-topo2/r1/zebra.conf +++ b/tests/topotests/bfd_topo2/r1/zebra.conf diff --git a/tests/topotests/bfd-topo2/r2/bfdd.conf b/tests/topotests/bfd_topo2/r2/bfdd.conf index f35e772790..f35e772790 100644 --- a/tests/topotests/bfd-topo2/r2/bfdd.conf +++ b/tests/topotests/bfd_topo2/r2/bfdd.conf diff --git a/tests/topotests/bfd-topo2/r2/bgpd.conf b/tests/topotests/bfd_topo2/r2/bgpd.conf index 55d48560e7..55d48560e7 100644 --- a/tests/topotests/bfd-topo2/r2/bgpd.conf +++ b/tests/topotests/bfd_topo2/r2/bgpd.conf diff --git a/tests/topotests/bfd-topo2/r2/ipv4_routes.json b/tests/topotests/bfd_topo2/r2/ipv4_routes.json index 3d49b178b5..3d49b178b5 100644 --- a/tests/topotests/bfd-topo2/r2/ipv4_routes.json +++ b/tests/topotests/bfd_topo2/r2/ipv4_routes.json diff --git a/tests/topotests/bfd-topo2/r2/ipv6_routes.json b/tests/topotests/bfd_topo2/r2/ipv6_routes.json index 4f3c74c5e2..4f3c74c5e2 100644 --- a/tests/topotests/bfd-topo2/r2/ipv6_routes.json +++ b/tests/topotests/bfd_topo2/r2/ipv6_routes.json diff --git a/tests/topotests/bfd-topo2/r2/ospf6d.conf b/tests/topotests/bfd_topo2/r2/ospf6d.conf index 48a729ce19..48a729ce19 100644 --- a/tests/topotests/bfd-topo2/r2/ospf6d.conf +++ b/tests/topotests/bfd_topo2/r2/ospf6d.conf diff --git a/tests/topotests/bfd-topo2/r2/ospfd.conf b/tests/topotests/bfd_topo2/r2/ospfd.conf index c786f1fe43..c786f1fe43 100644 --- a/tests/topotests/bfd-topo2/r2/ospfd.conf +++ b/tests/topotests/bfd_topo2/r2/ospfd.conf diff --git a/tests/topotests/bfd-topo2/r2/peers.json b/tests/topotests/bfd_topo2/r2/peers.json index ec2135ce37..ec2135ce37 100644 --- a/tests/topotests/bfd-topo2/r2/peers.json +++ b/tests/topotests/bfd_topo2/r2/peers.json diff --git a/tests/topotests/bfd-topo2/r2/zebra.conf b/tests/topotests/bfd_topo2/r2/zebra.conf index cccbf6574a..cccbf6574a 100644 --- a/tests/topotests/bfd-topo2/r2/zebra.conf +++ b/tests/topotests/bfd_topo2/r2/zebra.conf diff --git a/tests/topotests/bfd-topo2/r3/bfdd.conf b/tests/topotests/bfd_topo2/r3/bfdd.conf index f35e772790..f35e772790 100644 --- a/tests/topotests/bfd-topo2/r3/bfdd.conf +++ b/tests/topotests/bfd_topo2/r3/bfdd.conf diff --git a/tests/topotests/bfd-topo2/r3/ipv4_routes.json b/tests/topotests/bfd_topo2/r3/ipv4_routes.json index e96fdc0b15..e96fdc0b15 100644 --- a/tests/topotests/bfd-topo2/r3/ipv4_routes.json +++ b/tests/topotests/bfd_topo2/r3/ipv4_routes.json diff --git a/tests/topotests/bfd-topo2/r3/ipv6_routes.json b/tests/topotests/bfd_topo2/r3/ipv6_routes.json index 2c63c08510..2c63c08510 100644 --- a/tests/topotests/bfd-topo2/r3/ipv6_routes.json +++ b/tests/topotests/bfd_topo2/r3/ipv6_routes.json diff --git a/tests/topotests/bfd-topo2/r3/ospfd.conf b/tests/topotests/bfd_topo2/r3/ospfd.conf index 932ab4da63..932ab4da63 100644 --- a/tests/topotests/bfd-topo2/r3/ospfd.conf +++ b/tests/topotests/bfd_topo2/r3/ospfd.conf diff --git a/tests/topotests/bfd-topo2/r3/peers.json b/tests/topotests/bfd_topo2/r3/peers.json index c19c980338..c19c980338 100644 --- a/tests/topotests/bfd-topo2/r3/peers.json +++ b/tests/topotests/bfd_topo2/r3/peers.json diff --git a/tests/topotests/bfd-topo2/r3/zebra.conf b/tests/topotests/bfd_topo2/r3/zebra.conf index 96fd08c729..96fd08c729 100644 --- a/tests/topotests/bfd-topo2/r3/zebra.conf +++ b/tests/topotests/bfd_topo2/r3/zebra.conf diff --git a/tests/topotests/bfd-topo2/r4/bfdd.conf b/tests/topotests/bfd_topo2/r4/bfdd.conf index 0173dc9be2..0173dc9be2 100644 --- a/tests/topotests/bfd-topo2/r4/bfdd.conf +++ b/tests/topotests/bfd_topo2/r4/bfdd.conf diff --git a/tests/topotests/bfd-topo2/r4/ipv4_routes.json b/tests/topotests/bfd_topo2/r4/ipv4_routes.json index dc394aa891..dc394aa891 100644 --- a/tests/topotests/bfd-topo2/r4/ipv4_routes.json +++ b/tests/topotests/bfd_topo2/r4/ipv4_routes.json diff --git a/tests/topotests/bfd-topo2/r4/ipv6_routes.json b/tests/topotests/bfd_topo2/r4/ipv6_routes.json index c828575c84..c828575c84 100644 --- a/tests/topotests/bfd-topo2/r4/ipv6_routes.json +++ b/tests/topotests/bfd_topo2/r4/ipv6_routes.json diff --git a/tests/topotests/bfd-topo2/r4/ospf6d.conf b/tests/topotests/bfd_topo2/r4/ospf6d.conf index 57f7f6c079..57f7f6c079 100644 --- a/tests/topotests/bfd-topo2/r4/ospf6d.conf +++ b/tests/topotests/bfd_topo2/r4/ospf6d.conf diff --git a/tests/topotests/bfd-topo2/r4/peers.json b/tests/topotests/bfd_topo2/r4/peers.json index dd26b9b580..dd26b9b580 100644 --- a/tests/topotests/bfd-topo2/r4/peers.json +++ b/tests/topotests/bfd_topo2/r4/peers.json diff --git a/tests/topotests/bfd-topo2/r4/zebra.conf b/tests/topotests/bfd_topo2/r4/zebra.conf index e4f8fd8514..e4f8fd8514 100644 --- a/tests/topotests/bfd-topo2/r4/zebra.conf +++ b/tests/topotests/bfd_topo2/r4/zebra.conf diff --git a/tests/topotests/bfd-topo2/test_bfd_topo2.dot b/tests/topotests/bfd_topo2/test_bfd_topo2.dot index 6b68fb398f..6b68fb398f 100644 --- a/tests/topotests/bfd-topo2/test_bfd_topo2.dot +++ b/tests/topotests/bfd_topo2/test_bfd_topo2.dot diff --git a/tests/topotests/bfd-topo2/test_bfd_topo2.jpg b/tests/topotests/bfd_topo2/test_bfd_topo2.jpg Binary files differindex 35fe562a80..35fe562a80 100644 --- a/tests/topotests/bfd-topo2/test_bfd_topo2.jpg +++ b/tests/topotests/bfd_topo2/test_bfd_topo2.jpg diff --git a/tests/topotests/bfd-topo2/test_bfd_topo2.py b/tests/topotests/bfd_topo2/test_bfd_topo2.py index e85b2644dd..e85b2644dd 100644 --- a/tests/topotests/bfd-topo2/test_bfd_topo2.py +++ b/tests/topotests/bfd_topo2/test_bfd_topo2.py diff --git a/tests/topotests/bfd-topo3/__init__.py b/tests/topotests/bfd_topo3/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bfd-topo3/__init__.py +++ b/tests/topotests/bfd_topo3/__init__.py diff --git a/tests/topotests/bfd-topo3/r1/bfd-peers.json b/tests/topotests/bfd_topo3/r1/bfd-peers.json index f8a354fc20..f8a354fc20 100644 --- a/tests/topotests/bfd-topo3/r1/bfd-peers.json +++ b/tests/topotests/bfd_topo3/r1/bfd-peers.json diff --git a/tests/topotests/bfd-topo3/r1/bfdd.conf b/tests/topotests/bfd_topo3/r1/bfdd.conf index 8e40b76d41..8e40b76d41 100644 --- a/tests/topotests/bfd-topo3/r1/bfdd.conf +++ b/tests/topotests/bfd_topo3/r1/bfdd.conf diff --git a/tests/topotests/bfd-topo3/r1/bgpd.conf b/tests/topotests/bfd_topo3/r1/bgpd.conf index 4c75d669c5..4c75d669c5 100644 --- a/tests/topotests/bfd-topo3/r1/bgpd.conf +++ b/tests/topotests/bfd_topo3/r1/bgpd.conf diff --git a/tests/topotests/bfd-topo3/r1/zebra.conf b/tests/topotests/bfd_topo3/r1/zebra.conf index 64aee48436..64aee48436 100644 --- a/tests/topotests/bfd-topo3/r1/zebra.conf +++ b/tests/topotests/bfd_topo3/r1/zebra.conf diff --git a/tests/topotests/bfd-topo3/r2/bfd-peers.json b/tests/topotests/bfd_topo3/r2/bfd-peers.json index 786d66dbe3..786d66dbe3 100644 --- a/tests/topotests/bfd-topo3/r2/bfd-peers.json +++ b/tests/topotests/bfd_topo3/r2/bfd-peers.json diff --git a/tests/topotests/bfd-topo3/r2/bfdd.conf b/tests/topotests/bfd_topo3/r2/bfdd.conf index 2a92e463e0..2a92e463e0 100644 --- a/tests/topotests/bfd-topo3/r2/bfdd.conf +++ b/tests/topotests/bfd_topo3/r2/bfdd.conf diff --git a/tests/topotests/bfd-topo3/r2/bgpd.conf b/tests/topotests/bfd_topo3/r2/bgpd.conf index 75225765e1..75225765e1 100644 --- a/tests/topotests/bfd-topo3/r2/bgpd.conf +++ b/tests/topotests/bfd_topo3/r2/bgpd.conf diff --git a/tests/topotests/bfd-topo3/r2/zebra.conf b/tests/topotests/bfd_topo3/r2/zebra.conf index c7e22d4804..c7e22d4804 100644 --- a/tests/topotests/bfd-topo3/r2/zebra.conf +++ b/tests/topotests/bfd_topo3/r2/zebra.conf diff --git a/tests/topotests/bfd-topo3/r3/bfd-peers.json b/tests/topotests/bfd_topo3/r3/bfd-peers.json index 1f58663a4e..1f58663a4e 100644 --- a/tests/topotests/bfd-topo3/r3/bfd-peers.json +++ b/tests/topotests/bfd_topo3/r3/bfd-peers.json diff --git a/tests/topotests/bfd-topo3/r3/bfdd.conf b/tests/topotests/bfd_topo3/r3/bfdd.conf index f7972c6ce5..f7972c6ce5 100644 --- a/tests/topotests/bfd-topo3/r3/bfdd.conf +++ b/tests/topotests/bfd_topo3/r3/bfdd.conf diff --git a/tests/topotests/bfd-topo3/r3/bgpd.conf b/tests/topotests/bfd_topo3/r3/bgpd.conf index 82adf8be9e..82adf8be9e 100644 --- a/tests/topotests/bfd-topo3/r3/bgpd.conf +++ b/tests/topotests/bfd_topo3/r3/bgpd.conf diff --git a/tests/topotests/bfd-topo3/r3/zebra.conf b/tests/topotests/bfd_topo3/r3/zebra.conf index 14248fb6f7..14248fb6f7 100644 --- a/tests/topotests/bfd-topo3/r3/zebra.conf +++ b/tests/topotests/bfd_topo3/r3/zebra.conf diff --git a/tests/topotests/bfd-topo3/r4/bfd-peers.json b/tests/topotests/bfd_topo3/r4/bfd-peers.json index 5477f39120..5477f39120 100644 --- a/tests/topotests/bfd-topo3/r4/bfd-peers.json +++ b/tests/topotests/bfd_topo3/r4/bfd-peers.json diff --git a/tests/topotests/bfd-topo3/r4/bfdd.conf b/tests/topotests/bfd_topo3/r4/bfdd.conf index f44abc0b8a..f44abc0b8a 100644 --- a/tests/topotests/bfd-topo3/r4/bfdd.conf +++ b/tests/topotests/bfd_topo3/r4/bfdd.conf diff --git a/tests/topotests/bfd-topo3/r4/bgpd.conf b/tests/topotests/bfd_topo3/r4/bgpd.conf index 0aab6e3017..0aab6e3017 100644 --- a/tests/topotests/bfd-topo3/r4/bgpd.conf +++ b/tests/topotests/bfd_topo3/r4/bgpd.conf diff --git a/tests/topotests/bfd-topo3/r4/zebra.conf b/tests/topotests/bfd_topo3/r4/zebra.conf index bf0cfcf42c..bf0cfcf42c 100644 --- a/tests/topotests/bfd-topo3/r4/zebra.conf +++ b/tests/topotests/bfd_topo3/r4/zebra.conf diff --git a/tests/topotests/bfd-topo3/test_bfd_topo3.dot b/tests/topotests/bfd_topo3/test_bfd_topo3.dot index 502cea11f2..502cea11f2 100644 --- a/tests/topotests/bfd-topo3/test_bfd_topo3.dot +++ b/tests/topotests/bfd_topo3/test_bfd_topo3.dot diff --git a/tests/topotests/bfd-topo3/test_bfd_topo3.jpg b/tests/topotests/bfd_topo3/test_bfd_topo3.jpg Binary files differindex 6b532560bf..6b532560bf 100644 --- a/tests/topotests/bfd-topo3/test_bfd_topo3.jpg +++ b/tests/topotests/bfd_topo3/test_bfd_topo3.jpg diff --git a/tests/topotests/bfd-topo3/test_bfd_topo3.py b/tests/topotests/bfd_topo3/test_bfd_topo3.py index 6bb223e203..6bb223e203 100644 --- a/tests/topotests/bfd-topo3/test_bfd_topo3.py +++ b/tests/topotests/bfd_topo3/test_bfd_topo3.py diff --git a/tests/topotests/bfd-vrf-topo1/__init__.py b/tests/topotests/bfd_vrf_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bfd-vrf-topo1/__init__.py +++ b/tests/topotests/bfd_vrf_topo1/__init__.py diff --git a/tests/topotests/bfd-vrf-topo1/r1/bfdd.conf b/tests/topotests/bfd_vrf_topo1/r1/bfdd.conf index 5e736a7fcc..5e736a7fcc 100644 --- a/tests/topotests/bfd-vrf-topo1/r1/bfdd.conf +++ b/tests/topotests/bfd_vrf_topo1/r1/bfdd.conf diff --git a/tests/topotests/bfd-vrf-topo1/r1/bgp_prefixes.json b/tests/topotests/bfd_vrf_topo1/r1/bgp_prefixes.json index 1262f5e984..1262f5e984 100644 --- a/tests/topotests/bfd-vrf-topo1/r1/bgp_prefixes.json +++ b/tests/topotests/bfd_vrf_topo1/r1/bgp_prefixes.json diff --git a/tests/topotests/bfd-vrf-topo1/r1/bgp_summary.json b/tests/topotests/bfd_vrf_topo1/r1/bgp_summary.json index fa07d60df9..fa07d60df9 100644 --- a/tests/topotests/bfd-vrf-topo1/r1/bgp_summary.json +++ b/tests/topotests/bfd_vrf_topo1/r1/bgp_summary.json diff --git a/tests/topotests/bfd-vrf-topo1/r1/bgpd.conf b/tests/topotests/bfd_vrf_topo1/r1/bgpd.conf index 5bb45b9863..5bb45b9863 100644 --- a/tests/topotests/bfd-vrf-topo1/r1/bgpd.conf +++ b/tests/topotests/bfd_vrf_topo1/r1/bgpd.conf diff --git a/tests/topotests/bfd-vrf-topo1/r1/peers.json b/tests/topotests/bfd_vrf_topo1/r1/peers.json index f49768ff75..f49768ff75 100644 --- a/tests/topotests/bfd-vrf-topo1/r1/peers.json +++ b/tests/topotests/bfd_vrf_topo1/r1/peers.json diff --git a/tests/topotests/bfd-vrf-topo1/r1/zebra.conf b/tests/topotests/bfd_vrf_topo1/r1/zebra.conf index fcd1e7db17..fcd1e7db17 100644 --- a/tests/topotests/bfd-vrf-topo1/r1/zebra.conf +++ b/tests/topotests/bfd_vrf_topo1/r1/zebra.conf diff --git a/tests/topotests/bfd-vrf-topo1/r2/bfdd.conf b/tests/topotests/bfd_vrf_topo1/r2/bfdd.conf index 94f502c7d9..94f502c7d9 100644 --- a/tests/topotests/bfd-vrf-topo1/r2/bfdd.conf +++ b/tests/topotests/bfd_vrf_topo1/r2/bfdd.conf diff --git a/tests/topotests/bfd-vrf-topo1/r2/bgp_prefixes.json b/tests/topotests/bfd_vrf_topo1/r2/bgp_prefixes.json index 0d47c0fc30..0d47c0fc30 100644 --- a/tests/topotests/bfd-vrf-topo1/r2/bgp_prefixes.json +++ b/tests/topotests/bfd_vrf_topo1/r2/bgp_prefixes.json diff --git a/tests/topotests/bfd-vrf-topo1/r2/bgp_summary.json b/tests/topotests/bfd_vrf_topo1/r2/bgp_summary.json index c0ef11ac5f..c0ef11ac5f 100644 --- a/tests/topotests/bfd-vrf-topo1/r2/bgp_summary.json +++ b/tests/topotests/bfd_vrf_topo1/r2/bgp_summary.json diff --git a/tests/topotests/bfd-vrf-topo1/r2/bgpd.conf b/tests/topotests/bfd_vrf_topo1/r2/bgpd.conf index b2aac74685..b2aac74685 100644 --- a/tests/topotests/bfd-vrf-topo1/r2/bgpd.conf +++ b/tests/topotests/bfd_vrf_topo1/r2/bgpd.conf diff --git a/tests/topotests/bfd-vrf-topo1/r2/peers.json b/tests/topotests/bfd_vrf_topo1/r2/peers.json index 267459c7a8..267459c7a8 100644 --- a/tests/topotests/bfd-vrf-topo1/r2/peers.json +++ b/tests/topotests/bfd_vrf_topo1/r2/peers.json diff --git a/tests/topotests/bfd-vrf-topo1/r2/zebra.conf b/tests/topotests/bfd_vrf_topo1/r2/zebra.conf index daffd1912e..daffd1912e 100644 --- a/tests/topotests/bfd-vrf-topo1/r2/zebra.conf +++ b/tests/topotests/bfd_vrf_topo1/r2/zebra.conf diff --git a/tests/topotests/bfd-vrf-topo1/r3/bfdd.conf b/tests/topotests/bfd_vrf_topo1/r3/bfdd.conf index 76910ac927..76910ac927 100644 --- a/tests/topotests/bfd-vrf-topo1/r3/bfdd.conf +++ b/tests/topotests/bfd_vrf_topo1/r3/bfdd.conf diff --git a/tests/topotests/bfd-vrf-topo1/r3/bgp_prefixes.json b/tests/topotests/bfd_vrf_topo1/r3/bgp_prefixes.json index 36fca17bbf..36fca17bbf 100644 --- a/tests/topotests/bfd-vrf-topo1/r3/bgp_prefixes.json +++ b/tests/topotests/bfd_vrf_topo1/r3/bgp_prefixes.json diff --git a/tests/topotests/bfd-vrf-topo1/r3/bgp_summary.json b/tests/topotests/bfd_vrf_topo1/r3/bgp_summary.json index d47833377b..d47833377b 100644 --- a/tests/topotests/bfd-vrf-topo1/r3/bgp_summary.json +++ b/tests/topotests/bfd_vrf_topo1/r3/bgp_summary.json diff --git a/tests/topotests/bfd-vrf-topo1/r3/bgpd.conf b/tests/topotests/bfd_vrf_topo1/r3/bgpd.conf index 1d7c730395..1d7c730395 100644 --- a/tests/topotests/bfd-vrf-topo1/r3/bgpd.conf +++ b/tests/topotests/bfd_vrf_topo1/r3/bgpd.conf diff --git a/tests/topotests/bfd-vrf-topo1/r3/peers.json b/tests/topotests/bfd_vrf_topo1/r3/peers.json index ef38008643..ef38008643 100644 --- a/tests/topotests/bfd-vrf-topo1/r3/peers.json +++ b/tests/topotests/bfd_vrf_topo1/r3/peers.json diff --git a/tests/topotests/bfd-vrf-topo1/r3/zebra.conf b/tests/topotests/bfd_vrf_topo1/r3/zebra.conf index f727c2d633..f727c2d633 100644 --- a/tests/topotests/bfd-vrf-topo1/r3/zebra.conf +++ b/tests/topotests/bfd_vrf_topo1/r3/zebra.conf diff --git a/tests/topotests/bfd-vrf-topo1/r4/bfdd.conf b/tests/topotests/bfd_vrf_topo1/r4/bfdd.conf index 63d0da7805..63d0da7805 100644 --- a/tests/topotests/bfd-vrf-topo1/r4/bfdd.conf +++ b/tests/topotests/bfd_vrf_topo1/r4/bfdd.conf diff --git a/tests/topotests/bfd-vrf-topo1/r4/bgp_prefixes.json b/tests/topotests/bfd_vrf_topo1/r4/bgp_prefixes.json index efe7d47b1a..efe7d47b1a 100644 --- a/tests/topotests/bfd-vrf-topo1/r4/bgp_prefixes.json +++ b/tests/topotests/bfd_vrf_topo1/r4/bgp_prefixes.json diff --git a/tests/topotests/bfd-vrf-topo1/r4/bgp_summary.json b/tests/topotests/bfd_vrf_topo1/r4/bgp_summary.json index 7d81784b56..7d81784b56 100644 --- a/tests/topotests/bfd-vrf-topo1/r4/bgp_summary.json +++ b/tests/topotests/bfd_vrf_topo1/r4/bgp_summary.json diff --git a/tests/topotests/bfd-vrf-topo1/r4/bgpd.conf b/tests/topotests/bfd_vrf_topo1/r4/bgpd.conf index f34035d460..f34035d460 100644 --- a/tests/topotests/bfd-vrf-topo1/r4/bgpd.conf +++ b/tests/topotests/bfd_vrf_topo1/r4/bgpd.conf diff --git a/tests/topotests/bfd-vrf-topo1/r4/peers.json b/tests/topotests/bfd_vrf_topo1/r4/peers.json index 37140089e1..37140089e1 100644 --- a/tests/topotests/bfd-vrf-topo1/r4/peers.json +++ b/tests/topotests/bfd_vrf_topo1/r4/peers.json diff --git a/tests/topotests/bfd-vrf-topo1/r4/zebra.conf b/tests/topotests/bfd_vrf_topo1/r4/zebra.conf index 69770dd2bf..69770dd2bf 100644 --- a/tests/topotests/bfd-vrf-topo1/r4/zebra.conf +++ b/tests/topotests/bfd_vrf_topo1/r4/zebra.conf diff --git a/tests/topotests/bfd-vrf-topo1/test_bfd_vrf_topo1.dot b/tests/topotests/bfd_vrf_topo1/test_bfd_vrf_topo1.dot index c84ace2780..c84ace2780 100644 --- a/tests/topotests/bfd-vrf-topo1/test_bfd_vrf_topo1.dot +++ b/tests/topotests/bfd_vrf_topo1/test_bfd_vrf_topo1.dot diff --git a/tests/topotests/bfd-vrf-topo1/test_bfd_vrf_topo1.jpg b/tests/topotests/bfd_vrf_topo1/test_bfd_vrf_topo1.jpg Binary files differindex 4d6d56e072..4d6d56e072 100644 --- a/tests/topotests/bfd-vrf-topo1/test_bfd_vrf_topo1.jpg +++ b/tests/topotests/bfd_vrf_topo1/test_bfd_vrf_topo1.jpg diff --git a/tests/topotests/bfd-vrf-topo1/test_bfd_vrf_topo1.py b/tests/topotests/bfd_vrf_topo1/test_bfd_vrf_topo1.py index 8a1ffe085d..8a1ffe085d 100644 --- a/tests/topotests/bfd-vrf-topo1/test_bfd_vrf_topo1.py +++ b/tests/topotests/bfd_vrf_topo1/test_bfd_vrf_topo1.py diff --git a/tests/topotests/bgp-aggregator-zero/__init__.py b/tests/topotests/bgp_aggregate_address_origin/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-aggregator-zero/__init__.py +++ b/tests/topotests/bgp_aggregate_address_origin/__init__.py diff --git a/tests/topotests/bgp_aggregate-address_origin/r1/bgpd.conf b/tests/topotests/bgp_aggregate_address_origin/r1/bgpd.conf index 3486c64c55..3486c64c55 100644 --- a/tests/topotests/bgp_aggregate-address_origin/r1/bgpd.conf +++ b/tests/topotests/bgp_aggregate_address_origin/r1/bgpd.conf diff --git a/tests/topotests/bgp_aggregate-address_origin/r1/zebra.conf b/tests/topotests/bgp_aggregate_address_origin/r1/zebra.conf index 0a283c06d5..0a283c06d5 100644 --- a/tests/topotests/bgp_aggregate-address_origin/r1/zebra.conf +++ b/tests/topotests/bgp_aggregate_address_origin/r1/zebra.conf diff --git a/tests/topotests/bgp_aggregate-address_origin/r2/bgpd.conf b/tests/topotests/bgp_aggregate_address_origin/r2/bgpd.conf index b2d945583c..b2d945583c 100644 --- a/tests/topotests/bgp_aggregate-address_origin/r2/bgpd.conf +++ b/tests/topotests/bgp_aggregate_address_origin/r2/bgpd.conf diff --git a/tests/topotests/bgp-default-ipv4-ipv6-unicast/r2/zebra.conf b/tests/topotests/bgp_aggregate_address_origin/r2/zebra.conf index 606c17bec9..606c17bec9 100644 --- a/tests/topotests/bgp-default-ipv4-ipv6-unicast/r2/zebra.conf +++ b/tests/topotests/bgp_aggregate_address_origin/r2/zebra.conf diff --git a/tests/topotests/bgp_aggregate-address_origin/test_bgp_aggregate-address_origin.py b/tests/topotests/bgp_aggregate_address_origin/test_bgp_aggregate-address_origin.py index be07fab87b..be07fab87b 100644 --- a/tests/topotests/bgp_aggregate-address_origin/test_bgp_aggregate-address_origin.py +++ b/tests/topotests/bgp_aggregate_address_origin/test_bgp_aggregate-address_origin.py diff --git a/tests/topotests/bgp-basic-functionality-topo1/__init__.py b/tests/topotests/bgp_aggregate_address_route_map/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-basic-functionality-topo1/__init__.py +++ b/tests/topotests/bgp_aggregate_address_route_map/__init__.py diff --git a/tests/topotests/bgp_aggregate-address_route-map/r1/bgpd.conf b/tests/topotests/bgp_aggregate_address_route_map/r1/bgpd.conf index 7fb55cf001..7fb55cf001 100644 --- a/tests/topotests/bgp_aggregate-address_route-map/r1/bgpd.conf +++ b/tests/topotests/bgp_aggregate_address_route_map/r1/bgpd.conf diff --git a/tests/topotests/bgp_aggregate-address_route-map/r1/zebra.conf b/tests/topotests/bgp_aggregate_address_route_map/r1/zebra.conf index 0a283c06d5..0a283c06d5 100644 --- a/tests/topotests/bgp_aggregate-address_route-map/r1/zebra.conf +++ b/tests/topotests/bgp_aggregate_address_route_map/r1/zebra.conf diff --git a/tests/topotests/bgp_aggregate-address_route-map/r2/bgpd.conf b/tests/topotests/bgp_aggregate_address_route_map/r2/bgpd.conf index b2d945583c..b2d945583c 100644 --- a/tests/topotests/bgp_aggregate-address_route-map/r2/bgpd.conf +++ b/tests/topotests/bgp_aggregate_address_route_map/r2/bgpd.conf diff --git a/tests/topotests/bgp_aggregate-address_origin/r2/zebra.conf b/tests/topotests/bgp_aggregate_address_route_map/r2/zebra.conf index 606c17bec9..606c17bec9 100644 --- a/tests/topotests/bgp_aggregate-address_origin/r2/zebra.conf +++ b/tests/topotests/bgp_aggregate_address_route_map/r2/zebra.conf diff --git a/tests/topotests/bgp_aggregate-address_route-map/test_bgp_aggregate-address_route-map.py b/tests/topotests/bgp_aggregate_address_route_map/test_bgp_aggregate-address_route-map.py index 484f40251f..484f40251f 100644 --- a/tests/topotests/bgp_aggregate-address_route-map/test_bgp_aggregate-address_route-map.py +++ b/tests/topotests/bgp_aggregate_address_route_map/test_bgp_aggregate-address_route-map.py diff --git a/tests/topotests/bgp-community-alias/__init__.py b/tests/topotests/bgp_aggregator_zero/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-community-alias/__init__.py +++ b/tests/topotests/bgp_aggregator_zero/__init__.py diff --git a/tests/topotests/bgp-aggregator-zero/exabgp.env b/tests/topotests/bgp_aggregator_zero/exabgp.env index 28e642360a..28e642360a 100644 --- a/tests/topotests/bgp-aggregator-zero/exabgp.env +++ b/tests/topotests/bgp_aggregator_zero/exabgp.env diff --git a/tests/topotests/bgp-aggregator-zero/peer1/exabgp.cfg b/tests/topotests/bgp_aggregator_zero/peer1/exabgp.cfg index b3f25272d2..b3f25272d2 100644 --- a/tests/topotests/bgp-aggregator-zero/peer1/exabgp.cfg +++ b/tests/topotests/bgp_aggregator_zero/peer1/exabgp.cfg diff --git a/tests/topotests/bgp-aggregator-zero/r1/bgpd.conf b/tests/topotests/bgp_aggregator_zero/r1/bgpd.conf index 002a5c78c0..002a5c78c0 100644 --- a/tests/topotests/bgp-aggregator-zero/r1/bgpd.conf +++ b/tests/topotests/bgp_aggregator_zero/r1/bgpd.conf diff --git a/tests/topotests/bgp-aggregator-zero/r1/zebra.conf b/tests/topotests/bgp_aggregator_zero/r1/zebra.conf index 22a26ac610..22a26ac610 100644 --- a/tests/topotests/bgp-aggregator-zero/r1/zebra.conf +++ b/tests/topotests/bgp_aggregator_zero/r1/zebra.conf diff --git a/tests/topotests/bgp-aggregator-zero/test_bgp_aggregator_zero.py b/tests/topotests/bgp_aggregator_zero/test_bgp_aggregator_zero.py index c4bbdce2c3..c4bbdce2c3 100644 --- a/tests/topotests/bgp-aggregator-zero/test_bgp_aggregator_zero.py +++ b/tests/topotests/bgp_aggregator_zero/test_bgp_aggregator_zero.py diff --git a/tests/topotests/bgp-auth/R1/bgpd.conf b/tests/topotests/bgp_auth/R1/bgpd.conf index 1cb26c6537..1cb26c6537 100644 --- a/tests/topotests/bgp-auth/R1/bgpd.conf +++ b/tests/topotests/bgp_auth/R1/bgpd.conf diff --git a/tests/topotests/bgp-auth/R1/bgpd_multi_vrf.conf b/tests/topotests/bgp_auth/R1/bgpd_multi_vrf.conf index dde3c090b5..dde3c090b5 100644 --- a/tests/topotests/bgp-auth/R1/bgpd_multi_vrf.conf +++ b/tests/topotests/bgp_auth/R1/bgpd_multi_vrf.conf diff --git a/tests/topotests/bgp-auth/R1/bgpd_multi_vrf_prefix.conf b/tests/topotests/bgp_auth/R1/bgpd_multi_vrf_prefix.conf index 7e15720c7e..7e15720c7e 100644 --- a/tests/topotests/bgp-auth/R1/bgpd_multi_vrf_prefix.conf +++ b/tests/topotests/bgp_auth/R1/bgpd_multi_vrf_prefix.conf diff --git a/tests/topotests/bgp-auth/R1/bgpd_prefix.conf b/tests/topotests/bgp_auth/R1/bgpd_prefix.conf index 9200b0501d..9200b0501d 100644 --- a/tests/topotests/bgp-auth/R1/bgpd_prefix.conf +++ b/tests/topotests/bgp_auth/R1/bgpd_prefix.conf diff --git a/tests/topotests/bgp-auth/R1/bgpd_vrf.conf b/tests/topotests/bgp_auth/R1/bgpd_vrf.conf index 781f906d3a..781f906d3a 100644 --- a/tests/topotests/bgp-auth/R1/bgpd_vrf.conf +++ b/tests/topotests/bgp_auth/R1/bgpd_vrf.conf diff --git a/tests/topotests/bgp-auth/R1/bgpd_vrf_prefix.conf b/tests/topotests/bgp_auth/R1/bgpd_vrf_prefix.conf index d68951b406..d68951b406 100644 --- a/tests/topotests/bgp-auth/R1/bgpd_vrf_prefix.conf +++ b/tests/topotests/bgp_auth/R1/bgpd_vrf_prefix.conf diff --git a/tests/topotests/bgp-auth/R1/ospfd.conf b/tests/topotests/bgp_auth/R1/ospfd.conf index 79eb0e33da..79eb0e33da 100644 --- a/tests/topotests/bgp-auth/R1/ospfd.conf +++ b/tests/topotests/bgp_auth/R1/ospfd.conf diff --git a/tests/topotests/bgp-auth/R1/ospfd_multi_vrf.conf b/tests/topotests/bgp_auth/R1/ospfd_multi_vrf.conf index e2a28000b8..e2a28000b8 100644 --- a/tests/topotests/bgp-auth/R1/ospfd_multi_vrf.conf +++ b/tests/topotests/bgp_auth/R1/ospfd_multi_vrf.conf diff --git a/tests/topotests/bgp-auth/R1/ospfd_vrf.conf b/tests/topotests/bgp_auth/R1/ospfd_vrf.conf index 0b7fbae8c4..0b7fbae8c4 100644 --- a/tests/topotests/bgp-auth/R1/ospfd_vrf.conf +++ b/tests/topotests/bgp_auth/R1/ospfd_vrf.conf diff --git a/tests/topotests/bgp-auth/R1/zebra.conf b/tests/topotests/bgp_auth/R1/zebra.conf index a0b062c44c..a0b062c44c 100644 --- a/tests/topotests/bgp-auth/R1/zebra.conf +++ b/tests/topotests/bgp_auth/R1/zebra.conf diff --git a/tests/topotests/bgp-auth/R2/bgpd.conf b/tests/topotests/bgp_auth/R2/bgpd.conf index fa2a570ef9..fa2a570ef9 100644 --- a/tests/topotests/bgp-auth/R2/bgpd.conf +++ b/tests/topotests/bgp_auth/R2/bgpd.conf diff --git a/tests/topotests/bgp-auth/R2/bgpd_multi_vrf.conf b/tests/topotests/bgp_auth/R2/bgpd_multi_vrf.conf index d5f70edf68..d5f70edf68 100644 --- a/tests/topotests/bgp-auth/R2/bgpd_multi_vrf.conf +++ b/tests/topotests/bgp_auth/R2/bgpd_multi_vrf.conf diff --git a/tests/topotests/bgp-auth/R2/bgpd_multi_vrf_prefix.conf b/tests/topotests/bgp_auth/R2/bgpd_multi_vrf_prefix.conf index d5f70edf68..d5f70edf68 100644 --- a/tests/topotests/bgp-auth/R2/bgpd_multi_vrf_prefix.conf +++ b/tests/topotests/bgp_auth/R2/bgpd_multi_vrf_prefix.conf diff --git a/tests/topotests/bgp-auth/R2/bgpd_prefix.conf b/tests/topotests/bgp_auth/R2/bgpd_prefix.conf index fa2a570ef9..fa2a570ef9 100644 --- a/tests/topotests/bgp-auth/R2/bgpd_prefix.conf +++ b/tests/topotests/bgp_auth/R2/bgpd_prefix.conf diff --git a/tests/topotests/bgp-auth/R2/bgpd_vrf.conf b/tests/topotests/bgp_auth/R2/bgpd_vrf.conf index d1f3847420..d1f3847420 100644 --- a/tests/topotests/bgp-auth/R2/bgpd_vrf.conf +++ b/tests/topotests/bgp_auth/R2/bgpd_vrf.conf diff --git a/tests/topotests/bgp-auth/R2/bgpd_vrf_prefix.conf b/tests/topotests/bgp_auth/R2/bgpd_vrf_prefix.conf index d1f3847420..d1f3847420 100644 --- a/tests/topotests/bgp-auth/R2/bgpd_vrf_prefix.conf +++ b/tests/topotests/bgp_auth/R2/bgpd_vrf_prefix.conf diff --git a/tests/topotests/bgp-auth/R2/ospfd.conf b/tests/topotests/bgp_auth/R2/ospfd.conf index 028b546a0c..028b546a0c 100644 --- a/tests/topotests/bgp-auth/R2/ospfd.conf +++ b/tests/topotests/bgp_auth/R2/ospfd.conf diff --git a/tests/topotests/bgp-auth/R2/ospfd_multi_vrf.conf b/tests/topotests/bgp_auth/R2/ospfd_multi_vrf.conf index a05dfb8e41..a05dfb8e41 100644 --- a/tests/topotests/bgp-auth/R2/ospfd_multi_vrf.conf +++ b/tests/topotests/bgp_auth/R2/ospfd_multi_vrf.conf diff --git a/tests/topotests/bgp-auth/R2/ospfd_vrf.conf b/tests/topotests/bgp_auth/R2/ospfd_vrf.conf index b198d352e2..b198d352e2 100644 --- a/tests/topotests/bgp-auth/R2/ospfd_vrf.conf +++ b/tests/topotests/bgp_auth/R2/ospfd_vrf.conf diff --git a/tests/topotests/bgp-auth/R2/zebra.conf b/tests/topotests/bgp_auth/R2/zebra.conf index fed4c27c16..fed4c27c16 100644 --- a/tests/topotests/bgp-auth/R2/zebra.conf +++ b/tests/topotests/bgp_auth/R2/zebra.conf diff --git a/tests/topotests/bgp-auth/R3/bgpd.conf b/tests/topotests/bgp_auth/R3/bgpd.conf index deccfd418b..deccfd418b 100644 --- a/tests/topotests/bgp-auth/R3/bgpd.conf +++ b/tests/topotests/bgp_auth/R3/bgpd.conf diff --git a/tests/topotests/bgp-auth/R3/bgpd_multi_vrf.conf b/tests/topotests/bgp_auth/R3/bgpd_multi_vrf.conf index fe3e64d8d5..fe3e64d8d5 100644 --- a/tests/topotests/bgp-auth/R3/bgpd_multi_vrf.conf +++ b/tests/topotests/bgp_auth/R3/bgpd_multi_vrf.conf diff --git a/tests/topotests/bgp-auth/R3/bgpd_multi_vrf_prefix.conf b/tests/topotests/bgp_auth/R3/bgpd_multi_vrf_prefix.conf index fe3e64d8d5..fe3e64d8d5 100644 --- a/tests/topotests/bgp-auth/R3/bgpd_multi_vrf_prefix.conf +++ b/tests/topotests/bgp_auth/R3/bgpd_multi_vrf_prefix.conf diff --git a/tests/topotests/bgp-auth/R3/bgpd_prefix.conf b/tests/topotests/bgp_auth/R3/bgpd_prefix.conf index deccfd418b..deccfd418b 100644 --- a/tests/topotests/bgp-auth/R3/bgpd_prefix.conf +++ b/tests/topotests/bgp_auth/R3/bgpd_prefix.conf diff --git a/tests/topotests/bgp-auth/R3/bgpd_vrf.conf b/tests/topotests/bgp_auth/R3/bgpd_vrf.conf index c109aa801b..c109aa801b 100644 --- a/tests/topotests/bgp-auth/R3/bgpd_vrf.conf +++ b/tests/topotests/bgp_auth/R3/bgpd_vrf.conf diff --git a/tests/topotests/bgp-auth/R3/bgpd_vrf_prefix.conf b/tests/topotests/bgp_auth/R3/bgpd_vrf_prefix.conf index c109aa801b..c109aa801b 100644 --- a/tests/topotests/bgp-auth/R3/bgpd_vrf_prefix.conf +++ b/tests/topotests/bgp_auth/R3/bgpd_vrf_prefix.conf diff --git a/tests/topotests/bgp-auth/R3/ospfd.conf b/tests/topotests/bgp_auth/R3/ospfd.conf index 0f0a2e926a..0f0a2e926a 100644 --- a/tests/topotests/bgp-auth/R3/ospfd.conf +++ b/tests/topotests/bgp_auth/R3/ospfd.conf diff --git a/tests/topotests/bgp-auth/R3/ospfd_multi_vrf.conf b/tests/topotests/bgp_auth/R3/ospfd_multi_vrf.conf index f32d2a8423..f32d2a8423 100644 --- a/tests/topotests/bgp-auth/R3/ospfd_multi_vrf.conf +++ b/tests/topotests/bgp_auth/R3/ospfd_multi_vrf.conf diff --git a/tests/topotests/bgp-auth/R3/ospfd_vrf.conf b/tests/topotests/bgp_auth/R3/ospfd_vrf.conf index 6465b635aa..6465b635aa 100644 --- a/tests/topotests/bgp-auth/R3/ospfd_vrf.conf +++ b/tests/topotests/bgp_auth/R3/ospfd_vrf.conf diff --git a/tests/topotests/bgp-auth/R3/zebra.conf b/tests/topotests/bgp_auth/R3/zebra.conf index d49c98b168..d49c98b168 100644 --- a/tests/topotests/bgp-auth/R3/zebra.conf +++ b/tests/topotests/bgp_auth/R3/zebra.conf diff --git a/tests/topotests/bgp-auth/test_bgp_auth.py b/tests/topotests/bgp_auth/test_bgp_auth.py index 521ca332d0..b2cdef1c93 100644 --- a/tests/topotests/bgp-auth/test_bgp_auth.py +++ b/tests/topotests/bgp_auth/test_bgp_auth.py @@ -357,9 +357,10 @@ def check_neigh_state(router, peer, state, vrf=""): "show bgp vrf {} neighbors {} json".format(vrf, peer) ) neigh_output_json = json.loads(neigh_output) - if neigh_output_json[peer]["bgpState"] == state: - matched = True - break + if peer in neigh_output_json.keys(): + if neigh_output_json[peer]["bgpState"] == state: + matched = True + break count += 1 sleep(1) diff --git a/tests/topotests/bgp-default-ipv4-ipv6-unicast/__init__.py b/tests/topotests/bgp_basic_functionality_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-default-ipv4-ipv6-unicast/__init__.py +++ b/tests/topotests/bgp_basic_functionality_topo1/__init__.py diff --git a/tests/topotests/bgp-basic-functionality-topo1/bgp_basic_functionality.json b/tests/topotests/bgp_basic_functionality_topo1/bgp_basic_functionality.json index ee1f1b74c0..ee1f1b74c0 100644 --- a/tests/topotests/bgp-basic-functionality-topo1/bgp_basic_functionality.json +++ b/tests/topotests/bgp_basic_functionality_topo1/bgp_basic_functionality.json diff --git a/tests/topotests/bgp-basic-functionality-topo1/test_bgp_basic_functionality.py b/tests/topotests/bgp_basic_functionality_topo1/test_bgp_basic_functionality.py index 374cce21f6..374cce21f6 100644 --- a/tests/topotests/bgp-basic-functionality-topo1/test_bgp_basic_functionality.py +++ b/tests/topotests/bgp_basic_functionality_topo1/test_bgp_basic_functionality.py diff --git a/tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/__init__.py b/tests/topotests/bgp_comm_list_delete/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/__init__.py +++ b/tests/topotests/bgp_comm_list_delete/__init__.py diff --git a/tests/topotests/bgp_comm-list_delete/r1/bgpd.conf b/tests/topotests/bgp_comm_list_delete/r1/bgpd.conf index 12161d2fa2..12161d2fa2 100644 --- a/tests/topotests/bgp_comm-list_delete/r1/bgpd.conf +++ b/tests/topotests/bgp_comm_list_delete/r1/bgpd.conf diff --git a/tests/topotests/bgp_comm-list_delete/r1/zebra.conf b/tests/topotests/bgp_comm_list_delete/r1/zebra.conf index 0a283c06d5..0a283c06d5 100644 --- a/tests/topotests/bgp_comm-list_delete/r1/zebra.conf +++ b/tests/topotests/bgp_comm_list_delete/r1/zebra.conf diff --git a/tests/topotests/bgp_comm-list_delete/r2/bgpd.conf b/tests/topotests/bgp_comm_list_delete/r2/bgpd.conf index 33231b5274..33231b5274 100644 --- a/tests/topotests/bgp_comm-list_delete/r2/bgpd.conf +++ b/tests/topotests/bgp_comm_list_delete/r2/bgpd.conf diff --git a/tests/topotests/bgp_aggregate-address_route-map/r2/zebra.conf b/tests/topotests/bgp_comm_list_delete/r2/zebra.conf index 606c17bec9..606c17bec9 100644 --- a/tests/topotests/bgp_aggregate-address_route-map/r2/zebra.conf +++ b/tests/topotests/bgp_comm_list_delete/r2/zebra.conf diff --git a/tests/topotests/bgp_comm-list_delete/test_bgp_comm-list_delete.py b/tests/topotests/bgp_comm_list_delete/test_bgp_comm-list_delete.py index 81bf8da31a..81bf8da31a 100644 --- a/tests/topotests/bgp_comm-list_delete/test_bgp_comm-list_delete.py +++ b/tests/topotests/bgp_comm_list_delete/test_bgp_comm-list_delete.py diff --git a/tests/topotests/bgp-ecmp-topo1/__init__.py b/tests/topotests/bgp_community_alias/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-ecmp-topo1/__init__.py +++ b/tests/topotests/bgp_community_alias/__init__.py diff --git a/tests/topotests/bgp-community-alias/r1/bgpd.conf b/tests/topotests/bgp_community_alias/r1/bgpd.conf index 2cf84d0b70..2cf84d0b70 100644 --- a/tests/topotests/bgp-community-alias/r1/bgpd.conf +++ b/tests/topotests/bgp_community_alias/r1/bgpd.conf diff --git a/tests/topotests/bgp-community-alias/r1/zebra.conf b/tests/topotests/bgp_community_alias/r1/zebra.conf index b29940f46a..b29940f46a 100644 --- a/tests/topotests/bgp-community-alias/r1/zebra.conf +++ b/tests/topotests/bgp_community_alias/r1/zebra.conf diff --git a/tests/topotests/bgp-community-alias/r2/bgpd.conf b/tests/topotests/bgp_community_alias/r2/bgpd.conf index 517ef70f2a..517ef70f2a 100644 --- a/tests/topotests/bgp-community-alias/r2/bgpd.conf +++ b/tests/topotests/bgp_community_alias/r2/bgpd.conf diff --git a/tests/topotests/bgp-community-alias/r2/zebra.conf b/tests/topotests/bgp_community_alias/r2/zebra.conf index cffe827363..cffe827363 100644 --- a/tests/topotests/bgp-community-alias/r2/zebra.conf +++ b/tests/topotests/bgp_community_alias/r2/zebra.conf diff --git a/tests/topotests/bgp-community-alias/test_bgp-community-alias.py b/tests/topotests/bgp_community_alias/test_bgp-community-alias.py index a43e5f937e..a43e5f937e 100644 --- a/tests/topotests/bgp-community-alias/test_bgp-community-alias.py +++ b/tests/topotests/bgp_community_alias/test_bgp-community-alias.py diff --git a/tests/topotests/bgp-evpn-vxlan_topo1/__init__.py b/tests/topotests/bgp_default_ipv4_ipv6_unicast/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-evpn-vxlan_topo1/__init__.py +++ b/tests/topotests/bgp_default_ipv4_ipv6_unicast/__init__.py diff --git a/tests/topotests/bgp-default-ipv4-ipv6-unicast/r1/bgpd.conf b/tests/topotests/bgp_default_ipv4_ipv6_unicast/r1/bgpd.conf index bf39152ea8..bf39152ea8 100644 --- a/tests/topotests/bgp-default-ipv4-ipv6-unicast/r1/bgpd.conf +++ b/tests/topotests/bgp_default_ipv4_ipv6_unicast/r1/bgpd.conf diff --git a/tests/topotests/bgp-default-ipv4-ipv6-unicast/r1/zebra.conf b/tests/topotests/bgp_default_ipv4_ipv6_unicast/r1/zebra.conf index 697765168d..697765168d 100644 --- a/tests/topotests/bgp-default-ipv4-ipv6-unicast/r1/zebra.conf +++ b/tests/topotests/bgp_default_ipv4_ipv6_unicast/r1/zebra.conf diff --git a/tests/topotests/bgp-default-ipv4-ipv6-unicast/r2/bgpd.conf b/tests/topotests/bgp_default_ipv4_ipv6_unicast/r2/bgpd.conf index abbd1b86fa..abbd1b86fa 100644 --- a/tests/topotests/bgp-default-ipv4-ipv6-unicast/r2/bgpd.conf +++ b/tests/topotests/bgp_default_ipv4_ipv6_unicast/r2/bgpd.conf diff --git a/tests/topotests/bgp_comm-list_delete/r2/zebra.conf b/tests/topotests/bgp_default_ipv4_ipv6_unicast/r2/zebra.conf index 606c17bec9..606c17bec9 100644 --- a/tests/topotests/bgp_comm-list_delete/r2/zebra.conf +++ b/tests/topotests/bgp_default_ipv4_ipv6_unicast/r2/zebra.conf diff --git a/tests/topotests/bgp-default-ipv4-ipv6-unicast/r3/bgpd.conf b/tests/topotests/bgp_default_ipv4_ipv6_unicast/r3/bgpd.conf index a405c047ca..a405c047ca 100644 --- a/tests/topotests/bgp-default-ipv4-ipv6-unicast/r3/bgpd.conf +++ b/tests/topotests/bgp_default_ipv4_ipv6_unicast/r3/bgpd.conf diff --git a/tests/topotests/bgp-default-ipv4-ipv6-unicast/r3/zebra.conf b/tests/topotests/bgp_default_ipv4_ipv6_unicast/r3/zebra.conf index e9fdfb70c5..e9fdfb70c5 100644 --- a/tests/topotests/bgp-default-ipv4-ipv6-unicast/r3/zebra.conf +++ b/tests/topotests/bgp_default_ipv4_ipv6_unicast/r3/zebra.conf diff --git a/tests/topotests/bgp-default-ipv4-ipv6-unicast/test_bgp-default-ipv4-ipv6-unicast.py b/tests/topotests/bgp_default_ipv4_ipv6_unicast/test_bgp-default-ipv4-ipv6-unicast.py index f9aa94fd14..f9aa94fd14 100644 --- a/tests/topotests/bgp-default-ipv4-ipv6-unicast/test_bgp-default-ipv4-ipv6-unicast.py +++ b/tests/topotests/bgp_default_ipv4_ipv6_unicast/test_bgp-default-ipv4-ipv6-unicast.py diff --git a/tests/topotests/bgp-path-attributes-topo1/__init__.py b/tests/topotests/bgp_default_route/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-path-attributes-topo1/__init__.py +++ b/tests/topotests/bgp_default_route/__init__.py diff --git a/tests/topotests/bgp_default-route/r1/bgpd.conf b/tests/topotests/bgp_default_route/r1/bgpd.conf index 8699d62ff2..8699d62ff2 100644 --- a/tests/topotests/bgp_default-route/r1/bgpd.conf +++ b/tests/topotests/bgp_default_route/r1/bgpd.conf diff --git a/tests/topotests/bgp_default-route/r1/zebra.conf b/tests/topotests/bgp_default_route/r1/zebra.conf index 0a283c06d5..0a283c06d5 100644 --- a/tests/topotests/bgp_default-route/r1/zebra.conf +++ b/tests/topotests/bgp_default_route/r1/zebra.conf diff --git a/tests/topotests/bgp_default-route/r2/bgpd.conf b/tests/topotests/bgp_default_route/r2/bgpd.conf index 00c96cc58b..00c96cc58b 100644 --- a/tests/topotests/bgp_default-route/r2/bgpd.conf +++ b/tests/topotests/bgp_default_route/r2/bgpd.conf diff --git a/tests/topotests/bgp_default-route/r2/zebra.conf b/tests/topotests/bgp_default_route/r2/zebra.conf index 606c17bec9..606c17bec9 100644 --- a/tests/topotests/bgp_default-route/r2/zebra.conf +++ b/tests/topotests/bgp_default_route/r2/zebra.conf diff --git a/tests/topotests/bgp_default-route/test_bgp_default-originate.py b/tests/topotests/bgp_default_route/test_bgp_default-originate.py index d8de0f0ac6..d8de0f0ac6 100644 --- a/tests/topotests/bgp_default-route/test_bgp_default-originate.py +++ b/tests/topotests/bgp_default_route/test_bgp_default-originate.py diff --git a/tests/topotests/bgp-prefix-list-topo1/__init__.py b/tests/topotests/bgp_default_route_route_map_match/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-prefix-list-topo1/__init__.py +++ b/tests/topotests/bgp_default_route_route_map_match/__init__.py diff --git a/tests/topotests/bgp_default-route_route-map_match/r1/bgpd.conf b/tests/topotests/bgp_default_route_route_map_match/r1/bgpd.conf index 97b440f5ce..97b440f5ce 100644 --- a/tests/topotests/bgp_default-route_route-map_match/r1/bgpd.conf +++ b/tests/topotests/bgp_default_route_route_map_match/r1/bgpd.conf diff --git a/tests/topotests/bgp_default-route_route-map_match/r1/zebra.conf b/tests/topotests/bgp_default_route_route_map_match/r1/zebra.conf index 9e581a7be7..9e581a7be7 100644 --- a/tests/topotests/bgp_default-route_route-map_match/r1/zebra.conf +++ b/tests/topotests/bgp_default_route_route_map_match/r1/zebra.conf diff --git a/tests/topotests/bgp_default-route_route-map_match/r2/bgpd.conf b/tests/topotests/bgp_default_route_route_map_match/r2/bgpd.conf index 00c96cc58b..00c96cc58b 100644 --- a/tests/topotests/bgp_default-route_route-map_match/r2/bgpd.conf +++ b/tests/topotests/bgp_default_route_route_map_match/r2/bgpd.conf diff --git a/tests/topotests/bgp_default-route_route-map_match/r2/zebra.conf b/tests/topotests/bgp_default_route_route_map_match/r2/zebra.conf index 606c17bec9..606c17bec9 100644 --- a/tests/topotests/bgp_default-route_route-map_match/r2/zebra.conf +++ b/tests/topotests/bgp_default_route_route_map_match/r2/zebra.conf diff --git a/tests/topotests/bgp_default-route_route-map_match/test_bgp_default-originate_route-map_match.py b/tests/topotests/bgp_default_route_route_map_match/test_bgp_default-originate_route-map_match.py index 089c9a964e..089c9a964e 100644 --- a/tests/topotests/bgp_default-route_route-map_match/test_bgp_default-originate_route-map_match.py +++ b/tests/topotests/bgp_default_route_route_map_match/test_bgp_default-originate_route-map_match.py diff --git a/tests/topotests/bgp_aggregate-address_origin/__init__.py b/tests/topotests/bgp_default_route_route_map_match_set/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp_aggregate-address_origin/__init__.py +++ b/tests/topotests/bgp_default_route_route_map_match_set/__init__.py diff --git a/tests/topotests/bgp_default-route_route-map_match_set/r1/bgpd.conf b/tests/topotests/bgp_default_route_route_map_match_set/r1/bgpd.conf index 6ef8b1c0f4..6ef8b1c0f4 100644 --- a/tests/topotests/bgp_default-route_route-map_match_set/r1/bgpd.conf +++ b/tests/topotests/bgp_default_route_route_map_match_set/r1/bgpd.conf diff --git a/tests/topotests/bgp_default-route_route-map_match_set/r1/zebra.conf b/tests/topotests/bgp_default_route_route_map_match_set/r1/zebra.conf index 9e581a7be7..9e581a7be7 100644 --- a/tests/topotests/bgp_default-route_route-map_match_set/r1/zebra.conf +++ b/tests/topotests/bgp_default_route_route_map_match_set/r1/zebra.conf diff --git a/tests/topotests/bgp_default-route_route-map_match_set/r2/bgpd.conf b/tests/topotests/bgp_default_route_route_map_match_set/r2/bgpd.conf index 00c96cc58b..00c96cc58b 100644 --- a/tests/topotests/bgp_default-route_route-map_match_set/r2/bgpd.conf +++ b/tests/topotests/bgp_default_route_route_map_match_set/r2/bgpd.conf diff --git a/tests/topotests/bgp_default-route_route-map_match_set/r2/zebra.conf b/tests/topotests/bgp_default_route_route_map_match_set/r2/zebra.conf index 606c17bec9..606c17bec9 100644 --- a/tests/topotests/bgp_default-route_route-map_match_set/r2/zebra.conf +++ b/tests/topotests/bgp_default_route_route_map_match_set/r2/zebra.conf diff --git a/tests/topotests/bgp_default-route_route-map_match_set/test_bgp_default-originate_route-map_match_set.py b/tests/topotests/bgp_default_route_route_map_match_set/test_bgp_default-originate_route-map_match_set.py index d9ea5db278..d9ea5db278 100644 --- a/tests/topotests/bgp_default-route_route-map_match_set/test_bgp_default-originate_route-map_match_set.py +++ b/tests/topotests/bgp_default_route_route_map_match_set/test_bgp_default-originate_route-map_match_set.py diff --git a/tests/topotests/bgp_aggregate-address_route-map/__init__.py b/tests/topotests/bgp_default_route_route_map_set/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp_aggregate-address_route-map/__init__.py +++ b/tests/topotests/bgp_default_route_route_map_set/__init__.py diff --git a/tests/topotests/bgp_default-route_route-map_set/r1/bgpd.conf b/tests/topotests/bgp_default_route_route_map_set/r1/bgpd.conf index cb07ea9fdf..cb07ea9fdf 100644 --- a/tests/topotests/bgp_default-route_route-map_set/r1/bgpd.conf +++ b/tests/topotests/bgp_default_route_route_map_set/r1/bgpd.conf diff --git a/tests/topotests/bgp_default-route_route-map_set/r1/zebra.conf b/tests/topotests/bgp_default_route_route_map_set/r1/zebra.conf index 0a283c06d5..0a283c06d5 100644 --- a/tests/topotests/bgp_default-route_route-map_set/r1/zebra.conf +++ b/tests/topotests/bgp_default_route_route_map_set/r1/zebra.conf diff --git a/tests/topotests/bgp_default-route_route-map_set/r2/bgpd.conf b/tests/topotests/bgp_default_route_route_map_set/r2/bgpd.conf index 00c96cc58b..00c96cc58b 100644 --- a/tests/topotests/bgp_default-route_route-map_set/r2/bgpd.conf +++ b/tests/topotests/bgp_default_route_route_map_set/r2/bgpd.conf diff --git a/tests/topotests/bgp_default-route_route-map_set/r2/zebra.conf b/tests/topotests/bgp_default_route_route_map_set/r2/zebra.conf index 606c17bec9..606c17bec9 100644 --- a/tests/topotests/bgp_default-route_route-map_set/r2/zebra.conf +++ b/tests/topotests/bgp_default_route_route_map_set/r2/zebra.conf diff --git a/tests/topotests/bgp_default-route_route-map_set/test_bgp_default-originate_route-map_set.py b/tests/topotests/bgp_default_route_route_map_set/test_bgp_default-originate_route-map_set.py index 9a22c58b16..9a22c58b16 100644 --- a/tests/topotests/bgp_default-route_route-map_set/test_bgp_default-originate_route-map_set.py +++ b/tests/topotests/bgp_default_route_route_map_set/test_bgp_default-originate_route-map_set.py diff --git a/tests/topotests/bgp_comm-list_delete/__init__.py b/tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp_comm-list_delete/__init__.py +++ b/tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/__init__.py diff --git a/tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/r1/bgpd.conf b/tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/r1/bgpd.conf index c320bb5d11..c320bb5d11 100644 --- a/tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/r1/bgpd.conf +++ b/tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/r1/bgpd.conf diff --git a/tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/r1/zebra.conf b/tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/r1/zebra.conf index 1782edc2a5..1782edc2a5 100644 --- a/tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/r1/zebra.conf +++ b/tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/r1/zebra.conf diff --git a/tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/r2/bgpd.conf b/tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/r2/bgpd.conf index cb712e9a8d..cb712e9a8d 100644 --- a/tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/r2/bgpd.conf +++ b/tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/r2/bgpd.conf diff --git a/tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/r2/zebra.conf b/tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/r2/zebra.conf index 968171e7b9..968171e7b9 100644 --- a/tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/r2/zebra.conf +++ b/tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/r2/zebra.conf diff --git a/tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/r3/bgpd.conf b/tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/r3/bgpd.conf index a6e3260d15..a6e3260d15 100644 --- a/tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/r3/bgpd.conf +++ b/tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/r3/bgpd.conf diff --git a/tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/r3/zebra.conf b/tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/r3/zebra.conf index ddcf862132..ddcf862132 100644 --- a/tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/r3/zebra.conf +++ b/tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/r3/zebra.conf diff --git a/tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/test_bgp-ebgp-common-subnet-nexthop-unchanged.py b/tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/test_bgp-ebgp-common-subnet-nexthop-unchanged.py index 3b99065fe0..3b99065fe0 100644 --- a/tests/topotests/bgp-ebgp-common-subnet-nexthop-unchanged/test_bgp-ebgp-common-subnet-nexthop-unchanged.py +++ b/tests/topotests/bgp_ebgp_common_subnet_nexthop_unchanged/test_bgp-ebgp-common-subnet-nexthop-unchanged.py diff --git a/tests/topotests/bgp_default-route/__init__.py b/tests/topotests/bgp_ecmp_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp_default-route/__init__.py +++ b/tests/topotests/bgp_ecmp_topo1/__init__.py diff --git a/tests/topotests/bgp-ecmp-topo1/bgp-ecmp-topo1.dot b/tests/topotests/bgp_ecmp_topo1/bgp-ecmp-topo1.dot index 90295e199d..90295e199d 100644 --- a/tests/topotests/bgp-ecmp-topo1/bgp-ecmp-topo1.dot +++ b/tests/topotests/bgp_ecmp_topo1/bgp-ecmp-topo1.dot diff --git a/tests/topotests/bgp-ecmp-topo1/bgp-ecmp-topo1.pdf b/tests/topotests/bgp_ecmp_topo1/bgp-ecmp-topo1.pdf Binary files differindex b4d4f6a5e5..b4d4f6a5e5 100644 --- a/tests/topotests/bgp-ecmp-topo1/bgp-ecmp-topo1.pdf +++ b/tests/topotests/bgp_ecmp_topo1/bgp-ecmp-topo1.pdf diff --git a/tests/topotests/bgp-ecmp-topo1/exabgp.env b/tests/topotests/bgp_ecmp_topo1/exabgp.env index a328e04962..a328e04962 100644 --- a/tests/topotests/bgp-ecmp-topo1/exabgp.env +++ b/tests/topotests/bgp_ecmp_topo1/exabgp.env diff --git a/tests/topotests/bgp-ecmp-topo1/peer1/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer1/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer1/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer1/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer1/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer1/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer1/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer1/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer1/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer1/exabgp.cfg index 2d0ca89f0f..2d0ca89f0f 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer1/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer1/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/peer10/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer10/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer10/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer10/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer10/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer10/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer10/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer10/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer10/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer10/exabgp.cfg index 0c842a0e7f..0c842a0e7f 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer10/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer10/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/peer11/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer11/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer11/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer11/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer11/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer11/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer11/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer11/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer11/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer11/exabgp.cfg index 936dc572bd..936dc572bd 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer11/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer11/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/peer12/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer12/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer12/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer12/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer12/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer12/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer12/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer12/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer12/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer12/exabgp.cfg index 56b33eae8e..56b33eae8e 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer12/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer12/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/peer13/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer13/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer13/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer13/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer13/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer13/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer13/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer13/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer13/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer13/exabgp.cfg index b933ffb5cf..b933ffb5cf 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer13/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer13/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/peer14/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer14/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer14/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer14/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer14/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer14/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer14/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer14/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer14/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer14/exabgp.cfg index bcfa41eb2e..bcfa41eb2e 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer14/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer14/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/peer15/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer15/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer15/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer15/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer15/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer15/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer15/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer15/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer15/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer15/exabgp.cfg index 022e835798..022e835798 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer15/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer15/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/peer16/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer16/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer16/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer16/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer16/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer16/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer16/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer16/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer16/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer16/exabgp.cfg index 0649202f1f..0649202f1f 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer16/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer16/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/peer17/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer17/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer17/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer17/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer17/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer17/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer17/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer17/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer17/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer17/exabgp.cfg index 0aeeed9d95..0aeeed9d95 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer17/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer17/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/peer18/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer18/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer18/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer18/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer18/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer18/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer18/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer18/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer18/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer18/exabgp.cfg index 352c030eda..352c030eda 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer18/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer18/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/peer19/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer19/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer19/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer19/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer19/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer19/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer19/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer19/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer19/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer19/exabgp.cfg index 9913c226f6..9913c226f6 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer19/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer19/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/peer2/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer2/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer2/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer2/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer2/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer2/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer2/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer2/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer2/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer2/exabgp.cfg index 46b436d2af..46b436d2af 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer2/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer2/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/peer20/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer20/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer20/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer20/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer20/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer20/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer20/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer20/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer20/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer20/exabgp.cfg index 17fb816a75..17fb816a75 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer20/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer20/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/peer3/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer3/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer3/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer3/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer3/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer3/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer3/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer3/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer3/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer3/exabgp.cfg index acd57756b9..acd57756b9 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer3/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer3/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/peer4/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer4/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer4/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer4/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer4/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer4/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer4/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer4/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer4/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer4/exabgp.cfg index 4c9a989b5a..4c9a989b5a 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer4/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer4/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/peer5/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer5/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer5/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer5/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer5/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer5/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer5/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer5/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer5/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer5/exabgp.cfg index eba2aae378..eba2aae378 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer5/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer5/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/peer6/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer6/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer6/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer6/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer6/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer6/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer6/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer6/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer6/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer6/exabgp.cfg index 38b6af0e85..38b6af0e85 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer6/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer6/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/peer7/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer7/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer7/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer7/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer7/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer7/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer7/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer7/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer7/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer7/exabgp.cfg index 7631e43750..7631e43750 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer7/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer7/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/peer8/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer8/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer8/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer8/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer8/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer8/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer8/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer8/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer8/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer8/exabgp.cfg index 1cd1cd9024..1cd1cd9024 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer8/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer8/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/peer9/exa-receive.py b/tests/topotests/bgp_ecmp_topo1/peer9/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer9/exa-receive.py +++ b/tests/topotests/bgp_ecmp_topo1/peer9/exa-receive.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer9/exa-send.py b/tests/topotests/bgp_ecmp_topo1/peer9/exa-send.py index d9ae3d1906..d9ae3d1906 100755 --- a/tests/topotests/bgp-ecmp-topo1/peer9/exa-send.py +++ b/tests/topotests/bgp_ecmp_topo1/peer9/exa-send.py diff --git a/tests/topotests/bgp-ecmp-topo1/peer9/exabgp.cfg b/tests/topotests/bgp_ecmp_topo1/peer9/exabgp.cfg index 5771553962..5771553962 100644 --- a/tests/topotests/bgp-ecmp-topo1/peer9/exabgp.cfg +++ b/tests/topotests/bgp_ecmp_topo1/peer9/exabgp.cfg diff --git a/tests/topotests/bgp-ecmp-topo1/r1/bgpd.conf b/tests/topotests/bgp_ecmp_topo1/r1/bgpd.conf index 49981ac589..49981ac589 100644 --- a/tests/topotests/bgp-ecmp-topo1/r1/bgpd.conf +++ b/tests/topotests/bgp_ecmp_topo1/r1/bgpd.conf diff --git a/tests/topotests/bgp-ecmp-topo1/r1/summary.txt b/tests/topotests/bgp_ecmp_topo1/r1/summary.txt index f0929536d3..f0929536d3 100644 --- a/tests/topotests/bgp-ecmp-topo1/r1/summary.txt +++ b/tests/topotests/bgp_ecmp_topo1/r1/summary.txt diff --git a/tests/topotests/bgp-ecmp-topo1/r1/summary20.txt b/tests/topotests/bgp_ecmp_topo1/r1/summary20.txt index 9015f485f8..9015f485f8 100644 --- a/tests/topotests/bgp-ecmp-topo1/r1/summary20.txt +++ b/tests/topotests/bgp_ecmp_topo1/r1/summary20.txt diff --git a/tests/topotests/bgp-ecmp-topo1/r1/zebra.conf b/tests/topotests/bgp_ecmp_topo1/r1/zebra.conf index 77c76cd490..77c76cd490 100644 --- a/tests/topotests/bgp-ecmp-topo1/r1/zebra.conf +++ b/tests/topotests/bgp_ecmp_topo1/r1/zebra.conf diff --git a/tests/topotests/bgp-ecmp-topo1/test_bgp_ecmp_topo1.py b/tests/topotests/bgp_ecmp_topo1/test_bgp_ecmp_topo1.py index 75506d1a51..75506d1a51 100644 --- a/tests/topotests/bgp-ecmp-topo1/test_bgp_ecmp_topo1.py +++ b/tests/topotests/bgp_ecmp_topo1/test_bgp_ecmp_topo1.py diff --git a/tests/topotests/bgp-ecmp-topo2/ebgp_ecmp_topo2.json b/tests/topotests/bgp_ecmp_topo2/ebgp_ecmp_topo2.json index 34f11c0a29..34f11c0a29 100755 --- a/tests/topotests/bgp-ecmp-topo2/ebgp_ecmp_topo2.json +++ b/tests/topotests/bgp_ecmp_topo2/ebgp_ecmp_topo2.json diff --git a/tests/topotests/bgp-ecmp-topo2/ibgp_ecmp_topo2.json b/tests/topotests/bgp_ecmp_topo2/ibgp_ecmp_topo2.json index 9eea9073c7..9eea9073c7 100755 --- a/tests/topotests/bgp-ecmp-topo2/ibgp_ecmp_topo2.json +++ b/tests/topotests/bgp_ecmp_topo2/ibgp_ecmp_topo2.json diff --git a/tests/topotests/bgp-ecmp-topo2/test_ebgp_ecmp_topo2.py b/tests/topotests/bgp_ecmp_topo2/test_ebgp_ecmp_topo2.py index fffcbbd0ef..fffcbbd0ef 100644 --- a/tests/topotests/bgp-ecmp-topo2/test_ebgp_ecmp_topo2.py +++ b/tests/topotests/bgp_ecmp_topo2/test_ebgp_ecmp_topo2.py diff --git a/tests/topotests/bgp-ecmp-topo2/test_ibgp_ecmp_topo2.py b/tests/topotests/bgp_ecmp_topo2/test_ibgp_ecmp_topo2.py index 342a0a4b2f..342a0a4b2f 100644 --- a/tests/topotests/bgp-ecmp-topo2/test_ibgp_ecmp_topo2.py +++ b/tests/topotests/bgp_ecmp_topo2/test_ibgp_ecmp_topo2.py diff --git a/tests/topotests/bgp-evpn-mh/evpn-mh-topo-tests.pdf b/tests/topotests/bgp_evpn_mh/evpn-mh-topo-tests.pdf Binary files differindex 8858e21496..8858e21496 100644 --- a/tests/topotests/bgp-evpn-mh/evpn-mh-topo-tests.pdf +++ b/tests/topotests/bgp_evpn_mh/evpn-mh-topo-tests.pdf diff --git a/tests/topotests/bgp-evpn-mh/hostd11/evpn.conf b/tests/topotests/bgp_evpn_mh/hostd11/evpn.conf index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-evpn-mh/hostd11/evpn.conf +++ b/tests/topotests/bgp_evpn_mh/hostd11/evpn.conf diff --git a/tests/topotests/bgp-evpn-mh/hostd11/pim.conf b/tests/topotests/bgp_evpn_mh/hostd11/pim.conf index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-evpn-mh/hostd11/pim.conf +++ b/tests/topotests/bgp_evpn_mh/hostd11/pim.conf diff --git a/tests/topotests/bgp-evpn-mh/hostd11/zebra.conf b/tests/topotests/bgp_evpn_mh/hostd11/zebra.conf index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-evpn-mh/hostd11/zebra.conf +++ b/tests/topotests/bgp_evpn_mh/hostd11/zebra.conf diff --git a/tests/topotests/bgp-evpn-mh/hostd12/evpn.conf b/tests/topotests/bgp_evpn_mh/hostd12/evpn.conf index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-evpn-mh/hostd12/evpn.conf +++ b/tests/topotests/bgp_evpn_mh/hostd12/evpn.conf diff --git a/tests/topotests/bgp-evpn-mh/hostd12/pim.conf b/tests/topotests/bgp_evpn_mh/hostd12/pim.conf index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-evpn-mh/hostd12/pim.conf +++ b/tests/topotests/bgp_evpn_mh/hostd12/pim.conf diff --git a/tests/topotests/bgp-evpn-mh/hostd12/zebra.conf b/tests/topotests/bgp_evpn_mh/hostd12/zebra.conf index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-evpn-mh/hostd12/zebra.conf +++ b/tests/topotests/bgp_evpn_mh/hostd12/zebra.conf diff --git a/tests/topotests/bgp-evpn-mh/hostd21/evpn.conf b/tests/topotests/bgp_evpn_mh/hostd21/evpn.conf index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-evpn-mh/hostd21/evpn.conf +++ b/tests/topotests/bgp_evpn_mh/hostd21/evpn.conf diff --git a/tests/topotests/bgp-evpn-mh/hostd21/pim.conf b/tests/topotests/bgp_evpn_mh/hostd21/pim.conf index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-evpn-mh/hostd21/pim.conf +++ b/tests/topotests/bgp_evpn_mh/hostd21/pim.conf diff --git a/tests/topotests/bgp-evpn-mh/hostd21/zebra.conf b/tests/topotests/bgp_evpn_mh/hostd21/zebra.conf index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-evpn-mh/hostd21/zebra.conf +++ b/tests/topotests/bgp_evpn_mh/hostd21/zebra.conf diff --git a/tests/topotests/bgp-evpn-mh/hostd22/evpn.conf b/tests/topotests/bgp_evpn_mh/hostd22/evpn.conf index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-evpn-mh/hostd22/evpn.conf +++ b/tests/topotests/bgp_evpn_mh/hostd22/evpn.conf diff --git a/tests/topotests/bgp-evpn-mh/hostd22/pim.conf b/tests/topotests/bgp_evpn_mh/hostd22/pim.conf index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-evpn-mh/hostd22/pim.conf +++ b/tests/topotests/bgp_evpn_mh/hostd22/pim.conf diff --git a/tests/topotests/bgp-evpn-mh/hostd22/zebra.conf b/tests/topotests/bgp_evpn_mh/hostd22/zebra.conf index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp-evpn-mh/hostd22/zebra.conf +++ b/tests/topotests/bgp_evpn_mh/hostd22/zebra.conf diff --git a/tests/topotests/bgp-evpn-mh/spine1/evpn.conf b/tests/topotests/bgp_evpn_mh/spine1/evpn.conf index 2e26f60f44..2e26f60f44 100644 --- a/tests/topotests/bgp-evpn-mh/spine1/evpn.conf +++ b/tests/topotests/bgp_evpn_mh/spine1/evpn.conf diff --git a/tests/topotests/bgp-evpn-mh/spine1/pim.conf b/tests/topotests/bgp_evpn_mh/spine1/pim.conf index 68e686e8c7..68e686e8c7 100644 --- a/tests/topotests/bgp-evpn-mh/spine1/pim.conf +++ b/tests/topotests/bgp_evpn_mh/spine1/pim.conf diff --git a/tests/topotests/bgp-evpn-mh/spine1/zebra.conf b/tests/topotests/bgp_evpn_mh/spine1/zebra.conf index 80e9e5a263..80e9e5a263 100644 --- a/tests/topotests/bgp-evpn-mh/spine1/zebra.conf +++ b/tests/topotests/bgp_evpn_mh/spine1/zebra.conf diff --git a/tests/topotests/bgp-evpn-mh/spine2/evpn.conf b/tests/topotests/bgp_evpn_mh/spine2/evpn.conf index ec2e789276..ec2e789276 100644 --- a/tests/topotests/bgp-evpn-mh/spine2/evpn.conf +++ b/tests/topotests/bgp_evpn_mh/spine2/evpn.conf diff --git a/tests/topotests/bgp-evpn-mh/spine2/pim.conf b/tests/topotests/bgp_evpn_mh/spine2/pim.conf index c1566240e6..c1566240e6 100644 --- a/tests/topotests/bgp-evpn-mh/spine2/pim.conf +++ b/tests/topotests/bgp_evpn_mh/spine2/pim.conf diff --git a/tests/topotests/bgp-evpn-mh/spine2/zebra.conf b/tests/topotests/bgp_evpn_mh/spine2/zebra.conf index 1cd1df8c81..1cd1df8c81 100644 --- a/tests/topotests/bgp-evpn-mh/spine2/zebra.conf +++ b/tests/topotests/bgp_evpn_mh/spine2/zebra.conf diff --git a/tests/topotests/bgp-evpn-mh/test_evpn_mh.py b/tests/topotests/bgp_evpn_mh/test_evpn_mh.py index f389632b1e..f389632b1e 100644 --- a/tests/topotests/bgp-evpn-mh/test_evpn_mh.py +++ b/tests/topotests/bgp_evpn_mh/test_evpn_mh.py diff --git a/tests/topotests/bgp-evpn-mh/torm11/evpn.conf b/tests/topotests/bgp_evpn_mh/torm11/evpn.conf index 01f4b65704..01f4b65704 100644 --- a/tests/topotests/bgp-evpn-mh/torm11/evpn.conf +++ b/tests/topotests/bgp_evpn_mh/torm11/evpn.conf diff --git a/tests/topotests/bgp-evpn-mh/torm11/pim.conf b/tests/topotests/bgp_evpn_mh/torm11/pim.conf index fbba735873..fbba735873 100644 --- a/tests/topotests/bgp-evpn-mh/torm11/pim.conf +++ b/tests/topotests/bgp_evpn_mh/torm11/pim.conf diff --git a/tests/topotests/bgp-evpn-mh/torm11/zebra.conf b/tests/topotests/bgp_evpn_mh/torm11/zebra.conf index 33e89c06ae..33e89c06ae 100644 --- a/tests/topotests/bgp-evpn-mh/torm11/zebra.conf +++ b/tests/topotests/bgp_evpn_mh/torm11/zebra.conf diff --git a/tests/topotests/bgp-evpn-mh/torm12/evpn.conf b/tests/topotests/bgp_evpn_mh/torm12/evpn.conf index 2c13024bbc..2c13024bbc 100644 --- a/tests/topotests/bgp-evpn-mh/torm12/evpn.conf +++ b/tests/topotests/bgp_evpn_mh/torm12/evpn.conf diff --git a/tests/topotests/bgp-evpn-mh/torm12/pim.conf b/tests/topotests/bgp_evpn_mh/torm12/pim.conf index 3dd63b44ca..3dd63b44ca 100644 --- a/tests/topotests/bgp-evpn-mh/torm12/pim.conf +++ b/tests/topotests/bgp_evpn_mh/torm12/pim.conf diff --git a/tests/topotests/bgp-evpn-mh/torm12/zebra.conf b/tests/topotests/bgp_evpn_mh/torm12/zebra.conf index 419f62b2ac..419f62b2ac 100644 --- a/tests/topotests/bgp-evpn-mh/torm12/zebra.conf +++ b/tests/topotests/bgp_evpn_mh/torm12/zebra.conf diff --git a/tests/topotests/bgp-evpn-mh/torm21/evpn.conf b/tests/topotests/bgp_evpn_mh/torm21/evpn.conf index 2a2ba061c6..2a2ba061c6 100644 --- a/tests/topotests/bgp-evpn-mh/torm21/evpn.conf +++ b/tests/topotests/bgp_evpn_mh/torm21/evpn.conf diff --git a/tests/topotests/bgp-evpn-mh/torm21/pim.conf b/tests/topotests/bgp_evpn_mh/torm21/pim.conf index 71aa91a06d..71aa91a06d 100644 --- a/tests/topotests/bgp-evpn-mh/torm21/pim.conf +++ b/tests/topotests/bgp_evpn_mh/torm21/pim.conf diff --git a/tests/topotests/bgp-evpn-mh/torm21/zebra.conf b/tests/topotests/bgp_evpn_mh/torm21/zebra.conf index 525f5eb099..525f5eb099 100644 --- a/tests/topotests/bgp-evpn-mh/torm21/zebra.conf +++ b/tests/topotests/bgp_evpn_mh/torm21/zebra.conf diff --git a/tests/topotests/bgp-evpn-mh/torm22/evpn.conf b/tests/topotests/bgp_evpn_mh/torm22/evpn.conf index 432135c94a..432135c94a 100644 --- a/tests/topotests/bgp-evpn-mh/torm22/evpn.conf +++ b/tests/topotests/bgp_evpn_mh/torm22/evpn.conf diff --git a/tests/topotests/bgp-evpn-mh/torm22/pim.conf b/tests/topotests/bgp_evpn_mh/torm22/pim.conf index 46f330f5cd..46f330f5cd 100644 --- a/tests/topotests/bgp-evpn-mh/torm22/pim.conf +++ b/tests/topotests/bgp_evpn_mh/torm22/pim.conf diff --git a/tests/topotests/bgp-evpn-mh/torm22/zebra.conf b/tests/topotests/bgp_evpn_mh/torm22/zebra.conf index 398064df6c..398064df6c 100644 --- a/tests/topotests/bgp-evpn-mh/torm22/zebra.conf +++ b/tests/topotests/bgp_evpn_mh/torm22/zebra.conf diff --git a/tests/topotests/bgp-evpn-vxlan_topo1/P1/bgpd.conf b/tests/topotests/bgp_evpn_vxlan_topo1/P1/bgpd.conf index cdf4cb4feb..cdf4cb4feb 100644 --- a/tests/topotests/bgp-evpn-vxlan_topo1/P1/bgpd.conf +++ b/tests/topotests/bgp_evpn_vxlan_topo1/P1/bgpd.conf diff --git a/tests/topotests/bgp-evpn-vxlan_topo1/P1/ospfd.conf b/tests/topotests/bgp_evpn_vxlan_topo1/P1/ospfd.conf index 2db7edb806..2db7edb806 100644 --- a/tests/topotests/bgp-evpn-vxlan_topo1/P1/ospfd.conf +++ b/tests/topotests/bgp_evpn_vxlan_topo1/P1/ospfd.conf diff --git a/tests/topotests/bgp-evpn-vxlan_topo1/P1/zebra.conf b/tests/topotests/bgp_evpn_vxlan_topo1/P1/zebra.conf index 95b5da8402..95b5da8402 100644 --- a/tests/topotests/bgp-evpn-vxlan_topo1/P1/zebra.conf +++ b/tests/topotests/bgp_evpn_vxlan_topo1/P1/zebra.conf diff --git a/tests/topotests/bgp-evpn-vxlan_topo1/PE1/bgpd.conf b/tests/topotests/bgp_evpn_vxlan_topo1/PE1/bgpd.conf index 991a1e7e56..991a1e7e56 100644 --- a/tests/topotests/bgp-evpn-vxlan_topo1/PE1/bgpd.conf +++ b/tests/topotests/bgp_evpn_vxlan_topo1/PE1/bgpd.conf diff --git a/tests/topotests/bgp-evpn-vxlan_topo1/PE1/evpn.vni.json b/tests/topotests/bgp_evpn_vxlan_topo1/PE1/evpn.vni.json index e500a1d85c..e500a1d85c 100644 --- a/tests/topotests/bgp-evpn-vxlan_topo1/PE1/evpn.vni.json +++ b/tests/topotests/bgp_evpn_vxlan_topo1/PE1/evpn.vni.json diff --git a/tests/topotests/bgp-evpn-vxlan_topo1/PE1/ospfd.conf b/tests/topotests/bgp_evpn_vxlan_topo1/PE1/ospfd.conf index f1c2b42dc1..f1c2b42dc1 100644 --- a/tests/topotests/bgp-evpn-vxlan_topo1/PE1/ospfd.conf +++ b/tests/topotests/bgp_evpn_vxlan_topo1/PE1/ospfd.conf diff --git a/tests/topotests/bgp-evpn-vxlan_topo1/PE1/zebra.conf b/tests/topotests/bgp_evpn_vxlan_topo1/PE1/zebra.conf index e2699475c9..e2699475c9 100644 --- a/tests/topotests/bgp-evpn-vxlan_topo1/PE1/zebra.conf +++ b/tests/topotests/bgp_evpn_vxlan_topo1/PE1/zebra.conf diff --git a/tests/topotests/bgp-evpn-vxlan_topo1/PE2/bgpd.conf b/tests/topotests/bgp_evpn_vxlan_topo1/PE2/bgpd.conf index 52f8687bc1..52f8687bc1 100644 --- a/tests/topotests/bgp-evpn-vxlan_topo1/PE2/bgpd.conf +++ b/tests/topotests/bgp_evpn_vxlan_topo1/PE2/bgpd.conf diff --git a/tests/topotests/bgp-evpn-vxlan_topo1/PE2/evpn.vni.json b/tests/topotests/bgp_evpn_vxlan_topo1/PE2/evpn.vni.json index 0a56a235bd..0a56a235bd 100644 --- a/tests/topotests/bgp-evpn-vxlan_topo1/PE2/evpn.vni.json +++ b/tests/topotests/bgp_evpn_vxlan_topo1/PE2/evpn.vni.json diff --git a/tests/topotests/bgp-evpn-vxlan_topo1/PE2/ospfd.conf b/tests/topotests/bgp_evpn_vxlan_topo1/PE2/ospfd.conf index 065c993303..065c993303 100644 --- a/tests/topotests/bgp-evpn-vxlan_topo1/PE2/ospfd.conf +++ b/tests/topotests/bgp_evpn_vxlan_topo1/PE2/ospfd.conf diff --git a/tests/topotests/bgp-evpn-vxlan_topo1/PE2/zebra.conf b/tests/topotests/bgp_evpn_vxlan_topo1/PE2/zebra.conf index 9738916ab0..9738916ab0 100644 --- a/tests/topotests/bgp-evpn-vxlan_topo1/PE2/zebra.conf +++ b/tests/topotests/bgp_evpn_vxlan_topo1/PE2/zebra.conf diff --git a/tests/topotests/bgp_default-route_route-map_match/__init__.py b/tests/topotests/bgp_evpn_vxlan_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp_default-route_route-map_match/__init__.py +++ b/tests/topotests/bgp_evpn_vxlan_topo1/__init__.py diff --git a/tests/topotests/bgp-evpn-vxlan_topo1/host1/bgpd.conf b/tests/topotests/bgp_evpn_vxlan_topo1/host1/bgpd.conf index cdf4cb4feb..cdf4cb4feb 100644 --- a/tests/topotests/bgp-evpn-vxlan_topo1/host1/bgpd.conf +++ b/tests/topotests/bgp_evpn_vxlan_topo1/host1/bgpd.conf diff --git a/tests/topotests/bgp-evpn-vxlan_topo1/host1/ospfd.conf b/tests/topotests/bgp_evpn_vxlan_topo1/host1/ospfd.conf index cdf4cb4feb..cdf4cb4feb 100644 --- a/tests/topotests/bgp-evpn-vxlan_topo1/host1/ospfd.conf +++ b/tests/topotests/bgp_evpn_vxlan_topo1/host1/ospfd.conf diff --git a/tests/topotests/bgp-evpn-vxlan_topo1/host1/zebra.conf b/tests/topotests/bgp_evpn_vxlan_topo1/host1/zebra.conf index 91fae9eeba..91fae9eeba 100644 --- a/tests/topotests/bgp-evpn-vxlan_topo1/host1/zebra.conf +++ b/tests/topotests/bgp_evpn_vxlan_topo1/host1/zebra.conf diff --git a/tests/topotests/bgp-evpn-vxlan_topo1/host2/bgpd.conf b/tests/topotests/bgp_evpn_vxlan_topo1/host2/bgpd.conf index cdf4cb4feb..cdf4cb4feb 100644 --- a/tests/topotests/bgp-evpn-vxlan_topo1/host2/bgpd.conf +++ b/tests/topotests/bgp_evpn_vxlan_topo1/host2/bgpd.conf diff --git a/tests/topotests/bgp-evpn-vxlan_topo1/host2/ospfd.conf b/tests/topotests/bgp_evpn_vxlan_topo1/host2/ospfd.conf index cdf4cb4feb..cdf4cb4feb 100644 --- a/tests/topotests/bgp-evpn-vxlan_topo1/host2/ospfd.conf +++ b/tests/topotests/bgp_evpn_vxlan_topo1/host2/ospfd.conf diff --git a/tests/topotests/bgp-evpn-vxlan_topo1/host2/zebra.conf b/tests/topotests/bgp_evpn_vxlan_topo1/host2/zebra.conf index df9adeb3b5..df9adeb3b5 100644 --- a/tests/topotests/bgp-evpn-vxlan_topo1/host2/zebra.conf +++ b/tests/topotests/bgp_evpn_vxlan_topo1/host2/zebra.conf diff --git a/tests/topotests/bgp-evpn-vxlan_topo1/test_bgp_evpn_vxlan.py b/tests/topotests/bgp_evpn_vxlan_topo1/test_bgp_evpn_vxlan.py index 086bad6481..086bad6481 100755 --- a/tests/topotests/bgp-evpn-vxlan_topo1/test_bgp_evpn_vxlan.py +++ b/tests/topotests/bgp_evpn_vxlan_topo1/test_bgp_evpn_vxlan.py diff --git a/tests/topotests/bgp_flowspec/test_bgp_flowspec_topo.py b/tests/topotests/bgp_flowspec/test_bgp_flowspec_topo.py index a772a2aab1..fdd84fcd40 100644 --- a/tests/topotests/bgp_flowspec/test_bgp_flowspec_topo.py +++ b/tests/topotests/bgp_flowspec/test_bgp_flowspec_topo.py @@ -71,6 +71,10 @@ from lib.lutil import luCommand # Required to instantiate the topology builder class. from mininet.topo import Topo + +pytestmark = [pytest.mark.bgpd] + + ##################################################### ## ## Network Topology Definition diff --git a/tests/topotests/bgp_default-route_route-map_match_set/__init__.py b/tests/topotests/bgp_path_attributes_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp_default-route_route-map_match_set/__init__.py +++ b/tests/topotests/bgp_path_attributes_topo1/__init__.py diff --git a/tests/topotests/bgp-path-attributes-topo1/bgp_path_attributes.json b/tests/topotests/bgp_path_attributes_topo1/bgp_path_attributes.json index de2bffa33d..de2bffa33d 100644 --- a/tests/topotests/bgp-path-attributes-topo1/bgp_path_attributes.json +++ b/tests/topotests/bgp_path_attributes_topo1/bgp_path_attributes.json diff --git a/tests/topotests/bgp-path-attributes-topo1/test_bgp_path_attributes.py b/tests/topotests/bgp_path_attributes_topo1/test_bgp_path_attributes.py index a9541a55c5..a9541a55c5 100644 --- a/tests/topotests/bgp-path-attributes-topo1/test_bgp_path_attributes.py +++ b/tests/topotests/bgp_path_attributes_topo1/test_bgp_path_attributes.py diff --git a/tests/topotests/bgp_default-route_route-map_set/__init__.py b/tests/topotests/bgp_peer_group/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp_default-route_route-map_set/__init__.py +++ b/tests/topotests/bgp_peer_group/__init__.py diff --git a/tests/topotests/bgp_peer-group/r1/bgpd.conf b/tests/topotests/bgp_peer_group/r1/bgpd.conf index 19b490a359..19b490a359 100644 --- a/tests/topotests/bgp_peer-group/r1/bgpd.conf +++ b/tests/topotests/bgp_peer_group/r1/bgpd.conf diff --git a/tests/topotests/bgp_peer-group/r1/zebra.conf b/tests/topotests/bgp_peer_group/r1/zebra.conf index e2c399e536..e2c399e536 100644 --- a/tests/topotests/bgp_peer-group/r1/zebra.conf +++ b/tests/topotests/bgp_peer_group/r1/zebra.conf diff --git a/tests/topotests/bgp_peer-group/r2/bgpd.conf b/tests/topotests/bgp_peer_group/r2/bgpd.conf index 0880ee9fae..0880ee9fae 100644 --- a/tests/topotests/bgp_peer-group/r2/bgpd.conf +++ b/tests/topotests/bgp_peer_group/r2/bgpd.conf diff --git a/tests/topotests/bgp_peer-group/r2/zebra.conf b/tests/topotests/bgp_peer_group/r2/zebra.conf index 606c17bec9..606c17bec9 100644 --- a/tests/topotests/bgp_peer-group/r2/zebra.conf +++ b/tests/topotests/bgp_peer_group/r2/zebra.conf diff --git a/tests/topotests/bgp_peer-group/r3/bgpd.conf b/tests/topotests/bgp_peer_group/r3/bgpd.conf index eb2fca15fb..eb2fca15fb 100644 --- a/tests/topotests/bgp_peer-group/r3/bgpd.conf +++ b/tests/topotests/bgp_peer_group/r3/bgpd.conf diff --git a/tests/topotests/bgp_peer-group/r3/zebra.conf b/tests/topotests/bgp_peer_group/r3/zebra.conf index e9fdfb70c5..e9fdfb70c5 100644 --- a/tests/topotests/bgp_peer-group/r3/zebra.conf +++ b/tests/topotests/bgp_peer_group/r3/zebra.conf diff --git a/tests/topotests/bgp_peer-group/test_bgp_peer-group.py b/tests/topotests/bgp_peer_group/test_bgp_peer-group.py index 21dc725793..21dc725793 100644 --- a/tests/topotests/bgp_peer-group/test_bgp_peer-group.py +++ b/tests/topotests/bgp_peer_group/test_bgp_peer-group.py diff --git a/tests/topotests/bgp_peer-type_multipath-relax/exabgp.env b/tests/topotests/bgp_peer_type_multipath_relax/exabgp.env index 6c554f5fa8..6c554f5fa8 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/exabgp.env +++ b/tests/topotests/bgp_peer_type_multipath_relax/exabgp.env diff --git a/tests/topotests/bgp_peer-type_multipath-relax/peer1/exa-receive.py b/tests/topotests/bgp_peer_type_multipath_relax/peer1/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp_peer-type_multipath-relax/peer1/exa-receive.py +++ b/tests/topotests/bgp_peer_type_multipath_relax/peer1/exa-receive.py diff --git a/tests/topotests/bgp_peer-type_multipath-relax/peer1/exa_readpipe.py b/tests/topotests/bgp_peer_type_multipath_relax/peer1/exa_readpipe.py index 9e689a27e3..9e689a27e3 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/peer1/exa_readpipe.py +++ b/tests/topotests/bgp_peer_type_multipath_relax/peer1/exa_readpipe.py diff --git a/tests/topotests/bgp_peer-type_multipath-relax/peer1/exabgp.cfg b/tests/topotests/bgp_peer_type_multipath_relax/peer1/exabgp.cfg index 4a7dc48126..4a7dc48126 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/peer1/exabgp.cfg +++ b/tests/topotests/bgp_peer_type_multipath_relax/peer1/exabgp.cfg diff --git a/tests/topotests/bgp_peer-type_multipath-relax/peer2/exa-receive.py b/tests/topotests/bgp_peer_type_multipath_relax/peer2/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp_peer-type_multipath-relax/peer2/exa-receive.py +++ b/tests/topotests/bgp_peer_type_multipath_relax/peer2/exa-receive.py diff --git a/tests/topotests/bgp_peer-type_multipath-relax/peer2/exa_readpipe.py b/tests/topotests/bgp_peer_type_multipath_relax/peer2/exa_readpipe.py index 9e689a27e3..9e689a27e3 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/peer2/exa_readpipe.py +++ b/tests/topotests/bgp_peer_type_multipath_relax/peer2/exa_readpipe.py diff --git a/tests/topotests/bgp_peer-type_multipath-relax/peer2/exabgp.cfg b/tests/topotests/bgp_peer_type_multipath_relax/peer2/exabgp.cfg index b53b054550..b53b054550 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/peer2/exabgp.cfg +++ b/tests/topotests/bgp_peer_type_multipath_relax/peer2/exabgp.cfg diff --git a/tests/topotests/bgp_peer-type_multipath-relax/peer3/exa-receive.py b/tests/topotests/bgp_peer_type_multipath_relax/peer3/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp_peer-type_multipath-relax/peer3/exa-receive.py +++ b/tests/topotests/bgp_peer_type_multipath_relax/peer3/exa-receive.py diff --git a/tests/topotests/bgp_peer-type_multipath-relax/peer3/exa_readpipe.py b/tests/topotests/bgp_peer_type_multipath_relax/peer3/exa_readpipe.py index 9e689a27e3..9e689a27e3 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/peer3/exa_readpipe.py +++ b/tests/topotests/bgp_peer_type_multipath_relax/peer3/exa_readpipe.py diff --git a/tests/topotests/bgp_peer-type_multipath-relax/peer3/exabgp.cfg b/tests/topotests/bgp_peer_type_multipath_relax/peer3/exabgp.cfg index 6a1cc2fb3f..6a1cc2fb3f 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/peer3/exabgp.cfg +++ b/tests/topotests/bgp_peer_type_multipath_relax/peer3/exabgp.cfg diff --git a/tests/topotests/bgp_peer-type_multipath-relax/peer4/exa-receive.py b/tests/topotests/bgp_peer_type_multipath_relax/peer4/exa-receive.py index 031ff455ca..031ff455ca 100755 --- a/tests/topotests/bgp_peer-type_multipath-relax/peer4/exa-receive.py +++ b/tests/topotests/bgp_peer_type_multipath_relax/peer4/exa-receive.py diff --git a/tests/topotests/bgp_peer-type_multipath-relax/peer4/exa_readpipe.py b/tests/topotests/bgp_peer_type_multipath_relax/peer4/exa_readpipe.py index 9e689a27e3..9e689a27e3 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/peer4/exa_readpipe.py +++ b/tests/topotests/bgp_peer_type_multipath_relax/peer4/exa_readpipe.py diff --git a/tests/topotests/bgp_peer-type_multipath-relax/peer4/exabgp.cfg b/tests/topotests/bgp_peer_type_multipath_relax/peer4/exabgp.cfg index 2cc26cb80f..2cc26cb80f 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/peer4/exabgp.cfg +++ b/tests/topotests/bgp_peer_type_multipath_relax/peer4/exabgp.cfg diff --git a/tests/topotests/bgp_peer-type_multipath-relax/r1/bgpd.conf b/tests/topotests/bgp_peer_type_multipath_relax/r1/bgpd.conf index 038f108aa8..038f108aa8 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/r1/bgpd.conf +++ b/tests/topotests/bgp_peer_type_multipath_relax/r1/bgpd.conf diff --git a/tests/topotests/bgp_peer-type_multipath-relax/r1/multipath.json b/tests/topotests/bgp_peer_type_multipath_relax/r1/multipath.json index 11dad786f2..11dad786f2 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/r1/multipath.json +++ b/tests/topotests/bgp_peer_type_multipath_relax/r1/multipath.json diff --git a/tests/topotests/bgp_peer-type_multipath-relax/r1/not-multipath.json b/tests/topotests/bgp_peer_type_multipath_relax/r1/not-multipath.json index c621832157..c621832157 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/r1/not-multipath.json +++ b/tests/topotests/bgp_peer_type_multipath_relax/r1/not-multipath.json diff --git a/tests/topotests/bgp_peer-type_multipath-relax/r1/prefix1-eBGP-confed.json b/tests/topotests/bgp_peer_type_multipath_relax/r1/prefix1-eBGP-confed.json index 22ec2c298b..22ec2c298b 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/r1/prefix1-eBGP-confed.json +++ b/tests/topotests/bgp_peer_type_multipath_relax/r1/prefix1-eBGP-confed.json diff --git a/tests/topotests/bgp_peer-type_multipath-relax/r1/prefix1-eBGP-iBGP.json b/tests/topotests/bgp_peer_type_multipath_relax/r1/prefix1-eBGP-iBGP.json index facddcda46..facddcda46 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/r1/prefix1-eBGP-iBGP.json +++ b/tests/topotests/bgp_peer_type_multipath_relax/r1/prefix1-eBGP-iBGP.json diff --git a/tests/topotests/bgp_peer-type_multipath-relax/r1/prefix1-no-recursive.json b/tests/topotests/bgp_peer_type_multipath_relax/r1/prefix1-no-recursive.json index 5399ceefcc..5399ceefcc 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/r1/prefix1-no-recursive.json +++ b/tests/topotests/bgp_peer_type_multipath_relax/r1/prefix1-no-recursive.json diff --git a/tests/topotests/bgp_peer-type_multipath-relax/r1/prefix1-recursive.json b/tests/topotests/bgp_peer_type_multipath_relax/r1/prefix1-recursive.json index 7da95aed1c..7da95aed1c 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/r1/prefix1-recursive.json +++ b/tests/topotests/bgp_peer_type_multipath_relax/r1/prefix1-recursive.json diff --git a/tests/topotests/bgp_peer-type_multipath-relax/r1/prefix1.json b/tests/topotests/bgp_peer_type_multipath_relax/r1/prefix1.json index a90669a474..a90669a474 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/r1/prefix1.json +++ b/tests/topotests/bgp_peer_type_multipath_relax/r1/prefix1.json diff --git a/tests/topotests/bgp_peer-type_multipath-relax/r1/prefix3-ip-route.json b/tests/topotests/bgp_peer_type_multipath_relax/r1/prefix3-ip-route.json index 1bf38efcc5..1bf38efcc5 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/r1/prefix3-ip-route.json +++ b/tests/topotests/bgp_peer_type_multipath_relax/r1/prefix3-ip-route.json diff --git a/tests/topotests/bgp_peer-type_multipath-relax/r1/prefix3-no-recursive.json b/tests/topotests/bgp_peer_type_multipath_relax/r1/prefix3-no-recursive.json index 33d0f2d1ce..33d0f2d1ce 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/r1/prefix3-no-recursive.json +++ b/tests/topotests/bgp_peer_type_multipath_relax/r1/prefix3-no-recursive.json diff --git a/tests/topotests/bgp_peer-type_multipath-relax/r1/prefix3-recursive.json b/tests/topotests/bgp_peer_type_multipath_relax/r1/prefix3-recursive.json index 6ac2512a60..6ac2512a60 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/r1/prefix3-recursive.json +++ b/tests/topotests/bgp_peer_type_multipath_relax/r1/prefix3-recursive.json diff --git a/tests/topotests/bgp_peer-type_multipath-relax/r1/zebra.conf b/tests/topotests/bgp_peer_type_multipath_relax/r1/zebra.conf index 911aa1c39d..911aa1c39d 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/r1/zebra.conf +++ b/tests/topotests/bgp_peer_type_multipath_relax/r1/zebra.conf diff --git a/tests/topotests/bgp_peer-type_multipath-relax/r2/bgpd.conf b/tests/topotests/bgp_peer_type_multipath_relax/r2/bgpd.conf index 2362a19f26..2362a19f26 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/r2/bgpd.conf +++ b/tests/topotests/bgp_peer_type_multipath_relax/r2/bgpd.conf diff --git a/tests/topotests/bgp_peer-type_multipath-relax/r2/staticd.conf b/tests/topotests/bgp_peer_type_multipath_relax/r2/staticd.conf index 35ebe0dc66..35ebe0dc66 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/r2/staticd.conf +++ b/tests/topotests/bgp_peer_type_multipath_relax/r2/staticd.conf diff --git a/tests/topotests/bgp_peer-type_multipath-relax/r2/zebra.conf b/tests/topotests/bgp_peer_type_multipath_relax/r2/zebra.conf index 900e7d4fbc..900e7d4fbc 100644 --- a/tests/topotests/bgp_peer-type_multipath-relax/r2/zebra.conf +++ b/tests/topotests/bgp_peer_type_multipath_relax/r2/zebra.conf diff --git a/tests/topotests/bgp_peer-type_multipath-relax/test_bgp_peer-type_multipath-relax.py b/tests/topotests/bgp_peer_type_multipath_relax/test_bgp_peer-type_multipath-relax.py index 39a0beeb11..39a0beeb11 100755 --- a/tests/topotests/bgp_peer-type_multipath-relax/test_bgp_peer-type_multipath-relax.py +++ b/tests/topotests/bgp_peer_type_multipath_relax/test_bgp_peer-type_multipath-relax.py diff --git a/tests/topotests/bgp_peer-group/__init__.py b/tests/topotests/bgp_prefix_list_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp_peer-group/__init__.py +++ b/tests/topotests/bgp_prefix_list_topo1/__init__.py diff --git a/tests/topotests/bgp-prefix-list-topo1/prefix_lists.json b/tests/topotests/bgp_prefix_list_topo1/prefix_lists.json index 3bb07ad994..3bb07ad994 100644 --- a/tests/topotests/bgp-prefix-list-topo1/prefix_lists.json +++ b/tests/topotests/bgp_prefix_list_topo1/prefix_lists.json diff --git a/tests/topotests/bgp-prefix-list-topo1/test_prefix_lists.py b/tests/topotests/bgp_prefix_list_topo1/test_prefix_lists.py index 22952f645c..22952f645c 100644 --- a/tests/topotests/bgp-prefix-list-topo1/test_prefix_lists.py +++ b/tests/topotests/bgp_prefix_list_topo1/test_prefix_lists.py diff --git a/tests/topotests/bgp_recursive_route_ebgp_multi_hop/test_bgp_recursive_route_ebgp_multi_hop.py b/tests/topotests/bgp_recursive_route_ebgp_multi_hop/test_bgp_recursive_route_ebgp_multi_hop.py index c758c31dc1..e7d70f6d8e 100644 --- a/tests/topotests/bgp_recursive_route_ebgp_multi_hop/test_bgp_recursive_route_ebgp_multi_hop.py +++ b/tests/topotests/bgp_recursive_route_ebgp_multi_hop/test_bgp_recursive_route_ebgp_multi_hop.py @@ -287,7 +287,7 @@ def test_recursive_routes_iBGP_peer_p1(request): input_dict_4, next_hop=topo["routers"]["r3"]["links"]["r1"][addr_type].split("/")[0], ) - assert result is True, "Testcase : Failed \n Error : {}".format( + assert result is True, "Testcase {}: Failed \n Error : {}".format( tc_name, result ) @@ -322,7 +322,7 @@ def test_recursive_routes_iBGP_peer_p1(request): } } result = create_static_routes(tgen, input_dict_3) - assert result is True, "Testcase : Failed \n Error : {}".format( + assert result is True, "Testcase {}: Failed \n Error : {}".format( tc_name, result ) @@ -335,7 +335,7 @@ def test_recursive_routes_iBGP_peer_p1(request): next_hop=topo["routers"]["r3"]["links"]["r1"][addr_type].split("/")[0], protocol="bgp", ) - assert result is True, "Testcase : Failed \n Error : {}".format( + assert result is True, "Testcase {}: Failed \n Error : {}".format( tc_name, result ) @@ -354,7 +354,7 @@ def test_recursive_routes_iBGP_peer_p1(request): } } result = create_static_routes(tgen, input_dict_3) - assert result is True, "Testcase : Failed \n Error : {}".format( + assert result is True, "Testcase {}: Failed \n Error : {}".format( tc_name, result ) @@ -388,7 +388,7 @@ def test_recursive_routes_iBGP_peer_p1(request): } } result = create_static_routes(tgen, input_dict_3) - assert result is True, "Testcase : Failed \n Error : {}".format( + assert result is True, "Testcase {}: Failed \n Error : {}".format( tc_name, result ) @@ -401,7 +401,7 @@ def test_recursive_routes_iBGP_peer_p1(request): next_hop=topo["routers"]["r3"]["links"]["r1"][addr_type].split("/")[0], protocol="bgp", ) - assert result is True, "Testcase : Failed \n Error : {}".format( + assert result is True, "Testcase {}: Failed \n Error : {}".format( tc_name, result ) @@ -427,7 +427,7 @@ def test_recursive_routes_iBGP_peer_p1(request): } } result = create_static_routes(tgen, input_dict_4) - assert result is True, "Testcase : Failed \n Error : {}".format( + assert result is True, "Testcase {}: Failed \n Error : {}".format( tc_name, result ) @@ -474,7 +474,7 @@ def test_recursive_routes_iBGP_peer_p1(request): } } result = create_static_routes(tgen, input_dict_4) - assert result is True, "Testcase : Failed \n Error : {}".format( + assert result is True, "Testcase {}: Failed \n Error : {}".format( tc_name, result ) @@ -639,7 +639,7 @@ def test_next_hop_as_self_ip_p1(request): input_dict_4, next_hop=topo["routers"]["r2"]["links"]["r4"][addr_type].split("/")[0], ) - assert result is True, "Testcase : Failed \n Error : {}".format( + assert result is True, "Testcase {}: Failed \n Error : {}".format( tc_name, result ) @@ -671,7 +671,7 @@ def test_next_hop_as_self_ip_p1(request): input_dict_4, next_hop=topo["routers"]["r2"]["links"]["r4"][addr_type].split("/")[0], ) - assert result is True, "Testcase : Failed \n Error : {}".format( + assert result is True, "Testcase {}: Failed \n Error : {}".format( tc_name, result ) result = verify_rib( @@ -1277,7 +1277,7 @@ def test_BGP_path_attributes_default_values_p1(request): topo["routers"]["r3"]["links"]["r4"][addr_type].split("/")[0], ], ) - assert result is True, "Testcase : Failed \n Error : {}".format( + assert result is True, "Testcase {}: Failed \n Error : {}".format( tc_name, result ) @@ -1298,7 +1298,7 @@ def test_BGP_path_attributes_default_values_p1(request): rmap_name="rmap_pf", input_dict=input_dict_4, ) - assert result is True, "Testcase : Failed \n Error : {}".format( + assert result is True, "Testcase {}: Failed \n Error : {}".format( tc_name, result ) @@ -1402,7 +1402,7 @@ def test_BGP_path_attributes_default_values_p1(request): rmap_name="rmap_pf", input_dict=input_dict_4, ) - assert result is True, "Testcase : Failed \n Error : {}".format( + assert result is True, "Testcase {}: Failed \n Error : {}".format( tc_name, result ) @@ -1478,7 +1478,7 @@ def test_BGP_path_attributes_default_values_p1(request): input_dict=input_dict_4, nexthop=None, ) - assert result is True, "Testcase : Failed \n Error : {}".format( + assert result is True, "Testcase {}: Failed \n Error : {}".format( tc_name, result ) @@ -1859,7 +1859,7 @@ def test_BGP_active_standby_preemption_and_ecmp_p1(request): topo["routers"]["r3"]["links"]["r4"][addr_type].split("/")[0], ], ) - assert result is True, "Testcase : Failed \n Error : {}".format( + assert result is True, "Testcase {}: Failed \n Error : {}".format( tc_name, result ) diff --git a/tests/topotests/bgp-route-map/bgp_route_map_topo1.json b/tests/topotests/bgp_route_map/bgp_route_map_topo1.json index e89263961d..e89263961d 100644 --- a/tests/topotests/bgp-route-map/bgp_route_map_topo1.json +++ b/tests/topotests/bgp_route_map/bgp_route_map_topo1.json diff --git a/tests/topotests/bgp-route-map/bgp_route_map_topo2.json b/tests/topotests/bgp_route_map/bgp_route_map_topo2.json index c22a4c3ea7..c22a4c3ea7 100755 --- a/tests/topotests/bgp-route-map/bgp_route_map_topo2.json +++ b/tests/topotests/bgp_route_map/bgp_route_map_topo2.json diff --git a/tests/topotests/bgp-route-map/test_route_map_topo1.py b/tests/topotests/bgp_route_map/test_route_map_topo1.py index 0158e24d31..0158e24d31 100644 --- a/tests/topotests/bgp-route-map/test_route_map_topo1.py +++ b/tests/topotests/bgp_route_map/test_route_map_topo1.py diff --git a/tests/topotests/bgp-route-map/test_route_map_topo2.py b/tests/topotests/bgp_route_map/test_route_map_topo2.py index 958eceba62..958eceba62 100644 --- a/tests/topotests/bgp-route-map/test_route_map_topo2.py +++ b/tests/topotests/bgp_route_map/test_route_map_topo2.py diff --git a/tests/topotests/bgp_sender-as-path-loop-detection/__init__.py b/tests/topotests/bgp_sender_as_path_loop_detection/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp_sender-as-path-loop-detection/__init__.py +++ b/tests/topotests/bgp_sender_as_path_loop_detection/__init__.py diff --git a/tests/topotests/bgp_sender-as-path-loop-detection/r1/bgpd.conf b/tests/topotests/bgp_sender_as_path_loop_detection/r1/bgpd.conf index 719d76392d..719d76392d 100644 --- a/tests/topotests/bgp_sender-as-path-loop-detection/r1/bgpd.conf +++ b/tests/topotests/bgp_sender_as_path_loop_detection/r1/bgpd.conf diff --git a/tests/topotests/bgp_sender-as-path-loop-detection/r1/zebra.conf b/tests/topotests/bgp_sender_as_path_loop_detection/r1/zebra.conf index 9904bb4e16..9904bb4e16 100644 --- a/tests/topotests/bgp_sender-as-path-loop-detection/r1/zebra.conf +++ b/tests/topotests/bgp_sender_as_path_loop_detection/r1/zebra.conf diff --git a/tests/topotests/bgp_sender-as-path-loop-detection/r2/bgpd.conf b/tests/topotests/bgp_sender_as_path_loop_detection/r2/bgpd.conf index a4a654d7b5..a4a654d7b5 100644 --- a/tests/topotests/bgp_sender-as-path-loop-detection/r2/bgpd.conf +++ b/tests/topotests/bgp_sender_as_path_loop_detection/r2/bgpd.conf diff --git a/tests/topotests/bgp_sender-as-path-loop-detection/r2/zebra.conf b/tests/topotests/bgp_sender_as_path_loop_detection/r2/zebra.conf index f0d357c5ff..f0d357c5ff 100644 --- a/tests/topotests/bgp_sender-as-path-loop-detection/r2/zebra.conf +++ b/tests/topotests/bgp_sender_as_path_loop_detection/r2/zebra.conf diff --git a/tests/topotests/bgp_sender-as-path-loop-detection/r3/bgpd.conf b/tests/topotests/bgp_sender_as_path_loop_detection/r3/bgpd.conf index 2e24de0b2d..2e24de0b2d 100644 --- a/tests/topotests/bgp_sender-as-path-loop-detection/r3/bgpd.conf +++ b/tests/topotests/bgp_sender_as_path_loop_detection/r3/bgpd.conf diff --git a/tests/topotests/bgp_sender-as-path-loop-detection/r3/zebra.conf b/tests/topotests/bgp_sender_as_path_loop_detection/r3/zebra.conf index a10fe3a3c7..a10fe3a3c7 100644 --- a/tests/topotests/bgp_sender-as-path-loop-detection/r3/zebra.conf +++ b/tests/topotests/bgp_sender_as_path_loop_detection/r3/zebra.conf diff --git a/tests/topotests/bgp_sender-as-path-loop-detection/test_bgp_sender-as-path-loop-detection.py b/tests/topotests/bgp_sender_as_path_loop_detection/test_bgp_sender-as-path-loop-detection.py index dffe24f3a0..dffe24f3a0 100644 --- a/tests/topotests/bgp_sender-as-path-loop-detection/test_bgp_sender-as-path-loop-detection.py +++ b/tests/topotests/bgp_sender_as_path_loop_detection/test_bgp_sender-as-path-loop-detection.py diff --git a/tests/topotests/bgp_set_local-preference_add_subtract/__init__.py b/tests/topotests/bgp_set_local_preference_add_subtract/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/bgp_set_local-preference_add_subtract/__init__.py +++ b/tests/topotests/bgp_set_local_preference_add_subtract/__init__.py diff --git a/tests/topotests/bgp_set_local-preference_add_subtract/r1/bgpd.conf b/tests/topotests/bgp_set_local_preference_add_subtract/r1/bgpd.conf index 57e2f5818a..57e2f5818a 100644 --- a/tests/topotests/bgp_set_local-preference_add_subtract/r1/bgpd.conf +++ b/tests/topotests/bgp_set_local_preference_add_subtract/r1/bgpd.conf diff --git a/tests/topotests/bgp_set_local-preference_add_subtract/r1/zebra.conf b/tests/topotests/bgp_set_local_preference_add_subtract/r1/zebra.conf index 6e9b0b4a7e..6e9b0b4a7e 100644 --- a/tests/topotests/bgp_set_local-preference_add_subtract/r1/zebra.conf +++ b/tests/topotests/bgp_set_local_preference_add_subtract/r1/zebra.conf diff --git a/tests/topotests/bgp_set_local-preference_add_subtract/r2/bgpd.conf b/tests/topotests/bgp_set_local_preference_add_subtract/r2/bgpd.conf index 82a01d4570..82a01d4570 100644 --- a/tests/topotests/bgp_set_local-preference_add_subtract/r2/bgpd.conf +++ b/tests/topotests/bgp_set_local_preference_add_subtract/r2/bgpd.conf diff --git a/tests/topotests/bgp_set_local-preference_add_subtract/r2/zebra.conf b/tests/topotests/bgp_set_local_preference_add_subtract/r2/zebra.conf index 93e3590448..93e3590448 100644 --- a/tests/topotests/bgp_set_local-preference_add_subtract/r2/zebra.conf +++ b/tests/topotests/bgp_set_local_preference_add_subtract/r2/zebra.conf diff --git a/tests/topotests/bgp_set_local-preference_add_subtract/r3/bgpd.conf b/tests/topotests/bgp_set_local_preference_add_subtract/r3/bgpd.conf index 65e092b0f2..65e092b0f2 100644 --- a/tests/topotests/bgp_set_local-preference_add_subtract/r3/bgpd.conf +++ b/tests/topotests/bgp_set_local_preference_add_subtract/r3/bgpd.conf diff --git a/tests/topotests/bgp_set_local-preference_add_subtract/r3/zebra.conf b/tests/topotests/bgp_set_local_preference_add_subtract/r3/zebra.conf index b5e060c3d6..b5e060c3d6 100644 --- a/tests/topotests/bgp_set_local-preference_add_subtract/r3/zebra.conf +++ b/tests/topotests/bgp_set_local_preference_add_subtract/r3/zebra.conf diff --git a/tests/topotests/bgp_set_local-preference_add_subtract/test_bgp_set_local-preference_add_subtract.py b/tests/topotests/bgp_set_local_preference_add_subtract/test_bgp_set_local-preference_add_subtract.py index af64648951..af64648951 100644 --- a/tests/topotests/bgp_set_local-preference_add_subtract/test_bgp_set_local-preference_add_subtract.py +++ b/tests/topotests/bgp_set_local_preference_add_subtract/test_bgp_set_local-preference_add_subtract.py diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/ce1/bgpd.conf b/tests/topotests/bgp_snmp_mplsl3vpn/ce1/bgpd.conf index b598666dfb..b598666dfb 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/ce1/bgpd.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/ce1/bgpd.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/ce1/snmpd.conf b/tests/topotests/bgp_snmp_mplsl3vpn/ce1/snmpd.conf index 36218d3538..36218d3538 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/ce1/snmpd.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/ce1/snmpd.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/ce1/zebra.conf b/tests/topotests/bgp_snmp_mplsl3vpn/ce1/zebra.conf index 8ad2ddc48c..8ad2ddc48c 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/ce1/zebra.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/ce1/zebra.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/ce2/bgpd.conf b/tests/topotests/bgp_snmp_mplsl3vpn/ce2/bgpd.conf index e388ccba8a..e388ccba8a 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/ce2/bgpd.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/ce2/bgpd.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/ce2/snmpd.conf b/tests/topotests/bgp_snmp_mplsl3vpn/ce2/snmpd.conf index 714585cb9b..714585cb9b 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/ce2/snmpd.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/ce2/snmpd.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/ce2/zebra.conf b/tests/topotests/bgp_snmp_mplsl3vpn/ce2/zebra.conf index fa2e968e55..fa2e968e55 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/ce2/zebra.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/ce2/zebra.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/ce3/bgpd.conf b/tests/topotests/bgp_snmp_mplsl3vpn/ce3/bgpd.conf index e388ccba8a..e388ccba8a 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/ce3/bgpd.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/ce3/bgpd.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/ce3/snmpd.conf b/tests/topotests/bgp_snmp_mplsl3vpn/ce3/snmpd.conf index 36218d3538..36218d3538 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/ce3/snmpd.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/ce3/snmpd.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/ce3/zebra.conf b/tests/topotests/bgp_snmp_mplsl3vpn/ce3/zebra.conf index ea91e21bad..ea91e21bad 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/ce3/zebra.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/ce3/zebra.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/ce4/bgpd.conf b/tests/topotests/bgp_snmp_mplsl3vpn/ce4/bgpd.conf index e388ccba8a..e388ccba8a 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/ce4/bgpd.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/ce4/bgpd.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/ce4/snmpd.conf b/tests/topotests/bgp_snmp_mplsl3vpn/ce4/snmpd.conf index 36218d3538..36218d3538 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/ce4/snmpd.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/ce4/snmpd.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/ce4/zebra.conf b/tests/topotests/bgp_snmp_mplsl3vpn/ce4/zebra.conf index 0866fa9759..0866fa9759 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/ce4/zebra.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/ce4/zebra.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/r1/bgpd.conf b/tests/topotests/bgp_snmp_mplsl3vpn/r1/bgpd.conf index 098e55d0ed..098e55d0ed 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/r1/bgpd.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/r1/bgpd.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/r1/isisd.conf b/tests/topotests/bgp_snmp_mplsl3vpn/r1/isisd.conf index b5ca993da3..b5ca993da3 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/r1/isisd.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/r1/isisd.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/r1/snmpd.conf b/tests/topotests/bgp_snmp_mplsl3vpn/r1/snmpd.conf index c903c1ad2e..c903c1ad2e 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/r1/snmpd.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/r1/snmpd.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/r1/zebra.conf b/tests/topotests/bgp_snmp_mplsl3vpn/r1/zebra.conf index 7228ae6bd2..7228ae6bd2 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/r1/zebra.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/r1/zebra.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/r2/isisd.conf b/tests/topotests/bgp_snmp_mplsl3vpn/r2/isisd.conf index 3dfa43831a..3dfa43831a 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/r2/isisd.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/r2/isisd.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/r2/snmpd.conf b/tests/topotests/bgp_snmp_mplsl3vpn/r2/snmpd.conf index 0cfebc7238..0cfebc7238 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/r2/snmpd.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/r2/snmpd.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/r2/zebra.conf b/tests/topotests/bgp_snmp_mplsl3vpn/r2/zebra.conf index 9bc4331bae..9bc4331bae 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/r2/zebra.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/r2/zebra.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/r3/isisd.conf b/tests/topotests/bgp_snmp_mplsl3vpn/r3/isisd.conf index 578ebafad6..578ebafad6 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/r3/isisd.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/r3/isisd.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/r3/snmpd.conf b/tests/topotests/bgp_snmp_mplsl3vpn/r3/snmpd.conf index b9eb00ea52..b9eb00ea52 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/r3/snmpd.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/r3/snmpd.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/r3/zebra.conf b/tests/topotests/bgp_snmp_mplsl3vpn/r3/zebra.conf index 4d2007e787..4d2007e787 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/r3/zebra.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/r3/zebra.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/r4/bgpd.conf b/tests/topotests/bgp_snmp_mplsl3vpn/r4/bgpd.conf index 2a834c799e..2a834c799e 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/r4/bgpd.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/r4/bgpd.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/r4/isisd.conf b/tests/topotests/bgp_snmp_mplsl3vpn/r4/isisd.conf index 3e9e9af45f..3e9e9af45f 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/r4/isisd.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/r4/isisd.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/r4/snmpd.conf b/tests/topotests/bgp_snmp_mplsl3vpn/r4/snmpd.conf index ec35f9f9c9..ec35f9f9c9 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/r4/snmpd.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/r4/snmpd.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/r4/zebra.conf b/tests/topotests/bgp_snmp_mplsl3vpn/r4/zebra.conf index c48407c108..c48407c108 100644 --- a/tests/topotests/bgp-snmp-mplsl3vpn/r4/zebra.conf +++ b/tests/topotests/bgp_snmp_mplsl3vpn/r4/zebra.conf diff --git a/tests/topotests/bgp-snmp-mplsl3vpn/test_bgp_snmp_mplsvpn.py b/tests/topotests/bgp_snmp_mplsl3vpn/test_bgp_snmp_mplsvpn.py index b830e16b9a..b830e16b9a 100755 --- a/tests/topotests/bgp-snmp-mplsl3vpn/test_bgp_snmp_mplsvpn.py +++ b/tests/topotests/bgp_snmp_mplsl3vpn/test_bgp_snmp_mplsvpn.py diff --git a/tests/topotests/bgp-vrf-route-leak-basic/r1/bgpd.conf b/tests/topotests/bgp_vrf_route_leak_basic/r1/bgpd.conf index 03dfbf9322..03dfbf9322 100644 --- a/tests/topotests/bgp-vrf-route-leak-basic/r1/bgpd.conf +++ b/tests/topotests/bgp_vrf_route_leak_basic/r1/bgpd.conf diff --git a/tests/topotests/bgp-vrf-route-leak-basic/r1/zebra.conf b/tests/topotests/bgp_vrf_route_leak_basic/r1/zebra.conf index 35038557df..35038557df 100644 --- a/tests/topotests/bgp-vrf-route-leak-basic/r1/zebra.conf +++ b/tests/topotests/bgp_vrf_route_leak_basic/r1/zebra.conf diff --git a/tests/topotests/bgp-vrf-route-leak-basic/setup_vrfs b/tests/topotests/bgp_vrf_route_leak_basic/setup_vrfs index fb67953fe3..fb67953fe3 100644 --- a/tests/topotests/bgp-vrf-route-leak-basic/setup_vrfs +++ b/tests/topotests/bgp_vrf_route_leak_basic/setup_vrfs diff --git a/tests/topotests/bgp-vrf-route-leak-basic/test_bgp-vrf-route-leak-basic.py b/tests/topotests/bgp_vrf_route_leak_basic/test_bgp-vrf-route-leak-basic.py index 71f64e9b70..71f64e9b70 100644 --- a/tests/topotests/bgp-vrf-route-leak-basic/test_bgp-vrf-route-leak-basic.py +++ b/tests/topotests/bgp_vrf_route_leak_basic/test_bgp-vrf-route-leak-basic.py diff --git a/tests/topotests/eigrp-topo1/r1/eigrpd.conf b/tests/topotests/eigrp_topo1/r1/eigrpd.conf index 6c800abd9b..6c800abd9b 100644 --- a/tests/topotests/eigrp-topo1/r1/eigrpd.conf +++ b/tests/topotests/eigrp_topo1/r1/eigrpd.conf diff --git a/tests/topotests/eigrp-topo1/r1/show_ip_eigrp.json b/tests/topotests/eigrp_topo1/r1/show_ip_eigrp.json index be0fdcfed9..be0fdcfed9 100644 --- a/tests/topotests/eigrp-topo1/r1/show_ip_eigrp.json +++ b/tests/topotests/eigrp_topo1/r1/show_ip_eigrp.json diff --git a/tests/topotests/eigrp-topo1/r1/show_ip_eigrp.ref b/tests/topotests/eigrp_topo1/r1/show_ip_eigrp.ref index a2d7b3307d..a2d7b3307d 100644 --- a/tests/topotests/eigrp-topo1/r1/show_ip_eigrp.ref +++ b/tests/topotests/eigrp_topo1/r1/show_ip_eigrp.ref diff --git a/tests/topotests/eigrp-topo1/r1/show_ip_route.json_ref b/tests/topotests/eigrp_topo1/r1/show_ip_route.json_ref index 26fa7ca415..26fa7ca415 100644 --- a/tests/topotests/eigrp-topo1/r1/show_ip_route.json_ref +++ b/tests/topotests/eigrp_topo1/r1/show_ip_route.json_ref diff --git a/tests/topotests/eigrp-topo1/r1/zebra.conf b/tests/topotests/eigrp_topo1/r1/zebra.conf index 56ae4a66f4..56ae4a66f4 100644 --- a/tests/topotests/eigrp-topo1/r1/zebra.conf +++ b/tests/topotests/eigrp_topo1/r1/zebra.conf diff --git a/tests/topotests/eigrp-topo1/r2/eigrpd.conf b/tests/topotests/eigrp_topo1/r2/eigrpd.conf index 56c747d97c..56c747d97c 100644 --- a/tests/topotests/eigrp-topo1/r2/eigrpd.conf +++ b/tests/topotests/eigrp_topo1/r2/eigrpd.conf diff --git a/tests/topotests/eigrp-topo1/r2/show_ip_eigrp.json b/tests/topotests/eigrp_topo1/r2/show_ip_eigrp.json index ae9f441a38..ae9f441a38 100644 --- a/tests/topotests/eigrp-topo1/r2/show_ip_eigrp.json +++ b/tests/topotests/eigrp_topo1/r2/show_ip_eigrp.json diff --git a/tests/topotests/eigrp-topo1/r2/show_ip_eigrp.ref b/tests/topotests/eigrp_topo1/r2/show_ip_eigrp.ref index cce49cda07..cce49cda07 100644 --- a/tests/topotests/eigrp-topo1/r2/show_ip_eigrp.ref +++ b/tests/topotests/eigrp_topo1/r2/show_ip_eigrp.ref diff --git a/tests/topotests/eigrp-topo1/r2/show_ip_route.json_ref b/tests/topotests/eigrp_topo1/r2/show_ip_route.json_ref index 71c931b17a..71c931b17a 100644 --- a/tests/topotests/eigrp-topo1/r2/show_ip_route.json_ref +++ b/tests/topotests/eigrp_topo1/r2/show_ip_route.json_ref diff --git a/tests/topotests/eigrp-topo1/r2/zebra.conf b/tests/topotests/eigrp_topo1/r2/zebra.conf index c440f3a350..c440f3a350 100644 --- a/tests/topotests/eigrp-topo1/r2/zebra.conf +++ b/tests/topotests/eigrp_topo1/r2/zebra.conf diff --git a/tests/topotests/eigrp-topo1/r3/eigrpd.conf b/tests/topotests/eigrp_topo1/r3/eigrpd.conf index 53ad1bb6a1..53ad1bb6a1 100644 --- a/tests/topotests/eigrp-topo1/r3/eigrpd.conf +++ b/tests/topotests/eigrp_topo1/r3/eigrpd.conf diff --git a/tests/topotests/eigrp-topo1/r3/show_ip_eigrp.json b/tests/topotests/eigrp_topo1/r3/show_ip_eigrp.json index 83db66c8c8..83db66c8c8 100644 --- a/tests/topotests/eigrp-topo1/r3/show_ip_eigrp.json +++ b/tests/topotests/eigrp_topo1/r3/show_ip_eigrp.json diff --git a/tests/topotests/eigrp-topo1/r3/show_ip_eigrp.ref b/tests/topotests/eigrp_topo1/r3/show_ip_eigrp.ref index 70f3d3f98b..70f3d3f98b 100644 --- a/tests/topotests/eigrp-topo1/r3/show_ip_eigrp.ref +++ b/tests/topotests/eigrp_topo1/r3/show_ip_eigrp.ref diff --git a/tests/topotests/eigrp-topo1/r3/show_ip_route.json_ref b/tests/topotests/eigrp_topo1/r3/show_ip_route.json_ref index 5e0b79d811..5e0b79d811 100644 --- a/tests/topotests/eigrp-topo1/r3/show_ip_route.json_ref +++ b/tests/topotests/eigrp_topo1/r3/show_ip_route.json_ref diff --git a/tests/topotests/eigrp-topo1/r3/zebra.conf b/tests/topotests/eigrp_topo1/r3/zebra.conf index 7f145b4583..7f145b4583 100644 --- a/tests/topotests/eigrp-topo1/r3/zebra.conf +++ b/tests/topotests/eigrp_topo1/r3/zebra.conf diff --git a/tests/topotests/eigrp-topo1/test_eigrp_topo1.dot b/tests/topotests/eigrp_topo1/test_eigrp_topo1.dot index ca3a0fe5b9..ca3a0fe5b9 100644 --- a/tests/topotests/eigrp-topo1/test_eigrp_topo1.dot +++ b/tests/topotests/eigrp_topo1/test_eigrp_topo1.dot diff --git a/tests/topotests/eigrp-topo1/test_eigrp_topo1.py b/tests/topotests/eigrp_topo1/test_eigrp_topo1.py index 6993bc53e7..6993bc53e7 100644 --- a/tests/topotests/eigrp-topo1/test_eigrp_topo1.py +++ b/tests/topotests/eigrp_topo1/test_eigrp_topo1.py diff --git a/tests/topotests/evpn-pim-1/host1/bgpd.conf b/tests/topotests/evpn_pim_1/host1/bgpd.conf index cdf4cb4feb..cdf4cb4feb 100644 --- a/tests/topotests/evpn-pim-1/host1/bgpd.conf +++ b/tests/topotests/evpn_pim_1/host1/bgpd.conf diff --git a/tests/topotests/evpn-pim-1/host1/pimd.conf b/tests/topotests/evpn_pim_1/host1/pimd.conf index 63a44c1333..63a44c1333 100644 --- a/tests/topotests/evpn-pim-1/host1/pimd.conf +++ b/tests/topotests/evpn_pim_1/host1/pimd.conf diff --git a/tests/topotests/evpn-pim-1/host1/zebra.conf b/tests/topotests/evpn_pim_1/host1/zebra.conf index 45ad031017..45ad031017 100644 --- a/tests/topotests/evpn-pim-1/host1/zebra.conf +++ b/tests/topotests/evpn_pim_1/host1/zebra.conf diff --git a/tests/topotests/evpn-pim-1/host2/bgpd.conf b/tests/topotests/evpn_pim_1/host2/bgpd.conf index cdf4cb4feb..cdf4cb4feb 100644 --- a/tests/topotests/evpn-pim-1/host2/bgpd.conf +++ b/tests/topotests/evpn_pim_1/host2/bgpd.conf diff --git a/tests/topotests/evpn-pim-1/host2/pimd.conf b/tests/topotests/evpn_pim_1/host2/pimd.conf index 63a44c1333..63a44c1333 100644 --- a/tests/topotests/evpn-pim-1/host2/pimd.conf +++ b/tests/topotests/evpn_pim_1/host2/pimd.conf diff --git a/tests/topotests/evpn-pim-1/host2/zebra.conf b/tests/topotests/evpn_pim_1/host2/zebra.conf index bfae53017f..bfae53017f 100644 --- a/tests/topotests/evpn-pim-1/host2/zebra.conf +++ b/tests/topotests/evpn_pim_1/host2/zebra.conf diff --git a/tests/topotests/evpn-pim-1/leaf1/bgpd.conf b/tests/topotests/evpn_pim_1/leaf1/bgpd.conf index 97fd8662f4..97fd8662f4 100644 --- a/tests/topotests/evpn-pim-1/leaf1/bgpd.conf +++ b/tests/topotests/evpn_pim_1/leaf1/bgpd.conf diff --git a/tests/topotests/evpn-pim-1/leaf1/pimd.conf b/tests/topotests/evpn_pim_1/leaf1/pimd.conf index 293e252086..293e252086 100644 --- a/tests/topotests/evpn-pim-1/leaf1/pimd.conf +++ b/tests/topotests/evpn_pim_1/leaf1/pimd.conf diff --git a/tests/topotests/evpn-pim-1/leaf1/zebra.conf b/tests/topotests/evpn_pim_1/leaf1/zebra.conf index 581cc6e7be..581cc6e7be 100644 --- a/tests/topotests/evpn-pim-1/leaf1/zebra.conf +++ b/tests/topotests/evpn_pim_1/leaf1/zebra.conf diff --git a/tests/topotests/evpn-pim-1/leaf2/bgpd.conf b/tests/topotests/evpn_pim_1/leaf2/bgpd.conf index 91d9bd8c8b..91d9bd8c8b 100644 --- a/tests/topotests/evpn-pim-1/leaf2/bgpd.conf +++ b/tests/topotests/evpn_pim_1/leaf2/bgpd.conf diff --git a/tests/topotests/evpn-pim-1/leaf2/pimd.conf b/tests/topotests/evpn_pim_1/leaf2/pimd.conf index 08d5a19a2a..08d5a19a2a 100644 --- a/tests/topotests/evpn-pim-1/leaf2/pimd.conf +++ b/tests/topotests/evpn_pim_1/leaf2/pimd.conf diff --git a/tests/topotests/evpn-pim-1/leaf2/zebra.conf b/tests/topotests/evpn_pim_1/leaf2/zebra.conf index 1bcf8e1ded..1bcf8e1ded 100644 --- a/tests/topotests/evpn-pim-1/leaf2/zebra.conf +++ b/tests/topotests/evpn_pim_1/leaf2/zebra.conf diff --git a/tests/topotests/evpn-pim-1/spine/bgp.summ.json b/tests/topotests/evpn_pim_1/spine/bgp.summ.json index 5ff4b096fd..5ff4b096fd 100644 --- a/tests/topotests/evpn-pim-1/spine/bgp.summ.json +++ b/tests/topotests/evpn_pim_1/spine/bgp.summ.json diff --git a/tests/topotests/evpn-pim-1/spine/bgpd.conf b/tests/topotests/evpn_pim_1/spine/bgpd.conf index 81ab802f35..81ab802f35 100644 --- a/tests/topotests/evpn-pim-1/spine/bgpd.conf +++ b/tests/topotests/evpn_pim_1/spine/bgpd.conf diff --git a/tests/topotests/evpn-pim-1/spine/join-info.json b/tests/topotests/evpn_pim_1/spine/join-info.json index 3d135fb964..3d135fb964 100644 --- a/tests/topotests/evpn-pim-1/spine/join-info.json +++ b/tests/topotests/evpn_pim_1/spine/join-info.json diff --git a/tests/topotests/evpn-pim-1/spine/pimd.conf b/tests/topotests/evpn_pim_1/spine/pimd.conf index 56adda5cc4..56adda5cc4 100644 --- a/tests/topotests/evpn-pim-1/spine/pimd.conf +++ b/tests/topotests/evpn_pim_1/spine/pimd.conf diff --git a/tests/topotests/evpn-pim-1/spine/zebra.conf b/tests/topotests/evpn_pim_1/spine/zebra.conf index 2cb719486e..2cb719486e 100644 --- a/tests/topotests/evpn-pim-1/spine/zebra.conf +++ b/tests/topotests/evpn_pim_1/spine/zebra.conf diff --git a/tests/topotests/evpn-pim-1/test_evpn_pim_topo1.py b/tests/topotests/evpn_pim_1/test_evpn_pim_topo1.py index 260a197aca..260a197aca 100644 --- a/tests/topotests/evpn-pim-1/test_evpn_pim_topo1.py +++ b/tests/topotests/evpn_pim_1/test_evpn_pim_topo1.py diff --git a/tests/topotests/example-test/__init__.py b/tests/topotests/example_test/__init__.py index e69de29bb2..e69de29bb2 100755 --- a/tests/topotests/example-test/__init__.py +++ b/tests/topotests/example_test/__init__.py diff --git a/tests/topotests/example-test/test_example.py b/tests/topotests/example_test/test_example.py index 72eceee612..72eceee612 100755 --- a/tests/topotests/example-test/test_example.py +++ b/tests/topotests/example_test/test_example.py diff --git a/tests/topotests/example-test/test_template.dot b/tests/topotests/example_test/test_template.dot index b5e12020ce..b5e12020ce 100644 --- a/tests/topotests/example-test/test_template.dot +++ b/tests/topotests/example_test/test_template.dot diff --git a/tests/topotests/example-test/test_template.jpg b/tests/topotests/example_test/test_template.jpg Binary files differindex b01ef73f5a..b01ef73f5a 100644 --- a/tests/topotests/example-test/test_template.jpg +++ b/tests/topotests/example_test/test_template.jpg diff --git a/tests/topotests/example-test/test_template.py b/tests/topotests/example_test/test_template.py index 0265dbe796..0265dbe796 100644 --- a/tests/topotests/example-test/test_template.py +++ b/tests/topotests/example_test/test_template.py diff --git a/tests/topotests/example-topojson-test/__init__.py b/tests/topotests/example_topojson_test/__init__.py index e69de29bb2..e69de29bb2 100755 --- a/tests/topotests/example-topojson-test/__init__.py +++ b/tests/topotests/example_topojson_test/__init__.py diff --git a/tests/topotests/example-topojson-test/test_topo_json_multiple_links/__init__.py b/tests/topotests/example_topojson_test/test_topo_json_multiple_links/__init__.py index e69de29bb2..e69de29bb2 100755 --- a/tests/topotests/example-topojson-test/test_topo_json_multiple_links/__init__.py +++ b/tests/topotests/example_topojson_test/test_topo_json_multiple_links/__init__.py diff --git a/tests/topotests/example-topojson-test/test_topo_json_multiple_links/example_topojson_multiple_links.json b/tests/topotests/example_topojson_test/test_topo_json_multiple_links/example_topojson_multiple_links.json index 3968348b1f..3968348b1f 100644 --- a/tests/topotests/example-topojson-test/test_topo_json_multiple_links/example_topojson_multiple_links.json +++ b/tests/topotests/example_topojson_test/test_topo_json_multiple_links/example_topojson_multiple_links.json diff --git a/tests/topotests/example-topojson-test/test_topo_json_multiple_links/test_example_topojson_multiple_links.py b/tests/topotests/example_topojson_test/test_topo_json_multiple_links/test_example_topojson_multiple_links.py index 09ac9f2fa4..09ac9f2fa4 100755 --- a/tests/topotests/example-topojson-test/test_topo_json_multiple_links/test_example_topojson_multiple_links.py +++ b/tests/topotests/example_topojson_test/test_topo_json_multiple_links/test_example_topojson_multiple_links.py diff --git a/tests/topotests/example-topojson-test/test_topo_json_single_link/__init__.py b/tests/topotests/example_topojson_test/test_topo_json_single_link/__init__.py index e69de29bb2..e69de29bb2 100755 --- a/tests/topotests/example-topojson-test/test_topo_json_single_link/__init__.py +++ b/tests/topotests/example_topojson_test/test_topo_json_single_link/__init__.py diff --git a/tests/topotests/example-topojson-test/test_topo_json_single_link/example_topojson.json b/tests/topotests/example_topojson_test/test_topo_json_single_link/example_topojson.json index 629d2d6d78..629d2d6d78 100644 --- a/tests/topotests/example-topojson-test/test_topo_json_single_link/example_topojson.json +++ b/tests/topotests/example_topojson_test/test_topo_json_single_link/example_topojson.json diff --git a/tests/topotests/example-topojson-test/test_topo_json_single_link/test_example_topojson.py b/tests/topotests/example_topojson_test/test_topo_json_single_link/test_example_topojson.py index 26336d5de1..26336d5de1 100755 --- a/tests/topotests/example-topojson-test/test_topo_json_single_link/test_example_topojson.py +++ b/tests/topotests/example_topojson_test/test_topo_json_single_link/test_example_topojson.py diff --git a/tests/topotests/example-topojson-test/test_topo_json_single_link_loopback/__init__.py b/tests/topotests/example_topojson_test/test_topo_json_single_link_loopback/__init__.py index e69de29bb2..e69de29bb2 100755 --- a/tests/topotests/example-topojson-test/test_topo_json_single_link_loopback/__init__.py +++ b/tests/topotests/example_topojson_test/test_topo_json_single_link_loopback/__init__.py diff --git a/tests/topotests/example-topojson-test/test_topo_json_single_link_loopback/example_topojson.json b/tests/topotests/example_topojson_test/test_topo_json_single_link_loopback/example_topojson.json index c76c6264be..c76c6264be 100644 --- a/tests/topotests/example-topojson-test/test_topo_json_single_link_loopback/example_topojson.json +++ b/tests/topotests/example_topojson_test/test_topo_json_single_link_loopback/example_topojson.json diff --git a/tests/topotests/example-topojson-test/test_topo_json_single_link_loopback/test_example_topojson.py b/tests/topotests/example_topojson_test/test_topo_json_single_link_loopback/test_example_topojson.py index 012b05d376..012b05d376 100755 --- a/tests/topotests/example-topojson-test/test_topo_json_single_link_loopback/test_example_topojson.py +++ b/tests/topotests/example_topojson_test/test_topo_json_single_link_loopback/test_example_topojson.py diff --git a/tests/topotests/isis-topo1/r5/r5_topology.json b/tests/topotests/isis-topo1/r5/r5_topology.json deleted file mode 100644 index 0224661411..0000000000 --- a/tests/topotests/isis-topo1/r5/r5_topology.json +++ /dev/null @@ -1,152 +0,0 @@ -{ - "1": { - "level-1": { - "ipv4": [ - { - "vertex": "r5" - }, - { - "metric": "internal", - "parent": "0", - "type": "IP", - "vertex": "10.0.10.0/24" - }, - { - "metric": "internal", - "parent": "0", - "type": "IP", - "vertex": "10.0.11.0/24" - }, - { - "interface": "r5-eth0", - "metric": "10", - "next-hop": "r3", - "parent": "r5(4)", - "type": "TE-IS", - "vertex": "r3" - }, - { - "interface": "r5-eth1", - "metric": "10", - "next-hop": "r4", - "parent": "r5(4)", - "type": "TE-IS", - "vertex": "r4" - }, - { - "interface": "r3", - "metric": "TE", - "next-hop": "10", - "parent": "r5-eth0", - "type": "IP", - "vertex": "10.0.10.0/24" - }, - { - "interface": "r3", - "metric": "TE", - "next-hop": "10", - "parent": "r5-eth0", - "type": "IP", - "vertex": "10.0.20.0/24" - }, - { - "interface": "r3", - "metric": "TE", - "next-hop": "10", - "parent": "r5-eth0", - "type": "IP", - "vertex": "10.254.0.3/32" - }, - { - "interface": "r4", - "metric": "TE", - "next-hop": "10", - "parent": "r5-eth1", - "type": "IP", - "vertex": "10.0.11.0/24" - }, - { - "interface": "r4", - "metric": "TE", - "next-hop": "10", - "parent": "r5-eth1", - "type": "IP", - "vertex": "10.0.21.0/24" - }, - { - "interface": "r4", - "metric": "TE", - "next-hop": "10", - "parent": "r5-eth1", - "type": "IP", - "vertex": "10.254.0.4/32" - } - ], - "ipv6": [ - { - "vertex": "r5" - }, - { - "metric": "internal", - "parent": "0", - "type": "IP6", - "vertex": "2001:db8:2:1::/64" - }, - { - "metric": "internal", - "parent": "0", - "type": "IP6", - "vertex": "2001:db8:2:2::/64" - }, - { - "interface": "r5-eth0", - "metric": "10", - "next-hop": "r3", - "parent": "r5(4)", - "type": "TE-IS", - "vertex": "r3" - }, - { - "interface": "r5-eth1", - "metric": "10", - "next-hop": "r4", - "parent": "r5(4)", - "type": "TE-IS", - "vertex": "r4" - }, - { - "interface": "r3", - "next-hop": "10", - "parent": "r5-eth0", - "type": "IP6", - "vertex": "2001:db8:1:1::/64" - }, - { - "interface": "r3", - "next-hop": "10", - "parent": "r5-eth0", - "type": "IP6", - "vertex": "2001:db8:f::3/128" - }, - { - "interface": "r4", - "next-hop": "10", - "parent": "r5-eth1", - "type": "IP6", - "vertex": "2001:db8:1:2::/64" - }, - { - "interface": "r4", - "next-hop": "10", - "parent": "r5-eth1", - "type": "IP6", - "vertex": "2001:db8:f::4/128" - } - ] - }, - "level-2": { - "ipv4": [], - "ipv6": [] - } - } -} diff --git a/tests/topotests/isis-lfa-topo1/__init__.py b/tests/topotests/isis_lfa_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-lfa-topo1/__init__.py +++ b/tests/topotests/isis_lfa_topo1/__init__.py diff --git a/tests/topotests/isis-lfa-topo1/rt1/isisd.conf b/tests/topotests/isis_lfa_topo1/rt1/isisd.conf index 2ad8c12538..2ad8c12538 100644 --- a/tests/topotests/isis-lfa-topo1/rt1/isisd.conf +++ b/tests/topotests/isis_lfa_topo1/rt1/isisd.conf diff --git a/tests/topotests/isis-lfa-topo1/rt1/step1/show_ipv6_route.ref b/tests/topotests/isis_lfa_topo1/rt1/step1/show_ipv6_route.ref index 10c61d53e3..10c61d53e3 100644 --- a/tests/topotests/isis-lfa-topo1/rt1/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_lfa_topo1/rt1/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-lfa-topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_lfa_topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref index d8a7c5a9c4..d8a7c5a9c4 100644 --- a/tests/topotests/isis-lfa-topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_lfa_topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-lfa-topo1/rt1/step10/show_ipv6_route.ref.diff b/tests/topotests/isis_lfa_topo1/rt1/step10/show_ipv6_route.ref.diff index d626cdca02..d626cdca02 100644 --- a/tests/topotests/isis-lfa-topo1/rt1/step10/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_lfa_topo1/rt1/step10/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-lfa-topo1/rt1/step11/show_ipv6_route.ref.diff b/tests/topotests/isis_lfa_topo1/rt1/step11/show_ipv6_route.ref.diff index f7f99c276e..f7f99c276e 100644 --- a/tests/topotests/isis-lfa-topo1/rt1/step11/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_lfa_topo1/rt1/step11/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-lfa-topo1/rt1/step12/show_ipv6_route.ref.diff b/tests/topotests/isis_lfa_topo1/rt1/step12/show_ipv6_route.ref.diff index 3b767f1bf6..3b767f1bf6 100644 --- a/tests/topotests/isis-lfa-topo1/rt1/step12/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_lfa_topo1/rt1/step12/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-lfa-topo1/rt1/step13/show_ipv6_route.ref.diff b/tests/topotests/isis_lfa_topo1/rt1/step13/show_ipv6_route.ref.diff index 504af5ac58..504af5ac58 100644 --- a/tests/topotests/isis-lfa-topo1/rt1/step13/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_lfa_topo1/rt1/step13/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-lfa-topo1/rt1/step2/show_ipv6_route.ref.diff b/tests/topotests/isis_lfa_topo1/rt1/step2/show_ipv6_route.ref.diff index efc56d9835..efc56d9835 100644 --- a/tests/topotests/isis-lfa-topo1/rt1/step2/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_lfa_topo1/rt1/step2/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-lfa-topo1/rt1/step3/show_ipv6_route.ref.diff b/tests/topotests/isis_lfa_topo1/rt1/step3/show_ipv6_route.ref.diff index cafbe490b5..cafbe490b5 100644 --- a/tests/topotests/isis-lfa-topo1/rt1/step3/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_lfa_topo1/rt1/step3/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-lfa-topo1/rt1/step4/show_ipv6_route.ref.diff b/tests/topotests/isis_lfa_topo1/rt1/step4/show_ipv6_route.ref.diff index 47d8334a05..47d8334a05 100644 --- a/tests/topotests/isis-lfa-topo1/rt1/step4/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_lfa_topo1/rt1/step4/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-lfa-topo1/rt1/step5/show_ipv6_route.ref.diff b/tests/topotests/isis_lfa_topo1/rt1/step5/show_ipv6_route.ref.diff index b6a342df88..b6a342df88 100644 --- a/tests/topotests/isis-lfa-topo1/rt1/step5/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_lfa_topo1/rt1/step5/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-lfa-topo1/rt1/step6/show_ipv6_route.ref.diff b/tests/topotests/isis_lfa_topo1/rt1/step6/show_ipv6_route.ref.diff index fafa2999d1..fafa2999d1 100644 --- a/tests/topotests/isis-lfa-topo1/rt1/step6/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_lfa_topo1/rt1/step6/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-lfa-topo1/rt1/step7/show_ipv6_route.ref.diff b/tests/topotests/isis_lfa_topo1/rt1/step7/show_ipv6_route.ref.diff index 1803e2cf5c..1803e2cf5c 100644 --- a/tests/topotests/isis-lfa-topo1/rt1/step7/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_lfa_topo1/rt1/step7/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-lfa-topo1/rt1/step8/show_ipv6_route.ref.diff b/tests/topotests/isis_lfa_topo1/rt1/step8/show_ipv6_route.ref.diff index 306f725340..306f725340 100644 --- a/tests/topotests/isis-lfa-topo1/rt1/step8/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_lfa_topo1/rt1/step8/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-lfa-topo1/rt1/step9/show_ipv6_route.ref.diff b/tests/topotests/isis_lfa_topo1/rt1/step9/show_ipv6_route.ref.diff index 3ffab46eeb..3ffab46eeb 100644 --- a/tests/topotests/isis-lfa-topo1/rt1/step9/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_lfa_topo1/rt1/step9/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-lfa-topo1/rt1/zebra.conf b/tests/topotests/isis_lfa_topo1/rt1/zebra.conf index 317f1031df..317f1031df 100644 --- a/tests/topotests/isis-lfa-topo1/rt1/zebra.conf +++ b/tests/topotests/isis_lfa_topo1/rt1/zebra.conf diff --git a/tests/topotests/isis-lfa-topo1/rt2/isisd.conf b/tests/topotests/isis_lfa_topo1/rt2/isisd.conf index 39ff2570d4..39ff2570d4 100644 --- a/tests/topotests/isis-lfa-topo1/rt2/isisd.conf +++ b/tests/topotests/isis_lfa_topo1/rt2/isisd.conf diff --git a/tests/topotests/isis-lfa-topo1/rt2/step1/show_ipv6_route.ref b/tests/topotests/isis_lfa_topo1/rt2/step1/show_ipv6_route.ref index 036bfe1f4f..036bfe1f4f 100644 --- a/tests/topotests/isis-lfa-topo1/rt2/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_lfa_topo1/rt2/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-lfa-topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_lfa_topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref index 681c5222ad..681c5222ad 100644 --- a/tests/topotests/isis-lfa-topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_lfa_topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-lfa-topo1/rt2/zebra.conf b/tests/topotests/isis_lfa_topo1/rt2/zebra.conf index 9feaada791..9feaada791 100644 --- a/tests/topotests/isis-lfa-topo1/rt2/zebra.conf +++ b/tests/topotests/isis_lfa_topo1/rt2/zebra.conf diff --git a/tests/topotests/isis-lfa-topo1/rt3/isisd.conf b/tests/topotests/isis_lfa_topo1/rt3/isisd.conf index 8b0c7bd0dc..8b0c7bd0dc 100644 --- a/tests/topotests/isis-lfa-topo1/rt3/isisd.conf +++ b/tests/topotests/isis_lfa_topo1/rt3/isisd.conf diff --git a/tests/topotests/isis-lfa-topo1/rt3/step1/show_ipv6_route.ref b/tests/topotests/isis_lfa_topo1/rt3/step1/show_ipv6_route.ref index a1aab400e4..a1aab400e4 100644 --- a/tests/topotests/isis-lfa-topo1/rt3/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_lfa_topo1/rt3/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-lfa-topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_lfa_topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref index 1495e32284..1495e32284 100644 --- a/tests/topotests/isis-lfa-topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_lfa_topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-lfa-topo1/rt3/zebra.conf b/tests/topotests/isis_lfa_topo1/rt3/zebra.conf index 48d732e72a..48d732e72a 100644 --- a/tests/topotests/isis-lfa-topo1/rt3/zebra.conf +++ b/tests/topotests/isis_lfa_topo1/rt3/zebra.conf diff --git a/tests/topotests/isis-lfa-topo1/rt4/isisd.conf b/tests/topotests/isis_lfa_topo1/rt4/isisd.conf index 86edee6ab1..86edee6ab1 100644 --- a/tests/topotests/isis-lfa-topo1/rt4/isisd.conf +++ b/tests/topotests/isis_lfa_topo1/rt4/isisd.conf diff --git a/tests/topotests/isis-lfa-topo1/rt4/step1/show_ipv6_route.ref b/tests/topotests/isis_lfa_topo1/rt4/step1/show_ipv6_route.ref index 6878e2fac0..6878e2fac0 100644 --- a/tests/topotests/isis-lfa-topo1/rt4/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_lfa_topo1/rt4/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-lfa-topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_lfa_topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref index d8cd565b5b..d8cd565b5b 100644 --- a/tests/topotests/isis-lfa-topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_lfa_topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-lfa-topo1/rt4/zebra.conf b/tests/topotests/isis_lfa_topo1/rt4/zebra.conf index bff10860cc..bff10860cc 100644 --- a/tests/topotests/isis-lfa-topo1/rt4/zebra.conf +++ b/tests/topotests/isis_lfa_topo1/rt4/zebra.conf diff --git a/tests/topotests/isis-lfa-topo1/rt5/isisd.conf b/tests/topotests/isis_lfa_topo1/rt5/isisd.conf index 7a7cfe557d..7a7cfe557d 100644 --- a/tests/topotests/isis-lfa-topo1/rt5/isisd.conf +++ b/tests/topotests/isis_lfa_topo1/rt5/isisd.conf diff --git a/tests/topotests/isis-lfa-topo1/rt5/step1/show_ipv6_route.ref b/tests/topotests/isis_lfa_topo1/rt5/step1/show_ipv6_route.ref index f8181c7769..f8181c7769 100644 --- a/tests/topotests/isis-lfa-topo1/rt5/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_lfa_topo1/rt5/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-lfa-topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_lfa_topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref index d8cd565b5b..d8cd565b5b 100644 --- a/tests/topotests/isis-lfa-topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_lfa_topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-lfa-topo1/rt5/zebra.conf b/tests/topotests/isis_lfa_topo1/rt5/zebra.conf index ee1e46c966..ee1e46c966 100644 --- a/tests/topotests/isis-lfa-topo1/rt5/zebra.conf +++ b/tests/topotests/isis_lfa_topo1/rt5/zebra.conf diff --git a/tests/topotests/isis-lfa-topo1/rt6/isisd.conf b/tests/topotests/isis_lfa_topo1/rt6/isisd.conf index 20cb7769a4..20cb7769a4 100644 --- a/tests/topotests/isis-lfa-topo1/rt6/isisd.conf +++ b/tests/topotests/isis_lfa_topo1/rt6/isisd.conf diff --git a/tests/topotests/isis-lfa-topo1/rt6/step1/show_ipv6_route.ref b/tests/topotests/isis_lfa_topo1/rt6/step1/show_ipv6_route.ref index e5f3c77ac5..e5f3c77ac5 100644 --- a/tests/topotests/isis-lfa-topo1/rt6/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_lfa_topo1/rt6/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-lfa-topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_lfa_topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref index d8cd565b5b..d8cd565b5b 100644 --- a/tests/topotests/isis-lfa-topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_lfa_topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-lfa-topo1/rt6/zebra.conf b/tests/topotests/isis_lfa_topo1/rt6/zebra.conf index 4108078896..4108078896 100644 --- a/tests/topotests/isis-lfa-topo1/rt6/zebra.conf +++ b/tests/topotests/isis_lfa_topo1/rt6/zebra.conf diff --git a/tests/topotests/isis-lfa-topo1/rt7/isisd.conf b/tests/topotests/isis_lfa_topo1/rt7/isisd.conf index 713e6d39f4..713e6d39f4 100644 --- a/tests/topotests/isis-lfa-topo1/rt7/isisd.conf +++ b/tests/topotests/isis_lfa_topo1/rt7/isisd.conf diff --git a/tests/topotests/isis-lfa-topo1/rt7/step1/show_ipv6_route.ref b/tests/topotests/isis_lfa_topo1/rt7/step1/show_ipv6_route.ref index 0dff15e3fd..0dff15e3fd 100644 --- a/tests/topotests/isis-lfa-topo1/rt7/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_lfa_topo1/rt7/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-lfa-topo1/rt7/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_lfa_topo1/rt7/step1/show_yang_interface_isis_adjacencies.ref index d8a7c5a9c4..d8a7c5a9c4 100644 --- a/tests/topotests/isis-lfa-topo1/rt7/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_lfa_topo1/rt7/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-lfa-topo1/rt7/zebra.conf b/tests/topotests/isis_lfa_topo1/rt7/zebra.conf index 353c9efa93..353c9efa93 100644 --- a/tests/topotests/isis-lfa-topo1/rt7/zebra.conf +++ b/tests/topotests/isis_lfa_topo1/rt7/zebra.conf diff --git a/tests/topotests/isis-lfa-topo1/test_isis_lfa_topo1.py b/tests/topotests/isis_lfa_topo1/test_isis_lfa_topo1.py index dcfcd11435..dcfcd11435 100755 --- a/tests/topotests/isis-lfa-topo1/test_isis_lfa_topo1.py +++ b/tests/topotests/isis_lfa_topo1/test_isis_lfa_topo1.py diff --git a/tests/topotests/isis-lsp-bits-topo1/__init__.py b/tests/topotests/isis_lsp_bits_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-lsp-bits-topo1/__init__.py +++ b/tests/topotests/isis_lsp_bits_topo1/__init__.py diff --git a/tests/topotests/isis-lsp-bits-topo1/rt1/isisd.conf b/tests/topotests/isis_lsp_bits_topo1/rt1/isisd.conf index 90764a0d0f..90764a0d0f 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt1/isisd.conf +++ b/tests/topotests/isis_lsp_bits_topo1/rt1/isisd.conf diff --git a/tests/topotests/isis-lsp-bits-topo1/rt1/step1/show_ip_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt1/step1/show_ip_route.ref index 8557f4b010..8557f4b010 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt1/step1/show_ip_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt1/step1/show_ip_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt1/step1/show_ipv6_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt1/step1/show_ipv6_route.ref index fa76533756..fa76533756 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt1/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt1/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_lsp_bits_topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref index 26f0dffa7a..26f0dffa7a 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt1/step2/show_ip_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt1/step2/show_ip_route.ref index c826efdcfe..c826efdcfe 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt1/step2/show_ip_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt1/step2/show_ip_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt1/step2/show_ipv6_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt1/step2/show_ipv6_route.ref index a386b45dad..a386b45dad 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt1/step2/show_ipv6_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt1/step2/show_ipv6_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt1/step3/show_ip_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt1/step3/show_ip_route.ref index 2b281b74fb..2b281b74fb 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt1/step3/show_ip_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt1/step3/show_ip_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt1/step3/show_ipv6_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt1/step3/show_ipv6_route.ref index 4b920eda01..4b920eda01 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt1/step3/show_ipv6_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt1/step3/show_ipv6_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt1/step4/show_ip_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt1/step4/show_ip_route.ref index 8557f4b010..8557f4b010 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt1/step4/show_ip_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt1/step4/show_ip_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt1/step4/show_ipv6_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt1/step4/show_ipv6_route.ref index fa76533756..fa76533756 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt1/step4/show_ipv6_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt1/step4/show_ipv6_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt1/zebra.conf b/tests/topotests/isis_lsp_bits_topo1/rt1/zebra.conf index 9d71d3005f..9d71d3005f 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt1/zebra.conf +++ b/tests/topotests/isis_lsp_bits_topo1/rt1/zebra.conf diff --git a/tests/topotests/isis-lsp-bits-topo1/rt2/isisd.conf b/tests/topotests/isis_lsp_bits_topo1/rt2/isisd.conf index 2bc4c4ad97..2bc4c4ad97 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt2/isisd.conf +++ b/tests/topotests/isis_lsp_bits_topo1/rt2/isisd.conf diff --git a/tests/topotests/isis-lsp-bits-topo1/rt2/step1/show_ip_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt2/step1/show_ip_route.ref index d7e886ce86..d7e886ce86 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt2/step1/show_ip_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt2/step1/show_ip_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt2/step1/show_ipv6_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt2/step1/show_ipv6_route.ref index a92272f6d0..a92272f6d0 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt2/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt2/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_lsp_bits_topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref index c70b44e1c9..c70b44e1c9 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt2/zebra.conf b/tests/topotests/isis_lsp_bits_topo1/rt2/zebra.conf index 234e10efa9..234e10efa9 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt2/zebra.conf +++ b/tests/topotests/isis_lsp_bits_topo1/rt2/zebra.conf diff --git a/tests/topotests/isis-lsp-bits-topo1/rt3/isisd.conf b/tests/topotests/isis_lsp_bits_topo1/rt3/isisd.conf index 9ad97109b5..9ad97109b5 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt3/isisd.conf +++ b/tests/topotests/isis_lsp_bits_topo1/rt3/isisd.conf diff --git a/tests/topotests/isis-lsp-bits-topo1/rt3/step1/show_ip_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt3/step1/show_ip_route.ref index 55f0aedef5..55f0aedef5 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt3/step1/show_ip_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt3/step1/show_ip_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt3/step1/show_ipv6_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt3/step1/show_ipv6_route.ref index 5d6dfca76a..5d6dfca76a 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt3/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt3/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_lsp_bits_topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref index 6950086b1e..6950086b1e 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt3/zebra.conf b/tests/topotests/isis_lsp_bits_topo1/rt3/zebra.conf index 9a0defd62b..9a0defd62b 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt3/zebra.conf +++ b/tests/topotests/isis_lsp_bits_topo1/rt3/zebra.conf diff --git a/tests/topotests/isis-lsp-bits-topo1/rt4/isisd.conf b/tests/topotests/isis_lsp_bits_topo1/rt4/isisd.conf index e85412a71d..e85412a71d 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt4/isisd.conf +++ b/tests/topotests/isis_lsp_bits_topo1/rt4/isisd.conf diff --git a/tests/topotests/isis-lsp-bits-topo1/rt4/step1/show_ip_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt4/step1/show_ip_route.ref index 2cf5c40635..2cf5c40635 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt4/step1/show_ip_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt4/step1/show_ip_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt4/step1/show_ipv6_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt4/step1/show_ipv6_route.ref index cde7287943..cde7287943 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt4/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt4/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_lsp_bits_topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref index 233180ceb8..233180ceb8 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt4/zebra.conf b/tests/topotests/isis_lsp_bits_topo1/rt4/zebra.conf index adcf433249..adcf433249 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt4/zebra.conf +++ b/tests/topotests/isis_lsp_bits_topo1/rt4/zebra.conf diff --git a/tests/topotests/isis-lsp-bits-topo1/rt5/isisd.conf b/tests/topotests/isis_lsp_bits_topo1/rt5/isisd.conf index 2cab0c88fc..2cab0c88fc 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt5/isisd.conf +++ b/tests/topotests/isis_lsp_bits_topo1/rt5/isisd.conf diff --git a/tests/topotests/isis-lsp-bits-topo1/rt5/step1/show_ip_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt5/step1/show_ip_route.ref index 358d0a230c..358d0a230c 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt5/step1/show_ip_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt5/step1/show_ip_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt5/step1/show_ipv6_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt5/step1/show_ipv6_route.ref index 7586c73852..7586c73852 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt5/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt5/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_lsp_bits_topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref index f939a6abff..f939a6abff 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt5/zebra.conf b/tests/topotests/isis_lsp_bits_topo1/rt5/zebra.conf index 0f10ce921f..0f10ce921f 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt5/zebra.conf +++ b/tests/topotests/isis_lsp_bits_topo1/rt5/zebra.conf diff --git a/tests/topotests/isis-lsp-bits-topo1/rt6/isisd.conf b/tests/topotests/isis_lsp_bits_topo1/rt6/isisd.conf index 249f945e0c..249f945e0c 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt6/isisd.conf +++ b/tests/topotests/isis_lsp_bits_topo1/rt6/isisd.conf diff --git a/tests/topotests/isis-lsp-bits-topo1/rt6/step1/show_ip_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt6/step1/show_ip_route.ref index 40375792a4..40375792a4 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt6/step1/show_ip_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt6/step1/show_ip_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt6/step1/show_ipv6_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt6/step1/show_ipv6_route.ref index 278129f481..278129f481 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt6/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt6/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_lsp_bits_topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref index b4e8c23189..b4e8c23189 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt6/step2/show_ip_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt6/step2/show_ip_route.ref index 8083be4cfb..8083be4cfb 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt6/step2/show_ip_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt6/step2/show_ip_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt6/step2/show_ipv6_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt6/step2/show_ipv6_route.ref index 2e982e0c37..2e982e0c37 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt6/step2/show_ipv6_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt6/step2/show_ipv6_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt6/step3/show_ip_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt6/step3/show_ip_route.ref index 1ba8c8cda8..1ba8c8cda8 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt6/step3/show_ip_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt6/step3/show_ip_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt6/step3/show_ipv6_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt6/step3/show_ipv6_route.ref index 9b53a1d760..9b53a1d760 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt6/step3/show_ipv6_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt6/step3/show_ipv6_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt6/step4/show_ip_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt6/step4/show_ip_route.ref index 40375792a4..40375792a4 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt6/step4/show_ip_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt6/step4/show_ip_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt6/step4/show_ipv6_route.ref b/tests/topotests/isis_lsp_bits_topo1/rt6/step4/show_ipv6_route.ref index 278129f481..278129f481 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt6/step4/show_ipv6_route.ref +++ b/tests/topotests/isis_lsp_bits_topo1/rt6/step4/show_ipv6_route.ref diff --git a/tests/topotests/isis-lsp-bits-topo1/rt6/zebra.conf b/tests/topotests/isis_lsp_bits_topo1/rt6/zebra.conf index 6084010a93..6084010a93 100644 --- a/tests/topotests/isis-lsp-bits-topo1/rt6/zebra.conf +++ b/tests/topotests/isis_lsp_bits_topo1/rt6/zebra.conf diff --git a/tests/topotests/isis-lsp-bits-topo1/test_isis_lsp_bits_topo1.py b/tests/topotests/isis_lsp_bits_topo1/test_isis_lsp_bits_topo1.py index 27dc1073c6..27dc1073c6 100755 --- a/tests/topotests/isis-lsp-bits-topo1/test_isis_lsp_bits_topo1.py +++ b/tests/topotests/isis_lsp_bits_topo1/test_isis_lsp_bits_topo1.py diff --git a/tests/topotests/isis-rlfa-topo1/__init__.py b/tests/topotests/isis_rlfa_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-rlfa-topo1/__init__.py +++ b/tests/topotests/isis_rlfa_topo1/__init__.py diff --git a/tests/topotests/isis-rlfa-topo1/rt1/isisd.conf b/tests/topotests/isis_rlfa_topo1/rt1/isisd.conf index a80f30dc7b..a80f30dc7b 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/isisd.conf +++ b/tests/topotests/isis_rlfa_topo1/rt1/isisd.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt1/ldpd.conf b/tests/topotests/isis_rlfa_topo1/rt1/ldpd.conf index f60fdb9742..f60fdb9742 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/ldpd.conf +++ b/tests/topotests/isis_rlfa_topo1/rt1/ldpd.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step1/show_ip_route.ref b/tests/topotests/isis_rlfa_topo1/rt1/step1/show_ip_route.ref index 680b31eb8d..680b31eb8d 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step1/show_ip_route.ref +++ b/tests/topotests/isis_rlfa_topo1/rt1/step1/show_ip_route.ref diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step1/show_ipv6_route.ref b/tests/topotests/isis_rlfa_topo1/rt1/step1/show_ipv6_route.ref index c487d2740d..c487d2740d 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_rlfa_topo1/rt1/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_rlfa_topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref index 3fe2b798a0..3fe2b798a0 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_rlfa_topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step10/show_ip_route.ref.diff b/tests/topotests/isis_rlfa_topo1/rt1/step10/show_ip_route.ref.diff index ef5707f14a..ef5707f14a 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step10/show_ip_route.ref.diff +++ b/tests/topotests/isis_rlfa_topo1/rt1/step10/show_ip_route.ref.diff diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step10/show_ipv6_route.ref.diff b/tests/topotests/isis_rlfa_topo1/rt1/step10/show_ipv6_route.ref.diff index acd2ce003a..acd2ce003a 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step10/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_rlfa_topo1/rt1/step10/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step2/show_ip_route.ref.diff b/tests/topotests/isis_rlfa_topo1/rt1/step2/show_ip_route.ref.diff index f7f31ac021..f7f31ac021 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step2/show_ip_route.ref.diff +++ b/tests/topotests/isis_rlfa_topo1/rt1/step2/show_ip_route.ref.diff diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step2/show_ipv6_route.ref.diff b/tests/topotests/isis_rlfa_topo1/rt1/step2/show_ipv6_route.ref.diff index e980031ad7..e980031ad7 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step2/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_rlfa_topo1/rt1/step2/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step3/show_ip_route.ref.diff b/tests/topotests/isis_rlfa_topo1/rt1/step3/show_ip_route.ref.diff index f3ed764f0b..f3ed764f0b 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step3/show_ip_route.ref.diff +++ b/tests/topotests/isis_rlfa_topo1/rt1/step3/show_ip_route.ref.diff diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step3/show_ipv6_route.ref.diff b/tests/topotests/isis_rlfa_topo1/rt1/step3/show_ipv6_route.ref.diff index 57b0b1de1a..57b0b1de1a 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step3/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_rlfa_topo1/rt1/step3/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step4/show_ip_route.ref.diff b/tests/topotests/isis_rlfa_topo1/rt1/step4/show_ip_route.ref.diff index 107a0ba2f7..107a0ba2f7 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step4/show_ip_route.ref.diff +++ b/tests/topotests/isis_rlfa_topo1/rt1/step4/show_ip_route.ref.diff diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step4/show_ipv6_route.ref.diff b/tests/topotests/isis_rlfa_topo1/rt1/step4/show_ipv6_route.ref.diff index 9cf24082e1..9cf24082e1 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step4/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_rlfa_topo1/rt1/step4/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step5/show_ip_route.ref.diff b/tests/topotests/isis_rlfa_topo1/rt1/step5/show_ip_route.ref.diff index 09469501f5..09469501f5 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step5/show_ip_route.ref.diff +++ b/tests/topotests/isis_rlfa_topo1/rt1/step5/show_ip_route.ref.diff diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step5/show_ipv6_route.ref.diff b/tests/topotests/isis_rlfa_topo1/rt1/step5/show_ipv6_route.ref.diff index 70fb1a65c7..70fb1a65c7 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step5/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_rlfa_topo1/rt1/step5/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step6/show_ip_route.ref.diff b/tests/topotests/isis_rlfa_topo1/rt1/step6/show_ip_route.ref.diff index 4e4a5692a4..4e4a5692a4 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step6/show_ip_route.ref.diff +++ b/tests/topotests/isis_rlfa_topo1/rt1/step6/show_ip_route.ref.diff diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step6/show_ipv6_route.ref.diff b/tests/topotests/isis_rlfa_topo1/rt1/step6/show_ipv6_route.ref.diff index c9ebb1e3f5..c9ebb1e3f5 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step6/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_rlfa_topo1/rt1/step6/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step7/show_ip_route.ref.diff b/tests/topotests/isis_rlfa_topo1/rt1/step7/show_ip_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step7/show_ip_route.ref.diff +++ b/tests/topotests/isis_rlfa_topo1/rt1/step7/show_ip_route.ref.diff diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step7/show_ipv6_route.ref.diff b/tests/topotests/isis_rlfa_topo1/rt1/step7/show_ipv6_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step7/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_rlfa_topo1/rt1/step7/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step8/show_ip_route.ref.diff b/tests/topotests/isis_rlfa_topo1/rt1/step8/show_ip_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step8/show_ip_route.ref.diff +++ b/tests/topotests/isis_rlfa_topo1/rt1/step8/show_ip_route.ref.diff diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step8/show_ipv6_route.ref.diff b/tests/topotests/isis_rlfa_topo1/rt1/step8/show_ipv6_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step8/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_rlfa_topo1/rt1/step8/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step9/show_ip_route.ref.diff b/tests/topotests/isis_rlfa_topo1/rt1/step9/show_ip_route.ref.diff index 33eb6577bd..33eb6577bd 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step9/show_ip_route.ref.diff +++ b/tests/topotests/isis_rlfa_topo1/rt1/step9/show_ip_route.ref.diff diff --git a/tests/topotests/isis-rlfa-topo1/rt1/step9/show_ipv6_route.ref.diff b/tests/topotests/isis_rlfa_topo1/rt1/step9/show_ipv6_route.ref.diff index 7aaca3354e..7aaca3354e 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/step9/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_rlfa_topo1/rt1/step9/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-rlfa-topo1/rt1/zebra.conf b/tests/topotests/isis_rlfa_topo1/rt1/zebra.conf index 741fc2d02b..741fc2d02b 100644 --- a/tests/topotests/isis-rlfa-topo1/rt1/zebra.conf +++ b/tests/topotests/isis_rlfa_topo1/rt1/zebra.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt2/isisd.conf b/tests/topotests/isis_rlfa_topo1/rt2/isisd.conf index 7b4c6c50b9..7b4c6c50b9 100644 --- a/tests/topotests/isis-rlfa-topo1/rt2/isisd.conf +++ b/tests/topotests/isis_rlfa_topo1/rt2/isisd.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt2/ldpd.conf b/tests/topotests/isis_rlfa_topo1/rt2/ldpd.conf index 0a815ef004..0a815ef004 100644 --- a/tests/topotests/isis-rlfa-topo1/rt2/ldpd.conf +++ b/tests/topotests/isis_rlfa_topo1/rt2/ldpd.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt2/zebra.conf b/tests/topotests/isis_rlfa_topo1/rt2/zebra.conf index 657c69bf28..657c69bf28 100644 --- a/tests/topotests/isis-rlfa-topo1/rt2/zebra.conf +++ b/tests/topotests/isis_rlfa_topo1/rt2/zebra.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt3/isisd.conf b/tests/topotests/isis_rlfa_topo1/rt3/isisd.conf index 17d58a9d15..17d58a9d15 100644 --- a/tests/topotests/isis-rlfa-topo1/rt3/isisd.conf +++ b/tests/topotests/isis_rlfa_topo1/rt3/isisd.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt3/ldpd.conf b/tests/topotests/isis_rlfa_topo1/rt3/ldpd.conf index 40f1f5587a..40f1f5587a 100644 --- a/tests/topotests/isis-rlfa-topo1/rt3/ldpd.conf +++ b/tests/topotests/isis_rlfa_topo1/rt3/ldpd.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt3/zebra.conf b/tests/topotests/isis_rlfa_topo1/rt3/zebra.conf index 86f5d2871a..86f5d2871a 100644 --- a/tests/topotests/isis-rlfa-topo1/rt3/zebra.conf +++ b/tests/topotests/isis_rlfa_topo1/rt3/zebra.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt4/isisd.conf b/tests/topotests/isis_rlfa_topo1/rt4/isisd.conf index 1519fd4c16..1519fd4c16 100644 --- a/tests/topotests/isis-rlfa-topo1/rt4/isisd.conf +++ b/tests/topotests/isis_rlfa_topo1/rt4/isisd.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt4/ldpd.conf b/tests/topotests/isis_rlfa_topo1/rt4/ldpd.conf index 569ecf733e..569ecf733e 100644 --- a/tests/topotests/isis-rlfa-topo1/rt4/ldpd.conf +++ b/tests/topotests/isis_rlfa_topo1/rt4/ldpd.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt4/zebra.conf b/tests/topotests/isis_rlfa_topo1/rt4/zebra.conf index 1dd09bf83b..1dd09bf83b 100644 --- a/tests/topotests/isis-rlfa-topo1/rt4/zebra.conf +++ b/tests/topotests/isis_rlfa_topo1/rt4/zebra.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt5/isisd.conf b/tests/topotests/isis_rlfa_topo1/rt5/isisd.conf index caf7477073..caf7477073 100644 --- a/tests/topotests/isis-rlfa-topo1/rt5/isisd.conf +++ b/tests/topotests/isis_rlfa_topo1/rt5/isisd.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt5/ldpd.conf b/tests/topotests/isis_rlfa_topo1/rt5/ldpd.conf index 519c3d3628..519c3d3628 100644 --- a/tests/topotests/isis-rlfa-topo1/rt5/ldpd.conf +++ b/tests/topotests/isis_rlfa_topo1/rt5/ldpd.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt5/zebra.conf b/tests/topotests/isis_rlfa_topo1/rt5/zebra.conf index 7117a2a2e3..7117a2a2e3 100644 --- a/tests/topotests/isis-rlfa-topo1/rt5/zebra.conf +++ b/tests/topotests/isis_rlfa_topo1/rt5/zebra.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt6/isisd.conf b/tests/topotests/isis_rlfa_topo1/rt6/isisd.conf index cdf6267236..cdf6267236 100644 --- a/tests/topotests/isis-rlfa-topo1/rt6/isisd.conf +++ b/tests/topotests/isis_rlfa_topo1/rt6/isisd.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt6/ldpd.conf b/tests/topotests/isis_rlfa_topo1/rt6/ldpd.conf index a5b7062bec..a5b7062bec 100644 --- a/tests/topotests/isis-rlfa-topo1/rt6/ldpd.conf +++ b/tests/topotests/isis_rlfa_topo1/rt6/ldpd.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt6/zebra.conf b/tests/topotests/isis_rlfa_topo1/rt6/zebra.conf index c6344870b7..c6344870b7 100644 --- a/tests/topotests/isis-rlfa-topo1/rt6/zebra.conf +++ b/tests/topotests/isis_rlfa_topo1/rt6/zebra.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt7/isisd.conf b/tests/topotests/isis_rlfa_topo1/rt7/isisd.conf index 8ab8fcb232..8ab8fcb232 100644 --- a/tests/topotests/isis-rlfa-topo1/rt7/isisd.conf +++ b/tests/topotests/isis_rlfa_topo1/rt7/isisd.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt7/ldpd.conf b/tests/topotests/isis_rlfa_topo1/rt7/ldpd.conf index 26d428c4c6..26d428c4c6 100644 --- a/tests/topotests/isis-rlfa-topo1/rt7/ldpd.conf +++ b/tests/topotests/isis_rlfa_topo1/rt7/ldpd.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt7/zebra.conf b/tests/topotests/isis_rlfa_topo1/rt7/zebra.conf index 4c5e0f1126..4c5e0f1126 100644 --- a/tests/topotests/isis-rlfa-topo1/rt7/zebra.conf +++ b/tests/topotests/isis_rlfa_topo1/rt7/zebra.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt8/isisd.conf b/tests/topotests/isis_rlfa_topo1/rt8/isisd.conf index abdc6a53a5..abdc6a53a5 100644 --- a/tests/topotests/isis-rlfa-topo1/rt8/isisd.conf +++ b/tests/topotests/isis_rlfa_topo1/rt8/isisd.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt8/ldpd.conf b/tests/topotests/isis_rlfa_topo1/rt8/ldpd.conf index 1629f82de1..1629f82de1 100644 --- a/tests/topotests/isis-rlfa-topo1/rt8/ldpd.conf +++ b/tests/topotests/isis_rlfa_topo1/rt8/ldpd.conf diff --git a/tests/topotests/isis-rlfa-topo1/rt8/zebra.conf b/tests/topotests/isis_rlfa_topo1/rt8/zebra.conf index f3f10f649a..f3f10f649a 100644 --- a/tests/topotests/isis-rlfa-topo1/rt8/zebra.conf +++ b/tests/topotests/isis_rlfa_topo1/rt8/zebra.conf diff --git a/tests/topotests/isis-rlfa-topo1/test_isis_rlfa_topo1.py b/tests/topotests/isis_rlfa_topo1/test_isis_rlfa_topo1.py index 9ad41c5934..9ad41c5934 100755 --- a/tests/topotests/isis-rlfa-topo1/test_isis_rlfa_topo1.py +++ b/tests/topotests/isis_rlfa_topo1/test_isis_rlfa_topo1.py diff --git a/tests/topotests/isis-snmp/ce3/zebra.conf b/tests/topotests/isis_snmp/ce3/zebra.conf index c6a5824d15..c6a5824d15 100644 --- a/tests/topotests/isis-snmp/ce3/zebra.conf +++ b/tests/topotests/isis_snmp/ce3/zebra.conf diff --git a/tests/topotests/isis-snmp/r1/isisd.conf b/tests/topotests/isis_snmp/r1/isisd.conf index dd32d3b8a5..dd32d3b8a5 100644 --- a/tests/topotests/isis-snmp/r1/isisd.conf +++ b/tests/topotests/isis_snmp/r1/isisd.conf diff --git a/tests/topotests/isis-snmp/r1/ldpd.conf b/tests/topotests/isis_snmp/r1/ldpd.conf index 4ec296ca5a..4ec296ca5a 100644 --- a/tests/topotests/isis-snmp/r1/ldpd.conf +++ b/tests/topotests/isis_snmp/r1/ldpd.conf diff --git a/tests/topotests/isis-snmp/r1/show_ip_route.ref b/tests/topotests/isis_snmp/r1/show_ip_route.ref index dc8f19dad0..dc8f19dad0 100644 --- a/tests/topotests/isis-snmp/r1/show_ip_route.ref +++ b/tests/topotests/isis_snmp/r1/show_ip_route.ref diff --git a/tests/topotests/isis-snmp/r1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_snmp/r1/show_yang_interface_isis_adjacencies.ref index 390fda749e..390fda749e 100644 --- a/tests/topotests/isis-snmp/r1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_snmp/r1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-snmp/r1/snmpd.conf b/tests/topotests/isis_snmp/r1/snmpd.conf index b37911da36..b37911da36 100644 --- a/tests/topotests/isis-snmp/r1/snmpd.conf +++ b/tests/topotests/isis_snmp/r1/snmpd.conf diff --git a/tests/topotests/isis-snmp/r1/zebra.conf b/tests/topotests/isis_snmp/r1/zebra.conf index 6ac341e431..6ac341e431 100644 --- a/tests/topotests/isis-snmp/r1/zebra.conf +++ b/tests/topotests/isis_snmp/r1/zebra.conf diff --git a/tests/topotests/isis-snmp/r2/isisd.conf b/tests/topotests/isis_snmp/r2/isisd.conf index 4403d8913b..4403d8913b 100644 --- a/tests/topotests/isis-snmp/r2/isisd.conf +++ b/tests/topotests/isis_snmp/r2/isisd.conf diff --git a/tests/topotests/isis-snmp/r2/ldpd.conf b/tests/topotests/isis_snmp/r2/ldpd.conf index eb963fe41c..eb963fe41c 100644 --- a/tests/topotests/isis-snmp/r2/ldpd.conf +++ b/tests/topotests/isis_snmp/r2/ldpd.conf diff --git a/tests/topotests/isis-snmp/r2/show_ip_route.ref b/tests/topotests/isis_snmp/r2/show_ip_route.ref index 2bcee96064..2bcee96064 100644 --- a/tests/topotests/isis-snmp/r2/show_ip_route.ref +++ b/tests/topotests/isis_snmp/r2/show_ip_route.ref diff --git a/tests/topotests/isis-snmp/r2/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_snmp/r2/show_yang_interface_isis_adjacencies.ref index 52550daf14..52550daf14 100644 --- a/tests/topotests/isis-snmp/r2/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_snmp/r2/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-snmp/r2/snmpd.conf b/tests/topotests/isis_snmp/r2/snmpd.conf index 0f779b8b91..0f779b8b91 100644 --- a/tests/topotests/isis-snmp/r2/snmpd.conf +++ b/tests/topotests/isis_snmp/r2/snmpd.conf diff --git a/tests/topotests/isis-snmp/r2/zebra.conf b/tests/topotests/isis_snmp/r2/zebra.conf index 4aa7440c33..4aa7440c33 100644 --- a/tests/topotests/isis-snmp/r2/zebra.conf +++ b/tests/topotests/isis_snmp/r2/zebra.conf diff --git a/tests/topotests/isis-snmp/r3/isisd.conf b/tests/topotests/isis_snmp/r3/isisd.conf index e06fe8c1f9..e06fe8c1f9 100644 --- a/tests/topotests/isis-snmp/r3/isisd.conf +++ b/tests/topotests/isis_snmp/r3/isisd.conf diff --git a/tests/topotests/isis-snmp/r3/ldpd.conf b/tests/topotests/isis_snmp/r3/ldpd.conf index 2935caf13b..2935caf13b 100644 --- a/tests/topotests/isis-snmp/r3/ldpd.conf +++ b/tests/topotests/isis_snmp/r3/ldpd.conf diff --git a/tests/topotests/isis-snmp/r3/show_ip_route.ref b/tests/topotests/isis_snmp/r3/show_ip_route.ref index da46f1dfe2..da46f1dfe2 100644 --- a/tests/topotests/isis-snmp/r3/show_ip_route.ref +++ b/tests/topotests/isis_snmp/r3/show_ip_route.ref diff --git a/tests/topotests/isis-snmp/r3/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_snmp/r3/show_yang_interface_isis_adjacencies.ref index 3aafab4e2e..3aafab4e2e 100644 --- a/tests/topotests/isis-snmp/r3/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_snmp/r3/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-snmp/r3/snmpd.conf b/tests/topotests/isis_snmp/r3/snmpd.conf index 3f3501a6fd..3f3501a6fd 100644 --- a/tests/topotests/isis-snmp/r3/snmpd.conf +++ b/tests/topotests/isis_snmp/r3/snmpd.conf diff --git a/tests/topotests/isis-snmp/r3/zebra.conf b/tests/topotests/isis_snmp/r3/zebra.conf index 6b76114d4d..6b76114d4d 100644 --- a/tests/topotests/isis-snmp/r3/zebra.conf +++ b/tests/topotests/isis_snmp/r3/zebra.conf diff --git a/tests/topotests/isis-snmp/r4/isisd.conf b/tests/topotests/isis_snmp/r4/isisd.conf index 1256141da9..1256141da9 100644 --- a/tests/topotests/isis-snmp/r4/isisd.conf +++ b/tests/topotests/isis_snmp/r4/isisd.conf diff --git a/tests/topotests/isis-snmp/r4/ldpd.conf b/tests/topotests/isis_snmp/r4/ldpd.conf index b27952514b..b27952514b 100644 --- a/tests/topotests/isis-snmp/r4/ldpd.conf +++ b/tests/topotests/isis_snmp/r4/ldpd.conf diff --git a/tests/topotests/isis-snmp/r4/show_ip_route.ref b/tests/topotests/isis_snmp/r4/show_ip_route.ref index da46f1dfe2..da46f1dfe2 100644 --- a/tests/topotests/isis-snmp/r4/show_ip_route.ref +++ b/tests/topotests/isis_snmp/r4/show_ip_route.ref diff --git a/tests/topotests/isis-snmp/r4/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_snmp/r4/show_yang_interface_isis_adjacencies.ref index 86fcfea1a6..86fcfea1a6 100644 --- a/tests/topotests/isis-snmp/r4/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_snmp/r4/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-snmp/r4/snmpd.conf b/tests/topotests/isis_snmp/r4/snmpd.conf index e5e336d888..e5e336d888 100644 --- a/tests/topotests/isis-snmp/r4/snmpd.conf +++ b/tests/topotests/isis_snmp/r4/snmpd.conf diff --git a/tests/topotests/isis-snmp/r4/zebra.conf b/tests/topotests/isis_snmp/r4/zebra.conf index fa13601164..fa13601164 100644 --- a/tests/topotests/isis-snmp/r4/zebra.conf +++ b/tests/topotests/isis_snmp/r4/zebra.conf diff --git a/tests/topotests/isis-snmp/r5/isisd.conf b/tests/topotests/isis_snmp/r5/isisd.conf index 58859041a9..58859041a9 100644 --- a/tests/topotests/isis-snmp/r5/isisd.conf +++ b/tests/topotests/isis_snmp/r5/isisd.conf diff --git a/tests/topotests/isis-snmp/r5/ldpd.conf b/tests/topotests/isis_snmp/r5/ldpd.conf index f3ba867a9f..f3ba867a9f 100644 --- a/tests/topotests/isis-snmp/r5/ldpd.conf +++ b/tests/topotests/isis_snmp/r5/ldpd.conf diff --git a/tests/topotests/isis-snmp/r5/ldpdconf b/tests/topotests/isis_snmp/r5/ldpdconf index fc700608b5..fc700608b5 100644 --- a/tests/topotests/isis-snmp/r5/ldpdconf +++ b/tests/topotests/isis_snmp/r5/ldpdconf diff --git a/tests/topotests/isis-snmp/r5/show_ip_route.ref b/tests/topotests/isis_snmp/r5/show_ip_route.ref index da46f1dfe2..da46f1dfe2 100644 --- a/tests/topotests/isis-snmp/r5/show_ip_route.ref +++ b/tests/topotests/isis_snmp/r5/show_ip_route.ref diff --git a/tests/topotests/isis-snmp/r5/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_snmp/r5/show_yang_interface_isis_adjacencies.ref index 994e8166ce..994e8166ce 100644 --- a/tests/topotests/isis-snmp/r5/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_snmp/r5/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-snmp/r5/snmpd.conf b/tests/topotests/isis_snmp/r5/snmpd.conf index 5bebbdebd4..5bebbdebd4 100644 --- a/tests/topotests/isis-snmp/r5/snmpd.conf +++ b/tests/topotests/isis_snmp/r5/snmpd.conf diff --git a/tests/topotests/isis-snmp/r5/zebra.conf b/tests/topotests/isis_snmp/r5/zebra.conf index 7230129f22..7230129f22 100644 --- a/tests/topotests/isis-snmp/r5/zebra.conf +++ b/tests/topotests/isis_snmp/r5/zebra.conf diff --git a/tests/topotests/isis-snmp/test_isis_snmp.dot b/tests/topotests/isis_snmp/test_isis_snmp.dot index 6d8c893712..6d8c893712 100644 --- a/tests/topotests/isis-snmp/test_isis_snmp.dot +++ b/tests/topotests/isis_snmp/test_isis_snmp.dot diff --git a/tests/topotests/isis-snmp/test_isis_snmp.py b/tests/topotests/isis_snmp/test_isis_snmp.py index 04e043847d..04e043847d 100755 --- a/tests/topotests/isis-snmp/test_isis_snmp.py +++ b/tests/topotests/isis_snmp/test_isis_snmp.py diff --git a/tests/topotests/isis-sr-te-topo1/dst/zebra.conf b/tests/topotests/isis_sr_te_topo1/dst/zebra.conf index e873ac8a5c..e873ac8a5c 100644 --- a/tests/topotests/isis-sr-te-topo1/dst/zebra.conf +++ b/tests/topotests/isis_sr_te_topo1/dst/zebra.conf diff --git a/tests/topotests/isis-sr-te-topo1/rt1/bgpd.conf b/tests/topotests/isis_sr_te_topo1/rt1/bgpd.conf index efc03701b5..efc03701b5 100644 --- a/tests/topotests/isis-sr-te-topo1/rt1/bgpd.conf +++ b/tests/topotests/isis_sr_te_topo1/rt1/bgpd.conf diff --git a/tests/topotests/isis-sr-te-topo1/rt1/isisd.conf b/tests/topotests/isis_sr_te_topo1/rt1/isisd.conf index 70ae1b07f5..70ae1b07f5 100644 --- a/tests/topotests/isis-sr-te-topo1/rt1/isisd.conf +++ b/tests/topotests/isis_sr_te_topo1/rt1/isisd.conf diff --git a/tests/topotests/isis-sr-te-topo1/rt1/pathd.conf b/tests/topotests/isis_sr_te_topo1/rt1/pathd.conf index 911971496e..911971496e 100644 --- a/tests/topotests/isis-sr-te-topo1/rt1/pathd.conf +++ b/tests/topotests/isis_sr_te_topo1/rt1/pathd.conf diff --git a/tests/topotests/isis-sr-te-topo1/rt1/step1/show_mpls_table_with_candidate.ref b/tests/topotests/isis_sr_te_topo1/rt1/step1/show_mpls_table_with_candidate.ref index d4b27d157d..d4b27d157d 100644 --- a/tests/topotests/isis-sr-te-topo1/rt1/step1/show_mpls_table_with_candidate.ref +++ b/tests/topotests/isis_sr_te_topo1/rt1/step1/show_mpls_table_with_candidate.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt1/step1/show_mpls_table_without_candidate.ref b/tests/topotests/isis_sr_te_topo1/rt1/step1/show_mpls_table_without_candidate.ref index 5fe58d0824..5fe58d0824 100644 --- a/tests/topotests/isis-sr-te-topo1/rt1/step1/show_mpls_table_without_candidate.ref +++ b/tests/topotests/isis_sr_te_topo1/rt1/step1/show_mpls_table_without_candidate.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt1/step2/show_operational_data.ref b/tests/topotests/isis_sr_te_topo1/rt1/step2/show_operational_data.ref index 4ef8d946f2..4ef8d946f2 100644 --- a/tests/topotests/isis-sr-te-topo1/rt1/step2/show_operational_data.ref +++ b/tests/topotests/isis_sr_te_topo1/rt1/step2/show_operational_data.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt1/step2/show_operational_data_with_candidate.ref b/tests/topotests/isis_sr_te_topo1/rt1/step2/show_operational_data_with_candidate.ref index 9b28f6a42b..9b28f6a42b 100644 --- a/tests/topotests/isis-sr-te-topo1/rt1/step2/show_operational_data_with_candidate.ref +++ b/tests/topotests/isis_sr_te_topo1/rt1/step2/show_operational_data_with_candidate.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt1/step3/show_operational_data_with_single_candidate.ref b/tests/topotests/isis_sr_te_topo1/rt1/step3/show_operational_data_with_single_candidate.ref index 9b28f6a42b..9b28f6a42b 100644 --- a/tests/topotests/isis-sr-te-topo1/rt1/step3/show_operational_data_with_single_candidate.ref +++ b/tests/topotests/isis_sr_te_topo1/rt1/step3/show_operational_data_with_single_candidate.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt1/step3/show_operational_data_with_two_candidates.ref b/tests/topotests/isis_sr_te_topo1/rt1/step3/show_operational_data_with_two_candidates.ref index 249117198a..249117198a 100644 --- a/tests/topotests/isis-sr-te-topo1/rt1/step3/show_operational_data_with_two_candidates.ref +++ b/tests/topotests/isis_sr_te_topo1/rt1/step3/show_operational_data_with_two_candidates.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt1/step4/show_mpls_table.ref b/tests/topotests/isis_sr_te_topo1/rt1/step4/show_mpls_table.ref index 21f71f1254..21f71f1254 100644 --- a/tests/topotests/isis-sr-te-topo1/rt1/step4/show_mpls_table.ref +++ b/tests/topotests/isis_sr_te_topo1/rt1/step4/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt1/step4/show_mpls_table_add_segment.ref b/tests/topotests/isis_sr_te_topo1/rt1/step4/show_mpls_table_add_segment.ref index 3635c89efb..3635c89efb 100644 --- a/tests/topotests/isis-sr-te-topo1/rt1/step4/show_mpls_table_add_segment.ref +++ b/tests/topotests/isis_sr_te_topo1/rt1/step4/show_mpls_table_add_segment.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt1/step4/show_mpls_table_change_segment.ref b/tests/topotests/isis_sr_te_topo1/rt1/step4/show_mpls_table_change_segment.ref index 5712d210d4..5712d210d4 100644 --- a/tests/topotests/isis-sr-te-topo1/rt1/step4/show_mpls_table_change_segment.ref +++ b/tests/topotests/isis_sr_te_topo1/rt1/step4/show_mpls_table_change_segment.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt1/step5/show_ip_route_bgp_active_srte.ref b/tests/topotests/isis_sr_te_topo1/rt1/step5/show_ip_route_bgp_active_srte.ref index 5a76246e50..5a76246e50 100644 --- a/tests/topotests/isis-sr-te-topo1/rt1/step5/show_ip_route_bgp_active_srte.ref +++ b/tests/topotests/isis_sr_te_topo1/rt1/step5/show_ip_route_bgp_active_srte.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt1/step5/show_ip_route_bgp_inactive_srte.ref b/tests/topotests/isis_sr_te_topo1/rt1/step5/show_ip_route_bgp_inactive_srte.ref index 09d5958305..09d5958305 100644 --- a/tests/topotests/isis-sr-te-topo1/rt1/step5/show_ip_route_bgp_inactive_srte.ref +++ b/tests/topotests/isis_sr_te_topo1/rt1/step5/show_ip_route_bgp_inactive_srte.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt1/step5/show_operational_data_active.ref b/tests/topotests/isis_sr_te_topo1/rt1/step5/show_operational_data_active.ref index e26039b835..e26039b835 100644 --- a/tests/topotests/isis-sr-te-topo1/rt1/step5/show_operational_data_active.ref +++ b/tests/topotests/isis_sr_te_topo1/rt1/step5/show_operational_data_active.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt1/step5/show_operational_data_inactive.ref b/tests/topotests/isis_sr_te_topo1/rt1/step5/show_operational_data_inactive.ref index 01505c0318..01505c0318 100644 --- a/tests/topotests/isis-sr-te-topo1/rt1/step5/show_operational_data_inactive.ref +++ b/tests/topotests/isis_sr_te_topo1/rt1/step5/show_operational_data_inactive.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt1/zebra.conf b/tests/topotests/isis_sr_te_topo1/rt1/zebra.conf index 9d71d3005f..9d71d3005f 100644 --- a/tests/topotests/isis-sr-te-topo1/rt1/zebra.conf +++ b/tests/topotests/isis_sr_te_topo1/rt1/zebra.conf diff --git a/tests/topotests/isis-sr-te-topo1/rt2/isisd.conf b/tests/topotests/isis_sr_te_topo1/rt2/isisd.conf index 733f26bc62..733f26bc62 100644 --- a/tests/topotests/isis-sr-te-topo1/rt2/isisd.conf +++ b/tests/topotests/isis_sr_te_topo1/rt2/isisd.conf diff --git a/tests/topotests/isis-sr-te-topo1/rt2/zebra.conf b/tests/topotests/isis_sr_te_topo1/rt2/zebra.conf index dcb0686dc2..dcb0686dc2 100644 --- a/tests/topotests/isis-sr-te-topo1/rt2/zebra.conf +++ b/tests/topotests/isis_sr_te_topo1/rt2/zebra.conf diff --git a/tests/topotests/isis-sr-te-topo1/rt3/isisd.conf b/tests/topotests/isis_sr_te_topo1/rt3/isisd.conf index 2395906cbf..2395906cbf 100644 --- a/tests/topotests/isis-sr-te-topo1/rt3/isisd.conf +++ b/tests/topotests/isis_sr_te_topo1/rt3/isisd.conf diff --git a/tests/topotests/isis-sr-te-topo1/rt3/zebra.conf b/tests/topotests/isis_sr_te_topo1/rt3/zebra.conf index 3254529386..3254529386 100644 --- a/tests/topotests/isis-sr-te-topo1/rt3/zebra.conf +++ b/tests/topotests/isis_sr_te_topo1/rt3/zebra.conf diff --git a/tests/topotests/isis-sr-te-topo1/rt4/isisd.conf b/tests/topotests/isis_sr_te_topo1/rt4/isisd.conf index 07a7867cbb..07a7867cbb 100644 --- a/tests/topotests/isis-sr-te-topo1/rt4/isisd.conf +++ b/tests/topotests/isis_sr_te_topo1/rt4/isisd.conf diff --git a/tests/topotests/isis-sr-te-topo1/rt4/zebra.conf b/tests/topotests/isis_sr_te_topo1/rt4/zebra.conf index 4945897e9d..4945897e9d 100644 --- a/tests/topotests/isis-sr-te-topo1/rt4/zebra.conf +++ b/tests/topotests/isis_sr_te_topo1/rt4/zebra.conf diff --git a/tests/topotests/isis-sr-te-topo1/rt5/isisd.conf b/tests/topotests/isis_sr_te_topo1/rt5/isisd.conf index b0fcdede07..b0fcdede07 100644 --- a/tests/topotests/isis-sr-te-topo1/rt5/isisd.conf +++ b/tests/topotests/isis_sr_te_topo1/rt5/isisd.conf diff --git a/tests/topotests/isis-sr-te-topo1/rt5/zebra.conf b/tests/topotests/isis_sr_te_topo1/rt5/zebra.conf index 4cfea1a59f..4cfea1a59f 100644 --- a/tests/topotests/isis-sr-te-topo1/rt5/zebra.conf +++ b/tests/topotests/isis_sr_te_topo1/rt5/zebra.conf diff --git a/tests/topotests/isis-sr-te-topo1/rt6/bgpd.conf b/tests/topotests/isis_sr_te_topo1/rt6/bgpd.conf index e72ee52fce..e72ee52fce 100644 --- a/tests/topotests/isis-sr-te-topo1/rt6/bgpd.conf +++ b/tests/topotests/isis_sr_te_topo1/rt6/bgpd.conf diff --git a/tests/topotests/isis-sr-te-topo1/rt6/isisd.conf b/tests/topotests/isis_sr_te_topo1/rt6/isisd.conf index 3be24ad24c..3be24ad24c 100644 --- a/tests/topotests/isis-sr-te-topo1/rt6/isisd.conf +++ b/tests/topotests/isis_sr_te_topo1/rt6/isisd.conf diff --git a/tests/topotests/isis-sr-te-topo1/rt6/pathd.conf b/tests/topotests/isis_sr_te_topo1/rt6/pathd.conf index 3bada7147c..3bada7147c 100644 --- a/tests/topotests/isis-sr-te-topo1/rt6/pathd.conf +++ b/tests/topotests/isis_sr_te_topo1/rt6/pathd.conf diff --git a/tests/topotests/isis-sr-te-topo1/rt6/step1/show_mpls_table_with_candidate.ref b/tests/topotests/isis_sr_te_topo1/rt6/step1/show_mpls_table_with_candidate.ref index 2bb000346f..2bb000346f 100644 --- a/tests/topotests/isis-sr-te-topo1/rt6/step1/show_mpls_table_with_candidate.ref +++ b/tests/topotests/isis_sr_te_topo1/rt6/step1/show_mpls_table_with_candidate.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt6/step1/show_mpls_table_without_candidate.ref b/tests/topotests/isis_sr_te_topo1/rt6/step1/show_mpls_table_without_candidate.ref index 348f7761eb..348f7761eb 100644 --- a/tests/topotests/isis-sr-te-topo1/rt6/step1/show_mpls_table_without_candidate.ref +++ b/tests/topotests/isis_sr_te_topo1/rt6/step1/show_mpls_table_without_candidate.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt6/step2/show_operational_data.ref b/tests/topotests/isis_sr_te_topo1/rt6/step2/show_operational_data.ref index 241c80bdd7..241c80bdd7 100644 --- a/tests/topotests/isis-sr-te-topo1/rt6/step2/show_operational_data.ref +++ b/tests/topotests/isis_sr_te_topo1/rt6/step2/show_operational_data.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt6/step2/show_operational_data_with_candidate.ref b/tests/topotests/isis_sr_te_topo1/rt6/step2/show_operational_data_with_candidate.ref index 20ea69e386..20ea69e386 100644 --- a/tests/topotests/isis-sr-te-topo1/rt6/step2/show_operational_data_with_candidate.ref +++ b/tests/topotests/isis_sr_te_topo1/rt6/step2/show_operational_data_with_candidate.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt6/step3/show_operational_data_with_single_candidate.ref b/tests/topotests/isis_sr_te_topo1/rt6/step3/show_operational_data_with_single_candidate.ref index 20ea69e386..20ea69e386 100644 --- a/tests/topotests/isis-sr-te-topo1/rt6/step3/show_operational_data_with_single_candidate.ref +++ b/tests/topotests/isis_sr_te_topo1/rt6/step3/show_operational_data_with_single_candidate.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt6/step3/show_operational_data_with_two_candidates.ref b/tests/topotests/isis_sr_te_topo1/rt6/step3/show_operational_data_with_two_candidates.ref index 10cafe9091..10cafe9091 100644 --- a/tests/topotests/isis-sr-te-topo1/rt6/step3/show_operational_data_with_two_candidates.ref +++ b/tests/topotests/isis_sr_te_topo1/rt6/step3/show_operational_data_with_two_candidates.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt6/step4/show_mpls_table.ref b/tests/topotests/isis_sr_te_topo1/rt6/step4/show_mpls_table.ref index 95bf995e2e..95bf995e2e 100644 --- a/tests/topotests/isis-sr-te-topo1/rt6/step4/show_mpls_table.ref +++ b/tests/topotests/isis_sr_te_topo1/rt6/step4/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-te-topo1/rt6/zebra.conf b/tests/topotests/isis_sr_te_topo1/rt6/zebra.conf index 32c6e6c4e0..32c6e6c4e0 100644 --- a/tests/topotests/isis-sr-te-topo1/rt6/zebra.conf +++ b/tests/topotests/isis_sr_te_topo1/rt6/zebra.conf diff --git a/tests/topotests/isis-sr-te-topo1/test_isis_sr_te_topo1.py b/tests/topotests/isis_sr_te_topo1/test_isis_sr_te_topo1.py index 6bbb570267..6bbb570267 100755 --- a/tests/topotests/isis-sr-te-topo1/test_isis_sr_te_topo1.py +++ b/tests/topotests/isis_sr_te_topo1/test_isis_sr_te_topo1.py diff --git a/tests/topotests/isis-sr-topo1/__init__.py b/tests/topotests/isis_sr_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-sr-topo1/__init__.py +++ b/tests/topotests/isis_sr_topo1/__init__.py diff --git a/tests/topotests/isis-sr-topo1/rt1/isisd.conf b/tests/topotests/isis_sr_topo1/rt1/isisd.conf index f441527597..f441527597 100644 --- a/tests/topotests/isis-sr-topo1/rt1/isisd.conf +++ b/tests/topotests/isis_sr_topo1/rt1/isisd.conf diff --git a/tests/topotests/isis-sr-topo1/rt1/step1/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt1/step1/show_ip_route.ref index 53bf8cb445..53bf8cb445 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step1/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step1/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step1/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt1/step1/show_ipv6_route.ref index 0b39584717..0b39584717 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step1/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt1/step1/show_mpls_table.ref index 5b1950d8cb..5b1950d8cb 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step1/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step1/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref index 26f0dffa7a..26f0dffa7a 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step10/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt1/step10/show_ip_route.ref index c712538c00..c712538c00 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step10/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step10/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step10/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt1/step10/show_ipv6_route.ref index 0b39584717..0b39584717 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step10/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step10/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step10/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt1/step10/show_mpls_table.ref index 7e6c72627a..7e6c72627a 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step10/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step10/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step10/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt1/step10/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt1/step10/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step10/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step2/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt1/step2/show_ip_route.ref index c712538c00..c712538c00 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step2/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step2/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step2/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt1/step2/show_ipv6_route.ref index 0b39584717..0b39584717 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step2/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step2/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step2/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt1/step2/show_mpls_table.ref index 5b1950d8cb..5b1950d8cb 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step2/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step2/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step2/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt1/step2/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt1/step2/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step2/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step3/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt1/step3/show_ip_route.ref index 71f9ebddfb..71f9ebddfb 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step3/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step3/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step3/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt1/step3/show_ipv6_route.ref index 304c0a475b..304c0a475b 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step3/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step3/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step3/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt1/step3/show_mpls_table.ref index 94b3cb6d1a..94b3cb6d1a 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step3/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step3/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step3/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt1/step3/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt1/step3/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step3/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step4/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt1/step4/show_ip_route.ref index c712538c00..c712538c00 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step4/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step4/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step4/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt1/step4/show_ipv6_route.ref index 0b39584717..0b39584717 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step4/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step4/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step4/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt1/step4/show_mpls_table.ref index 6500a47fbf..6500a47fbf 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step4/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step4/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step4/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt1/step4/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt1/step4/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step4/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step5/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt1/step5/show_ip_route.ref index 16d9358468..16d9358468 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step5/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step5/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step5/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt1/step5/show_ipv6_route.ref index f2093a3fc0..f2093a3fc0 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step5/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step5/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step5/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt1/step5/show_mpls_table.ref index 94b3cb6d1a..94b3cb6d1a 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step5/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step5/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step5/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt1/step5/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt1/step5/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step5/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step6/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt1/step6/show_ip_route.ref index c712538c00..c712538c00 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step6/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step6/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step6/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt1/step6/show_ipv6_route.ref index 0b39584717..0b39584717 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step6/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step6/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step6/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt1/step6/show_mpls_table.ref index 5b1950d8cb..5b1950d8cb 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step6/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step6/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step6/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt1/step6/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt1/step6/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step6/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step7/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt1/step7/show_ip_route.ref index c712538c00..c712538c00 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step7/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step7/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step7/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt1/step7/show_ipv6_route.ref index 0b39584717..0b39584717 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step7/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step7/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step7/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt1/step7/show_mpls_table.ref index 5b1950d8cb..5b1950d8cb 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step7/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step7/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step7/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt1/step7/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt1/step7/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step7/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step8/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt1/step8/show_ip_route.ref index c712538c00..c712538c00 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step8/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step8/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step8/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt1/step8/show_ipv6_route.ref index 0b39584717..0b39584717 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step8/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step8/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step8/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt1/step8/show_mpls_table.ref index 5b1950d8cb..5b1950d8cb 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step8/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step8/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step8/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt1/step8/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt1/step8/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step8/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step9/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt1/step9/show_ip_route.ref index c712538c00..c712538c00 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step9/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step9/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step9/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt1/step9/show_ipv6_route.ref index 0b39584717..0b39584717 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step9/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step9/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step9/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt1/step9/show_mpls_table.ref index 7e6c72627a..7e6c72627a 100644 --- a/tests/topotests/isis-sr-topo1/rt1/step9/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step9/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/step9/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt1/step9/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt1/step9/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt1/step9/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt1/zebra.conf b/tests/topotests/isis_sr_topo1/rt1/zebra.conf index 9d71d3005f..9d71d3005f 100644 --- a/tests/topotests/isis-sr-topo1/rt1/zebra.conf +++ b/tests/topotests/isis_sr_topo1/rt1/zebra.conf diff --git a/tests/topotests/isis-sr-topo1/rt2/isisd.conf b/tests/topotests/isis_sr_topo1/rt2/isisd.conf index 796b6ed32c..796b6ed32c 100644 --- a/tests/topotests/isis-sr-topo1/rt2/isisd.conf +++ b/tests/topotests/isis_sr_topo1/rt2/isisd.conf diff --git a/tests/topotests/isis-sr-topo1/rt2/step1/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt2/step1/show_ip_route.ref index 109b94f7a1..109b94f7a1 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step1/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step1/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step1/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt2/step1/show_ipv6_route.ref index eae700ee47..eae700ee47 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step1/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt2/step1/show_mpls_table.ref index a32cd1d1bf..a32cd1d1bf 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step1/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step1/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref index 07f43e5999..07f43e5999 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step10/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt2/step10/show_ip_route.ref index b7d52cecca..b7d52cecca 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step10/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step10/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step10/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt2/step10/show_ipv6_route.ref index 355436cbfc..355436cbfc 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step10/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step10/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step10/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt2/step10/show_mpls_table.ref index 4cbdb9fda9..4cbdb9fda9 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step10/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step10/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step10/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt2/step10/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt2/step10/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step10/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step2/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt2/step2/show_ip_route.ref index 159392f7f7..159392f7f7 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step2/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step2/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step2/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt2/step2/show_ipv6_route.ref index e9f63849d8..e9f63849d8 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step2/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step2/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step2/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt2/step2/show_mpls_table.ref index 0692553808..0692553808 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step2/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step2/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step2/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt2/step2/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt2/step2/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step2/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step3/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt2/step3/show_ip_route.ref index 16f49ffe46..16f49ffe46 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step3/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step3/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step3/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt2/step3/show_ipv6_route.ref index bde83c30d0..bde83c30d0 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step3/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step3/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step3/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt2/step3/show_mpls_table.ref index cbb0d5c695..cbb0d5c695 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step3/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step3/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step3/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt2/step3/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt2/step3/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step3/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step4/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt2/step4/show_ip_route.ref index 159392f7f7..159392f7f7 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step4/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step4/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step4/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt2/step4/show_ipv6_route.ref index e9f63849d8..e9f63849d8 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step4/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step4/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step4/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt2/step4/show_mpls_table.ref index 0692553808..0692553808 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step4/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step4/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step4/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt2/step4/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt2/step4/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step4/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step5/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt2/step5/show_ip_route.ref index fbfcce10aa..fbfcce10aa 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step5/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step5/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step5/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt2/step5/show_ipv6_route.ref index f747a96518..f747a96518 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step5/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step5/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step5/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt2/step5/show_mpls_table.ref index cbb0d5c695..cbb0d5c695 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step5/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step5/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step5/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt2/step5/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt2/step5/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step5/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step6/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt2/step6/show_ip_route.ref index 159392f7f7..159392f7f7 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step6/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step6/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step6/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt2/step6/show_ipv6_route.ref index e9f63849d8..e9f63849d8 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step6/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step6/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step6/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt2/step6/show_mpls_table.ref index 0692553808..0692553808 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step6/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step6/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step6/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt2/step6/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt2/step6/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step6/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step7/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt2/step7/show_ip_route.ref index 09ab6d4f8a..09ab6d4f8a 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step7/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step7/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step7/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt2/step7/show_ipv6_route.ref index 851275fbf7..851275fbf7 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step7/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step7/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step7/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt2/step7/show_mpls_table.ref index 87946aa7b9..87946aa7b9 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step7/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step7/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step7/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt2/step7/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt2/step7/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step7/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step8/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt2/step8/show_ip_route.ref index 159392f7f7..159392f7f7 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step8/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step8/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step8/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt2/step8/show_ipv6_route.ref index e9f63849d8..e9f63849d8 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step8/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step8/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step8/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt2/step8/show_mpls_table.ref index 0692553808..0692553808 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step8/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step8/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step8/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt2/step8/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt2/step8/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step8/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step9/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt2/step9/show_ip_route.ref index fc82ada7e3..fc82ada7e3 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step9/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step9/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step9/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt2/step9/show_ipv6_route.ref index 355436cbfc..355436cbfc 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step9/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step9/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step9/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt2/step9/show_mpls_table.ref index 05201724f4..05201724f4 100644 --- a/tests/topotests/isis-sr-topo1/rt2/step9/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step9/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/step9/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt2/step9/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt2/step9/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt2/step9/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt2/zebra.conf b/tests/topotests/isis_sr_topo1/rt2/zebra.conf index dcb0686dc2..dcb0686dc2 100644 --- a/tests/topotests/isis-sr-topo1/rt2/zebra.conf +++ b/tests/topotests/isis_sr_topo1/rt2/zebra.conf diff --git a/tests/topotests/isis-sr-topo1/rt3/isisd.conf b/tests/topotests/isis_sr_topo1/rt3/isisd.conf index cc2aa1782b..cc2aa1782b 100644 --- a/tests/topotests/isis-sr-topo1/rt3/isisd.conf +++ b/tests/topotests/isis_sr_topo1/rt3/isisd.conf diff --git a/tests/topotests/isis-sr-topo1/rt3/step1/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt3/step1/show_ip_route.ref index 241f768859..241f768859 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step1/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step1/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step1/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt3/step1/show_ipv6_route.ref index dd78c7d318..dd78c7d318 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step1/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt3/step1/show_mpls_table.ref index 8c6fca7b57..8c6fca7b57 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step1/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step1/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref index 7fa6f5cf47..7fa6f5cf47 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step10/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt3/step10/show_ip_route.ref index 40a98ab7c6..40a98ab7c6 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step10/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step10/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step10/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt3/step10/show_ipv6_route.ref index 1fb50407bd..1fb50407bd 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step10/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step10/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step10/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt3/step10/show_mpls_table.ref index 44ddc4bc14..44ddc4bc14 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step10/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step10/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step10/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt3/step10/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt3/step10/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step10/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step2/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt3/step2/show_ip_route.ref index 55d8213c4e..55d8213c4e 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step2/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step2/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step2/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt3/step2/show_ipv6_route.ref index 4f6441e7b9..4f6441e7b9 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step2/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step2/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step2/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt3/step2/show_mpls_table.ref index db8253f83d..db8253f83d 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step2/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step2/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step2/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt3/step2/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt3/step2/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step2/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step3/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt3/step3/show_ip_route.ref index ed5cef8a5b..ed5cef8a5b 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step3/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step3/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step3/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt3/step3/show_ipv6_route.ref index b33058c3bd..b33058c3bd 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step3/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step3/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step3/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt3/step3/show_mpls_table.ref index 70cccc0f0b..70cccc0f0b 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step3/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step3/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step3/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt3/step3/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt3/step3/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step3/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step4/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt3/step4/show_ip_route.ref index 55d8213c4e..55d8213c4e 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step4/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step4/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step4/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt3/step4/show_ipv6_route.ref index 4f6441e7b9..4f6441e7b9 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step4/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step4/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step4/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt3/step4/show_mpls_table.ref index db8253f83d..db8253f83d 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step4/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step4/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step4/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt3/step4/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt3/step4/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step4/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step5/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt3/step5/show_ip_route.ref index 3adcdce58c..3adcdce58c 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step5/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step5/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step5/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt3/step5/show_ipv6_route.ref index 863e26c30e..863e26c30e 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step5/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step5/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step5/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt3/step5/show_mpls_table.ref index 70cccc0f0b..70cccc0f0b 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step5/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step5/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step5/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt3/step5/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt3/step5/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step5/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step6/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt3/step6/show_ip_route.ref index 55d8213c4e..55d8213c4e 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step6/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step6/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step6/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt3/step6/show_ipv6_route.ref index 4f6441e7b9..4f6441e7b9 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step6/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step6/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step6/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt3/step6/show_mpls_table.ref index db8253f83d..db8253f83d 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step6/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step6/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step6/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt3/step6/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt3/step6/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step6/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step7/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt3/step7/show_ip_route.ref index 7f6e05f08b..7f6e05f08b 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step7/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step7/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step7/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt3/step7/show_ipv6_route.ref index f4770e2ac9..f4770e2ac9 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step7/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step7/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step7/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt3/step7/show_mpls_table.ref index cb49505f55..cb49505f55 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step7/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step7/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step7/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt3/step7/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt3/step7/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step7/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step8/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt3/step8/show_ip_route.ref index 55d8213c4e..55d8213c4e 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step8/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step8/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step8/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt3/step8/show_ipv6_route.ref index 4f6441e7b9..4f6441e7b9 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step8/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step8/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step8/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt3/step8/show_mpls_table.ref index db8253f83d..db8253f83d 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step8/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step8/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step8/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt3/step8/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt3/step8/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step8/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step9/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt3/step9/show_ip_route.ref index 40a98ab7c6..40a98ab7c6 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step9/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step9/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step9/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt3/step9/show_ipv6_route.ref index 1fb50407bd..1fb50407bd 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step9/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step9/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step9/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt3/step9/show_mpls_table.ref index 44ddc4bc14..44ddc4bc14 100644 --- a/tests/topotests/isis-sr-topo1/rt3/step9/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step9/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/step9/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt3/step9/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt3/step9/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt3/step9/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt3/zebra.conf b/tests/topotests/isis_sr_topo1/rt3/zebra.conf index 3254529386..3254529386 100644 --- a/tests/topotests/isis-sr-topo1/rt3/zebra.conf +++ b/tests/topotests/isis_sr_topo1/rt3/zebra.conf diff --git a/tests/topotests/isis-sr-topo1/rt4/isisd.conf b/tests/topotests/isis_sr_topo1/rt4/isisd.conf index 3852b1962b..3852b1962b 100644 --- a/tests/topotests/isis-sr-topo1/rt4/isisd.conf +++ b/tests/topotests/isis_sr_topo1/rt4/isisd.conf diff --git a/tests/topotests/isis-sr-topo1/rt4/step1/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt4/step1/show_ip_route.ref index 493f3ab60d..493f3ab60d 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step1/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step1/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step1/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt4/step1/show_ipv6_route.ref index 217a4a5379..217a4a5379 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step1/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt4/step1/show_mpls_table.ref index 307403964a..307403964a 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step1/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step1/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref index 2eb64b6fc9..2eb64b6fc9 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step10/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt4/step10/show_ip_route.ref index 11bc948319..11bc948319 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step10/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step10/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step10/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt4/step10/show_ipv6_route.ref index 844f6becf9..844f6becf9 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step10/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step10/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step10/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt4/step10/show_mpls_table.ref index f275056070..f275056070 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step10/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step10/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step10/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt4/step10/show_yang_interface_isis_adjacencies.ref index 761cb2fd2f..761cb2fd2f 120000 --- a/tests/topotests/isis-sr-topo1/rt4/step10/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step10/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step2/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt4/step2/show_ip_route.ref index c2fbdeb30e..c2fbdeb30e 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step2/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step2/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step2/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt4/step2/show_ipv6_route.ref index 7f823b6896..7f823b6896 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step2/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step2/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step2/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt4/step2/show_mpls_table.ref index 8dd37880d0..8dd37880d0 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step2/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step2/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step2/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt4/step2/show_yang_interface_isis_adjacencies.ref index be1e00b8a2..be1e00b8a2 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step2/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step2/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step3/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt4/step3/show_ip_route.ref index f2a54bf958..f2a54bf958 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step3/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step3/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step3/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt4/step3/show_ipv6_route.ref index 34afda1966..34afda1966 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step3/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step3/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step3/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt4/step3/show_mpls_table.ref index 65336d88d1..65336d88d1 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step3/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step3/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step3/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt4/step3/show_yang_interface_isis_adjacencies.ref index bcade1ca90..bcade1ca90 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step3/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step3/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step4/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt4/step4/show_ip_route.ref index e930657f8d..e930657f8d 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step4/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step4/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step4/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt4/step4/show_ipv6_route.ref index ca61c6e81f..ca61c6e81f 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step4/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step4/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step4/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt4/step4/show_mpls_table.ref index eb95fa94c9..eb95fa94c9 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step4/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step4/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step4/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt4/step4/show_yang_interface_isis_adjacencies.ref index 761cb2fd2f..761cb2fd2f 120000 --- a/tests/topotests/isis-sr-topo1/rt4/step4/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step4/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step5/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt4/step5/show_ip_route.ref index 8b0ddd4ee5..8b0ddd4ee5 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step5/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step5/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step5/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt4/step5/show_ipv6_route.ref index 94e1fac450..94e1fac450 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step5/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step5/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step5/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt4/step5/show_mpls_table.ref index cd47cfa3a7..cd47cfa3a7 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step5/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step5/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step5/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt4/step5/show_yang_interface_isis_adjacencies.ref index 761cb2fd2f..761cb2fd2f 120000 --- a/tests/topotests/isis-sr-topo1/rt4/step5/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step5/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step6/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt4/step6/show_ip_route.ref index e930657f8d..e930657f8d 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step6/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step6/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step6/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt4/step6/show_ipv6_route.ref index ca61c6e81f..ca61c6e81f 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step6/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step6/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step6/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt4/step6/show_mpls_table.ref index eb95fa94c9..eb95fa94c9 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step6/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step6/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step6/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt4/step6/show_yang_interface_isis_adjacencies.ref index 761cb2fd2f..761cb2fd2f 120000 --- a/tests/topotests/isis-sr-topo1/rt4/step6/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step6/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step7/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt4/step7/show_ip_route.ref index f5ac45504e..f5ac45504e 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step7/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step7/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step7/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt4/step7/show_ipv6_route.ref index 1599c88122..1599c88122 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step7/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step7/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step7/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt4/step7/show_mpls_table.ref index 19b0beb164..19b0beb164 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step7/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step7/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step7/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt4/step7/show_yang_interface_isis_adjacencies.ref index 761cb2fd2f..761cb2fd2f 120000 --- a/tests/topotests/isis-sr-topo1/rt4/step7/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step7/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step8/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt4/step8/show_ip_route.ref index e930657f8d..e930657f8d 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step8/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step8/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step8/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt4/step8/show_ipv6_route.ref index ca61c6e81f..ca61c6e81f 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step8/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step8/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step8/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt4/step8/show_mpls_table.ref index eb95fa94c9..eb95fa94c9 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step8/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step8/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step8/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt4/step8/show_yang_interface_isis_adjacencies.ref index 761cb2fd2f..761cb2fd2f 120000 --- a/tests/topotests/isis-sr-topo1/rt4/step8/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step8/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step9/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt4/step9/show_ip_route.ref index a2b939a418..a2b939a418 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step9/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step9/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step9/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt4/step9/show_ipv6_route.ref index 844f6becf9..844f6becf9 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step9/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step9/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step9/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt4/step9/show_mpls_table.ref index 5805bf3556..5805bf3556 100644 --- a/tests/topotests/isis-sr-topo1/rt4/step9/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step9/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/step9/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt4/step9/show_yang_interface_isis_adjacencies.ref index 761cb2fd2f..761cb2fd2f 120000 --- a/tests/topotests/isis-sr-topo1/rt4/step9/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt4/step9/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt4/zebra.conf b/tests/topotests/isis_sr_topo1/rt4/zebra.conf index 5889901c56..5889901c56 100644 --- a/tests/topotests/isis-sr-topo1/rt4/zebra.conf +++ b/tests/topotests/isis_sr_topo1/rt4/zebra.conf diff --git a/tests/topotests/isis-sr-topo1/rt5/isisd.conf b/tests/topotests/isis_sr_topo1/rt5/isisd.conf index f7beea796c..f7beea796c 100644 --- a/tests/topotests/isis-sr-topo1/rt5/isisd.conf +++ b/tests/topotests/isis_sr_topo1/rt5/isisd.conf diff --git a/tests/topotests/isis-sr-topo1/rt5/step1/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt5/step1/show_ip_route.ref index 0497bd8399..0497bd8399 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step1/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step1/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step1/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt5/step1/show_ipv6_route.ref index 294567edc8..294567edc8 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step1/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt5/step1/show_mpls_table.ref index 99d1f773b7..99d1f773b7 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step1/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step1/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref index 1ff8c2cd4e..1ff8c2cd4e 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step10/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt5/step10/show_ip_route.ref index 29f4782482..29f4782482 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step10/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step10/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step10/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt5/step10/show_ipv6_route.ref index c02d3cfaea..c02d3cfaea 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step10/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step10/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step10/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt5/step10/show_mpls_table.ref index 7cfea2a329..7cfea2a329 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step10/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step10/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step10/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt5/step10/show_yang_interface_isis_adjacencies.ref index 7cdaabf53f..7cdaabf53f 120000 --- a/tests/topotests/isis-sr-topo1/rt5/step10/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step10/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step2/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt5/step2/show_ip_route.ref index dc61b86410..dc61b86410 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step2/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step2/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step2/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt5/step2/show_ipv6_route.ref index fa426317ba..fa426317ba 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step2/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step2/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step2/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt5/step2/show_mpls_table.ref index 08f1635a39..08f1635a39 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step2/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step2/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step2/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt5/step2/show_yang_interface_isis_adjacencies.ref index d9ac0a8d00..d9ac0a8d00 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step2/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step2/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step3/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt5/step3/show_ip_route.ref index 2d983c43b6..2d983c43b6 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step3/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step3/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step3/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt5/step3/show_ipv6_route.ref index a3e705f384..a3e705f384 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step3/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step3/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step3/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt5/step3/show_mpls_table.ref index 9980058b12..9980058b12 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step3/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step3/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step3/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt5/step3/show_yang_interface_isis_adjacencies.ref index 0b8e6ba5b9..0b8e6ba5b9 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step3/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step3/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step4/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt5/step4/show_ip_route.ref index 0a64db60f6..0a64db60f6 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step4/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step4/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step4/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt5/step4/show_ipv6_route.ref index e9f8fe227c..e9f8fe227c 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step4/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step4/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step4/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt5/step4/show_mpls_table.ref index a84ed90b25..a84ed90b25 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step4/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step4/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step4/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt5/step4/show_yang_interface_isis_adjacencies.ref index d9ac0a8d00..d9ac0a8d00 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step4/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step4/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step5/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt5/step5/show_ip_route.ref index 88485477e3..88485477e3 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step5/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step5/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step5/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt5/step5/show_ipv6_route.ref index 60c645092e..60c645092e 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step5/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step5/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step5/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt5/step5/show_mpls_table.ref index 36c21b041f..36c21b041f 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step5/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step5/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step5/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt5/step5/show_yang_interface_isis_adjacencies.ref index 7cdaabf53f..7cdaabf53f 120000 --- a/tests/topotests/isis-sr-topo1/rt5/step5/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step5/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step6/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt5/step6/show_ip_route.ref index 0a64db60f6..0a64db60f6 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step6/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step6/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step6/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt5/step6/show_ipv6_route.ref index e9f8fe227c..e9f8fe227c 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step6/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step6/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step6/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt5/step6/show_mpls_table.ref index a84ed90b25..a84ed90b25 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step6/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step6/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step6/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt5/step6/show_yang_interface_isis_adjacencies.ref index 7cdaabf53f..7cdaabf53f 120000 --- a/tests/topotests/isis-sr-topo1/rt5/step6/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step6/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step7/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt5/step7/show_ip_route.ref index 769bc4d31e..769bc4d31e 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step7/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step7/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step7/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt5/step7/show_ipv6_route.ref index e05cc1e282..e05cc1e282 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step7/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step7/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step7/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt5/step7/show_mpls_table.ref index c98da7effd..c98da7effd 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step7/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step7/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step7/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt5/step7/show_yang_interface_isis_adjacencies.ref index 7cdaabf53f..7cdaabf53f 120000 --- a/tests/topotests/isis-sr-topo1/rt5/step7/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step7/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step8/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt5/step8/show_ip_route.ref index 0a64db60f6..0a64db60f6 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step8/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step8/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step8/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt5/step8/show_ipv6_route.ref index e9f8fe227c..e9f8fe227c 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step8/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step8/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step8/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt5/step8/show_mpls_table.ref index a84ed90b25..a84ed90b25 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step8/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step8/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step8/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt5/step8/show_yang_interface_isis_adjacencies.ref index 7cdaabf53f..7cdaabf53f 120000 --- a/tests/topotests/isis-sr-topo1/rt5/step8/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step8/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step9/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt5/step9/show_ip_route.ref index 34cbf68b21..34cbf68b21 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step9/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step9/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step9/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt5/step9/show_ipv6_route.ref index c02d3cfaea..c02d3cfaea 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step9/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step9/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step9/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt5/step9/show_mpls_table.ref index 7cfea2a329..7cfea2a329 100644 --- a/tests/topotests/isis-sr-topo1/rt5/step9/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step9/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/step9/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt5/step9/show_yang_interface_isis_adjacencies.ref index 7cdaabf53f..7cdaabf53f 120000 --- a/tests/topotests/isis-sr-topo1/rt5/step9/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt5/step9/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt5/zebra.conf b/tests/topotests/isis_sr_topo1/rt5/zebra.conf index a0c8f2cd7e..a0c8f2cd7e 100644 --- a/tests/topotests/isis-sr-topo1/rt5/zebra.conf +++ b/tests/topotests/isis_sr_topo1/rt5/zebra.conf diff --git a/tests/topotests/isis-sr-topo1/rt6/isisd.conf b/tests/topotests/isis_sr_topo1/rt6/isisd.conf index a29b78f0a4..a29b78f0a4 100644 --- a/tests/topotests/isis-sr-topo1/rt6/isisd.conf +++ b/tests/topotests/isis_sr_topo1/rt6/isisd.conf diff --git a/tests/topotests/isis-sr-topo1/rt6/step1/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt6/step1/show_ip_route.ref index 7b62b0a9c6..7b62b0a9c6 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step1/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step1/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step1/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt6/step1/show_ipv6_route.ref index 834cdfe6ca..834cdfe6ca 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step1/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt6/step1/show_mpls_table.ref index 2c526e74f0..2c526e74f0 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step1/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step1/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref index 734832358f..734832358f 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step10/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt6/step10/show_ip_route.ref index d430ef5a33..d430ef5a33 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step10/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step10/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step10/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt6/step10/show_ipv6_route.ref index 834cdfe6ca..834cdfe6ca 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step10/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step10/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step10/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt6/step10/show_mpls_table.ref index be87ed90a0..be87ed90a0 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step10/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step10/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step10/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt6/step10/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt6/step10/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step10/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step2/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt6/step2/show_ip_route.ref index 4b204dbc4c..4b204dbc4c 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step2/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step2/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step2/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt6/step2/show_ipv6_route.ref index 834cdfe6ca..834cdfe6ca 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step2/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step2/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step2/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt6/step2/show_mpls_table.ref index 2c526e74f0..2c526e74f0 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step2/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step2/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step2/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt6/step2/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt6/step2/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step2/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step3/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt6/step3/show_ip_route.ref index 2c63c08510..2c63c08510 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step3/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step3/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step3/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt6/step3/show_ipv6_route.ref index 2c63c08510..2c63c08510 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step3/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step3/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step3/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt6/step3/show_mpls_table.ref index 2c63c08510..2c63c08510 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step3/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step3/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step3/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt6/step3/show_yang_interface_isis_adjacencies.ref index 0db3279e44..0db3279e44 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step3/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step3/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step4/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt6/step4/show_ip_route.ref index 4b204dbc4c..4b204dbc4c 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step4/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step4/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step4/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt6/step4/show_ipv6_route.ref index 834cdfe6ca..834cdfe6ca 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step4/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step4/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step4/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt6/step4/show_mpls_table.ref index be87ed90a0..be87ed90a0 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step4/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step4/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step4/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt6/step4/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt6/step4/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step4/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step5/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt6/step5/show_ip_route.ref index 4b204dbc4c..4b204dbc4c 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step5/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step5/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step5/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt6/step5/show_ipv6_route.ref index 834cdfe6ca..834cdfe6ca 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step5/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step5/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step5/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt6/step5/show_mpls_table.ref index be87ed90a0..be87ed90a0 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step5/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step5/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step5/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt6/step5/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt6/step5/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step5/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step6/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt6/step6/show_ip_route.ref index 4b204dbc4c..4b204dbc4c 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step6/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step6/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step6/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt6/step6/show_ipv6_route.ref index 834cdfe6ca..834cdfe6ca 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step6/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step6/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step6/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt6/step6/show_mpls_table.ref index be87ed90a0..be87ed90a0 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step6/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step6/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step6/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt6/step6/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt6/step6/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step6/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step7/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt6/step7/show_ip_route.ref index 1787988207..1787988207 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step7/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step7/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step7/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt6/step7/show_ipv6_route.ref index 367d0ed173..367d0ed173 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step7/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step7/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step7/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt6/step7/show_mpls_table.ref index b44dda298e..b44dda298e 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step7/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step7/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step7/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt6/step7/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt6/step7/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step7/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step8/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt6/step8/show_ip_route.ref index 4b204dbc4c..4b204dbc4c 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step8/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step8/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step8/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt6/step8/show_ipv6_route.ref index 834cdfe6ca..834cdfe6ca 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step8/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step8/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step8/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt6/step8/show_mpls_table.ref index be87ed90a0..be87ed90a0 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step8/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step8/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step8/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt6/step8/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt6/step8/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step8/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step9/show_ip_route.ref b/tests/topotests/isis_sr_topo1/rt6/step9/show_ip_route.ref index 4b204dbc4c..4b204dbc4c 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step9/show_ip_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step9/show_ip_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step9/show_ipv6_route.ref b/tests/topotests/isis_sr_topo1/rt6/step9/show_ipv6_route.ref index 834cdfe6ca..834cdfe6ca 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step9/show_ipv6_route.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step9/show_ipv6_route.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step9/show_mpls_table.ref b/tests/topotests/isis_sr_topo1/rt6/step9/show_mpls_table.ref index be87ed90a0..be87ed90a0 100644 --- a/tests/topotests/isis-sr-topo1/rt6/step9/show_mpls_table.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step9/show_mpls_table.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/step9/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_sr_topo1/rt6/step9/show_yang_interface_isis_adjacencies.ref index 0879b84d23..0879b84d23 120000 --- a/tests/topotests/isis-sr-topo1/rt6/step9/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_sr_topo1/rt6/step9/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-sr-topo1/rt6/zebra.conf b/tests/topotests/isis_sr_topo1/rt6/zebra.conf index 6084010a93..6084010a93 100644 --- a/tests/topotests/isis-sr-topo1/rt6/zebra.conf +++ b/tests/topotests/isis_sr_topo1/rt6/zebra.conf diff --git a/tests/topotests/isis-sr-topo1/test_isis_sr_topo1.py b/tests/topotests/isis_sr_topo1/test_isis_sr_topo1.py index c22bd65d2d..c22bd65d2d 100644 --- a/tests/topotests/isis-sr-topo1/test_isis_sr_topo1.py +++ b/tests/topotests/isis_sr_topo1/test_isis_sr_topo1.py diff --git a/tests/topotests/isis-tilfa-topo1/__init__.py b/tests/topotests/isis_tilfa_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/__init__.py +++ b/tests/topotests/isis_tilfa_topo1/__init__.py diff --git a/tests/topotests/isis-tilfa-topo1/rt1/isisd.conf b/tests/topotests/isis_tilfa_topo1/rt1/isisd.conf index a447a2aa5a..a447a2aa5a 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/isisd.conf +++ b/tests/topotests/isis_tilfa_topo1/rt1/isisd.conf diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step1/show_ip_route.ref b/tests/topotests/isis_tilfa_topo1/rt1/step1/show_ip_route.ref index 92b7437324..92b7437324 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step1/show_ip_route.ref +++ b/tests/topotests/isis_tilfa_topo1/rt1/step1/show_ip_route.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step1/show_ipv6_route.ref b/tests/topotests/isis_tilfa_topo1/rt1/step1/show_ipv6_route.ref index 3232121a0f..3232121a0f 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_tilfa_topo1/rt1/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step1/show_mpls_table.ref b/tests/topotests/isis_tilfa_topo1/rt1/step1/show_mpls_table.ref index aa0357d750..aa0357d750 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step1/show_mpls_table.ref +++ b/tests/topotests/isis_tilfa_topo1/rt1/step1/show_mpls_table.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_tilfa_topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref index 26f0dffa7a..26f0dffa7a 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_tilfa_topo1/rt1/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step2/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step2/show_ip_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step2/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step2/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step2/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step2/show_ipv6_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step2/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step2/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step2/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step2/show_mpls_table.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step2/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step2/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step3/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step3/show_ip_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step3/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step3/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step3/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step3/show_ipv6_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step3/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step3/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step3/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step3/show_mpls_table.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step3/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step3/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step4/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step4/show_ip_route.ref.diff index 10b336f5b8..10b336f5b8 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step4/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step4/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step4/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step4/show_ipv6_route.ref.diff index 904aaa1ce2..904aaa1ce2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step4/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step4/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step4/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step4/show_mpls_table.ref.diff index d7d8753131..d7d8753131 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step4/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step4/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step5/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step5/show_ip_route.ref.diff index b583fa97bd..b583fa97bd 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step5/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step5/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step5/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step5/show_ipv6_route.ref.diff index d608abec98..d608abec98 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step5/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step5/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step5/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step5/show_mpls_table.ref.diff index b5161fcd55..b5161fcd55 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step5/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step5/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step6/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step6/show_ip_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step6/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step6/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step6/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step6/show_ipv6_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step6/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step6/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step6/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step6/show_mpls_table.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step6/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step6/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step7/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step7/show_ip_route.ref.diff index 726aed514f..726aed514f 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step7/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step7/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step7/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step7/show_ipv6_route.ref.diff index 2049f6fa19..2049f6fa19 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step7/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step7/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step7/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step7/show_mpls_table.ref.diff index 22301ba1ff..22301ba1ff 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step7/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step7/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step8/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step8/show_ip_route.ref.diff index 4a1d4805a4..4a1d4805a4 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step8/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step8/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step8/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step8/show_ipv6_route.ref.diff index eaece74e48..eaece74e48 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step8/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step8/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step8/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step8/show_mpls_table.ref.diff index 46c17de019..46c17de019 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step8/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step8/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step9/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step9/show_ip_route.ref.diff index 06efdc96ce..06efdc96ce 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step9/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step9/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step9/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step9/show_ipv6_route.ref.diff index a58f2d447c..a58f2d447c 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step9/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step9/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/step9/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt1/step9/show_mpls_table.ref.diff index c0a1ac592b..c0a1ac592b 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/step9/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt1/step9/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt1/zebra.conf b/tests/topotests/isis_tilfa_topo1/rt1/zebra.conf index 9d71d3005f..9d71d3005f 100644 --- a/tests/topotests/isis-tilfa-topo1/rt1/zebra.conf +++ b/tests/topotests/isis_tilfa_topo1/rt1/zebra.conf diff --git a/tests/topotests/isis-tilfa-topo1/rt2/isisd.conf b/tests/topotests/isis_tilfa_topo1/rt2/isisd.conf index 1a756e2c72..1a756e2c72 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/isisd.conf +++ b/tests/topotests/isis_tilfa_topo1/rt2/isisd.conf diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step1/show_ip_route.ref b/tests/topotests/isis_tilfa_topo1/rt2/step1/show_ip_route.ref index 7e1ccd10a2..7e1ccd10a2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step1/show_ip_route.ref +++ b/tests/topotests/isis_tilfa_topo1/rt2/step1/show_ip_route.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step1/show_ipv6_route.ref b/tests/topotests/isis_tilfa_topo1/rt2/step1/show_ipv6_route.ref index 6d31f6f26b..6d31f6f26b 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_tilfa_topo1/rt2/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step1/show_mpls_table.ref b/tests/topotests/isis_tilfa_topo1/rt2/step1/show_mpls_table.ref index b9b906a31d..b9b906a31d 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step1/show_mpls_table.ref +++ b/tests/topotests/isis_tilfa_topo1/rt2/step1/show_mpls_table.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_tilfa_topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref index 1ea72a528b..1ea72a528b 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_tilfa_topo1/rt2/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step2/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step2/show_ip_route.ref.diff index 90e0895639..90e0895639 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step2/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step2/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step2/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step2/show_ipv6_route.ref.diff index 2d19f20f63..2d19f20f63 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step2/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step2/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step2/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step2/show_mpls_table.ref.diff index 01fc74a60b..01fc74a60b 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step2/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step2/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step3/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step3/show_ip_route.ref.diff index d93f036229..d93f036229 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step3/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step3/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step3/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step3/show_ipv6_route.ref.diff index 68b618e91d..68b618e91d 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step3/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step3/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step3/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step3/show_mpls_table.ref.diff index 966e153a6b..966e153a6b 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step3/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step3/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step4/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step4/show_ip_route.ref.diff index dd75d76b9b..dd75d76b9b 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step4/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step4/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step4/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step4/show_ipv6_route.ref.diff index 63731237ec..63731237ec 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step4/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step4/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step4/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step4/show_mpls_table.ref.diff index 3872ce4980..3872ce4980 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step4/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step4/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step5/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step5/show_ip_route.ref.diff index 4d5636436c..4d5636436c 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step5/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step5/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step5/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step5/show_ipv6_route.ref.diff index f9e0276f85..f9e0276f85 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step5/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step5/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step5/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step5/show_mpls_table.ref.diff index 6aebbd6c82..6aebbd6c82 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step5/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step5/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step6/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step6/show_ip_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step6/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step6/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step6/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step6/show_ipv6_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step6/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step6/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step6/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step6/show_mpls_table.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step6/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step6/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step7/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step7/show_ip_route.ref.diff index 5e73b97844..5e73b97844 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step7/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step7/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step7/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step7/show_ipv6_route.ref.diff index 5dc4e59151..5dc4e59151 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step7/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step7/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step7/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step7/show_mpls_table.ref.diff index 6c0d7392f0..6c0d7392f0 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step7/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step7/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step8/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step8/show_ip_route.ref.diff index f5df607613..f5df607613 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step8/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step8/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step8/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step8/show_ipv6_route.ref.diff index 125f36b1b4..125f36b1b4 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step8/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step8/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step8/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step8/show_mpls_table.ref.diff index a1d5d795c5..a1d5d795c5 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step8/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step8/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step9/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step9/show_ip_route.ref.diff index 2475c639c1..2475c639c1 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step9/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step9/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step9/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step9/show_ipv6_route.ref.diff index 2d21fbcde2..2d21fbcde2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step9/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step9/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/step9/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt2/step9/show_mpls_table.ref.diff index bc0ec3157e..bc0ec3157e 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/step9/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt2/step9/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt2/zebra.conf b/tests/topotests/isis_tilfa_topo1/rt2/zebra.conf index dcb0686dc2..dcb0686dc2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt2/zebra.conf +++ b/tests/topotests/isis_tilfa_topo1/rt2/zebra.conf diff --git a/tests/topotests/isis-tilfa-topo1/rt3/isisd.conf b/tests/topotests/isis_tilfa_topo1/rt3/isisd.conf index 986bf2804a..986bf2804a 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/isisd.conf +++ b/tests/topotests/isis_tilfa_topo1/rt3/isisd.conf diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step1/show_ip_route.ref b/tests/topotests/isis_tilfa_topo1/rt3/step1/show_ip_route.ref index d70e9fe882..d70e9fe882 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step1/show_ip_route.ref +++ b/tests/topotests/isis_tilfa_topo1/rt3/step1/show_ip_route.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step1/show_ipv6_route.ref b/tests/topotests/isis_tilfa_topo1/rt3/step1/show_ipv6_route.ref index 058d33609b..058d33609b 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_tilfa_topo1/rt3/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step1/show_mpls_table.ref b/tests/topotests/isis_tilfa_topo1/rt3/step1/show_mpls_table.ref index 1912df3f05..1912df3f05 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step1/show_mpls_table.ref +++ b/tests/topotests/isis_tilfa_topo1/rt3/step1/show_mpls_table.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_tilfa_topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref index d174b4a475..d174b4a475 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_tilfa_topo1/rt3/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step2/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step2/show_ip_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step2/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step2/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step2/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step2/show_ipv6_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step2/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step2/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step2/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step2/show_mpls_table.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step2/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step2/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step3/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step3/show_ip_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step3/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step3/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step3/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step3/show_ipv6_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step3/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step3/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step3/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step3/show_mpls_table.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step3/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step3/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step4/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step4/show_ip_route.ref.diff index 9ba73b057a..9ba73b057a 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step4/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step4/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step4/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step4/show_ipv6_route.ref.diff index 04f61c4eb4..04f61c4eb4 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step4/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step4/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step4/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step4/show_mpls_table.ref.diff index b3588ca791..b3588ca791 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step4/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step4/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step5/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step5/show_ip_route.ref.diff index 1af024fc2e..1af024fc2e 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step5/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step5/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step5/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step5/show_ipv6_route.ref.diff index 7cc79d0e58..7cc79d0e58 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step5/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step5/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step5/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step5/show_mpls_table.ref.diff index 75a0f01f55..75a0f01f55 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step5/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step5/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step6/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step6/show_ip_route.ref.diff index c814a2876b..c814a2876b 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step6/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step6/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step6/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step6/show_ipv6_route.ref.diff index 6f9405f20c..6f9405f20c 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step6/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step6/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step6/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step6/show_mpls_table.ref.diff index d8c39685de..d8c39685de 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step6/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step6/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step7/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step7/show_ip_route.ref.diff index c928fcdb4b..c928fcdb4b 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step7/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step7/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step7/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step7/show_ipv6_route.ref.diff index 0170971781..0170971781 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step7/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step7/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step7/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step7/show_mpls_table.ref.diff index d7a3ed978f..d7a3ed978f 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step7/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step7/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step8/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step8/show_ip_route.ref.diff index 41a7ff3255..41a7ff3255 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step8/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step8/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step8/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step8/show_ipv6_route.ref.diff index bd49f8606b..bd49f8606b 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step8/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step8/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step8/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step8/show_mpls_table.ref.diff index 4cc69b66f2..4cc69b66f2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step8/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step8/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step9/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step9/show_ip_route.ref.diff index cc0a482eee..cc0a482eee 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step9/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step9/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step9/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step9/show_ipv6_route.ref.diff index 650b982f0b..650b982f0b 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step9/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step9/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/step9/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt3/step9/show_mpls_table.ref.diff index 8ce4f1d266..8ce4f1d266 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/step9/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt3/step9/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt3/zebra.conf b/tests/topotests/isis_tilfa_topo1/rt3/zebra.conf index 3254529386..3254529386 100644 --- a/tests/topotests/isis-tilfa-topo1/rt3/zebra.conf +++ b/tests/topotests/isis_tilfa_topo1/rt3/zebra.conf diff --git a/tests/topotests/isis-tilfa-topo1/rt4/isisd.conf b/tests/topotests/isis_tilfa_topo1/rt4/isisd.conf index 7d411069d1..7d411069d1 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/isisd.conf +++ b/tests/topotests/isis_tilfa_topo1/rt4/isisd.conf diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step1/show_ip_route.ref b/tests/topotests/isis_tilfa_topo1/rt4/step1/show_ip_route.ref index 0ef5d1bc3f..0ef5d1bc3f 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step1/show_ip_route.ref +++ b/tests/topotests/isis_tilfa_topo1/rt4/step1/show_ip_route.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step1/show_ipv6_route.ref b/tests/topotests/isis_tilfa_topo1/rt4/step1/show_ipv6_route.ref index b640df30c1..b640df30c1 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_tilfa_topo1/rt4/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step1/show_mpls_table.ref b/tests/topotests/isis_tilfa_topo1/rt4/step1/show_mpls_table.ref index f60937ccbc..f60937ccbc 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step1/show_mpls_table.ref +++ b/tests/topotests/isis_tilfa_topo1/rt4/step1/show_mpls_table.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_tilfa_topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref index 2eb64b6fc9..2eb64b6fc9 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_tilfa_topo1/rt4/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step2/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step2/show_ip_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step2/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step2/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step2/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step2/show_ipv6_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step2/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step2/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step2/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step2/show_mpls_table.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step2/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step2/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step3/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step3/show_ip_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step3/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step3/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step3/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step3/show_ipv6_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step3/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step3/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step3/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step3/show_mpls_table.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step3/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step3/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step4/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step4/show_ip_route.ref.diff index 8b115c2058..8b115c2058 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step4/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step4/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step4/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step4/show_ipv6_route.ref.diff index 7f39285089..7f39285089 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step4/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step4/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step4/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step4/show_mpls_table.ref.diff index 3dcd36c176..3dcd36c176 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step4/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step4/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step5/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step5/show_ip_route.ref.diff index 484a3147dc..484a3147dc 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step5/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step5/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step5/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step5/show_ipv6_route.ref.diff index 3ad0085120..3ad0085120 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step5/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step5/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step5/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step5/show_mpls_table.ref.diff index 20e363375b..20e363375b 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step5/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step5/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step6/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step6/show_ip_route.ref.diff index 9070414730..9070414730 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step6/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step6/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step6/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step6/show_ipv6_route.ref.diff index 57a57647a1..57a57647a1 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step6/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step6/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step6/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step6/show_mpls_table.ref.diff index 94f87854d1..94f87854d1 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step6/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step6/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step7/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step7/show_ip_route.ref.diff index e54873d5ab..e54873d5ab 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step7/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step7/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step7/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step7/show_ipv6_route.ref.diff index 92e08f99a0..92e08f99a0 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step7/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step7/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step7/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step7/show_mpls_table.ref.diff index fb614ebf6a..fb614ebf6a 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step7/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step7/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step8/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step8/show_ip_route.ref.diff index 252da6e764..252da6e764 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step8/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step8/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step8/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step8/show_ipv6_route.ref.diff index 7057d2166a..7057d2166a 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step8/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step8/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step8/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step8/show_mpls_table.ref.diff index 3dc4303b9b..3dc4303b9b 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step8/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step8/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step9/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step9/show_ip_route.ref.diff index 56f9cc534f..56f9cc534f 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step9/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step9/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step9/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step9/show_ipv6_route.ref.diff index 41e552177a..41e552177a 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step9/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step9/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/step9/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt4/step9/show_mpls_table.ref.diff index 627e292518..627e292518 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/step9/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt4/step9/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt4/zebra.conf b/tests/topotests/isis_tilfa_topo1/rt4/zebra.conf index 4945897e9d..4945897e9d 100644 --- a/tests/topotests/isis-tilfa-topo1/rt4/zebra.conf +++ b/tests/topotests/isis_tilfa_topo1/rt4/zebra.conf diff --git a/tests/topotests/isis-tilfa-topo1/rt5/isisd.conf b/tests/topotests/isis_tilfa_topo1/rt5/isisd.conf index be52eb0322..be52eb0322 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/isisd.conf +++ b/tests/topotests/isis_tilfa_topo1/rt5/isisd.conf diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step1/show_ip_route.ref b/tests/topotests/isis_tilfa_topo1/rt5/step1/show_ip_route.ref index 93740e22e0..93740e22e0 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step1/show_ip_route.ref +++ b/tests/topotests/isis_tilfa_topo1/rt5/step1/show_ip_route.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step1/show_ipv6_route.ref b/tests/topotests/isis_tilfa_topo1/rt5/step1/show_ipv6_route.ref index 6dafa69adb..6dafa69adb 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_tilfa_topo1/rt5/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step1/show_mpls_table.ref b/tests/topotests/isis_tilfa_topo1/rt5/step1/show_mpls_table.ref index 0c5861b5e8..0c5861b5e8 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step1/show_mpls_table.ref +++ b/tests/topotests/isis_tilfa_topo1/rt5/step1/show_mpls_table.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_tilfa_topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref index 1ff8c2cd4e..1ff8c2cd4e 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_tilfa_topo1/rt5/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step2/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step2/show_ip_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step2/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step2/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step2/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step2/show_ipv6_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step2/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step2/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step2/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step2/show_mpls_table.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step2/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step2/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step3/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step3/show_ip_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step3/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step3/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step3/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step3/show_ipv6_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step3/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step3/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step3/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step3/show_mpls_table.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step3/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step3/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step4/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step4/show_ip_route.ref.diff index 7545a31b9b..7545a31b9b 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step4/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step4/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step4/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step4/show_ipv6_route.ref.diff index 1de62bb58e..1de62bb58e 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step4/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step4/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step4/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step4/show_mpls_table.ref.diff index b3d5252430..b3d5252430 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step4/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step4/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step5/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step5/show_ip_route.ref.diff index be5d83f463..be5d83f463 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step5/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step5/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step5/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step5/show_ipv6_route.ref.diff index a856019622..a856019622 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step5/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step5/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step5/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step5/show_mpls_table.ref.diff index 74caa8620e..74caa8620e 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step5/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step5/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step6/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step6/show_ip_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step6/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step6/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step6/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step6/show_ipv6_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step6/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step6/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step6/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step6/show_mpls_table.ref.diff index 2883c046fd..2883c046fd 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step6/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step6/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step7/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step7/show_ip_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step7/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step7/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step7/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step7/show_ipv6_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step7/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step7/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step7/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step7/show_mpls_table.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step7/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step7/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step8/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step8/show_ip_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step8/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step8/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step8/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step8/show_ipv6_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step8/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step8/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step8/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step8/show_mpls_table.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step8/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step8/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step9/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step9/show_ip_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step9/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step9/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step9/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step9/show_ipv6_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step9/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step9/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/step9/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt5/step9/show_mpls_table.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/step9/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt5/step9/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt5/zebra.conf b/tests/topotests/isis_tilfa_topo1/rt5/zebra.conf index 4cfea1a59f..4cfea1a59f 100644 --- a/tests/topotests/isis-tilfa-topo1/rt5/zebra.conf +++ b/tests/topotests/isis_tilfa_topo1/rt5/zebra.conf diff --git a/tests/topotests/isis-tilfa-topo1/rt6/isisd.conf b/tests/topotests/isis_tilfa_topo1/rt6/isisd.conf index db47622a10..db47622a10 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/isisd.conf +++ b/tests/topotests/isis_tilfa_topo1/rt6/isisd.conf diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step1/show_ip_route.ref b/tests/topotests/isis_tilfa_topo1/rt6/step1/show_ip_route.ref index b9b43c4139..b9b43c4139 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step1/show_ip_route.ref +++ b/tests/topotests/isis_tilfa_topo1/rt6/step1/show_ip_route.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step1/show_ipv6_route.ref b/tests/topotests/isis_tilfa_topo1/rt6/step1/show_ipv6_route.ref index 1b1942939d..1b1942939d 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step1/show_ipv6_route.ref +++ b/tests/topotests/isis_tilfa_topo1/rt6/step1/show_ipv6_route.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step1/show_mpls_table.ref b/tests/topotests/isis_tilfa_topo1/rt6/step1/show_mpls_table.ref index 5b52a16f48..5b52a16f48 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step1/show_mpls_table.ref +++ b/tests/topotests/isis_tilfa_topo1/rt6/step1/show_mpls_table.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/isis_tilfa_topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref index 734832358f..734832358f 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/isis_tilfa_topo1/rt6/step1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step2/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step2/show_ip_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step2/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step2/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step2/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step2/show_ipv6_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step2/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step2/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step2/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step2/show_mpls_table.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step2/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step2/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step3/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step3/show_ip_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step3/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step3/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step3/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step3/show_ipv6_route.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step3/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step3/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step3/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step3/show_mpls_table.ref.diff index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step3/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step3/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step4/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step4/show_ip_route.ref.diff index 7c2f00419a..7c2f00419a 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step4/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step4/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step4/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step4/show_ipv6_route.ref.diff index 70f872e9de..70f872e9de 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step4/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step4/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step4/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step4/show_mpls_table.ref.diff index c191763a73..c191763a73 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step4/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step4/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step5/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step5/show_ip_route.ref.diff index 9f017d2492..9f017d2492 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step5/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step5/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step5/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step5/show_ipv6_route.ref.diff index 1209504e94..1209504e94 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step5/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step5/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step5/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step5/show_mpls_table.ref.diff index abf7c2a32d..abf7c2a32d 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step5/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step5/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step6/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step6/show_ip_route.ref.diff index f318f95e21..f318f95e21 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step6/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step6/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step6/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step6/show_ipv6_route.ref.diff index 9208491fc8..9208491fc8 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step6/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step6/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step6/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step6/show_mpls_table.ref.diff index aee8969ded..aee8969ded 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step6/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step6/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step7/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step7/show_ip_route.ref.diff index 0e6c3ff5cd..0e6c3ff5cd 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step7/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step7/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step7/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step7/show_ipv6_route.ref.diff index 2fe46c8265..2fe46c8265 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step7/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step7/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step7/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step7/show_mpls_table.ref.diff index 179a4f460b..179a4f460b 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step7/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step7/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step8/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step8/show_ip_route.ref.diff index 9d5c440a22..9d5c440a22 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step8/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step8/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step8/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step8/show_ipv6_route.ref.diff index 21cab20a47..21cab20a47 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step8/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step8/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step8/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step8/show_mpls_table.ref.diff index 760c5542cb..760c5542cb 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step8/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step8/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step9/show_ip_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step9/show_ip_route.ref.diff index ee296470c0..ee296470c0 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step9/show_ip_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step9/show_ip_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step9/show_ipv6_route.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step9/show_ipv6_route.ref.diff index bebca4dcf1..bebca4dcf1 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step9/show_ipv6_route.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step9/show_ipv6_route.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/step9/show_mpls_table.ref.diff b/tests/topotests/isis_tilfa_topo1/rt6/step9/show_mpls_table.ref.diff index 57347d15be..57347d15be 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/step9/show_mpls_table.ref.diff +++ b/tests/topotests/isis_tilfa_topo1/rt6/step9/show_mpls_table.ref.diff diff --git a/tests/topotests/isis-tilfa-topo1/rt6/zebra.conf b/tests/topotests/isis_tilfa_topo1/rt6/zebra.conf index 6084010a93..6084010a93 100644 --- a/tests/topotests/isis-tilfa-topo1/rt6/zebra.conf +++ b/tests/topotests/isis_tilfa_topo1/rt6/zebra.conf diff --git a/tests/topotests/isis-tilfa-topo1/test_isis_tilfa_topo1.py b/tests/topotests/isis_tilfa_topo1/test_isis_tilfa_topo1.py index 00cb623999..00cb623999 100755 --- a/tests/topotests/isis-tilfa-topo1/test_isis_tilfa_topo1.py +++ b/tests/topotests/isis_tilfa_topo1/test_isis_tilfa_topo1.py diff --git a/tests/topotests/isis-topo1-vrf/__init__.py b/tests/topotests/isis_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-topo1-vrf/__init__.py +++ b/tests/topotests/isis_topo1/__init__.py diff --git a/tests/topotests/isis-topo1/r1/isisd.conf b/tests/topotests/isis_topo1/r1/isisd.conf index 4e3761e5a1..4e3761e5a1 100644 --- a/tests/topotests/isis-topo1/r1/isisd.conf +++ b/tests/topotests/isis_topo1/r1/isisd.conf diff --git a/tests/topotests/isis-topo1/r1/r1_route.json b/tests/topotests/isis_topo1/r1/r1_route.json index f94233a80f..f94233a80f 100644 --- a/tests/topotests/isis-topo1/r1/r1_route.json +++ b/tests/topotests/isis_topo1/r1/r1_route.json diff --git a/tests/topotests/isis-topo1/r1/r1_route6.json b/tests/topotests/isis_topo1/r1/r1_route6.json index bd09839fea..bd09839fea 100644 --- a/tests/topotests/isis-topo1/r1/r1_route6.json +++ b/tests/topotests/isis_topo1/r1/r1_route6.json diff --git a/tests/topotests/isis-topo1/r1/r1_route6_linux.json b/tests/topotests/isis_topo1/r1/r1_route6_linux.json index 139747c1cd..139747c1cd 100644 --- a/tests/topotests/isis-topo1/r1/r1_route6_linux.json +++ b/tests/topotests/isis_topo1/r1/r1_route6_linux.json diff --git a/tests/topotests/isis-topo1/r1/r1_route_linux.json b/tests/topotests/isis_topo1/r1/r1_route_linux.json index 6420dec5d7..6420dec5d7 100644 --- a/tests/topotests/isis-topo1/r1/r1_route_linux.json +++ b/tests/topotests/isis_topo1/r1/r1_route_linux.json diff --git a/tests/topotests/isis-topo1/r1/r1_topology.json b/tests/topotests/isis_topo1/r1/r1_topology.json index 6d2bbb80c9..337d6bf5ef 100644 --- a/tests/topotests/isis-topo1/r1/r1_topology.json +++ b/tests/topotests/isis_topo1/r1/r1_topology.json @@ -18,9 +18,9 @@ "vertex": "r1" }, { - "metric": "internal", - "parent": "0", - "type": "IP", + "metric": "0", + "parent": "r1(4)", + "type": "IP internal", "vertex": "10.0.20.0/24" }, { @@ -32,27 +32,27 @@ "vertex": "r3" }, { - "interface": "r3", - "metric": "TE", - "next-hop": "10", - "parent": "r1-eth0", - "type": "IP", + "interface": "r1-eth0", + "metric": "10", + "next-hop": "r3", + "parent": "r3(4)", + "type": "IP TE", "vertex": "10.0.10.0/24" }, { - "interface": "r3", - "metric": "TE", - "next-hop": "10", - "parent": "r1-eth0", - "type": "IP", + "interface": "r1-eth0", + "metric": "10", + "next-hop": "r3", + "parent": "r3(4)", + "type": "IP TE", "vertex": "10.0.20.0/24" }, { - "interface": "r3", - "metric": "TE", - "next-hop": "10", - "parent": "r1-eth0", - "type": "IP", + "interface": "r1-eth0", + "metric": "10", + "next-hop": "r3", + "parent": "r3(4)", + "type": "IP TE", "vertex": "10.254.0.3/32" } ], @@ -61,9 +61,9 @@ "vertex": "r1" }, { - "metric": "internal", - "parent": "0", - "type": "IP6", + "metric": "0", + "parent": "r1(4)", + "type": "IP6 internal", "vertex": "2001:db8:1:1::/64" }, { @@ -75,17 +75,19 @@ "vertex": "r3" }, { - "interface": "r3", - "next-hop": "10", - "parent": "r1-eth0", - "type": "IP6", + "metric": "10", + "interface": "r1-eth0", + "next-hop": "r3", + "parent": "r3(4)", + "type": "IP6 internal", "vertex": "2001:db8:2:1::/64" }, { - "interface": "r3", - "next-hop": "10", - "parent": "r1-eth0", - "type": "IP6", + "metric": "10", + "interface": "r1-eth0", + "next-hop": "r3", + "parent": "r3(4)", + "type": "IP6 internal", "vertex": "2001:db8:f::3/128" } ] diff --git a/tests/topotests/isis-topo1/r1/zebra.conf b/tests/topotests/isis_topo1/r1/zebra.conf index 23cf6252a6..23cf6252a6 100644 --- a/tests/topotests/isis-topo1/r1/zebra.conf +++ b/tests/topotests/isis_topo1/r1/zebra.conf diff --git a/tests/topotests/isis-topo1/r2/isisd.conf b/tests/topotests/isis_topo1/r2/isisd.conf index 14db0940ec..14db0940ec 100644 --- a/tests/topotests/isis-topo1/r2/isisd.conf +++ b/tests/topotests/isis_topo1/r2/isisd.conf diff --git a/tests/topotests/isis-topo1/r2/r2_route.json b/tests/topotests/isis_topo1/r2/r2_route.json index aab651eff0..aab651eff0 100644 --- a/tests/topotests/isis-topo1/r2/r2_route.json +++ b/tests/topotests/isis_topo1/r2/r2_route.json diff --git a/tests/topotests/isis-topo1/r2/r2_route6.json b/tests/topotests/isis_topo1/r2/r2_route6.json index 78c31b3cc5..78c31b3cc5 100644 --- a/tests/topotests/isis-topo1/r2/r2_route6.json +++ b/tests/topotests/isis_topo1/r2/r2_route6.json diff --git a/tests/topotests/isis-topo1/r2/r2_route6_linux.json b/tests/topotests/isis_topo1/r2/r2_route6_linux.json index 50688615a7..50688615a7 100644 --- a/tests/topotests/isis-topo1/r2/r2_route6_linux.json +++ b/tests/topotests/isis_topo1/r2/r2_route6_linux.json diff --git a/tests/topotests/isis-topo1/r2/r2_route_linux.json b/tests/topotests/isis_topo1/r2/r2_route_linux.json index dd3035a1ac..dd3035a1ac 100644 --- a/tests/topotests/isis-topo1/r2/r2_route_linux.json +++ b/tests/topotests/isis_topo1/r2/r2_route_linux.json diff --git a/tests/topotests/isis-topo1/r2/r2_topology.json b/tests/topotests/isis_topo1/r2/r2_topology.json index 396c618caa..de90fb5a32 100644 --- a/tests/topotests/isis-topo1/r2/r2_topology.json +++ b/tests/topotests/isis_topo1/r2/r2_topology.json @@ -18,9 +18,9 @@ "vertex": "r2" }, { - "metric": "internal", - "parent": "0", - "type": "IP", + "metric": "0", + "parent": "r2(4)", + "type": "IP internal", "vertex": "10.0.21.0/24" }, { @@ -32,27 +32,27 @@ "vertex": "r4" }, { - "interface": "r4", - "metric": "TE", - "next-hop": "10", - "parent": "r2-eth0", - "type": "IP", + "interface": "r2-eth0", + "metric": "10", + "next-hop": "r4", + "parent": "r4(4)", + "type": "IP TE", "vertex": "10.0.11.0/24" }, { - "interface": "r4", - "metric": "TE", - "next-hop": "10", - "parent": "r2-eth0", - "type": "IP", + "interface": "r2-eth0", + "metric": "10", + "next-hop": "r4", + "parent": "r4(4)", + "type": "IP TE", "vertex": "10.0.21.0/24" }, { - "interface": "r4", - "metric": "TE", - "next-hop": "10", - "parent": "r2-eth0", - "type": "IP", + "interface": "r2-eth0", + "metric": "10", + "next-hop": "r4", + "parent": "r4(4)", + "type": "IP TE", "vertex": "10.254.0.4/32" } ], @@ -61,9 +61,9 @@ "vertex": "r2" }, { - "metric": "internal", - "parent": "0", - "type": "IP6", + "metric": "0", + "parent": "r2(4)", + "type": "IP6 internal", "vertex": "2001:db8:1:2::/64" }, { @@ -75,17 +75,19 @@ "vertex": "r4" }, { - "interface": "r4", - "next-hop": "10", - "parent": "r2-eth0", - "type": "IP6", + "metric": "10", + "interface": "r2-eth0", + "next-hop": "r4", + "parent": "r4(4)", + "type": "IP6 internal", "vertex": "2001:db8:2:2::/64" }, { - "interface": "r4", - "next-hop": "10", - "parent": "r2-eth0", - "type": "IP6", + "metric": "10", + "interface": "r2-eth0", + "next-hop": "r4", + "parent": "r4(4)", + "type": "IP6 internal", "vertex": "2001:db8:f::4/128" } ] diff --git a/tests/topotests/isis-topo1/r2/zebra.conf b/tests/topotests/isis_topo1/r2/zebra.conf index cf6f8f67d4..cf6f8f67d4 100644 --- a/tests/topotests/isis-topo1/r2/zebra.conf +++ b/tests/topotests/isis_topo1/r2/zebra.conf diff --git a/tests/topotests/isis-topo1/r3/isisd.conf b/tests/topotests/isis_topo1/r3/isisd.conf index 6f36c0fa36..6f36c0fa36 100644 --- a/tests/topotests/isis-topo1/r3/isisd.conf +++ b/tests/topotests/isis_topo1/r3/isisd.conf diff --git a/tests/topotests/isis-topo1/r3/r3_route.json b/tests/topotests/isis_topo1/r3/r3_route.json index 61d05e80bb..61d05e80bb 100644 --- a/tests/topotests/isis-topo1/r3/r3_route.json +++ b/tests/topotests/isis_topo1/r3/r3_route.json diff --git a/tests/topotests/isis-topo1/r3/r3_route6.json b/tests/topotests/isis_topo1/r3/r3_route6.json index 41040240ea..41040240ea 100644 --- a/tests/topotests/isis-topo1/r3/r3_route6.json +++ b/tests/topotests/isis_topo1/r3/r3_route6.json diff --git a/tests/topotests/isis-topo1/r3/r3_route6_linux.json b/tests/topotests/isis_topo1/r3/r3_route6_linux.json index 78993ff420..78993ff420 100644 --- a/tests/topotests/isis-topo1/r3/r3_route6_linux.json +++ b/tests/topotests/isis_topo1/r3/r3_route6_linux.json diff --git a/tests/topotests/isis-topo1/r3/r3_route_linux.json b/tests/topotests/isis_topo1/r3/r3_route_linux.json index 04a2418d00..04a2418d00 100644 --- a/tests/topotests/isis-topo1/r3/r3_route_linux.json +++ b/tests/topotests/isis_topo1/r3/r3_route_linux.json diff --git a/tests/topotests/isis-topo1/r3/r3_topology.json b/tests/topotests/isis_topo1/r3/r3_topology.json index 5ab58c41a6..2d36f9b427 100644 --- a/tests/topotests/isis-topo1/r3/r3_topology.json +++ b/tests/topotests/isis_topo1/r3/r3_topology.json @@ -6,9 +6,9 @@ "vertex": "r3" }, { - "metric": "internal", - "parent": "0", - "type": "IP", + "metric": "0", + "parent": "r3(4)", + "type": "IP internal", "vertex": "10.0.10.0/24" }, { @@ -20,27 +20,27 @@ "vertex": "r5" }, { - "interface": "r5", - "metric": "TE", - "next-hop": "10", - "parent": "r3-eth1", - "type": "IP", + "interface": "r3-eth1", + "metric": "10", + "next-hop": "r5", + "parent": "r5(4)", + "type": "IP TE", "vertex": "10.0.10.0/24" }, { - "interface": "r5", - "metric": "TE", - "next-hop": "10", - "parent": "r3-eth1", - "type": "IP", + "interface": "r3-eth1", + "metric": "10", + "next-hop": "r5", + "parent": "r5(4)", + "type": "IP TE", "vertex": "10.0.11.0/24" }, { - "interface": "r5", - "metric": "TE", - "next-hop": "10", - "parent": "r3-eth1", - "type": "IP", + "interface": "r3-eth1", + "metric": "10", + "next-hop": "r5", + "parent": "r5(4)", + "type": "IP TE", "vertex": "10.254.0.5/32" }, { @@ -51,19 +51,19 @@ "vertex": "r4" }, { - "interface": "r5", - "metric": "TE", - "next-hop": "20", - "parent": "r3-eth1", - "type": "IP", + "interface": "r3-eth1", + "metric": "20", + "next-hop": "r5", + "parent": "r4(4)", + "type": "IP TE", "vertex": "10.0.21.0/24" }, { - "interface": "r5", - "metric": "TE", - "next-hop": "20", - "parent": "r3-eth1", - "type": "IP", + "interface": "r3-eth1", + "metric": "20", + "next-hop": "r5", + "parent": "r4(4)", + "type": "IP TE", "vertex": "10.254.0.4/32" } ], @@ -72,9 +72,9 @@ "vertex": "r3" }, { - "metric": "internal", - "parent": "0", - "type": "IP6", + "metric": "0", + "parent": "r3(4)", + "type": "IP6 internal", "vertex": "2001:db8:2:1::/64" }, { @@ -86,17 +86,19 @@ "vertex": "r5" }, { - "interface": "r5", - "next-hop": "10", - "parent": "r3-eth1", - "type": "IP6", + "metric": "10", + "interface": "r3-eth1", + "next-hop": "r5", + "parent": "r5(4)", + "type": "IP6 internal", "vertex": "2001:db8:2:2::/64" }, { - "interface": "r5", - "next-hop": "10", - "parent": "r3-eth1", - "type": "IP6", + "metric": "10", + "interface": "r3-eth1", + "next-hop": "r5", + "parent": "r5(4)", + "type": "IP6 internal", "vertex": "2001:db8:f::5/128" }, { @@ -107,17 +109,19 @@ "vertex": "r4" }, { - "interface": "r5", - "next-hop": "20", - "parent": "r3-eth1", - "type": "IP6", + "metric": "20", + "interface": "r3-eth1", + "next-hop": "r5", + "parent": "r4(4)", + "type": "IP6 internal", "vertex": "2001:db8:1:2::/64" }, { - "interface": "r5", - "next-hop": "20", - "parent": "r3-eth1", - "type": "IP6", + "metric": "20", + "interface": "r3-eth1", + "next-hop": "r5", + "parent": "r4(4)", + "type": "IP6 internal", "vertex": "2001:db8:f::4/128" } ] @@ -128,9 +132,9 @@ "vertex": "r3" }, { - "metric": "internal", - "parent": "0", - "type": "IP", + "metric": "0", + "parent": "r3(4)", + "type": "IP internal", "vertex": "10.0.20.0/24" }, { @@ -142,19 +146,19 @@ "vertex": "r1" }, { - "interface": "r1", - "metric": "TE", - "next-hop": "10", - "parent": "r3-eth0", - "type": "IP", + "interface": "r3-eth0", + "metric": "10", + "next-hop": "r1", + "parent": "r1(4)", + "type": "IP TE", "vertex": "10.0.20.0/24" }, { - "interface": "r1", - "metric": "TE", - "next-hop": "10", - "parent": "r3-eth0", - "type": "IP", + "interface": "r3-eth0", + "metric": "10", + "next-hop": "r1", + "parent": "r1(4)", + "type": "IP TE", "vertex": "10.254.0.1/32" } ], @@ -163,9 +167,9 @@ "vertex": "r3" }, { - "metric": "internal", - "parent": "0", - "type": "IP6", + "metric": "0", + "parent": "r3(4)", + "type": "IP6 internal", "vertex": "2001:db8:1:1::/64" }, { @@ -177,10 +181,11 @@ "vertex": "r1" }, { - "interface": "r1", - "next-hop": "10", - "parent": "r3-eth0", - "type": "IP6", + "metric": "10", + "interface": "r3-eth0", + "next-hop": "r1", + "parent": "r1(4)", + "type": "IP6 internal", "vertex": "2001:db8:f::1/128" } ] diff --git a/tests/topotests/isis-topo1/r3/zebra.conf b/tests/topotests/isis_topo1/r3/zebra.conf index 1e4c0d752e..1e4c0d752e 100644 --- a/tests/topotests/isis-topo1/r3/zebra.conf +++ b/tests/topotests/isis_topo1/r3/zebra.conf diff --git a/tests/topotests/isis-topo1/r4/isisd.conf b/tests/topotests/isis_topo1/r4/isisd.conf index 502e035f50..502e035f50 100644 --- a/tests/topotests/isis-topo1/r4/isisd.conf +++ b/tests/topotests/isis_topo1/r4/isisd.conf diff --git a/tests/topotests/isis-topo1/r4/r4_route.json b/tests/topotests/isis_topo1/r4/r4_route.json index 79361af4b5..79361af4b5 100644 --- a/tests/topotests/isis-topo1/r4/r4_route.json +++ b/tests/topotests/isis_topo1/r4/r4_route.json diff --git a/tests/topotests/isis-topo1/r4/r4_route6.json b/tests/topotests/isis_topo1/r4/r4_route6.json index c0ace9a193..c0ace9a193 100644 --- a/tests/topotests/isis-topo1/r4/r4_route6.json +++ b/tests/topotests/isis_topo1/r4/r4_route6.json diff --git a/tests/topotests/isis-topo1/r4/r4_route6_linux.json b/tests/topotests/isis_topo1/r4/r4_route6_linux.json index 32ea366396..32ea366396 100644 --- a/tests/topotests/isis-topo1/r4/r4_route6_linux.json +++ b/tests/topotests/isis_topo1/r4/r4_route6_linux.json diff --git a/tests/topotests/isis-topo1/r4/r4_route_linux.json b/tests/topotests/isis_topo1/r4/r4_route_linux.json index 5d6553f70d..5d6553f70d 100644 --- a/tests/topotests/isis-topo1/r4/r4_route_linux.json +++ b/tests/topotests/isis_topo1/r4/r4_route_linux.json diff --git a/tests/topotests/isis-topo1/r4/r4_topology.json b/tests/topotests/isis_topo1/r4/r4_topology.json index ae74a60948..e7d7841912 100644 --- a/tests/topotests/isis-topo1/r4/r4_topology.json +++ b/tests/topotests/isis_topo1/r4/r4_topology.json @@ -6,9 +6,9 @@ "vertex": "r4" }, { - "metric": "internal", - "parent": "0", - "type": "IP", + "metric": "0", + "parent": "r4(4)", + "type": "IP internal", "vertex": "10.0.11.0/24" }, { @@ -20,27 +20,27 @@ "vertex": "r5" }, { - "interface": "r5", - "metric": "TE", - "next-hop": "10", - "parent": "r4-eth1", - "type": "IP", + "interface": "r4-eth1", + "metric": "10", + "next-hop": "r5", + "parent": "r5(4)", + "type": "IP TE", "vertex": "10.0.10.0/24" }, { - "interface": "r5", - "metric": "TE", - "next-hop": "10", - "parent": "r4-eth1", - "type": "IP", + "interface": "r4-eth1", + "metric": "10", + "next-hop": "r5", + "parent": "r5(4)", + "type": "IP TE", "vertex": "10.0.11.0/24" }, { - "interface": "r5", - "metric": "TE", - "next-hop": "10", - "parent": "r4-eth1", - "type": "IP", + "interface": "r4-eth1", + "metric": "10", + "next-hop": "r5", + "parent": "r5(4)", + "type": "IP TE", "vertex": "10.254.0.5/32" }, { @@ -51,19 +51,19 @@ "vertex": "r3" }, { - "interface": "r5", - "metric": "TE", - "next-hop": "20", - "parent": "r4-eth1", - "type": "IP", + "interface": "r4-eth1", + "metric": "20", + "next-hop": "r5", + "parent": "r3(4)", + "type": "IP TE", "vertex": "10.0.20.0/24" }, { - "interface": "r5", - "metric": "TE", - "next-hop": "20", - "parent": "r4-eth1", - "type": "IP", + "interface": "r4-eth1", + "metric": "20", + "next-hop": "r5", + "parent": "r3(4)", + "type": "IP TE", "vertex": "10.254.0.3/32" } ], @@ -72,9 +72,9 @@ "vertex": "r4" }, { - "metric": "internal", - "parent": "0", - "type": "IP6", + "metric": "0", + "parent": "r4(4)", + "type": "IP6 internal", "vertex": "2001:db8:2:2::/64" }, { @@ -86,17 +86,19 @@ "vertex": "r5" }, { - "interface": "r5", - "next-hop": "10", - "parent": "r4-eth1", - "type": "IP6", + "metric": "10", + "interface": "r4-eth1", + "next-hop": "r5", + "parent": "r5(4)", + "type": "IP6 internal", "vertex": "2001:db8:2:1::/64" }, { - "interface": "r5", - "next-hop": "10", - "parent": "r4-eth1", - "type": "IP6", + "metric": "10", + "interface": "r4-eth1", + "next-hop": "r5", + "parent": "r5(4)", + "type": "IP6 internal", "vertex": "2001:db8:f::5/128" }, { @@ -107,17 +109,19 @@ "vertex": "r3" }, { - "interface": "r5", - "next-hop": "20", - "parent": "r4-eth1", - "type": "IP6", + "metric": "20", + "interface": "r4-eth1", + "next-hop": "r5", + "parent": "r3(4)", + "type": "IP6 internal", "vertex": "2001:db8:1:1::/64" }, { - "interface": "r5", - "next-hop": "20", - "parent": "r4-eth1", - "type": "IP6", + "metric": "20", + "interface": "r4-eth1", + "next-hop": "r5", + "parent": "r3(4)", + "type": "IP6 internal", "vertex": "2001:db8:f::3/128" } ] @@ -128,9 +132,9 @@ "vertex": "r4" }, { - "metric": "internal", - "parent": "0", - "type": "IP", + "metric": "0", + "parent": "r4(4)", + "type": "IP internal", "vertex": "10.0.21.0/24" }, { @@ -142,19 +146,19 @@ "vertex": "r2" }, { - "interface": "r2", - "metric": "TE", - "next-hop": "10", - "parent": "r4-eth0", - "type": "IP", + "interface": "r4-eth0", + "metric": "10", + "next-hop": "r2", + "parent": "r2(4)", + "type": "IP TE", "vertex": "10.0.21.0/24" }, { - "interface": "r2", - "metric": "TE", - "next-hop": "10", - "parent": "r4-eth0", - "type": "IP", + "interface": "r4-eth0", + "metric": "10", + "next-hop": "r2", + "parent": "r2(4)", + "type": "IP TE", "vertex": "10.254.0.2/32" } ], @@ -163,9 +167,9 @@ "vertex": "r4" }, { - "metric": "internal", - "parent": "0", - "type": "IP6", + "metric": "0", + "parent": "r4(4)", + "type": "IP6 internal", "vertex": "2001:db8:1:2::/64" }, { @@ -177,10 +181,11 @@ "vertex": "r2" }, { - "interface": "r2", - "next-hop": "10", - "parent": "r4-eth0", - "type": "IP6", + "metric": "10", + "interface": "r4-eth0", + "next-hop": "r2", + "parent": "r2(4)", + "type": "IP6 internal", "vertex": "2001:db8:f::2/128" } ] diff --git a/tests/topotests/isis-topo1/r4/zebra.conf b/tests/topotests/isis_topo1/r4/zebra.conf index 5ca9a3db72..5ca9a3db72 100644 --- a/tests/topotests/isis-topo1/r4/zebra.conf +++ b/tests/topotests/isis_topo1/r4/zebra.conf diff --git a/tests/topotests/isis-topo1/r5/isisd.conf b/tests/topotests/isis_topo1/r5/isisd.conf index 42493a4991..42493a4991 100644 --- a/tests/topotests/isis-topo1/r5/isisd.conf +++ b/tests/topotests/isis_topo1/r5/isisd.conf diff --git a/tests/topotests/isis-topo1/r5/r5_route.json b/tests/topotests/isis_topo1/r5/r5_route.json index cca844b27c..cca844b27c 100644 --- a/tests/topotests/isis-topo1/r5/r5_route.json +++ b/tests/topotests/isis_topo1/r5/r5_route.json diff --git a/tests/topotests/isis-topo1/r5/r5_route6.json b/tests/topotests/isis_topo1/r5/r5_route6.json index b9468764d4..b9468764d4 100644 --- a/tests/topotests/isis-topo1/r5/r5_route6.json +++ b/tests/topotests/isis_topo1/r5/r5_route6.json diff --git a/tests/topotests/isis-topo1/r5/r5_route6_linux.json b/tests/topotests/isis_topo1/r5/r5_route6_linux.json index a7343b5330..a7343b5330 100644 --- a/tests/topotests/isis-topo1/r5/r5_route6_linux.json +++ b/tests/topotests/isis_topo1/r5/r5_route6_linux.json diff --git a/tests/topotests/isis-topo1/r5/r5_route_linux.json b/tests/topotests/isis_topo1/r5/r5_route_linux.json index b809896468..b809896468 100644 --- a/tests/topotests/isis-topo1/r5/r5_route_linux.json +++ b/tests/topotests/isis_topo1/r5/r5_route_linux.json diff --git a/tests/topotests/isis_topo1/r5/r5_topology.json b/tests/topotests/isis_topo1/r5/r5_topology.json new file mode 100644 index 0000000000..3d887b7cea --- /dev/null +++ b/tests/topotests/isis_topo1/r5/r5_topology.json @@ -0,0 +1,156 @@ +{ + "1": { + "level-1": { + "ipv4": [ + { + "vertex": "r5" + }, + { + "metric": "0", + "parent": "r5(4)", + "type": "IP internal", + "vertex": "10.0.10.0/24" + }, + { + "metric": "0", + "parent": "r5(4)", + "type": "IP internal", + "vertex": "10.0.11.0/24" + }, + { + "interface": "r5-eth0", + "metric": "10", + "next-hop": "r3", + "parent": "r5(4)", + "type": "TE-IS", + "vertex": "r3" + }, + { + "interface": "r5-eth1", + "metric": "10", + "next-hop": "r4", + "parent": "r5(4)", + "type": "TE-IS", + "vertex": "r4" + }, + { + "interface": "r5-eth0", + "metric": "10", + "next-hop": "r3", + "parent": "r3(4)", + "type": "IP TE", + "vertex": "10.0.10.0/24" + }, + { + "interface": "r5-eth0", + "metric": "10", + "next-hop": "r3", + "parent": "r3(4)", + "type": "IP TE", + "vertex": "10.0.20.0/24" + }, + { + "interface": "r5-eth0", + "metric": "10", + "next-hop": "r3", + "parent": "r3(4)", + "type": "IP TE", + "vertex": "10.254.0.3/32" + }, + { + "interface": "r5-eth1", + "metric": "10", + "next-hop": "r4", + "parent": "r4(4)", + "type": "IP TE", + "vertex": "10.0.11.0/24" + }, + { + "interface": "r5-eth1", + "metric": "10", + "next-hop": "r4", + "parent": "r4(4)", + "type": "IP TE", + "vertex": "10.0.21.0/24" + }, + { + "interface": "r5-eth1", + "metric": "10", + "next-hop": "r4", + "parent": "r4(4)", + "type": "IP TE", + "vertex": "10.254.0.4/32" + } + ], + "ipv6": [ + { + "vertex": "r5" + }, + { + "metric": "0", + "parent": "r5(4)", + "type": "IP6 internal", + "vertex": "2001:db8:2:1::/64" + }, + { + "metric": "0", + "parent": "r5(4)", + "type": "IP6 internal", + "vertex": "2001:db8:2:2::/64" + }, + { + "interface": "r5-eth0", + "metric": "10", + "next-hop": "r3", + "parent": "r5(4)", + "type": "TE-IS", + "vertex": "r3" + }, + { + "interface": "r5-eth1", + "metric": "10", + "next-hop": "r4", + "parent": "r5(4)", + "type": "TE-IS", + "vertex": "r4" + }, + { + "metric": "10", + "interface": "r5-eth0", + "next-hop": "r3", + "parent": "r3(4)", + "type": "IP6 internal", + "vertex": "2001:db8:1:1::/64" + }, + { + "metric": "10", + "interface": "r5-eth0", + "next-hop": "r3", + "parent": "r3(4)", + "type": "IP6 internal", + "vertex": "2001:db8:f::3/128" + }, + { + "metric": "10", + "interface": "r5-eth1", + "next-hop": "r4", + "parent": "r4(4)", + "type": "IP6 internal", + "vertex": "2001:db8:1:2::/64" + }, + { + "metric": "10", + "interface": "r5-eth1", + "next-hop": "r4", + "parent": "r4(4)", + "type": "IP6 internal", + "vertex": "2001:db8:f::4/128" + } + ] + }, + "level-2": { + "ipv4": [], + "ipv6": [] + } + } +} diff --git a/tests/topotests/isis-topo1/r5/zebra.conf b/tests/topotests/isis_topo1/r5/zebra.conf index 48fed69662..48fed69662 100644 --- a/tests/topotests/isis-topo1/r5/zebra.conf +++ b/tests/topotests/isis_topo1/r5/zebra.conf diff --git a/tests/topotests/isis-topo1/test_isis_topo1.dot b/tests/topotests/isis_topo1/test_isis_topo1.dot index 01f9ba780f..01f9ba780f 100644 --- a/tests/topotests/isis-topo1/test_isis_topo1.dot +++ b/tests/topotests/isis_topo1/test_isis_topo1.dot diff --git a/tests/topotests/isis-topo1/test_isis_topo1.jpg b/tests/topotests/isis_topo1/test_isis_topo1.jpg Binary files differindex 4ad730f2a0..4ad730f2a0 100644 --- a/tests/topotests/isis-topo1/test_isis_topo1.jpg +++ b/tests/topotests/isis_topo1/test_isis_topo1.jpg diff --git a/tests/topotests/isis-topo1/test_isis_topo1.py b/tests/topotests/isis_topo1/test_isis_topo1.py index e7618c7bce..083a8b1e8d 100644 --- a/tests/topotests/isis-topo1/test_isis_topo1.py +++ b/tests/topotests/isis_topo1/test_isis_topo1.py @@ -47,6 +47,20 @@ from mininet.topo import Topo pytestmark = [pytest.mark.isisd] +VERTEX_TYPE_LIST = [ + "pseudo_IS", + "pseudo_TE-IS", + "IS", + "TE-IS", + "ES", + "IP internal", + "IP external", + "IP TE", + "IP6 internal", + "IP6 external", + "UNKNOWN", +] + class ISISTopo1(Topo): "Simple two layer ISIS topology" @@ -263,6 +277,7 @@ def parse_topology(lines, level): areas = {} area = None ipv = None + vertex_type_regex = "|".join(VERTEX_TYPE_LIST) for line in lines: area_match = re.match(r"Area (.+):", line) @@ -282,44 +297,57 @@ def parse_topology(lines, level): ipv = "ipv4" continue - item_match = re.match(r"([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+)", line) - if item_match is not None: + item_match = re.match( + r"([^\s]+) ([^\s]+) ([^\s]+) ([^\s]+) ([^\s]+) ([^\s]+)", line + ) + if ( + item_match is not None + and item_match.group(1) == "Vertex" + and item_match.group(2) == "Type" + and item_match.group(3) == "Metric" + and item_match.group(4) == "Next-Hop" + and item_match.group(5) == "Interface" + and item_match.group(6) == "Parent" + ): # Skip header - if ( - item_match.group(1) == "Vertex" - and item_match.group(2) == "Type" - and item_match.group(3) == "Metric" - and item_match.group(4) == "Next-Hop" - and item_match.group(5) == "Interface" - and item_match.group(6) == "Parent" - ): - continue + continue + item_match = re.match( + r"([^\s]+) ({}) ([0]|([1-9][0-9]*)) ([^\s]+) ([^\s]+) ([^\s]+)".format( + vertex_type_regex + ), + line, + ) + if item_match is not None: areas[area][level][ipv].append( { "vertex": item_match.group(1), "type": item_match.group(2), "metric": item_match.group(3), - "next-hop": item_match.group(4), - "interface": item_match.group(5), - "parent": item_match.group(6), + "next-hop": item_match.group(5), + "interface": item_match.group(6), + "parent": item_match.group(7), } ) continue - item_match = re.match(r"([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+)", line) + item_match = re.match( + r"([^\s]+) ({}) ([0]|([1-9][0-9]*)) ([^\s]+)".format(vertex_type_regex), + line, + ) + if item_match is not None: areas[area][level][ipv].append( { "vertex": item_match.group(1), "type": item_match.group(2), "metric": item_match.group(3), - "parent": item_match.group(4), + "parent": item_match.group(5), } ) continue - item_match = re.match(r"([^ ]+)", line) + item_match = re.match(r"([^\s]+)", line) if item_match is not None: areas[area][level][ipv].append({"vertex": item_match.group(1)}) continue diff --git a/tests/topotests/isis-topo1/__init__.py b/tests/topotests/isis_topo1_vrf/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/isis-topo1/__init__.py +++ b/tests/topotests/isis_topo1_vrf/__init__.py diff --git a/tests/topotests/isis-topo1-vrf/r1/isisd.conf b/tests/topotests/isis_topo1_vrf/r1/isisd.conf index 5fb4c14d0b..5fb4c14d0b 100755 --- a/tests/topotests/isis-topo1-vrf/r1/isisd.conf +++ b/tests/topotests/isis_topo1_vrf/r1/isisd.conf diff --git a/tests/topotests/isis-topo1-vrf/r1/r1_route.json b/tests/topotests/isis_topo1_vrf/r1/r1_route.json index f0a3593a4c..f0a3593a4c 100644 --- a/tests/topotests/isis-topo1-vrf/r1/r1_route.json +++ b/tests/topotests/isis_topo1_vrf/r1/r1_route.json diff --git a/tests/topotests/isis-topo1-vrf/r1/r1_route6.json b/tests/topotests/isis_topo1_vrf/r1/r1_route6.json index 888b9e2c42..888b9e2c42 100644 --- a/tests/topotests/isis-topo1-vrf/r1/r1_route6.json +++ b/tests/topotests/isis_topo1_vrf/r1/r1_route6.json diff --git a/tests/topotests/isis-topo1-vrf/r1/r1_route6_linux.json b/tests/topotests/isis_topo1_vrf/r1/r1_route6_linux.json index d1ace402ba..d1ace402ba 100755 --- a/tests/topotests/isis-topo1-vrf/r1/r1_route6_linux.json +++ b/tests/topotests/isis_topo1_vrf/r1/r1_route6_linux.json diff --git a/tests/topotests/isis-topo1-vrf/r1/r1_route_linux.json b/tests/topotests/isis_topo1_vrf/r1/r1_route_linux.json index 6af22297e9..6af22297e9 100755 --- a/tests/topotests/isis-topo1-vrf/r1/r1_route_linux.json +++ b/tests/topotests/isis_topo1_vrf/r1/r1_route_linux.json diff --git a/tests/topotests/isis-topo1-vrf/r1/r1_topology.json b/tests/topotests/isis_topo1_vrf/r1/r1_topology.json index 1a6fe6d5c6..1a6fe6d5c6 100644 --- a/tests/topotests/isis-topo1-vrf/r1/r1_topology.json +++ b/tests/topotests/isis_topo1_vrf/r1/r1_topology.json diff --git a/tests/topotests/isis-topo1-vrf/r1/zebra.conf b/tests/topotests/isis_topo1_vrf/r1/zebra.conf index fa1c02e5f8..fa1c02e5f8 100755 --- a/tests/topotests/isis-topo1-vrf/r1/zebra.conf +++ b/tests/topotests/isis_topo1_vrf/r1/zebra.conf diff --git a/tests/topotests/isis-topo1-vrf/r2/isisd.conf b/tests/topotests/isis_topo1_vrf/r2/isisd.conf index 0d2bc7ab72..0d2bc7ab72 100755 --- a/tests/topotests/isis-topo1-vrf/r2/isisd.conf +++ b/tests/topotests/isis_topo1_vrf/r2/isisd.conf diff --git a/tests/topotests/isis-topo1-vrf/r2/r2_route.json b/tests/topotests/isis_topo1_vrf/r2/r2_route.json index a26cdfad8e..a26cdfad8e 100644 --- a/tests/topotests/isis-topo1-vrf/r2/r2_route.json +++ b/tests/topotests/isis_topo1_vrf/r2/r2_route.json diff --git a/tests/topotests/isis-topo1-vrf/r2/r2_route6.json b/tests/topotests/isis_topo1_vrf/r2/r2_route6.json index b01789b8d9..b01789b8d9 100644 --- a/tests/topotests/isis-topo1-vrf/r2/r2_route6.json +++ b/tests/topotests/isis_topo1_vrf/r2/r2_route6.json diff --git a/tests/topotests/isis-topo1-vrf/r2/r2_route6_linux.json b/tests/topotests/isis_topo1_vrf/r2/r2_route6_linux.json index 27423e1936..27423e1936 100755 --- a/tests/topotests/isis-topo1-vrf/r2/r2_route6_linux.json +++ b/tests/topotests/isis_topo1_vrf/r2/r2_route6_linux.json diff --git a/tests/topotests/isis-topo1-vrf/r2/r2_route_linux.json b/tests/topotests/isis_topo1_vrf/r2/r2_route_linux.json index 744b0780f3..744b0780f3 100755 --- a/tests/topotests/isis-topo1-vrf/r2/r2_route_linux.json +++ b/tests/topotests/isis_topo1_vrf/r2/r2_route_linux.json diff --git a/tests/topotests/isis-topo1-vrf/r2/r2_topology.json b/tests/topotests/isis_topo1_vrf/r2/r2_topology.json index a77f7977f9..a77f7977f9 100644 --- a/tests/topotests/isis-topo1-vrf/r2/r2_topology.json +++ b/tests/topotests/isis_topo1_vrf/r2/r2_topology.json diff --git a/tests/topotests/isis-topo1-vrf/r2/zebra.conf b/tests/topotests/isis_topo1_vrf/r2/zebra.conf index a62af1749e..a62af1749e 100755 --- a/tests/topotests/isis-topo1-vrf/r2/zebra.conf +++ b/tests/topotests/isis_topo1_vrf/r2/zebra.conf diff --git a/tests/topotests/isis-topo1-vrf/r3/isisd.conf b/tests/topotests/isis_topo1_vrf/r3/isisd.conf index 66092407ab..66092407ab 100755 --- a/tests/topotests/isis-topo1-vrf/r3/isisd.conf +++ b/tests/topotests/isis_topo1_vrf/r3/isisd.conf diff --git a/tests/topotests/isis-topo1-vrf/r3/r3_route.json b/tests/topotests/isis_topo1_vrf/r3/r3_route.json index 9717df5c1a..9717df5c1a 100644 --- a/tests/topotests/isis-topo1-vrf/r3/r3_route.json +++ b/tests/topotests/isis_topo1_vrf/r3/r3_route.json diff --git a/tests/topotests/isis-topo1-vrf/r3/r3_route6.json b/tests/topotests/isis_topo1_vrf/r3/r3_route6.json index 31a1e4620f..31a1e4620f 100644 --- a/tests/topotests/isis-topo1-vrf/r3/r3_route6.json +++ b/tests/topotests/isis_topo1_vrf/r3/r3_route6.json diff --git a/tests/topotests/isis-topo1-vrf/r3/r3_route6_linux.json b/tests/topotests/isis_topo1_vrf/r3/r3_route6_linux.json index bc527d2e1e..bc527d2e1e 100755 --- a/tests/topotests/isis-topo1-vrf/r3/r3_route6_linux.json +++ b/tests/topotests/isis_topo1_vrf/r3/r3_route6_linux.json diff --git a/tests/topotests/isis-topo1-vrf/r3/r3_route_linux.json b/tests/topotests/isis_topo1_vrf/r3/r3_route_linux.json index 515d376475..515d376475 100755 --- a/tests/topotests/isis-topo1-vrf/r3/r3_route_linux.json +++ b/tests/topotests/isis_topo1_vrf/r3/r3_route_linux.json diff --git a/tests/topotests/isis-topo1-vrf/r3/r3_topology.json b/tests/topotests/isis_topo1_vrf/r3/r3_topology.json index 1e5d331965..1e5d331965 100644 --- a/tests/topotests/isis-topo1-vrf/r3/r3_topology.json +++ b/tests/topotests/isis_topo1_vrf/r3/r3_topology.json diff --git a/tests/topotests/isis-topo1-vrf/r3/zebra.conf b/tests/topotests/isis_topo1_vrf/r3/zebra.conf index ac0b810fce..ac0b810fce 100755 --- a/tests/topotests/isis-topo1-vrf/r3/zebra.conf +++ b/tests/topotests/isis_topo1_vrf/r3/zebra.conf diff --git a/tests/topotests/isis-topo1-vrf/r4/isisd.conf b/tests/topotests/isis_topo1_vrf/r4/isisd.conf index 05815e8418..05815e8418 100755 --- a/tests/topotests/isis-topo1-vrf/r4/isisd.conf +++ b/tests/topotests/isis_topo1_vrf/r4/isisd.conf diff --git a/tests/topotests/isis-topo1-vrf/r4/r4_route.json b/tests/topotests/isis_topo1_vrf/r4/r4_route.json index 6cb79b0301..6cb79b0301 100644 --- a/tests/topotests/isis-topo1-vrf/r4/r4_route.json +++ b/tests/topotests/isis_topo1_vrf/r4/r4_route.json diff --git a/tests/topotests/isis-topo1-vrf/r4/r4_route6.json b/tests/topotests/isis_topo1_vrf/r4/r4_route6.json index 88a91749c2..88a91749c2 100644 --- a/tests/topotests/isis-topo1-vrf/r4/r4_route6.json +++ b/tests/topotests/isis_topo1_vrf/r4/r4_route6.json diff --git a/tests/topotests/isis-topo1-vrf/r4/r4_route6_linux.json b/tests/topotests/isis_topo1_vrf/r4/r4_route6_linux.json index b1cd5b9db9..b1cd5b9db9 100755 --- a/tests/topotests/isis-topo1-vrf/r4/r4_route6_linux.json +++ b/tests/topotests/isis_topo1_vrf/r4/r4_route6_linux.json diff --git a/tests/topotests/isis-topo1-vrf/r4/r4_route_linux.json b/tests/topotests/isis_topo1_vrf/r4/r4_route_linux.json index 3198b85789..3198b85789 100755 --- a/tests/topotests/isis-topo1-vrf/r4/r4_route_linux.json +++ b/tests/topotests/isis_topo1_vrf/r4/r4_route_linux.json diff --git a/tests/topotests/isis-topo1-vrf/r4/r4_topology.json b/tests/topotests/isis_topo1_vrf/r4/r4_topology.json index 34f5ac9ca4..34f5ac9ca4 100644 --- a/tests/topotests/isis-topo1-vrf/r4/r4_topology.json +++ b/tests/topotests/isis_topo1_vrf/r4/r4_topology.json diff --git a/tests/topotests/isis-topo1-vrf/r4/zebra.conf b/tests/topotests/isis_topo1_vrf/r4/zebra.conf index 9c8941f7a5..9c8941f7a5 100755 --- a/tests/topotests/isis-topo1-vrf/r4/zebra.conf +++ b/tests/topotests/isis_topo1_vrf/r4/zebra.conf diff --git a/tests/topotests/isis-topo1-vrf/r5/isisd.conf b/tests/topotests/isis_topo1_vrf/r5/isisd.conf index f663c33fe9..f663c33fe9 100755 --- a/tests/topotests/isis-topo1-vrf/r5/isisd.conf +++ b/tests/topotests/isis_topo1_vrf/r5/isisd.conf diff --git a/tests/topotests/isis-topo1-vrf/r5/r5_route.json b/tests/topotests/isis_topo1_vrf/r5/r5_route.json index 5efa36bce6..5efa36bce6 100644 --- a/tests/topotests/isis-topo1-vrf/r5/r5_route.json +++ b/tests/topotests/isis_topo1_vrf/r5/r5_route.json diff --git a/tests/topotests/isis-topo1-vrf/r5/r5_route6.json b/tests/topotests/isis_topo1_vrf/r5/r5_route6.json index 5e8f6364af..5e8f6364af 100644 --- a/tests/topotests/isis-topo1-vrf/r5/r5_route6.json +++ b/tests/topotests/isis_topo1_vrf/r5/r5_route6.json diff --git a/tests/topotests/isis-topo1-vrf/r5/r5_route6_linux.json b/tests/topotests/isis_topo1_vrf/r5/r5_route6_linux.json index 3db3c93ea6..3db3c93ea6 100755 --- a/tests/topotests/isis-topo1-vrf/r5/r5_route6_linux.json +++ b/tests/topotests/isis_topo1_vrf/r5/r5_route6_linux.json diff --git a/tests/topotests/isis-topo1-vrf/r5/r5_route_linux.json b/tests/topotests/isis_topo1_vrf/r5/r5_route_linux.json index 6a38ba864a..6a38ba864a 100755 --- a/tests/topotests/isis-topo1-vrf/r5/r5_route_linux.json +++ b/tests/topotests/isis_topo1_vrf/r5/r5_route_linux.json diff --git a/tests/topotests/isis-topo1-vrf/r5/r5_topology.json b/tests/topotests/isis_topo1_vrf/r5/r5_topology.json index ace56536e9..ace56536e9 100644 --- a/tests/topotests/isis-topo1-vrf/r5/r5_topology.json +++ b/tests/topotests/isis_topo1_vrf/r5/r5_topology.json diff --git a/tests/topotests/isis-topo1-vrf/r5/zebra.conf b/tests/topotests/isis_topo1_vrf/r5/zebra.conf index c6bc6302fc..c6bc6302fc 100755 --- a/tests/topotests/isis-topo1-vrf/r5/zebra.conf +++ b/tests/topotests/isis_topo1_vrf/r5/zebra.conf diff --git a/tests/topotests/isis-topo1-vrf/test_isis_topo1_vrf.dot b/tests/topotests/isis_topo1_vrf/test_isis_topo1_vrf.dot index 01f9ba780f..01f9ba780f 100755 --- a/tests/topotests/isis-topo1-vrf/test_isis_topo1_vrf.dot +++ b/tests/topotests/isis_topo1_vrf/test_isis_topo1_vrf.dot diff --git a/tests/topotests/isis-topo1-vrf/test_isis_topo1_vrf.jpg b/tests/topotests/isis_topo1_vrf/test_isis_topo1_vrf.jpg Binary files differindex 4ad730f2a0..4ad730f2a0 100755 --- a/tests/topotests/isis-topo1-vrf/test_isis_topo1_vrf.jpg +++ b/tests/topotests/isis_topo1_vrf/test_isis_topo1_vrf.jpg diff --git a/tests/topotests/isis-topo1-vrf/test_isis_topo1_vrf.py b/tests/topotests/isis_topo1_vrf/test_isis_topo1_vrf.py index b7fe0c2ddb..b7fe0c2ddb 100644 --- a/tests/topotests/isis-topo1-vrf/test_isis_topo1_vrf.py +++ b/tests/topotests/isis_topo1_vrf/test_isis_topo1_vrf.py diff --git a/tests/topotests/ldp-oc-acl-topo1/r1/ldpd.conf b/tests/topotests/ldp_oc_acl_topo1/r1/ldpd.conf index 85bb970fdf..85bb970fdf 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r1/ldpd.conf +++ b/tests/topotests/ldp_oc_acl_topo1/r1/ldpd.conf diff --git a/tests/topotests/ldp-oc-acl-topo1/r1/ospfd.conf b/tests/topotests/ldp_oc_acl_topo1/r1/ospfd.conf index 877e14ff36..877e14ff36 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r1/ospfd.conf +++ b/tests/topotests/ldp_oc_acl_topo1/r1/ospfd.conf diff --git a/tests/topotests/ldp-oc-acl-topo1/r1/show_ip_ospf_neighbor.json b/tests/topotests/ldp_oc_acl_topo1/r1/show_ip_ospf_neighbor.json index aa3f74fc5f..aa3f74fc5f 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r1/show_ip_ospf_neighbor.json +++ b/tests/topotests/ldp_oc_acl_topo1/r1/show_ip_ospf_neighbor.json diff --git a/tests/topotests/ldp-oc-acl-topo1/r1/show_ip_route.ref b/tests/topotests/ldp_oc_acl_topo1/r1/show_ip_route.ref index 2131668fc3..2131668fc3 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r1/show_ip_route.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r1/show_ip_route.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r1/show_ldp_all_binding.ref b/tests/topotests/ldp_oc_acl_topo1/r1/show_ldp_all_binding.ref index 99a59668f8..99a59668f8 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r1/show_ldp_all_binding.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r1/show_ldp_all_binding.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r1/show_ldp_binding.ref b/tests/topotests/ldp_oc_acl_topo1/r1/show_ldp_binding.ref index ccc8413646..ccc8413646 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r1/show_ldp_binding.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r1/show_ldp_binding.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r1/show_ldp_discovery.ref b/tests/topotests/ldp_oc_acl_topo1/r1/show_ldp_discovery.ref index b349f4418f..b349f4418f 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r1/show_ldp_discovery.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r1/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r1/show_ldp_neighbor.ref b/tests/topotests/ldp_oc_acl_topo1/r1/show_ldp_neighbor.ref index 4bff444a46..4bff444a46 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r1/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r1/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r1/zebra.conf b/tests/topotests/ldp_oc_acl_topo1/r1/zebra.conf index 83aea46e64..83aea46e64 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r1/zebra.conf +++ b/tests/topotests/ldp_oc_acl_topo1/r1/zebra.conf diff --git a/tests/topotests/ldp-oc-acl-topo1/r2/ldpd.conf b/tests/topotests/ldp_oc_acl_topo1/r2/ldpd.conf index e1a552c701..e1a552c701 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r2/ldpd.conf +++ b/tests/topotests/ldp_oc_acl_topo1/r2/ldpd.conf diff --git a/tests/topotests/ldp-oc-acl-topo1/r2/ospfd.conf b/tests/topotests/ldp_oc_acl_topo1/r2/ospfd.conf index 8cba1529e8..8cba1529e8 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r2/ospfd.conf +++ b/tests/topotests/ldp_oc_acl_topo1/r2/ospfd.conf diff --git a/tests/topotests/ldp-oc-acl-topo1/r2/show_ip_ospf_neighbor.json b/tests/topotests/ldp_oc_acl_topo1/r2/show_ip_ospf_neighbor.json index aa68198957..aa68198957 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r2/show_ip_ospf_neighbor.json +++ b/tests/topotests/ldp_oc_acl_topo1/r2/show_ip_ospf_neighbor.json diff --git a/tests/topotests/ldp-oc-acl-topo1/r2/show_ip_route.ref b/tests/topotests/ldp_oc_acl_topo1/r2/show_ip_route.ref index 4b1d31a5d3..4b1d31a5d3 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r2/show_ip_route.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r2/show_ip_route.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r2/show_ldp_all_binding.ref b/tests/topotests/ldp_oc_acl_topo1/r2/show_ldp_all_binding.ref index 95fb847c1e..95fb847c1e 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r2/show_ldp_all_binding.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r2/show_ldp_all_binding.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r2/show_ldp_binding.ref b/tests/topotests/ldp_oc_acl_topo1/r2/show_ldp_binding.ref index ea32de3eda..ea32de3eda 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r2/show_ldp_binding.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r2/show_ldp_binding.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r2/show_ldp_discovery.ref b/tests/topotests/ldp_oc_acl_topo1/r2/show_ldp_discovery.ref index 8129570082..8129570082 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r2/show_ldp_discovery.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r2/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r2/show_ldp_neighbor.ref b/tests/topotests/ldp_oc_acl_topo1/r2/show_ldp_neighbor.ref index eed35289ea..eed35289ea 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r2/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r2/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r2/zebra.conf b/tests/topotests/ldp_oc_acl_topo1/r2/zebra.conf index 1f1e3e391a..1f1e3e391a 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r2/zebra.conf +++ b/tests/topotests/ldp_oc_acl_topo1/r2/zebra.conf diff --git a/tests/topotests/ldp-oc-acl-topo1/r3/ldpd.conf b/tests/topotests/ldp_oc_acl_topo1/r3/ldpd.conf index 4e66b140ac..4e66b140ac 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r3/ldpd.conf +++ b/tests/topotests/ldp_oc_acl_topo1/r3/ldpd.conf diff --git a/tests/topotests/ldp-oc-acl-topo1/r3/ospfd.conf b/tests/topotests/ldp_oc_acl_topo1/r3/ospfd.conf index 0d3a74c4ac..0d3a74c4ac 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r3/ospfd.conf +++ b/tests/topotests/ldp_oc_acl_topo1/r3/ospfd.conf diff --git a/tests/topotests/ldp-oc-acl-topo1/r3/show_ip_ospf_neighbor.json b/tests/topotests/ldp_oc_acl_topo1/r3/show_ip_ospf_neighbor.json index 905774fc46..905774fc46 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r3/show_ip_ospf_neighbor.json +++ b/tests/topotests/ldp_oc_acl_topo1/r3/show_ip_ospf_neighbor.json diff --git a/tests/topotests/ldp-oc-acl-topo1/r3/show_ip_route.ref b/tests/topotests/ldp_oc_acl_topo1/r3/show_ip_route.ref index 4d115caf3e..4d115caf3e 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r3/show_ip_route.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r3/show_ip_route.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r3/show_ldp_all_binding.ref b/tests/topotests/ldp_oc_acl_topo1/r3/show_ldp_all_binding.ref index 100dd307ea..100dd307ea 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r3/show_ldp_all_binding.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r3/show_ldp_all_binding.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r3/show_ldp_binding.ref b/tests/topotests/ldp_oc_acl_topo1/r3/show_ldp_binding.ref index bb1b2b3023..bb1b2b3023 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r3/show_ldp_binding.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r3/show_ldp_binding.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r3/show_ldp_discovery.ref b/tests/topotests/ldp_oc_acl_topo1/r3/show_ldp_discovery.ref index c3a07e7e38..c3a07e7e38 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r3/show_ldp_discovery.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r3/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r3/show_ldp_neighbor.ref b/tests/topotests/ldp_oc_acl_topo1/r3/show_ldp_neighbor.ref index 4bff444a46..4bff444a46 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r3/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r3/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r3/zebra.conf b/tests/topotests/ldp_oc_acl_topo1/r3/zebra.conf index 234c215ddf..234c215ddf 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r3/zebra.conf +++ b/tests/topotests/ldp_oc_acl_topo1/r3/zebra.conf diff --git a/tests/topotests/ldp-oc-acl-topo1/r4/ldpd.conf b/tests/topotests/ldp_oc_acl_topo1/r4/ldpd.conf index 6b7d28f983..6b7d28f983 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r4/ldpd.conf +++ b/tests/topotests/ldp_oc_acl_topo1/r4/ldpd.conf diff --git a/tests/topotests/ldp-oc-acl-topo1/r4/ospfd.conf b/tests/topotests/ldp_oc_acl_topo1/r4/ospfd.conf index 7bbd228d02..7bbd228d02 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r4/ospfd.conf +++ b/tests/topotests/ldp_oc_acl_topo1/r4/ospfd.conf diff --git a/tests/topotests/ldp-oc-acl-topo1/r4/show_ip_ospf_neighbor.json b/tests/topotests/ldp_oc_acl_topo1/r4/show_ip_ospf_neighbor.json index 67593952ca..67593952ca 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r4/show_ip_ospf_neighbor.json +++ b/tests/topotests/ldp_oc_acl_topo1/r4/show_ip_ospf_neighbor.json diff --git a/tests/topotests/ldp-oc-acl-topo1/r4/show_ip_route.ref b/tests/topotests/ldp_oc_acl_topo1/r4/show_ip_route.ref index 223cbded84..223cbded84 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r4/show_ip_route.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r4/show_ip_route.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r4/show_ldp_all_binding.ref b/tests/topotests/ldp_oc_acl_topo1/r4/show_ldp_all_binding.ref index 2a46c40346..2a46c40346 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r4/show_ldp_all_binding.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r4/show_ldp_all_binding.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r4/show_ldp_binding.ref b/tests/topotests/ldp_oc_acl_topo1/r4/show_ldp_binding.ref index 2a46c40346..2a46c40346 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r4/show_ldp_binding.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r4/show_ldp_binding.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r4/show_ldp_discovery.ref b/tests/topotests/ldp_oc_acl_topo1/r4/show_ldp_discovery.ref index 2c63c08510..2c63c08510 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r4/show_ldp_discovery.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r4/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r4/show_ldp_neighbor.ref b/tests/topotests/ldp_oc_acl_topo1/r4/show_ldp_neighbor.ref index 2c63c08510..2c63c08510 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r4/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_oc_acl_topo1/r4/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-oc-acl-topo1/r4/zebra.conf b/tests/topotests/ldp_oc_acl_topo1/r4/zebra.conf index 7e291053e5..7e291053e5 100644 --- a/tests/topotests/ldp-oc-acl-topo1/r4/zebra.conf +++ b/tests/topotests/ldp_oc_acl_topo1/r4/zebra.conf diff --git a/tests/topotests/ldp-oc-acl-topo1/test_ldp_oc_acl_topo1.dot b/tests/topotests/ldp_oc_acl_topo1/test_ldp_oc_acl_topo1.dot index 62058e3cb1..62058e3cb1 100644 --- a/tests/topotests/ldp-oc-acl-topo1/test_ldp_oc_acl_topo1.dot +++ b/tests/topotests/ldp_oc_acl_topo1/test_ldp_oc_acl_topo1.dot diff --git a/tests/topotests/ldp-oc-acl-topo1/test_ldp_oc_acl_topo1.py b/tests/topotests/ldp_oc_acl_topo1/test_ldp_oc_acl_topo1.py index 9aa4024598..9aa4024598 100644 --- a/tests/topotests/ldp-oc-acl-topo1/test_ldp_oc_acl_topo1.py +++ b/tests/topotests/ldp_oc_acl_topo1/test_ldp_oc_acl_topo1.py diff --git a/tests/topotests/ldp-oc-topo1/r1/ldpd.conf b/tests/topotests/ldp_oc_topo1/r1/ldpd.conf index 2a8e023832..2a8e023832 100644 --- a/tests/topotests/ldp-oc-topo1/r1/ldpd.conf +++ b/tests/topotests/ldp_oc_topo1/r1/ldpd.conf diff --git a/tests/topotests/ldp-oc-topo1/r1/ospfd.conf b/tests/topotests/ldp_oc_topo1/r1/ospfd.conf index 877e14ff36..877e14ff36 100644 --- a/tests/topotests/ldp-oc-topo1/r1/ospfd.conf +++ b/tests/topotests/ldp_oc_topo1/r1/ospfd.conf diff --git a/tests/topotests/ldp-oc-topo1/r1/show_ip_ospf_neighbor.json b/tests/topotests/ldp_oc_topo1/r1/show_ip_ospf_neighbor.json index aa3f74fc5f..aa3f74fc5f 100644 --- a/tests/topotests/ldp-oc-topo1/r1/show_ip_ospf_neighbor.json +++ b/tests/topotests/ldp_oc_topo1/r1/show_ip_ospf_neighbor.json diff --git a/tests/topotests/ldp-oc-topo1/r1/show_ip_route.ref b/tests/topotests/ldp_oc_topo1/r1/show_ip_route.ref index 2131668fc3..2131668fc3 100644 --- a/tests/topotests/ldp-oc-topo1/r1/show_ip_route.ref +++ b/tests/topotests/ldp_oc_topo1/r1/show_ip_route.ref diff --git a/tests/topotests/ldp-oc-topo1/r1/show_ldp_binding.ref b/tests/topotests/ldp_oc_topo1/r1/show_ldp_binding.ref index 99a59668f8..99a59668f8 100644 --- a/tests/topotests/ldp-oc-topo1/r1/show_ldp_binding.ref +++ b/tests/topotests/ldp_oc_topo1/r1/show_ldp_binding.ref diff --git a/tests/topotests/ldp-oc-topo1/r1/show_ldp_discovery.ref b/tests/topotests/ldp_oc_topo1/r1/show_ldp_discovery.ref index b349f4418f..b349f4418f 100644 --- a/tests/topotests/ldp-oc-topo1/r1/show_ldp_discovery.ref +++ b/tests/topotests/ldp_oc_topo1/r1/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-oc-topo1/r1/show_ldp_neighbor.ref b/tests/topotests/ldp_oc_topo1/r1/show_ldp_neighbor.ref index 4bff444a46..4bff444a46 100644 --- a/tests/topotests/ldp-oc-topo1/r1/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_oc_topo1/r1/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-oc-topo1/r1/zebra.conf b/tests/topotests/ldp_oc_topo1/r1/zebra.conf index 83aea46e64..83aea46e64 100644 --- a/tests/topotests/ldp-oc-topo1/r1/zebra.conf +++ b/tests/topotests/ldp_oc_topo1/r1/zebra.conf diff --git a/tests/topotests/ldp-oc-topo1/r2/ldpd.conf b/tests/topotests/ldp_oc_topo1/r2/ldpd.conf index e1a552c701..e1a552c701 100644 --- a/tests/topotests/ldp-oc-topo1/r2/ldpd.conf +++ b/tests/topotests/ldp_oc_topo1/r2/ldpd.conf diff --git a/tests/topotests/ldp-oc-topo1/r2/ospfd.conf b/tests/topotests/ldp_oc_topo1/r2/ospfd.conf index 8cba1529e8..8cba1529e8 100644 --- a/tests/topotests/ldp-oc-topo1/r2/ospfd.conf +++ b/tests/topotests/ldp_oc_topo1/r2/ospfd.conf diff --git a/tests/topotests/ldp-oc-topo1/r2/show_ip_ospf_neighbor.json b/tests/topotests/ldp_oc_topo1/r2/show_ip_ospf_neighbor.json index aa68198957..aa68198957 100644 --- a/tests/topotests/ldp-oc-topo1/r2/show_ip_ospf_neighbor.json +++ b/tests/topotests/ldp_oc_topo1/r2/show_ip_ospf_neighbor.json diff --git a/tests/topotests/ldp-oc-topo1/r2/show_ip_route.ref b/tests/topotests/ldp_oc_topo1/r2/show_ip_route.ref index 4b1d31a5d3..4b1d31a5d3 100644 --- a/tests/topotests/ldp-oc-topo1/r2/show_ip_route.ref +++ b/tests/topotests/ldp_oc_topo1/r2/show_ip_route.ref diff --git a/tests/topotests/ldp-oc-topo1/r2/show_ldp_binding.ref b/tests/topotests/ldp_oc_topo1/r2/show_ldp_binding.ref index 95fb847c1e..95fb847c1e 100644 --- a/tests/topotests/ldp-oc-topo1/r2/show_ldp_binding.ref +++ b/tests/topotests/ldp_oc_topo1/r2/show_ldp_binding.ref diff --git a/tests/topotests/ldp-oc-topo1/r2/show_ldp_discovery.ref b/tests/topotests/ldp_oc_topo1/r2/show_ldp_discovery.ref index 8129570082..8129570082 100644 --- a/tests/topotests/ldp-oc-topo1/r2/show_ldp_discovery.ref +++ b/tests/topotests/ldp_oc_topo1/r2/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-oc-topo1/r2/show_ldp_neighbor.ref b/tests/topotests/ldp_oc_topo1/r2/show_ldp_neighbor.ref index eed35289ea..eed35289ea 100644 --- a/tests/topotests/ldp-oc-topo1/r2/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_oc_topo1/r2/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-oc-topo1/r2/zebra.conf b/tests/topotests/ldp_oc_topo1/r2/zebra.conf index 1f1e3e391a..1f1e3e391a 100644 --- a/tests/topotests/ldp-oc-topo1/r2/zebra.conf +++ b/tests/topotests/ldp_oc_topo1/r2/zebra.conf diff --git a/tests/topotests/ldp-oc-topo1/r3/ldpd.conf b/tests/topotests/ldp_oc_topo1/r3/ldpd.conf index 4e66b140ac..4e66b140ac 100644 --- a/tests/topotests/ldp-oc-topo1/r3/ldpd.conf +++ b/tests/topotests/ldp_oc_topo1/r3/ldpd.conf diff --git a/tests/topotests/ldp-oc-topo1/r3/ospfd.conf b/tests/topotests/ldp_oc_topo1/r3/ospfd.conf index 0d3a74c4ac..0d3a74c4ac 100644 --- a/tests/topotests/ldp-oc-topo1/r3/ospfd.conf +++ b/tests/topotests/ldp_oc_topo1/r3/ospfd.conf diff --git a/tests/topotests/ldp-oc-topo1/r3/show_ip_ospf_neighbor.json b/tests/topotests/ldp_oc_topo1/r3/show_ip_ospf_neighbor.json index 905774fc46..905774fc46 100644 --- a/tests/topotests/ldp-oc-topo1/r3/show_ip_ospf_neighbor.json +++ b/tests/topotests/ldp_oc_topo1/r3/show_ip_ospf_neighbor.json diff --git a/tests/topotests/ldp-oc-topo1/r3/show_ip_route.ref b/tests/topotests/ldp_oc_topo1/r3/show_ip_route.ref index 4d115caf3e..4d115caf3e 100644 --- a/tests/topotests/ldp-oc-topo1/r3/show_ip_route.ref +++ b/tests/topotests/ldp_oc_topo1/r3/show_ip_route.ref diff --git a/tests/topotests/ldp-oc-topo1/r3/show_ldp_binding.ref b/tests/topotests/ldp_oc_topo1/r3/show_ldp_binding.ref index 100dd307ea..100dd307ea 100644 --- a/tests/topotests/ldp-oc-topo1/r3/show_ldp_binding.ref +++ b/tests/topotests/ldp_oc_topo1/r3/show_ldp_binding.ref diff --git a/tests/topotests/ldp-oc-topo1/r3/show_ldp_discovery.ref b/tests/topotests/ldp_oc_topo1/r3/show_ldp_discovery.ref index c3a07e7e38..c3a07e7e38 100644 --- a/tests/topotests/ldp-oc-topo1/r3/show_ldp_discovery.ref +++ b/tests/topotests/ldp_oc_topo1/r3/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-oc-topo1/r3/show_ldp_neighbor.ref b/tests/topotests/ldp_oc_topo1/r3/show_ldp_neighbor.ref index 4bff444a46..4bff444a46 100644 --- a/tests/topotests/ldp-oc-topo1/r3/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_oc_topo1/r3/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-oc-topo1/r3/zebra.conf b/tests/topotests/ldp_oc_topo1/r3/zebra.conf index 234c215ddf..234c215ddf 100644 --- a/tests/topotests/ldp-oc-topo1/r3/zebra.conf +++ b/tests/topotests/ldp_oc_topo1/r3/zebra.conf diff --git a/tests/topotests/ldp-oc-topo1/r4/ldpd.conf b/tests/topotests/ldp_oc_topo1/r4/ldpd.conf index 6b7d28f983..6b7d28f983 100644 --- a/tests/topotests/ldp-oc-topo1/r4/ldpd.conf +++ b/tests/topotests/ldp_oc_topo1/r4/ldpd.conf diff --git a/tests/topotests/ldp-oc-topo1/r4/ospfd.conf b/tests/topotests/ldp_oc_topo1/r4/ospfd.conf index 7bbd228d02..7bbd228d02 100644 --- a/tests/topotests/ldp-oc-topo1/r4/ospfd.conf +++ b/tests/topotests/ldp_oc_topo1/r4/ospfd.conf diff --git a/tests/topotests/ldp-oc-topo1/r4/show_ip_ospf_neighbor.json b/tests/topotests/ldp_oc_topo1/r4/show_ip_ospf_neighbor.json index 67593952ca..67593952ca 100644 --- a/tests/topotests/ldp-oc-topo1/r4/show_ip_ospf_neighbor.json +++ b/tests/topotests/ldp_oc_topo1/r4/show_ip_ospf_neighbor.json diff --git a/tests/topotests/ldp-oc-topo1/r4/show_ip_route.ref b/tests/topotests/ldp_oc_topo1/r4/show_ip_route.ref index 223cbded84..223cbded84 100644 --- a/tests/topotests/ldp-oc-topo1/r4/show_ip_route.ref +++ b/tests/topotests/ldp_oc_topo1/r4/show_ip_route.ref diff --git a/tests/topotests/ldp-oc-topo1/r4/show_ldp_binding.ref b/tests/topotests/ldp_oc_topo1/r4/show_ldp_binding.ref index 2a46c40346..2a46c40346 100644 --- a/tests/topotests/ldp-oc-topo1/r4/show_ldp_binding.ref +++ b/tests/topotests/ldp_oc_topo1/r4/show_ldp_binding.ref diff --git a/tests/topotests/ldp-oc-topo1/r4/show_ldp_discovery.ref b/tests/topotests/ldp_oc_topo1/r4/show_ldp_discovery.ref index 2c63c08510..2c63c08510 100644 --- a/tests/topotests/ldp-oc-topo1/r4/show_ldp_discovery.ref +++ b/tests/topotests/ldp_oc_topo1/r4/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-oc-topo1/r4/show_ldp_neighbor.ref b/tests/topotests/ldp_oc_topo1/r4/show_ldp_neighbor.ref index 2c63c08510..2c63c08510 100644 --- a/tests/topotests/ldp-oc-topo1/r4/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_oc_topo1/r4/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-oc-topo1/r4/zebra.conf b/tests/topotests/ldp_oc_topo1/r4/zebra.conf index 7e291053e5..7e291053e5 100644 --- a/tests/topotests/ldp-oc-topo1/r4/zebra.conf +++ b/tests/topotests/ldp_oc_topo1/r4/zebra.conf diff --git a/tests/topotests/ldp-oc-topo1/test_ldp_oc_topo1.dot b/tests/topotests/ldp_oc_topo1/test_ldp_oc_topo1.dot index 62058e3cb1..62058e3cb1 100644 --- a/tests/topotests/ldp-oc-topo1/test_ldp_oc_topo1.dot +++ b/tests/topotests/ldp_oc_topo1/test_ldp_oc_topo1.dot diff --git a/tests/topotests/ldp-oc-topo1/test_ldp_oc_topo1.py b/tests/topotests/ldp_oc_topo1/test_ldp_oc_topo1.py index aef22c395d..aef22c395d 100644 --- a/tests/topotests/ldp-oc-topo1/test_ldp_oc_topo1.py +++ b/tests/topotests/ldp_oc_topo1/test_ldp_oc_topo1.py diff --git a/tests/topotests/ldp-snmp/ce1/zebra.conf b/tests/topotests/ldp_snmp/ce1/zebra.conf index 6f165e2724..6f165e2724 100644 --- a/tests/topotests/ldp-snmp/ce1/zebra.conf +++ b/tests/topotests/ldp_snmp/ce1/zebra.conf diff --git a/tests/topotests/ldp-snmp/ce2/zebra.conf b/tests/topotests/ldp_snmp/ce2/zebra.conf index ac02d0f9a4..ac02d0f9a4 100644 --- a/tests/topotests/ldp-snmp/ce2/zebra.conf +++ b/tests/topotests/ldp_snmp/ce2/zebra.conf diff --git a/tests/topotests/ldp-snmp/ce3/zebra.conf b/tests/topotests/ldp_snmp/ce3/zebra.conf index c6a5824d15..c6a5824d15 100644 --- a/tests/topotests/ldp-snmp/ce3/zebra.conf +++ b/tests/topotests/ldp_snmp/ce3/zebra.conf diff --git a/tests/topotests/ldp-snmp/r1/isisd.conf b/tests/topotests/ldp_snmp/r1/isisd.conf index da2970d94e..da2970d94e 100644 --- a/tests/topotests/ldp-snmp/r1/isisd.conf +++ b/tests/topotests/ldp_snmp/r1/isisd.conf diff --git a/tests/topotests/ldp-snmp/r1/ldpd.conf b/tests/topotests/ldp_snmp/r1/ldpd.conf index 01fc039b09..01fc039b09 100644 --- a/tests/topotests/ldp-snmp/r1/ldpd.conf +++ b/tests/topotests/ldp_snmp/r1/ldpd.conf diff --git a/tests/topotests/ldp-snmp/r1/show_ip_route.ref b/tests/topotests/ldp_snmp/r1/show_ip_route.ref index b1a55ba103..b1a55ba103 100644 --- a/tests/topotests/ldp-snmp/r1/show_ip_route.ref +++ b/tests/topotests/ldp_snmp/r1/show_ip_route.ref diff --git a/tests/topotests/ldp-snmp/r1/show_isis_interface_detail.ref b/tests/topotests/ldp_snmp/r1/show_isis_interface_detail.ref index d8fb27af8c..d8fb27af8c 100644 --- a/tests/topotests/ldp-snmp/r1/show_isis_interface_detail.ref +++ b/tests/topotests/ldp_snmp/r1/show_isis_interface_detail.ref diff --git a/tests/topotests/ldp-snmp/r1/show_isis_interface_detail_r1_eth1_shutdown.ref b/tests/topotests/ldp_snmp/r1/show_isis_interface_detail_r1_eth1_shutdown.ref index f77d65ebc1..f77d65ebc1 100644 --- a/tests/topotests/ldp-snmp/r1/show_isis_interface_detail_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_snmp/r1/show_isis_interface_detail_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-snmp/r1/show_isis_interface_detail_r2_eth1_shutdown.ref b/tests/topotests/ldp_snmp/r1/show_isis_interface_detail_r2_eth1_shutdown.ref index f77d65ebc1..f77d65ebc1 100644 --- a/tests/topotests/ldp-snmp/r1/show_isis_interface_detail_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_snmp/r1/show_isis_interface_detail_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-snmp/r1/show_isis_ldp_sync.ref b/tests/topotests/ldp_snmp/r1/show_isis_ldp_sync.ref index b699e8c145..b699e8c145 100644 --- a/tests/topotests/ldp-snmp/r1/show_isis_ldp_sync.ref +++ b/tests/topotests/ldp_snmp/r1/show_isis_ldp_sync.ref diff --git a/tests/topotests/ldp-snmp/r1/show_isis_ldp_sync_r1_eth1_shutdown.ref b/tests/topotests/ldp_snmp/r1/show_isis_ldp_sync_r1_eth1_shutdown.ref index c28cd4cc7d..c28cd4cc7d 100644 --- a/tests/topotests/ldp-snmp/r1/show_isis_ldp_sync_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_snmp/r1/show_isis_ldp_sync_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-snmp/r1/show_isis_ldp_sync_r2_eth1_shutdown.ref b/tests/topotests/ldp_snmp/r1/show_isis_ldp_sync_r2_eth1_shutdown.ref index c63bbea77f..c63bbea77f 100644 --- a/tests/topotests/ldp-snmp/r1/show_isis_ldp_sync_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_snmp/r1/show_isis_ldp_sync_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-snmp/r1/show_l2vpn_binding.ref b/tests/topotests/ldp_snmp/r1/show_l2vpn_binding.ref index b3de7e2c66..b3de7e2c66 100644 --- a/tests/topotests/ldp-snmp/r1/show_l2vpn_binding.ref +++ b/tests/topotests/ldp_snmp/r1/show_l2vpn_binding.ref diff --git a/tests/topotests/ldp-snmp/r1/show_l2vpn_vc.ref b/tests/topotests/ldp_snmp/r1/show_l2vpn_vc.ref index 29e9df1089..29e9df1089 100644 --- a/tests/topotests/ldp-snmp/r1/show_l2vpn_vc.ref +++ b/tests/topotests/ldp_snmp/r1/show_l2vpn_vc.ref diff --git a/tests/topotests/ldp-snmp/r1/show_ldp_binding.ref b/tests/topotests/ldp_snmp/r1/show_ldp_binding.ref index b3a12ec53f..b3a12ec53f 100644 --- a/tests/topotests/ldp-snmp/r1/show_ldp_binding.ref +++ b/tests/topotests/ldp_snmp/r1/show_ldp_binding.ref diff --git a/tests/topotests/ldp-snmp/r1/show_ldp_discovery.ref b/tests/topotests/ldp_snmp/r1/show_ldp_discovery.ref index 9301e60c67..9301e60c67 100644 --- a/tests/topotests/ldp-snmp/r1/show_ldp_discovery.ref +++ b/tests/topotests/ldp_snmp/r1/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-snmp/r1/show_ldp_igp_sync.ref b/tests/topotests/ldp_snmp/r1/show_ldp_igp_sync.ref index 54d015fef9..54d015fef9 100644 --- a/tests/topotests/ldp-snmp/r1/show_ldp_igp_sync.ref +++ b/tests/topotests/ldp_snmp/r1/show_ldp_igp_sync.ref diff --git a/tests/topotests/ldp-snmp/r1/show_ldp_igp_sync_r1_eth1_shutdown.ref b/tests/topotests/ldp_snmp/r1/show_ldp_igp_sync_r1_eth1_shutdown.ref index 2232069f68..2232069f68 100644 --- a/tests/topotests/ldp-snmp/r1/show_ldp_igp_sync_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_snmp/r1/show_ldp_igp_sync_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-snmp/r1/show_ldp_neighbor.ref b/tests/topotests/ldp_snmp/r1/show_ldp_neighbor.ref index 40d8ebeb90..40d8ebeb90 100644 --- a/tests/topotests/ldp-snmp/r1/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_snmp/r1/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-snmp/r1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/ldp_snmp/r1/show_yang_interface_isis_adjacencies.ref index 6138d03672..6138d03672 100644 --- a/tests/topotests/ldp-snmp/r1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/ldp_snmp/r1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/ldp-snmp/r1/snmpd.conf b/tests/topotests/ldp_snmp/r1/snmpd.conf index b37911da36..b37911da36 100644 --- a/tests/topotests/ldp-snmp/r1/snmpd.conf +++ b/tests/topotests/ldp_snmp/r1/snmpd.conf diff --git a/tests/topotests/ldp-snmp/r1/zebra.conf b/tests/topotests/ldp_snmp/r1/zebra.conf index ea047355ad..ea047355ad 100644 --- a/tests/topotests/ldp-snmp/r1/zebra.conf +++ b/tests/topotests/ldp_snmp/r1/zebra.conf diff --git a/tests/topotests/ldp-snmp/r2/isisd.conf b/tests/topotests/ldp_snmp/r2/isisd.conf index b29a2b93ee..b29a2b93ee 100644 --- a/tests/topotests/ldp-snmp/r2/isisd.conf +++ b/tests/topotests/ldp_snmp/r2/isisd.conf diff --git a/tests/topotests/ldp-snmp/r2/ldpd.conf b/tests/topotests/ldp_snmp/r2/ldpd.conf index c93e1a6ac5..c93e1a6ac5 100644 --- a/tests/topotests/ldp-snmp/r2/ldpd.conf +++ b/tests/topotests/ldp_snmp/r2/ldpd.conf diff --git a/tests/topotests/ldp-snmp/r2/ospfd.conf b/tests/topotests/ldp_snmp/r2/ospfd.conf index f93f6aed56..f93f6aed56 100644 --- a/tests/topotests/ldp-snmp/r2/ospfd.conf +++ b/tests/topotests/ldp_snmp/r2/ospfd.conf diff --git a/tests/topotests/ldp-snmp/r2/show_ip_route.ref b/tests/topotests/ldp_snmp/r2/show_ip_route.ref index 04f141aba4..04f141aba4 100644 --- a/tests/topotests/ldp-snmp/r2/show_ip_route.ref +++ b/tests/topotests/ldp_snmp/r2/show_ip_route.ref diff --git a/tests/topotests/ldp-snmp/r2/show_isis_interface_detail.ref b/tests/topotests/ldp_snmp/r2/show_isis_interface_detail.ref index 844aa9402a..844aa9402a 100644 --- a/tests/topotests/ldp-snmp/r2/show_isis_interface_detail.ref +++ b/tests/topotests/ldp_snmp/r2/show_isis_interface_detail.ref diff --git a/tests/topotests/ldp-snmp/r2/show_isis_interface_detail_r1_eth1_shutdown.ref b/tests/topotests/ldp_snmp/r2/show_isis_interface_detail_r1_eth1_shutdown.ref index 821ec70ba5..821ec70ba5 100644 --- a/tests/topotests/ldp-snmp/r2/show_isis_interface_detail_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_snmp/r2/show_isis_interface_detail_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-snmp/r2/show_isis_interface_detail_r2_eth1_shutdown.ref b/tests/topotests/ldp_snmp/r2/show_isis_interface_detail_r2_eth1_shutdown.ref index 821ec70ba5..821ec70ba5 100644 --- a/tests/topotests/ldp-snmp/r2/show_isis_interface_detail_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_snmp/r2/show_isis_interface_detail_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-snmp/r2/show_isis_ldp_sync.ref b/tests/topotests/ldp_snmp/r2/show_isis_ldp_sync.ref index 433d89bd16..433d89bd16 100644 --- a/tests/topotests/ldp-snmp/r2/show_isis_ldp_sync.ref +++ b/tests/topotests/ldp_snmp/r2/show_isis_ldp_sync.ref diff --git a/tests/topotests/ldp-snmp/r2/show_isis_ldp_sync_r1_eth1_shutdown.ref b/tests/topotests/ldp_snmp/r2/show_isis_ldp_sync_r1_eth1_shutdown.ref index 2f3eae47c8..2f3eae47c8 100644 --- a/tests/topotests/ldp-snmp/r2/show_isis_ldp_sync_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_snmp/r2/show_isis_ldp_sync_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-snmp/r2/show_isis_ldp_sync_r2_eth1_shutdown.ref b/tests/topotests/ldp_snmp/r2/show_isis_ldp_sync_r2_eth1_shutdown.ref index c3d97a3c73..c3d97a3c73 100644 --- a/tests/topotests/ldp-snmp/r2/show_isis_ldp_sync_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_snmp/r2/show_isis_ldp_sync_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-snmp/r2/show_l2vpn_binding.ref b/tests/topotests/ldp_snmp/r2/show_l2vpn_binding.ref index 42c5a1cbd9..42c5a1cbd9 100644 --- a/tests/topotests/ldp-snmp/r2/show_l2vpn_binding.ref +++ b/tests/topotests/ldp_snmp/r2/show_l2vpn_binding.ref diff --git a/tests/topotests/ldp-snmp/r2/show_l2vpn_vc.ref b/tests/topotests/ldp_snmp/r2/show_l2vpn_vc.ref index 942ed23a1e..942ed23a1e 100644 --- a/tests/topotests/ldp-snmp/r2/show_l2vpn_vc.ref +++ b/tests/topotests/ldp_snmp/r2/show_l2vpn_vc.ref diff --git a/tests/topotests/ldp-snmp/r2/show_ldp_binding.ref b/tests/topotests/ldp_snmp/r2/show_ldp_binding.ref index c641fb47e6..c641fb47e6 100644 --- a/tests/topotests/ldp-snmp/r2/show_ldp_binding.ref +++ b/tests/topotests/ldp_snmp/r2/show_ldp_binding.ref diff --git a/tests/topotests/ldp-snmp/r2/show_ldp_discovery.ref b/tests/topotests/ldp_snmp/r2/show_ldp_discovery.ref index 26801acade..26801acade 100644 --- a/tests/topotests/ldp-snmp/r2/show_ldp_discovery.ref +++ b/tests/topotests/ldp_snmp/r2/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-snmp/r2/show_ldp_igp_sync.ref b/tests/topotests/ldp_snmp/r2/show_ldp_igp_sync.ref index f2b24d7d62..f2b24d7d62 100644 --- a/tests/topotests/ldp-snmp/r2/show_ldp_igp_sync.ref +++ b/tests/topotests/ldp_snmp/r2/show_ldp_igp_sync.ref diff --git a/tests/topotests/ldp-snmp/r2/show_ldp_igp_sync_r1_eth1_shutdown.ref b/tests/topotests/ldp_snmp/r2/show_ldp_igp_sync_r1_eth1_shutdown.ref index b5508dd35c..b5508dd35c 100644 --- a/tests/topotests/ldp-snmp/r2/show_ldp_igp_sync_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_snmp/r2/show_ldp_igp_sync_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-snmp/r2/show_ldp_igp_sync_r2_eth1_shutdown.ref b/tests/topotests/ldp_snmp/r2/show_ldp_igp_sync_r2_eth1_shutdown.ref index f2b24d7d62..f2b24d7d62 100644 --- a/tests/topotests/ldp-snmp/r2/show_ldp_igp_sync_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_snmp/r2/show_ldp_igp_sync_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-snmp/r2/show_ldp_neighbor.ref b/tests/topotests/ldp_snmp/r2/show_ldp_neighbor.ref index eed35289ea..eed35289ea 100644 --- a/tests/topotests/ldp-snmp/r2/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_snmp/r2/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-snmp/r2/show_yang_interface_isis_adjacencies.ref b/tests/topotests/ldp_snmp/r2/show_yang_interface_isis_adjacencies.ref index 4dd6ddd76b..4dd6ddd76b 100644 --- a/tests/topotests/ldp-snmp/r2/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/ldp_snmp/r2/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/ldp-snmp/r2/snmpd.conf b/tests/topotests/ldp_snmp/r2/snmpd.conf index 0f779b8b91..0f779b8b91 100644 --- a/tests/topotests/ldp-snmp/r2/snmpd.conf +++ b/tests/topotests/ldp_snmp/r2/snmpd.conf diff --git a/tests/topotests/ldp-snmp/r2/zebra.conf b/tests/topotests/ldp_snmp/r2/zebra.conf index c244442876..c244442876 100644 --- a/tests/topotests/ldp-snmp/r2/zebra.conf +++ b/tests/topotests/ldp_snmp/r2/zebra.conf diff --git a/tests/topotests/ldp-snmp/r3/isisd.conf b/tests/topotests/ldp_snmp/r3/isisd.conf index 4c8499f23d..4c8499f23d 100644 --- a/tests/topotests/ldp-snmp/r3/isisd.conf +++ b/tests/topotests/ldp_snmp/r3/isisd.conf diff --git a/tests/topotests/ldp-snmp/r3/ldpd.conf b/tests/topotests/ldp_snmp/r3/ldpd.conf index b7eeb258f1..b7eeb258f1 100644 --- a/tests/topotests/ldp-snmp/r3/ldpd.conf +++ b/tests/topotests/ldp_snmp/r3/ldpd.conf diff --git a/tests/topotests/ldp-snmp/r3/show_ip_route.ref b/tests/topotests/ldp_snmp/r3/show_ip_route.ref index 22504046ed..22504046ed 100644 --- a/tests/topotests/ldp-snmp/r3/show_ip_route.ref +++ b/tests/topotests/ldp_snmp/r3/show_ip_route.ref diff --git a/tests/topotests/ldp-snmp/r3/show_isis_interface_detail.ref b/tests/topotests/ldp_snmp/r3/show_isis_interface_detail.ref index e323f61f25..e323f61f25 100644 --- a/tests/topotests/ldp-snmp/r3/show_isis_interface_detail.ref +++ b/tests/topotests/ldp_snmp/r3/show_isis_interface_detail.ref diff --git a/tests/topotests/ldp-snmp/r3/show_isis_interface_detail_r1_eth1_shutdown.ref b/tests/topotests/ldp_snmp/r3/show_isis_interface_detail_r1_eth1_shutdown.ref index e323f61f25..e323f61f25 100644 --- a/tests/topotests/ldp-snmp/r3/show_isis_interface_detail_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_snmp/r3/show_isis_interface_detail_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-snmp/r3/show_isis_interface_detail_r2_eth1_shutdown.ref b/tests/topotests/ldp_snmp/r3/show_isis_interface_detail_r2_eth1_shutdown.ref index e323f61f25..e323f61f25 100644 --- a/tests/topotests/ldp-snmp/r3/show_isis_interface_detail_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_snmp/r3/show_isis_interface_detail_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-snmp/r3/show_isis_ldp_sync.ref b/tests/topotests/ldp_snmp/r3/show_isis_ldp_sync.ref index 9cb70a4758..9cb70a4758 100644 --- a/tests/topotests/ldp-snmp/r3/show_isis_ldp_sync.ref +++ b/tests/topotests/ldp_snmp/r3/show_isis_ldp_sync.ref diff --git a/tests/topotests/ldp-snmp/r3/show_isis_ldp_sync_r1_eth1_shutdown.ref b/tests/topotests/ldp_snmp/r3/show_isis_ldp_sync_r1_eth1_shutdown.ref index 9cb70a4758..9cb70a4758 100644 --- a/tests/topotests/ldp-snmp/r3/show_isis_ldp_sync_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_snmp/r3/show_isis_ldp_sync_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-snmp/r3/show_isis_ldp_sync_r2_eth1_shutdown.ref b/tests/topotests/ldp_snmp/r3/show_isis_ldp_sync_r2_eth1_shutdown.ref index 9cb70a4758..9cb70a4758 100644 --- a/tests/topotests/ldp-snmp/r3/show_isis_ldp_sync_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_snmp/r3/show_isis_ldp_sync_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-snmp/r3/show_l2vpn_binding.ref b/tests/topotests/ldp_snmp/r3/show_l2vpn_binding.ref index 2c63c08510..2c63c08510 100644 --- a/tests/topotests/ldp-snmp/r3/show_l2vpn_binding.ref +++ b/tests/topotests/ldp_snmp/r3/show_l2vpn_binding.ref diff --git a/tests/topotests/ldp-snmp/r3/show_l2vpn_vc.ref b/tests/topotests/ldp_snmp/r3/show_l2vpn_vc.ref index 2c63c08510..2c63c08510 100644 --- a/tests/topotests/ldp-snmp/r3/show_l2vpn_vc.ref +++ b/tests/topotests/ldp_snmp/r3/show_l2vpn_vc.ref diff --git a/tests/topotests/ldp-snmp/r3/show_ldp_binding.ref b/tests/topotests/ldp_snmp/r3/show_ldp_binding.ref index e54bd6e755..e54bd6e755 100644 --- a/tests/topotests/ldp-snmp/r3/show_ldp_binding.ref +++ b/tests/topotests/ldp_snmp/r3/show_ldp_binding.ref diff --git a/tests/topotests/ldp-snmp/r3/show_ldp_discovery.ref b/tests/topotests/ldp_snmp/r3/show_ldp_discovery.ref index 42fa98d4da..42fa98d4da 100644 --- a/tests/topotests/ldp-snmp/r3/show_ldp_discovery.ref +++ b/tests/topotests/ldp_snmp/r3/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-snmp/r3/show_ldp_igp_sync.ref b/tests/topotests/ldp_snmp/r3/show_ldp_igp_sync.ref index 73261830c9..73261830c9 100644 --- a/tests/topotests/ldp-snmp/r3/show_ldp_igp_sync.ref +++ b/tests/topotests/ldp_snmp/r3/show_ldp_igp_sync.ref diff --git a/tests/topotests/ldp-snmp/r3/show_ldp_igp_sync_r1_eth1_shutdown.ref b/tests/topotests/ldp_snmp/r3/show_ldp_igp_sync_r1_eth1_shutdown.ref index 73261830c9..73261830c9 100644 --- a/tests/topotests/ldp-snmp/r3/show_ldp_igp_sync_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_snmp/r3/show_ldp_igp_sync_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-snmp/r3/show_ldp_neighbor.ref b/tests/topotests/ldp_snmp/r3/show_ldp_neighbor.ref index 5c482da697..5c482da697 100644 --- a/tests/topotests/ldp-snmp/r3/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_snmp/r3/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-snmp/r3/show_yang_interface_isis_adjacencies.ref b/tests/topotests/ldp_snmp/r3/show_yang_interface_isis_adjacencies.ref index 0922192361..0922192361 100644 --- a/tests/topotests/ldp-snmp/r3/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/ldp_snmp/r3/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/ldp-snmp/r3/zebra.conf b/tests/topotests/ldp_snmp/r3/zebra.conf index b1919bd296..b1919bd296 100644 --- a/tests/topotests/ldp-snmp/r3/zebra.conf +++ b/tests/topotests/ldp_snmp/r3/zebra.conf diff --git a/tests/topotests/ldp-snmp/test_ldp_snmp_topo1.py b/tests/topotests/ldp_snmp/test_ldp_snmp_topo1.py index f47d906157..f47d906157 100644 --- a/tests/topotests/ldp-snmp/test_ldp_snmp_topo1.py +++ b/tests/topotests/ldp_snmp/test_ldp_snmp_topo1.py diff --git a/tests/topotests/ldp-sync-isis-topo1/ce1/zebra.conf b/tests/topotests/ldp_sync_isis_topo1/ce1/zebra.conf index 6f165e2724..6f165e2724 100644 --- a/tests/topotests/ldp-sync-isis-topo1/ce1/zebra.conf +++ b/tests/topotests/ldp_sync_isis_topo1/ce1/zebra.conf diff --git a/tests/topotests/ldp-sync-isis-topo1/ce2/zebra.conf b/tests/topotests/ldp_sync_isis_topo1/ce2/zebra.conf index ac02d0f9a4..ac02d0f9a4 100644 --- a/tests/topotests/ldp-sync-isis-topo1/ce2/zebra.conf +++ b/tests/topotests/ldp_sync_isis_topo1/ce2/zebra.conf diff --git a/tests/topotests/ldp-sync-isis-topo1/ce3/zebra.conf b/tests/topotests/ldp_sync_isis_topo1/ce3/zebra.conf index c6a5824d15..c6a5824d15 100644 --- a/tests/topotests/ldp-sync-isis-topo1/ce3/zebra.conf +++ b/tests/topotests/ldp_sync_isis_topo1/ce3/zebra.conf diff --git a/tests/topotests/ldp-sync-isis-topo1/r1/isisd.conf b/tests/topotests/ldp_sync_isis_topo1/r1/isisd.conf index da2970d94e..da2970d94e 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r1/isisd.conf +++ b/tests/topotests/ldp_sync_isis_topo1/r1/isisd.conf diff --git a/tests/topotests/ldp-sync-isis-topo1/r1/ldpd.conf b/tests/topotests/ldp_sync_isis_topo1/r1/ldpd.conf index b9c32d3000..b9c32d3000 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r1/ldpd.conf +++ b/tests/topotests/ldp_sync_isis_topo1/r1/ldpd.conf diff --git a/tests/topotests/ldp-sync-isis-topo1/r1/show_ip_route.ref b/tests/topotests/ldp_sync_isis_topo1/r1/show_ip_route.ref index b1a55ba103..b1a55ba103 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r1/show_ip_route.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r1/show_ip_route.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r1/show_isis_interface_detail.ref b/tests/topotests/ldp_sync_isis_topo1/r1/show_isis_interface_detail.ref index d8fb27af8c..d8fb27af8c 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r1/show_isis_interface_detail.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r1/show_isis_interface_detail.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r1/show_isis_interface_detail_r1_eth1_shutdown.ref b/tests/topotests/ldp_sync_isis_topo1/r1/show_isis_interface_detail_r1_eth1_shutdown.ref index f77d65ebc1..f77d65ebc1 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r1/show_isis_interface_detail_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r1/show_isis_interface_detail_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r1/show_isis_interface_detail_r2_eth1_shutdown.ref b/tests/topotests/ldp_sync_isis_topo1/r1/show_isis_interface_detail_r2_eth1_shutdown.ref index f77d65ebc1..f77d65ebc1 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r1/show_isis_interface_detail_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r1/show_isis_interface_detail_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r1/show_isis_ldp_sync.ref b/tests/topotests/ldp_sync_isis_topo1/r1/show_isis_ldp_sync.ref index b699e8c145..b699e8c145 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r1/show_isis_ldp_sync.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r1/show_isis_ldp_sync.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r1/show_isis_ldp_sync_r1_eth1_shutdown.ref b/tests/topotests/ldp_sync_isis_topo1/r1/show_isis_ldp_sync_r1_eth1_shutdown.ref index c28cd4cc7d..c28cd4cc7d 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r1/show_isis_ldp_sync_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r1/show_isis_ldp_sync_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r1/show_isis_ldp_sync_r2_eth1_shutdown.ref b/tests/topotests/ldp_sync_isis_topo1/r1/show_isis_ldp_sync_r2_eth1_shutdown.ref index c63bbea77f..c63bbea77f 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r1/show_isis_ldp_sync_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r1/show_isis_ldp_sync_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r1/show_l2vpn_binding.ref b/tests/topotests/ldp_sync_isis_topo1/r1/show_l2vpn_binding.ref index b3de7e2c66..b3de7e2c66 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r1/show_l2vpn_binding.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r1/show_l2vpn_binding.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r1/show_l2vpn_vc.ref b/tests/topotests/ldp_sync_isis_topo1/r1/show_l2vpn_vc.ref index 29e9df1089..29e9df1089 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r1/show_l2vpn_vc.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r1/show_l2vpn_vc.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r1/show_ldp_binding.ref b/tests/topotests/ldp_sync_isis_topo1/r1/show_ldp_binding.ref index b3a12ec53f..b3a12ec53f 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r1/show_ldp_binding.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r1/show_ldp_binding.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r1/show_ldp_discovery.ref b/tests/topotests/ldp_sync_isis_topo1/r1/show_ldp_discovery.ref index 9301e60c67..9301e60c67 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r1/show_ldp_discovery.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r1/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r1/show_ldp_igp_sync.ref b/tests/topotests/ldp_sync_isis_topo1/r1/show_ldp_igp_sync.ref index 54d015fef9..54d015fef9 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r1/show_ldp_igp_sync.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r1/show_ldp_igp_sync.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r1/show_ldp_igp_sync_r1_eth1_shutdown.ref b/tests/topotests/ldp_sync_isis_topo1/r1/show_ldp_igp_sync_r1_eth1_shutdown.ref index 2232069f68..2232069f68 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r1/show_ldp_igp_sync_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r1/show_ldp_igp_sync_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r1/show_ldp_neighbor.ref b/tests/topotests/ldp_sync_isis_topo1/r1/show_ldp_neighbor.ref index 40d8ebeb90..40d8ebeb90 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r1/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r1/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r1/show_yang_interface_isis_adjacencies.ref b/tests/topotests/ldp_sync_isis_topo1/r1/show_yang_interface_isis_adjacencies.ref index 6138d03672..6138d03672 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r1/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r1/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r1/zebra.conf b/tests/topotests/ldp_sync_isis_topo1/r1/zebra.conf index ea047355ad..ea047355ad 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r1/zebra.conf +++ b/tests/topotests/ldp_sync_isis_topo1/r1/zebra.conf diff --git a/tests/topotests/ldp-sync-isis-topo1/r2/isisd.conf b/tests/topotests/ldp_sync_isis_topo1/r2/isisd.conf index b29a2b93ee..b29a2b93ee 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r2/isisd.conf +++ b/tests/topotests/ldp_sync_isis_topo1/r2/isisd.conf diff --git a/tests/topotests/ldp-sync-isis-topo1/r2/ldpd.conf b/tests/topotests/ldp_sync_isis_topo1/r2/ldpd.conf index 52398b1b72..52398b1b72 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r2/ldpd.conf +++ b/tests/topotests/ldp_sync_isis_topo1/r2/ldpd.conf diff --git a/tests/topotests/ldp-sync-isis-topo1/r2/show_ip_route.ref b/tests/topotests/ldp_sync_isis_topo1/r2/show_ip_route.ref index 04f141aba4..04f141aba4 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r2/show_ip_route.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r2/show_ip_route.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r2/show_isis_interface_detail.ref b/tests/topotests/ldp_sync_isis_topo1/r2/show_isis_interface_detail.ref index 844aa9402a..844aa9402a 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r2/show_isis_interface_detail.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r2/show_isis_interface_detail.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r2/show_isis_interface_detail_r1_eth1_shutdown.ref b/tests/topotests/ldp_sync_isis_topo1/r2/show_isis_interface_detail_r1_eth1_shutdown.ref index 821ec70ba5..821ec70ba5 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r2/show_isis_interface_detail_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r2/show_isis_interface_detail_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r2/show_isis_interface_detail_r2_eth1_shutdown.ref b/tests/topotests/ldp_sync_isis_topo1/r2/show_isis_interface_detail_r2_eth1_shutdown.ref index 821ec70ba5..821ec70ba5 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r2/show_isis_interface_detail_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r2/show_isis_interface_detail_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r2/show_isis_ldp_sync.ref b/tests/topotests/ldp_sync_isis_topo1/r2/show_isis_ldp_sync.ref index 433d89bd16..433d89bd16 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r2/show_isis_ldp_sync.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r2/show_isis_ldp_sync.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r2/show_isis_ldp_sync_r1_eth1_shutdown.ref b/tests/topotests/ldp_sync_isis_topo1/r2/show_isis_ldp_sync_r1_eth1_shutdown.ref index 2f3eae47c8..2f3eae47c8 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r2/show_isis_ldp_sync_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r2/show_isis_ldp_sync_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r2/show_isis_ldp_sync_r2_eth1_shutdown.ref b/tests/topotests/ldp_sync_isis_topo1/r2/show_isis_ldp_sync_r2_eth1_shutdown.ref index c3d97a3c73..c3d97a3c73 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r2/show_isis_ldp_sync_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r2/show_isis_ldp_sync_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r2/show_l2vpn_binding.ref b/tests/topotests/ldp_sync_isis_topo1/r2/show_l2vpn_binding.ref index 42c5a1cbd9..42c5a1cbd9 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r2/show_l2vpn_binding.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r2/show_l2vpn_binding.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r2/show_l2vpn_vc.ref b/tests/topotests/ldp_sync_isis_topo1/r2/show_l2vpn_vc.ref index 942ed23a1e..942ed23a1e 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r2/show_l2vpn_vc.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r2/show_l2vpn_vc.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r2/show_ldp_binding.ref b/tests/topotests/ldp_sync_isis_topo1/r2/show_ldp_binding.ref index c641fb47e6..c641fb47e6 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r2/show_ldp_binding.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r2/show_ldp_binding.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r2/show_ldp_discovery.ref b/tests/topotests/ldp_sync_isis_topo1/r2/show_ldp_discovery.ref index 26801acade..26801acade 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r2/show_ldp_discovery.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r2/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r2/show_ldp_igp_sync.ref b/tests/topotests/ldp_sync_isis_topo1/r2/show_ldp_igp_sync.ref index f2b24d7d62..f2b24d7d62 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r2/show_ldp_igp_sync.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r2/show_ldp_igp_sync.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r2/show_ldp_igp_sync_r1_eth1_shutdown.ref b/tests/topotests/ldp_sync_isis_topo1/r2/show_ldp_igp_sync_r1_eth1_shutdown.ref index b5508dd35c..b5508dd35c 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r2/show_ldp_igp_sync_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r2/show_ldp_igp_sync_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r2/show_ldp_igp_sync_r2_eth1_shutdown.ref b/tests/topotests/ldp_sync_isis_topo1/r2/show_ldp_igp_sync_r2_eth1_shutdown.ref index f2b24d7d62..f2b24d7d62 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r2/show_ldp_igp_sync_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r2/show_ldp_igp_sync_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r2/show_ldp_neighbor.ref b/tests/topotests/ldp_sync_isis_topo1/r2/show_ldp_neighbor.ref index eed35289ea..eed35289ea 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r2/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r2/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r2/show_yang_interface_isis_adjacencies.ref b/tests/topotests/ldp_sync_isis_topo1/r2/show_yang_interface_isis_adjacencies.ref index 4dd6ddd76b..4dd6ddd76b 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r2/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r2/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r2/zebra.conf b/tests/topotests/ldp_sync_isis_topo1/r2/zebra.conf index c244442876..c244442876 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r2/zebra.conf +++ b/tests/topotests/ldp_sync_isis_topo1/r2/zebra.conf diff --git a/tests/topotests/ldp-sync-isis-topo1/r3/isisd.conf b/tests/topotests/ldp_sync_isis_topo1/r3/isisd.conf index 4c8499f23d..4c8499f23d 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r3/isisd.conf +++ b/tests/topotests/ldp_sync_isis_topo1/r3/isisd.conf diff --git a/tests/topotests/ldp-sync-isis-topo1/r3/ldpd.conf b/tests/topotests/ldp_sync_isis_topo1/r3/ldpd.conf index 2935caf13b..2935caf13b 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r3/ldpd.conf +++ b/tests/topotests/ldp_sync_isis_topo1/r3/ldpd.conf diff --git a/tests/topotests/ldp-sync-isis-topo1/r3/show_ip_route.ref b/tests/topotests/ldp_sync_isis_topo1/r3/show_ip_route.ref index 22504046ed..22504046ed 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r3/show_ip_route.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r3/show_ip_route.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r3/show_isis_interface_detail.ref b/tests/topotests/ldp_sync_isis_topo1/r3/show_isis_interface_detail.ref index e323f61f25..e323f61f25 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r3/show_isis_interface_detail.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r3/show_isis_interface_detail.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r3/show_isis_interface_detail_r1_eth1_shutdown.ref b/tests/topotests/ldp_sync_isis_topo1/r3/show_isis_interface_detail_r1_eth1_shutdown.ref index e323f61f25..e323f61f25 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r3/show_isis_interface_detail_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r3/show_isis_interface_detail_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r3/show_isis_interface_detail_r2_eth1_shutdown.ref b/tests/topotests/ldp_sync_isis_topo1/r3/show_isis_interface_detail_r2_eth1_shutdown.ref index e323f61f25..e323f61f25 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r3/show_isis_interface_detail_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r3/show_isis_interface_detail_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r3/show_isis_ldp_sync.ref b/tests/topotests/ldp_sync_isis_topo1/r3/show_isis_ldp_sync.ref index 7180f84d1a..7180f84d1a 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r3/show_isis_ldp_sync.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r3/show_isis_ldp_sync.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r3/show_isis_ldp_sync_r1_eth1_shutdown.ref b/tests/topotests/ldp_sync_isis_topo1/r3/show_isis_ldp_sync_r1_eth1_shutdown.ref index 7180f84d1a..7180f84d1a 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r3/show_isis_ldp_sync_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r3/show_isis_ldp_sync_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r3/show_isis_ldp_sync_r2_eth1_shutdown.ref b/tests/topotests/ldp_sync_isis_topo1/r3/show_isis_ldp_sync_r2_eth1_shutdown.ref index 7180f84d1a..7180f84d1a 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r3/show_isis_ldp_sync_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r3/show_isis_ldp_sync_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r3/show_l2vpn_binding.ref b/tests/topotests/ldp_sync_isis_topo1/r3/show_l2vpn_binding.ref index 2c63c08510..2c63c08510 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r3/show_l2vpn_binding.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r3/show_l2vpn_binding.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r3/show_l2vpn_vc.ref b/tests/topotests/ldp_sync_isis_topo1/r3/show_l2vpn_vc.ref index 2c63c08510..2c63c08510 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r3/show_l2vpn_vc.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r3/show_l2vpn_vc.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r3/show_ldp_binding.ref b/tests/topotests/ldp_sync_isis_topo1/r3/show_ldp_binding.ref index e54bd6e755..e54bd6e755 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r3/show_ldp_binding.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r3/show_ldp_binding.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r3/show_ldp_discovery.ref b/tests/topotests/ldp_sync_isis_topo1/r3/show_ldp_discovery.ref index 42fa98d4da..42fa98d4da 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r3/show_ldp_discovery.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r3/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r3/show_ldp_igp_sync.ref b/tests/topotests/ldp_sync_isis_topo1/r3/show_ldp_igp_sync.ref index 73261830c9..73261830c9 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r3/show_ldp_igp_sync.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r3/show_ldp_igp_sync.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r3/show_ldp_igp_sync_r1_eth1_shutdown.ref b/tests/topotests/ldp_sync_isis_topo1/r3/show_ldp_igp_sync_r1_eth1_shutdown.ref index 73261830c9..73261830c9 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r3/show_ldp_igp_sync_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r3/show_ldp_igp_sync_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r3/show_ldp_neighbor.ref b/tests/topotests/ldp_sync_isis_topo1/r3/show_ldp_neighbor.ref index 5c482da697..5c482da697 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r3/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r3/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r3/show_yang_interface_isis_adjacencies.ref b/tests/topotests/ldp_sync_isis_topo1/r3/show_yang_interface_isis_adjacencies.ref index 0922192361..0922192361 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r3/show_yang_interface_isis_adjacencies.ref +++ b/tests/topotests/ldp_sync_isis_topo1/r3/show_yang_interface_isis_adjacencies.ref diff --git a/tests/topotests/ldp-sync-isis-topo1/r3/zebra.conf b/tests/topotests/ldp_sync_isis_topo1/r3/zebra.conf index b1919bd296..b1919bd296 100644 --- a/tests/topotests/ldp-sync-isis-topo1/r3/zebra.conf +++ b/tests/topotests/ldp_sync_isis_topo1/r3/zebra.conf diff --git a/tests/topotests/ldp-sync-isis-topo1/test_ldp_sync_isis_topo1.dot b/tests/topotests/ldp_sync_isis_topo1/test_ldp_sync_isis_topo1.dot index 4f1bd22f7c..4f1bd22f7c 100644 --- a/tests/topotests/ldp-sync-isis-topo1/test_ldp_sync_isis_topo1.dot +++ b/tests/topotests/ldp_sync_isis_topo1/test_ldp_sync_isis_topo1.dot diff --git a/tests/topotests/ldp-sync-isis-topo1/test_ldp_sync_isis_topo1.py b/tests/topotests/ldp_sync_isis_topo1/test_ldp_sync_isis_topo1.py index 331e6fafd4..331e6fafd4 100644 --- a/tests/topotests/ldp-sync-isis-topo1/test_ldp_sync_isis_topo1.py +++ b/tests/topotests/ldp_sync_isis_topo1/test_ldp_sync_isis_topo1.py diff --git a/tests/topotests/ldp-sync-ospf-topo1/ce1/zebra.conf b/tests/topotests/ldp_sync_ospf_topo1/ce1/zebra.conf index 6f165e2724..6f165e2724 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/ce1/zebra.conf +++ b/tests/topotests/ldp_sync_ospf_topo1/ce1/zebra.conf diff --git a/tests/topotests/ldp-sync-ospf-topo1/ce2/zebra.conf b/tests/topotests/ldp_sync_ospf_topo1/ce2/zebra.conf index ac02d0f9a4..ac02d0f9a4 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/ce2/zebra.conf +++ b/tests/topotests/ldp_sync_ospf_topo1/ce2/zebra.conf diff --git a/tests/topotests/ldp-sync-ospf-topo1/ce3/zebra.conf b/tests/topotests/ldp_sync_ospf_topo1/ce3/zebra.conf index c6a5824d15..c6a5824d15 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/ce3/zebra.conf +++ b/tests/topotests/ldp_sync_ospf_topo1/ce3/zebra.conf diff --git a/tests/topotests/ldp-sync-ospf-topo1/r1/ldpd.conf b/tests/topotests/ldp_sync_ospf_topo1/r1/ldpd.conf index b9c32d3000..b9c32d3000 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r1/ldpd.conf +++ b/tests/topotests/ldp_sync_ospf_topo1/r1/ldpd.conf diff --git a/tests/topotests/ldp-sync-ospf-topo1/r1/ospf-nbrs.txt b/tests/topotests/ldp_sync_ospf_topo1/r1/ospf-nbrs.txt index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r1/ospf-nbrs.txt +++ b/tests/topotests/ldp_sync_ospf_topo1/r1/ospf-nbrs.txt diff --git a/tests/topotests/ldp-sync-ospf-topo1/r1/ospfd.conf b/tests/topotests/ldp_sync_ospf_topo1/r1/ospfd.conf index eefcd1e71c..eefcd1e71c 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r1/ospfd.conf +++ b/tests/topotests/ldp_sync_ospf_topo1/r1/ospfd.conf diff --git a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ip_ospf_interface.ref b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ip_ospf_interface.ref index 8b2884786d..8b2884786d 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ip_ospf_interface.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ip_ospf_interface.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ip_ospf_interface_r1_eth1_shutdown.ref b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ip_ospf_interface_r1_eth1_shutdown.ref index b1a263e422..b1a263e422 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ip_ospf_interface_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ip_ospf_interface_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ip_ospf_interface_r2_eth1_shutdown.ref b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ip_ospf_interface_r2_eth1_shutdown.ref index 0c147338e3..0c147338e3 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ip_ospf_interface_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ip_ospf_interface_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ip_ospf_neighbor.json b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ip_ospf_neighbor.json index 3bfda39071..3bfda39071 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ip_ospf_neighbor.json +++ b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ip_ospf_neighbor.json diff --git a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ip_route.ref b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ip_route.ref index fdb81f212d..fdb81f212d 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ip_route.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ip_route.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r1/show_l2vpn_binding.ref b/tests/topotests/ldp_sync_ospf_topo1/r1/show_l2vpn_binding.ref index b3de7e2c66..b3de7e2c66 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r1/show_l2vpn_binding.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r1/show_l2vpn_binding.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r1/show_l2vpn_vc.ref b/tests/topotests/ldp_sync_ospf_topo1/r1/show_l2vpn_vc.ref index 29e9df1089..29e9df1089 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r1/show_l2vpn_vc.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r1/show_l2vpn_vc.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ldp_binding.ref b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ldp_binding.ref index b3a12ec53f..b3a12ec53f 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ldp_binding.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ldp_binding.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ldp_discovery.ref b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ldp_discovery.ref index 9301e60c67..9301e60c67 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ldp_discovery.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ldp_igp_sync.ref b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ldp_igp_sync.ref index 54d015fef9..54d015fef9 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ldp_igp_sync.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ldp_igp_sync.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ldp_igp_sync_r1_eth1_shutdown.ref b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ldp_igp_sync_r1_eth1_shutdown.ref index 2232069f68..2232069f68 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ldp_igp_sync_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ldp_igp_sync_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ldp_neighbor.ref b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ldp_neighbor.ref index 40d8ebeb90..40d8ebeb90 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ospf_ldp_sync.ref b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ospf_ldp_sync.ref index 3782071bf9..3782071bf9 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ospf_ldp_sync.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ospf_ldp_sync.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ospf_ldp_sync_r1_eth1_shutdown.ref b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ospf_ldp_sync_r1_eth1_shutdown.ref index c2642c6483..c2642c6483 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ospf_ldp_sync_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ospf_ldp_sync_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ospf_ldp_sync_r2_eth1_shutdown.ref b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ospf_ldp_sync_r2_eth1_shutdown.ref index 6f180b048a..6f180b048a 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r1/show_ospf_ldp_sync_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r1/show_ospf_ldp_sync_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r1/zebra.conf b/tests/topotests/ldp_sync_ospf_topo1/r1/zebra.conf index ea047355ad..ea047355ad 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r1/zebra.conf +++ b/tests/topotests/ldp_sync_ospf_topo1/r1/zebra.conf diff --git a/tests/topotests/ldp-sync-ospf-topo1/r2/ldpd.conf b/tests/topotests/ldp_sync_ospf_topo1/r2/ldpd.conf index 52398b1b72..52398b1b72 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r2/ldpd.conf +++ b/tests/topotests/ldp_sync_ospf_topo1/r2/ldpd.conf diff --git a/tests/topotests/ldp-sync-ospf-topo1/r2/ospfd.conf b/tests/topotests/ldp_sync_ospf_topo1/r2/ospfd.conf index f93f6aed56..f93f6aed56 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r2/ospfd.conf +++ b/tests/topotests/ldp_sync_ospf_topo1/r2/ospfd.conf diff --git a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ip_ospf_interface.ref b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ip_ospf_interface.ref index 82806721e7..82806721e7 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ip_ospf_interface.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ip_ospf_interface.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ip_ospf_interface_r1_eth1_shutdown.ref b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ip_ospf_interface_r1_eth1_shutdown.ref index 71e8af1778..71e8af1778 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ip_ospf_interface_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ip_ospf_interface_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ip_ospf_interface_r2_eth1_shutdown.ref b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ip_ospf_interface_r2_eth1_shutdown.ref index af9a9c80e5..af9a9c80e5 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ip_ospf_interface_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ip_ospf_interface_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ip_ospf_neighbor.json b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ip_ospf_neighbor.json index 5b7a5ebbb9..5b7a5ebbb9 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ip_ospf_neighbor.json +++ b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ip_ospf_neighbor.json diff --git a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ip_route.ref b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ip_route.ref index 6056feffe3..6056feffe3 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ip_route.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ip_route.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r2/show_l2vpn_binding.ref b/tests/topotests/ldp_sync_ospf_topo1/r2/show_l2vpn_binding.ref index 42c5a1cbd9..42c5a1cbd9 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r2/show_l2vpn_binding.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r2/show_l2vpn_binding.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r2/show_l2vpn_vc.ref b/tests/topotests/ldp_sync_ospf_topo1/r2/show_l2vpn_vc.ref index 942ed23a1e..942ed23a1e 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r2/show_l2vpn_vc.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r2/show_l2vpn_vc.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ldp_binding.ref b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ldp_binding.ref index c641fb47e6..c641fb47e6 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ldp_binding.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ldp_binding.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ldp_discovery.ref b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ldp_discovery.ref index 26801acade..26801acade 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ldp_discovery.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ldp_igp_sync.ref b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ldp_igp_sync.ref index f2b24d7d62..f2b24d7d62 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ldp_igp_sync.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ldp_igp_sync.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ldp_igp_sync_r1_eth1_shutdown.ref b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ldp_igp_sync_r1_eth1_shutdown.ref index b5508dd35c..b5508dd35c 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ldp_igp_sync_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ldp_igp_sync_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ldp_neighbor.ref b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ldp_neighbor.ref index eed35289ea..eed35289ea 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ospf_ldp_sync.ref b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ospf_ldp_sync.ref index 6c27a10427..6c27a10427 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ospf_ldp_sync.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ospf_ldp_sync.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ospf_ldp_sync_r1_eth1_shutdown.ref b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ospf_ldp_sync_r1_eth1_shutdown.ref index 889f69ed7f..889f69ed7f 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ospf_ldp_sync_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ospf_ldp_sync_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ospf_ldp_sync_r2_eth1_shutdown.ref b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ospf_ldp_sync_r2_eth1_shutdown.ref index d9036e124b..d9036e124b 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r2/show_ospf_ldp_sync_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r2/show_ospf_ldp_sync_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r2/zebra.conf b/tests/topotests/ldp_sync_ospf_topo1/r2/zebra.conf index c244442876..c244442876 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r2/zebra.conf +++ b/tests/topotests/ldp_sync_ospf_topo1/r2/zebra.conf diff --git a/tests/topotests/ldp-sync-ospf-topo1/r3/ldpd.conf b/tests/topotests/ldp_sync_ospf_topo1/r3/ldpd.conf index 2935caf13b..2935caf13b 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r3/ldpd.conf +++ b/tests/topotests/ldp_sync_ospf_topo1/r3/ldpd.conf diff --git a/tests/topotests/ldp-sync-ospf-topo1/r3/ospfd.conf b/tests/topotests/ldp_sync_ospf_topo1/r3/ospfd.conf index 09eea759ad..09eea759ad 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r3/ospfd.conf +++ b/tests/topotests/ldp_sync_ospf_topo1/r3/ospfd.conf diff --git a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ip_ospf_interface.ref b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ip_ospf_interface.ref index aec97b30cb..aec97b30cb 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ip_ospf_interface.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ip_ospf_interface.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ip_ospf_interface_r1_eth1_shutdown.ref b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ip_ospf_interface_r1_eth1_shutdown.ref index aec97b30cb..aec97b30cb 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ip_ospf_interface_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ip_ospf_interface_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ip_ospf_interface_r2_eth1_shutdown.ref b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ip_ospf_interface_r2_eth1_shutdown.ref index aec97b30cb..aec97b30cb 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ip_ospf_interface_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ip_ospf_interface_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ip_ospf_neighbor.json b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ip_ospf_neighbor.json index 1b29b9f947..1b29b9f947 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ip_ospf_neighbor.json +++ b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ip_ospf_neighbor.json diff --git a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ip_route.ref b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ip_route.ref index fc96ada443..fc96ada443 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ip_route.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ip_route.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r3/show_l2vpn_binding.ref b/tests/topotests/ldp_sync_ospf_topo1/r3/show_l2vpn_binding.ref index 2c63c08510..2c63c08510 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r3/show_l2vpn_binding.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r3/show_l2vpn_binding.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r3/show_l2vpn_vc.ref b/tests/topotests/ldp_sync_ospf_topo1/r3/show_l2vpn_vc.ref index 2c63c08510..2c63c08510 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r3/show_l2vpn_vc.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r3/show_l2vpn_vc.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ldp_binding.ref b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ldp_binding.ref index e54bd6e755..e54bd6e755 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ldp_binding.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ldp_binding.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ldp_discovery.ref b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ldp_discovery.ref index 42fa98d4da..42fa98d4da 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ldp_discovery.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ldp_igp_sync.ref b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ldp_igp_sync.ref index 73261830c9..73261830c9 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ldp_igp_sync.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ldp_igp_sync.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ldp_igp_sync_r1_eth1_shutdown.ref b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ldp_igp_sync_r1_eth1_shutdown.ref index 73261830c9..73261830c9 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ldp_igp_sync_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ldp_igp_sync_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ldp_neighbor.ref b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ldp_neighbor.ref index 5c482da697..5c482da697 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ospf_ldp_sync.ref b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ospf_ldp_sync.ref index b417ab040a..b417ab040a 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ospf_ldp_sync.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ospf_ldp_sync.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ospf_ldp_sync_r1_eth1_shutdown.ref b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ospf_ldp_sync_r1_eth1_shutdown.ref index b417ab040a..b417ab040a 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ospf_ldp_sync_r1_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ospf_ldp_sync_r1_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ospf_ldp_sync_r2_eth1_shutdown.ref b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ospf_ldp_sync_r2_eth1_shutdown.ref index b417ab040a..b417ab040a 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r3/show_ospf_ldp_sync_r2_eth1_shutdown.ref +++ b/tests/topotests/ldp_sync_ospf_topo1/r3/show_ospf_ldp_sync_r2_eth1_shutdown.ref diff --git a/tests/topotests/ldp-sync-ospf-topo1/r3/zebra.conf b/tests/topotests/ldp_sync_ospf_topo1/r3/zebra.conf index b1919bd296..b1919bd296 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/r3/zebra.conf +++ b/tests/topotests/ldp_sync_ospf_topo1/r3/zebra.conf diff --git a/tests/topotests/ldp-sync-ospf-topo1/test_ldp_sync_ospf_topo1.dot b/tests/topotests/ldp_sync_ospf_topo1/test_ldp_sync_ospf_topo1.dot index 4f1bd22f7c..4f1bd22f7c 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/test_ldp_sync_ospf_topo1.dot +++ b/tests/topotests/ldp_sync_ospf_topo1/test_ldp_sync_ospf_topo1.dot diff --git a/tests/topotests/ldp-sync-ospf-topo1/test_ldp_sync_ospf_topo1.py b/tests/topotests/ldp_sync_ospf_topo1/test_ldp_sync_ospf_topo1.py index 57b45e5fdf..57b45e5fdf 100644 --- a/tests/topotests/ldp-sync-ospf-topo1/test_ldp_sync_ospf_topo1.py +++ b/tests/topotests/ldp_sync_ospf_topo1/test_ldp_sync_ospf_topo1.py diff --git a/tests/topotests/ldp-topo1/r1/ip_mpls_route.ref b/tests/topotests/ldp_topo1/r1/ip_mpls_route.ref index a13c1d459b..a13c1d459b 100644 --- a/tests/topotests/ldp-topo1/r1/ip_mpls_route.ref +++ b/tests/topotests/ldp_topo1/r1/ip_mpls_route.ref diff --git a/tests/topotests/ldp-topo1/r1/ldpd.conf b/tests/topotests/ldp_topo1/r1/ldpd.conf index 3c6cbddc2a..3c6cbddc2a 100644 --- a/tests/topotests/ldp-topo1/r1/ldpd.conf +++ b/tests/topotests/ldp_topo1/r1/ldpd.conf diff --git a/tests/topotests/ldp-topo1/r1/ospfd.conf b/tests/topotests/ldp_topo1/r1/ospfd.conf index 87d5703d9e..87d5703d9e 100644 --- a/tests/topotests/ldp-topo1/r1/ospfd.conf +++ b/tests/topotests/ldp_topo1/r1/ospfd.conf diff --git a/tests/topotests/ldp-topo1/r1/show_ipv4_route.ref b/tests/topotests/ldp_topo1/r1/show_ipv4_route.ref index 7d398887c4..7d398887c4 100644 --- a/tests/topotests/ldp-topo1/r1/show_ipv4_route.ref +++ b/tests/topotests/ldp_topo1/r1/show_ipv4_route.ref diff --git a/tests/topotests/ldp-topo1/r1/show_mpls_ldp_binding.ref b/tests/topotests/ldp_topo1/r1/show_mpls_ldp_binding.ref index 32aa60c30d..32aa60c30d 100644 --- a/tests/topotests/ldp-topo1/r1/show_mpls_ldp_binding.ref +++ b/tests/topotests/ldp_topo1/r1/show_mpls_ldp_binding.ref diff --git a/tests/topotests/ldp-topo1/r1/show_mpls_ldp_discovery.ref b/tests/topotests/ldp_topo1/r1/show_mpls_ldp_discovery.ref index 373755ab87..373755ab87 100644 --- a/tests/topotests/ldp-topo1/r1/show_mpls_ldp_discovery.ref +++ b/tests/topotests/ldp_topo1/r1/show_mpls_ldp_discovery.ref diff --git a/tests/topotests/ldp-topo1/r1/show_mpls_ldp_interface.ref b/tests/topotests/ldp_topo1/r1/show_mpls_ldp_interface.ref index 0fb15d2da7..0fb15d2da7 100644 --- a/tests/topotests/ldp-topo1/r1/show_mpls_ldp_interface.ref +++ b/tests/topotests/ldp_topo1/r1/show_mpls_ldp_interface.ref diff --git a/tests/topotests/ldp-topo1/r1/show_mpls_ldp_neighbor.ref b/tests/topotests/ldp_topo1/r1/show_mpls_ldp_neighbor.ref index 29e264ff3c..29e264ff3c 100644 --- a/tests/topotests/ldp-topo1/r1/show_mpls_ldp_neighbor.ref +++ b/tests/topotests/ldp_topo1/r1/show_mpls_ldp_neighbor.ref diff --git a/tests/topotests/ldp-topo1/r1/show_mpls_table.ref b/tests/topotests/ldp_topo1/r1/show_mpls_table.ref index 7e24359af3..7e24359af3 100644 --- a/tests/topotests/ldp-topo1/r1/show_mpls_table.ref +++ b/tests/topotests/ldp_topo1/r1/show_mpls_table.ref diff --git a/tests/topotests/ldp-topo1/r1/zebra.conf b/tests/topotests/ldp_topo1/r1/zebra.conf index 55b4b0e9c6..55b4b0e9c6 100644 --- a/tests/topotests/ldp-topo1/r1/zebra.conf +++ b/tests/topotests/ldp_topo1/r1/zebra.conf diff --git a/tests/topotests/ldp-topo1/r2/ip_mpls_route.ref b/tests/topotests/ldp_topo1/r2/ip_mpls_route.ref index f962070c36..f962070c36 100644 --- a/tests/topotests/ldp-topo1/r2/ip_mpls_route.ref +++ b/tests/topotests/ldp_topo1/r2/ip_mpls_route.ref diff --git a/tests/topotests/ldp-topo1/r2/ldpd.conf b/tests/topotests/ldp_topo1/r2/ldpd.conf index bfdef21b75..bfdef21b75 100644 --- a/tests/topotests/ldp-topo1/r2/ldpd.conf +++ b/tests/topotests/ldp_topo1/r2/ldpd.conf diff --git a/tests/topotests/ldp-topo1/r2/ospfd.conf b/tests/topotests/ldp_topo1/r2/ospfd.conf index dbed6189c8..dbed6189c8 100644 --- a/tests/topotests/ldp-topo1/r2/ospfd.conf +++ b/tests/topotests/ldp_topo1/r2/ospfd.conf diff --git a/tests/topotests/ldp-topo1/r2/show_ipv4_route.ref b/tests/topotests/ldp_topo1/r2/show_ipv4_route.ref index 90e18962a8..90e18962a8 100644 --- a/tests/topotests/ldp-topo1/r2/show_ipv4_route.ref +++ b/tests/topotests/ldp_topo1/r2/show_ipv4_route.ref diff --git a/tests/topotests/ldp-topo1/r2/show_mpls_ldp_binding.ref b/tests/topotests/ldp_topo1/r2/show_mpls_ldp_binding.ref index d7df72e854..d7df72e854 100644 --- a/tests/topotests/ldp-topo1/r2/show_mpls_ldp_binding.ref +++ b/tests/topotests/ldp_topo1/r2/show_mpls_ldp_binding.ref diff --git a/tests/topotests/ldp-topo1/r2/show_mpls_ldp_discovery.ref b/tests/topotests/ldp_topo1/r2/show_mpls_ldp_discovery.ref index 6405b5e388..6405b5e388 100644 --- a/tests/topotests/ldp-topo1/r2/show_mpls_ldp_discovery.ref +++ b/tests/topotests/ldp_topo1/r2/show_mpls_ldp_discovery.ref diff --git a/tests/topotests/ldp-topo1/r2/show_mpls_ldp_interface.ref b/tests/topotests/ldp_topo1/r2/show_mpls_ldp_interface.ref index f9fc98408c..f9fc98408c 100644 --- a/tests/topotests/ldp-topo1/r2/show_mpls_ldp_interface.ref +++ b/tests/topotests/ldp_topo1/r2/show_mpls_ldp_interface.ref diff --git a/tests/topotests/ldp-topo1/r2/show_mpls_ldp_neighbor.ref b/tests/topotests/ldp_topo1/r2/show_mpls_ldp_neighbor.ref index 1172cbfc2b..1172cbfc2b 100644 --- a/tests/topotests/ldp-topo1/r2/show_mpls_ldp_neighbor.ref +++ b/tests/topotests/ldp_topo1/r2/show_mpls_ldp_neighbor.ref diff --git a/tests/topotests/ldp-topo1/r2/show_mpls_table.ref b/tests/topotests/ldp_topo1/r2/show_mpls_table.ref index df05a6b31a..df05a6b31a 100644 --- a/tests/topotests/ldp-topo1/r2/show_mpls_table.ref +++ b/tests/topotests/ldp_topo1/r2/show_mpls_table.ref diff --git a/tests/topotests/ldp-topo1/r2/zebra.conf b/tests/topotests/ldp_topo1/r2/zebra.conf index dd1dbac32b..dd1dbac32b 100644 --- a/tests/topotests/ldp-topo1/r2/zebra.conf +++ b/tests/topotests/ldp_topo1/r2/zebra.conf diff --git a/tests/topotests/ldp-topo1/r3/ip_mpls_route.ref b/tests/topotests/ldp_topo1/r3/ip_mpls_route.ref index 21750b4a23..21750b4a23 100644 --- a/tests/topotests/ldp-topo1/r3/ip_mpls_route.ref +++ b/tests/topotests/ldp_topo1/r3/ip_mpls_route.ref diff --git a/tests/topotests/ldp-topo1/r3/ldpd.conf b/tests/topotests/ldp_topo1/r3/ldpd.conf index dbf1d72b5f..dbf1d72b5f 100644 --- a/tests/topotests/ldp-topo1/r3/ldpd.conf +++ b/tests/topotests/ldp_topo1/r3/ldpd.conf diff --git a/tests/topotests/ldp-topo1/r3/ospfd.conf b/tests/topotests/ldp_topo1/r3/ospfd.conf index bd86fe4f24..bd86fe4f24 100644 --- a/tests/topotests/ldp-topo1/r3/ospfd.conf +++ b/tests/topotests/ldp_topo1/r3/ospfd.conf diff --git a/tests/topotests/ldp-topo1/r3/show_ipv4_route.ref b/tests/topotests/ldp_topo1/r3/show_ipv4_route.ref index 9b9c763339..9b9c763339 100644 --- a/tests/topotests/ldp-topo1/r3/show_ipv4_route.ref +++ b/tests/topotests/ldp_topo1/r3/show_ipv4_route.ref diff --git a/tests/topotests/ldp-topo1/r3/show_mpls_ldp_binding.ref b/tests/topotests/ldp_topo1/r3/show_mpls_ldp_binding.ref index 058a245f59..058a245f59 100644 --- a/tests/topotests/ldp-topo1/r3/show_mpls_ldp_binding.ref +++ b/tests/topotests/ldp_topo1/r3/show_mpls_ldp_binding.ref diff --git a/tests/topotests/ldp-topo1/r3/show_mpls_ldp_discovery.ref b/tests/topotests/ldp_topo1/r3/show_mpls_ldp_discovery.ref index e3dbf06c2e..e3dbf06c2e 100644 --- a/tests/topotests/ldp-topo1/r3/show_mpls_ldp_discovery.ref +++ b/tests/topotests/ldp_topo1/r3/show_mpls_ldp_discovery.ref diff --git a/tests/topotests/ldp-topo1/r3/show_mpls_ldp_interface.ref b/tests/topotests/ldp_topo1/r3/show_mpls_ldp_interface.ref index 243811e3a9..243811e3a9 100644 --- a/tests/topotests/ldp-topo1/r3/show_mpls_ldp_interface.ref +++ b/tests/topotests/ldp_topo1/r3/show_mpls_ldp_interface.ref diff --git a/tests/topotests/ldp-topo1/r3/show_mpls_ldp_neighbor.ref b/tests/topotests/ldp_topo1/r3/show_mpls_ldp_neighbor.ref index 769f78277b..769f78277b 100644 --- a/tests/topotests/ldp-topo1/r3/show_mpls_ldp_neighbor.ref +++ b/tests/topotests/ldp_topo1/r3/show_mpls_ldp_neighbor.ref diff --git a/tests/topotests/ldp-topo1/r3/show_mpls_table.ref b/tests/topotests/ldp_topo1/r3/show_mpls_table.ref index 3978895613..3978895613 100644 --- a/tests/topotests/ldp-topo1/r3/show_mpls_table.ref +++ b/tests/topotests/ldp_topo1/r3/show_mpls_table.ref diff --git a/tests/topotests/ldp-topo1/r3/zebra.conf b/tests/topotests/ldp_topo1/r3/zebra.conf index 456820fdb4..456820fdb4 100644 --- a/tests/topotests/ldp-topo1/r3/zebra.conf +++ b/tests/topotests/ldp_topo1/r3/zebra.conf diff --git a/tests/topotests/ldp-topo1/r4/ip_mpls_route.ref b/tests/topotests/ldp_topo1/r4/ip_mpls_route.ref index aef2fefd57..aef2fefd57 100644 --- a/tests/topotests/ldp-topo1/r4/ip_mpls_route.ref +++ b/tests/topotests/ldp_topo1/r4/ip_mpls_route.ref diff --git a/tests/topotests/ldp-topo1/r4/ldpd.conf b/tests/topotests/ldp_topo1/r4/ldpd.conf index 8f3533527d..8f3533527d 100644 --- a/tests/topotests/ldp-topo1/r4/ldpd.conf +++ b/tests/topotests/ldp_topo1/r4/ldpd.conf diff --git a/tests/topotests/ldp-topo1/r4/ospfd.conf b/tests/topotests/ldp_topo1/r4/ospfd.conf index 5aae885a12..5aae885a12 100644 --- a/tests/topotests/ldp-topo1/r4/ospfd.conf +++ b/tests/topotests/ldp_topo1/r4/ospfd.conf diff --git a/tests/topotests/ldp-topo1/r4/show_ipv4_route.ref b/tests/topotests/ldp_topo1/r4/show_ipv4_route.ref index 7444cc924b..7444cc924b 100644 --- a/tests/topotests/ldp-topo1/r4/show_ipv4_route.ref +++ b/tests/topotests/ldp_topo1/r4/show_ipv4_route.ref diff --git a/tests/topotests/ldp-topo1/r4/show_mpls_ldp_binding.ref b/tests/topotests/ldp_topo1/r4/show_mpls_ldp_binding.ref index 1e9dfa3d16..1e9dfa3d16 100644 --- a/tests/topotests/ldp-topo1/r4/show_mpls_ldp_binding.ref +++ b/tests/topotests/ldp_topo1/r4/show_mpls_ldp_binding.ref diff --git a/tests/topotests/ldp-topo1/r4/show_mpls_ldp_discovery.ref b/tests/topotests/ldp_topo1/r4/show_mpls_ldp_discovery.ref index a7026570db..a7026570db 100644 --- a/tests/topotests/ldp-topo1/r4/show_mpls_ldp_discovery.ref +++ b/tests/topotests/ldp_topo1/r4/show_mpls_ldp_discovery.ref diff --git a/tests/topotests/ldp-topo1/r4/show_mpls_ldp_interface.ref b/tests/topotests/ldp_topo1/r4/show_mpls_ldp_interface.ref index dd57656f15..dd57656f15 100644 --- a/tests/topotests/ldp-topo1/r4/show_mpls_ldp_interface.ref +++ b/tests/topotests/ldp_topo1/r4/show_mpls_ldp_interface.ref diff --git a/tests/topotests/ldp-topo1/r4/show_mpls_ldp_neighbor.ref b/tests/topotests/ldp_topo1/r4/show_mpls_ldp_neighbor.ref index 7c60522f9b..7c60522f9b 100644 --- a/tests/topotests/ldp-topo1/r4/show_mpls_ldp_neighbor.ref +++ b/tests/topotests/ldp_topo1/r4/show_mpls_ldp_neighbor.ref diff --git a/tests/topotests/ldp-topo1/r4/show_mpls_table.ref b/tests/topotests/ldp_topo1/r4/show_mpls_table.ref index 174dcebd4d..174dcebd4d 100644 --- a/tests/topotests/ldp-topo1/r4/show_mpls_table.ref +++ b/tests/topotests/ldp_topo1/r4/show_mpls_table.ref diff --git a/tests/topotests/ldp-topo1/r4/zebra.conf b/tests/topotests/ldp_topo1/r4/zebra.conf index 4a270af578..4a270af578 100644 --- a/tests/topotests/ldp-topo1/r4/zebra.conf +++ b/tests/topotests/ldp_topo1/r4/zebra.conf diff --git a/tests/topotests/ldp-topo1/test_ldp_topo1.py b/tests/topotests/ldp_topo1/test_ldp_topo1.py index 06e7734094..06e7734094 100644 --- a/tests/topotests/ldp-topo1/test_ldp_topo1.py +++ b/tests/topotests/ldp_topo1/test_ldp_topo1.py diff --git a/tests/topotests/ldp-vpls-topo1/__init__.py b/tests/topotests/ldp_vpls_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/ldp-vpls-topo1/__init__.py +++ b/tests/topotests/ldp_vpls_topo1/__init__.py diff --git a/tests/topotests/ldp-vpls-topo1/ce1/zebra.conf b/tests/topotests/ldp_vpls_topo1/ce1/zebra.conf index 6f165e2724..6f165e2724 100644 --- a/tests/topotests/ldp-vpls-topo1/ce1/zebra.conf +++ b/tests/topotests/ldp_vpls_topo1/ce1/zebra.conf diff --git a/tests/topotests/ldp-vpls-topo1/ce2/zebra.conf b/tests/topotests/ldp_vpls_topo1/ce2/zebra.conf index ac02d0f9a4..ac02d0f9a4 100644 --- a/tests/topotests/ldp-vpls-topo1/ce2/zebra.conf +++ b/tests/topotests/ldp_vpls_topo1/ce2/zebra.conf diff --git a/tests/topotests/ldp-vpls-topo1/ce3/zebra.conf b/tests/topotests/ldp_vpls_topo1/ce3/zebra.conf index c6a5824d15..c6a5824d15 100644 --- a/tests/topotests/ldp-vpls-topo1/ce3/zebra.conf +++ b/tests/topotests/ldp_vpls_topo1/ce3/zebra.conf diff --git a/tests/topotests/ldp-vpls-topo1/r1/ldpd.conf b/tests/topotests/ldp_vpls_topo1/r1/ldpd.conf index a1c0c822d6..a1c0c822d6 100644 --- a/tests/topotests/ldp-vpls-topo1/r1/ldpd.conf +++ b/tests/topotests/ldp_vpls_topo1/r1/ldpd.conf diff --git a/tests/topotests/ldp-vpls-topo1/r1/ospf-nbrs.txt b/tests/topotests/ldp_vpls_topo1/r1/ospf-nbrs.txt index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/ldp-vpls-topo1/r1/ospf-nbrs.txt +++ b/tests/topotests/ldp_vpls_topo1/r1/ospf-nbrs.txt diff --git a/tests/topotests/ldp-vpls-topo1/r1/ospfd.conf b/tests/topotests/ldp_vpls_topo1/r1/ospfd.conf index a66fb92ba3..a66fb92ba3 100644 --- a/tests/topotests/ldp-vpls-topo1/r1/ospfd.conf +++ b/tests/topotests/ldp_vpls_topo1/r1/ospfd.conf diff --git a/tests/topotests/ldp-vpls-topo1/r1/show_ip_ospf_neighbor.json b/tests/topotests/ldp_vpls_topo1/r1/show_ip_ospf_neighbor.json index 7e281abb5f..7e281abb5f 100644 --- a/tests/topotests/ldp-vpls-topo1/r1/show_ip_ospf_neighbor.json +++ b/tests/topotests/ldp_vpls_topo1/r1/show_ip_ospf_neighbor.json diff --git a/tests/topotests/ldp-vpls-topo1/r1/show_ip_route.ref b/tests/topotests/ldp_vpls_topo1/r1/show_ip_route.ref index fdb81f212d..fdb81f212d 100644 --- a/tests/topotests/ldp-vpls-topo1/r1/show_ip_route.ref +++ b/tests/topotests/ldp_vpls_topo1/r1/show_ip_route.ref diff --git a/tests/topotests/ldp-vpls-topo1/r1/show_l2vpn_binding.ref b/tests/topotests/ldp_vpls_topo1/r1/show_l2vpn_binding.ref index b3de7e2c66..b3de7e2c66 100644 --- a/tests/topotests/ldp-vpls-topo1/r1/show_l2vpn_binding.ref +++ b/tests/topotests/ldp_vpls_topo1/r1/show_l2vpn_binding.ref diff --git a/tests/topotests/ldp-vpls-topo1/r1/show_l2vpn_vc.ref b/tests/topotests/ldp_vpls_topo1/r1/show_l2vpn_vc.ref index 29e9df1089..29e9df1089 100644 --- a/tests/topotests/ldp-vpls-topo1/r1/show_l2vpn_vc.ref +++ b/tests/topotests/ldp_vpls_topo1/r1/show_l2vpn_vc.ref diff --git a/tests/topotests/ldp-vpls-topo1/r1/show_ldp_binding.ref b/tests/topotests/ldp_vpls_topo1/r1/show_ldp_binding.ref index b3a12ec53f..b3a12ec53f 100644 --- a/tests/topotests/ldp-vpls-topo1/r1/show_ldp_binding.ref +++ b/tests/topotests/ldp_vpls_topo1/r1/show_ldp_binding.ref diff --git a/tests/topotests/ldp-vpls-topo1/r1/show_ldp_discovery.ref b/tests/topotests/ldp_vpls_topo1/r1/show_ldp_discovery.ref index 9301e60c67..9301e60c67 100644 --- a/tests/topotests/ldp-vpls-topo1/r1/show_ldp_discovery.ref +++ b/tests/topotests/ldp_vpls_topo1/r1/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-vpls-topo1/r1/show_ldp_neighbor.ref b/tests/topotests/ldp_vpls_topo1/r1/show_ldp_neighbor.ref index 40d8ebeb90..40d8ebeb90 100644 --- a/tests/topotests/ldp-vpls-topo1/r1/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_vpls_topo1/r1/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-vpls-topo1/r1/zebra.conf b/tests/topotests/ldp_vpls_topo1/r1/zebra.conf index ea047355ad..ea047355ad 100644 --- a/tests/topotests/ldp-vpls-topo1/r1/zebra.conf +++ b/tests/topotests/ldp_vpls_topo1/r1/zebra.conf diff --git a/tests/topotests/ldp-vpls-topo1/r2/ldpd.conf b/tests/topotests/ldp_vpls_topo1/r2/ldpd.conf index 06e5973040..06e5973040 100644 --- a/tests/topotests/ldp-vpls-topo1/r2/ldpd.conf +++ b/tests/topotests/ldp_vpls_topo1/r2/ldpd.conf diff --git a/tests/topotests/ldp-vpls-topo1/r2/ospfd.conf b/tests/topotests/ldp_vpls_topo1/r2/ospfd.conf index b4692feec8..b4692feec8 100644 --- a/tests/topotests/ldp-vpls-topo1/r2/ospfd.conf +++ b/tests/topotests/ldp_vpls_topo1/r2/ospfd.conf diff --git a/tests/topotests/ldp-vpls-topo1/r2/show_ip_ospf_neighbor.json b/tests/topotests/ldp_vpls_topo1/r2/show_ip_ospf_neighbor.json index 22fd98f519..22fd98f519 100644 --- a/tests/topotests/ldp-vpls-topo1/r2/show_ip_ospf_neighbor.json +++ b/tests/topotests/ldp_vpls_topo1/r2/show_ip_ospf_neighbor.json diff --git a/tests/topotests/ldp-vpls-topo1/r2/show_ip_route.ref b/tests/topotests/ldp_vpls_topo1/r2/show_ip_route.ref index 6056feffe3..6056feffe3 100644 --- a/tests/topotests/ldp-vpls-topo1/r2/show_ip_route.ref +++ b/tests/topotests/ldp_vpls_topo1/r2/show_ip_route.ref diff --git a/tests/topotests/ldp-vpls-topo1/r2/show_l2vpn_binding.ref b/tests/topotests/ldp_vpls_topo1/r2/show_l2vpn_binding.ref index 42c5a1cbd9..42c5a1cbd9 100644 --- a/tests/topotests/ldp-vpls-topo1/r2/show_l2vpn_binding.ref +++ b/tests/topotests/ldp_vpls_topo1/r2/show_l2vpn_binding.ref diff --git a/tests/topotests/ldp-vpls-topo1/r2/show_l2vpn_vc.ref b/tests/topotests/ldp_vpls_topo1/r2/show_l2vpn_vc.ref index 942ed23a1e..942ed23a1e 100644 --- a/tests/topotests/ldp-vpls-topo1/r2/show_l2vpn_vc.ref +++ b/tests/topotests/ldp_vpls_topo1/r2/show_l2vpn_vc.ref diff --git a/tests/topotests/ldp-vpls-topo1/r2/show_ldp_binding.ref b/tests/topotests/ldp_vpls_topo1/r2/show_ldp_binding.ref index c641fb47e6..c641fb47e6 100644 --- a/tests/topotests/ldp-vpls-topo1/r2/show_ldp_binding.ref +++ b/tests/topotests/ldp_vpls_topo1/r2/show_ldp_binding.ref diff --git a/tests/topotests/ldp-vpls-topo1/r2/show_ldp_discovery.ref b/tests/topotests/ldp_vpls_topo1/r2/show_ldp_discovery.ref index 26801acade..26801acade 100644 --- a/tests/topotests/ldp-vpls-topo1/r2/show_ldp_discovery.ref +++ b/tests/topotests/ldp_vpls_topo1/r2/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-vpls-topo1/r2/show_ldp_neighbor.ref b/tests/topotests/ldp_vpls_topo1/r2/show_ldp_neighbor.ref index eed35289ea..eed35289ea 100644 --- a/tests/topotests/ldp-vpls-topo1/r2/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_vpls_topo1/r2/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-vpls-topo1/r2/zebra.conf b/tests/topotests/ldp_vpls_topo1/r2/zebra.conf index c244442876..c244442876 100644 --- a/tests/topotests/ldp-vpls-topo1/r2/zebra.conf +++ b/tests/topotests/ldp_vpls_topo1/r2/zebra.conf diff --git a/tests/topotests/ldp-vpls-topo1/r3/ldpd.conf b/tests/topotests/ldp_vpls_topo1/r3/ldpd.conf index 57a203bce3..57a203bce3 100644 --- a/tests/topotests/ldp-vpls-topo1/r3/ldpd.conf +++ b/tests/topotests/ldp_vpls_topo1/r3/ldpd.conf diff --git a/tests/topotests/ldp-vpls-topo1/r3/ospfd.conf b/tests/topotests/ldp_vpls_topo1/r3/ospfd.conf index 2413bfa9d5..2413bfa9d5 100644 --- a/tests/topotests/ldp-vpls-topo1/r3/ospfd.conf +++ b/tests/topotests/ldp_vpls_topo1/r3/ospfd.conf diff --git a/tests/topotests/ldp-vpls-topo1/r3/show_ip_ospf_neighbor.json b/tests/topotests/ldp_vpls_topo1/r3/show_ip_ospf_neighbor.json index 970eb2fc1d..970eb2fc1d 100644 --- a/tests/topotests/ldp-vpls-topo1/r3/show_ip_ospf_neighbor.json +++ b/tests/topotests/ldp_vpls_topo1/r3/show_ip_ospf_neighbor.json diff --git a/tests/topotests/ldp-vpls-topo1/r3/show_ip_route.ref b/tests/topotests/ldp_vpls_topo1/r3/show_ip_route.ref index fc96ada443..fc96ada443 100644 --- a/tests/topotests/ldp-vpls-topo1/r3/show_ip_route.ref +++ b/tests/topotests/ldp_vpls_topo1/r3/show_ip_route.ref diff --git a/tests/topotests/ldp-vpls-topo1/r3/show_l2vpn_binding.ref b/tests/topotests/ldp_vpls_topo1/r3/show_l2vpn_binding.ref index 2c63c08510..2c63c08510 100644 --- a/tests/topotests/ldp-vpls-topo1/r3/show_l2vpn_binding.ref +++ b/tests/topotests/ldp_vpls_topo1/r3/show_l2vpn_binding.ref diff --git a/tests/topotests/ldp-vpls-topo1/r3/show_l2vpn_vc.ref b/tests/topotests/ldp_vpls_topo1/r3/show_l2vpn_vc.ref index 2c63c08510..2c63c08510 100644 --- a/tests/topotests/ldp-vpls-topo1/r3/show_l2vpn_vc.ref +++ b/tests/topotests/ldp_vpls_topo1/r3/show_l2vpn_vc.ref diff --git a/tests/topotests/ldp-vpls-topo1/r3/show_ldp_binding.ref b/tests/topotests/ldp_vpls_topo1/r3/show_ldp_binding.ref index e54bd6e755..e54bd6e755 100644 --- a/tests/topotests/ldp-vpls-topo1/r3/show_ldp_binding.ref +++ b/tests/topotests/ldp_vpls_topo1/r3/show_ldp_binding.ref diff --git a/tests/topotests/ldp-vpls-topo1/r3/show_ldp_discovery.ref b/tests/topotests/ldp_vpls_topo1/r3/show_ldp_discovery.ref index 42fa98d4da..42fa98d4da 100644 --- a/tests/topotests/ldp-vpls-topo1/r3/show_ldp_discovery.ref +++ b/tests/topotests/ldp_vpls_topo1/r3/show_ldp_discovery.ref diff --git a/tests/topotests/ldp-vpls-topo1/r3/show_ldp_neighbor.ref b/tests/topotests/ldp_vpls_topo1/r3/show_ldp_neighbor.ref index 5c482da697..5c482da697 100644 --- a/tests/topotests/ldp-vpls-topo1/r3/show_ldp_neighbor.ref +++ b/tests/topotests/ldp_vpls_topo1/r3/show_ldp_neighbor.ref diff --git a/tests/topotests/ldp-vpls-topo1/r3/zebra.conf b/tests/topotests/ldp_vpls_topo1/r3/zebra.conf index 6b1eaa2ca0..6b1eaa2ca0 100644 --- a/tests/topotests/ldp-vpls-topo1/r3/zebra.conf +++ b/tests/topotests/ldp_vpls_topo1/r3/zebra.conf diff --git a/tests/topotests/ldp-vpls-topo1/test_ldp_vpls_topo1.dot b/tests/topotests/ldp_vpls_topo1/test_ldp_vpls_topo1.dot index 4f1bd22f7c..4f1bd22f7c 100644 --- a/tests/topotests/ldp-vpls-topo1/test_ldp_vpls_topo1.dot +++ b/tests/topotests/ldp_vpls_topo1/test_ldp_vpls_topo1.dot diff --git a/tests/topotests/ldp-vpls-topo1/test_ldp_vpls_topo1.pdf b/tests/topotests/ldp_vpls_topo1/test_ldp_vpls_topo1.pdf Binary files differindex 4d26732ea7..4d26732ea7 100644 --- a/tests/topotests/ldp-vpls-topo1/test_ldp_vpls_topo1.pdf +++ b/tests/topotests/ldp_vpls_topo1/test_ldp_vpls_topo1.pdf diff --git a/tests/topotests/ldp-vpls-topo1/test_ldp_vpls_topo1.py b/tests/topotests/ldp_vpls_topo1/test_ldp_vpls_topo1.py index 0ea7aca3eb..0ea7aca3eb 100644 --- a/tests/topotests/ldp-vpls-topo1/test_ldp_vpls_topo1.py +++ b/tests/topotests/ldp_vpls_topo1/test_ldp_vpls_topo1.py diff --git a/tests/topotests/multicast-pim-bsm-topo1/mcast_pim_bsmp_01.json b/tests/topotests/multicast_pim_bsm_topo1/mcast_pim_bsmp_01.json index 14cb0bee1d..14cb0bee1d 100644 --- a/tests/topotests/multicast-pim-bsm-topo1/mcast_pim_bsmp_01.json +++ b/tests/topotests/multicast_pim_bsm_topo1/mcast_pim_bsmp_01.json diff --git a/tests/topotests/multicast-pim-bsm-topo1/test_mcast_pim_bsmp_01.py b/tests/topotests/multicast_pim_bsm_topo1/test_mcast_pim_bsmp_01.py index cd398a5111..cd398a5111 100644 --- a/tests/topotests/multicast-pim-bsm-topo1/test_mcast_pim_bsmp_01.py +++ b/tests/topotests/multicast_pim_bsm_topo1/test_mcast_pim_bsmp_01.py diff --git a/tests/topotests/multicast-pim-bsm-topo2/mcast_pim_bsmp_02.json b/tests/topotests/multicast_pim_bsm_topo2/mcast_pim_bsmp_02.json index 14cb0bee1d..14cb0bee1d 100644 --- a/tests/topotests/multicast-pim-bsm-topo2/mcast_pim_bsmp_02.json +++ b/tests/topotests/multicast_pim_bsm_topo2/mcast_pim_bsmp_02.json diff --git a/tests/topotests/multicast-pim-bsm-topo2/test_mcast_pim_bsmp_02.py b/tests/topotests/multicast_pim_bsm_topo2/test_mcast_pim_bsmp_02.py index 199746d5f6..199746d5f6 100644 --- a/tests/topotests/multicast-pim-bsm-topo2/test_mcast_pim_bsmp_02.py +++ b/tests/topotests/multicast_pim_bsm_topo2/test_mcast_pim_bsmp_02.py diff --git a/tests/topotests/multicast-pim-sm-topo1/multicast_pim_sm_topo1.json b/tests/topotests/multicast_pim_sm_topo1/multicast_pim_sm_topo1.json index 71454c2ab2..71454c2ab2 100644 --- a/tests/topotests/multicast-pim-sm-topo1/multicast_pim_sm_topo1.json +++ b/tests/topotests/multicast_pim_sm_topo1/multicast_pim_sm_topo1.json diff --git a/tests/topotests/multicast-pim-sm-topo1/test_multicast_pim_sm_topo1.py b/tests/topotests/multicast_pim_sm_topo1/test_multicast_pim_sm_topo1.py index e55e30270d..e55e30270d 100755 --- a/tests/topotests/multicast-pim-sm-topo1/test_multicast_pim_sm_topo1.py +++ b/tests/topotests/multicast_pim_sm_topo1/test_multicast_pim_sm_topo1.py diff --git a/tests/topotests/multicast-pim-sm-topo2/multicast_pim_sm_topo2.json b/tests/topotests/multicast_pim_sm_topo2/multicast_pim_sm_topo2.json index 71454c2ab2..71454c2ab2 100644 --- a/tests/topotests/multicast-pim-sm-topo2/multicast_pim_sm_topo2.json +++ b/tests/topotests/multicast_pim_sm_topo2/multicast_pim_sm_topo2.json diff --git a/tests/topotests/multicast-pim-sm-topo2/test_multicast_pim_sm_topo2.py b/tests/topotests/multicast_pim_sm_topo2/test_multicast_pim_sm_topo2.py index 7e409c2a05..7e409c2a05 100755 --- a/tests/topotests/multicast-pim-sm-topo2/test_multicast_pim_sm_topo2.py +++ b/tests/topotests/multicast_pim_sm_topo2/test_multicast_pim_sm_topo2.py diff --git a/tests/topotests/multicast-pim-sm-topo3/multicast_pim_sm_topo3.json b/tests/topotests/multicast_pim_sm_topo3/multicast_pim_sm_topo3.json index f582f4929d..f582f4929d 100644 --- a/tests/topotests/multicast-pim-sm-topo3/multicast_pim_sm_topo3.json +++ b/tests/topotests/multicast_pim_sm_topo3/multicast_pim_sm_topo3.json diff --git a/tests/topotests/multicast-pim-sm-topo3/multicast_pim_sm_topo4.json b/tests/topotests/multicast_pim_sm_topo3/multicast_pim_sm_topo4.json index 4635dac7d2..4635dac7d2 100644 --- a/tests/topotests/multicast-pim-sm-topo3/multicast_pim_sm_topo4.json +++ b/tests/topotests/multicast_pim_sm_topo3/multicast_pim_sm_topo4.json diff --git a/tests/topotests/multicast-pim-sm-topo3/test_multicast_pim_sm_topo3.py b/tests/topotests/multicast_pim_sm_topo3/test_multicast_pim_sm_topo3.py index 33f476de44..33f476de44 100755 --- a/tests/topotests/multicast-pim-sm-topo3/test_multicast_pim_sm_topo3.py +++ b/tests/topotests/multicast_pim_sm_topo3/test_multicast_pim_sm_topo3.py diff --git a/tests/topotests/multicast-pim-sm-topo3/test_multicast_pim_sm_topo4.py b/tests/topotests/multicast_pim_sm_topo3/test_multicast_pim_sm_topo4.py index 1081b764ac..1081b764ac 100755 --- a/tests/topotests/multicast-pim-sm-topo3/test_multicast_pim_sm_topo4.py +++ b/tests/topotests/multicast_pim_sm_topo3/test_multicast_pim_sm_topo4.py diff --git a/tests/topotests/multicast-pim-static-rp-topo1/__init__.py b/tests/topotests/multicast_pim_static_rp_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/multicast-pim-static-rp-topo1/__init__.py +++ b/tests/topotests/multicast_pim_static_rp_topo1/__init__.py diff --git a/tests/topotests/multicast-pim-static-rp-topo1/multicast_pim_static_rp.json b/tests/topotests/multicast_pim_static_rp_topo1/multicast_pim_static_rp.json index 6d6c047b00..6d6c047b00 100644 --- a/tests/topotests/multicast-pim-static-rp-topo1/multicast_pim_static_rp.json +++ b/tests/topotests/multicast_pim_static_rp_topo1/multicast_pim_static_rp.json diff --git a/tests/topotests/multicast-pim-static-rp-topo1/test_multicast_pim_static_rp.py b/tests/topotests/multicast_pim_static_rp_topo1/test_multicast_pim_static_rp.py index e90230eb3b..7bef57b629 100755 --- a/tests/topotests/multicast-pim-static-rp-topo1/test_multicast_pim_static_rp.py +++ b/tests/topotests/multicast_pim_static_rp_topo1/test_multicast_pim_static_rp.py @@ -101,9 +101,9 @@ import os import sys import json import time -import pytest from time import sleep import datetime +import pytest # Save the Current Working Directory to find configuration files. CWD = os.path.dirname(os.path.realpath(__file__)) @@ -114,9 +114,12 @@ sys.path.append(os.path.join(CWD, "../lib/")) # pylint: disable=C0413 # Import topogen and topotest helpers -from lib.topogen import Topogen, get_topogen from mininet.topo import Topo +from lib.topogen import Topogen, get_topogen +from lib.topolog import logger +from lib.topojson import build_topo_from_json, build_config_from_json + from lib.common_config import ( start_topology, write_test_header, @@ -149,16 +152,14 @@ from lib.pim import ( clear_ip_mroute, clear_ip_mroute_verify, ) -from lib.topolog import logger -from lib.topojson import build_topo_from_json, build_config_from_json # Reading the data from JSON File for topology and configuration creation jsonFile = "{}/multicast_pim_static_rp.json".format(CWD) try: with open(jsonFile, "r") as topoJson: - topo = json.load(topoJson) + TOPO = json.load(topoJson) except IOError: - logger.info("Could not read file:", jsonFile) + logger.info("Could not read file: %s", jsonFile) # Global variables GROUP_RANGE_ALL = "224.0.0.0/4" @@ -203,7 +204,11 @@ class CreateTopo(Topo): tgen = get_topogen(self) # Building topology from json file - build_topo_from_json(tgen, topo) + build_topo_from_json(tgen, TOPO) + + def dumdum(self): + """ Dummy """ + print("%s", self.name) def setup_module(mod): @@ -212,10 +217,9 @@ def setup_module(mod): * `mod`: module name """ - global topo testsuite_run_time = time.asctime(time.localtime(time.time())) - logger.info("Testsuite start time: {}".format(testsuite_run_time)) + logger.info("Testsuite start time: %s", testsuite_run_time) logger.info("=" * 40) topology = """ @@ -229,7 +233,7 @@ def setup_module(mod): r4 """ - logger.info("Master Topology: \n {}".format(topology)) + logger.info("Master Topology: \n %s", topology) logger.info("Running setup_module to create topology") @@ -239,7 +243,7 @@ def setup_module(mod): # ... and here it calls Mininet initialization functions. # get list of daemons needs to be started for this suite. - daemons = topo_daemons(tgen, topo) + daemons = topo_daemons(tgen, TOPO) # Starting topology, create tmp files which are loaded to routers # to start deamons and then start routers @@ -250,10 +254,10 @@ def setup_module(mod): pytest.skip(tgen.errors) # Creating configuration from JSON - build_config_from_json(tgen, topo) + build_config_from_json(tgen, TOPO) # Verify PIM neighbors - result = verify_pim_neighbors(tgen, topo) + result = verify_pim_neighbors(tgen, TOPO) assert result is True, "setup_module :Failed \n Error:" " {}".format(result) logger.info("Running setup_module() done") @@ -269,9 +273,7 @@ def teardown_module(): # Stop toplogy and Remove tmp files tgen.stop_topology() - logger.info( - "Testsuite end time: {}".format(time.asctime(time.localtime(time.time()))) - ) + logger.info("Testsuite end time: %s", time.asctime(time.localtime(time.time()))) logger.info("=" * 40) @@ -335,9 +337,9 @@ def verify_mroute_repopulated(uptime_before, uptime_after): ) return errormsg - d1 = datetime.datetime.strptime(uptime_before[group][source], "%H:%M:%S") - d2 = datetime.datetime.strptime(uptime_after[group][source], "%H:%M:%S") - if d2 >= d1: + d_1 = datetime.datetime.strptime(uptime_before[group][source], "%H:%M:%S") + d_2 = datetime.datetime.strptime(uptime_after[group][source], "%H:%M:%S") + if d_2 >= d_1: errormsg = "mroute (%s, %s) is not " "repopulated [FAILED!!]" % ( source, group, @@ -360,7 +362,7 @@ def verify_state_incremented(state_before, state_after): """ for router, state_data in state_before.items(): - for state, value in state_data.items(): + for state, _ in state_data.items(): if state_before[router][state] >= state_after[router][state]: errormsg = ( "[DUT: %s]: state %s value has not" @@ -422,7 +424,7 @@ def test_add_delete_static_RP_p0(request): step("r1: Verify show ip igmp group without any IGMP join") dut = "r1" interface = "r1-r0-eth0" - result = verify_igmp_groups(tgen, dut, interface, GROUP_ADDRESS, expected=False) + result = verify_igmp_groups(tgen, dut, interface, GROUP_ADDRESS) assert result is not True, ( "Testcase {} : Failed \n " "r1: igmp group present without any IGMP join \n Error: {}".format( @@ -436,8 +438,9 @@ def test_add_delete_static_RP_p0(request): state_before = verify_pim_interface_traffic(tgen, state_dict) assert isinstance( state_before, dict - ), "Testcase{} : Failed \n state_before is not dictionary \n " - "Error: {}".format(tc_name, result) + ), "Testcase {} : Failed \n state_before is not dictionary\n Error: {}".format( + tc_name, result + ) step("r0 : Send IGMP join") result = iperfSendIGMPJoin(tgen, "r0", GROUP_ADDRESS, join_interval=1) @@ -453,7 +456,7 @@ def test_add_delete_static_RP_p0(request): iif = "r1-r2-eth1" rp_address = "1.0.2.17" result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE + tgen, TOPO, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) @@ -487,12 +490,12 @@ def test_add_delete_static_RP_p0(request): } } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify RP info") result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE, expected=False + tgen, TOPO, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE ) assert ( result is not True @@ -501,16 +504,14 @@ def test_add_delete_static_RP_p0(request): ) step("r1: Verify upstream IIF interface") - result = verify_upstream_iif(tgen, dut, iif, STAR, GROUP_ADDRESS, expected=False) + result = verify_upstream_iif(tgen, dut, iif, STAR, GROUP_ADDRESS) assert result is not True, ( "Testcase {} : Failed \n " "r1: upstream IIF interface present \n Error: {}".format(tc_name, result) ) step("r1: Verify upstream join state and join timer") - result = verify_join_state_and_timer( - tgen, dut, iif, STAR, GROUP_ADDRESS, expected=False - ) + result = verify_join_state_and_timer(tgen, dut, iif, STAR, GROUP_ADDRESS) assert result is not True, ( "Testcase {} : Failed \n " "r1: upstream join state is up and join timer is running \n Error: {}".format( @@ -519,13 +520,13 @@ def test_add_delete_static_RP_p0(request): ) step("r1: Verify PIM state") - result = verify_pim_state(tgen, dut, iif, oif, GROUP_ADDRESS, expected=False) + result = verify_pim_state(tgen, dut, iif, oif, GROUP_ADDRESS) assert result is not True, "Testcase {} :Failed \n Error: {}".format( tc_name, result ) step("r1: Verify ip mroutes") - result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False) + result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif) assert ( result is not True ), "Testcase {} : Failed \n " "r1: mroutes are still present \n Error: {}".format( @@ -536,8 +537,9 @@ def test_add_delete_static_RP_p0(request): state_after = verify_pim_interface_traffic(tgen, state_dict) assert isinstance( state_after, dict - ), "Testcase{} : Failed \n state_before is not dictionary \n " - "Error: {}".format(tc_name, result) + ), "Testcase {} : Failed \n state_before is not dictionary \n Error: {}".format( + tc_name, result + ) result = verify_state_incremented(state_before, state_after) assert result is True, "Testcase{} : Failed Error: {}".format(tc_name, result) @@ -576,7 +578,7 @@ def test_SPT_RPT_path_same_p1(request): reset_config_on_routers(tgen) kill_iperf(tgen) clear_ip_mroute(tgen) - clear_ip_pim_interface_traffic(tgen, topo) + clear_ip_pim_interface_traffic(tgen, TOPO) step("pre-configuration to send IGMP join and multicast traffic") result = config_to_send_igmp_join_and_traffic(tgen, tc_name) @@ -604,7 +606,7 @@ def test_SPT_RPT_path_same_p1(request): rp_address = "1.0.2.17" iif = "lo" result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE + tgen, TOPO, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) @@ -684,9 +686,7 @@ def test_SPT_RPT_path_same_p1(request): assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r3: Verify (S, G) upstream join state and join timer") - result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS, expected=False - ) + result = verify_join_state_and_timer(tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS) assert result is not True, ( "Testcase {} : Failed \n " "r3: (S, G) upstream join state is up and join timer is running\n Error: {}".format( @@ -732,7 +732,7 @@ def test_not_reachable_static_RP_p0(request): reset_config_on_routers(tgen) kill_iperf(tgen) clear_ip_mroute(tgen) - clear_ip_pim_interface_traffic(tgen, topo) + clear_ip_pim_interface_traffic(tgen, TOPO) step("pre-configuration to send IGMP join and multicast traffic") result = config_to_send_igmp_join_and_traffic(tgen, tc_name) @@ -754,8 +754,9 @@ def test_not_reachable_static_RP_p0(request): state_before = verify_pim_interface_traffic(tgen, state_dict) assert isinstance( state_before, dict - ), "Testcase{} : Failed \n state_before is not dictionary \n " - "Error: {}".format(tc_name, result) + ), "Testcase{} : Failed \n state_before is not dictionary \n " "Error: {}".format( + tc_name, result + ) step("Enable IGMP on r1 interface and send IGMP " "join (225.1.1.1) to r1") step("Configure r2 loopback interface as RP") @@ -770,7 +771,7 @@ def test_not_reachable_static_RP_p0(request): iif = "r1-r2-eth1" rp_address = "1.0.2.17" result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE + tgen, TOPO, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) @@ -810,7 +811,7 @@ def test_not_reachable_static_RP_p0(request): step("r1: Check RP detail using show ip pim rp-info OIF should be unknown") result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_ALL, "Unknown", rp_address, SOURCE + tgen, TOPO, dut, GROUP_RANGE_ALL, "Unknown", rp_address, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) @@ -818,7 +819,7 @@ def test_not_reachable_static_RP_p0(request): "r1 : OIL should be same and IIF should be cleared on R1 verify" "using show ip pim state" ) - result = verify_pim_state(tgen, dut, iif, oif, GROUP_ADDRESS, expected=False) + result = verify_pim_state(tgen, dut, iif, oif, GROUP_ADDRESS) assert result is not True, ( "Testcase {} : Failed \n " "OIL is not same and IIF is not cleared on R1 \n Error: {}".format( @@ -827,7 +828,7 @@ def test_not_reachable_static_RP_p0(request): ) step("r1: upstream IIF should be unknown , verify using show ip pim" "upstream") - result = verify_upstream_iif(tgen, dut, iif, STAR, GROUP_ADDRESS, expected=False) + result = verify_upstream_iif(tgen, dut, iif, STAR, GROUP_ADDRESS) assert result is not True, ( "Testcase {} : Failed \n " "r1: upstream IIF is not unknown \n Error: {}".format(tc_name, result) @@ -837,9 +838,7 @@ def test_not_reachable_static_RP_p0(request): "r1: join state should not be joined and join timer should stop," "verify using show ip pim upstream" ) - result = verify_join_state_and_timer( - tgen, dut, iif, STAR, GROUP_ADDRESS, expected=False - ) + result = verify_join_state_and_timer(tgen, dut, iif, STAR, GROUP_ADDRESS) assert result is not True, ( "Testcase {} : Failed \n " "r1: join state is joined and timer is not stopped \n Error: {}".format( @@ -854,21 +853,22 @@ def test_not_reachable_static_RP_p0(request): state_after = verify_pim_interface_traffic(tgen, state_dict) assert isinstance( state_after, dict - ), "Testcase{} : Failed \n state_before is not dictionary \n " - "Error: {}".format(tc_name, result) + ), "Testcase{} : Failed \n state_before is not dictionary \n " "Error: {}".format( + tc_name, result + ) result = verify_state_incremented(state_before, state_after) assert result is True, "Testcase{} : Failed Error: {}".format(tc_name, result) step("r1: (*, G) cleared from mroute table using show ip mroute") - result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False) + result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif) assert result is not True, ( "Testcase {} : Failed \n " "r1: (*, G) are not cleared from mroute table \n Error: {}".format( tc_name, result ) ) - logger.info("Expected behavior: {}".format(result)) + logger.info("Expected behavior: %s", result) # Uncomment next line for debugging # tgen.mininet_cli() @@ -898,7 +898,7 @@ def test_add_RP_after_join_received_p1(request): reset_config_on_routers(tgen) kill_iperf(tgen) clear_ip_mroute(tgen) - clear_ip_pim_interface_traffic(tgen, topo) + clear_ip_pim_interface_traffic(tgen, TOPO) step("pre-configuration to send IGMP join and multicast traffic") result = config_to_send_igmp_join_and_traffic(tgen, tc_name) @@ -924,7 +924,7 @@ def test_add_RP_after_join_received_p1(request): } } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify rp-info") @@ -932,7 +932,7 @@ def test_add_RP_after_join_received_p1(request): rp_address = "1.0.2.17" iif = "r1-r2-eth1" result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE, expected=False + tgen, TOPO, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE ) assert ( result is not True @@ -945,8 +945,9 @@ def test_add_RP_after_join_received_p1(request): state_before = verify_pim_interface_traffic(tgen, state_dict) assert isinstance( state_before, dict - ), "Testcase{} : Failed \n state_before is not dictionary \n " - "Error: {}".format(tc_name, result) + ), "Testcase{} : Failed \n state_before is not dictionary \n " "Error: {}".format( + tc_name, result + ) step("r0 : Send IGMP join (225.1.1.1) to r1, when rp is not configured" "in r1") result = iperfSendIGMPJoin(tgen, "r0", GROUP_ADDRESS, join_interval=1) @@ -958,7 +959,7 @@ def test_add_RP_after_join_received_p1(request): assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify upstream IIF interface") - result = verify_upstream_iif(tgen, dut, iif, STAR, GROUP_ADDRESS, expected=False) + result = verify_upstream_iif(tgen, dut, iif, STAR, GROUP_ADDRESS) assert result is not True, ( "Testcase {} : Failed \n " "r1: upstream IFF interface is present \n Error: {}".format(tc_name, result) @@ -966,9 +967,7 @@ def test_add_RP_after_join_received_p1(request): step("r1: Verify upstream join state and join timer") - result = verify_join_state_and_timer( - tgen, dut, iif, STAR, GROUP_ADDRESS, expected=False - ) + result = verify_join_state_and_timer(tgen, dut, iif, STAR, GROUP_ADDRESS) assert result is not True, ( "Testcase {} : Failed \n " "r1: upstream join state is joined and timer is running \n Error: {}".format( @@ -977,7 +976,7 @@ def test_add_RP_after_join_received_p1(request): ) step("r1: Verify PIM state") - result = verify_pim_state(tgen, dut, iif, oif, GROUP_ADDRESS, expected=False) + result = verify_pim_state(tgen, dut, iif, oif, GROUP_ADDRESS) assert ( result is not True ), "Testcase {} : Failed \n " "r1: PIM state is up\n Error: {}".format( @@ -985,7 +984,7 @@ def test_add_RP_after_join_received_p1(request): ) step("r1: Verify ip mroutes") - result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False) + result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif) assert ( result is not True ), "Testcase {} : Failed \n " "r1: mroutes are still present\n Error: {}".format( @@ -1006,12 +1005,12 @@ def test_add_RP_after_join_received_p1(request): } } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify rp-info") result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE + tgen, TOPO, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) @@ -1030,13 +1029,14 @@ def test_add_RP_after_join_received_p1(request): step("r1 : Verify ip mroutes") result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) - logger.info("Expected behavior: {}".format(result)) + logger.info("Expected behavior: %s", result) state_after = verify_pim_interface_traffic(tgen, state_dict) assert isinstance( state_after, dict - ), "Testcase{} : Failed \n state_before is not dictionary \n " - "Error: {}".format(tc_name, result) + ), "Testcase{} : Failed \n state_before is not dictionary \n " "Error: {}".format( + tc_name, result + ) result = verify_state_incremented(state_before, state_after) assert result is True, "Testcase {} : Failed Error: {}".format(tc_name, result) @@ -1068,7 +1068,7 @@ def test_reachable_static_RP_after_join_p0(request): reset_config_on_routers(tgen) kill_iperf(tgen) clear_ip_mroute(tgen) - clear_ip_pim_interface_traffic(tgen, topo) + clear_ip_pim_interface_traffic(tgen, TOPO) step("pre-configuration to send IGMP join and multicast traffic") result = config_to_send_igmp_join_and_traffic(tgen, tc_name) @@ -1083,8 +1083,9 @@ def test_reachable_static_RP_after_join_p0(request): state_before = verify_pim_interface_traffic(tgen, state_dict) assert isinstance( state_before, dict - ), "Testcase{} : Failed \n state_before is not dictionary \n " - "Error: {}".format(tc_name, result) + ), "Testcase{} : Failed \n state_before is not dictionary \n " "Error: {}".format( + tc_name, result + ) step("r1: Make RP un-reachable") dut = "r1" @@ -1098,7 +1099,7 @@ def test_reachable_static_RP_after_join_p0(request): step("r1: Verify rp-info") rp_address = "1.0.2.17" result = verify_pim_rp_info( - tgen, topo, dut, GROUP_ADDRESS, "Unknown", rp_address, SOURCE + tgen, TOPO, dut, GROUP_ADDRESS, "Unknown", rp_address, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) @@ -1113,16 +1114,14 @@ def test_reachable_static_RP_after_join_p0(request): step("r1 : Verify upstream IIF interface") iif = "r1-r2-eth1" - result = verify_upstream_iif(tgen, dut, iif, STAR, GROUP_ADDRESS, expected=False) + result = verify_upstream_iif(tgen, dut, iif, STAR, GROUP_ADDRESS) assert result is not True, ( "Testcase {} : Failed \n " "r1: upstream IIF interface is present\n Error: {}".format(tc_name, result) ) step("r1 : Verify upstream join state and join timer") - result = verify_join_state_and_timer( - tgen, dut, iif, STAR, GROUP_ADDRESS, expected=False - ) + result = verify_join_state_and_timer(tgen, dut, iif, STAR, GROUP_ADDRESS) assert result is not True, ( "Testcase {} : Failed \n " "r1: upstream join state is joined and timer is running\n Error: {}".format( @@ -1131,7 +1130,7 @@ def test_reachable_static_RP_after_join_p0(request): ) step("r1 : Verify PIM state") - result = verify_pim_state(tgen, dut, iif, oif, GROUP_ADDRESS, expected=False) + result = verify_pim_state(tgen, dut, iif, oif, GROUP_ADDRESS) assert ( result is not True ), "Testcase {} : Failed \n " "r1: PIM state is up\n Error: {}".format( @@ -1139,7 +1138,7 @@ def test_reachable_static_RP_after_join_p0(request): ) step("r1 : Verify ip mroutes") - result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False) + result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif) assert ( result is not True ), "Testcase {} : Failed \n " "r1: mroutes are still present\n Error: {}".format( @@ -1156,7 +1155,7 @@ def test_reachable_static_RP_after_join_p0(request): step("r1 : Verify rp-info") result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE + tgen, TOPO, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) @@ -1175,14 +1174,15 @@ def test_reachable_static_RP_after_join_p0(request): step("r1 : Verify ip mroutes") result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) - logger.info("Expected behavior: {}".format(result)) + logger.info("Expected behavior: %s", result) step("r1 : Verify pim interface traffic") state_after = verify_pim_interface_traffic(tgen, state_dict) assert isinstance( state_after, dict - ), "Testcase{} : Failed \n state_before is not dictionary \n " - "Error: {}".format(tc_name, result) + ), "Testcase{} : Failed \n state_before is not dictionary \n " "Error: {}".format( + tc_name, result + ) result = verify_state_incremented(state_before, state_after) assert result is True, "Testcase{} : Failed Error: {}".format(tc_name, result) @@ -1235,7 +1235,7 @@ def test_send_join_on_higher_preffered_rp_p1(request): reset_config_on_routers(tgen) kill_iperf(tgen) clear_ip_mroute(tgen) - clear_ip_pim_interface_traffic(tgen, topo) + clear_ip_pim_interface_traffic(tgen, TOPO) step("pre-configuration to send IGMP join and multicast traffic") result = config_to_send_igmp_join_and_traffic(tgen, tc_name) @@ -1272,8 +1272,9 @@ def test_send_join_on_higher_preffered_rp_p1(request): state_before = verify_pim_interface_traffic(tgen, state_dict) assert isinstance( state_before, dict - ), "Testcase{} : Failed \n state_before is not dictionary \n " - "Error: {}".format(tc_name, result) + ), "Testcase{} : Failed \n state_before is not dictionary \n " "Error: {}".format( + tc_name, result + ) step("r0 : Send IGMP join for 225.1.1.1") result = iperfSendIGMPJoin(tgen, "r0", GROUP_ADDRESS, join_interval=1) @@ -1299,21 +1300,21 @@ def test_send_join_on_higher_preffered_rp_p1(request): } } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1 : Verify RP info for group 224.0.0.0/4") rp_address_1 = "1.0.2.17" iif = "r1-r2-eth1" result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_ALL, iif, rp_address_1, SOURCE + tgen, TOPO, dut, GROUP_RANGE_ALL, iif, rp_address_1, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1 : Verify RP info for group 225.1.1.1") rp_address_2 = "1.0.4.17" iif = "r1-r4-eth3" - result = verify_pim_rp_info(tgen, topo, dut, GROUP_RANGE, iif, rp_address_2, SOURCE) + result = verify_pim_rp_info(tgen, TOPO, dut, GROUP_RANGE, iif, rp_address_2, SOURCE) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1 : Verify join is sent to higher preferred RP") @@ -1321,8 +1322,9 @@ def test_send_join_on_higher_preffered_rp_p1(request): state_after = verify_pim_interface_traffic(tgen, state_dict) assert isinstance( state_after, dict - ), "Testcase{} : Failed \n state_before is not dictionary \n " - "Error: {}".format(tc_name, result) + ), "Testcase{} : Failed \n state_before is not dictionary \n " "Error: {}".format( + tc_name, result + ) result = verify_state_incremented(state_before, state_after) assert result is True, "Testcase{} : Failed Error: {}".format(tc_name, result) @@ -1344,7 +1346,7 @@ def test_send_join_on_higher_preffered_rp_p1(request): result = verify_join_state_and_timer(tgen, dut, iif, STAR, GROUP_ADDRESS) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) - clear_ip_pim_interface_traffic(tgen, topo) + clear_ip_pim_interface_traffic(tgen, TOPO) step("r1 : Verify joinTx, pruneTx count before RP gets deleted") state_dict = {"r1": {"r1-r2-eth1": ["joinTx"], "r1-r4-eth3": ["pruneTx"]}} @@ -1352,8 +1354,9 @@ def test_send_join_on_higher_preffered_rp_p1(request): state_before = verify_pim_interface_traffic(tgen, state_dict) assert isinstance( state_before, dict - ), "Testcase{} : Failed \n state_before is not dictionary \n " - "Error: {}".format(tc_name, result) + ), "Testcase{} : Failed \n state_before is not dictionary \n " "Error: {}".format( + tc_name, result + ) step("r1 : Delete RP configuration for 225.1.1.1") input_dict = { @@ -1370,21 +1373,19 @@ def test_send_join_on_higher_preffered_rp_p1(request): } } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1 : Verify rp-info for group 224.0.0.0/4") iif = "r1-r2-eth1" result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_ALL, iif, rp_address_1, SOURCE + tgen, TOPO, dut, GROUP_RANGE_ALL, iif, rp_address_1, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1 : Verify rp-info for group 225.1.1.1") iif = "r1-r4-eth3" - result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE, oif, rp_address_2, SOURCE, expected=False - ) + result = verify_pim_rp_info(tgen, TOPO, dut, GROUP_RANGE, oif, rp_address_2, SOURCE) assert result is not True, ( "Testcase {} : Failed \n " "r1: rp-info is present for group 225.1.1.1 \n Error: {}".format( @@ -1399,7 +1400,7 @@ def test_send_join_on_higher_preffered_rp_p1(request): iif = "r1-r2-eth1" result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) - logger.info("Expected behavior: {}".format(result)) + logger.info("Expected behavior: %s", result) step( "r1 : Verify IIF and OIL in show ip pim state updated when higher" @@ -1433,8 +1434,9 @@ def test_send_join_on_higher_preffered_rp_p1(request): state_after = verify_pim_interface_traffic(tgen, state_dict) assert isinstance( state_after, dict - ), "Testcase{} : Failed \n state_before is not dictionary \n " - "Error: {}".format(tc_name, result) + ), "Testcase{} : Failed \n state_before is not dictionary \n " "Error: {}".format( + tc_name, result + ) result = verify_state_incremented(state_before, state_after) assert result is True, "Testcase{} : Failed Error: {}".format(tc_name, result) @@ -1472,7 +1474,7 @@ def test_RP_configured_as_LHR_1_p1(request): reset_config_on_routers(tgen) kill_iperf(tgen) clear_ip_mroute(tgen) - clear_ip_pim_interface_traffic(tgen, topo) + clear_ip_pim_interface_traffic(tgen, TOPO) step("pre-configuration to send IGMP join and multicast traffic") result = config_to_send_igmp_join_and_traffic(tgen, tc_name) @@ -1532,7 +1534,7 @@ def test_RP_configured_as_LHR_1_p1(request): }, } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Configure r1(LHR) as RP") @@ -1579,7 +1581,7 @@ def test_RP_configured_as_LHR_1_p1(request): }, } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) shutdown_bringup_interface(tgen, "r1", "lo", False) @@ -1592,7 +1594,7 @@ def test_RP_configured_as_LHR_1_p1(request): rp_address = "1.0.1.17" iif = "lo" result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE + tgen, TOPO, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) @@ -1641,9 +1643,7 @@ def test_RP_configured_as_LHR_1_p1(request): assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r3: Verify (S, G) upstream join state and join timer") - result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS, expected=False - ) + result = verify_join_state_and_timer(tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS) assert result is not True, ( "Testcase {} : Failed \n " "r3: (S, G) upstream join state is joined and join" @@ -1688,7 +1688,7 @@ def test_RP_configured_as_LHR_2_p1(request): reset_config_on_routers(tgen) kill_iperf(tgen) clear_ip_mroute(tgen) - clear_ip_pim_interface_traffic(tgen, topo) + clear_ip_pim_interface_traffic(tgen, TOPO) step("pre-configuration to send IGMP join and multicast traffic") result = config_to_send_igmp_join_and_traffic(tgen, tc_name) @@ -1748,7 +1748,7 @@ def test_RP_configured_as_LHR_2_p1(request): }, } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1, r2, r3, r4: Configure r1(LHR) as RP") @@ -1795,14 +1795,14 @@ def test_RP_configured_as_LHR_2_p1(request): }, } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify RP info") dut = "r1" rp_address = "1.0.1.17" iif = "lo" - result = verify_pim_rp_info(tgen, topo, dut, GROUP_ADDRESS, iif, rp_address, SOURCE) + result = verify_pim_rp_info(tgen, TOPO, dut, GROUP_ADDRESS, iif, rp_address, SOURCE) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r5: Send multicast traffic for group 225.1.1.1") @@ -1850,9 +1850,7 @@ def test_RP_configured_as_LHR_2_p1(request): assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r3: Verify (S, G) upstream join state and join timer") - result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS, expected=False - ) + result = verify_join_state_and_timer(tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS) assert result is not True, ( "Testcase {} : Failed \n " "r3: (S,G) upstream state is joined and join timer is running\n Error: {}".format( @@ -1898,7 +1896,7 @@ def test_RP_configured_as_FHR_1_p1(request): reset_config_on_routers(tgen) kill_iperf(tgen) clear_ip_mroute(tgen) - clear_ip_pim_interface_traffic(tgen, topo) + clear_ip_pim_interface_traffic(tgen, TOPO) step("pre-configuration to send IGMP join and multicast traffic") result = config_to_send_igmp_join_and_traffic(tgen, tc_name) @@ -1957,7 +1955,7 @@ def test_RP_configured_as_FHR_1_p1(request): } }, } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1, r2, r3, r4: Configure r3(FHR) as RP") @@ -2004,7 +2002,7 @@ def test_RP_configured_as_FHR_1_p1(request): }, } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify RP info") @@ -2012,7 +2010,7 @@ def test_RP_configured_as_FHR_1_p1(request): rp_address = "1.0.3.17" iif = "r1-r3-eth2" result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE + tgen, TOPO, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) @@ -2060,9 +2058,7 @@ def test_RP_configured_as_FHR_1_p1(request): assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r3: Verify (S, G) upstream join state and join timer") - result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS, expected=False - ) + result = verify_join_state_and_timer(tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS) assert result is not True, ( "Testcase {} : Failed \n " "r3: (S,G) upstream state is joined and join timer is running\n Error: {}".format( @@ -2107,7 +2103,7 @@ def test_RP_configured_as_FHR_2_p2(request): reset_config_on_routers(tgen) kill_iperf(tgen) clear_ip_mroute(tgen) - clear_ip_pim_interface_traffic(tgen, topo) + clear_ip_pim_interface_traffic(tgen, TOPO) step("pre-configuration to send IGMP join and multicast traffic") result = config_to_send_igmp_join_and_traffic(tgen, tc_name) @@ -2167,7 +2163,7 @@ def test_RP_configured_as_FHR_2_p2(request): }, } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1, r2, r3, r4: Configure r3(FHR) as RP") @@ -2214,7 +2210,7 @@ def test_RP_configured_as_FHR_2_p2(request): }, } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify RP info") @@ -2222,7 +2218,7 @@ def test_RP_configured_as_FHR_2_p2(request): rp_address = "1.0.3.17" iif = "r1-r3-eth2" result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE + tgen, TOPO, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) @@ -2271,9 +2267,7 @@ def test_RP_configured_as_FHR_2_p2(request): assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r3: Verify (S, G) upstream join state and join timer") - result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS, expected=False - ) + result = verify_join_state_and_timer(tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS) assert result is not True, ( "Testcase {} : Failed \n " "r3: (S,G) upstream state is joined and join timer is running\n Error: {}".format( @@ -2320,7 +2314,7 @@ def test_SPT_RPT_path_different_p1(request): reset_config_on_routers(tgen) kill_iperf(tgen) clear_ip_mroute(tgen) - clear_ip_pim_interface_traffic(tgen, topo) + clear_ip_pim_interface_traffic(tgen, TOPO) step("pre-configuration to send IGMP join and multicast traffic") result = config_to_send_igmp_join_and_traffic(tgen, tc_name) @@ -2335,7 +2329,7 @@ def test_SPT_RPT_path_different_p1(request): dut = "r2" rp_address = "1.0.2.17" iif = "lo" - result = verify_pim_rp_info(tgen, topo, dut, GROUP_ADDRESS, iif, rp_address, SOURCE) + result = verify_pim_rp_info(tgen, TOPO, dut, GROUP_ADDRESS, iif, rp_address, SOURCE) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r0: Send IGMP join") @@ -2400,9 +2394,7 @@ def test_SPT_RPT_path_different_p1(request): assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r3: Verify (S, G) upstream join state and join timer") - result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS, expected=False - ) + result = verify_join_state_and_timer(tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS) assert result is not True, ( "Testcase {} : Failed \n " "r3: (S,G) upstream state is joined and join timer is running\n Error: {}".format( @@ -2424,9 +2416,7 @@ def test_SPT_RPT_path_different_p1(request): assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r2: Verify (S, G) upstream join state and join timer") - result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS, expected=False - ) + result = verify_join_state_and_timer(tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS) assert result is not True, ( "Testcase {} : Failed \n " "r2: (S,G) upstream state is joined and join timer is running\n Error: {}".format( @@ -2475,7 +2465,7 @@ def test_clear_pim_configuration_p1(request): reset_config_on_routers(tgen) kill_iperf(tgen) clear_ip_mroute(tgen) - clear_ip_pim_interface_traffic(tgen, topo) + clear_ip_pim_interface_traffic(tgen, TOPO) step("pre-configuration to send IGMP join and multicast traffic") result = config_to_send_igmp_join_and_traffic(tgen, tc_name) @@ -2492,7 +2482,7 @@ def test_clear_pim_configuration_p1(request): rp_address = "1.0.2.17" oif = "lo" result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_ALL, oif, rp_address, SOURCE + tgen, TOPO, dut, GROUP_RANGE_ALL, oif, rp_address, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) @@ -2572,7 +2562,7 @@ def test_restart_pimd_process_p2(request): reset_config_on_routers(tgen) kill_iperf(tgen) clear_ip_mroute(tgen) - clear_ip_pim_interface_traffic(tgen, topo) + clear_ip_pim_interface_traffic(tgen, TOPO) step("pre-configuration to send IGMP join and multicast traffic") result = config_to_send_igmp_join_and_traffic(tgen, tc_name) @@ -2589,7 +2579,7 @@ def test_restart_pimd_process_p2(request): rp_address = "1.0.2.17" oif = "lo" result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_ALL, oif, rp_address, SOURCE + tgen, TOPO, dut, GROUP_RANGE_ALL, oif, rp_address, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) @@ -2655,9 +2645,7 @@ def test_restart_pimd_process_p2(request): assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r3: Verify (S, G) upstream join state and join timer") - result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS, expected=False - ) + result = verify_join_state_and_timer(tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS) assert result is not True, ( "Testcase {} : Failed \n " "r3: (S,G) upstream state is joined and join timer is running\n Error: {}".format( @@ -2676,7 +2664,7 @@ def test_restart_pimd_process_p2(request): logger.info("waiting for 10 sec to make sure old mroute time is higher") sleep(10) uptime_before = verify_ip_mroutes( - tgen, dut, STAR, GROUP_ADDRESS, iif, oil, return_uptime=True, wait=60 + tgen, dut, STAR, GROUP_ADDRESS, iif, oil, return_uptime=True, mwait=60 ) assert isinstance(uptime_before, dict), "Testcase{} : Failed Error: {}".format( tc_name, result @@ -2692,7 +2680,7 @@ def test_restart_pimd_process_p2(request): sleep(5) uptime_after = verify_ip_mroutes( - tgen, dut, STAR, GROUP_ADDRESS, iif, oil, return_uptime=True, wait=10 + tgen, dut, STAR, GROUP_ADDRESS, iif, oil, return_uptime=True, mwait=10 ) assert isinstance(uptime_after, dict), "Testcase{} : Failed Error: {}".format( tc_name, result @@ -2731,7 +2719,7 @@ def test_multiple_groups_same_RP_address_p2(request): reset_config_on_routers(tgen) kill_iperf(tgen) clear_ip_mroute(tgen) - clear_ip_pim_interface_traffic(tgen, topo) + clear_ip_pim_interface_traffic(tgen, TOPO) step("pre-configuration to send IGMP join and multicast traffic") result = config_to_send_igmp_join_and_traffic(tgen, tc_name) @@ -2754,79 +2742,79 @@ def test_multiple_groups_same_RP_address_p2(request): rp_address = "1.0.2.17" oif = "lo" result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_ALL, oif, rp_address, SOURCE + tgen, TOPO, dut, GROUP_RANGE_ALL, oif, rp_address, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) - GROUP_ADDRESS_LIST = GROUP_ADDRESS_LIST_1 + GROUP_ADDRESS_LIST_2 + group_address_list = GROUP_ADDRESS_LIST_1 + GROUP_ADDRESS_LIST_2 step("r0: Send IGMP join for 10 groups") - result = iperfSendIGMPJoin(tgen, "r0", GROUP_ADDRESS_LIST, join_interval=1) + result = iperfSendIGMPJoin(tgen, "r0", group_address_list, join_interval=1) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify IGMP groups") dut = "r1" oif = "r1-r0-eth0" - result = verify_igmp_groups(tgen, dut, oif, GROUP_ADDRESS_LIST) + result = verify_igmp_groups(tgen, dut, oif, group_address_list) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r5: Send multicast traffic for group 225.1.1.1") - result = iperfSendTraffic(tgen, "r5", GROUP_ADDRESS_LIST, 32, 2500) + result = iperfSendTraffic(tgen, "r5", group_address_list, 32, 2500) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify (*, G) upstream IIF interface") dut = "r1" iif = "r1-r2-eth1" - result = verify_upstream_iif(tgen, dut, iif, STAR, GROUP_ADDRESS_LIST) + result = verify_upstream_iif(tgen, dut, iif, STAR, group_address_list) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify (*, G) upstream join state and join timer") - result = verify_join_state_and_timer(tgen, dut, iif, STAR, GROUP_ADDRESS_LIST) + result = verify_join_state_and_timer(tgen, dut, iif, STAR, group_address_list) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify (*, G) ip mroutes") oif = "r1-r0-eth0" - result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS_LIST, iif, oif) + result = verify_ip_mroutes(tgen, dut, STAR, group_address_list, iif, oif) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify (S, G) upstream IIF interface") iif = "r1-r3-eth2" - result = verify_upstream_iif(tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST) + result = verify_upstream_iif(tgen, dut, iif, SOURCE_ADDRESS, group_address_list) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify (S, G) upstream join state and join timer") result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST + tgen, dut, iif, SOURCE_ADDRESS, group_address_list ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify (S, G) ip mroutes") - result = verify_ip_mroutes(tgen, dut, SOURCE_ADDRESS, GROUP_ADDRESS_LIST, iif, oif) + result = verify_ip_mroutes(tgen, dut, SOURCE_ADDRESS, group_address_list, iif, oif) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r2: Verify (*, G) upstream IIF interface") dut = "r2" iif = "lo" - result = verify_upstream_iif(tgen, dut, iif, STAR, GROUP_ADDRESS_LIST) + result = verify_upstream_iif(tgen, dut, iif, STAR, group_address_list) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r2: Verify (*, G) upstream join state and join timer") - result = verify_join_state_and_timer(tgen, dut, iif, STAR, GROUP_ADDRESS_LIST) + result = verify_join_state_and_timer(tgen, dut, iif, STAR, group_address_list) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r2: Verify (*, G) ip mroutes") oif = "r2-r1-eth0" - result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS_LIST, iif, oif) + result = verify_ip_mroutes(tgen, dut, STAR, group_address_list, iif, oif) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r3: Verify (S, G) upstream IIF interface") dut = "r3" iif = "r3-r5-eth3" - result = verify_upstream_iif(tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST) + result = verify_upstream_iif(tgen, dut, iif, SOURCE_ADDRESS, group_address_list) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r3: Verify (S, G) upstream join state and join timer") result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST, expected=False + tgen, dut, iif, SOURCE_ADDRESS, group_address_list ) assert result is not True, ( "Testcase {} : Failed \n " @@ -2837,20 +2825,20 @@ def test_multiple_groups_same_RP_address_p2(request): step("r3: Verify (S, G) ip mroutes") oif = "r3-r1-eth0" - result = verify_ip_mroutes(tgen, dut, SOURCE_ADDRESS, GROUP_ADDRESS_LIST, iif, oif) + result = verify_ip_mroutes(tgen, dut, SOURCE_ADDRESS, group_address_list, iif, oif) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r2: Verify (S, G) upstream IIF interface") dut = "r2" iif = "r2-r3-eth1" result = verify_upstream_iif( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST, joinState="NotJoined" + tgen, dut, iif, SOURCE_ADDRESS, group_address_list, joinState="NotJoined" ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r2: Verify (S, G) upstream join state and join timer") result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST, expected=False + tgen, dut, iif, SOURCE_ADDRESS, group_address_list ) assert result is not True, ( "Testcase {} : Failed \n " @@ -2861,7 +2849,7 @@ def test_multiple_groups_same_RP_address_p2(request): step("r2: Verify (S, G) ip mroutes") oif = "none" - result = verify_ip_mroutes(tgen, dut, SOURCE_ADDRESS, GROUP_ADDRESS_LIST, iif, oif) + result = verify_ip_mroutes(tgen, dut, SOURCE_ADDRESS, group_address_list, iif, oif) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Delete RP configuration") @@ -2879,7 +2867,7 @@ def test_multiple_groups_same_RP_address_p2(request): } } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Shut the interface r1-r2-eth1 from R1 to R2") @@ -2905,7 +2893,7 @@ def test_multiple_groups_same_RP_address_p2(request): } } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Shut the interface r1-r0-eth0 from R1 to R2") @@ -2919,59 +2907,59 @@ def test_multiple_groups_same_RP_address_p2(request): step("r1: Verify (*, G) upstream IIF interface") dut = "r1" iif = "r1-r2-eth1" - result = verify_upstream_iif(tgen, dut, iif, STAR, GROUP_ADDRESS_LIST) + result = verify_upstream_iif(tgen, dut, iif, STAR, group_address_list) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify (*, G) upstream join state and join timer") - result = verify_join_state_and_timer(tgen, dut, iif, STAR, GROUP_ADDRESS_LIST) + result = verify_join_state_and_timer(tgen, dut, iif, STAR, group_address_list) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify (*, G) ip mroutes") oif = "r1-r0-eth0" - result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS_LIST, iif, oif) + result = verify_ip_mroutes(tgen, dut, STAR, group_address_list, iif, oif) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify (S, G) upstream IIF interface") iif = "r1-r3-eth2" - result = verify_upstream_iif(tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST) + result = verify_upstream_iif(tgen, dut, iif, SOURCE_ADDRESS, group_address_list) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify (S, G) upstream join state and join timer") result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST + tgen, dut, iif, SOURCE_ADDRESS, group_address_list ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify (S, G) ip mroutes") - result = verify_ip_mroutes(tgen, dut, SOURCE_ADDRESS, GROUP_ADDRESS_LIST, iif, oif) + result = verify_ip_mroutes(tgen, dut, SOURCE_ADDRESS, group_address_list, iif, oif) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r2: Verify (*, G) upstream IIF interface") dut = "r2" iif = "lo" - result = verify_upstream_iif(tgen, dut, iif, STAR, GROUP_ADDRESS_LIST) + result = verify_upstream_iif(tgen, dut, iif, STAR, group_address_list) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r2: Verify (*, G) upstream join state and join timer") - result = verify_join_state_and_timer(tgen, dut, iif, STAR, GROUP_ADDRESS_LIST) + result = verify_join_state_and_timer(tgen, dut, iif, STAR, group_address_list) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r2: Verify (*, G) ip mroutes") oif = "r2-r1-eth0" - result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS_LIST, iif, oif) + result = verify_ip_mroutes(tgen, dut, STAR, group_address_list, iif, oif) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r2: Verify (S, G) upstream IIF interface") dut = "r2" iif = "r2-r3-eth1" result = verify_upstream_iif( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST, joinState="NotJoined" + tgen, dut, iif, SOURCE_ADDRESS, group_address_list, joinState="NotJoined" ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r2: Verify (S, G) upstream join state and join timer") result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST, expected=False + tgen, dut, iif, SOURCE_ADDRESS, group_address_list ) assert result is not True, ( "Testcase {} : Failed \n " @@ -2982,18 +2970,18 @@ def test_multiple_groups_same_RP_address_p2(request): step("r2: Verify (S, G) ip mroutes") oif = "none" - result = verify_ip_mroutes(tgen, dut, SOURCE_ADDRESS, GROUP_ADDRESS_LIST, iif, oif) + result = verify_ip_mroutes(tgen, dut, SOURCE_ADDRESS, group_address_list, iif, oif) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r3: Verify (S, G) upstream IIF interface") dut = "r3" iif = "r3-r5-eth3" - result = verify_upstream_iif(tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST) + result = verify_upstream_iif(tgen, dut, iif, SOURCE_ADDRESS, group_address_list) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r3: Verify (S, G) upstream join state and join timer") result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST, expected=False + tgen, dut, iif, SOURCE_ADDRESS, group_address_list ) assert result is not True, ( "Testcase {} : Failed \n " @@ -3004,7 +2992,7 @@ def test_multiple_groups_same_RP_address_p2(request): step("r3: Verify (S, G) ip mroutes") oif = "r3-r1-eth0" - result = verify_ip_mroutes(tgen, dut, SOURCE_ADDRESS, GROUP_ADDRESS_LIST, iif, oif) + result = verify_ip_mroutes(tgen, dut, SOURCE_ADDRESS, group_address_list, iif, oif) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) write_test_footer(tc_name) @@ -3040,7 +3028,7 @@ def test_multiple_groups_different_RP_address_p2(request): reset_config_on_routers(tgen) kill_iperf(tgen) clear_ip_mroute(tgen) - clear_ip_pim_interface_traffic(tgen, topo) + clear_ip_pim_interface_traffic(tgen, TOPO) step("pre-configuration to send IGMP join and multicast traffic") result = config_to_send_igmp_join_and_traffic(tgen, tc_name) @@ -3060,7 +3048,7 @@ def test_multiple_groups_different_RP_address_p2(request): } } } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) input_dict = { @@ -3085,7 +3073,7 @@ def test_multiple_groups_different_RP_address_p2(request): } }, } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r2: Verify RP info") @@ -3093,7 +3081,7 @@ def test_multiple_groups_different_RP_address_p2(request): rp_address = "1.0.2.17" oif = "lo" result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_LIST_1, oif, rp_address, SOURCE + tgen, TOPO, dut, GROUP_RANGE_LIST_1, oif, rp_address, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) @@ -3101,23 +3089,23 @@ def test_multiple_groups_different_RP_address_p2(request): dut = "r4" rp_address = "1.0.4.17" result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_LIST_2, oif, rp_address, SOURCE + tgen, TOPO, dut, GROUP_RANGE_LIST_2, oif, rp_address, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) - GROUP_ADDRESS_LIST = GROUP_ADDRESS_LIST_1 + GROUP_ADDRESS_LIST_2 + group_address_list = GROUP_ADDRESS_LIST_1 + GROUP_ADDRESS_LIST_2 step("r0: Send IGMP join") - result = iperfSendIGMPJoin(tgen, "r0", GROUP_ADDRESS_LIST, join_interval=1) + result = iperfSendIGMPJoin(tgen, "r0", group_address_list, join_interval=1) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify IGMP groups") dut = "r1" oif = "r1-r0-eth0" - result = verify_igmp_groups(tgen, dut, oif, GROUP_ADDRESS_LIST) + result = verify_igmp_groups(tgen, dut, oif, group_address_list) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r5: Send multicast traffic for group 225.1.1.1") - result = iperfSendTraffic(tgen, "r5", GROUP_ADDRESS_LIST, 32, 2500) + result = iperfSendTraffic(tgen, "r5", group_address_list, 32, 2500) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Verify (*, G) upstream IIF interface") @@ -3175,7 +3163,7 @@ def test_multiple_groups_different_RP_address_p2(request): step("r2: Verify (S, G) upstream join state and join timer") result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST_1, expected=False + tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST_1 ) assert result is not True, ( "Testcase {} : Failed \n " @@ -3199,7 +3187,7 @@ def test_multiple_groups_different_RP_address_p2(request): step("r3: Verify (S, G) upstream join state and join timer") result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST_1, expected=False + tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST_1 ) assert result is not True, ( "Testcase {} : Failed \n " @@ -3271,7 +3259,7 @@ def test_multiple_groups_different_RP_address_p2(request): step("r4: Verify (S, G) upstream join state and join timer") result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST_2, expected=False + tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST_2 ) assert result is not True, ( "Testcase {} : Failed \n " @@ -3295,7 +3283,7 @@ def test_multiple_groups_different_RP_address_p2(request): step("r3: Verify (S, G) upstream join state and join timer") result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST_2, expected=False + tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST_2 ) assert result is not True, "Testcase {} :Failed \n Error: {}".format( tc_name, result @@ -3333,7 +3321,7 @@ def test_multiple_groups_different_RP_address_p2(request): } }, } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1, r2, r3, r4: Re-configure RP") @@ -3359,7 +3347,7 @@ def test_multiple_groups_different_RP_address_p2(request): } }, } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Shut the interface r1-r2-eth1 from R1 to R2") @@ -3448,7 +3436,7 @@ def test_multiple_groups_different_RP_address_p2(request): step("r2: Verify (S, G) upstream join state and join timer") result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST_1, expected=False + tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST_1 ) assert result is not True, ( "Testcase {} : Failed \n " @@ -3472,7 +3460,7 @@ def test_multiple_groups_different_RP_address_p2(request): step("r3: Verify (S, G) upstream join state and join timer") result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST_1, expected=False + tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST_1 ) assert result is not True, ( "Testcase {} : Failed \n " @@ -3544,7 +3532,7 @@ def test_multiple_groups_different_RP_address_p2(request): step("r4: Verify (S, G) upstream join state and join timer") result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST_2, expected=False + tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST_2 ) assert result is not True, ( "Testcase {} : Failed \n " @@ -3568,7 +3556,7 @@ def test_multiple_groups_different_RP_address_p2(request): step("r3: Verify (S, G) upstream join state and join timer") result = verify_join_state_and_timer( - tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST_2, expected=False + tgen, dut, iif, SOURCE_ADDRESS, GROUP_ADDRESS_LIST_2 ) assert result is not True, ( "Testcase {} : Failed \n " @@ -3611,7 +3599,7 @@ def test_shutdown_primary_path_p1(request): reset_config_on_routers(tgen) kill_iperf(tgen) clear_ip_mroute(tgen) - clear_ip_pim_interface_traffic(tgen, topo) + clear_ip_pim_interface_traffic(tgen, TOPO) step("pre-configuration to send IGMP join and multicast traffic") result = config_to_send_igmp_join_and_traffic(tgen, tc_name) @@ -3630,7 +3618,7 @@ def test_shutdown_primary_path_p1(request): rp_address = "1.0.2.17" iif = "r1-r2-eth1" result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE + tgen, TOPO, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) @@ -3701,7 +3689,7 @@ def test_shutdown_primary_path_p1(request): dut = "r1" iif = "r1-r3-eth2" oif = "r1-r0-eth0" - result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False) + result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif) assert result is not True, ( "Testcase {} : Failed \n " "r1: (*,G) mroutes are not cleared after shut of R1 to R3 link\n Error: {}".format( @@ -3713,7 +3701,7 @@ def test_shutdown_primary_path_p1(request): dut = "r2" iif = "lo" oif = "r2-r3-eth1" - result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False) + result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif) assert result is not True, ( "Testcase {} : Failed \n " "r2: (*,G) mroutes are not cleared after shut of R1 to R3 link\n Error: {}".format( @@ -3725,7 +3713,7 @@ def test_shutdown_primary_path_p1(request): dut = "r3" iif = "r3-r2-eth1" oif = "r3-r1-eth0" - result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False) + result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif) assert result is not True, ( "Testcase {} : Failed \n " "r3: (*,G) mroutes are not cleared after shut of R1 to R3 link\n Error: {}".format( @@ -3804,7 +3792,7 @@ def test_delete_RP_shut_noshut_upstream_interface_p1(request): reset_config_on_routers(tgen) kill_iperf(tgen) clear_ip_mroute(tgen) - clear_ip_pim_interface_traffic(tgen, topo) + clear_ip_pim_interface_traffic(tgen, TOPO) step("pre-configuration to send IGMP join and multicast traffic") result = config_to_send_igmp_join_and_traffic(tgen, tc_name) @@ -3821,7 +3809,7 @@ def test_delete_RP_shut_noshut_upstream_interface_p1(request): rp_address = "1.0.2.17" iif = "r1-r2-eth1" result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE + tgen, TOPO, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) @@ -3863,7 +3851,7 @@ def test_delete_RP_shut_noshut_upstream_interface_p1(request): } } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r1: Shut the interface r1-r2-eth1 from R1 to R2") @@ -3890,7 +3878,7 @@ def test_delete_RP_shut_noshut_upstream_interface_p1(request): dut = "r1" iif = "r1-r2-eth1" oif = "r1-r0-eth0" - result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False) + result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif) assert result is not True, ( "Testcase {} : Failed \n " "r1: (*,G) mroutes are not cleared after shut of R1 to R0 link\n Error: {}".format( @@ -3902,7 +3890,7 @@ def test_delete_RP_shut_noshut_upstream_interface_p1(request): dut = "r2" iif = "lo" oif = "r2-r1-eth0" - result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False) + result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif) assert result is not True, ( "Testcase {} : Failed \n " "r2: (*,G) mroutes are not cleared after shut of R1 to R0 link\n Error: {}".format( @@ -3937,7 +3925,7 @@ def test_delete_RP_shut_noshut_RP_interface_p1(request): reset_config_on_routers(tgen) kill_iperf(tgen) clear_ip_mroute(tgen) - clear_ip_pim_interface_traffic(tgen, topo) + clear_ip_pim_interface_traffic(tgen, TOPO) step("pre-configuration to send IGMP join and multicast traffic") result = config_to_send_igmp_join_and_traffic(tgen, tc_name) @@ -3954,7 +3942,7 @@ def test_delete_RP_shut_noshut_RP_interface_p1(request): rp_address = "1.0.2.17" iif = "r1-r2-eth1" result = verify_pim_rp_info( - tgen, topo, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE + tgen, TOPO, dut, GROUP_RANGE_ALL, iif, rp_address, SOURCE ) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) @@ -3995,7 +3983,7 @@ def test_delete_RP_shut_noshut_RP_interface_p1(request): } } - result = create_pim_config(tgen, topo, input_dict) + result = create_pim_config(tgen, TOPO, input_dict) assert result is True, "Testcase {} :Failed \n Error: {}".format(tc_name, result) step("r2: Shut the RP interface lo") @@ -4017,7 +4005,7 @@ def test_delete_RP_shut_noshut_RP_interface_p1(request): dut = "r1" iif = "r1-r2-eth1" oif = "r1-r0-eth0" - result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False) + result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif) assert result is not True, ( "Testcase {} : Failed \n " "r1: (*,G) mroutes are not cleared after shut of R1 to R2 and R3 link\n Error: {}".format( @@ -4029,7 +4017,7 @@ def test_delete_RP_shut_noshut_RP_interface_p1(request): dut = "r2" iif = "lo" oif = "r2-r1-eth0" - result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif, expected=False) + result = verify_ip_mroutes(tgen, dut, STAR, GROUP_ADDRESS, iif, oif) assert result is not True, ( "Testcase {} : Failed \n " "r2: (*,G) mroutes are not cleared after shut of R1 to R2 and R3 link\n Error: {}".format( @@ -4041,5 +4029,5 @@ def test_delete_RP_shut_noshut_RP_interface_p1(request): if __name__ == "__main__": - args = ["-s"] + sys.argv[1:] - sys.exit(pytest.main(args)) + ARGS = ["-s"] + sys.argv[1:] + sys.exit(pytest.main(ARGS)) diff --git a/tests/topotests/nhrp-topo/r1/nhrp4_cache.json b/tests/topotests/nhrp_topo/r1/nhrp4_cache.json index 6426a939be..6426a939be 100644 --- a/tests/topotests/nhrp-topo/r1/nhrp4_cache.json +++ b/tests/topotests/nhrp_topo/r1/nhrp4_cache.json diff --git a/tests/topotests/nhrp-topo/r1/nhrp_route4.json b/tests/topotests/nhrp_topo/r1/nhrp_route4.json index 68b5a6ece2..68b5a6ece2 100644 --- a/tests/topotests/nhrp-topo/r1/nhrp_route4.json +++ b/tests/topotests/nhrp_topo/r1/nhrp_route4.json diff --git a/tests/topotests/nhrp-topo/r1/nhrpd.conf b/tests/topotests/nhrp_topo/r1/nhrpd.conf index 04114bdbe6..04114bdbe6 100644 --- a/tests/topotests/nhrp-topo/r1/nhrpd.conf +++ b/tests/topotests/nhrp_topo/r1/nhrpd.conf diff --git a/tests/topotests/nhrp-topo/r1/zebra.conf b/tests/topotests/nhrp_topo/r1/zebra.conf index b45670fcb2..b45670fcb2 100644 --- a/tests/topotests/nhrp-topo/r1/zebra.conf +++ b/tests/topotests/nhrp_topo/r1/zebra.conf diff --git a/tests/topotests/nhrp-topo/r2/nhrp4_cache.json b/tests/topotests/nhrp_topo/r2/nhrp4_cache.json index 34558e0c28..34558e0c28 100644 --- a/tests/topotests/nhrp-topo/r2/nhrp4_cache.json +++ b/tests/topotests/nhrp_topo/r2/nhrp4_cache.json diff --git a/tests/topotests/nhrp-topo/r2/nhrp_route4.json b/tests/topotests/nhrp_topo/r2/nhrp_route4.json index 7393cba893..7393cba893 100644 --- a/tests/topotests/nhrp-topo/r2/nhrp_route4.json +++ b/tests/topotests/nhrp_topo/r2/nhrp_route4.json diff --git a/tests/topotests/nhrp-topo/r2/nhrpd.conf b/tests/topotests/nhrp_topo/r2/nhrpd.conf index e4f6fb7445..e4f6fb7445 100644 --- a/tests/topotests/nhrp-topo/r2/nhrpd.conf +++ b/tests/topotests/nhrp_topo/r2/nhrpd.conf diff --git a/tests/topotests/nhrp-topo/r2/zebra.conf b/tests/topotests/nhrp_topo/r2/zebra.conf index 9f40d4d72e..9f40d4d72e 100644 --- a/tests/topotests/nhrp-topo/r2/zebra.conf +++ b/tests/topotests/nhrp_topo/r2/zebra.conf diff --git a/tests/topotests/nhrp-topo/r3/zebra.conf b/tests/topotests/nhrp_topo/r3/zebra.conf index 6d3d267978..6d3d267978 100644 --- a/tests/topotests/nhrp-topo/r3/zebra.conf +++ b/tests/topotests/nhrp_topo/r3/zebra.conf diff --git a/tests/topotests/nhrp-topo/test_nhrp_topo.dot b/tests/topotests/nhrp_topo/test_nhrp_topo.dot index 6b68fb398f..6b68fb398f 100644 --- a/tests/topotests/nhrp-topo/test_nhrp_topo.dot +++ b/tests/topotests/nhrp_topo/test_nhrp_topo.dot diff --git a/tests/topotests/nhrp-topo/test_nhrp_topo.py b/tests/topotests/nhrp_topo/test_nhrp_topo.py index 1687961f34..1687961f34 100644 --- a/tests/topotests/nhrp-topo/test_nhrp_topo.py +++ b/tests/topotests/nhrp_topo/test_nhrp_topo.py diff --git a/tests/topotests/ospf-sr-te-topo1/dst/zebra.conf b/tests/topotests/ospf-sr-te-topo1/dst/zebra.conf new file mode 100644 index 0000000000..4cb50fdb27 --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/dst/zebra.conf @@ -0,0 +1,23 @@ +log file zebra.log +! +hostname dst +! +debug zebra kernel +debug zebra packet +debug zebra mpls +! +interface lo + ip address 9.9.9.2/32 + ipv6 address 2001:db8:1066::2/128 +! +interface eth-rt6 + ip address 10.0.11.2/24 + link-params + enable + exit-link-params +! +! +ip forwarding +! +line vty +! diff --git a/tests/topotests/ospf-sr-te-topo1/rt1/bgpd.conf b/tests/topotests/ospf-sr-te-topo1/rt1/bgpd.conf new file mode 100644 index 0000000000..efc03701b5 --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt1/bgpd.conf @@ -0,0 +1,16 @@ +log file bgpd.log +! +router bgp 1 + bgp router-id 1.1.1.1 + neighbor 6.6.6.6 remote-as 1 + neighbor 6.6.6.6 update-source lo + ! + address-family ipv4 unicast + redistribute static + neighbor 6.6.6.6 next-hop-self + neighbor 6.6.6.6 route-map SET_SR_POLICY in + exit-address-family +! +route-map SET_SR_POLICY permit 10 + set sr-te color 1 +! diff --git a/tests/topotests/ospf-sr-te-topo1/rt1/ospfd.conf b/tests/topotests/ospf-sr-te-topo1/rt1/ospfd.conf new file mode 100644 index 0000000000..225ac93528 --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt1/ospfd.conf @@ -0,0 +1,36 @@ +password 1 +hostname rt1 +log file ospfd.log +! +debug ospf sr +debug ospf te +debug ospf event +debug ospf lsa +debug ospf zebra +! +interface lo + ip ospf area 0.0.0.0 +! +interface eth-sw1 + ip ospf network point-to-point + ip ospf hello-interval 2 + ip ospf dead-interval 10 + ip ospf area 0.0.0.0 +! +router ospf + ospf router-id 1.1.1.1 + network 1.1.1.1/32 area 0.0.0.0 + network 10.0.0.0/16 area 0.0.0.0 + capability opaque + !ospf opaque-lsa + mpls-te on + mpls-te export + mpls-te router-address 1.1.1.1 + router-info area 0.0.0.0 + passive-interface lo + segment-routing on + segment-routing global-block 16000 23999 + !segment-routing local-block 15000 15999 + segment-routing node-msd 8 + segment-routing prefix 1.1.1.1/32 index 10 +! diff --git a/tests/topotests/ospf-sr-te-topo1/rt1/pathd.conf b/tests/topotests/ospf-sr-te-topo1/rt1/pathd.conf new file mode 100644 index 0000000000..55d5857f5d --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt1/pathd.conf @@ -0,0 +1,27 @@ +log file pathd.log +! +hostname rt1 +! +segment-routing + traffic-eng + mpls-te on + mpls-te import ospfv2 + segment-list default + index 10 nai adjacency 10.0.1.1 10.0.1.2 + index 20 nai adjacency 10.0.2.2 10.0.2.4 + index 30 nai adjacency 10.0.7.4 10.0.7.6 + + + ! + segment-list test + index 10 nai adjacency 10.0.1.1 10.0.1.2 + index 20 nai adjacency 10.0.2.2 10.0.2.4 + index 30 nai adjacency 10.0.6.4 10.0.6.5 + index 40 nai adjacency 10.0.8.5 10.0.8.6 + ! + policy color 1 endpoint 6.6.6.6 + name default + binding-sid 1111 + ! + ! +! diff --git a/tests/topotests/ospf-sr-te-topo1/rt1/step2/show_operational_data.ref b/tests/topotests/ospf-sr-te-topo1/rt1/step2/show_operational_data.ref new file mode 100644 index 0000000000..4ef8d946f2 --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt1/step2/show_operational_data.ref @@ -0,0 +1,13 @@ +{ + "frr-pathd:pathd": { + "srte": { + "policy": [ + { + "color": 1, + "endpoint": "6.6.6.6", + "is-operational": false + } + ] + } + } +} diff --git a/tests/topotests/ospf-sr-te-topo1/rt1/step2/show_operational_data_with_candidate.ref b/tests/topotests/ospf-sr-te-topo1/rt1/step2/show_operational_data_with_candidate.ref new file mode 100644 index 0000000000..9b28f6a42b --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt1/step2/show_operational_data_with_candidate.ref @@ -0,0 +1,20 @@ +{ + "frr-pathd:pathd": { + "srte": { + "policy": [ + { + "color": 1, + "endpoint": "6.6.6.6", + "is-operational": true, + "candidate-path": [ + { + "preference": 100, + "discriminator": "*", + "is-best-candidate-path": true + } + ] + } + ] + } + } +} diff --git a/tests/topotests/ospf-sr-te-topo1/rt1/step3/show_operational_data_with_single_candidate.ref b/tests/topotests/ospf-sr-te-topo1/rt1/step3/show_operational_data_with_single_candidate.ref new file mode 100644 index 0000000000..9b28f6a42b --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt1/step3/show_operational_data_with_single_candidate.ref @@ -0,0 +1,20 @@ +{ + "frr-pathd:pathd": { + "srte": { + "policy": [ + { + "color": 1, + "endpoint": "6.6.6.6", + "is-operational": true, + "candidate-path": [ + { + "preference": 100, + "discriminator": "*", + "is-best-candidate-path": true + } + ] + } + ] + } + } +} diff --git a/tests/topotests/ospf-sr-te-topo1/rt1/step3/show_operational_data_with_two_candidates.ref b/tests/topotests/ospf-sr-te-topo1/rt1/step3/show_operational_data_with_two_candidates.ref new file mode 100644 index 0000000000..249117198a --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt1/step3/show_operational_data_with_two_candidates.ref @@ -0,0 +1,25 @@ +{ + "frr-pathd:pathd": { + "srte": { + "policy": [ + { + "color": 1, + "endpoint": "6.6.6.6", + "is-operational": true, + "candidate-path": [ + { + "preference": 100, + "discriminator": "*", + "is-best-candidate-path": false + }, + { + "preference": 200, + "discriminator": "*", + "is-best-candidate-path": true + } + ] + } + ] + } + } +} diff --git a/tests/topotests/ospf-sr-te-topo1/rt1/zebra.conf b/tests/topotests/ospf-sr-te-topo1/rt1/zebra.conf new file mode 100644 index 0000000000..dd686ea3da --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt1/zebra.conf @@ -0,0 +1,21 @@ +log file zebra.log +! +hostname rt1 +! +debug zebra kernel +debug zebra packet +debug zebra mpls +! +interface lo + ip address 1.1.1.1/32 +! +interface eth-sw1 + ip address 10.0.1.1/24 + link-params + enable + exit-link-params +! +ip forwarding +! +line vty +! diff --git a/tests/topotests/ospf-sr-te-topo1/rt2/ospfd.conf b/tests/topotests/ospf-sr-te-topo1/rt2/ospfd.conf new file mode 100644 index 0000000000..f6a7bbb621 --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt2/ospfd.conf @@ -0,0 +1,47 @@ +hostname rt2 +log file ospfd.log +! +debug ospf sr +debug ospf te +debug ospf event +debug ospf lsa +debug ospf zebra +! +interface lo + ip ospf area 0.0.0.0 +! +interface eth-sw1 + ip ospf network point-to-point + ip ospf hello-interval 2 + ip ospf dead-interval 10 + ip ospf area 0.0.0.0 +! +interface eth-rt4-1 + ip ospf network point-to-point + ip ospf hello-interval 2 + ip ospf dead-interval 10 + ip ospf area 0.0.0.0 +! +interface eth-rt4-2 + ip ospf network point-to-point + ip ospf hello-interval 2 + ip ospf dead-interval 10 + ip ospf area 0.0.0.0 +! +router ospf + ospf router-id 2.2.2.2 + network 2.2.2.2/32 area 0.0.0.0 + network 10.0.0.0/16 area 0.0.0.0 + capability opaque + !ospf opaque-lsa + mpls-te on + !mpls-te export + mpls-te router-address 2.2.2.2 + router-info area 0.0.0.0 + passive-interface lo + segment-routing on + segment-routing global-block 16000 23999 + !segment-routing local-block 15000 15999 + segment-routing node-msd 8 + segment-routing prefix 2.2.2.2/32 index 20 +! diff --git a/tests/topotests/ospf-sr-te-topo1/rt2/zebra.conf b/tests/topotests/ospf-sr-te-topo1/rt2/zebra.conf new file mode 100644 index 0000000000..ddd50ba520 --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt2/zebra.conf @@ -0,0 +1,35 @@ +log file zebra.log +! +hostname rt2 +! +debug zebra kernel +debug zebra packet +debug zebra mpls +! +interface lo + ip address 2.2.2.2/32 +! +interface eth-sw1 + ip address 10.0.1.2/24 + link-params + enable + exit-link-params +! +interface eth-rt4-1 + ip address 10.0.2.2/24 + link-params + enable + exit-link-params +! +! +interface eth-rt4-2 + ip address 10.0.3.2/24 + link-params + enable + exit-link-params +! +! +ip forwarding +! +line vty +! diff --git a/tests/topotests/ospf-sr-te-topo1/rt3/ospfd.conf b/tests/topotests/ospf-sr-te-topo1/rt3/ospfd.conf new file mode 100644 index 0000000000..5f71cd8484 --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt3/ospfd.conf @@ -0,0 +1,46 @@ +hostname rt3 +log file ospfd.log +! +debug ospf sr +debug ospf te +debug ospf event +debug ospf lsa +debug ospf zebra +! +interface lo + ip ospf area 0.0.0.0 +! +interface eth-sw1 + ip ospf network point-to-point + ip ospf hello-interval 2 + ip ospf dead-interval 10 + ip ospf area 0.0.0.0 +! +interface eth-rt5-1 + ip ospf network point-to-point + ip ospf hello-interval 2 + ip ospf dead-interval 10 + ip ospf area 0.0.0.0 +! +interface eth-rt5-2 + ip ospf network point-to-point + ip ospf hello-interval 2 + ip ospf dead-interval 10 + ip ospf area 0.0.0.0 +! +router ospf + ospf router-id 3.3.3.3 + network 3.3.3.3/32 area 0.0.0.0 + network 10.0.0.0/16 area 0.0.0.0 + capability opaque + !ospf opaque-lsa + mpls-te on + !mpls-te export + mpls-te router-address 3.3.3.3 + router-info area 0.0.0.0 + segment-routing on + segment-routing global-block 16000 23999 + !segment-routing local-block 15000 15999 + segment-routing node-msd 8 + segment-routing prefix 3.3.3.3/32 index 30 +! diff --git a/tests/topotests/ospf-sr-te-topo1/rt3/zebra.conf b/tests/topotests/ospf-sr-te-topo1/rt3/zebra.conf new file mode 100644 index 0000000000..0825b5c8bf --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt3/zebra.conf @@ -0,0 +1,33 @@ +log file zebra.log +! +hostname rt3 +! +debug zebra kernel +debug zebra packet +debug zebra mpls +! +interface lo + ip address 3.3.3.3/32 +! +interface eth-sw1 + ip address 10.0.1.3/24 + link-params + enable + exit-link-params +!! +interface eth-rt5-1 + ip address 10.0.4.3/24 + link-params + enable + exit-link-params +!! +interface eth-rt5-2 + ip address 10.0.5.3/24 + link-params + enable + exit-link-params +!! +ip forwarding +! +line vty +! diff --git a/tests/topotests/ospf-sr-te-topo1/rt4/ospfd.conf b/tests/topotests/ospf-sr-te-topo1/rt4/ospfd.conf new file mode 100644 index 0000000000..d4862cd233 --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt4/ospfd.conf @@ -0,0 +1,53 @@ +hostname rt4 +log file ospfd.log +! +debug ospf sr +debug ospf te +debug ospf event +debug ospf lsa +debug ospf zebra +! +interface lo + ip ospf area 0.0.0.0 +! +interface eth-rt2-1 + ip ospf network point-to-point + ip ospf hello-interval 2 + ip ospf dead-interval 10 + ip ospf area 0.0.0.0 +! +interface eth-rt2-2 + ip ospf network point-to-point + ip ospf hello-interval 2 + ip ospf dead-interval 10 + ip ospf area 0.0.0.0 +! +interface eth-rt5 + ip ospf network point-to-point + ip ospf hello-interval 2 + ip ospf dead-interval 10 + ip ospf area 0.0.0.0 +! +interface eth-rt6 + ip ospf network point-to-point + ip ospf hello-interval 2 + ip ospf dead-interval 10 + ip ospf area 0.0.0.0 +! +router ospf + ospf router-id 4.4.4.4 + network 4.4.4.4/32 area 0.0.0.0 + network 10.0.0.0/16 area 0.0.0.0 + capability opaque + !ospf opaque-lsa + mpls-te on + !mpls-te export + mpls-te router-address 4.4.4.4 + router-info area 0.0.0.0 + passive-interface lo + segment-routing on + segment-routing global-block 16000 23999 + !segment-routing local-block 15000 15999 + segment-routing node-msd 8 + segment-routing prefix 4.4.4.4/32 index 40 +! diff --git a/tests/topotests/ospf-sr-te-topo1/rt4/zebra.conf b/tests/topotests/ospf-sr-te-topo1/rt4/zebra.conf new file mode 100644 index 0000000000..c6d1f4f40e --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt4/zebra.conf @@ -0,0 +1,43 @@ +log file zebra.log +! +hostname rt4 +! +debug zebra kernel +debug zebra packet +debug zebra mpls +! +interface lo + ip address 4.4.4.4/32 +! +interface eth-rt2-1 + ip address 10.0.2.4/24 + link-params + enable + exit-link-params +!! +! +interface eth-rt2-2 + ip address 10.0.3.4/24 + link-params + enable + exit-link-params +!! +! +interface eth-rt5 + ip address 10.0.6.4/24 + link-params + enable + exit-link-params +!! +! +interface eth-rt6 + ip address 10.0.7.4/24 + link-params + enable + exit-link-params +!! +! +ip forwarding +! +line vty +! diff --git a/tests/topotests/ospf-sr-te-topo1/rt5/ospfd.conf b/tests/topotests/ospf-sr-te-topo1/rt5/ospfd.conf new file mode 100644 index 0000000000..fdc0dcfdb7 --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt5/ospfd.conf @@ -0,0 +1,53 @@ +hostname rt5 +log file ospfd.log +! +debug ospf sr +debug ospf te +debug ospf event +debug ospf lsa +debug ospf zebra +! +interface lo + ip ospf area 0.0.0.0 +! +interface eth-rt3-1 + ip ospf network point-to-point + ip ospf hello-interval 2 + ip ospf dead-interval 10 + ip ospf area 0.0.0.0 +! +interface eth-rt3-2 + ip ospf network point-to-point + ip ospf hello-interval 2 + ip ospf dead-interval 10 + ip ospf area 0.0.0.0 +! +interface eth-rt4 + ip ospf network point-to-point + ip ospf hello-interval 2 + ip ospf dead-interval 10 + ip ospf area 0.0.0.0 +! +interface eth-rt6 + ip ospf network point-to-point + ip ospf hello-interval 2 + ip ospf dead-interval 10 + ip ospf area 0.0.0.0 +! +router ospf + ospf router-id 5.5.5.5 + network 5.5.5.5/32 area 0.0.0.0 + network 10.0.0.0/16 area 0.0.0.0 + capability opaque +! ospf opaque-lsa + mpls-te on +! mpls-te export + mpls-te router-address 5.5.5.5 + router-info area 0.0.0.0 + passive-interface lo + segment-routing on + segment-routing global-block 16000 23999 +! segment-routing local-block 15000 15999 + segment-routing node-msd 8 + segment-routing prefix 5.5.5.5/32 index 50 +! diff --git a/tests/topotests/ospf-sr-te-topo1/rt5/zebra.conf b/tests/topotests/ospf-sr-te-topo1/rt5/zebra.conf new file mode 100644 index 0000000000..96b732d398 --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt5/zebra.conf @@ -0,0 +1,43 @@ +log file zebra.log +! +hostname rt5 +! +debug zebra kernel +debug zebra packet +debug zebra mpls +! +interface lo + ip address 5.5.5.5/32 +! +interface eth-rt3-1 + ip address 10.0.4.5/24 + link-params + enable + exit-link-params +!! +! +interface eth-rt3-2 + ip address 10.0.5.5/24 + link-params + enable + exit-link-params +!! +! +interface eth-rt4 + ip address 10.0.6.5/24 + link-params + enable + exit-link-params +!! +! +interface eth-rt6 + ip address 10.0.8.5/24 + link-params + enable + exit-link-params +!! +! +ip forwarding +! +line vty +! diff --git a/tests/topotests/ospf-sr-te-topo1/rt6/bgpd.conf b/tests/topotests/ospf-sr-te-topo1/rt6/bgpd.conf new file mode 100644 index 0000000000..e72ee52fce --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt6/bgpd.conf @@ -0,0 +1,12 @@ +log file bgpd.log +! +router bgp 1 + bgp router-id 6.6.6.6 + neighbor 1.1.1.1 remote-as 1 + neighbor 1.1.1.1 update-source lo + ! + address-family ipv4 unicast + redistribute static + neighbor 1.1.1.1 next-hop-self + exit-address-family +! diff --git a/tests/topotests/ospf-sr-te-topo1/rt6/ospfd.conf b/tests/topotests/ospf-sr-te-topo1/rt6/ospfd.conf new file mode 100644 index 0000000000..c06565be0b --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt6/ospfd.conf @@ -0,0 +1,41 @@ +hostname rt6 +log file ospfd.log +! +debug ospf sr +debug ospf te +debug ospf event +debug ospf lsa +debug ospf zebra +! +interface lo + ip ospf area 0.0.0.0 +! +interface eth-rt4 + ip ospf network point-to-point + ip ospf hello-interval 2 + ip ospf dead-interval 10 + ip ospf area 0.0.0.0 +! +interface eth-rt5 + ip ospf network point-to-point + ip ospf hello-interval 2 + ip ospf dead-interval 10 + ip ospf area 0.0.0.0 +! +router ospf + ospf router-id 6.6.6.6 + network 6.6.6.6/32 area 0.0.0.0 + network 10.0.0.0/16 area 0.0.0.0 + capability opaque +! ospf opaque-lsa + mpls-te on + mpls-te export + mpls-te router-address 6.6.6.6 + router-info area 0.0.0.0 + passive-interface lo + segment-routing on + segment-routing global-block 16000 23999 +! segment-routing local-block 15000 15999 + segment-routing node-msd 8 + segment-routing prefix 6.6.6.6/32 index 60 +! diff --git a/tests/topotests/ospf-sr-te-topo1/rt6/pathd.conf b/tests/topotests/ospf-sr-te-topo1/rt6/pathd.conf new file mode 100644 index 0000000000..696df2214b --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt6/pathd.conf @@ -0,0 +1,25 @@ +log file pathd.log +! +hostname rt6 +! +segment-routing + traffic-eng + mpls-te on + mpls-te import ospfv2 + segment-list default + index 10 nai adjacency 10.0.7.6 10.0.7.4 + index 20 nai adjacency 10.0.2.4 10.0.2.2 + index 30 nai adjacency 10.0.1.2 10.0.1.1 + ! + segment-list test + index 10 nai adjacency 10.0.8.6 10.0.8.5 + index 20 nai adjacency 10.0.6.5 10.0.6.4 + index 30 nai adjacency 10.0.2.4 10.0.2.2 + index 40 nai adjacency 10.0.1.2 10.0.1.1 + ! + policy color 1 endpoint 1.1.1.1 + name default + binding-sid 6666 + ! + ! +! diff --git a/tests/topotests/ospf-sr-te-topo1/rt6/step2/show_operational_data.ref b/tests/topotests/ospf-sr-te-topo1/rt6/step2/show_operational_data.ref new file mode 100644 index 0000000000..241c80bdd7 --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt6/step2/show_operational_data.ref @@ -0,0 +1,13 @@ +{ + "frr-pathd:pathd": { + "srte": { + "policy": [ + { + "color": 1, + "endpoint": "1.1.1.1", + "is-operational": false + } + ] + } + } +} diff --git a/tests/topotests/ospf-sr-te-topo1/rt6/step2/show_operational_data_with_candidate.ref b/tests/topotests/ospf-sr-te-topo1/rt6/step2/show_operational_data_with_candidate.ref new file mode 100644 index 0000000000..20ea69e386 --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt6/step2/show_operational_data_with_candidate.ref @@ -0,0 +1,19 @@ +{ + "frr-pathd:pathd": { + "srte": { + "policy": [ + { + "color": 1, + "endpoint": "1.1.1.1", + "is-operational": true, + "candidate-path": [ + { + "preference": 100, + "is-best-candidate-path": true + } + ] + } + ] + } + } +} diff --git a/tests/topotests/ospf-sr-te-topo1/rt6/step3/show_operational_data_with_single_candidate.ref b/tests/topotests/ospf-sr-te-topo1/rt6/step3/show_operational_data_with_single_candidate.ref new file mode 100644 index 0000000000..20ea69e386 --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt6/step3/show_operational_data_with_single_candidate.ref @@ -0,0 +1,19 @@ +{ + "frr-pathd:pathd": { + "srte": { + "policy": [ + { + "color": 1, + "endpoint": "1.1.1.1", + "is-operational": true, + "candidate-path": [ + { + "preference": 100, + "is-best-candidate-path": true + } + ] + } + ] + } + } +} diff --git a/tests/topotests/ospf-sr-te-topo1/rt6/step3/show_operational_data_with_two_candidates.ref b/tests/topotests/ospf-sr-te-topo1/rt6/step3/show_operational_data_with_two_candidates.ref new file mode 100644 index 0000000000..10cafe9091 --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt6/step3/show_operational_data_with_two_candidates.ref @@ -0,0 +1,23 @@ +{ + "frr-pathd:pathd": { + "srte": { + "policy": [ + { + "color": 1, + "endpoint": "1.1.1.1", + "is-operational": true, + "candidate-path": [ + { + "preference": 100, + "is-best-candidate-path": false + }, + { + "preference": 200, + "is-best-candidate-path": true + } + ] + } + ] + } + } +} diff --git a/tests/topotests/ospf-sr-te-topo1/rt6/zebra.conf b/tests/topotests/ospf-sr-te-topo1/rt6/zebra.conf new file mode 100644 index 0000000000..360837c4ca --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/rt6/zebra.conf @@ -0,0 +1,38 @@ +log file zebra.log +! +hostname rt6 +! +debug zebra kernel +debug zebra packet +debug zebra mpls +! +interface lo + ip address 6.6.6.6/32 +! +interface eth-rt4 + ip address 10.0.7.6/24 + link-params + enable + exit-link-params +!! +! +interface eth-rt5 + ip address 10.0.8.6/24 + link-params + enable + exit-link-params +!! +! +interface eth-dst + ip address 10.0.11.1/24 + link-params + enable + exit-link-params +!! +! +ip forwarding +! +ip route 9.9.9.2/32 10.0.11.2 +! +line vty +! diff --git a/tests/topotests/ospf-sr-te-topo1/test_ospf_sr_te_topo1.py b/tests/topotests/ospf-sr-te-topo1/test_ospf_sr_te_topo1.py new file mode 100755 index 0000000000..6c1122ab72 --- /dev/null +++ b/tests/topotests/ospf-sr-te-topo1/test_ospf_sr_te_topo1.py @@ -0,0 +1,640 @@ +#!/usr/bin/env python + +# +# test_ospf_sr_te_topo1.py +# +# Copyright (c) 2021 by +# Volta Networks +# +# Permission to use, copy, modify, and/or distribute this software +# for any purpose with or without fee is hereby granted, provided +# that the above copyright notice and this permission notice appear +# in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND NETDEF DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NETDEF BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY +# DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. +# + +""" +test_ospf_sr_te_topo1.py: + + +---------+ + | | + | RT1 | + | 1.1.1.1 | + | | + +---------+ + |eth-sw1 + | + | + | + +---------+ | +---------+ + | | | | | + | RT2 |eth-sw1 | eth-sw1| RT3 | + | 2.2.2.2 +----------+ + 3.3.3.3 | + | | 10.0.1.0/24 | | + +---------+ +---------+ + eth-rt4-1| eth-rt5-1| |eth-rt5-2 + | | | + 10.0.2.0/24| 10.0.4.0/24| |10.0.5.0/24 + | | | + eth-rt2-1| eth-rt3-1| |eth-rt3-2 + +---------+ +---------+ + | | | | + | RT4 | 10.0.6.0/24 | RT5 | + | 4.4.4.4 +---------------------+ 5.5.5.5 | + | |eth-rt5 eth-rt4| | + +---------+ +---------+ + eth-rt6| |eth-rt6 + | | + 10.0.7.0/24| |10.0.8.0/24 + | +---------+ | + | | | | + | | RT6 | | + +----------+ 6.6.6.6 +-----------+ + eth-rt4| |eth-rt5 + +---------+ + |eth-dst (.1) + | + |10.0.11.0/24 + | + |eth-rt6 (.2) + +---------+ + | | + | DST | + | 9.9.9.2 | + | | + +---------+ + +""" + +import os +import sys +import pytest +import json +import re +from time import sleep +from functools import partial + +# Save the Current Working Directory to find configuration files. +CWD = os.path.dirname(os.path.realpath(__file__)) +sys.path.append(os.path.join(CWD, "../")) + +# pylint: disable=C0413 +# Import topogen and topotest helpers +from lib import topotest +from lib.topogen import Topogen, TopoRouter, get_topogen +from lib.topolog import logger + +# Required to instantiate the topology builder class. +from mininet.topo import Topo + +pytestmark = [pytest.mark.bgpd, pytest.mark.ospfd, pytest.mark.pathd] + + +class TemplateTopo(Topo): + "Test topology builder" + + def build(self, *_args, **_opts): + "Build function" + tgen = get_topogen(self) + + # + # Define FRR Routers + # + for router in ["rt1", "rt2", "rt3", "rt4", "rt5", "rt6", "dst"]: + tgen.add_router(router) + + # + # Define connections + # + switch = tgen.add_switch("s1") + switch.add_link(tgen.gears["rt1"], nodeif="eth-sw1") + switch.add_link(tgen.gears["rt2"], nodeif="eth-sw1") + #switch.add_link(tgen.gears["rt3"], nodeif="eth-sw1") + + switch = tgen.add_switch("s2") + switch.add_link(tgen.gears["rt2"], nodeif="eth-rt4-1") + switch.add_link(tgen.gears["rt4"], nodeif="eth-rt2-1") + + #switch = tgen.add_switch("s3") + #switch.add_link(tgen.gears["rt2"], nodeif="eth-rt4-2") + #switch.add_link(tgen.gears["rt4"], nodeif="eth-rt2-2") + + switch = tgen.add_switch("s4") + switch.add_link(tgen.gears["rt3"], nodeif="eth-rt5-1") + switch.add_link(tgen.gears["rt5"], nodeif="eth-rt3-1") + + switch = tgen.add_switch("s5") + switch.add_link(tgen.gears["rt3"], nodeif="eth-rt5-2") + switch.add_link(tgen.gears["rt5"], nodeif="eth-rt3-2") + + switch = tgen.add_switch("s6") + switch.add_link(tgen.gears["rt4"], nodeif="eth-rt5") + switch.add_link(tgen.gears["rt5"], nodeif="eth-rt4") + + switch = tgen.add_switch("s7") + switch.add_link(tgen.gears["rt4"], nodeif="eth-rt6") + switch.add_link(tgen.gears["rt6"], nodeif="eth-rt4") + + switch = tgen.add_switch("s8") + switch.add_link(tgen.gears["rt5"], nodeif="eth-rt6") + switch.add_link(tgen.gears["rt6"], nodeif="eth-rt5") + + switch = tgen.add_switch("s9") + switch.add_link(tgen.gears["rt6"], nodeif="eth-dst") + switch.add_link(tgen.gears["dst"], nodeif="eth-rt6") + + +def setup_module(mod): + "Sets up the pytest environment" + + tgen = Topogen(TemplateTopo, mod.__name__) + + frrdir = tgen.config.get(tgen.CONFIG_SECTION, "frrdir") + if not os.path.isfile(os.path.join(frrdir, "pathd")): + pytest.skip("pathd daemon wasn't built in:"+frrdir) + + tgen.start_topology() + + router_list = tgen.routers() + + # For all registered routers, load the zebra configuration file + for rname, router in router_list.items(): + router.load_config( + TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname)) + ) + router.load_config( + TopoRouter.RD_OSPF, os.path.join(CWD, "{}/ospfd.conf".format(rname)) + ) + router.load_config( + TopoRouter.RD_PATH, os.path.join(CWD, "{}/pathd.conf".format(rname)) + ) + router.load_config( + TopoRouter.RD_BGP, os.path.join(CWD, "{}/bgpd.conf".format(rname)) + ) + + tgen.start_router() + + +def teardown_module(mod): + "Teardown the pytest environment" + tgen = get_topogen() + + # This function tears down the whole topology. + tgen.stop_topology() + + +def setup_testcase(msg): + logger.info(msg) + tgen = get_topogen() + + # Skip if previous fatal error condition is raised + if tgen.routers_have_failure(): + pytest.skip(tgen.errors) + + return tgen + + +def print_cmd_result(rname, command): + print(get_topogen().gears[rname].vtysh_cmd(command, isjson=False)) + + +def compare_json_test(router, command, reference, exact): + output = router.vtysh_cmd(command, isjson=True) + result = topotest.json_cmp(output, reference) + + # Note: topotest.json_cmp() just checks on inclusion of keys. + # For exact matching also compare the other way around. + if not result and exact: + return topotest.json_cmp(reference, output) + else: + return result + + +def cmp_json_output(rname, command, reference, exact=False): + "Compare router JSON output" + + logger.info('Comparing router "%s" "%s" output', rname, command) + + tgen = get_topogen() + filename = "{}/{}/{}".format(CWD, rname, reference) + expected = json.loads(open(filename).read()) + + # Run test function until we get an result. Wait at most 60 seconds. + test_func = partial(compare_json_test, tgen.gears[rname], command, expected, exact) + _, diff = topotest.run_and_expect(test_func, None, count=60, wait=0.5) + assertmsg = '"{}" JSON output mismatches the expected result'.format(rname) + assert diff is None, assertmsg + + +def cmp_json_output_exact(rname, command, reference): + return cmp_json_output(rname, command, reference, True) + + +def add_candidate_path(rname, endpoint, pref, name, segment_list="default"): + get_topogen().net[rname].cmd( + """ \ + vtysh -c "conf t" \ + -c "segment-routing" \ + -c "traffic-eng" \ + -c "policy color 1 endpoint """ + + endpoint + + """" \ + -c "candidate-path preference """ + + str(pref) + + """ name """ + + name + + """ explicit segment-list """ + + segment_list + + '''"''' + ) + + +def delete_candidate_path(rname, endpoint, pref): + get_topogen().net[rname].cmd( + """ \ + vtysh -c "conf t" \ + -c "segment-routing" \ + -c "traffic-eng" \ + -c "policy color 1 endpoint """ + + endpoint + + """" \ + -c "no candidate-path preference """ + + str(pref) + + '''"''' + ) + + +def add_segment(rname, name, index, label): + get_topogen().net[rname].cmd( + """ \ + vtysh -c "conf t" \ + -c "segment-routing" \ + -c "traffic-eng" \ + -c "segment-list """ + + name + + """" \ + -c "index """ + + str(index) + + """ mpls label """ + + str(label) + + '''"''' + ) + + +def delete_segment(rname, name, index): + get_topogen().net[rname].cmd( + """ \ + vtysh -c "conf t" \ + -c "segment-routing" \ + -c "traffic-eng" \ + -c "segment-list """ + + name + + """" \ + -c "no index """ + + str(index) + + '''"''' + ) + + +def add_segment_adj(rname, name, index, src, dst): + get_topogen().net[rname].cmd( + """ \ + vtysh -c "conf t" \ + -c "segment-routing" \ + -c "traffic-eng" \ + -c "segment-list """ + + name + + """" \ + -c "index """ + + str(index) + + """ nai adjacency """ + + str(src) + + """ """ + + str(dst) + + '''"''' + ) + + +def create_sr_policy(rname, endpoint, bsid): + get_topogen().net[rname].cmd( + """ \ + vtysh -c "conf t" \ + -c "segment-routing" \ + -c "traffic-eng" \ + -c "policy color 1 endpoint """ + + endpoint + + """" \ + -c "name default" \ + -c "binding-sid """ + + str(bsid) + + '''"''' + ) + + +def delete_sr_policy(rname, endpoint): + get_topogen().net[rname].cmd( + """ \ + vtysh -c "conf t" \ + -c "segment-routing" \ + -c "traffic-eng" \ + -c "no policy color 1 endpoint """ + + endpoint + + '''"''' + ) + + +def create_prefix_sid(rname, prefix, sid): + get_topogen().net[rname].cmd( + """ \ + vtysh -c "conf t" \ + -c "router ospf " \ + -c "segment-routing prefix """ + + prefix + + " index " + + str(sid) + + '''"''' + ) + + +def delete_prefix_sid(rname, prefix): + get_topogen().net[rname].cmd( + ''' \ + vtysh -c "conf t" \ + -c "router ospf " \ + -c "no segment-routing prefix "''' + + prefix + ) + + +def check_bsid(rt, bsid, fn_name, positive): + """ + Search for a bsid in rt1 and rt6 + Positive means that check is true is bsid is found + Positive="False" means that check is true is bsid is NOT found + """ + + logger.info('Checking "%s" bsid "%s" for router "%s" ', positive, bsid, rt) + + count = 0 + candidate_key = bsid + candidate_output = "" + # First wait for convergence + tgen = get_topogen() + while count < 30: + matched = False + matched_key = False + sleep(1) + count += 1 + router = tgen.gears[rt] + candidate_output = router.vtysh_cmd("show mpls table json") + candidate_output_json = json.loads(candidate_output) + for item in candidate_output_json.items(): + # logger.info('item "%s"', item) + if item[0] == candidate_key: + matched_key = True + if positive: + break + if positive: + if matched_key: + matched = True + assertmsg = "{} don't has entry {} but is was expected".format( + router.name, candidate_key) + else: + if not matched_key: + matched = True + assertmsg = "{} has entry {} but is wans't expected".format( + router.name, candidate_key) + if matched: + logger.info('Success "%s" in "%s"', router.name, fn_name) + return + assert matched, assertmsg + + +# +# Step 1 +# +# Checking the MPLS table using a single SR Policy and a single Candidate Path +# Segment list are base in adjacency that query TED +# +def test_srte_init_step1(): + setup_testcase("Test (step 1): wait OSPF convergence / label distribution") + + check_bsid("rt1", "1111", test_srte_init_step1.__name__, False) + check_bsid("rt6", "6666", test_srte_init_step1.__name__, False) + + +def test_srte_add_candidate_check_mpls_table_step1(): + setup_testcase("Test (step 1): check MPLS table regarding the added Candidate Path") + + for rname, endpoint in [("rt1", "6.6.6.6"), ("rt6", "1.1.1.1")]: + add_candidate_path(rname, endpoint, 100, "default") + check_bsid(rname, "1111" if rname == "rt1" else "6666", test_srte_init_step1.__name__, True) + delete_candidate_path(rname, endpoint, 100) + + +def test_srte_reinstall_sr_policy_check_mpls_table_step1(): + setup_testcase( + "Test (step 1): check MPLS table after the SR Policy was removed and reinstalled" + ) + + for rname, endpoint, bsid in [("rt1", "6.6.6.6", 1111), ("rt6", "1.1.1.1", 6666)]: + add_candidate_path(rname, endpoint, 100, "default") + delete_sr_policy(rname, endpoint) + check_bsid(rname, bsid, test_srte_init_step1.__name__, False) + create_sr_policy(rname, endpoint, bsid) + add_candidate_path(rname, endpoint, 100, "default") + check_bsid(rname, "1111" if rname == "rt1" else "6666", test_srte_init_step1.__name__, True) + delete_candidate_path(rname, endpoint, 100) + + +# +# Step 2 +# +# Checking pathd operational data using a single SR Policy and a single Candidate Path +# Segment list are base in adjacency that query TED +# +def test_srte_bare_policy_step2(): + setup_testcase("Test (step 2): bare SR Policy should not be operational") + + for rname in ["rt1", "rt6"]: + cmp_json_output_exact( + rname, + "show yang operational-data /frr-pathd:pathd pathd", + "step2/show_operational_data.ref", + ) + + +def test_srte_add_candidate_check_operational_data_step2(): + setup_testcase( + "Test (step 2): add single Candidate Path, SR Policy should be operational" + ) + + for rname, endpoint in [("rt1", "6.6.6.6"), ("rt6", "1.1.1.1")]: + add_candidate_path(rname, endpoint, 100, "default") + cmp_json_output( + rname, + "show yang operational-data /frr-pathd:pathd pathd", + "step2/show_operational_data_with_candidate.ref", + ) + + +def test_srte_config_remove_candidate_check_operational_data_step2(): + setup_testcase( + "Test (step 2): remove single Candidate Path, SR Policy should not be operational anymore" + ) + + for rname, endpoint in [("rt1", "6.6.6.6"), ("rt6", "1.1.1.1")]: + delete_candidate_path(rname, endpoint, 100) + cmp_json_output_exact( + rname, + "show yang operational-data /frr-pathd:pathd pathd", + "step2/show_operational_data.ref", + ) + + +# +# Step 3 +# +# Testing the Candidate Path selection +# Segment list are based in adjacencies resolved by query TED +# +def test_srte_add_two_candidates_step3(): + setup_testcase("Test (step 3): second Candidate Path has higher Priority") + + for rname, endpoint in [("rt1", "6.6.6.6"), ("rt6", "1.1.1.1")]: + for pref, cand_name in [("100", "first"), ("200", "second")]: + add_candidate_path(rname, endpoint, pref, cand_name) + cmp_json_output( + rname, + "show yang operational-data /frr-pathd:pathd pathd", + "step3/show_operational_data_with_two_candidates.ref", + ) + + # cleanup + for rname, endpoint in [("rt1", "6.6.6.6"), ("rt6", "1.1.1.1")]: + for pref in ["100", "200"]: + delete_candidate_path(rname, endpoint, pref) + + +def test_srte_add_two_candidates_with_reverse_priority_step3(): + setup_testcase("Test (step 3): second Candidate Path has lower Priority") + + # Use reversed priorities here + for rname, endpoint in [("rt1", "6.6.6.6"), ("rt6", "1.1.1.1")]: + for pref, cand_name in [("200", "first"), ("100", "second")]: + add_candidate_path(rname, endpoint, pref, cand_name) + cmp_json_output( + rname, + "show yang operational-data /frr-pathd:pathd pathd", + "step3/show_operational_data_with_two_candidates.ref", + ) + + # cleanup + for rname, endpoint in [("rt1", "6.6.6.6"), ("rt6", "1.1.1.1")]: + for pref in ["100", "200"]: + delete_candidate_path(rname, endpoint, pref) + + +def test_srte_remove_best_candidate_step3(): + setup_testcase("Test (step 3): delete the Candidate Path with higher priority") + + for rname, endpoint in [("rt1", "6.6.6.6"), ("rt6", "1.1.1.1")]: + for pref, cand_name in [("100", "first"), ("200", "second")]: + add_candidate_path(rname, endpoint, pref, cand_name) + + # Delete candidate with higher priority + for rname, endpoint in [("rt1", "6.6.6.6"), ("rt6", "1.1.1.1")]: + delete_candidate_path(rname, endpoint, 200) + + # Candidate with lower priority should get active now + for rname, endpoint in [("rt1", "6.6.6.6"), ("rt6", "1.1.1.1")]: + cmp_json_output( + rname, + "show yang operational-data /frr-pathd:pathd pathd", + "step3/show_operational_data_with_single_candidate.ref", + ) + # cleanup + delete_candidate_path(rname, endpoint, 100) + + +# +# Step 4 +# +# Checking MPLS table with a single SR Policy and a Candidate Path with different Segment Lists and other modifications +# Segment list are base in adjacency that query TED +# +def test_srte_change_segment_list_check_mpls_table_step4(): + setup_testcase("Test (step 4): check MPLS table for changed Segment List") + + for rname, endpoint in [("rt1", "6.6.6.6"), ("rt6", "1.1.1.1")]: + add_candidate_path(rname, endpoint, 100, "default") + # now change the segment list name + add_candidate_path(rname, endpoint, 100, "default", "test") + check_bsid(rname, "1111" if rname == "rt1" else "6666", test_srte_init_step1.__name__, True) + delete_segment(rname, "test", 10) + delete_segment(rname, "test", 20) + delete_segment(rname, "test", 30) + delete_segment(rname, "test", 40) + if rname == "rt1": + add_segment_adj(rname, "test", 10, "10.0.1.1", "10.0.1.2") + add_segment_adj(rname, "test", 20, "10.0.2.2", "10.0.2.4") + add_segment_adj(rname, "test", 30, "10.0.6.4", "10.0.6.5") + add_segment_adj(rname, "test", 40, "10.0.8.5", "10.0.8.6") + else: + add_segment_adj(rname, "test", 10, "10.0.8.6", "10.0.8.5") + add_segment_adj(rname, "test", 20, "10.0.6.5", "10.0.6.4") + add_segment_adj(rname, "test", 30, "10.0.2.4", "10.0.2.2") + add_segment_adj(rname, "test", 40, "10.0.1.2", "10.0.1.1") + check_bsid(rname, "1111" if rname == "rt1" else "6666", test_srte_init_step1.__name__, True) + delete_candidate_path(rname, endpoint, 100) + + +def test_srte_change_sl_priority_error_ted_check_mpls_table_step4(): + setup_testcase("Test (step 4): check MPLS table keeps low prio sl") + + for rname, endpoint in [("rt1", "6.6.6.6"), ("rt6", "1.1.1.1")]: + add_candidate_path(rname, endpoint, 100, "default") + # now change the segment list name + add_candidate_path(rname, endpoint, 200, "test", "test") + check_bsid(rname, "1111" if rname == "rt1" else "6666", test_srte_init_step1.__name__, True) + delete_segment(rname, "test", 10) + delete_segment(rname, "test", 20) + delete_segment(rname, "test", 30) + delete_segment(rname, "test", 40) + # These won't resolv + if rname == "rt1": + add_segment_adj(rname, "test", 10, "10.0.1.99", "10.0.1.99") + add_segment_adj(rname, "test", 20, "10.0.2.99", "10.0.2.99") + add_segment_adj(rname, "test", 30, "10.0.6.99", "10.0.6.99") + add_segment_adj(rname, "test", 40, "10.0.8.99", "10.0.8.99") + else: + add_segment_adj(rname, "test", 10, "10.0.8.99", "10.0.8.99") + add_segment_adj(rname, "test", 20, "10.0.6.99", "10.0.6.99") + add_segment_adj(rname, "test", 30, "10.0.2.99", "10.0.2.99") + add_segment_adj(rname, "test", 40, "10.0.1.99", "10.0.1.99") + # So policy sticks with default sl even higher prio + check_bsid(rname, "1111" if rname == "rt1" else "6666", test_srte_init_step1.__name__, True) + delete_candidate_path(rname, endpoint, 100) + + +# Memory leak test template +def test_memory_leak(): + "Run the memory leak test and report results." + tgen = get_topogen() + if not tgen.is_memleak_enabled(): + pytest.skip("Memory leak test/report is disabled") + + tgen.report_memory_leaks() + + +if __name__ == "__main__": + args = ["-s"] + sys.argv[1:] + sys.exit(pytest.main(args)) diff --git a/tests/topotests/ospf6-topo1/README.md b/tests/topotests/ospf6_topo1/README.md index 526c019c6a..526c019c6a 100644 --- a/tests/topotests/ospf6-topo1/README.md +++ b/tests/topotests/ospf6_topo1/README.md diff --git a/tests/topotests/ospf6-topo1-vrf/r1/ip_6_address.nhg.ref b/tests/topotests/ospf6_topo1/r1/ip_6_address.nhg.ref index 11fd9fe3c4..11fd9fe3c4 100644 --- a/tests/topotests/ospf6-topo1-vrf/r1/ip_6_address.nhg.ref +++ b/tests/topotests/ospf6_topo1/r1/ip_6_address.nhg.ref diff --git a/tests/topotests/ospf6-topo1/r1/ip_6_address.ref b/tests/topotests/ospf6_topo1/r1/ip_6_address.ref index 8c48f22381..8c48f22381 100644 --- a/tests/topotests/ospf6-topo1/r1/ip_6_address.ref +++ b/tests/topotests/ospf6_topo1/r1/ip_6_address.ref diff --git a/tests/topotests/ospf6-topo1/r1/ospf6d.conf b/tests/topotests/ospf6_topo1/r1/ospf6d.conf index 9f7e058931..9f7e058931 100644 --- a/tests/topotests/ospf6-topo1/r1/ospf6d.conf +++ b/tests/topotests/ospf6_topo1/r1/ospf6d.conf diff --git a/tests/topotests/ospf6-topo1/r1/show_ipv6_route.ref b/tests/topotests/ospf6_topo1/r1/show_ipv6_route.ref index a2ddf7c5ae..a2ddf7c5ae 100644 --- a/tests/topotests/ospf6-topo1/r1/show_ipv6_route.ref +++ b/tests/topotests/ospf6_topo1/r1/show_ipv6_route.ref diff --git a/tests/topotests/ospf6-topo1/r1/zebra.conf b/tests/topotests/ospf6_topo1/r1/zebra.conf index dfbcea8d21..dfbcea8d21 100644 --- a/tests/topotests/ospf6-topo1/r1/zebra.conf +++ b/tests/topotests/ospf6_topo1/r1/zebra.conf diff --git a/tests/topotests/ospf6-topo1/r2/ip_6_address.nhg.ref b/tests/topotests/ospf6_topo1/r2/ip_6_address.nhg.ref index 032acb5341..032acb5341 100644 --- a/tests/topotests/ospf6-topo1/r2/ip_6_address.nhg.ref +++ b/tests/topotests/ospf6_topo1/r2/ip_6_address.nhg.ref diff --git a/tests/topotests/ospf6-topo1/r2/ip_6_address.ref b/tests/topotests/ospf6_topo1/r2/ip_6_address.ref index edb6c864be..edb6c864be 100644 --- a/tests/topotests/ospf6-topo1/r2/ip_6_address.ref +++ b/tests/topotests/ospf6_topo1/r2/ip_6_address.ref diff --git a/tests/topotests/ospf6-topo1/r2/ospf6d.conf b/tests/topotests/ospf6_topo1/r2/ospf6d.conf index 26ebc2c0ea..26ebc2c0ea 100644 --- a/tests/topotests/ospf6-topo1/r2/ospf6d.conf +++ b/tests/topotests/ospf6_topo1/r2/ospf6d.conf diff --git a/tests/topotests/ospf6-topo1/r2/show_ipv6_route.ref b/tests/topotests/ospf6_topo1/r2/show_ipv6_route.ref index 1f642b1b22..1f642b1b22 100644 --- a/tests/topotests/ospf6-topo1/r2/show_ipv6_route.ref +++ b/tests/topotests/ospf6_topo1/r2/show_ipv6_route.ref diff --git a/tests/topotests/ospf6-topo1/r2/zebra.conf b/tests/topotests/ospf6_topo1/r2/zebra.conf index f05d1a60ff..f05d1a60ff 100644 --- a/tests/topotests/ospf6-topo1/r2/zebra.conf +++ b/tests/topotests/ospf6_topo1/r2/zebra.conf diff --git a/tests/topotests/ospf6-topo1/r3/ip_6_address.nhg.ref b/tests/topotests/ospf6_topo1/r3/ip_6_address.nhg.ref index 101fcc95b4..101fcc95b4 100644 --- a/tests/topotests/ospf6-topo1/r3/ip_6_address.nhg.ref +++ b/tests/topotests/ospf6_topo1/r3/ip_6_address.nhg.ref diff --git a/tests/topotests/ospf6-topo1/r3/ip_6_address.ref b/tests/topotests/ospf6_topo1/r3/ip_6_address.ref index 1a3a4ea86f..1a3a4ea86f 100644 --- a/tests/topotests/ospf6-topo1/r3/ip_6_address.ref +++ b/tests/topotests/ospf6_topo1/r3/ip_6_address.ref diff --git a/tests/topotests/ospf6-topo1/r3/ospf6d.conf b/tests/topotests/ospf6_topo1/r3/ospf6d.conf index e902496530..e902496530 100644 --- a/tests/topotests/ospf6-topo1/r3/ospf6d.conf +++ b/tests/topotests/ospf6_topo1/r3/ospf6d.conf diff --git a/tests/topotests/ospf6-topo1/r3/show_ipv6_route.ref b/tests/topotests/ospf6_topo1/r3/show_ipv6_route.ref index 8e3afa583a..8e3afa583a 100644 --- a/tests/topotests/ospf6-topo1/r3/show_ipv6_route.ref +++ b/tests/topotests/ospf6_topo1/r3/show_ipv6_route.ref diff --git a/tests/topotests/ospf6-topo1/r3/zebra.conf b/tests/topotests/ospf6_topo1/r3/zebra.conf index d8051c350d..d8051c350d 100644 --- a/tests/topotests/ospf6-topo1/r3/zebra.conf +++ b/tests/topotests/ospf6_topo1/r3/zebra.conf diff --git a/tests/topotests/ospf6-topo1/r4/ip_6_address.nhg.ref b/tests/topotests/ospf6_topo1/r4/ip_6_address.nhg.ref index 4f11670ce3..4f11670ce3 100644 --- a/tests/topotests/ospf6-topo1/r4/ip_6_address.nhg.ref +++ b/tests/topotests/ospf6_topo1/r4/ip_6_address.nhg.ref diff --git a/tests/topotests/ospf6-topo1/r4/ip_6_address.ref b/tests/topotests/ospf6_topo1/r4/ip_6_address.ref index cb3b745de5..cb3b745de5 100644 --- a/tests/topotests/ospf6-topo1/r4/ip_6_address.ref +++ b/tests/topotests/ospf6_topo1/r4/ip_6_address.ref diff --git a/tests/topotests/ospf6-topo1/r4/ospf6d.conf b/tests/topotests/ospf6_topo1/r4/ospf6d.conf index 5607a789de..5607a789de 100644 --- a/tests/topotests/ospf6-topo1/r4/ospf6d.conf +++ b/tests/topotests/ospf6_topo1/r4/ospf6d.conf diff --git a/tests/topotests/ospf6-topo1/r4/show_ipv6_route.ref b/tests/topotests/ospf6_topo1/r4/show_ipv6_route.ref index 0df652ffb3..0df652ffb3 100644 --- a/tests/topotests/ospf6-topo1/r4/show_ipv6_route.ref +++ b/tests/topotests/ospf6_topo1/r4/show_ipv6_route.ref diff --git a/tests/topotests/ospf6-topo1/r4/zebra.conf b/tests/topotests/ospf6_topo1/r4/zebra.conf index cada58bd01..cada58bd01 100644 --- a/tests/topotests/ospf6-topo1/r4/zebra.conf +++ b/tests/topotests/ospf6_topo1/r4/zebra.conf diff --git a/tests/topotests/ospf6-topo1/test_ospf6_topo1.py b/tests/topotests/ospf6_topo1/test_ospf6_topo1.py index f8c3476e18..f8c3476e18 100644 --- a/tests/topotests/ospf6-topo1/test_ospf6_topo1.py +++ b/tests/topotests/ospf6_topo1/test_ospf6_topo1.py diff --git a/tests/topotests/ospf6-topo1-vrf/README.md b/tests/topotests/ospf6_topo1_vrf/README.md index 3ed0b8fbe2..3ed0b8fbe2 100644 --- a/tests/topotests/ospf6-topo1-vrf/README.md +++ b/tests/topotests/ospf6_topo1_vrf/README.md diff --git a/tests/topotests/ospf6-topo1/r1/ip_6_address.nhg.ref b/tests/topotests/ospf6_topo1_vrf/r1/ip_6_address.nhg.ref index 11fd9fe3c4..11fd9fe3c4 100644 --- a/tests/topotests/ospf6-topo1/r1/ip_6_address.nhg.ref +++ b/tests/topotests/ospf6_topo1_vrf/r1/ip_6_address.nhg.ref diff --git a/tests/topotests/ospf6-topo1-vrf/r1/ip_6_address.ref b/tests/topotests/ospf6_topo1_vrf/r1/ip_6_address.ref index f17e1fed16..f17e1fed16 100644 --- a/tests/topotests/ospf6-topo1-vrf/r1/ip_6_address.ref +++ b/tests/topotests/ospf6_topo1_vrf/r1/ip_6_address.ref diff --git a/tests/topotests/ospf6-topo1-vrf/r1/ospf6d.conf b/tests/topotests/ospf6_topo1_vrf/r1/ospf6d.conf index ed480354e4..ed480354e4 100644 --- a/tests/topotests/ospf6-topo1-vrf/r1/ospf6d.conf +++ b/tests/topotests/ospf6_topo1_vrf/r1/ospf6d.conf diff --git a/tests/topotests/ospf6-topo1-vrf/r1/show_ipv6_vrf_route.ref b/tests/topotests/ospf6_topo1_vrf/r1/show_ipv6_vrf_route.ref index a2ddf7c5ae..a2ddf7c5ae 100644 --- a/tests/topotests/ospf6-topo1-vrf/r1/show_ipv6_vrf_route.ref +++ b/tests/topotests/ospf6_topo1_vrf/r1/show_ipv6_vrf_route.ref diff --git a/tests/topotests/ospf6-topo1-vrf/r1/zebra.conf b/tests/topotests/ospf6_topo1_vrf/r1/zebra.conf index abe8a9bc45..abe8a9bc45 100644 --- a/tests/topotests/ospf6-topo1-vrf/r1/zebra.conf +++ b/tests/topotests/ospf6_topo1_vrf/r1/zebra.conf diff --git a/tests/topotests/ospf6-topo1-vrf/r2/ip_6_address.ref b/tests/topotests/ospf6_topo1_vrf/r2/ip_6_address.ref index 1a3e67bb09..1a3e67bb09 100644 --- a/tests/topotests/ospf6-topo1-vrf/r2/ip_6_address.ref +++ b/tests/topotests/ospf6_topo1_vrf/r2/ip_6_address.ref diff --git a/tests/topotests/ospf6-topo1-vrf/r2/ospf6d.conf b/tests/topotests/ospf6_topo1_vrf/r2/ospf6d.conf index 485771e7d5..485771e7d5 100644 --- a/tests/topotests/ospf6-topo1-vrf/r2/ospf6d.conf +++ b/tests/topotests/ospf6_topo1_vrf/r2/ospf6d.conf diff --git a/tests/topotests/ospf6-topo1-vrf/r2/show_ipv6_vrf_route.ref b/tests/topotests/ospf6_topo1_vrf/r2/show_ipv6_vrf_route.ref index 3289619414..3289619414 100644 --- a/tests/topotests/ospf6-topo1-vrf/r2/show_ipv6_vrf_route.ref +++ b/tests/topotests/ospf6_topo1_vrf/r2/show_ipv6_vrf_route.ref diff --git a/tests/topotests/ospf6-topo1-vrf/r2/zebra.conf b/tests/topotests/ospf6_topo1_vrf/r2/zebra.conf index e1011bd3b6..e1011bd3b6 100644 --- a/tests/topotests/ospf6-topo1-vrf/r2/zebra.conf +++ b/tests/topotests/ospf6_topo1_vrf/r2/zebra.conf diff --git a/tests/topotests/ospf6-topo1-vrf/r3/ip_6_address.ref b/tests/topotests/ospf6_topo1_vrf/r3/ip_6_address.ref index d70027fb9e..d70027fb9e 100644 --- a/tests/topotests/ospf6-topo1-vrf/r3/ip_6_address.ref +++ b/tests/topotests/ospf6_topo1_vrf/r3/ip_6_address.ref diff --git a/tests/topotests/ospf6-topo1-vrf/r3/ospf6d.conf b/tests/topotests/ospf6_topo1_vrf/r3/ospf6d.conf index f5837bf6fd..f5837bf6fd 100644 --- a/tests/topotests/ospf6-topo1-vrf/r3/ospf6d.conf +++ b/tests/topotests/ospf6_topo1_vrf/r3/ospf6d.conf diff --git a/tests/topotests/ospf6-topo1-vrf/r3/show_ipv6_vrf_route.ref b/tests/topotests/ospf6_topo1_vrf/r3/show_ipv6_vrf_route.ref index ac713190ff..ac713190ff 100644 --- a/tests/topotests/ospf6-topo1-vrf/r3/show_ipv6_vrf_route.ref +++ b/tests/topotests/ospf6_topo1_vrf/r3/show_ipv6_vrf_route.ref diff --git a/tests/topotests/ospf6-topo1-vrf/r3/zebra.conf b/tests/topotests/ospf6_topo1_vrf/r3/zebra.conf index f489f3ac73..f489f3ac73 100644 --- a/tests/topotests/ospf6-topo1-vrf/r3/zebra.conf +++ b/tests/topotests/ospf6_topo1_vrf/r3/zebra.conf diff --git a/tests/topotests/ospf6-topo1-vrf/r4/ip_6_address.ref b/tests/topotests/ospf6_topo1_vrf/r4/ip_6_address.ref index 0883f3c588..0883f3c588 100644 --- a/tests/topotests/ospf6-topo1-vrf/r4/ip_6_address.ref +++ b/tests/topotests/ospf6_topo1_vrf/r4/ip_6_address.ref diff --git a/tests/topotests/ospf6-topo1-vrf/r4/ospf6d.conf b/tests/topotests/ospf6_topo1_vrf/r4/ospf6d.conf index ab67d06ff4..ab67d06ff4 100644 --- a/tests/topotests/ospf6-topo1-vrf/r4/ospf6d.conf +++ b/tests/topotests/ospf6_topo1_vrf/r4/ospf6d.conf diff --git a/tests/topotests/ospf6-topo1-vrf/r4/show_ipv6_vrf_route.ref b/tests/topotests/ospf6_topo1_vrf/r4/show_ipv6_vrf_route.ref index 0df652ffb3..0df652ffb3 100644 --- a/tests/topotests/ospf6-topo1-vrf/r4/show_ipv6_vrf_route.ref +++ b/tests/topotests/ospf6_topo1_vrf/r4/show_ipv6_vrf_route.ref diff --git a/tests/topotests/ospf6-topo1-vrf/r4/zebra.conf b/tests/topotests/ospf6_topo1_vrf/r4/zebra.conf index c59116df8c..c59116df8c 100644 --- a/tests/topotests/ospf6-topo1-vrf/r4/zebra.conf +++ b/tests/topotests/ospf6_topo1_vrf/r4/zebra.conf diff --git a/tests/topotests/ospf6-topo1-vrf/test_ospf6_topo1_vrf.py b/tests/topotests/ospf6_topo1_vrf/test_ospf6_topo1_vrf.py index fa2784ee7e..fa2784ee7e 100755 --- a/tests/topotests/ospf6-topo1-vrf/test_ospf6_topo1_vrf.py +++ b/tests/topotests/ospf6_topo1_vrf/test_ospf6_topo1_vrf.py diff --git a/tests/topotests/ospf6-topo2/r1/ospf6d.conf b/tests/topotests/ospf6_topo2/r1/ospf6d.conf index c403fcd8dc..c403fcd8dc 100644 --- a/tests/topotests/ospf6-topo2/r1/ospf6d.conf +++ b/tests/topotests/ospf6_topo2/r1/ospf6d.conf diff --git a/tests/topotests/ospf6-topo2/r1/zebra.conf b/tests/topotests/ospf6_topo2/r1/zebra.conf index 7fee2da8ba..7fee2da8ba 100644 --- a/tests/topotests/ospf6-topo2/r1/zebra.conf +++ b/tests/topotests/ospf6_topo2/r1/zebra.conf diff --git a/tests/topotests/ospf6-topo2/r2/ospf6d.conf b/tests/topotests/ospf6_topo2/r2/ospf6d.conf index d4bb0e2a41..d4bb0e2a41 100644 --- a/tests/topotests/ospf6-topo2/r2/ospf6d.conf +++ b/tests/topotests/ospf6_topo2/r2/ospf6d.conf diff --git a/tests/topotests/ospf6-topo2/r2/zebra.conf b/tests/topotests/ospf6_topo2/r2/zebra.conf index 891945a4e7..891945a4e7 100644 --- a/tests/topotests/ospf6-topo2/r2/zebra.conf +++ b/tests/topotests/ospf6_topo2/r2/zebra.conf diff --git a/tests/topotests/ospf6-topo2/r3/ospf6d.conf b/tests/topotests/ospf6_topo2/r3/ospf6d.conf index aaef00d5bb..aaef00d5bb 100644 --- a/tests/topotests/ospf6-topo2/r3/ospf6d.conf +++ b/tests/topotests/ospf6_topo2/r3/ospf6d.conf diff --git a/tests/topotests/ospf6-topo2/r3/zebra.conf b/tests/topotests/ospf6_topo2/r3/zebra.conf index dea2fe4778..dea2fe4778 100644 --- a/tests/topotests/ospf6-topo2/r3/zebra.conf +++ b/tests/topotests/ospf6_topo2/r3/zebra.conf diff --git a/tests/topotests/ospf6-topo2/test_ospf6_topo2.dot b/tests/topotests/ospf6_topo2/test_ospf6_topo2.dot index ba7a36f2b5..ba7a36f2b5 100644 --- a/tests/topotests/ospf6-topo2/test_ospf6_topo2.dot +++ b/tests/topotests/ospf6_topo2/test_ospf6_topo2.dot diff --git a/tests/topotests/ospf6-topo2/test_ospf6_topo2.png b/tests/topotests/ospf6_topo2/test_ospf6_topo2.png Binary files differindex ee1de60736..ee1de60736 100644 --- a/tests/topotests/ospf6-topo2/test_ospf6_topo2.png +++ b/tests/topotests/ospf6_topo2/test_ospf6_topo2.png diff --git a/tests/topotests/ospf6-topo2/test_ospf6_topo2.py b/tests/topotests/ospf6_topo2/test_ospf6_topo2.py index efc8565bb3..efc8565bb3 100644 --- a/tests/topotests/ospf6-topo2/test_ospf6_topo2.py +++ b/tests/topotests/ospf6_topo2/test_ospf6_topo2.py diff --git a/tests/topotests/ospf-dual-stack/test_ospf_dual_stack.dot b/tests/topotests/ospf_dual_stack/test_ospf_dual_stack.dot index 2c6d0aab16..2c6d0aab16 100644 --- a/tests/topotests/ospf-dual-stack/test_ospf_dual_stack.dot +++ b/tests/topotests/ospf_dual_stack/test_ospf_dual_stack.dot diff --git a/tests/topotests/ospf-dual-stack/test_ospf_dual_stack.jpg b/tests/topotests/ospf_dual_stack/test_ospf_dual_stack.jpg Binary files differindex 44efda8390..44efda8390 100644 --- a/tests/topotests/ospf-dual-stack/test_ospf_dual_stack.jpg +++ b/tests/topotests/ospf_dual_stack/test_ospf_dual_stack.jpg diff --git a/tests/topotests/ospf-dual-stack/test_ospf_dual_stack.json b/tests/topotests/ospf_dual_stack/test_ospf_dual_stack.json index c8a3ce783b..c8a3ce783b 100644 --- a/tests/topotests/ospf-dual-stack/test_ospf_dual_stack.json +++ b/tests/topotests/ospf_dual_stack/test_ospf_dual_stack.json diff --git a/tests/topotests/ospf-dual-stack/test_ospf_dual_stack.py b/tests/topotests/ospf_dual_stack/test_ospf_dual_stack.py index 5e7802fa04..5e7802fa04 100644 --- a/tests/topotests/ospf-dual-stack/test_ospf_dual_stack.py +++ b/tests/topotests/ospf_dual_stack/test_ospf_dual_stack.py diff --git a/tests/topotests/ospf-sr-topo1/__init__.py b/tests/topotests/ospf_sr_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/ospf-sr-topo1/__init__.py +++ b/tests/topotests/ospf_sr_topo1/__init__.py diff --git a/tests/topotests/ospf-sr-topo1/rt1/ospfd.conf b/tests/topotests/ospf_sr_topo1/rt1/ospfd.conf index 94dba7c061..94dba7c061 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/ospfd.conf +++ b/tests/topotests/ospf_sr_topo1/rt1/ospfd.conf diff --git a/tests/topotests/ospf-sr-topo1/rt1/step1/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt1/step1/show_ip_route.ref index 374184e60a..374184e60a 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step1/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step1/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/step1/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt1/step1/show_mpls_table.ref index de906c270d..de906c270d 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step1/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step1/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/step10/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt1/step10/show_ip_route.ref index 37f73629fd..37f73629fd 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step10/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step10/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/step10/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt1/step10/show_mpls_table.ref index 2006392564..2006392564 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step10/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step10/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/step2/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt1/step2/show_ip_route.ref index 37f73629fd..37f73629fd 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step2/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step2/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/step2/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt1/step2/show_mpls_table.ref index de906c270d..de906c270d 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step2/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step2/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/step3/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt1/step3/show_ip_route.ref index f6ead5cb91..f6ead5cb91 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step3/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step3/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/step3/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt1/step3/show_mpls_table.ref index 96e05913ed..96e05913ed 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step3/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step3/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/step4/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt1/step4/show_ip_route.ref index 37f73629fd..37f73629fd 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step4/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step4/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/step4/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt1/step4/show_mpls_table.ref index de906c270d..de906c270d 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step4/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step4/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/step5/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt1/step5/show_ip_route.ref index f2b8924b85..f2b8924b85 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step5/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step5/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/step5/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt1/step5/show_mpls_table.ref index 96e05913ed..96e05913ed 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step5/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step5/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/step6/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt1/step6/show_ip_route.ref index 37f73629fd..37f73629fd 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step6/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step6/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/step6/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt1/step6/show_mpls_table.ref index de906c270d..de906c270d 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step6/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step6/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/step7/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt1/step7/show_ip_route.ref index 37f73629fd..37f73629fd 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step7/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step7/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/step7/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt1/step7/show_mpls_table.ref index de906c270d..de906c270d 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step7/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step7/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/step8/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt1/step8/show_ip_route.ref index 37f73629fd..37f73629fd 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step8/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step8/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/step8/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt1/step8/show_mpls_table.ref index de906c270d..de906c270d 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step8/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step8/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/step9/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt1/step9/show_ip_route.ref index 37f73629fd..37f73629fd 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step9/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step9/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/step9/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt1/step9/show_mpls_table.ref index 2006392564..2006392564 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/step9/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt1/step9/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt1/zebra.conf b/tests/topotests/ospf_sr_topo1/rt1/zebra.conf index 7d3139a80e..7d3139a80e 100644 --- a/tests/topotests/ospf-sr-topo1/rt1/zebra.conf +++ b/tests/topotests/ospf_sr_topo1/rt1/zebra.conf diff --git a/tests/topotests/ospf-sr-topo1/rt2/ospfd.conf b/tests/topotests/ospf_sr_topo1/rt2/ospfd.conf index b47e788062..b47e788062 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/ospfd.conf +++ b/tests/topotests/ospf_sr_topo1/rt2/ospfd.conf diff --git a/tests/topotests/ospf-sr-topo1/rt2/step1/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt2/step1/show_ip_route.ref index 3dde042b51..3dde042b51 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step1/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step1/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/step1/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt2/step1/show_mpls_table.ref index eba7c403d3..eba7c403d3 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step1/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step1/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/step10/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt2/step10/show_ip_route.ref index 9a06059df2..9a06059df2 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step10/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step10/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/step10/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt2/step10/show_mpls_table.ref index be44a7521d..be44a7521d 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step10/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step10/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/step2/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt2/step2/show_ip_route.ref index 384aac032d..384aac032d 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step2/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step2/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/step2/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt2/step2/show_mpls_table.ref index 5088aa2f7a..5088aa2f7a 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step2/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step2/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/step3/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt2/step3/show_ip_route.ref index 879cd1e0c5..879cd1e0c5 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step3/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step3/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/step3/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt2/step3/show_mpls_table.ref index 6333e7f7f9..6333e7f7f9 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step3/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step3/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/step4/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt2/step4/show_ip_route.ref index 384aac032d..384aac032d 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step4/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step4/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/step4/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt2/step4/show_mpls_table.ref index 5088aa2f7a..5088aa2f7a 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step4/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step4/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/step5/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt2/step5/show_ip_route.ref index 07edd42dc8..07edd42dc8 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step5/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step5/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/step5/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt2/step5/show_mpls_table.ref index 6333e7f7f9..6333e7f7f9 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step5/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step5/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/step6/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt2/step6/show_ip_route.ref index 384aac032d..384aac032d 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step6/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step6/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/step6/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt2/step6/show_mpls_table.ref index 5088aa2f7a..5088aa2f7a 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step6/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step6/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/step7/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt2/step7/show_ip_route.ref index 274931bef7..274931bef7 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step7/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step7/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/step7/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt2/step7/show_mpls_table.ref index cd23725a80..cd23725a80 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step7/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step7/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/step8/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt2/step8/show_ip_route.ref index 384aac032d..384aac032d 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step8/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step8/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/step8/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt2/step8/show_mpls_table.ref index 5088aa2f7a..5088aa2f7a 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step8/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step8/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/step9/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt2/step9/show_ip_route.ref index c71515f3ff..c71515f3ff 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step9/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step9/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/step9/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt2/step9/show_mpls_table.ref index 2f06641f7f..2f06641f7f 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/step9/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt2/step9/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt2/zebra.conf b/tests/topotests/ospf_sr_topo1/rt2/zebra.conf index c4ed4276d9..c4ed4276d9 100644 --- a/tests/topotests/ospf-sr-topo1/rt2/zebra.conf +++ b/tests/topotests/ospf_sr_topo1/rt2/zebra.conf diff --git a/tests/topotests/ospf-sr-topo1/rt3/ospfd.conf b/tests/topotests/ospf_sr_topo1/rt3/ospfd.conf index 238d82ff97..238d82ff97 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/ospfd.conf +++ b/tests/topotests/ospf_sr_topo1/rt3/ospfd.conf diff --git a/tests/topotests/ospf-sr-topo1/rt3/step1/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt3/step1/show_ip_route.ref index 4b1500ef97..4b1500ef97 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step1/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step1/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/step1/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt3/step1/show_mpls_table.ref index 39cc3e8ffd..39cc3e8ffd 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step1/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step1/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/step10/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt3/step10/show_ip_route.ref index 14a2ac1e8a..14a2ac1e8a 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step10/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step10/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/step10/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt3/step10/show_mpls_table.ref index a0f7c790a0..a0f7c790a0 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step10/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step10/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/step2/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt3/step2/show_ip_route.ref index 63c6a1845f..63c6a1845f 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step2/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step2/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/step2/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt3/step2/show_mpls_table.ref index 1ab2242b7e..1ab2242b7e 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step2/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step2/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/step3/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt3/step3/show_ip_route.ref index 0894c51cf2..0894c51cf2 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step3/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step3/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/step3/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt3/step3/show_mpls_table.ref index 4dcaedeca1..4dcaedeca1 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step3/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step3/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/step4/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt3/step4/show_ip_route.ref index 63c6a1845f..63c6a1845f 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step4/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step4/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/step4/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt3/step4/show_mpls_table.ref index 1ab2242b7e..1ab2242b7e 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step4/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step4/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/step5/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt3/step5/show_ip_route.ref index 3e74ff039c..3e74ff039c 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step5/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step5/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/step5/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt3/step5/show_mpls_table.ref index 4dcaedeca1..4dcaedeca1 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step5/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step5/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/step6/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt3/step6/show_ip_route.ref index 63c6a1845f..63c6a1845f 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step6/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step6/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/step6/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt3/step6/show_mpls_table.ref index 1ab2242b7e..1ab2242b7e 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step6/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step6/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/step7/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt3/step7/show_ip_route.ref index 41544d4296..41544d4296 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step7/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step7/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/step7/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt3/step7/show_mpls_table.ref index bf055bad78..bf055bad78 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step7/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step7/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/step8/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt3/step8/show_ip_route.ref index 63c6a1845f..63c6a1845f 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step8/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step8/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/step8/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt3/step8/show_mpls_table.ref index 1ab2242b7e..1ab2242b7e 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step8/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step8/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/step9/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt3/step9/show_ip_route.ref index 14a2ac1e8a..14a2ac1e8a 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step9/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step9/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/step9/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt3/step9/show_mpls_table.ref index a0f7c790a0..a0f7c790a0 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/step9/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt3/step9/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt3/zebra.conf b/tests/topotests/ospf_sr_topo1/rt3/zebra.conf index 89a781fe3c..89a781fe3c 100644 --- a/tests/topotests/ospf-sr-topo1/rt3/zebra.conf +++ b/tests/topotests/ospf_sr_topo1/rt3/zebra.conf diff --git a/tests/topotests/ospf-sr-topo1/rt4/ospfd.conf b/tests/topotests/ospf_sr_topo1/rt4/ospfd.conf index b12e0729ad..b12e0729ad 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/ospfd.conf +++ b/tests/topotests/ospf_sr_topo1/rt4/ospfd.conf diff --git a/tests/topotests/ospf-sr-topo1/rt4/step1/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt4/step1/show_ip_route.ref index 4a2d3aa10f..4a2d3aa10f 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step1/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step1/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/step1/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt4/step1/show_mpls_table.ref index 3246d22842..3246d22842 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step1/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step1/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/step10/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt4/step10/show_ip_route.ref index db4cf5b3f5..db4cf5b3f5 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step10/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step10/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/step10/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt4/step10/show_mpls_table.ref index 58cf526a83..58cf526a83 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step10/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step10/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/step2/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt4/step2/show_ip_route.ref index c44b3eef30..c44b3eef30 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step2/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step2/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/step2/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt4/step2/show_mpls_table.ref index 05f9f28cbd..05f9f28cbd 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step2/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step2/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/step3/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt4/step3/show_ip_route.ref index a078dd2daf..a078dd2daf 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step3/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step3/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/step3/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt4/step3/show_mpls_table.ref index f5515636d2..f5515636d2 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step3/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step3/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/step4/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt4/step4/show_ip_route.ref index b63812ab1d..b63812ab1d 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step4/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step4/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/step4/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt4/step4/show_mpls_table.ref index f2e56c2e19..f2e56c2e19 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step4/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step4/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/step5/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt4/step5/show_ip_route.ref index 3157ae1ea1..3157ae1ea1 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step5/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step5/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/step5/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt4/step5/show_mpls_table.ref index 8213840652..8213840652 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step5/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step5/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/step6/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt4/step6/show_ip_route.ref index b63812ab1d..b63812ab1d 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step6/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step6/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/step6/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt4/step6/show_mpls_table.ref index f2e56c2e19..f2e56c2e19 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step6/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step6/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/step7/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt4/step7/show_ip_route.ref index 775d8c4034..775d8c4034 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step7/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step7/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/step7/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt4/step7/show_mpls_table.ref index 8a5fdef806..8a5fdef806 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step7/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step7/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/step8/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt4/step8/show_ip_route.ref index b63812ab1d..b63812ab1d 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step8/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step8/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/step8/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt4/step8/show_mpls_table.ref index f2e56c2e19..f2e56c2e19 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step8/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step8/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/step9/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt4/step9/show_ip_route.ref index 48e306d393..48e306d393 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step9/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step9/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/step9/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt4/step9/show_mpls_table.ref index 275abab715..275abab715 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/step9/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt4/step9/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt4/zebra.conf b/tests/topotests/ospf_sr_topo1/rt4/zebra.conf index 13c621eb31..13c621eb31 100644 --- a/tests/topotests/ospf-sr-topo1/rt4/zebra.conf +++ b/tests/topotests/ospf_sr_topo1/rt4/zebra.conf diff --git a/tests/topotests/ospf-sr-topo1/rt5/ospfd.conf b/tests/topotests/ospf_sr_topo1/rt5/ospfd.conf index 4e7b24c03a..4e7b24c03a 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/ospfd.conf +++ b/tests/topotests/ospf_sr_topo1/rt5/ospfd.conf diff --git a/tests/topotests/ospf-sr-topo1/rt5/step1/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt5/step1/show_ip_route.ref index 0a43788a18..0a43788a18 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step1/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step1/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/step1/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt5/step1/show_mpls_table.ref index e8c46085be..e8c46085be 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step1/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step1/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/step10/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt5/step10/show_ip_route.ref index 2bad2eb7bf..2bad2eb7bf 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step10/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step10/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/step10/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt5/step10/show_mpls_table.ref index c5ed18d76f..c5ed18d76f 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step10/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step10/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/step2/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt5/step2/show_ip_route.ref index 3572ec713f..3572ec713f 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step2/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step2/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/step2/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt5/step2/show_mpls_table.ref index d9cadeb513..d9cadeb513 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step2/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step2/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/step3/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt5/step3/show_ip_route.ref index 2f7b0cc242..2f7b0cc242 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step3/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step3/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/step3/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt5/step3/show_mpls_table.ref index 7c78d2ce53..7c78d2ce53 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step3/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step3/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/step4/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt5/step4/show_ip_route.ref index 1a12715086..1a12715086 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step4/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step4/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/step4/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt5/step4/show_mpls_table.ref index 42e476e9d1..42e476e9d1 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step4/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step4/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/step5/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt5/step5/show_ip_route.ref index e50fa10ccb..e50fa10ccb 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step5/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step5/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/step5/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt5/step5/show_mpls_table.ref index bb95379228..bb95379228 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step5/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step5/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/step6/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt5/step6/show_ip_route.ref index 1a12715086..1a12715086 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step6/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step6/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/step6/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt5/step6/show_mpls_table.ref index 42e476e9d1..42e476e9d1 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step6/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step6/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/step7/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt5/step7/show_ip_route.ref index 15a024d18b..15a024d18b 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step7/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step7/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/step7/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt5/step7/show_mpls_table.ref index cff0d25e25..cff0d25e25 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step7/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step7/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/step8/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt5/step8/show_ip_route.ref index 1a12715086..1a12715086 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step8/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step8/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/step8/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt5/step8/show_mpls_table.ref index 42e476e9d1..42e476e9d1 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step8/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step8/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/step9/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt5/step9/show_ip_route.ref index d9ddad2462..d9ddad2462 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step9/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step9/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/step9/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt5/step9/show_mpls_table.ref index c5ed18d76f..c5ed18d76f 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/step9/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt5/step9/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt5/zebra.conf b/tests/topotests/ospf_sr_topo1/rt5/zebra.conf index ca2d6df665..ca2d6df665 100644 --- a/tests/topotests/ospf-sr-topo1/rt5/zebra.conf +++ b/tests/topotests/ospf_sr_topo1/rt5/zebra.conf diff --git a/tests/topotests/ospf-sr-topo1/rt6/ospfd.conf b/tests/topotests/ospf_sr_topo1/rt6/ospfd.conf index c6d07d169e..c6d07d169e 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/ospfd.conf +++ b/tests/topotests/ospf_sr_topo1/rt6/ospfd.conf diff --git a/tests/topotests/ospf-sr-topo1/rt6/step1/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt6/step1/show_ip_route.ref index 9f05ec7688..9f05ec7688 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step1/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step1/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/step1/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt6/step1/show_mpls_table.ref index baa2314454..baa2314454 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step1/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step1/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/step10/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt6/step10/show_ip_route.ref index 6abb3805a2..6abb3805a2 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step10/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step10/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/step10/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt6/step10/show_mpls_table.ref index 09ecec29d9..09ecec29d9 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step10/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step10/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/step2/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt6/step2/show_ip_route.ref index 80b3c426d4..80b3c426d4 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step2/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step2/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/step2/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt6/step2/show_mpls_table.ref index baa2314454..baa2314454 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step2/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step2/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/step3/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt6/step3/show_ip_route.ref index 2c63c08510..2c63c08510 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step3/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step3/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/step3/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt6/step3/show_mpls_table.ref index 2c63c08510..2c63c08510 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step3/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step3/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/step4/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt6/step4/show_ip_route.ref index 80b3c426d4..80b3c426d4 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step4/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step4/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/step4/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt6/step4/show_mpls_table.ref index 09ecec29d9..09ecec29d9 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step4/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step4/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/step5/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt6/step5/show_ip_route.ref index 0e4b3eba12..0e4b3eba12 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step5/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step5/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/step5/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt6/step5/show_mpls_table.ref index 2c63c08510..2c63c08510 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step5/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step5/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/step6/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt6/step6/show_ip_route.ref index 80b3c426d4..80b3c426d4 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step6/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step6/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/step6/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt6/step6/show_mpls_table.ref index 09ecec29d9..09ecec29d9 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step6/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step6/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/step7/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt6/step7/show_ip_route.ref index aa2329a04a..aa2329a04a 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step7/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step7/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/step7/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt6/step7/show_mpls_table.ref index 800b1ae2fd..800b1ae2fd 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step7/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step7/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/step8/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt6/step8/show_ip_route.ref index 80b3c426d4..80b3c426d4 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step8/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step8/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/step8/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt6/step8/show_mpls_table.ref index 09ecec29d9..09ecec29d9 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step8/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step8/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/step9/show_ip_route.ref b/tests/topotests/ospf_sr_topo1/rt6/step9/show_ip_route.ref index 80b3c426d4..80b3c426d4 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step9/show_ip_route.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step9/show_ip_route.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/step9/show_mpls_table.ref b/tests/topotests/ospf_sr_topo1/rt6/step9/show_mpls_table.ref index 09ecec29d9..09ecec29d9 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/step9/show_mpls_table.ref +++ b/tests/topotests/ospf_sr_topo1/rt6/step9/show_mpls_table.ref diff --git a/tests/topotests/ospf-sr-topo1/rt6/zebra.conf b/tests/topotests/ospf_sr_topo1/rt6/zebra.conf index 4b739d0bca..4b739d0bca 100644 --- a/tests/topotests/ospf-sr-topo1/rt6/zebra.conf +++ b/tests/topotests/ospf_sr_topo1/rt6/zebra.conf diff --git a/tests/topotests/ospf-sr-topo1/test_ospf_sr_topo1.py b/tests/topotests/ospf_sr_topo1/test_ospf_sr_topo1.py index b6e5e14830..b6e5e14830 100644 --- a/tests/topotests/ospf-sr-topo1/test_ospf_sr_topo1.py +++ b/tests/topotests/ospf_sr_topo1/test_ospf_sr_topo1.py diff --git a/tests/topotests/ospf-te-topo1/__init__.py b/tests/topotests/ospf_te_topo1/__init__.py index e69de29bb2..e69de29bb2 100755 --- a/tests/topotests/ospf-te-topo1/__init__.py +++ b/tests/topotests/ospf_te_topo1/__init__.py diff --git a/tests/topotests/ospf-te-topo1/r1/ospfd.conf b/tests/topotests/ospf_te_topo1/r1/ospfd.conf index 312dd2697e..312dd2697e 100644 --- a/tests/topotests/ospf-te-topo1/r1/ospfd.conf +++ b/tests/topotests/ospf_te_topo1/r1/ospfd.conf diff --git a/tests/topotests/ospf-te-topo1/r1/zebra.conf b/tests/topotests/ospf_te_topo1/r1/zebra.conf index 7c5dc3ffe0..7c5dc3ffe0 100644 --- a/tests/topotests/ospf-te-topo1/r1/zebra.conf +++ b/tests/topotests/ospf_te_topo1/r1/zebra.conf diff --git a/tests/topotests/ospf-te-topo1/r2/ospfd.conf b/tests/topotests/ospf_te_topo1/r2/ospfd.conf index e9c3f65bc2..e9c3f65bc2 100644 --- a/tests/topotests/ospf-te-topo1/r2/ospfd.conf +++ b/tests/topotests/ospf_te_topo1/r2/ospfd.conf diff --git a/tests/topotests/ospf-te-topo1/r2/zebra.conf b/tests/topotests/ospf_te_topo1/r2/zebra.conf index 69e10191f3..69e10191f3 100644 --- a/tests/topotests/ospf-te-topo1/r2/zebra.conf +++ b/tests/topotests/ospf_te_topo1/r2/zebra.conf diff --git a/tests/topotests/ospf-te-topo1/r3/ospfd.conf b/tests/topotests/ospf_te_topo1/r3/ospfd.conf index caa5f1e1eb..caa5f1e1eb 100644 --- a/tests/topotests/ospf-te-topo1/r3/ospfd.conf +++ b/tests/topotests/ospf_te_topo1/r3/ospfd.conf diff --git a/tests/topotests/ospf-te-topo1/r3/zebra.conf b/tests/topotests/ospf_te_topo1/r3/zebra.conf index 4cf9077085..4cf9077085 100644 --- a/tests/topotests/ospf-te-topo1/r3/zebra.conf +++ b/tests/topotests/ospf_te_topo1/r3/zebra.conf diff --git a/tests/topotests/ospf-te-topo1/r4/ospfd.conf b/tests/topotests/ospf_te_topo1/r4/ospfd.conf index e454673153..e454673153 100644 --- a/tests/topotests/ospf-te-topo1/r4/ospfd.conf +++ b/tests/topotests/ospf_te_topo1/r4/ospfd.conf diff --git a/tests/topotests/ospf-te-topo1/r4/zebra.conf b/tests/topotests/ospf_te_topo1/r4/zebra.conf index 18c003b230..18c003b230 100644 --- a/tests/topotests/ospf-te-topo1/r4/zebra.conf +++ b/tests/topotests/ospf_te_topo1/r4/zebra.conf diff --git a/tests/topotests/ospf-te-topo1/reference/ted_step1.json b/tests/topotests/ospf_te_topo1/reference/ted_step1.json index 9624292ccd..9624292ccd 100644 --- a/tests/topotests/ospf-te-topo1/reference/ted_step1.json +++ b/tests/topotests/ospf_te_topo1/reference/ted_step1.json diff --git a/tests/topotests/ospf-te-topo1/reference/ted_step2.json b/tests/topotests/ospf_te_topo1/reference/ted_step2.json index 623d1dc7e0..623d1dc7e0 100644 --- a/tests/topotests/ospf-te-topo1/reference/ted_step2.json +++ b/tests/topotests/ospf_te_topo1/reference/ted_step2.json diff --git a/tests/topotests/ospf-te-topo1/reference/ted_step3.json b/tests/topotests/ospf_te_topo1/reference/ted_step3.json index 117011a43a..117011a43a 100644 --- a/tests/topotests/ospf-te-topo1/reference/ted_step3.json +++ b/tests/topotests/ospf_te_topo1/reference/ted_step3.json diff --git a/tests/topotests/ospf-te-topo1/reference/ted_step4.json b/tests/topotests/ospf_te_topo1/reference/ted_step4.json index 5c2dee1e4b..5c2dee1e4b 100644 --- a/tests/topotests/ospf-te-topo1/reference/ted_step4.json +++ b/tests/topotests/ospf_te_topo1/reference/ted_step4.json diff --git a/tests/topotests/ospf-te-topo1/reference/ted_step5.json b/tests/topotests/ospf_te_topo1/reference/ted_step5.json index 47e747f3ca..47e747f3ca 100644 --- a/tests/topotests/ospf-te-topo1/reference/ted_step5.json +++ b/tests/topotests/ospf_te_topo1/reference/ted_step5.json diff --git a/tests/topotests/ospf-te-topo1/reference/ted_step6.json b/tests/topotests/ospf_te_topo1/reference/ted_step6.json index 74bd83fbdb..74bd83fbdb 100644 --- a/tests/topotests/ospf-te-topo1/reference/ted_step6.json +++ b/tests/topotests/ospf_te_topo1/reference/ted_step6.json diff --git a/tests/topotests/ospf-te-topo1/reference/ted_step7.json b/tests/topotests/ospf_te_topo1/reference/ted_step7.json index 1cea9f0455..1cea9f0455 100644 --- a/tests/topotests/ospf-te-topo1/reference/ted_step7.json +++ b/tests/topotests/ospf_te_topo1/reference/ted_step7.json diff --git a/tests/topotests/ospf-te-topo1/test_ospf_te_topo1.py b/tests/topotests/ospf_te_topo1/test_ospf_te_topo1.py index 32f9b3453e..32f9b3453e 100644 --- a/tests/topotests/ospf-te-topo1/test_ospf_te_topo1.py +++ b/tests/topotests/ospf_te_topo1/test_ospf_te_topo1.py diff --git a/tests/topotests/ospf-tilfa-topo1/__init__.py b/tests/topotests/ospf_tilfa_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/ospf-tilfa-topo1/__init__.py +++ b/tests/topotests/ospf_tilfa_topo1/__init__.py diff --git a/tests/topotests/ospf-tilfa-topo1/rt1/ospfd.conf b/tests/topotests/ospf_tilfa_topo1/rt1/ospfd.conf index eaef49225f..eaef49225f 100644 --- a/tests/topotests/ospf-tilfa-topo1/rt1/ospfd.conf +++ b/tests/topotests/ospf_tilfa_topo1/rt1/ospfd.conf diff --git a/tests/topotests/ospf-tilfa-topo1/rt1/step1/show_ip_route_initial.ref b/tests/topotests/ospf_tilfa_topo1/rt1/step1/show_ip_route_initial.ref index 0ad2aaeade..0ad2aaeade 100644 --- a/tests/topotests/ospf-tilfa-topo1/rt1/step1/show_ip_route_initial.ref +++ b/tests/topotests/ospf_tilfa_topo1/rt1/step1/show_ip_route_initial.ref diff --git a/tests/topotests/ospf-tilfa-topo1/rt1/step2/show_ip_route_initial.ref b/tests/topotests/ospf_tilfa_topo1/rt1/step2/show_ip_route_initial.ref index 0ad2aaeade..0ad2aaeade 100644 --- a/tests/topotests/ospf-tilfa-topo1/rt1/step2/show_ip_route_initial.ref +++ b/tests/topotests/ospf_tilfa_topo1/rt1/step2/show_ip_route_initial.ref diff --git a/tests/topotests/ospf-tilfa-topo1/rt1/step2/show_ip_route_link_protection.ref b/tests/topotests/ospf_tilfa_topo1/rt1/step2/show_ip_route_link_protection.ref index 968570e193..968570e193 100644 --- a/tests/topotests/ospf-tilfa-topo1/rt1/step2/show_ip_route_link_protection.ref +++ b/tests/topotests/ospf_tilfa_topo1/rt1/step2/show_ip_route_link_protection.ref diff --git a/tests/topotests/ospf-tilfa-topo1/rt1/step3/show_ip_route_initial.ref b/tests/topotests/ospf_tilfa_topo1/rt1/step3/show_ip_route_initial.ref index 0ad2aaeade..0ad2aaeade 100644 --- a/tests/topotests/ospf-tilfa-topo1/rt1/step3/show_ip_route_initial.ref +++ b/tests/topotests/ospf_tilfa_topo1/rt1/step3/show_ip_route_initial.ref diff --git a/tests/topotests/ospf-tilfa-topo1/rt1/step3/show_ip_route_node_protection.ref b/tests/topotests/ospf_tilfa_topo1/rt1/step3/show_ip_route_node_protection.ref index 46a80d298e..46a80d298e 100644 --- a/tests/topotests/ospf-tilfa-topo1/rt1/step3/show_ip_route_node_protection.ref +++ b/tests/topotests/ospf_tilfa_topo1/rt1/step3/show_ip_route_node_protection.ref diff --git a/tests/topotests/ospf-tilfa-topo1/rt1/zebra.conf b/tests/topotests/ospf_tilfa_topo1/rt1/zebra.conf index bf0e77a17b..bf0e77a17b 100644 --- a/tests/topotests/ospf-tilfa-topo1/rt1/zebra.conf +++ b/tests/topotests/ospf_tilfa_topo1/rt1/zebra.conf diff --git a/tests/topotests/ospf-tilfa-topo1/rt2/ospfd.conf b/tests/topotests/ospf_tilfa_topo1/rt2/ospfd.conf index 7548aad7f8..7548aad7f8 100644 --- a/tests/topotests/ospf-tilfa-topo1/rt2/ospfd.conf +++ b/tests/topotests/ospf_tilfa_topo1/rt2/ospfd.conf diff --git a/tests/topotests/ospf-tilfa-topo1/rt2/zebra.conf b/tests/topotests/ospf_tilfa_topo1/rt2/zebra.conf index add2933571..add2933571 100644 --- a/tests/topotests/ospf-tilfa-topo1/rt2/zebra.conf +++ b/tests/topotests/ospf_tilfa_topo1/rt2/zebra.conf diff --git a/tests/topotests/ospf-tilfa-topo1/rt3/ospfd.conf b/tests/topotests/ospf_tilfa_topo1/rt3/ospfd.conf index 6258295b6f..6258295b6f 100644 --- a/tests/topotests/ospf-tilfa-topo1/rt3/ospfd.conf +++ b/tests/topotests/ospf_tilfa_topo1/rt3/ospfd.conf diff --git a/tests/topotests/ospf-tilfa-topo1/rt3/zebra.conf b/tests/topotests/ospf_tilfa_topo1/rt3/zebra.conf index 1bb64bc585..1bb64bc585 100644 --- a/tests/topotests/ospf-tilfa-topo1/rt3/zebra.conf +++ b/tests/topotests/ospf_tilfa_topo1/rt3/zebra.conf diff --git a/tests/topotests/ospf-tilfa-topo1/rt4/ospfd.conf b/tests/topotests/ospf_tilfa_topo1/rt4/ospfd.conf index ad02214017..ad02214017 100644 --- a/tests/topotests/ospf-tilfa-topo1/rt4/ospfd.conf +++ b/tests/topotests/ospf_tilfa_topo1/rt4/ospfd.conf diff --git a/tests/topotests/ospf-tilfa-topo1/rt4/zebra.conf b/tests/topotests/ospf_tilfa_topo1/rt4/zebra.conf index 306f0d4925..306f0d4925 100644 --- a/tests/topotests/ospf-tilfa-topo1/rt4/zebra.conf +++ b/tests/topotests/ospf_tilfa_topo1/rt4/zebra.conf diff --git a/tests/topotests/ospf-tilfa-topo1/rt5/ospfd.conf b/tests/topotests/ospf_tilfa_topo1/rt5/ospfd.conf index 1b95858f53..1b95858f53 100644 --- a/tests/topotests/ospf-tilfa-topo1/rt5/ospfd.conf +++ b/tests/topotests/ospf_tilfa_topo1/rt5/ospfd.conf diff --git a/tests/topotests/ospf-tilfa-topo1/rt5/zebra.conf b/tests/topotests/ospf_tilfa_topo1/rt5/zebra.conf index 46f759580e..46f759580e 100644 --- a/tests/topotests/ospf-tilfa-topo1/rt5/zebra.conf +++ b/tests/topotests/ospf_tilfa_topo1/rt5/zebra.conf diff --git a/tests/topotests/ospf-tilfa-topo1/test_ospf_tilfa_topo1.py b/tests/topotests/ospf_tilfa_topo1/test_ospf_tilfa_topo1.py index 489690471c..489690471c 100644 --- a/tests/topotests/ospf-tilfa-topo1/test_ospf_tilfa_topo1.py +++ b/tests/topotests/ospf_tilfa_topo1/test_ospf_tilfa_topo1.py diff --git a/tests/topotests/ospf-topo1-vrf/__init__.py b/tests/topotests/ospf_topo1/__init__.py index e69de29bb2..e69de29bb2 100755 --- a/tests/topotests/ospf-topo1-vrf/__init__.py +++ b/tests/topotests/ospf_topo1/__init__.py diff --git a/tests/topotests/ospf-topo1/r1/ospf6d.conf b/tests/topotests/ospf_topo1/r1/ospf6d.conf index ca3497b4a5..ca3497b4a5 100644 --- a/tests/topotests/ospf-topo1/r1/ospf6d.conf +++ b/tests/topotests/ospf_topo1/r1/ospf6d.conf diff --git a/tests/topotests/ospf-topo1/r1/ospf6route.txt b/tests/topotests/ospf_topo1/r1/ospf6route.txt index 1bfd6942ea..1bfd6942ea 100644 --- a/tests/topotests/ospf-topo1/r1/ospf6route.txt +++ b/tests/topotests/ospf_topo1/r1/ospf6route.txt diff --git a/tests/topotests/ospf-topo1/r1/ospf6route_down.txt b/tests/topotests/ospf_topo1/r1/ospf6route_down.txt index 1ce96c86c0..1ce96c86c0 100644 --- a/tests/topotests/ospf-topo1/r1/ospf6route_down.txt +++ b/tests/topotests/ospf_topo1/r1/ospf6route_down.txt diff --git a/tests/topotests/ospf-topo1/r1/ospf6route_ecmp.txt b/tests/topotests/ospf_topo1/r1/ospf6route_ecmp.txt index 4df6e5ec00..4df6e5ec00 100644 --- a/tests/topotests/ospf-topo1/r1/ospf6route_ecmp.txt +++ b/tests/topotests/ospf_topo1/r1/ospf6route_ecmp.txt diff --git a/tests/topotests/ospf-topo1/r1/ospfd.conf b/tests/topotests/ospf_topo1/r1/ospfd.conf index 3b5aa192c5..3b5aa192c5 100644 --- a/tests/topotests/ospf-topo1/r1/ospfd.conf +++ b/tests/topotests/ospf_topo1/r1/ospfd.conf diff --git a/tests/topotests/ospf-topo1/r1/ospfroute.txt b/tests/topotests/ospf_topo1/r1/ospfroute.txt index db648722f5..db648722f5 100644 --- a/tests/topotests/ospf-topo1/r1/ospfroute.txt +++ b/tests/topotests/ospf_topo1/r1/ospfroute.txt diff --git a/tests/topotests/ospf-topo1/r1/ospfroute_down.txt b/tests/topotests/ospf_topo1/r1/ospfroute_down.txt index 5c07d81334..5c07d81334 100644 --- a/tests/topotests/ospf-topo1/r1/ospfroute_down.txt +++ b/tests/topotests/ospf_topo1/r1/ospfroute_down.txt diff --git a/tests/topotests/ospf-topo1/r1/zebra.conf b/tests/topotests/ospf_topo1/r1/zebra.conf index f6e8efe7f2..f6e8efe7f2 100644 --- a/tests/topotests/ospf-topo1/r1/zebra.conf +++ b/tests/topotests/ospf_topo1/r1/zebra.conf diff --git a/tests/topotests/ospf-topo1/r2/ospf6d.conf b/tests/topotests/ospf_topo1/r2/ospf6d.conf index 44047e1a4e..44047e1a4e 100644 --- a/tests/topotests/ospf-topo1/r2/ospf6d.conf +++ b/tests/topotests/ospf_topo1/r2/ospf6d.conf diff --git a/tests/topotests/ospf-topo1/r2/ospf6route.txt b/tests/topotests/ospf_topo1/r2/ospf6route.txt index 7d3ce5b207..7d3ce5b207 100644 --- a/tests/topotests/ospf-topo1/r2/ospf6route.txt +++ b/tests/topotests/ospf_topo1/r2/ospf6route.txt diff --git a/tests/topotests/ospf-topo1/r2/ospf6route_down.txt b/tests/topotests/ospf_topo1/r2/ospf6route_down.txt index acfffc9f1c..acfffc9f1c 100644 --- a/tests/topotests/ospf-topo1/r2/ospf6route_down.txt +++ b/tests/topotests/ospf_topo1/r2/ospf6route_down.txt diff --git a/tests/topotests/ospf-topo1/r2/ospf6route_ecmp.txt b/tests/topotests/ospf_topo1/r2/ospf6route_ecmp.txt index f58b501e31..f58b501e31 100644 --- a/tests/topotests/ospf-topo1/r2/ospf6route_ecmp.txt +++ b/tests/topotests/ospf_topo1/r2/ospf6route_ecmp.txt diff --git a/tests/topotests/ospf-topo1/r2/ospfd.conf b/tests/topotests/ospf_topo1/r2/ospfd.conf index 1a7ccdf728..1a7ccdf728 100644 --- a/tests/topotests/ospf-topo1/r2/ospfd.conf +++ b/tests/topotests/ospf_topo1/r2/ospfd.conf diff --git a/tests/topotests/ospf-topo1/r2/ospfroute.txt b/tests/topotests/ospf_topo1/r2/ospfroute.txt index 79b389baab..79b389baab 100644 --- a/tests/topotests/ospf-topo1/r2/ospfroute.txt +++ b/tests/topotests/ospf_topo1/r2/ospfroute.txt diff --git a/tests/topotests/ospf-topo1/r2/ospfroute_down.txt b/tests/topotests/ospf_topo1/r2/ospfroute_down.txt index b8411e19f3..b8411e19f3 100644 --- a/tests/topotests/ospf-topo1/r2/ospfroute_down.txt +++ b/tests/topotests/ospf_topo1/r2/ospfroute_down.txt diff --git a/tests/topotests/ospf-topo1/r2/zebra.conf b/tests/topotests/ospf_topo1/r2/zebra.conf index 407416cdc4..407416cdc4 100644 --- a/tests/topotests/ospf-topo1/r2/zebra.conf +++ b/tests/topotests/ospf_topo1/r2/zebra.conf diff --git a/tests/topotests/ospf-topo1/r3/ospf6d.conf b/tests/topotests/ospf_topo1/r3/ospf6d.conf index 13ad9a7356..13ad9a7356 100644 --- a/tests/topotests/ospf-topo1/r3/ospf6d.conf +++ b/tests/topotests/ospf_topo1/r3/ospf6d.conf diff --git a/tests/topotests/ospf-topo1/r3/ospf6route.txt b/tests/topotests/ospf_topo1/r3/ospf6route.txt index b123c42650..b123c42650 100644 --- a/tests/topotests/ospf-topo1/r3/ospf6route.txt +++ b/tests/topotests/ospf_topo1/r3/ospf6route.txt diff --git a/tests/topotests/ospf-topo1/r3/ospf6route_down.txt b/tests/topotests/ospf_topo1/r3/ospf6route_down.txt index ed69a8376b..ed69a8376b 100644 --- a/tests/topotests/ospf-topo1/r3/ospf6route_down.txt +++ b/tests/topotests/ospf_topo1/r3/ospf6route_down.txt diff --git a/tests/topotests/ospf-topo1/r3/ospf6route_ecmp.txt b/tests/topotests/ospf_topo1/r3/ospf6route_ecmp.txt index 54e575adcb..54e575adcb 100644 --- a/tests/topotests/ospf-topo1/r3/ospf6route_ecmp.txt +++ b/tests/topotests/ospf_topo1/r3/ospf6route_ecmp.txt diff --git a/tests/topotests/ospf-topo1/r3/ospfd.conf b/tests/topotests/ospf_topo1/r3/ospfd.conf index 3b378c0f27..3b378c0f27 100644 --- a/tests/topotests/ospf-topo1/r3/ospfd.conf +++ b/tests/topotests/ospf_topo1/r3/ospfd.conf diff --git a/tests/topotests/ospf-topo1/r3/ospfroute.txt b/tests/topotests/ospf_topo1/r3/ospfroute.txt index c7799065d9..c7799065d9 100644 --- a/tests/topotests/ospf-topo1/r3/ospfroute.txt +++ b/tests/topotests/ospf_topo1/r3/ospfroute.txt diff --git a/tests/topotests/ospf-topo1/r3/ospfroute_down.txt b/tests/topotests/ospf_topo1/r3/ospfroute_down.txt index 692a74aa6c..692a74aa6c 100644 --- a/tests/topotests/ospf-topo1/r3/ospfroute_down.txt +++ b/tests/topotests/ospf_topo1/r3/ospfroute_down.txt diff --git a/tests/topotests/ospf-topo1/r3/zebra.conf b/tests/topotests/ospf_topo1/r3/zebra.conf index a635a889bb..a635a889bb 100644 --- a/tests/topotests/ospf-topo1/r3/zebra.conf +++ b/tests/topotests/ospf_topo1/r3/zebra.conf diff --git a/tests/topotests/ospf-topo1/r4/ospf6d.conf b/tests/topotests/ospf_topo1/r4/ospf6d.conf index f9bde0e83c..f9bde0e83c 100644 --- a/tests/topotests/ospf-topo1/r4/ospf6d.conf +++ b/tests/topotests/ospf_topo1/r4/ospf6d.conf diff --git a/tests/topotests/ospf-topo1/r4/ospf6route.txt b/tests/topotests/ospf_topo1/r4/ospf6route.txt index ceeee2cac8..ceeee2cac8 100644 --- a/tests/topotests/ospf-topo1/r4/ospf6route.txt +++ b/tests/topotests/ospf_topo1/r4/ospf6route.txt diff --git a/tests/topotests/ospf-topo1/r4/ospf6route_down.txt b/tests/topotests/ospf_topo1/r4/ospf6route_down.txt index 4ad636dd98..4ad636dd98 100644 --- a/tests/topotests/ospf-topo1/r4/ospf6route_down.txt +++ b/tests/topotests/ospf_topo1/r4/ospf6route_down.txt diff --git a/tests/topotests/ospf-topo1/r4/ospf6route_ecmp.txt b/tests/topotests/ospf_topo1/r4/ospf6route_ecmp.txt index b5cb10b72b..b5cb10b72b 100644 --- a/tests/topotests/ospf-topo1/r4/ospf6route_ecmp.txt +++ b/tests/topotests/ospf_topo1/r4/ospf6route_ecmp.txt diff --git a/tests/topotests/ospf-topo1/r4/ospfd.conf b/tests/topotests/ospf_topo1/r4/ospfd.conf index 52d29322f8..52d29322f8 100644 --- a/tests/topotests/ospf-topo1/r4/ospfd.conf +++ b/tests/topotests/ospf_topo1/r4/ospfd.conf diff --git a/tests/topotests/ospf-topo1/r4/ospfroute.txt b/tests/topotests/ospf_topo1/r4/ospfroute.txt index b582ef043b..b582ef043b 100644 --- a/tests/topotests/ospf-topo1/r4/ospfroute.txt +++ b/tests/topotests/ospf_topo1/r4/ospfroute.txt diff --git a/tests/topotests/ospf-topo1/r4/ospfroute_down.txt b/tests/topotests/ospf_topo1/r4/ospfroute_down.txt index b0bd0eec78..b0bd0eec78 100644 --- a/tests/topotests/ospf-topo1/r4/ospfroute_down.txt +++ b/tests/topotests/ospf_topo1/r4/ospfroute_down.txt diff --git a/tests/topotests/ospf-topo1/r4/zebra.conf b/tests/topotests/ospf_topo1/r4/zebra.conf index 39ecbb2401..39ecbb2401 100644 --- a/tests/topotests/ospf-topo1/r4/zebra.conf +++ b/tests/topotests/ospf_topo1/r4/zebra.conf diff --git a/tests/topotests/ospf-topo1/test_ospf_topo1.dot b/tests/topotests/ospf_topo1/test_ospf_topo1.dot index 469a7ea792..469a7ea792 100644 --- a/tests/topotests/ospf-topo1/test_ospf_topo1.dot +++ b/tests/topotests/ospf_topo1/test_ospf_topo1.dot diff --git a/tests/topotests/ospf-topo1/test_ospf_topo1.jpg b/tests/topotests/ospf_topo1/test_ospf_topo1.jpg Binary files differindex 1e931709e0..1e931709e0 100644 --- a/tests/topotests/ospf-topo1/test_ospf_topo1.jpg +++ b/tests/topotests/ospf_topo1/test_ospf_topo1.jpg diff --git a/tests/topotests/ospf-topo1/test_ospf_topo1.py b/tests/topotests/ospf_topo1/test_ospf_topo1.py index 42634ce906..42634ce906 100644 --- a/tests/topotests/ospf-topo1/test_ospf_topo1.py +++ b/tests/topotests/ospf_topo1/test_ospf_topo1.py diff --git a/tests/topotests/ospf-topo1/__init__.py b/tests/topotests/ospf_topo1_vrf/__init__.py index e69de29bb2..e69de29bb2 100755 --- a/tests/topotests/ospf-topo1/__init__.py +++ b/tests/topotests/ospf_topo1_vrf/__init__.py diff --git a/tests/topotests/ospf-topo1-vrf/r1/ospfd.conf b/tests/topotests/ospf_topo1_vrf/r1/ospfd.conf index 9a68635568..9a68635568 100644 --- a/tests/topotests/ospf-topo1-vrf/r1/ospfd.conf +++ b/tests/topotests/ospf_topo1_vrf/r1/ospfd.conf diff --git a/tests/topotests/ospf-topo1-vrf/r1/ospfroute.txt b/tests/topotests/ospf_topo1_vrf/r1/ospfroute.txt index 134a10a454..134a10a454 100644 --- a/tests/topotests/ospf-topo1-vrf/r1/ospfroute.txt +++ b/tests/topotests/ospf_topo1_vrf/r1/ospfroute.txt diff --git a/tests/topotests/ospf-topo1-vrf/r1/ospfroute_down.txt b/tests/topotests/ospf_topo1_vrf/r1/ospfroute_down.txt index 083d77126c..083d77126c 100644 --- a/tests/topotests/ospf-topo1-vrf/r1/ospfroute_down.txt +++ b/tests/topotests/ospf_topo1_vrf/r1/ospfroute_down.txt diff --git a/tests/topotests/ospf-topo1-vrf/r1/zebra.conf b/tests/topotests/ospf_topo1_vrf/r1/zebra.conf index e826793657..e826793657 100644 --- a/tests/topotests/ospf-topo1-vrf/r1/zebra.conf +++ b/tests/topotests/ospf_topo1_vrf/r1/zebra.conf diff --git a/tests/topotests/ospf-topo1-vrf/r1/zebraroute.txt b/tests/topotests/ospf_topo1_vrf/r1/zebraroute.txt index d72aa3b8e5..d72aa3b8e5 100644 --- a/tests/topotests/ospf-topo1-vrf/r1/zebraroute.txt +++ b/tests/topotests/ospf_topo1_vrf/r1/zebraroute.txt diff --git a/tests/topotests/ospf-topo1-vrf/r1/zebraroutedown.txt b/tests/topotests/ospf_topo1_vrf/r1/zebraroutedown.txt index 5ea6bdc04d..5ea6bdc04d 100644 --- a/tests/topotests/ospf-topo1-vrf/r1/zebraroutedown.txt +++ b/tests/topotests/ospf_topo1_vrf/r1/zebraroutedown.txt diff --git a/tests/topotests/ospf-topo1-vrf/r2/ospfd.conf b/tests/topotests/ospf_topo1_vrf/r2/ospfd.conf index ad481a996d..ad481a996d 100644 --- a/tests/topotests/ospf-topo1-vrf/r2/ospfd.conf +++ b/tests/topotests/ospf_topo1_vrf/r2/ospfd.conf diff --git a/tests/topotests/ospf-topo1-vrf/r2/ospfroute.txt b/tests/topotests/ospf_topo1_vrf/r2/ospfroute.txt index a49cb77249..a49cb77249 100644 --- a/tests/topotests/ospf-topo1-vrf/r2/ospfroute.txt +++ b/tests/topotests/ospf_topo1_vrf/r2/ospfroute.txt diff --git a/tests/topotests/ospf-topo1-vrf/r2/ospfroute_down.txt b/tests/topotests/ospf_topo1_vrf/r2/ospfroute_down.txt index 2227bedf07..2227bedf07 100644 --- a/tests/topotests/ospf-topo1-vrf/r2/ospfroute_down.txt +++ b/tests/topotests/ospf_topo1_vrf/r2/ospfroute_down.txt diff --git a/tests/topotests/ospf-topo1-vrf/r2/zebra.conf b/tests/topotests/ospf_topo1_vrf/r2/zebra.conf index 8dcb713da6..8dcb713da6 100644 --- a/tests/topotests/ospf-topo1-vrf/r2/zebra.conf +++ b/tests/topotests/ospf_topo1_vrf/r2/zebra.conf diff --git a/tests/topotests/ospf-topo1-vrf/r2/zebraroute.txt b/tests/topotests/ospf_topo1_vrf/r2/zebraroute.txt index ce5e5f3bab..ce5e5f3bab 100644 --- a/tests/topotests/ospf-topo1-vrf/r2/zebraroute.txt +++ b/tests/topotests/ospf_topo1_vrf/r2/zebraroute.txt diff --git a/tests/topotests/ospf-topo1-vrf/r2/zebraroutedown.txt b/tests/topotests/ospf_topo1_vrf/r2/zebraroutedown.txt index 157811ec77..157811ec77 100644 --- a/tests/topotests/ospf-topo1-vrf/r2/zebraroutedown.txt +++ b/tests/topotests/ospf_topo1_vrf/r2/zebraroutedown.txt diff --git a/tests/topotests/ospf-topo1-vrf/r3/ospfd.conf b/tests/topotests/ospf_topo1_vrf/r3/ospfd.conf index d5214f734e..d5214f734e 100644 --- a/tests/topotests/ospf-topo1-vrf/r3/ospfd.conf +++ b/tests/topotests/ospf_topo1_vrf/r3/ospfd.conf diff --git a/tests/topotests/ospf-topo1-vrf/r3/ospfroute.txt b/tests/topotests/ospf_topo1_vrf/r3/ospfroute.txt index 3b16bfbd55..3b16bfbd55 100644 --- a/tests/topotests/ospf-topo1-vrf/r3/ospfroute.txt +++ b/tests/topotests/ospf_topo1_vrf/r3/ospfroute.txt diff --git a/tests/topotests/ospf-topo1-vrf/r3/ospfroute_down.txt b/tests/topotests/ospf_topo1_vrf/r3/ospfroute_down.txt index 39beac7a73..39beac7a73 100644 --- a/tests/topotests/ospf-topo1-vrf/r3/ospfroute_down.txt +++ b/tests/topotests/ospf_topo1_vrf/r3/ospfroute_down.txt diff --git a/tests/topotests/ospf-topo1-vrf/r3/zebra.conf b/tests/topotests/ospf_topo1_vrf/r3/zebra.conf index b548694330..b548694330 100644 --- a/tests/topotests/ospf-topo1-vrf/r3/zebra.conf +++ b/tests/topotests/ospf_topo1_vrf/r3/zebra.conf diff --git a/tests/topotests/ospf-topo1-vrf/r3/zebraroute.txt b/tests/topotests/ospf_topo1_vrf/r3/zebraroute.txt index f40b7b09af..f40b7b09af 100644 --- a/tests/topotests/ospf-topo1-vrf/r3/zebraroute.txt +++ b/tests/topotests/ospf_topo1_vrf/r3/zebraroute.txt diff --git a/tests/topotests/ospf-topo1-vrf/r3/zebraroutedown.txt b/tests/topotests/ospf_topo1_vrf/r3/zebraroutedown.txt index 89cd6f56c4..89cd6f56c4 100644 --- a/tests/topotests/ospf-topo1-vrf/r3/zebraroutedown.txt +++ b/tests/topotests/ospf_topo1_vrf/r3/zebraroutedown.txt diff --git a/tests/topotests/ospf-topo1-vrf/test_ospf_topo1-vrf.dot b/tests/topotests/ospf_topo1_vrf/test_ospf_topo1-vrf.dot index 789fdd7c09..789fdd7c09 100644 --- a/tests/topotests/ospf-topo1-vrf/test_ospf_topo1-vrf.dot +++ b/tests/topotests/ospf_topo1_vrf/test_ospf_topo1-vrf.dot diff --git a/tests/topotests/ospf-topo1-vrf/test_ospf_topo1_vrf.jpg b/tests/topotests/ospf_topo1_vrf/test_ospf_topo1_vrf.jpg Binary files differindex 85f2e52f8e..85f2e52f8e 100644 --- a/tests/topotests/ospf-topo1-vrf/test_ospf_topo1_vrf.jpg +++ b/tests/topotests/ospf_topo1_vrf/test_ospf_topo1_vrf.jpg diff --git a/tests/topotests/ospf-topo1-vrf/test_ospf_topo1_vrf.py b/tests/topotests/ospf_topo1_vrf/test_ospf_topo1_vrf.py index e2cb7bff03..e2cb7bff03 100644 --- a/tests/topotests/ospf-topo1-vrf/test_ospf_topo1_vrf.py +++ b/tests/topotests/ospf_topo1_vrf/test_ospf_topo1_vrf.py diff --git a/tests/topotests/ospf-topo2/r1/ospf-route.json b/tests/topotests/ospf_topo2/r1/ospf-route.json index 6beb7e9bed..6beb7e9bed 100644 --- a/tests/topotests/ospf-topo2/r1/ospf-route.json +++ b/tests/topotests/ospf_topo2/r1/ospf-route.json diff --git a/tests/topotests/ospf-topo2/r1/ospfd.conf b/tests/topotests/ospf_topo2/r1/ospfd.conf index 65843cbb83..65843cbb83 100644 --- a/tests/topotests/ospf-topo2/r1/ospfd.conf +++ b/tests/topotests/ospf_topo2/r1/ospfd.conf diff --git a/tests/topotests/ospf-topo2/r1/v4_route.json b/tests/topotests/ospf_topo2/r1/v4_route.json index 76c6396169..76c6396169 100644 --- a/tests/topotests/ospf-topo2/r1/v4_route.json +++ b/tests/topotests/ospf_topo2/r1/v4_route.json diff --git a/tests/topotests/ospf-topo2/r1/zebra.conf b/tests/topotests/ospf_topo2/r1/zebra.conf index d96d9707c1..d96d9707c1 100644 --- a/tests/topotests/ospf-topo2/r1/zebra.conf +++ b/tests/topotests/ospf_topo2/r1/zebra.conf diff --git a/tests/topotests/ospf-topo2/r2/ospf-route.json b/tests/topotests/ospf_topo2/r2/ospf-route.json index 3cfd255bfd..3cfd255bfd 100644 --- a/tests/topotests/ospf-topo2/r2/ospf-route.json +++ b/tests/topotests/ospf_topo2/r2/ospf-route.json diff --git a/tests/topotests/ospf-topo2/r2/ospfd.conf b/tests/topotests/ospf_topo2/r2/ospfd.conf index b032f1a8ac..b032f1a8ac 100644 --- a/tests/topotests/ospf-topo2/r2/ospfd.conf +++ b/tests/topotests/ospf_topo2/r2/ospfd.conf diff --git a/tests/topotests/ospf-topo2/r2/v4_route.json b/tests/topotests/ospf_topo2/r2/v4_route.json index 1638536388..1638536388 100644 --- a/tests/topotests/ospf-topo2/r2/v4_route.json +++ b/tests/topotests/ospf_topo2/r2/v4_route.json diff --git a/tests/topotests/ospf-topo2/r2/zebra.conf b/tests/topotests/ospf_topo2/r2/zebra.conf index f9dd2c4471..f9dd2c4471 100644 --- a/tests/topotests/ospf-topo2/r2/zebra.conf +++ b/tests/topotests/ospf_topo2/r2/zebra.conf diff --git a/tests/topotests/ospf-topo2/test_ospf_topo2.py b/tests/topotests/ospf_topo2/test_ospf_topo2.py index 6451f5fb32..6451f5fb32 100644 --- a/tests/topotests/ospf-topo2/test_ospf_topo2.py +++ b/tests/topotests/ospf_topo2/test_ospf_topo2.py diff --git a/tests/topotests/pbr-topo1/__init__.py b/tests/topotests/pbr_topo1/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/pbr-topo1/__init__.py +++ b/tests/topotests/pbr_topo1/__init__.py diff --git a/tests/topotests/pbr-topo1/r1/linux-rules.json b/tests/topotests/pbr_topo1/r1/linux-rules.json index 5af4363418..5af4363418 100644 --- a/tests/topotests/pbr-topo1/r1/linux-rules.json +++ b/tests/topotests/pbr_topo1/r1/linux-rules.json diff --git a/tests/topotests/pbr-topo1/r1/pbr-interface.json b/tests/topotests/pbr_topo1/r1/pbr-interface.json index e28d9fb149..e28d9fb149 100644 --- a/tests/topotests/pbr-topo1/r1/pbr-interface.json +++ b/tests/topotests/pbr_topo1/r1/pbr-interface.json diff --git a/tests/topotests/pbr-topo1/r1/pbr-map.json b/tests/topotests/pbr_topo1/r1/pbr-map.json index bfa0ecb849..bfa0ecb849 100644 --- a/tests/topotests/pbr-topo1/r1/pbr-map.json +++ b/tests/topotests/pbr_topo1/r1/pbr-map.json diff --git a/tests/topotests/pbr-topo1/r1/pbr-nexthop-groups.json b/tests/topotests/pbr_topo1/r1/pbr-nexthop-groups.json index 540ea28158..540ea28158 100644 --- a/tests/topotests/pbr-topo1/r1/pbr-nexthop-groups.json +++ b/tests/topotests/pbr_topo1/r1/pbr-nexthop-groups.json diff --git a/tests/topotests/pbr-topo1/r1/pbrd.conf b/tests/topotests/pbr_topo1/r1/pbrd.conf index 45cb7656ab..45cb7656ab 100644 --- a/tests/topotests/pbr-topo1/r1/pbrd.conf +++ b/tests/topotests/pbr_topo1/r1/pbrd.conf diff --git a/tests/topotests/pbr-topo1/r1/zebra.conf b/tests/topotests/pbr_topo1/r1/zebra.conf index 2ec947c275..2ec947c275 100644 --- a/tests/topotests/pbr-topo1/r1/zebra.conf +++ b/tests/topotests/pbr_topo1/r1/zebra.conf diff --git a/tests/topotests/pbr-topo1/test_pbr_topo1.py b/tests/topotests/pbr_topo1/test_pbr_topo1.py index 1a024063b8..1a024063b8 100644 --- a/tests/topotests/pbr-topo1/test_pbr_topo1.py +++ b/tests/topotests/pbr_topo1/test_pbr_topo1.py diff --git a/tests/topotests/pim-basic/mcast-rx.py b/tests/topotests/pim_basic/mcast-rx.py index 862ad46af4..862ad46af4 100755 --- a/tests/topotests/pim-basic/mcast-rx.py +++ b/tests/topotests/pim_basic/mcast-rx.py diff --git a/tests/topotests/pim-basic/mcast-tx.py b/tests/topotests/pim_basic/mcast-tx.py index 87038ad5cf..87038ad5cf 100755 --- a/tests/topotests/pim-basic/mcast-tx.py +++ b/tests/topotests/pim_basic/mcast-tx.py diff --git a/tests/topotests/pim-basic/r1/bgpd.conf b/tests/topotests/pim_basic/r1/bgpd.conf index 84d9598bc6..84d9598bc6 100644 --- a/tests/topotests/pim-basic/r1/bgpd.conf +++ b/tests/topotests/pim_basic/r1/bgpd.conf diff --git a/tests/topotests/pim-basic/r1/pimd.conf b/tests/topotests/pim_basic/r1/pimd.conf index f64a46deb3..f64a46deb3 100644 --- a/tests/topotests/pim-basic/r1/pimd.conf +++ b/tests/topotests/pim_basic/r1/pimd.conf diff --git a/tests/topotests/pim-basic/r1/rp-info.json b/tests/topotests/pim_basic/r1/rp-info.json index 1f713c2d28..1f713c2d28 100644 --- a/tests/topotests/pim-basic/r1/rp-info.json +++ b/tests/topotests/pim_basic/r1/rp-info.json diff --git a/tests/topotests/pim-basic/r1/zebra.conf b/tests/topotests/pim_basic/r1/zebra.conf index e43041758b..e43041758b 100644 --- a/tests/topotests/pim-basic/r1/zebra.conf +++ b/tests/topotests/pim_basic/r1/zebra.conf diff --git a/tests/topotests/pim-basic/r2/pimd.conf b/tests/topotests/pim_basic/r2/pimd.conf index 932cff6f3b..932cff6f3b 100644 --- a/tests/topotests/pim-basic/r2/pimd.conf +++ b/tests/topotests/pim_basic/r2/pimd.conf diff --git a/tests/topotests/pim-basic/r2/zebra.conf b/tests/topotests/pim_basic/r2/zebra.conf index cb30858f58..cb30858f58 100644 --- a/tests/topotests/pim-basic/r2/zebra.conf +++ b/tests/topotests/pim_basic/r2/zebra.conf diff --git a/tests/topotests/pim-basic/r3/pimd.conf b/tests/topotests/pim_basic/r3/pimd.conf index f94ee99930..f94ee99930 100644 --- a/tests/topotests/pim-basic/r3/pimd.conf +++ b/tests/topotests/pim_basic/r3/pimd.conf diff --git a/tests/topotests/pim-basic/r3/zebra.conf b/tests/topotests/pim_basic/r3/zebra.conf index 8e58e8c66a..8e58e8c66a 100644 --- a/tests/topotests/pim-basic/r3/zebra.conf +++ b/tests/topotests/pim_basic/r3/zebra.conf diff --git a/tests/topotests/pim-basic/rp/bgpd.conf b/tests/topotests/pim_basic/rp/bgpd.conf index 1bfae6059b..1bfae6059b 100644 --- a/tests/topotests/pim-basic/rp/bgpd.conf +++ b/tests/topotests/pim_basic/rp/bgpd.conf diff --git a/tests/topotests/pim-basic/rp/pimd.conf b/tests/topotests/pim_basic/rp/pimd.conf index 6e35c97971..6e35c97971 100644 --- a/tests/topotests/pim-basic/rp/pimd.conf +++ b/tests/topotests/pim_basic/rp/pimd.conf diff --git a/tests/topotests/pim-basic/rp/upstream.json b/tests/topotests/pim_basic/rp/upstream.json index c33dea49e9..c33dea49e9 100644 --- a/tests/topotests/pim-basic/rp/upstream.json +++ b/tests/topotests/pim_basic/rp/upstream.json diff --git a/tests/topotests/pim-basic/rp/zebra.conf b/tests/topotests/pim_basic/rp/zebra.conf index 0a1359ecd0..0a1359ecd0 100644 --- a/tests/topotests/pim-basic/rp/zebra.conf +++ b/tests/topotests/pim_basic/rp/zebra.conf diff --git a/tests/topotests/pim-basic/test_pim.py b/tests/topotests/pim_basic/test_pim.py index 4debbeb851..4debbeb851 100644 --- a/tests/topotests/pim-basic/test_pim.py +++ b/tests/topotests/pim_basic/test_pim.py diff --git a/tests/topotests/pim-basic-topo2/__init__.py b/tests/topotests/pim_basic_topo2/__init__.py index e69de29bb2..e69de29bb2 100644 --- a/tests/topotests/pim-basic-topo2/__init__.py +++ b/tests/topotests/pim_basic_topo2/__init__.py diff --git a/tests/topotests/pim-basic-topo2/r1/bfdd.conf b/tests/topotests/pim_basic_topo2/r1/bfdd.conf index 76c6f82190..76c6f82190 100644 --- a/tests/topotests/pim-basic-topo2/r1/bfdd.conf +++ b/tests/topotests/pim_basic_topo2/r1/bfdd.conf diff --git a/tests/topotests/pim-basic-topo2/r1/pimd.conf b/tests/topotests/pim_basic_topo2/r1/pimd.conf index b895d7d573..b895d7d573 100644 --- a/tests/topotests/pim-basic-topo2/r1/pimd.conf +++ b/tests/topotests/pim_basic_topo2/r1/pimd.conf diff --git a/tests/topotests/pim-basic-topo2/r1/zebra.conf b/tests/topotests/pim_basic_topo2/r1/zebra.conf index 6bf02a3ee8..6bf02a3ee8 100644 --- a/tests/topotests/pim-basic-topo2/r1/zebra.conf +++ b/tests/topotests/pim_basic_topo2/r1/zebra.conf diff --git a/tests/topotests/pim-basic-topo2/r2/bfdd.conf b/tests/topotests/pim_basic_topo2/r2/bfdd.conf index ca61e467dc..ca61e467dc 100644 --- a/tests/topotests/pim-basic-topo2/r2/bfdd.conf +++ b/tests/topotests/pim_basic_topo2/r2/bfdd.conf diff --git a/tests/topotests/pim-basic-topo2/r2/pimd.conf b/tests/topotests/pim_basic_topo2/r2/pimd.conf index 0b32ded19a..0b32ded19a 100644 --- a/tests/topotests/pim-basic-topo2/r2/pimd.conf +++ b/tests/topotests/pim_basic_topo2/r2/pimd.conf diff --git a/tests/topotests/pim-basic-topo2/r2/zebra.conf b/tests/topotests/pim_basic_topo2/r2/zebra.conf index 3ceb5f0fc2..3ceb5f0fc2 100644 --- a/tests/topotests/pim-basic-topo2/r2/zebra.conf +++ b/tests/topotests/pim_basic_topo2/r2/zebra.conf diff --git a/tests/topotests/pim-basic-topo2/r3/bfdd.conf b/tests/topotests/pim_basic_topo2/r3/bfdd.conf index ca61e467dc..ca61e467dc 100644 --- a/tests/topotests/pim-basic-topo2/r3/bfdd.conf +++ b/tests/topotests/pim_basic_topo2/r3/bfdd.conf diff --git a/tests/topotests/pim-basic-topo2/r3/pimd.conf b/tests/topotests/pim_basic_topo2/r3/pimd.conf index 691a28ea27..691a28ea27 100644 --- a/tests/topotests/pim-basic-topo2/r3/pimd.conf +++ b/tests/topotests/pim_basic_topo2/r3/pimd.conf diff --git a/tests/topotests/pim-basic-topo2/r3/zebra.conf b/tests/topotests/pim_basic_topo2/r3/zebra.conf index 3df218ee16..3df218ee16 100644 --- a/tests/topotests/pim-basic-topo2/r3/zebra.conf +++ b/tests/topotests/pim_basic_topo2/r3/zebra.conf diff --git a/tests/topotests/pim-basic-topo2/r4/bfdd.conf b/tests/topotests/pim_basic_topo2/r4/bfdd.conf index ca61e467dc..ca61e467dc 100644 --- a/tests/topotests/pim-basic-topo2/r4/bfdd.conf +++ b/tests/topotests/pim_basic_topo2/r4/bfdd.conf diff --git a/tests/topotests/pim-basic-topo2/r4/pimd.conf b/tests/topotests/pim_basic_topo2/r4/pimd.conf index 2277b3e1f1..2277b3e1f1 100644 --- a/tests/topotests/pim-basic-topo2/r4/pimd.conf +++ b/tests/topotests/pim_basic_topo2/r4/pimd.conf diff --git a/tests/topotests/pim-basic-topo2/r4/zebra.conf b/tests/topotests/pim_basic_topo2/r4/zebra.conf index 6ac5c78fc3..6ac5c78fc3 100644 --- a/tests/topotests/pim-basic-topo2/r4/zebra.conf +++ b/tests/topotests/pim_basic_topo2/r4/zebra.conf diff --git a/tests/topotests/pim-basic-topo2/test_pim_basic_topo2.dot b/tests/topotests/pim_basic_topo2/test_pim_basic_topo2.dot index 22fce27e22..22fce27e22 100644 --- a/tests/topotests/pim-basic-topo2/test_pim_basic_topo2.dot +++ b/tests/topotests/pim_basic_topo2/test_pim_basic_topo2.dot diff --git a/tests/topotests/pim-basic-topo2/test_pim_basic_topo2.png b/tests/topotests/pim_basic_topo2/test_pim_basic_topo2.png Binary files differindex 39139a35b1..39139a35b1 100644 --- a/tests/topotests/pim-basic-topo2/test_pim_basic_topo2.png +++ b/tests/topotests/pim_basic_topo2/test_pim_basic_topo2.png diff --git a/tests/topotests/pim-basic-topo2/test_pim_basic_topo2.py b/tests/topotests/pim_basic_topo2/test_pim_basic_topo2.py index 883125cfc7..883125cfc7 100644 --- a/tests/topotests/pim-basic-topo2/test_pim_basic_topo2.py +++ b/tests/topotests/pim_basic_topo2/test_pim_basic_topo2.py diff --git a/tests/topotests/pytest.ini b/tests/topotests/pytest.ini index 562e754f21..885c249b31 100644 --- a/tests/topotests/pytest.ini +++ b/tests/topotests/pytest.ini @@ -1,6 +1,6 @@ # Skip pytests example directory [pytest] -norecursedirs = .git example-test example-topojson-test lib docker +norecursedirs = .git example_test example_topojson_test lib docker # Markers # diff --git a/tests/topotests/rip-topo1/r1/rip_status.ref b/tests/topotests/rip_topo1/r1/rip_status.ref index 31ad46ab2e..31ad46ab2e 100644 --- a/tests/topotests/rip-topo1/r1/rip_status.ref +++ b/tests/topotests/rip_topo1/r1/rip_status.ref diff --git a/tests/topotests/rip-topo1/r1/ripd.conf b/tests/topotests/rip_topo1/r1/ripd.conf index 54f1774214..54f1774214 100644 --- a/tests/topotests/rip-topo1/r1/ripd.conf +++ b/tests/topotests/rip_topo1/r1/ripd.conf diff --git a/tests/topotests/rip-topo1/r1/show_ip_rip.ref b/tests/topotests/rip_topo1/r1/show_ip_rip.ref index a0b77c886e..a0b77c886e 100644 --- a/tests/topotests/rip-topo1/r1/show_ip_rip.ref +++ b/tests/topotests/rip_topo1/r1/show_ip_rip.ref diff --git a/tests/topotests/rip-topo1/r1/show_ip_route.ref b/tests/topotests/rip_topo1/r1/show_ip_route.ref index 2ff26045aa..2ff26045aa 100644 --- a/tests/topotests/rip-topo1/r1/show_ip_route.ref +++ b/tests/topotests/rip_topo1/r1/show_ip_route.ref diff --git a/tests/topotests/rip-topo1/r1/zebra.conf b/tests/topotests/rip_topo1/r1/zebra.conf index 7c8f2c502b..7c8f2c502b 100644 --- a/tests/topotests/rip-topo1/r1/zebra.conf +++ b/tests/topotests/rip_topo1/r1/zebra.conf diff --git a/tests/topotests/rip-topo1/r2/rip_status.ref b/tests/topotests/rip_topo1/r2/rip_status.ref index 99841a62b0..99841a62b0 100644 --- a/tests/topotests/rip-topo1/r2/rip_status.ref +++ b/tests/topotests/rip_topo1/r2/rip_status.ref diff --git a/tests/topotests/rip-topo1/r2/ripd.conf b/tests/topotests/rip_topo1/r2/ripd.conf index 2e94cfa262..2e94cfa262 100644 --- a/tests/topotests/rip-topo1/r2/ripd.conf +++ b/tests/topotests/rip_topo1/r2/ripd.conf diff --git a/tests/topotests/rip-topo1/r2/show_ip_rip.ref b/tests/topotests/rip_topo1/r2/show_ip_rip.ref index b61fb45eac..b61fb45eac 100644 --- a/tests/topotests/rip-topo1/r2/show_ip_rip.ref +++ b/tests/topotests/rip_topo1/r2/show_ip_rip.ref diff --git a/tests/topotests/rip-topo1/r2/show_ip_route.ref b/tests/topotests/rip_topo1/r2/show_ip_route.ref index 80f51a92c7..80f51a92c7 100644 --- a/tests/topotests/rip-topo1/r2/show_ip_route.ref +++ b/tests/topotests/rip_topo1/r2/show_ip_route.ref diff --git a/tests/topotests/rip-topo1/r2/zebra.conf b/tests/topotests/rip_topo1/r2/zebra.conf index c440f3a350..c440f3a350 100644 --- a/tests/topotests/rip-topo1/r2/zebra.conf +++ b/tests/topotests/rip_topo1/r2/zebra.conf diff --git a/tests/topotests/rip-topo1/r3/rip_status.ref b/tests/topotests/rip_topo1/r3/rip_status.ref index 040d3c32a1..040d3c32a1 100644 --- a/tests/topotests/rip-topo1/r3/rip_status.ref +++ b/tests/topotests/rip_topo1/r3/rip_status.ref diff --git a/tests/topotests/rip-topo1/r3/ripd.conf b/tests/topotests/rip_topo1/r3/ripd.conf index e27e67503f..e27e67503f 100644 --- a/tests/topotests/rip-topo1/r3/ripd.conf +++ b/tests/topotests/rip_topo1/r3/ripd.conf diff --git a/tests/topotests/rip-topo1/r3/show_ip_rip.ref b/tests/topotests/rip_topo1/r3/show_ip_rip.ref index 1df299b5e6..1df299b5e6 100644 --- a/tests/topotests/rip-topo1/r3/show_ip_rip.ref +++ b/tests/topotests/rip_topo1/r3/show_ip_rip.ref diff --git a/tests/topotests/rip-topo1/r3/show_ip_route.ref b/tests/topotests/rip_topo1/r3/show_ip_route.ref index 2b739f0489..2b739f0489 100644 --- a/tests/topotests/rip-topo1/r3/show_ip_route.ref +++ b/tests/topotests/rip_topo1/r3/show_ip_route.ref diff --git a/tests/topotests/rip-topo1/r3/zebra.conf b/tests/topotests/rip_topo1/r3/zebra.conf index 7f145b4583..7f145b4583 100644 --- a/tests/topotests/rip-topo1/r3/zebra.conf +++ b/tests/topotests/rip_topo1/r3/zebra.conf diff --git a/tests/topotests/rip-topo1/test_rip_topo1.dot b/tests/topotests/rip_topo1/test_rip_topo1.dot index f052b697ea..f052b697ea 100644 --- a/tests/topotests/rip-topo1/test_rip_topo1.dot +++ b/tests/topotests/rip_topo1/test_rip_topo1.dot diff --git a/tests/topotests/rip-topo1/test_rip_topo1.pdf b/tests/topotests/rip_topo1/test_rip_topo1.pdf Binary files differindex c201ac1f07..c201ac1f07 100644 --- a/tests/topotests/rip-topo1/test_rip_topo1.pdf +++ b/tests/topotests/rip_topo1/test_rip_topo1.pdf diff --git a/tests/topotests/rip-topo1/test_rip_topo1.py b/tests/topotests/rip_topo1/test_rip_topo1.py index 78672ac871..78672ac871 100644 --- a/tests/topotests/rip-topo1/test_rip_topo1.py +++ b/tests/topotests/rip_topo1/test_rip_topo1.py diff --git a/tests/topotests/ripng-topo1/r1/ripng_status.ref b/tests/topotests/ripng_topo1/r1/ripng_status.ref index b02cc69d0e..b02cc69d0e 100644 --- a/tests/topotests/ripng-topo1/r1/ripng_status.ref +++ b/tests/topotests/ripng_topo1/r1/ripng_status.ref diff --git a/tests/topotests/ripng-topo1/r1/ripngd.conf b/tests/topotests/ripng_topo1/r1/ripngd.conf index 07ed7296d9..07ed7296d9 100644 --- a/tests/topotests/ripng-topo1/r1/ripngd.conf +++ b/tests/topotests/ripng_topo1/r1/ripngd.conf diff --git a/tests/topotests/ripng-topo1/r1/show_ipv6_ripng.ref b/tests/topotests/ripng_topo1/r1/show_ipv6_ripng.ref index 30d0f31e18..30d0f31e18 100644 --- a/tests/topotests/ripng-topo1/r1/show_ipv6_ripng.ref +++ b/tests/topotests/ripng_topo1/r1/show_ipv6_ripng.ref diff --git a/tests/topotests/ripng-topo1/r1/show_ipv6_route.ref b/tests/topotests/ripng_topo1/r1/show_ipv6_route.ref index 55fbbc34f3..55fbbc34f3 100644 --- a/tests/topotests/ripng-topo1/r1/show_ipv6_route.ref +++ b/tests/topotests/ripng_topo1/r1/show_ipv6_route.ref diff --git a/tests/topotests/ripng-topo1/r1/zebra.conf b/tests/topotests/ripng_topo1/r1/zebra.conf index 11c1cdc5b9..11c1cdc5b9 100644 --- a/tests/topotests/ripng-topo1/r1/zebra.conf +++ b/tests/topotests/ripng_topo1/r1/zebra.conf diff --git a/tests/topotests/ripng-topo1/r2/ripng_status.ref b/tests/topotests/ripng_topo1/r2/ripng_status.ref index 640df9a4a0..640df9a4a0 100644 --- a/tests/topotests/ripng-topo1/r2/ripng_status.ref +++ b/tests/topotests/ripng_topo1/r2/ripng_status.ref diff --git a/tests/topotests/ripng-topo1/r2/ripngd.conf b/tests/topotests/ripng_topo1/r2/ripngd.conf index ef2c42195d..ef2c42195d 100644 --- a/tests/topotests/ripng-topo1/r2/ripngd.conf +++ b/tests/topotests/ripng_topo1/r2/ripngd.conf diff --git a/tests/topotests/ripng-topo1/r2/show_ipv6_ripng.ref b/tests/topotests/ripng_topo1/r2/show_ipv6_ripng.ref index fe5bcc8b31..fe5bcc8b31 100644 --- a/tests/topotests/ripng-topo1/r2/show_ipv6_ripng.ref +++ b/tests/topotests/ripng_topo1/r2/show_ipv6_ripng.ref diff --git a/tests/topotests/ripng-topo1/r2/show_ipv6_route.ref b/tests/topotests/ripng_topo1/r2/show_ipv6_route.ref index 72e1f926a2..72e1f926a2 100644 --- a/tests/topotests/ripng-topo1/r2/show_ipv6_route.ref +++ b/tests/topotests/ripng_topo1/r2/show_ipv6_route.ref diff --git a/tests/topotests/ripng-topo1/r2/zebra.conf b/tests/topotests/ripng_topo1/r2/zebra.conf index 59006317d3..59006317d3 100644 --- a/tests/topotests/ripng-topo1/r2/zebra.conf +++ b/tests/topotests/ripng_topo1/r2/zebra.conf diff --git a/tests/topotests/ripng-topo1/r3/ripng_status.ref b/tests/topotests/ripng_topo1/r3/ripng_status.ref index f4bfff0c59..f4bfff0c59 100644 --- a/tests/topotests/ripng-topo1/r3/ripng_status.ref +++ b/tests/topotests/ripng_topo1/r3/ripng_status.ref diff --git a/tests/topotests/ripng-topo1/r3/ripngd.conf b/tests/topotests/ripng_topo1/r3/ripngd.conf index 506eaac442..506eaac442 100644 --- a/tests/topotests/ripng-topo1/r3/ripngd.conf +++ b/tests/topotests/ripng_topo1/r3/ripngd.conf diff --git a/tests/topotests/ripng-topo1/r3/show_ipv6_ripng.ref b/tests/topotests/ripng_topo1/r3/show_ipv6_ripng.ref index 909ad663ba..909ad663ba 100644 --- a/tests/topotests/ripng-topo1/r3/show_ipv6_ripng.ref +++ b/tests/topotests/ripng_topo1/r3/show_ipv6_ripng.ref diff --git a/tests/topotests/ripng-topo1/r3/show_ipv6_route.ref b/tests/topotests/ripng_topo1/r3/show_ipv6_route.ref index 25a7440111..25a7440111 100644 --- a/tests/topotests/ripng-topo1/r3/show_ipv6_route.ref +++ b/tests/topotests/ripng_topo1/r3/show_ipv6_route.ref diff --git a/tests/topotests/ripng-topo1/r3/zebra.conf b/tests/topotests/ripng_topo1/r3/zebra.conf index b43ba69834..b43ba69834 100644 --- a/tests/topotests/ripng-topo1/r3/zebra.conf +++ b/tests/topotests/ripng_topo1/r3/zebra.conf diff --git a/tests/topotests/ripng-topo1/test_ripng_topo1.dot b/tests/topotests/ripng_topo1/test_ripng_topo1.dot index 7d66a2a306..7d66a2a306 100644 --- a/tests/topotests/ripng-topo1/test_ripng_topo1.dot +++ b/tests/topotests/ripng_topo1/test_ripng_topo1.dot diff --git a/tests/topotests/ripng-topo1/test_ripng_topo1.pdf b/tests/topotests/ripng_topo1/test_ripng_topo1.pdf Binary files differindex cb1adde239..cb1adde239 100644 --- a/tests/topotests/ripng-topo1/test_ripng_topo1.pdf +++ b/tests/topotests/ripng_topo1/test_ripng_topo1.pdf diff --git a/tests/topotests/ripng-topo1/test_ripng_topo1.py b/tests/topotests/ripng_topo1/test_ripng_topo1.py index 4a5a59cd75..4a5a59cd75 100644 --- a/tests/topotests/ripng-topo1/test_ripng_topo1.py +++ b/tests/topotests/ripng_topo1/test_ripng_topo1.py diff --git a/tests/topotests/route-scale/r1/installed.routes.json b/tests/topotests/route_scale/r1/installed.routes.json index 25d209f9eb..25d209f9eb 100644 --- a/tests/topotests/route-scale/r1/installed.routes.json +++ b/tests/topotests/route_scale/r1/installed.routes.json diff --git a/tests/topotests/route-scale/r1/no.routes.json b/tests/topotests/route_scale/r1/no.routes.json index abebd1b143..abebd1b143 100644 --- a/tests/topotests/route-scale/r1/no.routes.json +++ b/tests/topotests/route_scale/r1/no.routes.json diff --git a/tests/topotests/route-scale/r1/sharpd.conf b/tests/topotests/route_scale/r1/sharpd.conf index 0848f34ddf..0848f34ddf 100644 --- a/tests/topotests/route-scale/r1/sharpd.conf +++ b/tests/topotests/route_scale/r1/sharpd.conf diff --git a/tests/topotests/route-scale/r1/zebra.conf b/tests/topotests/route_scale/r1/zebra.conf index 48a01f48ab..48a01f48ab 100644 --- a/tests/topotests/route-scale/r1/zebra.conf +++ b/tests/topotests/route_scale/r1/zebra.conf diff --git a/tests/topotests/route-scale/test_route_scale.py b/tests/topotests/route_scale/test_route_scale.py index bbd6ef8d60..bbd6ef8d60 100644 --- a/tests/topotests/route-scale/test_route_scale.py +++ b/tests/topotests/route_scale/test_route_scale.py diff --git a/tests/topotests/simple-snmp-test/r1/bgpd.conf b/tests/topotests/simple_snmp_test/r1/bgpd.conf index 00d1e17670..00d1e17670 100644 --- a/tests/topotests/simple-snmp-test/r1/bgpd.conf +++ b/tests/topotests/simple_snmp_test/r1/bgpd.conf diff --git a/tests/topotests/simple-snmp-test/r1/isisd.conf b/tests/topotests/simple_snmp_test/r1/isisd.conf index b5ca993da3..b5ca993da3 100644 --- a/tests/topotests/simple-snmp-test/r1/isisd.conf +++ b/tests/topotests/simple_snmp_test/r1/isisd.conf diff --git a/tests/topotests/simple-snmp-test/r1/snmpd.conf b/tests/topotests/simple_snmp_test/r1/snmpd.conf index b37911da36..b37911da36 100644 --- a/tests/topotests/simple-snmp-test/r1/snmpd.conf +++ b/tests/topotests/simple_snmp_test/r1/snmpd.conf diff --git a/tests/topotests/simple-snmp-test/r1/zebra.conf b/tests/topotests/simple_snmp_test/r1/zebra.conf index 5281d0055d..5281d0055d 100644 --- a/tests/topotests/simple-snmp-test/r1/zebra.conf +++ b/tests/topotests/simple_snmp_test/r1/zebra.conf diff --git a/tests/topotests/simple-snmp-test/test_simple_snmp.py b/tests/topotests/simple_snmp_test/test_simple_snmp.py index 5647e2b663..5647e2b663 100755 --- a/tests/topotests/simple-snmp-test/test_simple_snmp.py +++ b/tests/topotests/simple_snmp_test/test_simple_snmp.py diff --git a/tests/topotests/static_routing_with_ebgp/test_static_routes_topo1_ebgp.py b/tests/topotests/static_routing_with_ebgp/test_static_routes_topo1_ebgp.py index a4cc8e8e7a..a16c4ae297 100644 --- a/tests/topotests/static_routing_with_ebgp/test_static_routes_topo1_ebgp.py +++ b/tests/topotests/static_routing_with_ebgp/test_static_routes_topo1_ebgp.py @@ -40,10 +40,11 @@ import platform CWD = os.path.dirname(os.path.realpath(__file__)) sys.path.append(os.path.join(CWD, "../")) sys.path.append(os.path.join(CWD, "../lib/")) + # pylint: disable=C0413 # Import topogen and topotest helpers -from mininet.topo import Topo from lib.topogen import Topogen, get_topogen +from mininet.topo import Topo from lib.topotest import version_cmp # Import topoJson from lib, to create topology and initial configuration @@ -68,15 +69,14 @@ from lib.topojson import build_topo_from_json, build_config_from_json pytestmark = [pytest.mark.bgpd, pytest.mark.staticd] # Reading the data from JSON File for topology creation -jsonFile = "{}/static_routes_topo1_ebgp.json".format(CWD) +JSONFILE = "{}/static_routes_topo1_ebgp.json".format(CWD) try: - with open(jsonFile, "r") as topoJson: + with open(JSONFILE, "r") as topoJson: topo = json.load(topoJson) except IOError: - assert False, "Could not read file {}".format(jsonFile) + assert False, "Could not read file {}".format(JSONFILE) # Global variables -BGP_CONVERGENCE = False ADDR_TYPES = check_address_types() NETWORK = {"ipv4": ["11.0.20.1/32", "11.0.20.2/32"], "ipv6": ["2::1/128", "2::2/128"]} NETWORK2 = {"ipv4": "11.0.20.1/32", "ipv6": "2::1/128"} @@ -98,6 +98,10 @@ class CreateTopo(Topo): # Building topology from json file build_topo_from_json(tgen, topo) + def dumdum(self): + """ Dummy """ + print("%s", self.name) + def setup_module(mod): """ @@ -105,7 +109,7 @@ def setup_module(mod): * `mod`: module name """ - global topo + testsuite_run_time = time.asctime(time.localtime(time.time())) logger.info("Testsuite start time: {}".format(testsuite_run_time)) logger.info("=" * 40) @@ -131,16 +135,14 @@ def setup_module(mod): pytest.skip(error_msg) # Checking BGP convergence - global BGP_CONVERGENCE - global ADDR_TYPES + # Don't run this test if we have any failure. if tgen.routers_have_failure(): pytest.skip(tgen.errors) + # Api call verify whether BGP is converged - BGP_CONVERGENCE = verify_bgp_convergence(tgen, topo) - assert BGP_CONVERGENCE is True, "setup_module :Failed \n Error: {}".format( - BGP_CONVERGENCE - ) + converged = verify_bgp_convergence(tgen, topo) + assert converged is True, "setup_module :Failed \n Error: {}".format(converged) logger.info("Running setup_module() done") @@ -152,7 +154,7 @@ def teardown_module(mod): * `mod`: module name """ - logger.info("Running teardown_module to delete topology") + logger.info("Running teardown_module to delete topology: %s", mod) tgen = get_topogen() @@ -166,7 +168,11 @@ def teardown_module(mod): def populate_nh(): - NEXT_HOP_IP = { + """ + Populate nexthops. + """ + + next_hop_ip = { "nh1": { "ipv4": topo["routers"]["r1"]["links"]["r2-link0"]["ipv4"].split("/")[0], "ipv6": topo["routers"]["r1"]["links"]["r2-link0"]["ipv6"].split("/")[0], @@ -176,7 +182,7 @@ def populate_nh(): "ipv6": topo["routers"]["r1"]["links"]["r2-link1"]["ipv6"].split("/")[0], }, } - return NEXT_HOP_IP + return next_hop_ip ##################################################### @@ -199,7 +205,7 @@ def test_static_route_2nh_p0_tc_1_ebgp(request): pytest.skip(tgen.errors) reset_config_on_routers(tgen) - NEXT_HOP_IP = populate_nh() + next_hop_ip = populate_nh() step( "Configure IPv4 static route (10.1.1.1) in R2 with next hop N1" @@ -213,11 +219,11 @@ def test_static_route_2nh_p0_tc_1_ebgp(request): "static_routes": [ { "network": NETWORK[addr_type], - "next_hop": NEXT_HOP_IP["nh1"][addr_type], + "next_hop": next_hop_ip["nh1"][addr_type], }, { "network": NETWORK[addr_type], - "next_hop": NEXT_HOP_IP["nh2"][addr_type], + "next_hop": next_hop_ip["nh2"][addr_type], }, ] } @@ -233,7 +239,7 @@ def test_static_route_2nh_p0_tc_1_ebgp(request): "On R2, static route installed in RIB using show ip route" " with 2 ECMP next hop " ) - nh = [NEXT_HOP_IP["nh1"][addr_type], NEXT_HOP_IP["nh2"][addr_type]] + nh = [next_hop_ip["nh1"][addr_type], next_hop_ip["nh2"][addr_type]] dut = "r2" protocol = "static" result = verify_rib( @@ -268,7 +274,7 @@ def test_static_route_2nh_p0_tc_1_ebgp(request): "static_routes": [ { "network": NETWORK[addr_type], - "next_hop": NEXT_HOP_IP["nh1"][addr_type], + "next_hop": next_hop_ip["nh1"][addr_type], "delete": True, } ] @@ -284,7 +290,7 @@ def test_static_route_2nh_p0_tc_1_ebgp(request): "On R2, after removing the static route with N1 , " "route become active with nexthop N2 and vice versa." ) - nh = NEXT_HOP_IP["nh1"][addr_type] + nh = next_hop_ip["nh1"][addr_type] result = verify_rib( tgen, addr_type, @@ -300,12 +306,13 @@ def test_static_route_2nh_p0_tc_1_ebgp(request): tc_name ) - nh = [NEXT_HOP_IP["nh2"][addr_type]] + nh = [next_hop_ip["nh2"][addr_type]] result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) step("Configure the static route with nexthop N1") @@ -314,7 +321,7 @@ def test_static_route_2nh_p0_tc_1_ebgp(request): "static_routes": [ { "network": NETWORK[addr_type], - "next_hop": NEXT_HOP_IP["nh1"][addr_type], + "next_hop": next_hop_ip["nh1"][addr_type], } ] } @@ -333,7 +340,7 @@ def test_static_route_2nh_p0_tc_1_ebgp(request): "static_routes": [ { "network": NETWORK[addr_type], - "next_hop": NEXT_HOP_IP["nh2"][addr_type], + "next_hop": next_hop_ip["nh2"][addr_type], "delete": True, } ] @@ -350,7 +357,7 @@ def test_static_route_2nh_p0_tc_1_ebgp(request): "On R2, after removing the static route with N2 , " "route become active with nexthop N1 and vice versa." ) - nh = NEXT_HOP_IP["nh2"][addr_type] + nh = next_hop_ip["nh2"][addr_type] result = verify_rib( tgen, addr_type, @@ -360,15 +367,19 @@ def test_static_route_2nh_p0_tc_1_ebgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" " still present in RIB".format( + tc_name + ) - nh = [NEXT_HOP_IP["nh1"][addr_type]] + nh = [next_hop_ip["nh1"][addr_type]] result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) step("Configure the static route with nexthop N2") input_dict_4 = { @@ -376,7 +387,7 @@ def test_static_route_2nh_p0_tc_1_ebgp(request): "static_routes": [ { "network": NETWORK[addr_type], - "next_hop": NEXT_HOP_IP["nh2"][addr_type], + "next_hop": next_hop_ip["nh2"][addr_type], } ] } @@ -395,14 +406,15 @@ def test_static_route_2nh_p0_tc_1_ebgp(request): step("Only one the nexthops should be active in RIB.") - nh = NEXT_HOP_IP["nh2"][addr_type] + nh = next_hop_ip["nh2"][addr_type] result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) - nh = NEXT_HOP_IP["nh1"][addr_type] + nh = next_hop_ip["nh1"][addr_type] result = verify_rib( tgen, addr_type, @@ -412,15 +424,21 @@ def test_static_route_2nh_p0_tc_1_ebgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" " still present in RIB".format( + tc_name + ) dut = "r3" result = verify_bgp_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, expected=False ) - assert result is not True, "Testcase {} : Failed \nError: Route is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Route is" " still present in RIB".format( + tc_name + ) result = verify_rib( tgen, @@ -431,27 +449,35 @@ def test_static_route_2nh_p0_tc_1_ebgp(request): next_hop=nh, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Route is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Route is" " still present in RIB".format( + tc_name + ) dut = "r2" - nh = [NEXT_HOP_IP["nh2"][addr_type]] + nh = [next_hop_ip["nh2"][addr_type]] result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) dut = "r3" result = verify_bgp_rib(tgen, addr_type, dut, input_dict_4) - assert result is True, "Testcase {} : Failed \nError: Route is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Route is" " missing in RIB".format(tc_name) result = verify_rib( tgen, addr_type, dut, input_dict_4, protocol=protocol, expected=False ) - assert result is not True, "Testcase {} : Failed \nError: Route is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Route is" " still present in RIB".format( + tc_name + ) dut = "r2" step("No shut the nexthop interface N1") @@ -461,13 +487,14 @@ def test_static_route_2nh_p0_tc_1_ebgp(request): "after shut of nexthop N1 , route become active " "with nexthop N2 and vice versa." ) - nh = [NEXT_HOP_IP["nh1"][addr_type], NEXT_HOP_IP["nh2"][addr_type]] + nh = [next_hop_ip["nh1"][addr_type], next_hop_ip["nh2"][addr_type]] result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) step("Shut nexthop interface N2") intf = topo["routers"]["r2"]["links"]["r1-link1"]["interface"] @@ -478,7 +505,7 @@ def test_static_route_2nh_p0_tc_1_ebgp(request): " after shut of nexthop N1 , route become active with " "nexthop N2 and vice versa." ) - nh = NEXT_HOP_IP["nh2"][addr_type] + nh = next_hop_ip["nh2"][addr_type] result = verify_rib( tgen, @@ -489,28 +516,36 @@ def test_static_route_2nh_p0_tc_1_ebgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" " still present in RIB".format( + tc_name + ) - nh = [NEXT_HOP_IP["nh1"][addr_type]] + nh = [next_hop_ip["nh1"][addr_type]] dut = "r2" protocol = "static" result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) dut = "r3" result = verify_bgp_rib(tgen, addr_type, dut, input_dict_4) - assert result is True, "Testcase {} : Failed \nError: Route is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Route is" " missing in RIB".format(tc_name) result = verify_rib( tgen, addr_type, dut, input_dict_4, protocol=protocol, expected=False ) - assert result is not True, "Testcase {} : Failed \nError: Route is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Route is" " still present in RIB".format( + tc_name + ) step("No shut nexthop interface N2") dut = "r2" @@ -520,24 +555,29 @@ def test_static_route_2nh_p0_tc_1_ebgp(request): "after shut of nexthop N1 , route become active " "with nexthop N2 and vice versa." ) - nh = [NEXT_HOP_IP["nh1"][addr_type], NEXT_HOP_IP["nh2"][addr_type]] + nh = [next_hop_ip["nh1"][addr_type], next_hop_ip["nh2"][addr_type]] result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) dut = "r3" result = verify_bgp_rib(tgen, addr_type, dut, input_dict_4) - assert result is True, "Testcase {} : Failed \nError: Route is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Route is" " missing in RIB".format(tc_name) result = verify_rib( tgen, addr_type, dut, input_dict_4, protocol=protocol, expected=False ) - assert result is not True, "Testcase {} : Failed \nError: Route is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Route is" " still present in RIB".format( + tc_name + ) step("Reload the FRR router") # stop/start -> restart FRR router and verify @@ -553,19 +593,26 @@ def test_static_route_2nh_p0_tc_1_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) dut = "r3" result = verify_bgp_rib(tgen, addr_type, dut, input_dict_4) - assert result is True, "Testcase {} : Failed \nError: Route is" - " still present in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Route is" " still present in RIB".format( + tc_name + ) result = verify_rib( tgen, addr_type, dut, input_dict_4, protocol=protocol, expected=False ) - assert result is not True, "Testcase {} : Failed \nError: Route is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Route is" " still present in RIB".format( + tc_name + ) write_test_footer(tc_name) @@ -583,7 +630,7 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): pytest.skip(tgen.errors) reset_config_on_routers(tgen) - NEXT_HOP_IP = populate_nh() + step( "Configure IPv4 static route (10.1.1.1) in R2 with next hop N1" "(28.1.1.2 ) AD 10 and N2 (29.1.1.2) AD 20 , Static route next-hop" @@ -592,19 +639,19 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): ) reset_config_on_routers(tgen) - NEXT_HOP_IP = populate_nh() + next_hop_ip = populate_nh() for addr_type in ADDR_TYPES: input_dict_4 = { "r2": { "static_routes": [ { "network": NETWORK2[addr_type], - "next_hop": NEXT_HOP_IP["nh1"][addr_type], + "next_hop": next_hop_ip["nh1"][addr_type], "admin_distance": 10, }, { "network": NETWORK2[addr_type], - "next_hop": NEXT_HOP_IP["nh2"][addr_type], + "next_hop": next_hop_ip["nh2"][addr_type], "admin_distance": 20, }, ] @@ -625,33 +672,34 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): "static_routes": [ { "network": NETWORK2[addr_type], - "next_hop": NEXT_HOP_IP["nh1"][addr_type], + "next_hop": next_hop_ip["nh1"][addr_type], "admin_distance": 10, } ] } } - nh = [NEXT_HOP_IP["nh1"][addr_type]] + nh = [next_hop_ip["nh1"][addr_type]] dut = "r2" protocol = "static" result = verify_rib( tgen, addr_type, dut, rte1_nh1, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - "missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" "missing in RIB".format(tc_name) rte2_nh2 = { "r2": { "static_routes": [ { "network": NETWORK2[addr_type], - "next_hop": NEXT_HOP_IP["nh2"][addr_type], + "next_hop": next_hop_ip["nh2"][addr_type], "admin_distance": 20, } ] } } - nh = [NEXT_HOP_IP["nh2"][addr_type]] + nh = [next_hop_ip["nh2"][addr_type]] dut = "r2" protocol = "static" result = verify_rib( @@ -664,8 +712,9 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - "not active in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" "not active in RIB".format(tc_name) step("Configure IBGP IPv4 peering between R2 and R3 router.") step("Explicit route is added in R3 for R2 nexthop rechability") @@ -673,11 +722,11 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): "r3": { "static_routes": [ { - "network": NEXT_HOP_IP["nh1"][addr_type] + "/32", + "network": next_hop_ip["nh1"][addr_type] + "/32", "next_hop": topo["routers"]["r2"]["links"]["r3"][addr_type], }, { - "network": NEXT_HOP_IP["nh2"][addr_type] + "/32", + "network": next_hop_ip["nh2"][addr_type] + "/32", "next_hop": topo["routers"]["r2"]["links"]["r3"][addr_type], }, ] @@ -712,7 +761,7 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): "static_routes": [ { "network": NETWORK[addr_type], - "next_hop": NEXT_HOP_IP["nh1"][addr_type], + "next_hop": next_hop_ip["nh1"][addr_type], "admin_distance": 10, "delete": True, } @@ -735,13 +784,13 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): "static_routes": [ { "network": NETWORK2[addr_type], - "next_hop": NEXT_HOP_IP["nh1"][addr_type], + "next_hop": next_hop_ip["nh1"][addr_type], "admin_distance": 10, } ] } } - nh = [NEXT_HOP_IP["nh1"][addr_type]] + nh = [next_hop_ip["nh1"][addr_type]] dut = "r2" protocol = "static" result = verify_rib( @@ -754,26 +803,28 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - "missing in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" "missing in RIB".format(tc_name) rte2_nh2 = { "r2": { "static_routes": [ { "network": NETWORK2[addr_type], - "next_hop": NEXT_HOP_IP["nh2"][addr_type], + "next_hop": next_hop_ip["nh2"][addr_type], "admin_distance": 20, } ] } } - nh = [NEXT_HOP_IP["nh2"][addr_type]] + nh = [next_hop_ip["nh2"][addr_type]] result = verify_rib( tgen, addr_type, dut, rte2_nh2, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - "not active in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" "not active in RIB".format(tc_name) step("Configure the static route with nexthop N1") rte1_nh1 = { @@ -781,7 +832,7 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): "static_routes": [ { "network": NETWORK[addr_type], - "next_hop": NEXT_HOP_IP["nh1"][addr_type], + "next_hop": next_hop_ip["nh1"][addr_type], "admin_distance": 10, } ] @@ -799,7 +850,7 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): "static_routes": [ { "network": NETWORK[addr_type], - "next_hop": NEXT_HOP_IP["nh2"][addr_type], + "next_hop": next_hop_ip["nh2"][addr_type], "admin_distance": 20, "delete": True, } @@ -816,7 +867,7 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): "On R2, after removing the static route with N2 , " "route become active with nexthop N1 and vice versa." ) - nh = NEXT_HOP_IP["nh2"][addr_type] + nh = next_hop_ip["nh2"][addr_type] result = verify_rib( tgen, addr_type, @@ -826,15 +877,19 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" " still present in RIB".format( + tc_name + ) - nh = [NEXT_HOP_IP["nh1"][addr_type]] + nh = [next_hop_ip["nh1"][addr_type]] result = verify_rib( tgen, addr_type, dut, rte1_nh1, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) step("Configure the static route with nexthop N2") rte2_nh2 = { @@ -842,7 +897,7 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): "static_routes": [ { "network": NETWORK[addr_type], - "next_hop": NEXT_HOP_IP["nh2"][addr_type], + "next_hop": next_hop_ip["nh2"][addr_type], "admin_distance": 20, } ] @@ -862,7 +917,7 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): step("after shut of nexthop N1 , route become active with nexthop N2") - nh = NEXT_HOP_IP["nh1"][addr_type] + nh = next_hop_ip["nh1"][addr_type] result = verify_rib( tgen, addr_type, @@ -872,15 +927,19 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" " still present in RIB".format( + tc_name + ) - nh = [NEXT_HOP_IP["nh2"][addr_type]] + nh = [next_hop_ip["nh2"][addr_type]] result = verify_rib( tgen, addr_type, dut, rte2_nh2, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) step("No shut the nexthop interface N1") shutdown_bringup_interface(tgen, dut, intf, True) @@ -889,13 +948,14 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): "after shut of nexthop N1 , route become active " "with nexthop N2 and vice versa." ) - nh = [NEXT_HOP_IP["nh1"][addr_type]] + nh = [next_hop_ip["nh1"][addr_type]] result = verify_rib( tgen, addr_type, dut, rte1_nh1, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) step("Shut nexthop interface N2") intf = topo["routers"]["r2"]["links"]["r1-link1"]["interface"] @@ -906,7 +966,7 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): " after shut of nexthop N1 , route become active with " "nexthop N2 and vice versa." ) - nh = NEXT_HOP_IP["nh2"][addr_type] + nh = next_hop_ip["nh2"][addr_type] result = verify_rib( tgen, @@ -917,15 +977,19 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" " still present in RIB".format( + tc_name + ) - nh = [NEXT_HOP_IP["nh1"][addr_type]] + nh = [next_hop_ip["nh1"][addr_type]] result = verify_rib( tgen, addr_type, dut, rte1_nh1, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) step("No shut nexthop interface N2") shutdown_bringup_interface(tgen, dut, intf, True) @@ -939,33 +1003,34 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): "static_routes": [ { "network": NETWORK2[addr_type], - "next_hop": NEXT_HOP_IP["nh1"][addr_type], + "next_hop": next_hop_ip["nh1"][addr_type], "admin_distance": 10, } ] } } - nh = [NEXT_HOP_IP["nh1"][addr_type]] + nh = [next_hop_ip["nh1"][addr_type]] dut = "r2" protocol = "static" result = verify_rib( tgen, addr_type, dut, rte1_nh1, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - "missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" "missing in RIB".format(tc_name) rte2_nh2 = { "r2": { "static_routes": [ { "network": NETWORK2[addr_type], - "next_hop": NEXT_HOP_IP["nh2"][addr_type], + "next_hop": next_hop_ip["nh2"][addr_type], "admin_distance": 20, } ] } } - nh = [NEXT_HOP_IP["nh2"][addr_type]] + nh = [next_hop_ip["nh2"][addr_type]] dut = "r2" protocol = "static" result = verify_rib( @@ -978,8 +1043,9 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - "not active in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" "not active in RIB".format(tc_name) dut = "r3" protocol = "bgp" @@ -994,8 +1060,9 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - "not active in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" "not active in RIB".format(tc_name) dut = "r2" step("Reload the FRR router") @@ -1013,39 +1080,41 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): "static_routes": [ { "network": NETWORK2[addr_type], - "next_hop": NEXT_HOP_IP["nh1"][addr_type], + "next_hop": next_hop_ip["nh1"][addr_type], "admin_distance": 10, } ] } } - nh = [NEXT_HOP_IP["nh1"][addr_type]] + nh = [next_hop_ip["nh1"][addr_type]] dut = "r2" protocol = "static" result = verify_rib( tgen, addr_type, dut, rte1_nh1, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - "missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" "missing in RIB".format(tc_name) dut = "r3" protocol = "bgp" result = verify_bgp_rib(tgen, addr_type, dut, rte1_nh1, next_hop=nh) - assert result is True, "Testcase {} : Failed \nError: Routes is" - "missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" "missing in RIB".format(tc_name) rte2_nh2 = { "r2": { "static_routes": [ { "network": NETWORK2[addr_type], - "next_hop": NEXT_HOP_IP["nh2"][addr_type], + "next_hop": next_hop_ip["nh2"][addr_type], "admin_distance": 20, } ] } } - nh = [NEXT_HOP_IP["nh2"][addr_type]] + nh = [next_hop_ip["nh2"][addr_type]] dut = "r2" protocol = "static" result = verify_rib( @@ -1058,14 +1127,16 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - "not active in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" "not active in RIB".format(tc_name) dut = "r3" protocol = "bgp" result = verify_bgp_rib(tgen, addr_type, dut, rte2_nh2, next_hop=nh) - assert result is True, "Testcase {} : Failed \nError: Routes is" - "not active in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" "not active in RIB".format(tc_name) result = verify_rib( tgen, @@ -1077,8 +1148,9 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ebgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - "not active in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" "not active in RIB".format(tc_name) write_test_footer(tc_name) @@ -1148,14 +1220,20 @@ def test_same_rte_from_bgp_static_p0_tc5_ebgp(request): step("Verify on R3 , route receive on R3 BGP table ") dut = "r3" result = verify_bgp_rib(tgen, addr_type, dut, input_dict_4) - assert result is True, "Testcase {} : Failed \nError: Route is" - " still present in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Route is" " still present in RIB".format( + tc_name + ) step("Verify route installed in the RIB and FIB of R3") protocol = "bgp" result = verify_rib(tgen, addr_type, dut, input_dict_4, protocol=protocol) - assert result is True, "Testcase {} : Failed \nError: Route is" - " still present in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Route is" " still present in RIB".format( + tc_name + ) step( "Configure 2 links/interfaces between R1 and R3 , keep one" @@ -1206,15 +1284,19 @@ def test_same_rte_from_bgp_static_p0_tc5_ebgp(request): ) dut = "r3" result = verify_bgp_rib(tgen, addr_type, dut, input_dict_4) - assert result is True, "Testcase {} : Failed \nError: Route is" - " missing in BGP RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Route is" " missing in BGP RIB".format( + tc_name + ) protocol = "bgp" result = verify_rib( tgen, addr_type, dut, input_dict_4, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Route is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Route is" " missing in RIB".format(tc_name) step("Remove the static route on R3 configured with active" "interface") for addr_type in ADDR_TYPES: @@ -1249,15 +1331,19 @@ def test_same_rte_from_bgp_static_p0_tc5_ebgp(request): ) dut = "r3" result = verify_bgp_rib(tgen, addr_type, dut, input_dict_4) - assert result is True, "Testcase {} : Failed \nError: Route is" - " missing in BGP RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Route is" " missing in BGP RIB".format( + tc_name + ) protocol = "bgp" result = verify_rib( tgen, addr_type, dut, input_dict_4, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Route is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Route is" " missing in RIB".format(tc_name) write_test_footer(tc_name) diff --git a/tests/topotests/static_routing_with_ebgp/test_static_routes_topo2_ebgp.py b/tests/topotests/static_routing_with_ebgp/test_static_routes_topo2_ebgp.py index 6649915dec..bbb4370a93 100644 --- a/tests/topotests/static_routing_with_ebgp/test_static_routes_topo2_ebgp.py +++ b/tests/topotests/static_routing_with_ebgp/test_static_routes_topo2_ebgp.py @@ -314,8 +314,9 @@ def test_static_rte_with_8ecmp_nh_p1_tc9_ebgp(request): next_hop=nh_all[addr_type], protocol=protocol, ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) step("Configure redistribute static in BGP on R2 router") for addr_type in ADDR_TYPES: @@ -338,8 +339,9 @@ def test_static_rte_with_8ecmp_nh_p1_tc9_ebgp(request): dut = "r3" protocol = "bgp" result = verify_bgp_rib(tgen, addr_type, dut, input_dict_4) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) step( "Remove the static route configured with nexthop N1 to N8, one" @@ -384,8 +386,11 @@ def test_static_rte_with_8ecmp_nh_p1_tc9_ebgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed\nError: Routes is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed\nError: Routes is" " still present in RIB".format( + tc_name + ) step("Configure the static route with nexthop N1 to N8, one by one") for addr_type in ADDR_TYPES: @@ -410,8 +415,11 @@ def test_static_rte_with_8ecmp_nh_p1_tc9_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed\nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed\nError: Routes are" " missing in RIB".format( + tc_name + ) protocol = "static" step("Random shut of the nexthop interfaces") @@ -455,8 +463,9 @@ def test_static_rte_with_8ecmp_nh_p1_tc9_ebgp(request): next_hop=nh_all[addr_type], protocol=protocol, ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) step("Remove random static route with all the nexthop") dut = "r2" @@ -493,8 +502,9 @@ def test_static_rte_with_8ecmp_nh_p1_tc9_ebgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) for addr_type in ADDR_TYPES: input_dict_4 = { @@ -546,8 +556,9 @@ def test_static_rte_with_8ecmp_nh_p1_tc9_ebgp(request): next_hop=nh_all[addr_type], protocol=protocol, ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) step("Remove the redistribute static knob") for addr_type in ADDR_TYPES: @@ -580,8 +591,11 @@ def test_static_rte_with_8ecmp_nh_p1_tc9_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, protocol=protocol, expected=False ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes are" " still present in RIB".format( + tc_name + ) write_test_footer(tc_name) @@ -661,8 +675,9 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) nh = [] for nhp in range(2, 9): @@ -679,8 +694,9 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ebgp(request): wait=2, attempts=3, ) - assert result is not True, "Testcase {} : Failed \nError: Routes " - " are missing in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes " " are missing in RIB".format(tc_name) step( "Remove the static route configured with nexthop N1 to N8, one" @@ -723,8 +739,11 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ebgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes are" " still present in RIB".format( + tc_name + ) step("Configure the static route with nexthop N1 to N8, one by one") @@ -770,8 +789,9 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) nh = [] for nhp in range(2, 9): nh.append(NEXT_HOP_IP["nh" + str(nhp)][addr_type]) @@ -787,8 +807,9 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ebgp(request): wait=2, attempts=3, ) - assert result is not True, "Testcase {} : Failed \nError: Routes " - " are missing in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes " " are missing in RIB".format(tc_name) step("Random shut of the nexthop interfaces") randnum = random.randint(0, 7) @@ -815,8 +836,11 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ebgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \n" - "Error: Routes are still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \n" "Error: Routes are still present in RIB".format( + tc_name + ) step("Random no shut of the nexthop interfaces") for addr_type in ADDR_TYPES: @@ -826,8 +850,9 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_5, next_hop=nhip, protocol=protocol ) - assert result is True, "Testcase {} : Failed \n" - "Error: Routes are missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \n" "Error: Routes are missing in RIB".format(tc_name) dut = "r2" protocol = "static" @@ -955,8 +980,9 @@ def test_static_route_8nh_diff_AD_ebgp_ecmp_p1_tc8_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) nh = [] for nhp in range(2, 9): @@ -971,8 +997,9 @@ def test_static_route_8nh_diff_AD_ebgp_ecmp_p1_tc8_ebgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes " - " are missing in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes " " are missing in RIB".format(tc_name) step( "Remove the static route configured with nexthop N1 to N8, one" @@ -1015,8 +1042,11 @@ def test_static_route_8nh_diff_AD_ebgp_ecmp_p1_tc8_ebgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes are" " still present in RIB".format( + tc_name + ) step("Configure the static route with nexthop N1 to N8, one by one") @@ -1062,8 +1092,9 @@ def test_static_route_8nh_diff_AD_ebgp_ecmp_p1_tc8_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) nh = [] for nhp in range(2, 9): nh.append(NEXT_HOP_IP["nh" + str(nhp)][addr_type]) @@ -1077,8 +1108,9 @@ def test_static_route_8nh_diff_AD_ebgp_ecmp_p1_tc8_ebgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes " - " are missing in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes " " are missing in RIB".format(tc_name) step("Random shut of the nexthop interfaces") randnum = random.randint(0, 7) @@ -1105,8 +1137,11 @@ def test_static_route_8nh_diff_AD_ebgp_ecmp_p1_tc8_ebgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \n" - "Error: Routes are still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \n" "Error: Routes are still present in RIB".format( + tc_name + ) step("Random no shut of the nexthop interfaces") for addr_type in ADDR_TYPES: @@ -1116,8 +1151,9 @@ def test_static_route_8nh_diff_AD_ebgp_ecmp_p1_tc8_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_5, next_hop=nhip, protocol=protocol ) - assert result is True, "Testcase {} : Failed \n" - "Error: Routes are missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \n" "Error: Routes are missing in RIB".format(tc_name) dut = "r2" protocol = "static" @@ -1230,8 +1266,9 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc10_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) step("Verify that highest AD nexthop are inactive") nh = [] @@ -1249,8 +1286,9 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc10_ebgp(request): wait=2, attempts=3, ) - assert result is not True, "Testcase {} : Failed \nError: Routes " - " are missing in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes " " are missing in RIB".format(tc_name) step("Configure redistribute static in BGP on R2 router") for addr_type in ADDR_TYPES: @@ -1312,8 +1350,11 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc10_ebgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes are" " still present in RIB".format( + tc_name + ) step("Configure the static route with nexthop N1 to N8, one by one") for addr_type in ADDR_TYPES: @@ -1355,8 +1396,10 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc10_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Route with " - "lowest AD is missing in RIB".format(tc_name) + assert result is True, ( + "Testcase {} : Failed \nError: Route with " + "lowest AD is missing in RIB".format(tc_name) + ) step("Random shut of the nexthop interfaces") randnum = random.randint(0, 7) @@ -1383,8 +1426,11 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc10_ebgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \n" - "Error: Routes are still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \n" "Error: Routes are still present in RIB".format( + tc_name + ) step("Random no shut of the nexthop interfaces") for addr_type in ADDR_TYPES: @@ -1394,8 +1440,9 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc10_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_5, next_hop=nhip, protocol=protocol ) - assert result is True, "Testcase {} : Failed \n" - "Error: Routes are missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \n" "Error: Routes are missing in RIB".format(tc_name) step("Remove random static route with all the nexthop") for addr_type in ADDR_TYPES: @@ -1434,8 +1481,10 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc10_ebgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Route " - " is still present in RIB".format(tc_name) + assert result is not True, ( + "Testcase {} : Failed \nError: Route " + " is still present in RIB".format(tc_name) + ) step("Reconfigure the deleted routes and verify they are installed") for nhp in range(1, 9): @@ -1460,8 +1509,10 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc10_ebgp(request): protocol = "static" nh = NEXT_HOP_IP["nh1"][addr_type] result = verify_rib(tgen, addr_type, dut, input_dict_4, protocol=protocol) - assert result is True, "Testcase {} : Failed \nError: Route " - " is still present in RIB".format(tc_name) + assert result is True, ( + "Testcase {} : Failed \nError: Route " + " is still present in RIB".format(tc_name) + ) step("Reload the FRR router") # stop/start -> restart FRR router and verify @@ -1577,8 +1628,9 @@ def test_static_route_delete_p0_tc11_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) step("Verify that highest AD nexthop are inactive") nh = [] @@ -1594,8 +1646,9 @@ def test_static_route_delete_p0_tc11_ebgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes " - " are missing in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes " " are missing in RIB".format(tc_name) step("Configure redistribute static in BGP on R2 router") for addr_type in ADDR_TYPES: @@ -1647,8 +1700,11 @@ def test_static_route_delete_p0_tc11_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, protocol=protocol, expected=False ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes are" " still present in RIB".format( + tc_name + ) for addr_type in ADDR_TYPES: for nhp in range(1, 9): @@ -1715,8 +1771,12 @@ def test_static_route_delete_p0_tc11_ebgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " still active in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes are" " still active in RIB".format( + tc_name + ) + write_test_footer(tc_name) diff --git a/tests/topotests/static_routing_with_ebgp/test_static_routes_topo3_ebgp.py b/tests/topotests/static_routing_with_ebgp/test_static_routes_topo3_ebgp.py index 175a1123d7..8525e3655c 100644 --- a/tests/topotests/static_routing_with_ebgp/test_static_routes_topo3_ebgp.py +++ b/tests/topotests/static_routing_with_ebgp/test_static_routes_topo3_ebgp.py @@ -297,8 +297,9 @@ def test_staticroute_with_ecmp_p0_tc3_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) step("Configure redistribute static in BGP on R2 router") for addr_type in ADDR_TYPES: input_dict_2 = { @@ -351,8 +352,11 @@ def test_staticroute_with_ecmp_p0_tc3_ebgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes are" " still present in RIB".format( + tc_name + ) step("Configure the static route with nexthop N1 to N8, one by" "one") @@ -379,8 +383,9 @@ def test_staticroute_with_ecmp_p0_tc3_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) step("Random shut of the nexthop interfaces") randnum = random.randint(0, 7) @@ -407,8 +412,11 @@ def test_staticroute_with_ecmp_p0_tc3_ebgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \n" - "Error: Routes are still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \n" "Error: Routes are still present in RIB".format( + tc_name + ) step("Random no shut of the nexthop interfaces") for addr_type in ADDR_TYPES: @@ -418,8 +426,9 @@ def test_staticroute_with_ecmp_p0_tc3_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_5, next_hop=nhip, protocol=protocol ) - assert result is True, "Testcase {} : Failed \n" - "Error: Routes are missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \n" "Error: Routes are missing in RIB".format(tc_name) step("Reload the FRR router") # stop/start -> restart FRR router and verify @@ -429,8 +438,9 @@ def test_staticroute_with_ecmp_p0_tc3_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) write_test_footer(tc_name) @@ -509,8 +519,10 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Route with " - " lowest AD is missing in RIB".format(tc_name) + assert result is True, ( + "Testcase {} : Failed \nError: Route with " + " lowest AD is missing in RIB".format(tc_name) + ) nh = [] for nhp in range(2, 9): @@ -525,8 +537,10 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ebgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes " - " with high AD are active in RIB".format(tc_name) + assert result is not True, ( + "Testcase {} : Failed \nError: Routes " + " with high AD are active in RIB".format(tc_name) + ) step("Configure redistribute static in BGP on R2 router") for addr_type in ADDR_TYPES: @@ -569,8 +583,10 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Route with " - " lowest AD is missing in RIB".format(tc_name) + assert result is True, ( + "Testcase {} : Failed \nError: Route with " + " lowest AD is missing in RIB".format(tc_name) + ) step( "Remove the static route configured with nexthop N1 to N8, one" @@ -613,8 +629,11 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ebgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes are" " still present in RIB".format( + tc_name + ) step("Configure the static route with nexthop N1 to N8, one by" "one") for addr_type in ADDR_TYPES: @@ -655,8 +674,10 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Route with " - " lowest AD is missing in RIB".format(tc_name) + assert result is True, ( + "Testcase {} : Failed \nError: Route with " + " lowest AD is missing in RIB".format(tc_name) + ) nh = [] for nhp in range(2, 9): @@ -671,8 +692,10 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ebgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes " - " with high AD are active in RIB".format(tc_name) + assert result is not True, ( + "Testcase {} : Failed \nError: Routes " + " with high AD are active in RIB".format(tc_name) + ) step("Random shut of the nexthop interfaces") randnum = random.randint(0, 7) @@ -699,8 +722,11 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ebgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \n" - "Error: Routes are still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \n" "Error: Routes are still present in RIB".format( + tc_name + ) step("Random no shut of the nexthop interfaces") for addr_type in ADDR_TYPES: @@ -710,8 +736,9 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_5, next_hop=nhip, protocol=protocol ) - assert result is True, "Testcase {} : Failed \n" - "Error: Routes are missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \n" "Error: Routes are missing in RIB".format(tc_name) step("Reload the FRR router") # stop/start -> restart FRR router and verify @@ -740,8 +767,10 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Route with " - " lowest AD is missing in RIB".format(tc_name) + assert result is True, ( + "Testcase {} : Failed \nError: Route with " + " lowest AD is missing in RIB".format(tc_name) + ) nh = [] for nhp in range(2, 9): @@ -756,8 +785,10 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ebgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes " - " with high AD are active in RIB".format(tc_name) + assert result is not True, ( + "Testcase {} : Failed \nError: Routes " + " with high AD are active in RIB".format(tc_name) + ) write_test_footer(tc_name) @@ -818,18 +849,25 @@ def test_bgp_local_nexthop_p1_tc14_ebgp(request): step("Verify R2 BGP table has IPv4 route") dut = "r2" result = verify_rib(tgen, addr_type, dut, input_dict_4) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB of R2".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB of R2".format( + tc_name + ) step(" Verify route did not install in the R3 BGP table, RIB/FIB") dut = "r3" result = verify_bgp_rib(tgen, addr_type, dut, input_dict_4, expected=False) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - " still present in BGP RIB of R2".format(tc_name) + assert result is not True, ( + "Testcase {} : Failed \nError: Routes is" + " still present in BGP RIB of R2".format(tc_name) + ) result = verify_rib(tgen, addr_type, dut, input_dict_4, expected=False) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - " still present in RIB of R2".format(tc_name) + assert result is not True, ( + "Testcase {} : Failed \nError: Routes is" + " still present in RIB of R2".format(tc_name) + ) write_test_footer(tc_name) @@ -889,8 +927,9 @@ def test_frr_intf_name_as_gw_gap_tc4_ebgp_p0(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, protocol=protocol, next_hop=nh ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) input_dict_nh = { "r1": { @@ -902,8 +941,9 @@ def test_frr_intf_name_as_gw_gap_tc4_ebgp_p0(request): } } result = verify_ip_nht(tgen, input_dict_nh) - assert result is True, "Testcase {} : Failed \nError: Nexthop is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Nexthop is" " missing in RIB".format(tc_name) step( "Shut / no shut IPv4 and IPv6 static next hop interface from" @@ -925,8 +965,9 @@ def test_frr_intf_name_as_gw_gap_tc4_ebgp_p0(request): next_hop=nh, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) shutdown_bringup_interface(tgen, dut, intf, True) @@ -970,8 +1011,11 @@ def test_frr_intf_name_as_gw_gap_tc4_ebgp_p0(request): next_hop=nh, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes" " still present in RIB".format( + tc_name + ) write_test_footer(tc_name) @@ -1034,8 +1078,9 @@ def test_static_route_with_tag_p0_tc_13_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) step("Configure route-map on R2 with allow tag1 and deny tag2") @@ -1116,8 +1161,10 @@ def test_static_route_with_tag_p0_tc_13_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_0, protocol=protocol, expected=False ) - assert result is not True, "Testcase {} : Failed \nError: Route with " - "tag 4002 is still present in RIB".format(tc_name) + assert result is not True, ( + "Testcase {} : Failed \nError: Route with " + "tag 4002 is still present in RIB".format(tc_name) + ) dut = "r2" input_dict_1 = { @@ -1125,8 +1172,10 @@ def test_static_route_with_tag_p0_tc_13_ebgp(request): } result = verify_rib(tgen, addr_type, dut, input_dict_0, protocol=protocol) - assert result is True, "Testcase {} : Failed \nError: Route with " - "tag 4001 is missing in RIB".format(tc_name) + assert result is True, ( + "Testcase {} : Failed \nError: Route with " + "tag 4001 is missing in RIB".format(tc_name) + ) step("Modify the route-map to allow tag2 and deny tag1") # Create route map @@ -1164,8 +1213,10 @@ def test_static_route_with_tag_p0_tc_13_ebgp(request): } result = verify_rib(tgen, addr_type, dut, input_dict_0, protocol=protocol) - assert result is True, "Testcase {} : Failed \nError: Route with " - "tag 4002 is missing in RIB".format(tc_name) + assert result is True, ( + "Testcase {} : Failed \nError: Route with " + "tag 4002 is missing in RIB".format(tc_name) + ) input_dict_1 = { "r2": {"static_routes": [{"network": NETWORK[addr_type], "tag": 4001}]} @@ -1173,8 +1224,10 @@ def test_static_route_with_tag_p0_tc_13_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_1, protocol=protocol, expected=False ) - assert result is not True, "Testcase {} : Failed \nError: Route with " - "tag 4001 is still present in RIB".format(tc_name, result) + assert result is not True, ( + "Testcase {} : Failed \nError: Route with " + "tag 4001 is still present in RIB".format(tc_name) + ) step("Configure one static route with 2 ECMP nexthop N1 and N2") step("For N1 configure tag 1 and for N2 configure tag 2") @@ -1213,8 +1266,9 @@ def test_static_route_with_tag_p0_tc_13_ebgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) step("shut/no shut of tag1 and tag2 nexthop") diff --git a/tests/topotests/static_routing_with_ebgp/test_static_routes_topo4_ebgp.py b/tests/topotests/static_routing_with_ebgp/test_static_routes_topo4_ebgp.py index 5d4950a70e..812b39797f 100644 --- a/tests/topotests/static_routing_with_ebgp/test_static_routes_topo4_ebgp.py +++ b/tests/topotests/static_routing_with_ebgp/test_static_routes_topo4_ebgp.py @@ -109,7 +109,7 @@ def setup_module(mod): Set up the pytest environment. * `mod`: module name """ - global topo + testsuite_run_time = time.asctime(time.localtime(time.time())) logger.info("Testsuite start time: {}".format(testsuite_run_time)) logger.info("=" * 40) @@ -135,8 +135,7 @@ def setup_module(mod): pytest.skip(error_msg) # Checking BGP convergence - global BGP_CONVERGENCE - global ADDR_TYPES + # Don't run this test if we have any failure. if tgen.routers_have_failure(): pytest.skip(tgen.errors) @@ -173,7 +172,7 @@ def teardown_module(mod): # Tests starting # ##################################################### -def static_routes_rmap_pfxlist_p0_tc7_ebgp(request): +def test_static_routes_rmap_pfxlist_p0_tc7_ebgp(request): """ Verify static route are blocked from route-map & prefix-list applied in BGP nbrs @@ -200,7 +199,7 @@ def static_routes_rmap_pfxlist_p0_tc7_ebgp(request): ) for addr_type in ADDR_TYPES: - # Api call to modfiy BGP timerse + # Api call to modify BGP timers input_dict = { "r2": { "bgp": { @@ -241,8 +240,11 @@ def static_routes_rmap_pfxlist_p0_tc7_ebgp(request): step(" All BGP nbrs are down as authentication is mismatch on both" " the sides") bgp_convergence = verify_bgp_convergence(tgen, topo, expected=False) - assert bgp_convergence is not True, "Testcase {} : " - "Failed \n BGP nbrs must be down. Error: {}".format(tc_name, bgp_convergence) + assert ( + bgp_convergence is not True + ), "Testcase {} : " "Failed \n BGP nbrs must be down. Error: {}".format( + tc_name, bgp_convergence + ) step( "Configure 4 IPv4 and 4 IPv6 nbrs with macthing password " @@ -337,8 +339,9 @@ def static_routes_rmap_pfxlist_p0_tc7_ebgp(request): "show ip prefix list" ) result = verify_prefix_lists(tgen, input_dict_2) - assert result is not True, "Testcase {} : Failed \n" - " Error: {}".format(tc_name, result) + assert result is not True, "Testcase {} : Failed \n" " Error: {}".format( + tc_name, result + ) step("Redistribute all the routes (connected, static)") input_dict_2_r1 = { @@ -588,8 +591,10 @@ def static_routes_rmap_pfxlist_p0_tc7_ebgp(request): result4 = verify_rib( tgen, addr_type, dut, input_dict, protocol=protocol, expected=False ) - assert result4 is not True, "Testcase {} : Failed , VM1 route is " - "not filtered out via prefix list. \n Error: {}".format(tc_name, result4) + assert result4 is not True, ( + "Testcase {} : Failed , VM1 route is " + "not filtered out via prefix list. \n Error: {}".format(tc_name, result4) + ) step( "VM4 and VM6 IPV4 and IPv6 address are present in local and " @@ -964,8 +969,10 @@ def static_routes_rmap_pfxlist_p0_tc7_ebgp(request): ) input_dict = {"r1": {"static_routes": [{"network": ntwk_r2_vm1}]}} result4 = verify_rib(tgen, addr_type, dut, input_dict) - assert result4 is True, "Testcase {} : Failed , VM1 route is " - "not filtered out via prefix list. \n Error: {}".format(tc_name, result4) + assert result4 is True, ( + "Testcase {} : Failed , VM1 route is " + "not filtered out via prefix list. \n Error: {}".format(tc_name, result4) + ) step("vm4 should be present in FRR2") dut = "r2" @@ -976,8 +983,10 @@ def static_routes_rmap_pfxlist_p0_tc7_ebgp(request): ) input_dict = {"r1": {"static_routes": [{"network": ntwk_r2_vm1}]}} result4 = verify_rib(tgen, addr_type, dut, input_dict) - assert result4 is True, "Testcase {} : Failed , VM1 route is " - "not filtered out via prefix list. \n Error: {}".format(tc_name, result4) + assert result4 is True, ( + "Testcase {} : Failed , VM1 route is " + "not filtered out via prefix list. \n Error: {}".format(tc_name, result4) + ) dut = "r3" protocol = "bgp" diff --git a/tests/topotests/static_routing_with_ibgp/test_static_routes_topo1_ibgp.py b/tests/topotests/static_routing_with_ibgp/test_static_routes_topo1_ibgp.py index 8c2fdfca13..4e23a72423 100644 --- a/tests/topotests/static_routing_with_ibgp/test_static_routes_topo1_ibgp.py +++ b/tests/topotests/static_routing_with_ibgp/test_static_routes_topo1_ibgp.py @@ -242,8 +242,9 @@ def test_static_route_2nh_p0_tc_1_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) step("Configure IBGP IPv4 peering between R2 and R3 router.") step("Configure redistribute static in BGP on R2 router") @@ -296,15 +297,19 @@ def test_static_route_2nh_p0_tc_1_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" " still present in RIB".format( + tc_name + ) nh = [NEXT_HOP_IP["nh2"][addr_type]] result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) step("Configure the static route with nexthop N1") @@ -359,15 +364,19 @@ def test_static_route_2nh_p0_tc_1_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" " still present in RIB".format( + tc_name + ) nh = [NEXT_HOP_IP["nh1"][addr_type]] result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) step("Configure the static route with nexthop N2") input_dict_4 = { @@ -398,8 +407,9 @@ def test_static_route_2nh_p0_tc_1_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) nh = NEXT_HOP_IP["nh1"][addr_type] result = verify_rib( @@ -411,15 +421,21 @@ def test_static_route_2nh_p0_tc_1_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" " still present in RIB".format( + tc_name + ) dut = "r3" result = verify_bgp_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, expected=False ) - assert result is not True, "Testcase {} : Failed \nError: Route is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Route is" " still present in RIB".format( + tc_name + ) result = verify_rib( tgen, @@ -430,27 +446,35 @@ def test_static_route_2nh_p0_tc_1_ibgp(request): next_hop=nh, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Route is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Route is" " still present in RIB".format( + tc_name + ) dut = "r2" nh = [NEXT_HOP_IP["nh2"][addr_type]] result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) dut = "r3" result = verify_bgp_rib(tgen, addr_type, dut, input_dict_4) - assert result is True, "Testcase {} : Failed \nError: Route is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Route is" " missing in RIB".format(tc_name) result = verify_rib( tgen, addr_type, dut, input_dict_4, protocol=protocol, expected=False ) - assert result is not True, "Testcase {} : Failed \nError: Route is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Route is" " still present in RIB".format( + tc_name + ) dut = "r2" step("No shut the nexthop interface N1") @@ -465,8 +489,9 @@ def test_static_route_2nh_p0_tc_1_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) step("Shut nexthop interface N2") intf = topo["routers"]["r2"]["links"]["r1-link1"]["interface"] @@ -488,8 +513,11 @@ def test_static_route_2nh_p0_tc_1_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" " still present in RIB".format( + tc_name + ) nh = [NEXT_HOP_IP["nh1"][addr_type]] dut = "r2" @@ -497,19 +525,24 @@ def test_static_route_2nh_p0_tc_1_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) dut = "r3" result = verify_bgp_rib(tgen, addr_type, dut, input_dict_4) - assert result is True, "Testcase {} : Failed \nError: Route is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Route is" " missing in RIB".format(tc_name) result = verify_rib( tgen, addr_type, dut, input_dict_4, protocol=protocol, expected=False ) - assert result is not True, "Testcase {} : Failed \nError: Route is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Route is" " still present in RIB".format( + tc_name + ) step("No shut nexthop interface N2") dut = "r2" @@ -524,19 +557,24 @@ def test_static_route_2nh_p0_tc_1_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) dut = "r3" result = verify_bgp_rib(tgen, addr_type, dut, input_dict_4) - assert result is True, "Testcase {} : Failed \nError: Route is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Route is" " missing in RIB".format(tc_name) result = verify_rib( tgen, addr_type, dut, input_dict_4, protocol=protocol, expected=False ) - assert result is not True, "Testcase {} : Failed \nError: Route is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Route is" " still present in RIB".format( + tc_name + ) step("Reload the FRR router") # stop/start -> restart FRR router and verify @@ -552,19 +590,26 @@ def test_static_route_2nh_p0_tc_1_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) dut = "r3" result = verify_bgp_rib(tgen, addr_type, dut, input_dict_4) - assert result is True, "Testcase {} : Failed \nError: Route is" - " still present in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Route is" " still present in RIB".format( + tc_name + ) result = verify_rib( tgen, addr_type, dut, input_dict_4, protocol=protocol, expected=False ) - assert result is not True, "Testcase {} : Failed \nError: Route is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Route is" " still present in RIB".format( + tc_name + ) write_test_footer(tc_name) @@ -636,8 +681,9 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ibgp(request): result = verify_rib( tgen, addr_type, dut, rte1_nh1, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - "missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" "missing in RIB".format(tc_name) rte2_nh2 = { "r2": { @@ -663,8 +709,9 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ibgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - "not active in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" "not active in RIB".format(tc_name) step("Configure IBGP IPv4 peering between R2 and R3 router.") step("Explicit route is added in R3 for R2 nexthop rechability") @@ -753,8 +800,9 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ibgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - "missing in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" "missing in RIB".format(tc_name) rte2_nh2 = { "r2": { @@ -771,8 +819,9 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ibgp(request): result = verify_rib( tgen, addr_type, dut, rte2_nh2, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - "not active in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" "not active in RIB".format(tc_name) step("Configure the static route with nexthop N1") rte1_nh1 = { @@ -825,15 +874,19 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" " still present in RIB".format( + tc_name + ) nh = [NEXT_HOP_IP["nh1"][addr_type]] result = verify_rib( tgen, addr_type, dut, rte1_nh1, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) step("Configure the static route with nexthop N2") rte2_nh2 = { @@ -871,15 +924,19 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" " still present in RIB".format( + tc_name + ) nh = [NEXT_HOP_IP["nh2"][addr_type]] result = verify_rib( tgen, addr_type, dut, rte2_nh2, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) step("No shut the nexthop interface N1") shutdown_bringup_interface(tgen, dut, intf, True) @@ -893,8 +950,9 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ibgp(request): result = verify_rib( tgen, addr_type, dut, rte1_nh1, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) step("Shut nexthop interface N2") intf = topo["routers"]["r2"]["links"]["r1-link1"]["interface"] @@ -916,15 +974,19 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" " still present in RIB".format( + tc_name + ) nh = [NEXT_HOP_IP["nh1"][addr_type]] result = verify_rib( tgen, addr_type, dut, rte1_nh1, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB".format(tc_name) step("No shut nexthop interface N2") shutdown_bringup_interface(tgen, dut, intf, True) @@ -950,8 +1012,9 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ibgp(request): result = verify_rib( tgen, addr_type, dut, rte1_nh1, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - "missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" "missing in RIB".format(tc_name) rte2_nh2 = { "r2": { @@ -977,8 +1040,9 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ibgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - "not active in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" "not active in RIB".format(tc_name) dut = "r3" protocol = "bgp" @@ -993,8 +1057,9 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ibgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - "not active in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" "not active in RIB".format(tc_name) dut = "r2" step("Reload the FRR router") @@ -1024,14 +1089,16 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ibgp(request): result = verify_rib( tgen, addr_type, dut, rte1_nh1, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes is" - "missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" "missing in RIB".format(tc_name) dut = "r3" protocol = "bgp" result = verify_bgp_rib(tgen, addr_type, dut, rte1_nh1, next_hop=nh) - assert result is True, "Testcase {} : Failed \nError: Routes is" - "missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" "missing in RIB".format(tc_name) rte2_nh2 = { "r2": { @@ -1057,14 +1124,16 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ibgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - "not active in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" "not active in RIB".format(tc_name) dut = "r3" protocol = "bgp" result = verify_bgp_rib(tgen, addr_type, dut, rte2_nh2, next_hop=nh) - assert result is True, "Testcase {} : Failed \nError: Routes is" - "not active in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" "not active in RIB".format(tc_name) result = verify_rib( tgen, @@ -1076,8 +1145,9 @@ def test_static_route_2nh_admin_dist_p0_tc_2_ibgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - "not active in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes is" "not active in RIB".format(tc_name) write_test_footer(tc_name) diff --git a/tests/topotests/static_routing_with_ibgp/test_static_routes_topo2_ibgp.py b/tests/topotests/static_routing_with_ibgp/test_static_routes_topo2_ibgp.py index 644ddc02d4..ee0e01b411 100644 --- a/tests/topotests/static_routing_with_ibgp/test_static_routes_topo2_ibgp.py +++ b/tests/topotests/static_routing_with_ibgp/test_static_routes_topo2_ibgp.py @@ -318,8 +318,9 @@ def test_static_rte_with_8ecmp_nh_p1_tc9_ibgp(request): next_hop=nh_all[addr_type], protocol=protocol, ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) step("Configure redistribute static in BGP on R2 router") for addr_type in ADDR_TYPES: @@ -342,8 +343,9 @@ def test_static_rte_with_8ecmp_nh_p1_tc9_ibgp(request): dut = "r3" protocol = "bgp" result = verify_bgp_rib(tgen, addr_type, dut, input_dict_4) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) step( "Remove the static route configured with nexthop N1 to N8, one" @@ -388,8 +390,11 @@ def test_static_rte_with_8ecmp_nh_p1_tc9_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed\nError: Routes is" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed\nError: Routes is" " still present in RIB".format( + tc_name + ) step("Configure the static route with nexthop N1 to N8, one by one") for addr_type in ADDR_TYPES: @@ -414,8 +419,11 @@ def test_static_rte_with_8ecmp_nh_p1_tc9_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed\nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed\nError: Routes are" " missing in RIB".format( + tc_name + ) protocol = "static" step("Random shut of the nexthop interfaces") @@ -423,7 +431,7 @@ def test_static_rte_with_8ecmp_nh_p1_tc9_ibgp(request): # Shutdown interface dut = "r2" step( - " interface which is about to be shut no shut between r1 and r2 is " "%s", + " interface which is about to be shut no shut between r1 and r2 is %s", topo["routers"]["r2"]["links"]["r1-link{}".format(randnum)]["interface"], ) intf = topo["routers"]["r2"]["links"]["r1-link{}".format(randnum)]["interface"] @@ -459,8 +467,9 @@ def test_static_rte_with_8ecmp_nh_p1_tc9_ibgp(request): next_hop=nh_all[addr_type], protocol=protocol, ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) step("Remove random static route with all the nexthop") dut = "r2" @@ -497,8 +506,9 @@ def test_static_rte_with_8ecmp_nh_p1_tc9_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) for addr_type in ADDR_TYPES: input_dict_4 = { @@ -550,8 +560,9 @@ def test_static_rte_with_8ecmp_nh_p1_tc9_ibgp(request): next_hop=nh_all[addr_type], protocol=protocol, ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) step("Remove the redistribute static knob") for addr_type in ADDR_TYPES: @@ -584,8 +595,11 @@ def test_static_rte_with_8ecmp_nh_p1_tc9_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, protocol=protocol, expected=False ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes are" " still present in RIB".format( + tc_name + ) write_test_footer(tc_name) @@ -665,8 +679,9 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) nh = [] for nhp in range(2, 9): @@ -683,8 +698,9 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ibgp(request): wait=2, attempts=3, ) - assert result is not True, "Testcase {} : Failed \nError: Routes " - " are missing in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes " " are missing in RIB".format(tc_name) step( "Remove the static route configured with nexthop N1 to N8, one" @@ -727,8 +743,11 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes are" " still present in RIB".format( + tc_name + ) step("Configure the static route with nexthop N1 to N8, one by one") @@ -774,8 +793,9 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) nh = [] for nhp in range(2, 9): nh.append(NEXT_HOP_IP["nh" + str(nhp)][addr_type]) @@ -791,8 +811,9 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ibgp(request): wait=2, attempts=3, ) - assert result is not True, "Testcase {} : Failed \nError: Routes " - " are missing in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes " " are missing in RIB".format(tc_name) step("Random shut of the nexthop interfaces") randnum = random.randint(0, 7) @@ -819,8 +840,11 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \n" - "Error: Routes are still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \n" "Error: Routes are still present in RIB".format( + tc_name + ) step("Random no shut of the nexthop interfaces") for addr_type in ADDR_TYPES: @@ -830,8 +854,9 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_5, next_hop=nhip, protocol=protocol ) - assert result is True, "Testcase {} : Failed \n" - "Error: Routes are missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \n" "Error: Routes are missing in RIB".format(tc_name) protocol = "bgp" # this is next hop reachability route in r3 as we are using ibgp @@ -856,8 +881,9 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ibgp(request): for addr_type in ADDR_TYPES: input_dict_4 = {"r2": {"static_routes": [{"network": PREFIX1[addr_type]}]}} result = verify_rib(tgen, addr_type, dut, input_dict_4, protocol=protocol) - assert result is True, "Testcase {} : Failed \n" - "Error: Routes are missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \n" "Error: Routes are missing in RIB".format(tc_name) protocol = "static" dut = "r2" @@ -866,7 +892,7 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ibgp(request): result = verify_rib(tgen, addr_type, dut, input_dict_4, protocol=protocol) assert ( result is True - ), "Testcase {}: Failed \n " "Error: Routes are missing in RIB".format(tc_name) + ), "Testcase {}: Failed \n Error: Routes are missing in RIB".format(tc_name) protocol = "bgp" dut = "r3" @@ -875,7 +901,7 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ibgp(request): result = verify_rib(tgen, addr_type, dut, input_dict_4, protocol=protocol) assert ( result is True - ), "Testcase {}: Failed \n " "Error: Routes are missing in RIB".format(tc_name) + ), "Testcase {}: Failed \n Error: Routes are missing in RIB".format(tc_name) step("Reload the FRR router") # stop/start -> restart FRR router and verify @@ -888,7 +914,7 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ibgp(request): result = verify_rib(tgen, addr_type, dut, input_dict_4, protocol=protocol) assert ( result is True - ), "Testcase {} : Failed \n" "Error: Routes are still present in RIB".format( + ), "Testcase {} : Failed \nError: Routes are still present in RIB".format( tc_name ) @@ -912,7 +938,7 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ibgp(request): result = verify_rib(tgen, addr_type, dut, input_dict_4, protocol=protocol) assert ( result is True - ), "Testcase {} : Failed \n" "Error: Routes are still present in RIB".format( + ), "Testcase {} : Failed \nError: Routes are still present in RIB".format( tc_name ) @@ -923,7 +949,7 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ibgp(request): result = verify_rib(tgen, addr_type, dut, input_dict_4, protocol=protocol) assert ( result is True - ), "Testcase {} : Failed \n" "Error: Routes are still present in RIB".format( + ), "Testcase {} : Failed \nError: Routes are still present in RIB".format( tc_name ) @@ -964,8 +990,10 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc6_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " strill present in RIB of R3".format(tc_name) + assert result is not True, ( + "Testcase {} : Failed \nError: Routes are" + " strill present in RIB of R3".format(tc_name) + ) write_test_footer(tc_name) @@ -1060,8 +1088,9 @@ def test_static_route_8nh_diff_AD_ibgp_ecmp_p1_tc7_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) nh = [] for nhp in range(2, 9): @@ -1076,8 +1105,9 @@ def test_static_route_8nh_diff_AD_ibgp_ecmp_p1_tc7_ibgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes " - " are missing in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes " " are missing in RIB".format(tc_name) step( "Remove the static route configured with nexthop N1 to N8, one" @@ -1120,8 +1150,11 @@ def test_static_route_8nh_diff_AD_ibgp_ecmp_p1_tc7_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes are" " still present in RIB".format( + tc_name + ) step("Configure the static route with nexthop N1 to N8, one by one") @@ -1167,8 +1200,9 @@ def test_static_route_8nh_diff_AD_ibgp_ecmp_p1_tc7_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) nh = [] for nhp in range(2, 9): nh.append(NEXT_HOP_IP["nh" + str(nhp)][addr_type]) @@ -1182,8 +1216,9 @@ def test_static_route_8nh_diff_AD_ibgp_ecmp_p1_tc7_ibgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes " - " are missing in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes " " are missing in RIB".format(tc_name) step("Random shut of the nexthop interfaces") randnum = random.randint(0, 7) @@ -1210,8 +1245,11 @@ def test_static_route_8nh_diff_AD_ibgp_ecmp_p1_tc7_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \n" - "Error: Routes are still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \n" "Error: Routes are still present in RIB".format( + tc_name + ) step("Random no shut of the nexthop interfaces") for addr_type in ADDR_TYPES: @@ -1221,8 +1259,9 @@ def test_static_route_8nh_diff_AD_ibgp_ecmp_p1_tc7_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_5, next_hop=nhip, protocol=protocol ) - assert result is True, "Testcase {} : Failed \n" - "Error: Routes are missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \n" "Error: Routes are missing in RIB".format(tc_name) dut = "r2" protocol = "bgp" @@ -1249,8 +1288,9 @@ def test_static_route_8nh_diff_AD_ibgp_ecmp_p1_tc7_ibgp(request): for addr_type in ADDR_TYPES: input_dict_4 = {"r2": {"static_routes": [{"network": PREFIX1[addr_type]}]}} result = verify_rib(tgen, addr_type, dut, input_dict_4, protocol=protocol) - assert result is True, "Testcase {} : Failed \n" - "Error: Routes are missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \n" "Error: Routes are missing in RIB".format(tc_name) protocol = "static" dut = "r2" @@ -1259,7 +1299,7 @@ def test_static_route_8nh_diff_AD_ibgp_ecmp_p1_tc7_ibgp(request): result = verify_rib(tgen, addr_type, dut, input_dict_4, protocol=protocol) assert ( result is True - ), "Testcase {}: Failed \n " "Error: Routes are missing in RIB".format(tc_name) + ), "Testcase {}: Failed \n Error: Routes are missing in RIB".format(tc_name) protocol = "bgp" dut = "r3" @@ -1268,7 +1308,7 @@ def test_static_route_8nh_diff_AD_ibgp_ecmp_p1_tc7_ibgp(request): result = verify_rib(tgen, addr_type, dut, input_dict_4, protocol=protocol) assert ( result is True - ), "Testcase {}: Failed \n " "Error: Routes are missing in RIB".format(tc_name) + ), "Testcase {}: Failed \n Error: Routes are missing in RIB".format(tc_name) step("Reload the FRR router") # stop/start -> restart FRR router and verify @@ -1281,7 +1321,7 @@ def test_static_route_8nh_diff_AD_ibgp_ecmp_p1_tc7_ibgp(request): result = verify_rib(tgen, addr_type, dut, input_dict_4, protocol=protocol) assert ( result is True - ), "Testcase {} : Failed \n" "Error: Routes are still present in RIB".format( + ), "Testcase {} : Failed \n Error: Routes are still present in RIB".format( tc_name ) @@ -1305,7 +1345,7 @@ def test_static_route_8nh_diff_AD_ibgp_ecmp_p1_tc7_ibgp(request): result = verify_rib(tgen, addr_type, dut, input_dict_4, protocol=protocol) assert ( result is True - ), "Testcase {} : Failed \n" "Error: Routes are still present in RIB".format( + ), "Testcase {} : Failed \n Error: Routes are still present in RIB".format( tc_name ) @@ -1316,7 +1356,7 @@ def test_static_route_8nh_diff_AD_ibgp_ecmp_p1_tc7_ibgp(request): result = verify_rib(tgen, addr_type, dut, input_dict_4, protocol=protocol) assert ( result is True - ), "Testcase {} : Failed \n" "Error: Routes are still present in RIB".format( + ), "Testcase {} : Failed \n Error: Routes are still present in RIB".format( tc_name ) @@ -1357,8 +1397,10 @@ def test_static_route_8nh_diff_AD_ibgp_ecmp_p1_tc7_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " still present in RIB of R3".format(tc_name) + assert result is not True, ( + "Testcase {} : Failed \nError: Routes are" + " still present in RIB of R3".format(tc_name) + ) write_test_footer(tc_name) @@ -1453,8 +1495,9 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc10_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) step("Verify that highest AD nexthop are inactive") nh = [] @@ -1472,8 +1515,9 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc10_ibgp(request): wait=2, attempts=3, ) - assert result is not True, "Testcase {} : Failed \nError: Routes " - " are missing in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes " " are missing in RIB".format(tc_name) step("Configure redistribute static in BGP on R2 router") for addr_type in ADDR_TYPES: @@ -1535,8 +1579,11 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc10_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes are" " still present in RIB".format( + tc_name + ) step("Configure the static route with nexthop N1 to N8, one by one") for addr_type in ADDR_TYPES: @@ -1578,8 +1625,10 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc10_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Route with " - "lowest AD is missing in RIB".format(tc_name) + assert result is True, ( + "Testcase {} : Failed \nError: Route with " + "lowest AD is missing in RIB".format(tc_name) + ) step("Random shut of the nexthop interfaces") randnum = random.randint(0, 7) @@ -1606,8 +1655,11 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc10_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \n" - "Error: Routes are still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \n" "Error: Routes are still present in RIB".format( + tc_name + ) step("Random no shut of the nexthop interfaces") for addr_type in ADDR_TYPES: @@ -1617,8 +1669,9 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc10_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_5, next_hop=nhip, protocol=protocol ) - assert result is True, "Testcase {} : Failed \n" - "Error: Routes are missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \n" "Error: Routes are missing in RIB".format(tc_name) step("Remove random static route with all the nexthop") for addr_type in ADDR_TYPES: @@ -1657,8 +1710,10 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc10_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Route " - " is still present in RIB".format(tc_name) + assert result is not True, ( + "Testcase {} : Failed \nError: Route " + " is still present in RIB".format(tc_name) + ) step("Reconfigure the deleted routes and verify they are installed") for nhp in range(1, 9): @@ -1683,8 +1738,10 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc10_ibgp(request): protocol = "static" nh = NEXT_HOP_IP["nh1"][addr_type] result = verify_rib(tgen, addr_type, dut, input_dict_4, protocol=protocol) - assert result is True, "Testcase {} : Failed \nError: Route " - " is still present in RIB".format(tc_name) + assert result is True, ( + "Testcase {} : Failed \nError: Route " + " is still present in RIB".format(tc_name) + ) step("Reload the FRR router") # stop/start -> restart FRR router and verify @@ -1704,9 +1761,7 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc10_ibgp(request): ) assert ( result is True - ), "Testcase {} : Failed \nError: Route " " is missing in RIB".format( - tc_name - ) + ), "Testcase {} : Failed \nError: Route is missing in RIB".format(tc_name) step("Remove the redistribute static knob") for addr_type in ADDR_TYPES: @@ -1750,8 +1805,11 @@ def test_static_route_8nh_diff_AD_bgp_ecmp_p1_tc10_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, protocol=protocol, expected=False ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes are" " still present in RIB".format( + tc_name + ) write_test_footer(tc_name) @@ -1845,8 +1903,9 @@ def test_static_route_delete_p0_tc11_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) step("Verify that highest AD nexthop are inactive") nh = [] @@ -1862,8 +1921,9 @@ def test_static_route_delete_p0_tc11_ibgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes " - " are missing in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes " " are missing in RIB".format(tc_name) step("Configure redistribute static in BGP on R2 router") for addr_type in ADDR_TYPES: @@ -1915,8 +1975,11 @@ def test_static_route_delete_p0_tc11_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, protocol=protocol, expected=False ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes are" " still present in RIB".format( + tc_name + ) for addr_type in ADDR_TYPES: for nhp in range(1, 9): @@ -1983,8 +2046,12 @@ def test_static_route_delete_p0_tc11_ibgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " still active in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes are" " still active in RIB".format( + tc_name + ) + write_test_footer(tc_name) diff --git a/tests/topotests/static_routing_with_ibgp/test_static_routes_topo3_ibgp.py b/tests/topotests/static_routing_with_ibgp/test_static_routes_topo3_ibgp.py index 8f9d88a442..c84c88ac35 100644 --- a/tests/topotests/static_routing_with_ibgp/test_static_routes_topo3_ibgp.py +++ b/tests/topotests/static_routing_with_ibgp/test_static_routes_topo3_ibgp.py @@ -298,8 +298,9 @@ def test_staticroute_with_ecmp_p0_tc3_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) step("Configure redistribute static in BGP on R2 router") for addr_type in ADDR_TYPES: input_dict_2 = { @@ -352,8 +353,11 @@ def test_staticroute_with_ecmp_p0_tc3_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes are" " still present in RIB".format( + tc_name + ) step("Configure the static route with nexthop N1 to N8, one by" "one") @@ -380,8 +384,9 @@ def test_staticroute_with_ecmp_p0_tc3_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) step("Random shut of the nexthop interfaces") randnum = random.randint(0, 7) @@ -408,8 +413,11 @@ def test_staticroute_with_ecmp_p0_tc3_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \n" - "Error: Routes are still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \n" "Error: Routes are still present in RIB".format( + tc_name + ) step("Random no shut of the nexthop interfaces") for addr_type in ADDR_TYPES: @@ -419,8 +427,9 @@ def test_staticroute_with_ecmp_p0_tc3_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_5, next_hop=nhip, protocol=protocol ) - assert result is True, "Testcase {} : Failed \n" - "Error: Routes are missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \n" "Error: Routes are missing in RIB".format(tc_name) step("Reload the FRR router") # stop/start -> restart FRR router and verify @@ -430,8 +439,9 @@ def test_staticroute_with_ecmp_p0_tc3_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol ) - assert result is True, "Testcase {} : Failed \nError: Routes are" - " missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes are" " missing in RIB".format(tc_name) write_test_footer(tc_name) @@ -510,8 +520,10 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Route with " - " lowest AD is missing in RIB".format(tc_name) + assert result is True, ( + "Testcase {} : Failed \nError: Route with " + " lowest AD is missing in RIB".format(tc_name) + ) nh = [] for nhp in range(2, 9): @@ -526,8 +538,10 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ibgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes " - " with high AD are active in RIB".format(tc_name) + assert result is not True, ( + "Testcase {} : Failed \nError: Routes " + " with high AD are active in RIB".format(tc_name) + ) step("Configure redistribute static in BGP on R2 router") for addr_type in ADDR_TYPES: @@ -570,8 +584,10 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Route with " - " lowest AD is missing in RIB".format(tc_name) + assert result is True, ( + "Testcase {} : Failed \nError: Route with " + " lowest AD is missing in RIB".format(tc_name) + ) step( "Remove the static route configured with nexthop N1 to N8, one" @@ -614,8 +630,11 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \nError: Routes are" " still present in RIB".format( + tc_name + ) step("Configure the static route with nexthop N1 to N8, one by" "one") for addr_type in ADDR_TYPES: @@ -656,8 +675,10 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Route with " - " lowest AD is missing in RIB".format(tc_name) + assert result is True, ( + "Testcase {} : Failed \nError: Route with " + " lowest AD is missing in RIB".format(tc_name) + ) nh = [] for nhp in range(2, 9): @@ -672,8 +693,10 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ibgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes " - " with high AD are active in RIB".format(tc_name) + assert result is not True, ( + "Testcase {} : Failed \nError: Routes " + " with high AD are active in RIB".format(tc_name) + ) step("Random shut of the nexthop interfaces") randnum = random.randint(0, 7) @@ -700,8 +723,11 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \n" - "Error: Routes are still present in RIB".format(tc_name) + assert ( + result is not True + ), "Testcase {} : Failed \n" "Error: Routes are still present in RIB".format( + tc_name + ) step("Random no shut of the nexthop interfaces") for addr_type in ADDR_TYPES: @@ -711,8 +737,9 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_5, next_hop=nhip, protocol=protocol ) - assert result is True, "Testcase {} : Failed \n" - "Error: Routes are missing in RIB".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \n" "Error: Routes are missing in RIB".format(tc_name) step("Reload the FRR router") # stop/start -> restart FRR router and verify @@ -741,8 +768,10 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ibgp(request): result = verify_rib( tgen, addr_type, dut, input_dict_4, next_hop=nh, protocol=protocol, fib=True ) - assert result is True, "Testcase {} : Failed \nError: Route with " - " lowest AD is missing in RIB".format(tc_name) + assert result is True, ( + "Testcase {} : Failed \nError: Route with " + " lowest AD is missing in RIB".format(tc_name) + ) nh = [] for nhp in range(2, 9): @@ -757,8 +786,10 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ibgp(request): fib=True, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes " - " with high AD are active in RIB".format(tc_name) + assert result is not True, ( + "Testcase {} : Failed \nError: Routes " + " with high AD are active in RIB".format(tc_name) + ) step("Remove the redistribute static knob") @@ -796,8 +827,10 @@ def test_staticroute_with_ecmp_with_diff_AD_p0_tc4_ibgp(request): protocol=protocol, expected=False, ) - assert result is not True, "Testcase {} : Failed \nError: Routes are" - " strill present in RIB of R3".format(tc_name) + assert result is not True, ( + "Testcase {} : Failed \nError: Routes are" + " still present in RIB of R3".format(tc_name) + ) write_test_footer(tc_name) @@ -858,18 +891,25 @@ def test_bgp_local_nexthop_p1_tc14_ibgp(request): step("Verify R2 BGP table has IPv4 route") dut = "r2" result = verify_rib(tgen, addr_type, dut, input_dict_4) - assert result is True, "Testcase {} : Failed \nError: Routes is" - " missing in RIB of R2".format(tc_name) + assert ( + result is True + ), "Testcase {} : Failed \nError: Routes is" " missing in RIB of R2".format( + tc_name + ) step(" Verify route did not install in the R3 BGP table, RIB/FIB") dut = "r3" result = verify_bgp_rib(tgen, addr_type, dut, input_dict_4, expected=False) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - " still present in BGP RIB of R2".format(tc_name) + assert result is not True, ( + "Testcase {} : Failed \nError: Routes is" + " still present in BGP RIB of R2".format(tc_name) + ) result = verify_rib(tgen, addr_type, dut, input_dict_4, expected=False) - assert result is not True, "Testcase {} : Failed \nError: Routes is" - " still present in RIB of R2".format(tc_name) + assert result is not True, ( + "Testcase {} : Failed \nError: Routes is" + " still present in RIB of R2".format(tc_name) + ) write_test_footer(tc_name) diff --git a/tests/topotests/static_routing_with_ibgp/test_static_routes_topo4_ibgp.py b/tests/topotests/static_routing_with_ibgp/test_static_routes_topo4_ibgp.py index 09c437c3c4..a82ee64538 100644 --- a/tests/topotests/static_routing_with_ibgp/test_static_routes_topo4_ibgp.py +++ b/tests/topotests/static_routing_with_ibgp/test_static_routes_topo4_ibgp.py @@ -239,8 +239,11 @@ def test_static_routes_rmap_pfxlist_p0_tc7_ibgp(request): step(" All BGP nbrs are down as authentication is mismatch on both" " the sides") bgp_convergence = verify_bgp_convergence(tgen, topo, expected=False) - assert bgp_convergence is not True, "Testcase {} : " - "Failed \n BGP nbrs must be down. Error: {}".format(tc_name, bgp_convergence) + assert ( + bgp_convergence is not True + ), "Testcase {} : " "Failed \n BGP nbrs must be down. Error: {}".format( + tc_name, bgp_convergence + ) step( "Configure 4 IPv4 and 4 IPv6 nbrs with macthing password " @@ -335,8 +338,9 @@ def test_static_routes_rmap_pfxlist_p0_tc7_ibgp(request): "show ip prefix list" ) result = verify_prefix_lists(tgen, input_dict_2) - assert result is not True, "Testcase {} : Failed \n" - " Error: {}".format(tc_name, result) + assert result is not True, "Testcase {} : Failed \n" " Error: {}".format( + tc_name, result + ) step("Redistribute all the routes (connected, static)") input_dict_2_r1 = { @@ -586,8 +590,10 @@ def test_static_routes_rmap_pfxlist_p0_tc7_ibgp(request): result4 = verify_rib( tgen, addr_type, dut, input_dict, protocol=protocol, expected=False ) - assert result4 is not True, "Testcase {} : Failed , VM1 route is " - "not filtered out via prefix list. \n Error: {}".format(tc_name, result4) + assert result4 is not True, ( + "Testcase {} : Failed , VM1 route is " + "not filtered out via prefix list. \n Error: {}".format(tc_name, result4) + ) step( "VM4 and VM6 IPV4 and IPv6 address are present in local and " @@ -962,8 +968,10 @@ def test_static_routes_rmap_pfxlist_p0_tc7_ibgp(request): ) input_dict = {"r1": {"static_routes": [{"network": ntwk_r2_vm1}]}} result4 = verify_rib(tgen, addr_type, dut, input_dict) - assert result4 is True, "Testcase {} : Failed , VM1 route is " - "not filtered out via prefix list. \n Error: {}".format(tc_name, result4) + assert result4 is True, ( + "Testcase {} : Failed , VM1 route is " + "not filtered out via prefix list. \n Error: {}".format(tc_name, result4) + ) step("vm4 should be present in FRR2") dut = "r2" @@ -974,8 +982,10 @@ def test_static_routes_rmap_pfxlist_p0_tc7_ibgp(request): ) input_dict = {"r1": {"static_routes": [{"network": ntwk_r2_vm1}]}} result4 = verify_rib(tgen, addr_type, dut, input_dict) - assert result4 is True, "Testcase {} : Failed , VM1 route is " - "not filtered out via prefix list. \n Error: {}".format(tc_name, result4) + assert result4 is True, ( + "Testcase {} : Failed , VM1 route is " + "not filtered out via prefix list. \n Error: {}".format(tc_name, result4) + ) dut = "r3" protocol = "bgp" diff --git a/tools/gen_northbound_callbacks.c b/tools/gen_northbound_callbacks.c index a785f43cdf..1705a3203f 100644 --- a/tools/gen_northbound_callbacks.c +++ b/tools/gen_northbound_callbacks.c @@ -118,7 +118,7 @@ static void replace_hyphens_by_underscores(char *str) *p++ = '_'; } -static void generate_callback_name(struct lys_node *snode, +static void generate_callback_name(const struct lysc_node *snode, enum nb_operation operation, char *buffer, size_t size) { @@ -126,14 +126,14 @@ static void generate_callback_name(struct lys_node *snode, struct listnode *ln; snodes = list_new(); - for (; snode; snode = lys_parent(snode)) { + for (; snode; snode = snode->parent) { /* Skip schema-only snodes. */ if (CHECK_FLAG(snode->nodetype, LYS_USES | LYS_CHOICE | LYS_CASE | LYS_INPUT | LYS_OUTPUT)) continue; - listnode_add_head(snodes, snode); + listnode_add_head(snodes, (void *)snode); } memset(buffer, 0, size); @@ -153,7 +153,7 @@ static void generate_prototype(const struct nb_callback_info *ncinfo, printf("%s%s(%s);\n", ncinfo->return_type, cb_name, ncinfo->arguments); } -static int generate_prototypes(const struct lys_node *snode, void *arg) +static int generate_prototypes(const struct lysc_node *snode, void *arg) { switch (snode->nodetype) { case LYS_CONTAINER: @@ -175,8 +175,8 @@ static int generate_prototypes(const struct lys_node *snode, void *arg) || !nb_operation_is_valid(cb->operation, snode)) continue; - generate_callback_name((struct lys_node *)snode, cb->operation, - cb_name, sizeof(cb_name)); + generate_callback_name(snode, cb->operation, cb_name, + sizeof(cb_name)); generate_prototype(cb, cb_name); } @@ -213,7 +213,7 @@ static void generate_callback(const struct nb_callback_info *ncinfo, printf("\treturn %s;\n}\n\n", ncinfo->return_value); } -static int generate_callbacks(const struct lys_node *snode, void *arg) +static int generate_callbacks(const struct lysc_node *snode, void *arg) { bool first = true; @@ -250,15 +250,15 @@ static int generate_callbacks(const struct lys_node *snode, void *arg) first = false; } - generate_callback_name((struct lys_node *)snode, cb->operation, - cb_name, sizeof(cb_name)); + generate_callback_name(snode, cb->operation, cb_name, + sizeof(cb_name)); generate_callback(cb, cb_name); } return YANG_ITER_CONTINUE; } -static int generate_nb_nodes(const struct lys_node *snode, void *arg) +static int generate_nb_nodes(const struct lysc_node *snode, void *arg) { bool first = true; @@ -295,8 +295,8 @@ static int generate_nb_nodes(const struct lys_node *snode, void *arg) first = false; } - generate_callback_name((struct lys_node *)snode, cb->operation, - cb_name, sizeof(cb_name)); + generate_callback_name(snode, cb->operation, cb_name, + sizeof(cb_name)); printf("\t\t\t\t.%s = %s,\n", nb_operation_name(cb->operation), cb_name); } @@ -350,18 +350,21 @@ int main(int argc, char *argv[]) if (argc != 1) usage(EXIT_FAILURE); - yang_init(false); + yang_init(false, true); if (search_path) ly_ctx_set_searchdir(ly_native_ctx, search_path); /* Load all FRR native models to ensure all augmentations are loaded. */ yang_module_load_all(); + module = yang_module_find(argv[0]); if (!module) /* Non-native FRR module (e.g. modules from unit tests). */ module = yang_module_load(argv[0]); + yang_init_loading_complete(); + /* Create a nb_node for all YANG schema nodes. */ nb_nodes_create(); diff --git a/tools/gen_yang_deviations.c b/tools/gen_yang_deviations.c index 53a53c943c..8aa5695d3e 100644 --- a/tools/gen_yang_deviations.c +++ b/tools/gen_yang_deviations.c @@ -32,7 +32,7 @@ static void __attribute__((noreturn)) usage(int status) exit(status); } -static int generate_yang_deviation(const struct lys_node *snode, void *arg) +static int generate_yang_deviation(const struct lysc_node *snode, void *arg) { char xpath[XPATH_MAXLEN]; @@ -65,14 +65,13 @@ int main(int argc, char *argv[]) if (argc != 1) usage(EXIT_FAILURE); - yang_init(false); + yang_init(false, false); /* Load YANG module. */ module = yang_module_load(argv[0]); /* Generate deviations. */ - yang_snodes_iterate(module->info, generate_yang_deviation, - YANG_ITER_FILTER_IMPLICIT, NULL); + yang_snodes_iterate(module->info, generate_yang_deviation, 0, NULL); /* Cleanup and exit. */ yang_terminate(); diff --git a/bgpd/valgrind.supp b/tools/valgrind.supp index 31f2477a58..fbfb640b2a 100644 --- a/bgpd/valgrind.supp +++ b/tools/valgrind.supp @@ -16,3 +16,17 @@ obj:/usr/lib/x86_64-linux-gnu/libyang.so.1.9.2 fun:ly_load_plugins } +{ + <zprivs_init leak in a function we do not control> + Memcheck:Leak + fun:calloc + fun:cap_init + fun:zprivs_caps_init +} +{ + <sqlite3 leak in a function we do not control> + Memcheck:Leak + fun:malloc + ... + fun:sqlite3_step +} diff --git a/vrrpd/vrrp_vty.c b/vrrpd/vrrp_vty.c index 7d9cea3adc..6c3863132d 100644 --- a/vrrpd/vrrp_vty.c +++ b/vrrpd/vrrp_vty.c @@ -729,7 +729,7 @@ static int vrrp_config_write_interface(struct vty *vty) FOR_ALL_INTERFACES (vrf, ifp) { struct lyd_node *dnode; - dnode = yang_dnode_get( + dnode = yang_dnode_getf( running_config->dnode, "/frr-interface:lib/interface[name='%s'][vrf='%s']", ifp->name, vrf->name); diff --git a/vtysh/extract.pl.in b/vtysh/extract.pl.in index 37ae0ab189..86cf8c9657 100755 --- a/vtysh/extract.pl.in +++ b/vtysh/extract.pl.in @@ -42,7 +42,7 @@ sub scan_file { $cppadd = $fabricd ? "-DFABRICD=1" : ""; - open (FH, "@CPP@ -P -std=gnu11 -DHAVE_CONFIG_H -DVTYSH_EXTRACT_PL -Ivtysh/@top_builddir@ -Ivtysh/@top_srcdir@ -Ivtysh/@top_srcdir@/lib -Ivtysh/@top_builddir@/lib -Ivtysh/@top_srcdir@/bgpd -Ivtysh/@top_srcdir@/bgpd/rfapi @LUA_INCLUDE@ @CPPFLAGS@ $cppadd $file |"); + open (FH, "@CPP@ -P -std=gnu11 -DHAVE_CONFIG_H -DVTYSH_EXTRACT_PL -Ivtysh/@top_builddir@ -Ivtysh/@top_srcdir@ -Ivtysh/@top_srcdir@/lib -Ivtysh/@top_builddir@/lib -Ivtysh/@top_srcdir@/bgpd -Ivtysh/@top_srcdir@/bgpd/rfapi @LUA_INCLUDE@ @CPPFLAGS@ @LIBYANG_CFLAGS@ $cppadd $file |"); local $/; undef $/; $line = <FH>; if (!close (FH)) { diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c index 336bd44a49..111c2dbc03 100644 --- a/vtysh/vtysh.c +++ b/vtysh/vtysh.c @@ -2890,6 +2890,37 @@ DEFUN (show_yang_operational_data, return show_one_daemon(vty, argv, argc - 1, argv[argc - 1]->text); } +DEFUN(show_yang_module, show_yang_module_cmd, + "show yang module [module-translator WORD] " DAEMONS_LIST, + SHOW_STR + "YANG information\n" + "Show loaded modules\n" + "YANG module translator\n" + "YANG module translator\n" DAEMONS_STR) +{ + return show_one_daemon(vty, argv, argc - 1, argv[argc - 1]->text); +} + +DEFUN(show_yang_module_detail, show_yang_module_detail_cmd, + "show yang module\ + [module-translator WORD]\ + WORD <compiled|summary|tree|yang|yin> " DAEMONS_LIST, + SHOW_STR + "YANG information\n" + "Show loaded modules\n" + "YANG module translator\n" + "YANG module translator\n" + "Module name\n" + "Display compiled module in YANG format\n" + "Display summary information about the module\n" + "Display module in the tree (RFC 8340) format\n" + "Display module in the YANG format\n" + "Display module in the YIN format\n" DAEMONS_STR) +{ + return show_one_daemon(vty, argv, argc - 1, argv[argc - 1]->text); +} + + DEFUNSH(VTYSH_ALL, debug_nb, debug_nb_cmd, "[no] debug northbound\ @@ -4449,6 +4480,8 @@ void vtysh_init_vty(void) /* northbound */ install_element(ENABLE_NODE, &show_config_running_cmd); install_element(ENABLE_NODE, &show_yang_operational_data_cmd); + install_element(ENABLE_NODE, &show_yang_module_cmd); + install_element(ENABLE_NODE, &show_yang_module_detail_cmd); install_element(ENABLE_NODE, &debug_nb_cmd); install_element(CONFIG_NODE, &debug_nb_cmd); diff --git a/watchfrr/subdir.am b/watchfrr/subdir.am index 677f85efcb..e899b895e7 100644 --- a/watchfrr/subdir.am +++ b/watchfrr/subdir.am @@ -13,7 +13,7 @@ noinst_HEADERS += \ watchfrr/watchfrr_errors.h \ # end -watchfrr_watchfrr_LDADD = lib/libfrr.la $(LIBCAP) +watchfrr_watchfrr_LDADD = lib/libfrr.la $(LIBYANG_LIBS) $(LIBCAP) watchfrr_watchfrr_SOURCES = \ watchfrr/watchfrr.c \ watchfrr/watchfrr_errors.c \ diff --git a/yang/embedmodel.py b/yang/embedmodel.py index 39bf2bb922..a77a81363f 100644 --- a/yang/embedmodel.py +++ b/yang/embedmodel.py @@ -94,7 +94,7 @@ else: sub_name = search_name.group(1) name = re_mainname.search(data).group(1) sub_rev = re_rev.search(data).group(1) - fmt = "LYS_YANG" + fmt = "LYS_IN_YANG" if name is None or rev is None: raise ValueError("cannot determine YANG module name and revision") diff --git a/yang/frr-bgp-bmp.yang b/yang/frr-bgp-bmp.yang index 344448f104..2417874ea0 100644 --- a/yang/frr-bgp-bmp.yang +++ b/yang/frr-bgp-bmp.yang @@ -13,8 +13,6 @@ submodule frr-bgp-bmp { prefix frr-bt; } - include frr-bgp-common-multiprotocol; - organization "FRRouting"; contact diff --git a/yang/frr-bgp-common-multiprotocol.yang b/yang/frr-bgp-common-multiprotocol.yang index aefdf02ba6..4b080613d6 100644 --- a/yang/frr-bgp-common-multiprotocol.yang +++ b/yang/frr-bgp-common-multiprotocol.yang @@ -9,8 +9,6 @@ submodule frr-bgp-common-multiprotocol { prefix frr-rt; } - include frr-bgp-common; - organization "FRRouting"; contact @@ -67,7 +65,7 @@ submodule frr-bgp-common-multiprotocol { "A common grouping used for contents of the list that is used for AFI-SAFI entries."; container ipv4-unicast { - when "derived-from-or-self(../afi-safi-name, 'ipv4-unicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:ipv4-unicast')" { description "Include this container for IPv4 Unicast specific configuration."; @@ -77,7 +75,7 @@ submodule frr-bgp-common-multiprotocol { } container ipv6-unicast { - when "derived-from-or-self(../afi-safi-name, 'ipv6-unicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:ipv6-unicast')" { description "Include this container for IPv6 Unicast specific configuration."; @@ -87,7 +85,7 @@ submodule frr-bgp-common-multiprotocol { } container ipv4-labeled-unicast { - when "derived-from-or-self(../afi-safi-name, 'ipv4-labeled-unicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:ipv4-labeled-unicast')" { description "Include this container for IPv4 Labeled Unicast specific configuration."; @@ -97,7 +95,7 @@ submodule frr-bgp-common-multiprotocol { } container ipv6-labeled-unicast { - when "derived-from-or-self(../afi-safi-name, 'ipv6-labeled-unicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:ipv6-labeled-unicast')" { description "Include this container for IPv6 Labeled Unicast specific configuration."; @@ -107,7 +105,7 @@ submodule frr-bgp-common-multiprotocol { } container l3vpn-ipv4-unicast { - when "derived-from-or-self(../afi-safi-name, 'l3vpn-ipv4-unicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:l3vpn-ipv4-unicast')" { description "Include this container for IPv4 Unicast L3VPN specific configuration."; @@ -117,7 +115,7 @@ submodule frr-bgp-common-multiprotocol { } container l3vpn-ipv6-unicast { - when "derived-from-or-self(../afi-safi-name, 'l3vpn-ipv6-unicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:l3vpn-ipv6-unicast')" { description "Include this container for unicast IPv6 L3VPN specific configuration."; @@ -127,7 +125,7 @@ submodule frr-bgp-common-multiprotocol { } container l3vpn-ipv4-multicast { - when "derived-from-or-self(../afi-safi-name, 'l3vpn-ipv4-multicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:l3vpn-ipv4-multicast')" { description "Include this container for multicast IPv4 L3VPN specific configuration."; @@ -137,7 +135,7 @@ submodule frr-bgp-common-multiprotocol { } container l3vpn-ipv6-multicast { - when "derived-from-or-self(../afi-safi-name, 'l3vpn-ipv6-multicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:l3vpn-ipv6-multicast')" { description "Include this container for multicast IPv6 L3VPN specific configuration."; @@ -147,7 +145,7 @@ submodule frr-bgp-common-multiprotocol { } container l2vpn-vpls { - when "derived-from-or-self(../afi-safi-name, 'l2vpn-vpls')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:l2vpn-vpls')" { description "Include this container for BGP-signalled VPLS specific configuration."; @@ -157,7 +155,7 @@ submodule frr-bgp-common-multiprotocol { } container l2vpn-evpn { - when "derived-from-or-self(../afi-safi-name, 'l2vpn-evpn')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:l2vpn-evpn')" { description "Include this container for BGP EVPN specific configuration."; @@ -167,7 +165,7 @@ submodule frr-bgp-common-multiprotocol { } container ipv4-multicast { - when "derived-from-or-self(../afi-safi-name, 'ipv4-multicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:ipv4-multicast')" { description "Include this container for IPv4 multicast specific configuration."; @@ -177,7 +175,7 @@ submodule frr-bgp-common-multiprotocol { } container ipv6-multicast { - when "derived-from-or-self(../afi-safi-name, 'ipv6-multicast')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:ipv6-multicast')" { description "Include this container for IPv6 multicast specific configuration."; @@ -187,7 +185,7 @@ submodule frr-bgp-common-multiprotocol { } container ipv4-flowspec { - when "derived-from-or-self(../afi-safi-name, 'ipv4-flowspec')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:ipv4-flowspec')" { description "Include this container for IPv4 flowspec specific configuration."; @@ -197,7 +195,7 @@ submodule frr-bgp-common-multiprotocol { } container ipv6-flowspec { - when "derived-from-or-self(../afi-safi-name, 'ipv6-flowspec')" { + when "derived-from-or-self(../afi-safi-name, 'frr-rt:ipv6-flowspec')" { description "Include this container for IPv6 flowspec specific configuration."; diff --git a/yang/frr-bgp-common-structure.yang b/yang/frr-bgp-common-structure.yang index 7b987a93cd..232c78899e 100644 --- a/yang/frr-bgp-common-structure.yang +++ b/yang/frr-bgp-common-structure.yang @@ -25,8 +25,6 @@ submodule frr-bgp-common-structure { prefix frr-bt; } - include frr-bgp-common; - organization "FRRouting"; contact @@ -118,7 +116,6 @@ submodule frr-bgp-common-structure { } leaf no-prepend { - when "../local-as != 0"; type boolean; default "false"; description diff --git a/yang/frr-bgp-common.yang b/yang/frr-bgp-common.yang index 1a19d52965..157e4cd614 100644 --- a/yang/frr-bgp-common.yang +++ b/yang/frr-bgp-common.yang @@ -455,11 +455,14 @@ submodule frr-bgp-common { grouping global-network-config { leaf import-check { type boolean; - default "false"; + default "true"; description "When set to 'true' bgp creates entries for network statements if a matching prefix exists in the rib. When set to 'false' bgp - creates entries for networks that the router cannot reach."; + creates entries for networks that the router cannot reach. + + In FRR versions < 7.4 this used to default to 'false' this is an + incompatible backward change"; } } diff --git a/yang/frr-bgp-neighbor.yang b/yang/frr-bgp-neighbor.yang index a4b50b156b..d6688eed29 100644 --- a/yang/frr-bgp-neighbor.yang +++ b/yang/frr-bgp-neighbor.yang @@ -5,9 +5,6 @@ submodule frr-bgp-neighbor { prefix "bgp"; } - include frr-bgp-common-structure; - include frr-bgp-common-multiprotocol; - organization "FRRouting"; contact diff --git a/yang/frr-bgp-peer-group.yang b/yang/frr-bgp-peer-group.yang index 452ff1a12f..746ced30cc 100644 --- a/yang/frr-bgp-peer-group.yang +++ b/yang/frr-bgp-peer-group.yang @@ -13,9 +13,6 @@ submodule frr-bgp-peer-group { prefix frr-bt; } - include frr-bgp-common-structure; - include frr-bgp-neighbor; - organization "FRRouting"; contact diff --git a/yang/frr-bgp-route-map.yang b/yang/frr-bgp-route-map.yang index 96505b08a8..ca60c8f7b6 100644 --- a/yang/frr-bgp-route-map.yang +++ b/yang/frr-bgp-route-map.yang @@ -332,7 +332,7 @@ module frr-bgp-route-map { augment "/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:rmap-match-condition/frr-route-map:match-condition" { case local-preference { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'match-local-preference')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-local-preference')"; leaf local-preference { type uint32 { range "0..4294967295"; @@ -341,14 +341,14 @@ module frr-bgp-route-map { } case script { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'match-script')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-script')"; leaf script { type string; } } case origin { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'match-origin')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-origin')"; leaf origin { type enumeration { enum "egp" { @@ -371,7 +371,7 @@ module frr-bgp-route-map { } case rpki { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'rpki')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:rpki')"; leaf rpki { type enumeration { enum "invalid" { @@ -394,7 +394,7 @@ module frr-bgp-route-map { } case probability { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'probability')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:probability')"; leaf probability { type uint8 { range "0..100"; @@ -403,14 +403,14 @@ module frr-bgp-route-map { } case source-vrf { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'source-vrf')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:source-vrf')"; leaf source-vrf { type string; } } case peer { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'peer')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:peer')"; choice peer { description "Value of the peer"; @@ -449,10 +449,10 @@ module frr-bgp-route-map { } case access-list-name { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'mac-address-list') or " - + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'as-path-list') or " - + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'ip-route-source') or " - + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'ip-route-source-prefix-list')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:mac-address-list') or " + + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:as-path-list') or " + + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:ip-route-source') or " + + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:ip-route-source-prefix-list')"; description "Access-list name"; leaf list-name { @@ -461,7 +461,7 @@ module frr-bgp-route-map { } case evpn-default-route { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'evpn-default-route')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:evpn-default-route')"; description "Match default EVPN type-5 route"; leaf evpn-default-route { @@ -470,7 +470,7 @@ module frr-bgp-route-map { } case evpn-vni { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'evpn-vni')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:evpn-vni')"; description "Match eVPN VNI"; leaf evpn-vni { @@ -481,7 +481,7 @@ module frr-bgp-route-map { } case evpn-route-type { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'evpn-route-type')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:evpn-route-type')"; description "Match eVPN route-type"; leaf evpn-route-type { @@ -506,7 +506,7 @@ module frr-bgp-route-map { } case evpn-rd { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'evpn-rd')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:evpn-rd')"; description "Match eVPN route-distinguisher"; leaf route-distinguisher { @@ -515,9 +515,9 @@ module frr-bgp-route-map { } case comm-list-name { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'match-community') or " - + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'match-large-community') or " - + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'match-extcommunity')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-community') or " + + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-large-community') or " + + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-extcommunity')"; container comm-list { leaf comm-list-name { type bgp-filter:bgp-list-name; @@ -532,7 +532,7 @@ module frr-bgp-route-map { } case ipv4-address { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'ipv4-nexthop')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:ipv4-nexthop')"; leaf ipv4-address { type inet:ipv4-address; description @@ -541,7 +541,7 @@ module frr-bgp-route-map { } case ipv6-address { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'ipv6-nexthop')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:ipv6-nexthop')"; leaf ipv6-address { type inet:ipv6-address; description @@ -552,7 +552,7 @@ module frr-bgp-route-map { augment "/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:rmap-set-action/frr-route-map:set-action" { case distance { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'distance')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:distance')"; leaf distance { type uint8 { range "0..255"; @@ -561,7 +561,7 @@ module frr-bgp-route-map { } case extcommunity-rt { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'set-extcommunity-rt')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-extcommunity-rt')"; description "Value of the ext-community"; leaf extcommunity-rt { @@ -572,7 +572,7 @@ module frr-bgp-route-map { } case extcommunity-soo { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'set-extcommunity-soo')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-extcommunity-soo')"; description "Value of the ext-community"; leaf extcommunity-soo { @@ -583,7 +583,7 @@ module frr-bgp-route-map { } case extcommunity-lb { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'set-extcommunity-lb')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-extcommunity-lb')"; container extcommunity-lb { description "Value of the ext-community."; @@ -604,7 +604,7 @@ module frr-bgp-route-map { } case ipv4-address { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'ipv4-vpn-address')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:ipv4-vpn-address')"; description "Set the IPv4 address"; leaf ipv4-address { @@ -613,15 +613,15 @@ module frr-bgp-route-map { } case ipv4-nexthop { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'set-ipv4-nexthop')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-ipv4-nexthop')"; leaf ipv4-nexthop { type string; } } case ipv6-address { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'ipv6-nexthop-global') or " - + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'ipv6-vpn-address')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:ipv6-nexthop-global') or " + + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:ipv6-vpn-address')"; description "Set the IPv6 address"; leaf ipv6-address { @@ -630,15 +630,15 @@ module frr-bgp-route-map { } case preference { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'ipv6-prefer-global') or " - + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'ipv6-peer-address')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:ipv6-prefer-global') or " + + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:ipv6-peer-address')"; leaf preference { type boolean; } } case label-index { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'label-index')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:label-index')"; leaf label-index { type uint32 { range "0..1048560"; @@ -647,14 +647,14 @@ module frr-bgp-route-map { } case local-pref { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'set-local-preference')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-local-preference')"; leaf local-pref { type string; } } case weight { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'weight')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:weight')"; leaf weight { type uint32 { range "0..4294967295"; @@ -663,7 +663,7 @@ module frr-bgp-route-map { } case origin { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'set-origin')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-origin')"; leaf origin { type enumeration { enum "egp" { @@ -686,14 +686,14 @@ module frr-bgp-route-map { } case originator-id { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'originator-id')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:originator-id')"; leaf originator-id { type inet:ipv4-address; } } case table { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'table')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:table')"; leaf table { type uint32 { range "1..4294967295"; @@ -702,14 +702,14 @@ module frr-bgp-route-map { } case atomic-aggregate { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'atomic-aggregate')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:atomic-aggregate')"; leaf atomic-aggregate { type empty; } } case as-path-prepend { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'as-path-prepend')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:as-path-prepend')"; choice as-path-prepend { description "Value of the BGP AS-path attribute"; @@ -734,7 +734,7 @@ module frr-bgp-route-map { } case as-path-exclude { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'as-path-exclude')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:as-path-exclude')"; leaf exclude-as-path { type string; description @@ -743,7 +743,7 @@ module frr-bgp-route-map { } case community { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'set-community')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-community')"; choice community { description "Value of the BGP community attribute"; @@ -766,7 +766,7 @@ module frr-bgp-route-map { } case large-community { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'set-large-community')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:set-large-community')"; choice large-community { description "Value of the BGP large-community attribute"; @@ -789,7 +789,7 @@ module frr-bgp-route-map { } case aggregator { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'aggregator')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:aggregator')"; container aggregator { leaf aggregator-asn { type uint32 { @@ -810,8 +810,8 @@ module frr-bgp-route-map { } case comm-list-name { - when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'comm-list-delete') or " - + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'large-comm-list-delete')"; + when "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:comm-list-delete') or " + + "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:action, 'frr-bgp-route-map:large-comm-list-delete')"; leaf comm-list-name { type bgp-filter:bgp-list-name; } diff --git a/yang/frr-bgp.yang b/yang/frr-bgp.yang index ae44447df7..a779bb2054 100644 --- a/yang/frr-bgp.yang +++ b/yang/frr-bgp.yang @@ -23,10 +23,10 @@ module frr-bgp { prefix frr-bt; } - include "frr-bgp-common-structure"; - include "frr-bgp-common"; + include "frr-bgp-common-structure"; + include "frr-bgp-common-multiprotocol"; include "frr-bgp-neighbor"; diff --git a/yang/frr-isisd.yang b/yang/frr-isisd.yang index 4653e6f009..5997e8866a 100644 --- a/yang/frr-isisd.yang +++ b/yang/frr-isisd.yang @@ -481,6 +481,10 @@ module frr-isisd { description "TI-LFA configuration."; leaf enable { + must ". = 'false' or ../../lfa/enable = 'false'" { + error-message + "Can't enable both classic LFA and TI-LFA in the same interface."; + } type boolean; default false; description @@ -804,10 +808,6 @@ module frr-isisd { container level-1 { description "Level-1 IP Fast-reroute configuration."; - must "./lfa/enable = 'false' or ./ti-lfa/enable = 'false'" { - error-message - "Can't enable both classic LFA and TI-LFA in the same interface."; - } uses interface-config-lfa; uses interface-config-remote-lfa; uses interface-config-ti-lfa; @@ -815,10 +815,6 @@ module frr-isisd { container level-2 { description "Level-2 IP Fast-reroute configuration."; - must "./lfa/enable = 'false' or ./ti-lfa/enable = 'false'" { - error-message - "Can't enable both classic LFA and TI-LFA in the same interface."; - } uses interface-config-lfa; uses interface-config-remote-lfa; uses interface-config-ti-lfa; @@ -1502,14 +1498,15 @@ module frr-isisd { container srgb { description "Global blocks to be advertised."; - must "./upper-bound > ./lower-bound"; leaf lower-bound { + must "../upper-bound > ."; type uint32; default "16000"; description "Lower value in the label range."; } leaf upper-bound { + must ". > ../lower-bound"; type uint32; default "23999"; description @@ -1519,14 +1516,15 @@ module frr-isisd { container srlb { description "Local blocks to be advertised."; - must "./upper-bound > ./lower-bound"; leaf lower-bound { + must "../upper-bound > ."; type uint32; default "15000"; description "Lower value in the label range."; } leaf upper-bound { + must ". > ../lower-bound"; type uint32; default "15999"; description diff --git a/yang/frr-ospfd.yang b/yang/frr-ospfd.yang index 42a7e8784c..b0150cc061 100644 --- a/yang/frr-ospfd.yang +++ b/yang/frr-ospfd.yang @@ -682,8 +682,8 @@ module frr-ospfd { container global-block { description "Segment Routing Global Block label range."; - must "./upper-bound > ./lower-bound"; leaf lower-bound { + must "../upper-bound > ."; type uint32 { range "0..1048575"; } @@ -691,6 +691,7 @@ module frr-ospfd { } leaf upper-bound { + must ". > ../lower-bound"; type uint32 { range "0..1048575"; } @@ -701,14 +702,15 @@ module frr-ospfd { container srlb { description "Local blocks to be advertised."; - must "./upper-bound > ./lower-bound"; leaf lower-bound { + must "../upper-bound > ."; type uint32; default "15000"; description "Lower value in the label range."; } leaf upper-bound { + must ". > ../lower-bound"; type uint32; default "15999"; description diff --git a/yang/frr-pathd.yang b/yang/frr-pathd.yang index 03f0d3b024..30f9875a6d 100644 --- a/yang/frr-pathd.yang +++ b/yang/frr-pathd.yang @@ -84,51 +84,71 @@ module frr-pathd { leaf index { type uint32; description "Segment index"; - } - leaf sid-value { - type rt-types:mpls-label; + } + leaf sid-value { + type rt-types:mpls-label; + description "MPLS label value"; + } + container nai { + presence "The segment has a Node or Adjacency Identifier"; + leaf type { + description "NAI type"; mandatory true; - description "MPLS label value"; - } - container nai { - presence "The segement has a Node or Adjacency Identifier"; - leaf type { - description "NAI type"; - mandatory true; - type enumeration { - enum ipv4_node { - value 1; - description "IPv4 node identifier"; - } - enum ipv6_node { - value 2; - description "IPv6 node identifier"; - } - enum ipv4_adjacency { - value 3; - description "IPv4 adjacency"; - } - enum ipv6_adjacency { - value 4; - description "IPv6 adjacency"; - } - enum ipv4_unnumbered_adjacency { - value 5; - description "IPv4 unnumbered adjacency"; - } + type enumeration { + enum ipv4_node { + value 1; + description "IPv4 node identifier"; + } + enum ipv6_node { + value 2; + description "IPv6 node identifier"; + } + enum ipv4_adjacency { + value 3; + description "IPv4 adjacency"; + } + enum ipv6_adjacency { + value 4; + description "IPv6 adjacency"; + } + enum ipv4_unnumbered_adjacency { + value 5; + description "IPv4 unnumbered adjacency"; + } + enum ipv4_local_iface { + value 7; + description "IPv4 prefix with local interface id"; + } + enum ipv6_local_iface { + value 8; + description "IPv6 prefix with local interface id"; + } + enum ipv4_algo { + value 9; + description "IPv4 prefix with optional algorithm"; + } + enum ipv6_algo { + value 10; + description "IPv6 prefix with optional algorithm"; } } - leaf local-address { - type inet:ip-address; - mandatory true; - } - leaf local-interface { - type uint32; - mandatory true; - when "../type = 'ipv4_unnumbered_adjacency'"; - } - leaf remote-address { - type inet:ip-address; + } + leaf local-address { + type inet:ip-address; + mandatory true; + } + leaf local-prefix-len { + type uint8; + mandatory true; + when "../type = 'ipv4_local_iface' or ../type = 'ipv6_local_iface' or ../type = 'ipv4_algo' or ../type = 'ipv6_algo'"; + } + leaf local-interface { + type uint32; + mandatory true; + when "../type = 'ipv4_local_iface' or ../type = 'ipv6_local_iface' or ../type = 'ipv4_unnumbered_adjacency'"; + } + leaf remote-address { + type inet:ip-address; mandatory true; when "../type = 'ipv4_adjacency' or ../type = 'ipv6_adjacency' or ../type = 'ipv4_unnumbered_adjacency'"; } @@ -137,6 +157,11 @@ module frr-pathd { mandatory true; when "../type = 'ipv4_unnumbered_adjacency'"; } + leaf algorithm { + type uint8; + mandatory true; + when "../type = 'ipv4_algo' or ../type = 'ipv6_algo'"; + } } } } diff --git a/yang/frr-pim.yang b/yang/frr-pim.yang index 52d8641613..70adb37b26 100644 --- a/yang/frr-pim.yang +++ b/yang/frr-pim.yang @@ -341,14 +341,14 @@ module frr-pim { leaf bsm { type boolean; - default "false"; + default "true"; description "Enables BSM support on the interface."; } leaf unicast-bsm { type boolean; - default "false"; + default "true"; description "Accept/Send unicast BSM on the interface."; } diff --git a/yang/frr-ripd.yang b/yang/frr-ripd.yang index 929c916069..d77241cb15 100644 --- a/yang/frr-ripd.yang +++ b/yang/frr-ripd.yang @@ -291,6 +291,10 @@ module frr-ripd { } container version { leaf receive { + must + '(. = "1" and ../send = "1") or ' + + '(. = "2" and ../send = "2") or ' + + '(. = "1-2" and ../send = "2")'; type enumeration { enum "1" { value 1; @@ -313,6 +317,10 @@ module frr-ripd { "Advertisement reception - Version control."; } leaf send { + must + '(../receive = "1" and . = "1") or ' + + '(../receive = "2" and . = "2") or ' + + '(../receive = "1-2" and . = "2")'; type enumeration { enum "1" { value 1; @@ -329,10 +337,6 @@ module frr-ripd { description "Advertisement transmission - Version control."; } - must - '(./receive = "1" and ./send = "1") or ' + - '(./receive = "2" and ./send = "2") or ' + - '(./receive = "1-2" and ./send = "2")'; } /* diff --git a/yang/frr-zebra-route-map.yang b/yang/frr-zebra-route-map.yang index 91f4c87e33..de0f64d389 100644 --- a/yang/frr-zebra-route-map.yang +++ b/yang/frr-zebra-route-map.yang @@ -64,10 +64,15 @@ module frr-zebra-route-map { "Set IPv4/IPv6 source address for route"; } - augment "/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:rmap-match-condition/frr-route-map:match-condition" { + augment "/frr-route-map:lib" + + "/frr-route-map:route-map" + + "/frr-route-map:entry" + + "/frr-route-map:match-condition" + + "/frr-route-map:rmap-match-condition" + + "/frr-route-map:match-condition" { case ipv4-prefix-length { - when "derived-from-or-self(../condition, 'ipv4-prefix-length') or " - + "derived-from-or-self(../condition, 'ipv4-next-hop-prefix-length')"; + when "derived-from-or-self(../frr-route-map:condition, 'frr-zebra-route-map:ipv4-prefix-length') or " + + "derived-from-or-self(../frr-route-map:condition, 'frr-zebra-route-map:ipv4-next-hop-prefix-length')"; leaf ipv4-prefix-length { type uint8 { range "0..32"; @@ -76,7 +81,7 @@ module frr-zebra-route-map { } case ipv6-prefix-length { - when "derived-from-or-self(../condition, 'ipv6-prefix-length')"; + when "derived-from-or-self(../frr-route-map:condition, 'frr-zebra-route-map:ipv6-prefix-length')"; leaf ipv6-prefix-length { type uint8 { range "0..128"; @@ -85,7 +90,7 @@ module frr-zebra-route-map { } case source-instance { - when "derived-from-or-self(../condition, 'source-instance')"; + when "derived-from-or-self(../frr-route-map:condition, 'frr-zebra-route-map:source-instance')"; leaf source-instance { type uint8 { range "0..255"; @@ -94,16 +99,21 @@ module frr-zebra-route-map { } case source-protocol { - when "derived-from-or-self(../condition, 'source-protocol')"; + when "derived-from-or-self(../frr-route-map:condition, 'frr-zebra-route-map:source-protocol')"; leaf source-protocol { type frr-route-types:frr-route-types; } } } - augment "/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:set-action/frr-route-map:rmap-set-action/frr-route-map:set-action" { + augment "/frr-route-map:lib" + + "/frr-route-map:route-map" + + "/frr-route-map:entry" + + "/frr-route-map:set-action" + + "/frr-route-map:rmap-set-action" + + "/frr-route-map:set-action" { case src-address { - when "derived-from-or-self(../action, 'src-address')"; + when "derived-from-or-self(../frr-route-map:action, 'frr-zebra-route-map:src-address')"; choice src-address { description "Value of the source address"; diff --git a/yang/frr-zebra.yang b/yang/frr-zebra.yang index 5c2560837f..a2c6bb4c2b 100644 --- a/yang/frr-zebra.yang +++ b/yang/frr-zebra.yang @@ -1953,7 +1953,7 @@ module frr-zebra { } leaf ip4-peer { - when "derived-from-or-self(../address-family, 'ipv4')"; + when "derived-from-or-self(../address-family, 'frr-rt:ipv4')"; type inet:ipv4-prefix; description "Peer prefix, for peer-to-peer interfaces."; diff --git a/zebra/connected.c b/zebra/connected.c index 1e03f8b639..883334d509 100644 --- a/zebra/connected.c +++ b/zebra/connected.c @@ -38,7 +38,6 @@ #include "zebra/connected.h" #include "zebra/rtadv.h" #include "zebra/zebra_mpls.h" -#include "zebra/debug.h" #include "zebra/zebra_errors.h" #include "zebra/zebra_router.h" @@ -223,6 +222,9 @@ void connected_up(struct interface *ifp, struct connected *ifc) if (!CHECK_FLAG(ifc->conf, ZEBRA_IFC_REAL)) return; + /* Ensure 'down' flag is cleared */ + UNSET_FLAG(ifc->conf, ZEBRA_IFC_DOWN); + PREFIX_COPY(&p, CONNECTED_PREFIX(ifc)); /* Apply mask to the network. */ @@ -280,7 +282,8 @@ void connected_up(struct interface *ifp, struct connected *ifc) PREFIX_COPY(&cp, CONNECTED_PREFIX(c)); apply_mask(&cp); - if (prefix_same(&cp, &p)) + if (prefix_same(&cp, &p) && + !CHECK_FLAG(c->conf, ZEBRA_IFC_DOWN)) count++; if (count >= 2) @@ -390,7 +393,7 @@ void connected_down(struct interface *ifp, struct connected *ifc) if (!zvrf) { flog_err( EC_ZEBRA_VRF_NOT_FOUND, - "%s: Received Up for interface but no associated zvrf: %d", + "%s: Received Down for interface but no associated zvrf: %d", __func__, ifp->vrf_id); return; } @@ -398,6 +401,17 @@ void connected_down(struct interface *ifp, struct connected *ifc) if (!CHECK_FLAG(ifc->conf, ZEBRA_IFC_REAL)) return; + /* Skip if we've already done this; this can happen if we have a + * config change that takes an interface down, then we receive kernel + * notifications about the downed interface and its addresses. + */ + if (CHECK_FLAG(ifc->conf, ZEBRA_IFC_DOWN)) { + if (IS_ZEBRA_DEBUG_RIB) + zlog_debug("%s: ifc %p, %pFX already DOWN", + __func__, ifc, ifc->address); + return; + } + PREFIX_COPY(&p, CONNECTED_PREFIX(ifc)); /* Apply mask to the network. */ @@ -423,6 +437,9 @@ void connected_down(struct interface *ifp, struct connected *ifc) break; } + /* Mark the address as 'down' */ + SET_FLAG(ifc->conf, ZEBRA_IFC_DOWN); + /* * It's possible to have X number of addresses * on a interface that all resolve to the same @@ -436,10 +453,11 @@ void connected_down(struct interface *ifp, struct connected *ifc) PREFIX_COPY(&cp, CONNECTED_PREFIX(c)); apply_mask(&cp); - if (prefix_same(&p, &cp)) + if (prefix_same(&p, &cp) && + !CHECK_FLAG(c->conf, ZEBRA_IFC_DOWN)) count++; - if (count >= 2) + if (count >= 1) return; } diff --git a/zebra/if_netlink.c b/zebra/if_netlink.c index fbf64439e3..c2b4dcc52f 100644 --- a/zebra/if_netlink.c +++ b/zebra/if_netlink.c @@ -297,9 +297,6 @@ static void netlink_determine_zebra_iftype(const char *kind, *zif_type = ZEBRA_IF_GRE; } -#define parse_rtattr_nested(tb, max, rta) \ - netlink_parse_rtattr((tb), (max), RTA_DATA(rta), RTA_PAYLOAD(rta)) - static void netlink_vrf_change(struct nlmsghdr *h, struct rtattr *tb, uint32_t ns_id, const char *name) { @@ -312,8 +309,7 @@ static void netlink_vrf_change(struct nlmsghdr *h, struct rtattr *tb, ifi = NLMSG_DATA(h); - memset(linkinfo, 0, sizeof(linkinfo)); - parse_rtattr_nested(linkinfo, IFLA_INFO_MAX, tb); + netlink_parse_rtattr_nested(linkinfo, IFLA_INFO_MAX, tb); if (!linkinfo[IFLA_INFO_DATA]) { if (IS_ZEBRA_DEBUG_KERNEL) @@ -323,8 +319,8 @@ static void netlink_vrf_change(struct nlmsghdr *h, struct rtattr *tb, return; } - memset(attr, 0, sizeof(attr)); - parse_rtattr_nested(attr, IFLA_VRF_MAX, linkinfo[IFLA_INFO_DATA]); + netlink_parse_rtattr_nested(attr, IFLA_VRF_MAX, + linkinfo[IFLA_INFO_DATA]); if (!attr[IFLA_VRF_TABLE]) { if (IS_ZEBRA_DEBUG_KERNEL) zlog_debug( @@ -544,8 +540,7 @@ static int netlink_extract_bridge_info(struct rtattr *link_data, struct rtattr *attr[IFLA_BR_MAX + 1]; memset(bridge_info, 0, sizeof(*bridge_info)); - memset(attr, 0, sizeof(attr)); - parse_rtattr_nested(attr, IFLA_BR_MAX, link_data); + netlink_parse_rtattr_nested(attr, IFLA_BR_MAX, link_data); if (attr[IFLA_BR_VLAN_FILTERING]) bridge_info->vlan_aware = *(uint8_t *)RTA_DATA(attr[IFLA_BR_VLAN_FILTERING]); @@ -559,8 +554,7 @@ static int netlink_extract_vlan_info(struct rtattr *link_data, vlanid_t vid_in_msg; memset(vlan_info, 0, sizeof(*vlan_info)); - memset(attr, 0, sizeof(attr)); - parse_rtattr_nested(attr, IFLA_VLAN_MAX, link_data); + netlink_parse_rtattr_nested(attr, IFLA_VLAN_MAX, link_data); if (!attr[IFLA_VLAN_ID]) { if (IS_ZEBRA_DEBUG_KERNEL) zlog_debug("IFLA_VLAN_ID missing from VLAN IF message"); @@ -579,7 +573,7 @@ static int netlink_extract_gre_info(struct rtattr *link_data, memset(gre_info, 0, sizeof(*gre_info)); memset(attr, 0, sizeof(attr)); - parse_rtattr_nested(attr, IFLA_GRE_MAX, link_data); + netlink_parse_rtattr_nested(attr, IFLA_GRE_MAX, link_data); if (!attr[IFLA_GRE_LOCAL]) { if (IS_ZEBRA_DEBUG_KERNEL) @@ -622,8 +616,7 @@ static int netlink_extract_vxlan_info(struct rtattr *link_data, ifindex_t ifindex_link; memset(vxl_info, 0, sizeof(*vxl_info)); - memset(attr, 0, sizeof(attr)); - parse_rtattr_nested(attr, IFLA_VXLAN_MAX, link_data); + netlink_parse_rtattr_nested(attr, IFLA_VXLAN_MAX, link_data); if (!attr[IFLA_VXLAN_ID]) { if (IS_ZEBRA_DEBUG_KERNEL) zlog_debug( @@ -716,8 +709,7 @@ static int netlink_bridge_vxlan_update(struct interface *ifp, /* There is a 1-to-1 mapping of VLAN to VxLAN - hence * only 1 access VLAN is accepted. */ - memset(aftb, 0, sizeof(aftb)); - parse_rtattr_nested(aftb, IFLA_BRIDGE_MAX, af_spec); + netlink_parse_rtattr_nested(aftb, IFLA_BRIDGE_MAX, af_spec); if (!aftb[IFLA_BRIDGE_VLAN_INFO]) return 0; @@ -786,7 +778,6 @@ static int netlink_bridge_interface(struct nlmsghdr *h, int len, ns_id_t ns_id, /* Fetch name and ifindex */ ifi = NLMSG_DATA(h); - memset(tb, 0, sizeof(tb)); netlink_parse_rtattr(tb, IFLA_MAX, IFLA_RTA(ifi), len); if (tb[IFLA_IFNAME] == NULL) @@ -854,9 +845,8 @@ static uint8_t netlink_parse_lacp_bypass(struct rtattr **linkinfo) uint8_t bypass = 0; struct rtattr *mbrinfo[IFLA_BOND_SLAVE_MAX + 1]; - memset(mbrinfo, 0, sizeof(mbrinfo)); - parse_rtattr_nested(mbrinfo, IFLA_BOND_SLAVE_MAX, - linkinfo[IFLA_INFO_SLAVE_DATA]); + netlink_parse_rtattr_nested(mbrinfo, IFLA_BOND_SLAVE_MAX, + linkinfo[IFLA_INFO_SLAVE_DATA]); if (mbrinfo[IFLA_BOND_SLAVE_AD_RX_BYPASS]) bypass = *(uint8_t *)RTA_DATA( mbrinfo[IFLA_BOND_SLAVE_AD_RX_BYPASS]); @@ -910,7 +900,6 @@ static int netlink_interface(struct nlmsghdr *h, ns_id_t ns_id, int startup) return netlink_bridge_interface(h, len, ns_id, startup); /* Looking up interface name. */ - memset(tb, 0, sizeof(tb)); memset(linkinfo, 0, sizeof(linkinfo)); netlink_parse_rtattr(tb, IFLA_MAX, IFLA_RTA(ifi), len); @@ -930,7 +919,8 @@ static int netlink_interface(struct nlmsghdr *h, ns_id_t ns_id, int startup) desc = (char *)RTA_DATA(tb[IFLA_IFALIAS]); if (tb[IFLA_LINKINFO]) { - parse_rtattr_nested(linkinfo, IFLA_INFO_MAX, tb[IFLA_LINKINFO]); + netlink_parse_rtattr_nested(linkinfo, IFLA_INFO_MAX, + tb[IFLA_LINKINFO]); if (linkinfo[IFLA_INFO_KIND]) kind = RTA_DATA(linkinfo[IFLA_INFO_KIND]); @@ -1303,7 +1293,6 @@ int netlink_interface_addr(struct nlmsghdr *h, ns_id_t ns_id, int startup) return -1; } - memset(tb, 0, sizeof(tb)); netlink_parse_rtattr(tb, IFA_MAX, IFA_RTA(ifa), len); ifp = if_lookup_by_index_per_ns(zns, ifa->ifa_index); @@ -1519,7 +1508,6 @@ int netlink_link_change(struct nlmsghdr *h, ns_id_t ns_id, int startup) return netlink_bridge_interface(h, len, ns_id, startup); /* Looking up interface name. */ - memset(tb, 0, sizeof(tb)); memset(linkinfo, 0, sizeof(linkinfo)); netlink_parse_rtattr(tb, IFLA_MAX, IFLA_RTA(ifi), len); @@ -1536,7 +1524,8 @@ int netlink_link_change(struct nlmsghdr *h, ns_id_t ns_id, int startup) name = (char *)RTA_DATA(tb[IFLA_IFNAME]); if (tb[IFLA_LINKINFO]) { - parse_rtattr_nested(linkinfo, IFLA_INFO_MAX, tb[IFLA_LINKINFO]); + netlink_parse_rtattr_nested(linkinfo, IFLA_INFO_MAX, + tb[IFLA_LINKINFO]); if (linkinfo[IFLA_INFO_KIND]) kind = RTA_DATA(linkinfo[IFLA_INFO_KIND]); diff --git a/zebra/kernel_netlink.c b/zebra/kernel_netlink.c index cd22e95737..8b631a3726 100644 --- a/zebra/kernel_netlink.c +++ b/zebra/kernel_netlink.c @@ -493,6 +493,7 @@ void netlink_parse_rtattr_flags(struct rtattr **tb, int max, { unsigned short type; + memset(tb, 0, sizeof(struct rtattr *) * (max + 1)); while (RTA_OK(rta, len)) { type = rta->rta_type & ~flags; if ((type <= max) && (!tb[type])) @@ -504,6 +505,7 @@ void netlink_parse_rtattr_flags(struct rtattr **tb, int max, void netlink_parse_rtattr(struct rtattr **tb, int max, struct rtattr *rta, int len) { + memset(tb, 0, sizeof(struct rtattr *) * (max + 1)); while (RTA_OK(rta, len)) { if (rta->rta_type <= max) tb[rta->rta_type] = rta; diff --git a/zebra/redistribute.c b/zebra/redistribute.c index 7cb426359d..89f46f9c97 100644 --- a/zebra/redistribute.c +++ b/zebra/redistribute.c @@ -337,12 +337,17 @@ void zebra_redistribute_add(ZAPI_HANDLER_ARGS) zvrf_id(zvrf), afi); } } else { - if (IS_ZEBRA_DEBUG_EVENT) - zlog_debug("%s: setting vrf %s(%u) redist bitmap", - __func__, VRF_LOGNAME(zvrf->vrf), - zvrf_id(zvrf)); - vrf_bitmap_set(client->redist[afi][type], zvrf_id(zvrf)); - zebra_redistribute(client, type, 0, zvrf_id(zvrf), afi); + if (!vrf_bitmap_check(client->redist[afi][type], + zvrf_id(zvrf))) { + if (IS_ZEBRA_DEBUG_EVENT) + zlog_debug( + "%s: setting vrf %s(%u) redist bitmap", + __func__, VRF_LOGNAME(zvrf->vrf), + zvrf_id(zvrf)); + vrf_bitmap_set(client->redist[afi][type], + zvrf_id(zvrf)); + zebra_redistribute(client, type, 0, zvrf_id(zvrf), afi); + } } stream_failure: diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c index d2ec7da57c..fbf37230c7 100644 --- a/zebra/rt_netlink.c +++ b/zebra/rt_netlink.c @@ -509,8 +509,6 @@ static uint8_t parse_multipath_nexthops_unicast(ns_id_t ns_id, nh_vrf_id = vrf_id; if (rtnh->rtnh_len > sizeof(*rtnh)) { - memset(rtnh_tb, 0, sizeof(rtnh_tb)); - netlink_parse_rtattr(rtnh_tb, RTA_MAX, RTNH_DATA(rtnh), rtnh->rtnh_len - sizeof(*rtnh)); if (rtnh_tb[RTA_GATEWAY]) @@ -628,7 +626,6 @@ static int netlink_route_change_read_unicast(struct nlmsghdr *h, ns_id_t ns_id, return -1; } - memset(tb, 0, sizeof(tb)); netlink_parse_rtattr(tb, RTA_MAX, RTM_RTA(rtm), len); if (rtm->rtm_flags & RTM_F_CLONED) @@ -713,7 +710,6 @@ static int netlink_route_change_read_unicast(struct nlmsghdr *h, ns_id_t ns_id, if (tb[RTA_METRICS]) { struct rtattr *mxrta[RTAX_MAX + 1]; - memset(mxrta, 0, sizeof(mxrta)); netlink_parse_rtattr(mxrta, RTAX_MAX, RTA_DATA(tb[RTA_METRICS]), RTA_PAYLOAD(tb[RTA_METRICS])); @@ -920,7 +916,6 @@ static int netlink_route_change_read_multicast(struct nlmsghdr *h, len = h->nlmsg_len - NLMSG_LENGTH(sizeof(struct rtmsg)); - memset(tb, 0, sizeof(tb)); netlink_parse_rtattr(tb, RTA_MAX, RTM_RTA(rtm), len); if (tb[RTA_TABLE]) @@ -2875,7 +2870,6 @@ static int netlink_macfdb_change(struct nlmsghdr *h, int len, ns_id_t ns_id) /* Parse attributes and extract fields of interest. Do basic * validation of the fields. */ - memset(tb, 0, sizeof tb); netlink_parse_rtattr_flags(tb, NDA_MAX, NDA_RTA(ndm), len, NLA_F_NESTED); @@ -3348,7 +3342,6 @@ static int netlink_ipneigh_change(struct nlmsghdr *h, int len, ns_id_t ns_id) zif = (struct zebra_if *)ifp->info; /* Parse attributes and extract fields of interest. */ - memset(tb, 0, sizeof(tb)); netlink_parse_rtattr(tb, NDA_MAX, NDA_RTA(ndm), len); if (!tb[NDA_DST]) { diff --git a/zebra/zapi_msg.c b/zebra/zapi_msg.c index 55f8edd272..544bb07fbe 100644 --- a/zebra/zapi_msg.c +++ b/zebra/zapi_msg.c @@ -985,8 +985,7 @@ void zsend_nhrp_neighbor_notify(int cmd, struct interface *ifp, union sockunion ip; if (IS_ZEBRA_DEBUG_PACKET) - zlog_debug("%s: Notifying Neighbor entry (%u)", - __PRETTY_FUNCTION__, cmd); + zlog_debug("%s: Notifying Neighbor entry (%u)", __func__, cmd); sockunion_family(&ip) = ipaddr_family(ipaddr); afi = family2afi(sockunion_family(&ip)); @@ -2509,7 +2508,7 @@ static void zread_sr_policy_set(ZAPI_HANDLER_ARGS) if (zapi_sr_policy_decode(s, &zp) < 0) { if (IS_ZEBRA_DEBUG_RECV) zlog_debug("%s: Unable to decode zapi_sr_policy sent", - __PRETTY_FUNCTION__); + __func__); return; } zt = &zp.segment_list; @@ -2517,7 +2516,7 @@ static void zread_sr_policy_set(ZAPI_HANDLER_ARGS) if (IS_ZEBRA_DEBUG_RECV) zlog_debug( "%s: SR-TE tunnel must contain at least one label", - __PRETTY_FUNCTION__); + __func__); return; } @@ -2544,7 +2543,7 @@ static void zread_sr_policy_delete(ZAPI_HANDLER_ARGS) if (zapi_sr_policy_decode(s, &zp) < 0) { if (IS_ZEBRA_DEBUG_RECV) zlog_debug("%s: Unable to decode zapi_sr_policy sent", - __PRETTY_FUNCTION__); + __func__); return; } @@ -2554,8 +2553,7 @@ static void zread_sr_policy_delete(ZAPI_HANDLER_ARGS) policy = zebra_sr_policy_find(zp.color, &zp.endpoint); if (!policy) { if (IS_ZEBRA_DEBUG_RECV) - zlog_debug("%s: Unable to find SR-TE policy", - __PRETTY_FUNCTION__); + zlog_debug("%s: Unable to find SR-TE policy", __func__); return; } diff --git a/zebra/zebra_evpn.c b/zebra/zebra_evpn.c index 80e06d913d..30f4a44769 100644 --- a/zebra/zebra_evpn.c +++ b/zebra/zebra_evpn.c @@ -1011,6 +1011,7 @@ zebra_evpn_t *zebra_evpn_lookup(vni_t vni) */ zebra_evpn_t *zebra_evpn_add(vni_t vni) { + char buffer[80]; struct zebra_vrf *zvrf; zebra_evpn_t tmp_zevpn; zebra_evpn_t *zevpn = NULL; @@ -1024,11 +1025,14 @@ zebra_evpn_t *zebra_evpn_add(vni_t vni) zebra_evpn_es_evi_init(zevpn); + snprintf(buffer, sizeof(buffer), "Zebra EVPN MAC Table vni: %u", vni); /* Create hash table for MAC */ - zevpn->mac_table = zebra_mac_db_create("Zebra EVPN MAC Table"); + zevpn->mac_table = zebra_mac_db_create(buffer); + snprintf(buffer, sizeof(buffer), "Zebra EVPN Neighbor Table vni: %u", + vni); /* Create hash table for neighbors */ - zevpn->neigh_table = zebra_neigh_db_create("Zebra EVPN Neighbor Table"); + zevpn->neigh_table = zebra_neigh_db_create(buffer); return zevpn; } diff --git a/zebra/zebra_evpn_mac.c b/zebra/zebra_evpn_mac.c index 7bbe092d8c..fe3167dc29 100644 --- a/zebra/zebra_evpn_mac.c +++ b/zebra/zebra_evpn_mac.c @@ -1323,7 +1323,7 @@ int zebra_evpn_mac_send_del_to_client(vni_t vni, struct ethaddr *macaddr, */ struct hash *zebra_mac_db_create(const char *desc) { - return hash_create(mac_hash_keymake, mac_cmp, desc); + return hash_create_size(8, mac_hash_keymake, mac_cmp, desc); } /* program sync mac flags in the dataplane */ diff --git a/zebra/zebra_evpn_mh.c b/zebra/zebra_evpn_mh.c index 0038689e85..d6ae92a03d 100644 --- a/zebra/zebra_evpn_mh.c +++ b/zebra/zebra_evpn_mh.c @@ -2476,8 +2476,8 @@ void zebra_evpn_proc_remote_es(ZAPI_HANDLER_ARGS) if (!is_evpn_enabled()) { zlog_debug( - "%s: EVPN not enabled yet we received a es_add zapi call", - __PRETTY_FUNCTION__); + "%s: EVPN not enabled yet we received a es_add zapi call", + __func__); return; } diff --git a/zebra/zebra_evpn_neigh.c b/zebra/zebra_evpn_neigh.c index d1b93dbe8a..4c7a1542fc 100644 --- a/zebra/zebra_evpn_neigh.c +++ b/zebra/zebra_evpn_neigh.c @@ -85,7 +85,7 @@ int neigh_list_cmp(void *p1, void *p2) struct hash *zebra_neigh_db_create(const char *desc) { - return hash_create(neigh_hash_keymake, neigh_cmp, desc); + return hash_create_size(8, neigh_hash_keymake, neigh_cmp, desc); } uint32_t num_dup_detected_neighs(zebra_evpn_t *zevpn) diff --git a/zebra/zebra_mpls.c b/zebra/zebra_mpls.c index a923782bfe..850ca17636 100644 --- a/zebra/zebra_mpls.c +++ b/zebra/zebra_mpls.c @@ -3952,11 +3952,18 @@ void zebra_mpls_close_tables(struct zebra_vrf *zvrf) */ void zebra_mpls_init_tables(struct zebra_vrf *zvrf) { + char buffer[80]; + if (!zvrf) return; - zvrf->slsp_table = - hash_create(label_hash, label_cmp, "ZEBRA SLSP table"); - zvrf->lsp_table = hash_create(label_hash, label_cmp, "ZEBRA LSP table"); + + snprintf(buffer, sizeof(buffer), "ZEBRA SLSP table: %s", + zvrf->vrf->name); + zvrf->slsp_table = hash_create_size(8, label_hash, label_cmp, buffer); + + snprintf(buffer, sizeof(buffer), "ZEBRA LSP table: %s", + zvrf->vrf->name); + zvrf->lsp_table = hash_create_size(8, label_hash, label_cmp, buffer); zvrf->fec_table[AFI_IP] = route_table_init(); zvrf->fec_table[AFI_IP6] = route_table_init(); zvrf->mpls_flags = 0; diff --git a/zebra/zebra_pbr.c b/zebra/zebra_pbr.c index c4004842e6..73c2c3dda3 100644 --- a/zebra/zebra_pbr.c +++ b/zebra/zebra_pbr.c @@ -512,7 +512,7 @@ void zebra_pbr_add_rule(struct zebra_pbr_rule *rule) if (pbr_rule_release(found)) zlog_debug( "%s: Rule being updated we know nothing about", - __PRETTY_FUNCTION__); + __func__); } else { if (IS_ZEBRA_DEBUG_PBR) diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index dbc5c77fd9..8afb5053c4 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -132,41 +132,61 @@ struct wq_nhg_wrapper { #define WQ_NHG_WRAPPER_TYPE_CTX 0x01 #define WQ_NHG_WRAPPER_TYPE_NHG 0x02 -static void PRINTFRR(5, 6) -_rnode_zlog(const char *_func, vrf_id_t vrf_id, struct route_node *rn, - int priority, const char *msgfmt, ...) +/* %pRN is already a printer for route_nodes that just prints the prefix */ +#ifdef _FRR_ATTRIBUTE_PRINTFRR +#pragma FRR printfrr_ext "%pZN" (struct route_node *) +#endif + +printfrr_ext_autoreg_p("ZN", printfrr_zebra_node); +static ssize_t printfrr_zebra_node(struct fbuf *buf, struct printfrr_eargs *ea, + const void *ptr) { - char buf[SRCDEST2STR_BUFFER + sizeof(" (MRIB)")]; - char msgbuf[512]; - va_list ap; - uint32_t table = 0; - - va_start(ap, msgfmt); - vsnprintf(msgbuf, sizeof(msgbuf), msgfmt, ap); - va_end(ap); - - if (rn) { - struct rib_table_info *info = srcdest_rnode_table_info(rn); - rib_dest_t *dest = NULL; + struct route_node *rn = (struct route_node *)ptr; + ssize_t rv = 0; + + /* just the table number? */ + if (ea->fmt[0] == 't') { + rib_dest_t *dest; struct route_entry *re = NULL; - srcdest_rnode2str(rn, buf, sizeof(buf)); + ea->fmt++; - if (info->safi == SAFI_MULTICAST) - strlcat(buf, " (MRIB)", sizeof(buf)); + if (!rn) + return bputch(buf, '!'); dest = rib_dest_from_rnode(rn); if (dest) re = re_list_first(&dest->routes); if (re) - table = re->table; + rv += bprintfrr(buf, "%u", re->table); + else + rv += bputch(buf, '?'); + } else { - snprintf(buf, sizeof(buf), "{(route_node *) NULL}"); - } + char cbuf[PREFIX_STRLEN * 2 + 6]; + struct rib_table_info *info; - zlog(priority, "%s: (%u:%u):%s: %s", _func, vrf_id, table, buf, msgbuf); + if (!rn) + return bputs(buf, "{(route_node *) NULL}"); + + srcdest_rnode2str(rn, cbuf, sizeof(cbuf)); + rv += bputs(buf, cbuf); + + info = srcdest_rnode_table_info(rn); + if (info->safi == SAFI_MULTICAST) + rv += bputs(buf, " (MRIB)"); + } + return rv; } +#define rnode_debug(node, vrf_id, msg, ...) \ + zlog_debug("%s: (%u:%pZNt):%pZN: " msg, __func__, vrf_id, node, node, \ + ##__VA_ARGS__) + +#define rnode_info(node, vrf_id, msg, ...) \ + zlog_info("%s: (%u:%pZNt):%pZN: " msg, __func__, vrf_id, node, node, \ + ##__VA_ARGS__) + static char *_dump_re_status(const struct route_entry *re, char *buf, size_t len) { @@ -191,11 +211,6 @@ static char *_dump_re_status(const struct route_entry *re, char *buf, return buf; } -#define rnode_debug(node, vrf_id, ...) \ - _rnode_zlog(__func__, vrf_id, node, LOG_DEBUG, __VA_ARGS__) -#define rnode_info(node, ...) \ - _rnode_zlog(__func__, vrf_id, node, LOG_INFO, __VA_ARGS__) - uint8_t route_distance(int type) { uint8_t distance; diff --git a/zebra/zebra_vrf.c b/zebra/zebra_vrf.c index 212557423b..a0c63e4202 100644 --- a/zebra/zebra_vrf.c +++ b/zebra/zebra_vrf.c @@ -103,9 +103,7 @@ static int zebra_vrf_new(struct vrf *vrf) if (IS_ZEBRA_DEBUG_EVENT) zlog_debug("VRF %s created, id %u", vrf->name, vrf->vrf_id); - zvrf = zebra_vrf_alloc(); - vrf->info = zvrf; - zvrf->vrf = vrf; + zvrf = zebra_vrf_alloc(vrf); if (!vrf_is_backend_netns()) zvrf->zns = zebra_ns_lookup(NS_DEFAULT); @@ -427,12 +425,15 @@ static void zebra_vrf_table_create(struct zebra_vrf *zvrf, afi_t afi, } /* Allocate new zebra VRF. */ -struct zebra_vrf *zebra_vrf_alloc(void) +struct zebra_vrf *zebra_vrf_alloc(struct vrf *vrf) { struct zebra_vrf *zvrf; zvrf = XCALLOC(MTYPE_ZEBRA_VRF, sizeof(struct zebra_vrf)); + zvrf->vrf = vrf; + vrf->info = zvrf; + zebra_vxlan_init_tables(zvrf); zebra_mpls_init_tables(zvrf); zebra_pw_init(zvrf); diff --git a/zebra/zebra_vrf.h b/zebra/zebra_vrf.h index 000b5a7238..b2b0fcfbb2 100644 --- a/zebra/zebra_vrf.h +++ b/zebra/zebra_vrf.h @@ -251,7 +251,7 @@ extern struct route_table *zebra_vrf_get_table_with_table_id(afi_t afi, extern void zebra_vrf_update_all(struct zserv *client); extern struct zebra_vrf *zebra_vrf_lookup_by_id(vrf_id_t vrf_id); extern struct zebra_vrf *zebra_vrf_lookup_by_name(const char *); -extern struct zebra_vrf *zebra_vrf_alloc(void); +extern struct zebra_vrf *zebra_vrf_alloc(struct vrf *vrf); extern struct route_table *zebra_vrf_table(afi_t, safi_t, vrf_id_t); extern void zebra_vrf_init(void); diff --git a/zebra/zebra_vxlan.c b/zebra/zebra_vxlan.c index 23aeb7190d..09eb78917c 100644 --- a/zebra/zebra_vxlan.c +++ b/zebra/zebra_vxlan.c @@ -5755,13 +5755,20 @@ stream_failure: */ void zebra_vxlan_init_tables(struct zebra_vrf *zvrf) { + char buffer[80]; + if (!zvrf) return; - zvrf->evpn_table = - hash_create(zebra_evpn_hash_keymake, zebra_evpn_hash_cmp, - "Zebra VRF EVPN Table"); - zvrf->vxlan_sg_table = hash_create(zebra_vxlan_sg_hash_key_make, - zebra_vxlan_sg_hash_eq, "Zebra VxLAN SG Table"); + + snprintf(buffer, sizeof(buffer), "Zebra VRF EVPN Table: %s", + zvrf->vrf->name); + zvrf->evpn_table = hash_create_size(8, zebra_evpn_hash_keymake, + zebra_evpn_hash_cmp, buffer); + + snprintf(buffer, sizeof(buffer), "Zebra VxLAN SG Table: %s", + zvrf->vrf->name); + zvrf->vxlan_sg_table = hash_create_size(8, zebra_vxlan_sg_hash_key_make, + zebra_vxlan_sg_hash_eq, buffer); } /* Cleanup EVPN info, but don't free the table. */ |
