Commit Graph

4080 Commits

Author SHA1 Message Date
Christian Hopps
727633a046 tests: remove reliance on time.sleep
Use proper retry loop to wait for state to converge, not some arbitrary delay.

fixes #15878

Signed-off-by: Christian Hopps <chopps@labn.net>
2024-05-02 06:10:48 -04:00
Donatas Abraitis
f58227c91e tests: Check if iBGP session can drop invalid AIGP attribute
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-05-01 16:33:52 +03:00
Donald Sharp
edac3efdc5
Merge pull request #15864 from opensourcerouting/fix/graceful_restart_per_neighbor
tests: Check if Graceful Restart per-neighbor works as expected
2024-04-29 09:16:36 -04:00
Donatas Abraitis
422e0dd256 tests: Apply black formatting from what frrbot suggested to be happy
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-28 12:51:22 +03:00
Donatas Abraitis
2ea6d2cca0 tests: Add missing check_router_status for bgp_tcp_mss test
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-28 12:51:22 +03:00
Donatas Abraitis
1a1c2a9f84 tests: Apply black formatting for all tests/topotests
It's just annoying when the linter tells to apply the formatting for the code
you didn't touch.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-27 23:19:32 +03:00
Donatas Abraitis
086df4bfaa tests: Drop duplicate pytestmark per file
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-27 23:18:15 +03:00
Donatas Abraitis
ede5f5092a tests: Drop debug statements from bgp_gr_restart_retain_routes
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-27 23:09:40 +03:00
Donatas Abraitis
e41012bebe tests: Check if Graceful Restart per-neighbor works as expected
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-27 23:06:19 +03:00
Donatas Abraitis
1c1de46878 tests: Use a single frr.conf for bgp_gr_restart_retain_routes
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-27 23:00:36 +03:00
Russ White
f19817f71d
Merge pull request #15723 from opensourcerouting/feature/extended_link_bw_refactored_v1
bgpd: Implement extended link-bandwidth
2024-04-26 14:41:05 -04:00
Louis Scalbert
efbf234510 topotests: add lower_up to expected interface flags
Add lower_up to expected interface flags.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-04-26 17:11:53 +02:00
Donald Sharp
f8e9f7fb0e
Merge pull request #15744 from pguibert6WIND/snmp_oid_line73_error
topotests: lib, fix filter out "At line 73 in /usr/share/snmp/mibs/ie…
2024-04-26 07:38:42 -04:00
Donatas Abraitis
0d0350aef0
Merge pull request #15783 from LabNConsulting/aceelindem/ospf-neighbor-filter
ospfd: Add prefix-list filtering of OSPF neighbors on OSPF interface
2024-04-24 22:30:11 +03:00
Donald Sharp
99ae329047
Merge pull request #15801 from LabNConsulting/chopps/new-munet
Improve coverage functionality
2024-04-23 12:58:48 -04:00
Philippe Guibert
5e7bb79f11 topotests: lib, fix filter out "At line 73 in /usr/share/snmp/mibs/ietf/SNMPv2-PDU" message
When testing SNMP service on FRR, the following error message may
appear on some distros.

> # snmpwalk -v2c -c public .1.3.6 1.1.1.1 <OID>
> Bad operator (INTEGER): At line 73 in /usr/share/snmp/mibs/ietf/SNMPv2-PDU
> [..then result ..]
>

The error message is due to the /etc/snmp/snmp.conf file. By default, this
file is used by both snmp server and client side. The net-snmp MIB parsing
routing loads MIBS, to bind oids with the naming scheme used by the MIBS.

> # cat /etc/frr/snmp.conf
> [snmp]
> mibs +ALL
>

A potential fix would consist in modifying the SNMPv2-PDU.mib file: the
problem is known on ubuntu distros, as the snmp-mibs-downloader package
has not updated the SNMPv2-PDU.mib file.

The choice is done to not modify the original distro where the test is run
on. Fix the topotests by ignoring the 'SNMPv2-PDU line 73" error message, and
keep the other error messages that may happen, for instance, when an
unknown oid name value is requested.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2024-04-23 14:24:51 +02:00
Louis Scalbert
f1b8364ab3 topotests: update bgp_vrf_leaking_5549_routes
Before the patch-set, ce1 was sending an IPv6 Link-local as global and
link-local nexthop to pe1.

Set bgp_vrf_leaking_5549_routes in accordance with the previous fixes.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-04-23 11:28:36 +02:00
Louis Scalbert
04c220bedb tests: ipv6 global removal in bgp_nexthop_mp_ipv4_6
Test ipv6 global removal in bgp_nexthop_mp_ipv4_6

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-04-23 11:28:36 +02:00
Louis Scalbert
62913cb15d topotests: add bgp_nexthop_mp_ipv4_6 test
Add bgp_nexthop_mp_ipv4_6 topotest to test to nexhop value with
MP-BGP IPv4 and IPv6 on IPv4 peering. The test has route-reflector,
route-server, iBGP and eBGP peers.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-04-23 11:28:36 +02:00
Donatas Abraitis
593a806510 tests: Check if extended link bandwidth can be more than 25gbps
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-22 17:50:08 +03:00
Donatas Abraitis
055cc0488b tests: Check if extended link bandwidth is considered into also
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-22 17:50:08 +03:00
Igor Ryzhov
3c8336c845 tests: add topotest for mgmtd rpc processing
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-04-22 16:36:23 +03:00
Igor Ryzhov
03883ee431 tests: add test for NB RPC callback
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-04-22 16:36:22 +03:00
Christian Hopps
7f7bcb1ffa
Merge pull request #15468 from idryzhov/mgmt-native-edit
mgmtd: add support for native 'edit' operation
2024-04-22 05:42:44 -04:00
Donald Sharp
7ba58e97ff
Merge pull request #15738 from idryzhov/bfd-cbit
bfdd: fix BFD_GETCBIT
2024-04-21 10:59:11 -04:00
Christian Hopps
36b7c68111 tests: improve coverage no need to modify source/build dir
- by using symlinks in the rundir (/tmp) into the source/build directory
we avoid needing to copy the *.gcda stat files into the source/build dir.

Signed-off-by: Christian Hopps <chopps@labn.net>
2024-04-20 04:31:03 -04:00
Christian Hopps
44f5916d70 tests: update munet to 0.14.0 release
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-04-20 03:29:03 -04:00
Renato Westphal
790c207fa9 tests: fix BFD C-bit topotest
When a BFD down notification is received and the C-bit is set in both
directions, any ongoing graceful restart should be aborted and stale
routes removed from the RIB.

This commit updates the `bfd_bgp_cbit_topo3` topotest accordingly to
fix the expected outcomes in the `test_bfd_loss_intermediate` test.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2024-04-18 18:28:36 -03:00
Acee Lindem
0ccad8a2b0 ospfd: Add prefix-list filtering of OSPF neighbors on OSPF interface
This commit adds the capabiity to filter OSPF neighbors using a
prefix-list with rules matching the neighbor's IP source address.
Configuration, filtering, immediate neighbor pruning, topo-tests,
and documentation are included. The command is:

     ip ospf neighbor-filter <prefix-list> [A.B.C.D]

Signed-off-by: Acee Lindem <acee@lindem.com>
2024-04-18 15:32:58 +00:00
Russ White
1c043440ea
Merge pull request #15572 from donaldsharp/best_path_stuff_sigh
bgp_process work
2024-04-16 07:52:09 -04:00
Donatas Abraitis
6b90e6140f tests: Check if maximum-prefix works for EVPN stuff also
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-13 23:10:27 +03:00
Donald Sharp
ea570f2aa6 tests: Cleanup generate_support_bundle() to not fail
The Support bundle generation was/is failing in both
our upstream ci and locally.  This cleans up the failures
that I am seeing such that tests now continue to run
instead of aborting the test run.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-04-10 09:28:17 -04:00
Donald Sharp
86aac4e36d
Merge pull request #15711 from louis-6wind/fix_test_table_version
topotests: do not check table version
2024-04-09 18:34:13 -04:00
Russ White
7f6cda36b1
Merge pull request #15660 from LabNConsulting/acee/ospf-p2mp-non-broadcast
ospfd: Implement non-broadcast support for point-to-multipoint networks
2024-04-09 11:56:34 -04:00
Louis Scalbert
29f47f3deb topotests: do not check table version
BGP table version is variable. Don't check it.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-04-09 14:51:35 +02:00
Louis Scalbert
a6ea590c6b tests: add ascii diagram to test_bgp_linkbw_ip
Add ASCII diagram to test_bgp_linkbw_ip

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-04-08 16:19:55 +02:00
Donatas Abraitis
925d78053b
Merge pull request #15682 from mjstapp/fix_topo_bfd_convergence
tests: increase topotest wait time for bfd convergence
2024-04-05 13:37:10 +03:00
Mark Stapp
c4188c74be tests: increase topotest wait time for bfd convergence
Increase the wait time in a bfd topotest; failing frequently
in the CI runs.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2024-04-04 12:57:07 -04:00
Philippe Guibert
c2e0060495 topotests: fix ignore routes with linkdown
In topotest, a given interface has only the ignore routes bit turned
on for IPv6 only, whereas topotest is expected to turn it on for all
address families.

> # show interface
> Interface r2-r3-eth2 is up, line protocol is up
> [..]
>  flags: <UP,BROADCAST,RUNNING,MULTICAST>
>  Ignore all v6 routes with linkdown
>  Type: Ethernet
>  [..]

This is because the only the 'default' ipv6 ignore sysctl is set to
1. Set also the /proc/sys/net/conf/<family>/default/ignore_routes_with_linkdown
flag, to have same behaviour for ipv4 and ipv6.

Fixes: 4958158787 ("tests: micronet: update infra")

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2024-04-03 14:35:51 +02:00
Acee Lindem
58e623714b ospfd: Implement non-broadcast support for point-to-multipoint networks
This extends non-broadcast support to point-to-multipoint networks.
Neighbors will be explicitly configured and polled in lieu of multicast
dicovery. Toptotests and documentation updates are included.

Additionally, the ospf neighbor commands have been greatly simplified taking
advantage of DEFPY() capabilities.

The AllOSPFRouters (224.0.0.5) is still joined for non-broadcast networks
since it is joined for NBMA networks. It seems this could be removed but
it should done be in a separate commit.

Signed-off-by: Acee Lindem <acee@lindem.com>
2024-04-02 21:34:29 +00:00
Donatas Abraitis
6d237c2fa5
Merge pull request #15639 from chiragshah6/fdev2
tests: add topotest for PG remote-as add del
2024-04-02 00:00:55 +03:00
Chirag Shah
ede6e911b0 tests: add topotest for PG remote-as add del
This topotest covers the PR-15574's coverage
where a change is not to delete neighbors when
the associated peer-group's remote-as is removed.

Ticket: #3828243
Testing:

test_bgp_peer-group.py::test_bgp_peer_group

---------------------------------------------------------------------------- live log call -----------------------------------------------------------------------------
2024-03-29 18:12:22,608 INFO: r1: checking if daemons are running
2024-03-29 18:12:22,802 INFO: r2: checking if daemons are running
2024-03-29 18:12:22,911 INFO: r3: checking if daemons are running
2024-03-29 18:12:23,015 INFO: topo: Remove bgp peer-group PG1 remote-as neighbor should be retained
2024-03-29 18:12:25,605 INFO: topo: Re-add bgp peer-group PG1 remote-as neighbor should be established

----------------------------------------------------------- generated xml file: /tmp/topotests/topotests.xml -----------------------------------------------------------
========================================================================== 2 passed in 17.63s ==========================================================================

Signed-off-by: Chirag Shah <chirag@nvidia.com>
2024-04-01 10:29:46 -07:00
Donald Sharp
6c8bfaa66e bgpd: Add BGP_PATH_UNSORTED for future commits
Add a new flag BGP_PATH_UNSORTED to keep track
of sorted -vs- unsorted path_info's.  Add some
ability to the system to understand when that
flag is set.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-04-01 10:24:14 -04:00
Donald Sharp
829a2e9bc4 tests: teste_ospf_rte_calc.py uses bgp add pytest mark
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-04-01 10:24:14 -04:00
Donald Sharp
4d4c3966c9 tests: Explicitly call out bgp timers for bgp_evpn_mh test
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-04-01 10:24:14 -04:00
Philippe Guibert
707bd3598c topotests: l3vpn_to_bgp_direct, complete ambiguous command 'show bgp next'
Complete the 'show bgp next' command expected when the l3vpn_to_bgp_direct
is executed.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2024-03-27 21:33:01 +01:00
Igor Ryzhov
1046bef240 tests: add topotest for mgmt native edit command
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-03-26 17:00:15 +02:00
Russ White
67aaa4b076
Merge pull request #15525 from venko-networks/ccs/bugfix/show-ip-bgp
bgpd: add missing white-space between route short status and network …
2024-03-26 10:04:43 -04:00
Christian Hopps
043a4183c2 grpc: fix grpc for various failures
lib: don't define a `fallthrough` in c++ to avoid conflict with protobuf c++

check: add link libs required by some versions of grpc++ or it's dependent
linked libs

tests: don't fail the test due to known at exit memleaks
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-03-21 15:57:01 +00:00
Russ White
e2d63567ec
Merge pull request #15565 from LabNConsulting/chopps/code-cover
tests: enable code coverage reporting with topotests
2024-03-19 17:19:45 -04:00
Cassiano Campes
6859414ebf bgpd: Adjusted topotests to reflect the new "show ip bgp" output
Topotests changed to consider the extra wite space added in "show ip
bgp" output.

Signed-off-by: Cassiano Campes   <cassiano.campes@venkonetworks.com>
2024-03-19 16:36:14 -03:00
Cassiano Campes
c490a8f1e6 bgpd: Updated topotests with new changes
Updated the topotests to contemplate the new `show ip bgp` outputs.

Signed-off-by: Cassiano Campes   <cassiano.campes@venkonetworks.com>
2024-03-19 16:36:14 -03:00
Russ White
80c8e10f5d
Merge pull request #15533 from opensourcerouting/fix/add_paths_limit_capability_test
bgpd: Add tests for Paths-Limit capability
2024-03-19 10:18:44 -04:00
Christian Hopps
2329a95872 tests: required formatting change
This code wasn't touched by the actual change; however, the formatting fix is
required.

Signed-off-by: Christian Hopps <chopps@labn.net>
2024-03-17 04:57:42 -04:00
Christian Hopps
71368f9e06 tests: enable code coverage reporting with topotests
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-03-17 04:53:13 -04:00
Francois Dumontet
260bdafd8a tests: bgp_sender_as_path_loop_detection add peer-group test
add a tests of setting as-path-loop-detection through peer-group

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2024-03-15 11:22:57 +01:00
Donatas Abraitis
6ff16b3439 tests: Check if Paths-Limit capability is working dynamically
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-03-13 16:50:06 +02:00
Donald Sharp
c514e84979
Merge pull request #15516 from opensourcerouting/freebsd-printf-sync-20240310
lib/printf: pick up ISO C23 / N2680 from FreeBSD
2024-03-11 10:32:32 -04:00
Donatas Abraitis
fd613d1b0c tests: Check if capabilities can be disabled via dynamic capabilities
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-03-10 18:53:39 +02:00
David Lamparter
91fdb7366c tests: exercise %w/%wf printfrr modifiers
Added by ISO C23 / N2680, implementation imported from FreeBSD.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2024-03-10 15:29:17 +01:00
Donald Sharp
7e058c201a
Merge pull request #15469 from LabNConsulting/chopps/keychain-yang
add ietf-key-chain YANG module support
2024-03-08 08:15:02 -05:00
Donatas Abraitis
7338aa601c
Merge pull request #15492 from donaldsharp/no_vrfs
tests: test invokes a script which does not exist
2024-03-06 08:42:37 +02:00
Donald Sharp
3a78d75cd5 tests: test invokes a script which does not exist
Apparently test_bgp_peer_type_multipath_relax.py does
no really need to run a `setup_vrfs` script.  Looking
at the other configuration for this test there are
no vrf's in the frr configuration.  So let's remove it

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-03-05 15:55:07 -05:00
Donatas Abraitis
ffab0d7fbc
Merge pull request #15222 from chiragshah6/fdev2
bgpd:aggr summary-only remove suppressed from evpn
2024-03-05 22:36:30 +02:00
Russ White
ac34badf71
Merge pull request #15397 from idryzhov/zebra-oper
zebra: oper data additions
2024-03-05 11:41:35 -05:00
Chirag Shah
f345460b7e tests:add topotest for EVPN aggregate prefix route
Toptotest covers to aggregate EVPN prefix routes.

Testing:

tests/topotests/bgp_evpn_vxlan_svd_topo1$ sudo -E python3 -m pytest -s -vv --cli-on-error
PASSED
test_bgp_evpn_vxlan_svd.py::test_pe_advertise_aggr_evpn_route
--------------------- live log call -------------------------------
2024-03-04 19:59:45,340 INFO: P1: checking if daemons are running
2024-03-04 19:59:45,444 INFO: PE1: checking if daemons are running
2024-03-04 19:59:45,578 INFO: PE2: checking if daemons are running
2024-03-04 19:59:45,680 INFO: host1: checking if daemons are running
2024-03-04 19:59:45,798 INFO: host2: checking if daemons are running
2024-03-04 19:59:45,896 INFO: topo: Checking BGP EVPN route contains non-aggregate prefixes
2024-03-04 19:59:45,992 INFO: topo: Configure BGP aggregate-address summary-only under ipv4-unicast
2024-03-04 19:59:46,120 INFO: topo: Checking BGP EVPN route contains aggregated prefix
PASSED

------- generated xml file: /tmp/topotests/topotests.xml -----
======= 10 passed, 1 skipped in 47.95s =====

Signed-off-by: Chirag Shah <chirag@nvidia.com>
2024-03-05 07:03:39 -08:00
Christian Hopps
f47abbe1cb tests: add test for keychain send-accept times
Also uses oper state `active` node to test.

Signed-off-by: Christian Hopps <chopps@labn.net>
2024-03-04 20:00:15 -05:00
Donald Sharp
c12f88cf66 tests: Add a pytest marker for the fpm
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-03-04 11:06:35 -05:00
Donald Sharp
5ca133e070 tests: Add a very simple test for the dplane_fpm_nl module
Ensure that the fpm module connects to the specified listener
and then ensure that 10k routes from sharpd are installed
into the system and then are removed.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-03-04 11:06:35 -05:00
Donald Sharp
841d50e82f tests: Add ability to run a fpm listener
Add the ability to run a fpm listener to the testing
system.  This is nothing more just allowing the test
system to bring it up.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-03-04 11:06:35 -05:00
Louis Scalbert
9208e16e25 topotests: apply black on bmp collector
Apply black on bmp collector

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-02-29 16:55:02 +01:00
Louis Scalbert
a5da98ae1a topotests: bgp_bmp, test presence of labels
Test the presence of labels in BMP

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-02-29 16:55:02 +01:00
Louis Scalbert
0c7beb31d4 topotests: bgp_bmp, log bmp into tgen logdir
Log BMP into tgen logdir to facilitate the debug.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-02-29 16:55:02 +01:00
Louis Scalbert
55586065c8 topotests: bgp_bmp, add vpn tests
Test vpn prefixes sending to BMP

Signed-off-by: Farid Mihoub <farid.mihoub@6wind.com>
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-02-29 16:55:02 +01:00
Louis Scalbert
8d3546f669 topotests: bgp_bmp, use test ip range
Use standard test ip range in bgp_bmp topotest

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-02-29 16:55:02 +01:00
Donatas Abraitis
c357942069
Merge pull request #14775 from adrianomarto/test_ospfd_single_switch2
tests: multiple OSPF routers connected to a single switch
2024-02-29 10:36:54 +02:00
Donatas Abraitis
df98e88368
Merge pull request #15368 from louis-6wind/fix-6pe
bgpd: fix 6vpe nexthop
2024-02-28 11:34:43 +02:00
Russ White
c4f9b874b7
Merge pull request #14810 from dmytroshytyi-6WIND/srv6_bgp_sid_reachability
SRv6 BGP SID reachability
2024-02-27 10:32:14 -05:00
Russ White
879ca714ed
Merge pull request #15273 from opensourcerouting/feature/paths_limit_capability
bgpd: Implement Paths-Limit capability
2024-02-27 10:24:05 -05:00
Francois Dumontet
324fa21015 tests: extend tests for aspath exclude
adding a tests about:
"no bgp as-path access-list" command.

the folloxing "clear bgp *" command leads to the
crash exhibited above.

a sleep had been added to capture the crash befor the end of scenario.

50	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
[Current thread is 1 (Thread 0x7f5f05cbb9c0 (LWP 1371086))]
(gdb) bt
    context=0x7ffcf2c216c0) at lib/sigevent.c:248
    acl_list=0x55c976ec03c0) at bgpd/bgp_aspath.c:1688
    dummy=0x7ffcf2c22340, object=0x7ffcf2c21e70) at bgpd/bgp_routemap.c:2401
    match_object=0x7ffcf2c21e70, set_object=0x7ffcf2c21e70, pref=0x0)
    at lib/routemap.c:2687
    attr=0x7ffcf2c220b0, afi=AFI_IP, safi=SAFI_UNICAST, rmap_name=0x0, label=0x0,
    num_labels=0, dest=0x55c976ebeaf0) at bgpd/bgp_route.c:1807
    addpath_id=0, attr=0x7ffcf2c22450, afi=AFI_IP, safi=SAFI_UNICAST, type=10,
    sub_type=0, prd=0x0, label=0x0, num_labels=0, soft_reconfig=0, evpn=0x0)
    at bgpd/bgp_route.c:4424
    packet=0x7ffcf2c22410) at bgpd/bgp_route.c:6266
    packet=0x7ffcf2c22410, mp_withdraw=false) at bgpd/bgp_packet.c:341
    peer=0x55c976e89ed0, size=43) at bgpd/bgp_packet.c:2414
    at bgpd/bgp_packet.c:3899

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2024-02-26 14:58:54 +01:00
Philippe Guibert
4d7df91752 topotests: add an ebgp 6vpe test
This test uses the connected ipv4 mapped ipv6 prefix
to resolve the received BGP routes.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Signed-off-by: François Dumontet <francois.dumontet@6wind.com>
2024-02-26 10:16:58 +01:00
Christian Hopps
e5acf6797c tests: add test for required choice/np-container callbacks
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-02-25 13:48:57 +02:00
Christian Hopps
a37f5f9153 tests: add test for northbound ordering fix
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-02-25 13:48:57 +02:00
Donald Sharp
eae228c52d
Merge pull request #15405 from LabNConsulting/chopps/fix-fe-client
tests: use more standard name for python3
2024-02-23 09:47:46 -05:00
Donatas Abraitis
3b8c98916a
Merge pull request #15406 from donaldsharp/evpn_mh_fix
tests: bgp_evpn_mh timing issue fix
2024-02-23 10:04:50 +02:00
Donatas Abraitis
5833261e77
Merge pull request #15383 from donaldsharp/cpp_evpn_data
zebra: Remove deprecated items
2024-02-23 09:49:15 +02:00
Donald Sharp
e7f2e2c78c tests: bgp_evpn_mh timing issue fix
This test is failing locally for me 100% of the time
since zebra was converted to mgmtd usage.  The failed
command is:

torm11# show evpn mac vni 1000 mac 00:00:00:00:00:11 json
{
  "00:00:00:00:00:11":{
    "type":"auto",
    "uptime":"00:02:01",
    "localSequence":0,
    "remoteSequence":0,
    "detectionCount":0,
    "isDuplicate":false,
    "syncNeighCount":0,
    "neighbors":{
      "active":[
      ],
      "inactive":[
        "45.0.0.11"
      ]
    }
  }
}

The test is expecting an esi as a key in the output.  Re-arranging
the startup of the tor's before the hosts fixes the issue.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-02-21 18:12:00 -05:00
Christian Hopps
06be54630c tests: use more standard name for python3
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-02-21 08:05:31 -05:00
Igor Ryzhov
af8c6b5b56 zebra: implement zif-type oper state leaf
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-02-20 18:06:49 +02:00
Russ White
8dbfc57ec6
Merge pull request #15377 from opensourcerouting/fix/bgpd_evpn_route_map
lib: Do not convert EVPN prefixes into IPv4/IPv6 if not needed
2024-02-20 10:17:46 -05:00
Russ White
ab40199f00
Merge pull request #15351 from louis-6wind/fix-leak-vrf-interface
bgpd: update route leak after vrf interface changes
2024-02-20 10:14:20 -05:00
Donald Sharp
c38ef653f3 zebra: Remove deprecated items
Both zebra_evpn.c and zebra_vxlan.c have items that
were deprecated a year ago.  Let's remove them.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-02-20 07:21:08 -05:00
Igor Ryzhov
5332e447d9
Merge pull request #15381 from LabNConsulting/chopps/nb-notif
lib: mgmtd: add xpath arg to YANG notification message
2024-02-19 16:52:47 +02:00
Christian Hopps
4a93d171c2 lib: mgmtd: add xpath arg to notification message
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-02-18 18:53:37 -05:00
Igor Ryzhov
829443fd83 tests: fix ospf_suppress_fa timing issue
Set static router-id for OSPF, because otherwise it depends on timing of
router-id updates received from zebra and may differ between test runs.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-02-15 15:38:26 +02:00
Donatas Abraitis
049a2c0c0a tests: Check if multiple route-map match clauses works for EVPN prefixes
Test prefix-list matching and some other EVPN stuff.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-02-15 12:19:43 +02:00
Louis Scalbert
1262ee66ad tests: check route leak update after vrf creation and deletion
Ensure that a locally leaked route is updated after a VRF (dis)appears.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-02-14 16:39:51 +01:00
Louis Scalbert
5709e89f6c tests: check route leak after changing vrf state
Check that local route leaks are set to "inactive" when the VRF
interface is shutdown and, conversely, that they are set to "active"
when the VRF interface is unshut.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-02-14 16:39:51 +01:00
Louis Scalbert
c102adde30 tests: use check_ping in bgp_vrf_route_leak_basic
Use check_ping in bgp_vrf_route_leak_basic

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-02-14 16:39:10 +01:00
Louis Scalbert
71e74df14e tests: add source_addr in check_ping
Allow specifying a source_addr in check_ping library function.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-02-14 16:38:58 +01:00
Louis Scalbert
8b5f6ac982 tests: fix duplicates in bgp_vrf_route_leak_basic
Test functions were duplicated by mistakes. They were identical.

Fixes: 8af61c8a34 ("topotests: test leak from the default vrf")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-02-14 16:21:35 +01:00
Donald Sharp
9fd7bf4cbb
Merge pull request #15234 from opensourcerouting/snmp-topotest-fixes
topotests: fix snmptrap log OID parsing
2024-02-13 10:59:30 -05:00
Donatas Abraitis
cd7851d99e tests: Check if Paths-Limit capability works
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-02-13 17:06:04 +02:00
Russ White
17a0a625f0
Merge pull request #15284 from opensourcerouting/feature/bgpd_announce_rpki_state_knob
bgpd: Add neighbor X send-community extended rpki command
2024-02-13 09:35:10 -05:00
Christian Hopps
7b94a923ae
Merge pull request #15042 from Orange-OpenSource/ospf-te
ospfd: Add Opaque LSA decoder for json output
2024-02-13 05:37:29 -05:00
Donatas Abraitis
26faf341ef
Merge pull request #15352 from louis-6wind/fix-leak-recursive
bgpd: fix route recursion on leaked routes
2024-02-12 21:42:03 +02:00
Olivier Dugeon
b46a1fe826 tests: adapt ospfapiclient test to new json output
Following new json decoder for Opaque LSA, this patch adapts the ospfapiclient
test to the new json output.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2024-02-12 17:52:00 +01:00
Christian Hopps
8d6e7a350f tests: fix grpc test
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-02-12 07:48:50 -05:00
Igor Ryzhov
d94f80fbc4 lib, mgmtd: fix processing of yang notifications
Current code assumes that notification is always sent in stripped JSON
format and therefore notification xpath starts at the third symbol of
notification data. Assuming JSON is more or less fine, because this
representation is internal to FRR, but the assumption about the xpath is
wrong, because it won't work for not top-level notifications. YANG
allows to define notification as a child for some data node deep into
the tree and in this case notification data contains not only the
notification node itself, but also all its parents.

To fix the issue, parse the notification data and get its xpath from its
schema node.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-02-10 01:00:24 +02:00
Louis Scalbert
1a348ec050 tests: check route recursion on leaked routes
Check that leaks of a route with a recursive nexthop is possible.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-02-09 18:25:01 +01:00
Donald Sharp
c70af155d2
Merge pull request #15285 from idryzhov/staticd-nexthop-refcounter
staticd: fix nexthop tracking memory leak and add a topotest for VRFs
2024-02-08 15:53:30 -05:00
Donald Sharp
afa07a7f3a
Merge pull request #15255 from louis-6wind/bgp-leak-interface
bgpd: fix interface of routes leaked from another VRF
2024-02-08 11:18:58 -05:00
Donatas Abraitis
f6463dab85 tests: Test if RPKI extended community can be disabled between peers
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-02-07 22:35:21 +02:00
David Schweizer
1bd96365e4
tests: Reduce wait intervals in test_bgp_snmp_bgp4v2mib
Remove sleep time in test_bgp_snmp_bgp4v2mib before run_and_expect and
reduce wait intervals for faster test convergence.

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
Signed-off-by: David Schweizer <dschweizer@opensourcerouting.org>
2024-02-07 13:56:10 +01:00
David Schweizer
961667e34f
topotests: fix snmptrap log OID parsing
Replace OID string parsing of snmptrap log files based on odd/even line
numbers with regex string search to prevent test failures in cases where
log entries don't match assumed order.

Signed-off-by: David Schweizer <dschweizer@opensourcerouting.org>
2024-02-07 13:56:09 +01:00
Igor Ryzhov
763ce7bb37 tests: add topotest for static routes in VRF
Test how staticd handles VRF creation/deletion.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-02-06 14:15:37 +02:00
Donatas Abraitis
8629700bc8
Merge pull request #15192 from fdumontet6WIND/capa_nego
bgpd: add [no]neighbor capability fqdn
2024-02-03 12:19:53 +02:00
Francois Dumontet
220c0635a8 tests: improve topotest bgp_dont_capability_negotiate
add some steps for testing of add [no]neighbor capability fqdn
command support.

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2024-02-02 11:31:47 +01:00
Francois Dumontet
e146ea53ef bgpd: add [no]neighbor capability fqdn command
cisco routers are not dealing fairly whith unsupported capabilities.
When a cisco router receive an unsupported capabilities it reset the
negociation without notifying the unmatching capability as described in
RFC2842.
Cisco suggest the use of
neighbor x.x.x.x capability fqdn
to avoid the use of fqdn in open message.

this new command is to remove the use of fqdn capability in the
open message with the peer "x.x.x.x".

Link: https://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/116189-problemsolution-technology-00.pdf

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2024-02-02 11:31:47 +01:00
Igor Ryzhov
cb781f6097 staticd: fix NB dependency hack
Currently, staticd configuration is tightly coupled with VRF existence.
Because of that, it has to use a hack in NB infrastructure to create a
VRF configuration when at least one static route is configured for this
VRF. This hack is incompatible with mgmtd, because mgmtd doesn't execute
configuration callbacks. Because of that, the configuration may become
out of sync between mgmtd and staticd. There are two main cases:

1. Create static route in a VRF. The VRF data node will be created
   automatically in staticd by the NB hack, but not in mgmtd.
2. Delete VRF which has some static routes configured. The static route
   configuration will be deleted from staticd by the NB hack, but not
   from mgmtd.

To fix the problem, decouple configuration of static routes from VRF
configuration. Now it is possible to configure static routes even if the
VRF doesn't exist yet. Once the VRF is created, staticd applies all the
preconfigured routes.

This change also fixes the problem with static routes being preserved in
the system when staticd "control-plane-protocol" container is deleted
but the VRF is still configured.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-02-02 00:57:59 +02:00
Louis Scalbert
8af61c8a34 topotests: test leak from the default vrf
Add tests in bgp_vrf_route_leak_basic topotest to check that route
leaking from the default VRF results in an operational route.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-02-01 11:46:56 +01:00
Christian Hopps
7521918454 tests: add mgmtd backend notification test
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-02-01 05:37:59 -05:00
Louis Scalbert
eeb9f76588 topotests: test leak from unknown vrf
Add a test in bgp_vrf_route_leak_basic topotest to check that route
leaking from a non existing VRF results in an inactive route.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-02-01 11:12:43 +01:00
Louis Scalbert
b459f7937e topotests: update bgp_vrf_route_leak_basic
Update bgp_vrf_route_leak_basic to set up the VRF interfaces. Otherwise
the routes to the VRF interface are inactives.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-02-01 11:11:41 +01:00
Carmine Scarpitta
0fb22f3e9b topotests: update interface in SRv6 topotest
Previously, routes leaked from one VRF to another VRF were associated
with the original nexthop interface.

Due to this change, the `bgp_srv6l3vpn_route_leak` topotest always fails
because it still expects the nexthop interface.

This commit fixes the expected interface name in the
`bgp_srv6l3vpn_route_leak` topotest.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-02-01 10:21:43 +01:00
Louis Scalbert
60e73903d5 topotests: update ospf_multi_vrf_bgp_route_leak
Leaked connected routes have now the following nexthop interfaces:
- lo for routes imported from the default VRF
- or the VRF interface for routes imported from the other VRFs.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-02-01 10:21:43 +01:00
Igor Ryzhov
3afea9ccda tests: add tests for mgmt get-data with-defaults parameter
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-01-31 02:20:13 +02:00
Igor Ryzhov
642078de8e
Merge pull request #15254 from LabNConsulting/chopps/notifications
Add YANG notifications
2024-01-31 02:18:20 +02:00
Christian Hopps
cb3242f697 tests: add YANG notification test
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-01-30 14:54:47 -05:00
Dmytro Shytyi
51014631f0 tests: an srv6 sid reachability use-case
Verify that SRv6 SID becomes unreachable and
further the IPv4 route in L3VPN becomes invalid.

Signed-off-by: Dmytro Shytyi <dmytro.shytyi@6wind.com>
2024-01-30 16:15:17 +01:00
Donatas Abraitis
9aed5777b7 tests: Check if attributes are reapplied for aggregate routes with route-maps
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-01-30 15:54:04 +02:00
Donatas Abraitis
cd869ebcf2
Merge pull request #15238 from louis-6wind/bgp-leak-network
bgpd: fix VRF leaking with 'network import-check'
2024-01-30 08:21:05 +02:00
Louis Scalbert
fb777555d3 topotests: vpnv4 route leaking with import-check
Test vpnv4 route leaking with import-check

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-01-29 10:47:00 +01:00
Igor Ryzhov
3900813298 zebra: convert to mgmtd
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-01-28 23:28:40 +02:00
Igor Ryzhov
3625360d88 lib: add support for "features" when loading YANG modules
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-01-28 23:28:40 +02:00
Igor Ryzhov
d9a798e0ad tests: fix test_bgp_recursive_route_ebgp_multi_hop
We shouldn't pass "lo" as an interface to create_interface_in_kernel.
It always exists, and this function flushes all configured IP addresses
from it.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-01-28 23:28:39 +02:00
David Lamparter
a97d0c5875 lib: set up frr_libstatedir
This needs to be used for persistent state, which currently is misplaced
into `/var/run` / `/run` where it gets deleted across reboots.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2024-01-27 19:01:19 +01:00
David Lamparter
444bc5e237 build: update packaging & docs for dir changes
`--sysconfdir` and `--localstatedir` now align with general autoconf
practices.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2024-01-27 19:01:19 +01:00
Adriano Marto Reis
f3de123ac2 tests: multiple OSPF routers connected to a single switch
A large set of routers are connected to the same switch. Each router
shares a single network. All shared networks must be reachable from all
routers.

Signed-off-by: "Adriano Marto Reis" <adrianomarto@gmail.com>
2024-01-27 06:34:02 +10:00
Carmine Scarpitta
de8f61e704 tests: Rename test_zebra_seg6local_routes
The name of the `test_zebra_seg6local_routes` test is wrong. The goal
of this test is to verify seg6 routes (not seg6local routes).

Let's put the correct name.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2024-01-26 18:24:24 +01:00
Carmine Scarpitta
9adde7f318 tests: Rename test_srv6_locator.py
It was copied, but we forgot to rename it.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2024-01-26 18:23:50 +01:00
Louis Scalbert
4bbfade7d6 topotests: vpnv4 route leaking with no import-check
Test vpnv4 route leaking with no import-check

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-01-25 15:12:10 +01:00
Louis Scalbert
3cd1c34cb7 topotests: nhrp_topo, test absence of noarp flag
Test the absence the NOARP flag on rX-gre0 interfaces. It is present by
default.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-01-24 10:05:49 +01:00
Donatas Abraitis
3ab8fc13c1
Merge pull request #15165 from vjardin/ospf_ptmp_unumbered
tests: ospf point-to-multipoint and prefix-suppress
2024-01-23 17:22:28 +02:00
Donatas Abraitis
20ec72d7ca
Merge pull request #15052 from louis-6wind/rpki-vrf-92
bgpd: add VRF support to RPKI
2024-01-22 16:16:34 +02:00
Vincent Jardin
bab32ec8dc tests: ospf point-to-multipoint and suppress
Per the RFC6860, check OSPFv2 using point-to-multipoint
over Ethernet.
Enable the behavior of the RFC6860 using:
  ip ospf prefix-suppress A.B.C.D
See:
  https://www.rfc-editor.org/rfc/rfc6860#section-2.3.2.2

Note that nexthops are not required to assess the checks.

Signed-off-by: Vincent Jardin <vjardin@free.fr>
2024-01-21 21:06:50 +01:00
Donald Sharp
5d608ded25 tests: Fix test_evpn_mh.py to correctly call bridge program
Getting this error:

2024-01-17 19:05:20,688 WARNING: torm11: Router(torm11): proc failed: rc 255 pid 2436134
	args: /usr/bin/nsenter --mount=/proc/2435168/ns/mnt --net=/proc/2435168/ns/net --uts=/proc/2435168/ns/uts -F /bin/bash -c /sbin/bridge vlan add vid 1000 dev bridge
	stdout: RTNETLINK answers: Operation not supported
	stderr: *empty*

As I understand it the correct thing to do here is pass in:
bridge vlan add vid 1000 dev bridge self

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-01-18 10:01:31 -05:00
Louis Scalbert
2b30c4ae92 topotests: add vrf test to bgp_rpki_topo1
Add vrf test to bgp_rpki_topo1

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-01-18 13:23:42 +01:00
Donatas Abraitis
94178edac3
Merge pull request #15166 from LabNConsulting/chopps/fix-munet
tests: fix munet accessing missing attribute
2024-01-18 09:18:04 +02:00
Donald Sharp
5eb2ddaa10
Merge pull request #15162 from opensourcerouting/fix/aspath4_set_flag
bgpd: Set capability received flag only after sanity checks
2024-01-17 08:19:34 -05:00
Christian Hopps
a197107dbc
tests: fix munet accessing missing attribute
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-01-17 09:18:21 +00:00
Donatas Abraitis
90254e7bc2 tests: Adopt tests for AS4 handling
When received malformed AS4 capability, it should return -1 (notification send),
and the received flag SHOULD NOT be set.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-01-16 16:28:41 +02:00
Christian Hopps
48ed48b5f9
tests: import munet 0.13.12
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-01-15 22:43:06 +00:00
Christian Hopps
37f26046f4
tests: set environment variable munet 0.13.12 will use
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-01-15 22:25:41 +00:00
Christian Hopps
f2bb687426
Merge pull request #15154 from idryzhov/mgmt-get-data
mgmtd get-data request expansion
2024-01-15 07:03:34 -05:00
Donatas Abraitis
563c2cd95c
Merge pull request #15034 from louis-6wind/topotest-rpki
bgpd, topotests: add bgp_rpki_topo1 and RPKI fixes
2024-01-15 11:26:43 +02:00
Igor Ryzhov
2764344bcb tests: add tests for mgmt get-data exact node request
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-01-15 10:27:33 +02:00
Igor Ryzhov
05c6081099 tests: add tests for mgmt get-data with config
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-01-15 10:27:33 +02:00
Igor Ryzhov
b507ad54b4 mgmtd: add option to specify netns as the vrf backend
mgmtd has to know if netns is used as the vrf backend to correctly
process interface names in northbound.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-01-14 20:00:22 +02:00
Igor Ryzhov
883f134921
Merge pull request #15131 from LabNConsulting/chopps/oper-choice-case
Chopps/oper choice case
2024-01-12 00:20:45 +02:00
Donald Sharp
86cbd5831e
Merge pull request #15128 from opensourcerouting/fix/bgp_oad_ECOMMUNITY_ORIGIN_VALIDATION_STATE
bgpd: Recent EBGP-OAD improvements
2024-01-11 09:07:31 -05:00
Christian Hopps
32a4c4019e lib: implement missing YANG choice/case statements.
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-01-11 13:38:57 +00:00
Louis Scalbert
211249a3b7 topotests: bgp_rpki_topo1, failure on error packet
RPKI FRR module should not send any RPKI error packet during the tests.

Exit rtrd when receiving error packet. Skip tests with errors if rtrd
has stopped.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-01-11 14:13:46 +01:00
Louis Scalbert
1b3b483342 topotests: log bgp_rpki_topo1 pyrtr output
Log bgp_rpki_topo1 pyrtr output

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-01-11 14:13:46 +01:00
Louis Scalbert
751500acdb topotests: add bgp_rpki_topo1
Add bgp_rpki_topo1 topotest to validate the RPKI feature. Use a RTR RPKI
server from the above link with a black cleaning.

Link: https://raw.githubusercontent.com/tmshlvck/pyrtr/90df586375396aae08b07069187308b5b7b8823b/pyrtr/__init__.py
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-01-11 14:13:46 +01:00
Donatas Abraitis
67e8ef293f
Merge pull request #15098 from donaldsharp/lib_zebra_h_cleanup_2
Lib zebra h cleanup 2
2024-01-11 14:50:21 +02:00
Donatas Abraitis
1c491dfbe6 tests: Check if the route over eBGP is preferred when eBGP-OAD is used
If at least one of the candidate routes was received via EBGP, remove from
consideration all routes that were received via EBGP-OAD and IBGP.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-01-11 10:53:57 +02:00
Donatas Abraitis
4c875482a5
Merge pull request #15123 from LabNConsulting/chopps/fix-oper-state-memleak
lib: fix oper-state memleak
2024-01-10 12:16:37 +02:00
Christian Hopps
5519c0fbe6
lib: fix oper-state memleak
Fix memleak when a key-ed query was done for which the key didn't exist.

Signed-off-by: Christian Hopps <chopps@labn.net>
2024-01-09 21:52:41 +00:00
Donald Sharp
c6d94a7056 *: zebra.h should not have fcntl.h
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-01-09 12:50:40 -05:00
Donald Sharp
848dcf3d03 *: remove sys/stat.h from zebra.h
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-01-09 12:39:23 -05:00
Donald Sharp
22b439090c
Merge pull request #15103 from LabNConsulting/chopps/oper-filter
Implement full XPath 1.0 functionality
2024-01-09 12:31:36 -05:00
Donald Sharp
956b6153fe
Merge pull request #15106 from opensourcerouting/fix/rename_thread_cli
vtysh: Add `show event ...` commands
2024-01-08 13:51:36 -05:00
Donald Sharp
b1a39549df tests: Add mgmtd to the official pytest.mark list
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-01-08 07:58:14 -05:00
Christian Hopps
e85ff7a1f2 tests: test new XPath 1.0 predicate functionality
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-01-07 15:17:56 +00:00
Donatas Abraitis
1903b819fd tests: Rename show thread ... to show event ...
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-01-07 14:43:38 +02:00
Russ White
54c2d327d3
Merge pull request #12261 from cscarpitta/srv6-encap-src-addr
zebra: Add the support of the Source Addr param of the SRv6 Encapsulation
2024-01-02 10:37:34 -05:00
Christian Hopps
7e6595698b
lib: fix specific entry queries
- fix key leaf queries
- fix specific list entry with non-key leaf top element

Signed-off-by: Christian Hopps <chopps@labn.net>
2024-01-02 09:47:15 +00:00
Christian Hopps
f7258386db tests: add mgmt_oper topotest
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-12-28 18:37:18 +00:00
Christian Hopps
2bb115fd78 tests: client testing
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-12-28 18:17:24 +00:00
Christian Hopps
b8b5290105 lib: fixes required after rebasing
lib: fix checkpatch warnings
lib: darr: disable check
mgmtd: fix initialization

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-12-28 18:17:24 +00:00
Christian Hopps
f3d6edc7ee lib: darr: add new access and str functions
- darr_last(), and darr_strdup_cap().
- strcat, strdup, strlen, strnul equivs.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-12-28 17:52:57 +00:00
Christian Hopps
1bb6f21208 tests: add debugs and count in static_simple test
Also add option to use unified config.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-12-28 17:52:57 +00:00
Donald Sharp
1aa6c5ec23 tests: Stop some warning messages on test runs
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-12-21 10:24:23 -05:00
Donald Sharp
7477d8732f tests: Auto generate support bundle when a test fails
Tests can fail, let's be proactive and gather up a support
bundle when they fail.  It will help diagnose the problem
to some extent.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-12-21 10:22:22 -05:00
Xiao Liang
4538247c99 tests: Check for 0.0.0.0/1 in bgp_default_route
Ensure that 0.0.0.0/1 route can be advertised along with
default-originate.

Signed-off-by: Xiao Liang <shaw.leon@gmail.com>
2023-12-18 15:14:33 +08:00
Donatas Abraitis
a912f8fab7
Merge pull request #15015 from donaldsharp/test_ospf_suppress_fa_cleanup
tests: ospf_suppress_fa sleeps, convert to run_and_expect
2023-12-15 07:01:27 +02:00
Donald Sharp
db4bdf7a3a
Merge pull request #15023 from opensourcerouting/fix/drop_redundant_vrf_name
bgpd: Drop redundant VRF name printing for `show bgp summary`
2023-12-14 20:26:52 -05:00
Olivier Dugeon
55ad785753 tests: Update OSPF TE topotests
The OSPF TE topotest is using switches to interconnect router. During the test,
interfaces are shutdown on some routers to simulate link failure and check that
the TED is correctly updated. However, the switche between router avoid the
detection by the neighbor router that the interface is down i.e. the interface
line remains up as it is conneted to the switch and not to the router.

This patch update the tested topology by removing the switch and connect
directly the router excepted the inter AS link on R3. Interface are also
renamed accordingly.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2023-12-14 18:39:16 +01:00
Donald Sharp
48df84a044 tests: ospf_suppress_fa sleeps, convert to run_and_expect
The test_ospf_suppres_fa.py script is using straight
up sleeps before testing that the next step worked properly.
On a unloaded test system this will work 100% of the time
on a loaded test system this will have random failures.
Convert the test to use run_and_expect and give each
section of the test 30 seconds to get to the next state
appropriately instead of 10.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-12-14 10:42:45 -05:00
Carmine Scarpitta
e12987d1b3 tests: Add topotests for SRv6 encap source address
Add a new topotest `srv6_encap_src_addr` which verifies that the
`source-address` command works properly.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2023-12-14 14:58:35 +01:00
Donatas Abraitis
f97abbdc69 tests: Adopt topotests for show bgp summary non-JSON output
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-12-14 15:09:39 +02:00
Louis Scalbert
73ce39c443 topotests: tmp fix delay in bgp_peer_type_multipath_relax
Workaround an issue in bgp_peer_type_multipath_relax.

Link: https://github.com/FRRouting/frr/issues/14895
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-14 11:39:32 +01:00
Louis Scalbert
a54d18cb1c topotests: remove python2 support
Remove python2 support

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-14 10:57:30 +01:00
Louis Scalbert
5d1d44d18a topotests: convert bgp_ecmp_topo1 to python3
Convert bgp_ecmp_topo1 to python3

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-14 10:57:30 +01:00
Louis Scalbert
75a849fc0d topotests: convert exabgp scripts to python3
Convert exabgp scripts to python3

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-14 10:57:30 +01:00
Louis Scalbert
5383945609 topotests: cleanup bgp_peer_type_multipath_relax
Cleanup bgp_peer_type_multipath_relax to make it more readable.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-14 10:57:30 +01:00
Louis Scalbert
da8333d9bb topotests: convert bgp_peer_type_multipath_relax to exabgp 4
Convert bgp_peer_type_multipath_relax to exabgp 4

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-14 10:57:30 +01:00
Louis Scalbert
5533f18dc6 topotests: convert bgp_prefix_sid2 to exabgp 4
Convert bgp_prefix_sid2 to exabgp 4

Do not advertise prefixes to exabgp to avoid an issue where exabgp
resets the bgp session with the following notification:

> invalid ipv6 mpls-vpn next-hop length 48 expected 24 or 40

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-14 10:57:30 +01:00
Louis Scalbert
811ad11a7e topotests: convert bgp_prefix_sid to exabgp 4
Convert bgp_prefix_sid to exabgp 4

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-14 10:57:30 +01:00
Louis Scalbert
cfcad6fd99 topotests: convert bgp_vrf_netns to exabgp 4
Convert bgp_vrf_netns to exabgp 4

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-14 10:57:30 +01:00
Louis Scalbert
9598967a0d topotests: convert bgp_vrf_md5_peering to exabgp 4
Convert bgp_vrf_md5_peering to exabgp 4

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-14 10:57:30 +01:00
Louis Scalbert
d228f6a564 topotests: convert bgp_multiview_topo1 to exabgp 4
Convert bgp_multiview_topo1 to exabgp 4

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-14 10:57:30 +01:00
Louis Scalbert
bc149fee3d topotests: convert bgp_ecmp_topo1 to exabgp 4
Convert bgp_ecmp_topo1 to exabgp 4

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-14 10:57:29 +01:00
Louis Scalbert
c7e73e9087 topotests: create exabgp cli fifo
Create reate exabgp cli fifo even it is not used in topotests to avoid
this error message:

> 16:21:42 | 2290205 | cli             | could not find the named pipes (exabgp.in and exabgp.out) required for the cli
> 16:21:42 | 2290205 | cli             | we scanned the following folders (the number is your PID):
> 16:21:42 | 2290205 | cli control     |  - /run/exabgp/
> 16:21:42 | 2290205 | cli control     |  - /run/0/
> 16:21:42 | 2290205 | cli control     |  - /run/
> 16:21:42 | 2290205 | cli control     |  - /var/run/exabgp/
> 16:21:42 | 2290205 | cli control     |  - /var/run/0/
> 16:21:42 | 2290205 | cli control     |  - /var/run/
> 16:21:42 | 2290205 | cli control     |  - /usr/local/run/exabgp/
> 16:21:42 | 2290205 | cli control     |  - /usr/local/run/0/
> 16:21:42 | 2290205 | cli control     |  - /usr/local/run/
> 16:21:42 | 2290205 | cli control     |  - /usr/local/var/run/exabgp/
> 16:21:42 | 2290205 | cli control     |  - /usr/local/var/run/0/
> 16:21:42 | 2290205 | cli control     |  - /usr/local/var/run/
> 16:21:42 | 2290205 | cli control     | please make them in one of the folder with the following commands:
> 16:21:42 | 2290205 | cli control     | > mkfifo //run/exabgp.{in,out}
> 16:21:42 | 2290205 | cli control     | > chmod 600 //run/exabgp.{in,out}

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-14 10:57:29 +01:00
Louis Scalbert
a1b8727ccd topotests: log exabgp by default
Log exabgp by default in /tmp/topotests/<testname>/<peername>/exabgp.log
Level is INFO.

Note that in case the configuration syntax is invalid, exabgp does not
log into the file and exits at startup. You can check a configuration
syntax by running:

> exabgp <exabgp.cfg>

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-14 10:57:29 +01:00
Louis Scalbert
c040637e97 topotests: use exabgp 4.2.11 in ci
Use exabgp 4.2.11 in CI instead.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-14 10:57:29 +01:00
Louis Scalbert
9589fb300d topotests: look for python3 exabgp
Look for python3 exabgp instead of python2.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-14 10:57:29 +01:00
Louis Scalbert
92c1a102e4 topotests: require exabgp version >= 4.2.11
Require exabgp >= 4.2.11 to allow to newer version to run exabgp
topotests. Next commits will adapt the exabgp topotests when needed.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-14 10:57:29 +01:00
Donald Sharp
5be4ee9634 bgpd: Have show bgp vrf all ipv4 uni summ display vrf NAME
The vrf name was not being displayed in this output.
New output:

eva# show bgp vrf all ipv4 uni summ
BGP router identifier 0.0.0.0, local AS number 99 VRF RED vrf-id 14
BGP table version 0
RIB entries 0, using 0 bytes of memory
Peers 1, using 20 KiB of memory

Neighbor        V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt Desc
192.168.119.1   4          0         0         0        0    0    0    never       Active        0 N/A

Total number of neighbors 1
BGP router identifier 0.0.0.0, local AS number 99 VRF GREEN vrf-id 15
BGP table version 0
RIB entries 0, using 0 bytes of memory
Peers 1, using 20 KiB of memory

Neighbor        V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt Desc
192.168.119.1   4          0         0         0        0    0    0    never       Active        0 N/A

Total number of neighbors 1
BGP router identifier 192.168.122.1, local AS number 99 VRF default vrf-id 0
BGP table version 0
RIB entries 0, using 0 bytes of memory
Peers 1, using 20 KiB of memory

Neighbor        V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt Desc
192.168.119.1   4          0         0         0        0    0    0    never       Active        0 N/A

Total number of neighbors 1
BGP router identifier 0.0.0.0, local AS number 99 VRF GrEEn vrf-id -1
BGP table version 0
RIB entries 0, using 0 bytes of memory
Peers 1, using 20 KiB of memory

Neighbor        V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt Desc
192.168.119.1   4          0         0         0        0    0    0    never         Idle        0 N/A

Total number of neighbors 1
eva#

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-12-12 18:26:14 -05:00
Russ White
39ab18f1fd
Merge pull request #14966 from opensourcerouting/fix/bgpd_route-map_default_originate_peer-group
tests: Check if default-originate works combined with peer-groups + route-maps
2023-12-12 10:54:34 -05:00
Rafael Zalamena
9f1a7ba972 topotests: remove obsolete OSPFv3 area config
Don't use 'interface WORD area A.B.C.D' for enabling OSPFv3 areas on
interfaces and instead use the standardized 'ipv6 ospf6 area A.B.C.D'.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2023-12-08 10:51:32 -03:00
Donatas Abraitis
8009047698 tests: Check if default-originate works combined with peer-groups + route-maps
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-12-08 12:41:44 +02:00
Donatas Abraitis
6b79b560ab
Merge pull request #14889 from fdumontet6WIND/snmpv2
bgpd: add multiple paths support for draft ietf bgp4v2 in nlriTable
2023-12-08 06:55:52 +02:00
Donald Sharp
2df4683af0
Merge pull request #14936 from LabNConsulting/chopps/mgmt-dbg-improve
Chopps/mgmt dbg improve
2023-12-07 11:20:54 -05:00
Donatas Abraitis
24869b4a99
Merge pull request #14957 from donaldsharp/zebra_noprefixroute
Add ability to handle `noprefixroute` to zebra
2023-12-07 15:24:10 +02:00
Donald Sharp
0d5c5472c9 tests: Add a noprefixroute test
Add a simple test case to ensure that the noprefixroute
code stays working in the future.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-12-06 09:27:52 -05:00
Rafael Zalamena
cad5ee56be
Merge pull request #14922 from louis-6wind/fix-bfd-static-source
staticd: fix changing to source auto in bfd monitor
2023-12-06 09:51:32 -03:00
Chirag Shah
64745d413c pbrd: fix map seq installed flag in json
Ticket:#3638598
Testing:

Post fix:
tor-2# show pbr map json
[
  {
    "name":"global-vrf-PBR-map",
    "valid":true,
    "policies":[
      {
        "id":1,
        "sequenceNumber":10,
        "ruleNumber":309,
        "vrfUnchanged":false,
        "installed":true,   <<<< now display correct value
        "installedReason":"Valid",
        "vrfName":"sym_1",
        "matchSrc":"10.1.200.0\/24",
        "matchDst":"10.6.200.0\/24"
      }
    ]
  }

Signed-off-by: Chirag Shah <chirag@nvidia.com>
2023-12-05 11:30:50 -08:00
Christian Hopps
38b44aeeb2 tests: client testing
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-12-05 13:39:40 -05:00
Donald Sharp
83018e2178
Merge pull request #14934 from LabNConsulting/chopps/new-munet-0.13.10
tests: import munet 0.13.10
2023-12-05 13:24:39 -05:00
Donald Sharp
ad80021260
Merge pull request #14920 from LabNConsulting/chopps/rr-support
tests: add support for running things under `rr`.
2023-12-05 11:42:10 -05:00
Russ White
0a79e117d6
Merge pull request #12600 from donaldsharp/local_routes
*: Introduce Local Host Routes to FRR
2023-12-05 11:00:44 -05:00
Francois Dumontet
869047f150 tests: improve test bgp_snmp_bgp4v2mib for snmp multi path support
multi path support by snmp implies change in configuration and expected
tests results.

ipv6 trap test output is now ordered to avoid radom result due to
timeline.

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-12-05 15:51:52 +01:00
Christian Hopps
6f64ebee1b tests: import munet 0.13.10
- Import 0.13.10 which adds watched logs feature, among others.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-12-04 07:03:49 -05:00
Christian Hopps
477b56106b tests: add support for running things under rr.
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-12-01 11:44:22 -05:00
Louis Scalbert
94640da234 topotests: test wrong bfd source in bfd_topo3
Test setting a wrong bfd source and restore the source auto parameter.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-01 14:09:00 +01:00
Louis Scalbert
8f5bf65f26 topotests: redispatch tests in bfd_topo3
Redispatch tests in bfd_topo3 in order to prepare next commit.
Cosmetic change.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-12-01 14:09:00 +01:00
Donatas Abraitis
36547f400e
Merge pull request #9012 from dlqs/lua-poly
Refactor decoder for Lua hook system
2023-11-29 15:14:46 +02:00
Donatas Abraitis
fc8a07433f
Merge pull request #14886 from LabNConsulting/aceelindem/ospf-link-local-fix
ospfd: Fix OSPF link-local opaque LSA crash and opaque memory corruption
2023-11-29 10:36:30 +02:00
Acee
5993c4aef9 ospfd: Fix OSPF link-local opaque LSA crash and opaque memory corruption
1. When an OSPF interface is deleted, remove the references in link-local
     LSA. Delete the LSA from the LSDB so that the callback has accessibily
     to the interface prior to deletion.
  2. Fix a double free for the opaque function table data structure.
  3. Assure that the opaque per-type information and opaque function table
     structures are removed at the same time since they have back pointers
     to one another.
  4. Add a topotest variation for the link-local opaque LSA crash.

Signed-off-by: Acee <aceelindem@gmail.com>
2023-11-28 16:18:55 -05:00
Russ White
e854c43b30
Merge pull request #14512 from pguibert6WIND/vpnv4_with_no_rt_export
L3VPN exportation by using 'route-map vpn export' command instead of 'rt vpn export' command
2023-11-28 08:34:58 -05:00
Francois Dumontet
a5bee822f4 tests: bgp_snmp_bgp4v2mib fix some random failure
avoid to consider additionnal traps randomly received later

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-11-22 07:24:00 +00:00
Philippe Guibert
fc1177fe20 bgpd, topotests: apply route-map after rt vpn export
A route-map can be programmed to remove the route-target which
has been set with 'rt vpn export' command, but fails to remove
it.

Fix this by applying the route-map, then considering the resulting
extended community-list.
Add some tests to catch this issue.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-11-21 18:10:38 +01:00
Philippe Guibert
309e692d10 topotests: bgp_vpnv4_ebgp, check 'extcommunity rt' presence
Add a test to check that the presence of a route-map at
exportation with a 'set extcommunity rt' is enough to allow
the prefix to be exported.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-11-21 18:10:38 +01:00
Donatas Abraitis
8eba97d395 tests: Set community for conditionally advertised routes
Just to make sure we don't crash bgpd with double-free if an existing route
already exists.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-11-21 10:49:36 +02:00
Donald Lee
fca8ee275c lib: Update int and ll decoders with new MTYPE
In the master branch a new MTYPE_SCRIPT_RES was created for
frrscript_get_results, lua_to decoders should use that

Signed-off-by: Donald Lee <dlqs@gmx.com>
2023-11-20 20:45:02 -05:00
Donald Lee
d2acf63f16 lib: Create encoders for int and rename stuff
Create encoders/decoders for int and rename current int encoders
/decoders to long long.

Signed-off-by: Donald Lee <dlqs@gmx.com>
2023-11-20 20:45:02 -05:00
Russ White
072a0b5839
Merge pull request #14135 from squirrelking57/fix_isis_adj_level
isisd:change ngh lvl when int circuit type setted
2023-11-14 08:49:35 -05:00
Russ White
8aae3ea5d2
Merge pull request #11800 from mxyns/bmp-locribmon
bgpd: BMP Loc-Rib Monitoring (RFC9069) Implementation
2023-11-14 08:27:45 -05:00
Donald Sharp
3edeaa9066 tests: Remove log monitor XX it's not a cli command
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-11-13 09:16:45 -05:00
Donald Sharp
314a98d2b4
Merge pull request #14756 from opensourcerouting/fix/bgpd_dynamic_cap_addpath_topotest
tests: Check received prefixes before immediately sending dynamic capabilities
2023-11-09 07:37:26 -05:00
Donatas Abraitis
06c1e53036
Merge pull request #14727 from fdumontet6WIND/bgp4v2_snmp
bgpd: fix bgp4v2 MIB NLRI INDEX format and order
2023-11-09 10:20:33 +01:00
Francois Dumontet
7df8e65e81 tests: take into account fix for NLRI Index
Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-11-08 21:20:17 +01:00
Donatas Abraitis
c12b976c0a tests: Check received prefixes before immediately sending dynamic capabilities
If we send capabilities immediately, before receiving an UPDATE message, we end up
with a notification received from the neighbor. Let's wait until we have the fully
converged topology and do the stuff.

Tested locally and can't replicate the failure, let's see how happy is the CI this time.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-11-08 16:39:08 +02:00
Christian Hopps
c27b054efe tests: add ability to show all types of valgrind memleaks
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-11-07 15:29:37 -05:00
Farid MIHOUB
e7adf2762f tests: extend the bmp test to support bmp loc-rib
Configure the bmp monitor unicast loc-rib.
Check the logging messages for the updated/withdrawn prefixes with
the presence of the loc-rib peer-type.

Signed-off-by: Farid MIHOUB <farid.mihoub@6wind.com>
2023-11-04 12:19:30 +01:00
Farid MIHOUB
e65db90567 tests: rework bmp policy message logging
Add "policy" field to the logged bmp messages so policy checks within
topotests would be easier and clearer.

Signed-off-by: Farid MIHOUB <farid.mihoub@6wind.com>
2023-11-04 12:19:30 +01:00
Donald Sharp
2a65f05d77 lib: Remove unused WQ_RETRY_XXX enums
These enum's have been around since 2005 and FRR
still does not have any users of these particular
values.  After almost 20 years, let's simplify the
code slightly and remove them.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-11-03 18:06:01 +00:00
Donald Sharp
d4aa24ba7d *: Introduce Local Host Routes to FRR
Create Local routes in FRR:

S   0.0.0.0/0 [1/0] via 192.168.119.1, enp39s0, weight 1, 00:03:46
K>* 0.0.0.0/0 [0/100] via 192.168.119.1, enp39s0, 00:03:51
O   192.168.119.0/24 [110/100] is directly connected, enp39s0, weight 1, 00:03:46
C>* 192.168.119.0/24 is directly connected, enp39s0, 00:03:51
L>* 192.168.119.224/32 is directly connected, enp39s0, 00:03:51
O   192.168.119.229/32 [110/100] via 0.0.0.0, enp39s0 inactive, weight 1, 00:03:46
C>* 192.168.119.229/32 is directly connected, enp39s0, 00:03:46

Create ability to redistribute local routes.

Modify tests to support this change.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-11-01 17:13:06 -04:00
Donald Sharp
8e3a96e846
Merge pull request #14546 from adrianomarto/ospf6-point-to-multipoint
OSPF6 point to multipoint
2023-10-31 18:20:04 -04:00
Russ White
644386fe48
Merge pull request #14388 from pguibert6WIND/redistribute_table_bgp_2
Redistribute table bgp without copying data to the default routing table
2023-10-31 13:23:57 -04:00
Russ White
95f841c9be
Merge pull request #14661 from opensourcerouting/feature/enable_enforce_first_as_by_default
bgpd: Enable `enforce-first-as` by default
2023-10-31 10:40:23 -04:00
Russ White
49dc248e5c
Merge pull request #14343 from pguibert6WIND/bgp_label_manual_allocate_label_mgr
Bgp label manual allocate label mgr
2023-10-31 10:31:11 -04:00
Christian Hopps
62af972148 tests: add gdb integration with valgrind
Allows you to run daemons under valgrind integrated with gdb. When daemons are
run with the ``--gdb-daemons/--gdb-routers`` options they will be wired up to
valgrind using vgdb (valgrind tool) so gdb will stop when valgrind errors are
encountered.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-10-30 07:12:27 -04:00
mobash-rasool
ed0cfbecc7
Merge pull request #14635 from opensourcerouting/fix/ospf6d_loopback_cost
ospf6d: Set loopback interface cost to 0
2023-10-30 09:49:58 +05:30
Donald Sharp
2fef2017ed
Merge pull request #14662 from opensourcerouting/fix/drop_broken_tests
tests: Drop a couple unnecessary unit tests
2023-10-27 10:14:40 -04:00
Donatas Abraitis
322462920e bgpd: Enable enforce-first-as by default
It's been for a while disabled by default, but this seems reasonable to flip it.

We had `bgp enforce-first-as` as a global BGP knob to enable/disable this
behavior globally, later we introduced `enforce-first-as` per neighbor, with disabled
by default. Now let's enable this by default by bringing a global `bgp enforce-first-as`
command back.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-27 14:27:02 +03:00
Donatas Abraitis
26d0f530a3 tests: Disable debug log for bgp_vpnv4_asbr.r2
For the same reason as we disable debug logs for CI everywhere.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-27 14:09:02 +03:00
Christian Hopps
8e630c2946 tests: have unit-test check more paths for the grpc.so module
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-10-26 21:39:13 -04:00
Donatas Abraitis
dede6261d8 bgpd: Drop unnecessary unit test for software-version capability
It's tested above, and was just copied from extended-nexthop as an example
which is broken too.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-26 17:24:42 +03:00
Donatas Abraitis
39d6b2888c tests: Drop broken unit test for extended-nexthop capability
extended-nexthop capability can't be unset to interface-based peers.

Anyway, this is always silently ignored:

```
✖ [test] peer\capability extended-nexthop
► prepare: initialize bgp test environment
► case 01: set peer-flag [capability extended-nexthop] on [IP-TEST]
► error: execution of command [no neighbor IP-TEST capability extended-nexthop] has failed with code [13]
failed
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-26 17:22:02 +03:00
Donatas Abraitis
8aeb17d692 tests: Adopt ospf6_gr_topo1 tests for OSPFv3 loopback cost as 0
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-26 07:39:29 +03:00
Donatas Abraitis
d7e9714643 tests: Use igpMetric as 10 not 20, after OSPFv3 loopback cost changes
Fixes: fa3140f7927838c432a02ee4f1c1847387b7be6d ("ospf6d: Set loopback interface cost to 0")

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-26 07:39:29 +03:00
Donatas Abraitis
e8615867d0 tests: Check if OSPFv3 loopback interface gets cost as 0
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-25 10:33:50 +03:00
Russ White
f239b0f05a
Merge pull request #14639 from donaldsharp/zebra_nexthop_search_up
zebra: Allow longer prefix matches for nexthops
2023-10-24 16:13:20 -04:00
Donatas Abraitis
26373fbedd
Merge pull request #14333 from fdumontet6WIND/bgp4v2_snmp
bgpd: add support of traps for bgp4-mibv2
2023-10-24 21:34:47 +03:00
Francois Dumontet
9d14c70b88 tests: add bgp4v2 MIB traps test
Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-10-24 17:16:47 +02:00
Francois Dumontet
50c95b6be9 tests: add bgp4 MIB traps test
Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-10-24 17:16:47 +02:00
Francois Dumontet
6261c2b994 tests: lib add support of snmptrapd daemon
Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-10-24 17:16:47 +02:00
Russ White
27a78f80d8
Merge pull request #13979 from gpnaveen/bgp_unique_rid
tests: Adding a bgp router id chaos test case.
2023-10-24 06:09:58 -04:00
Donatas Abraitis
614d7873d5
Merge pull request #14634 from LabNConsulting/chopps/gdb-use-emacs
tests: add --gdb-use-emacs option
2023-10-24 08:58:40 +03:00
Sososhas
b52f969f3d isisd:change ngh lvl when int circuit type setted
I added a new variable to calculate the required level of neighborhood,
as well as checking if the interfaces are in the same area,
in accordance with cisco

Signed-off-by: Sososhas <1248756005hfh@gmail.com>

isis:fixed adj level in topotests

fixed adj level on rt6

Signed-off-by: Sososhas <1248756005hfh@gmail.com>
2023-10-23 17:11:16 +03:00
Donald Sharp
a272a2b364 zebra: Allow longer prefix matches for nexthops
Zebra currently does a shortest prefix match for
resolving nexthops for a prefix.  This is typically
an ok thing to do but fails in several specific scenarios.
If a nexthop matches to a route that is not usable, nexthop
resolution just gives up and refuses to use that particular
route.  For example if zebra currently has a covering prefix
say a 10.0.0.0/8.  And about the same time it receives a
10.1.0.0/16 ( a more specific than the /8 ) and another
route A, who's nexthop is 10.1.1.1.  Imagine the 10.1.0.0/16
is processed enough to know we want to install it and the
prefix is sent to the dataplane for installation( it is queued )
and then route A is processed, nexthop resolution will fail
and the route A will be left in limbo as uninstallable.

Let's modify the nexthop resolution code in zebra such that
if a nexthop's most specific match is unusable, continue looking
up the table till we get to the 0.0.0.0/0 route( if it's even
installed ).  If we find a usable route for the nexthop accept
it and use it.

The bgp_default_originate topology test is frequently failing
with this exact problem:

B>* 0.0.0.0/0 [200/0] via 192.168.1.1, r2-r1-eth0, weight 1, 00:00:21
B   1.0.1.17/32 [200/0] via 192.168.0.1 inactive, weight 1, 00:00:21
B>* 1.0.2.17/32 [200/0] via 192.168.1.1, r2-r1-eth0, weight 1, 00:00:21
C>* 1.0.3.17/32 is directly connected, lo, 00:02:00
B>* 1.0.5.17/32 [20/0] via 192.168.2.2, r2-r3-eth1, weight 1, 00:00:32
B>* 192.168.0.0/24 [200/0] via 192.168.1.1, r2-r1-eth0, weight 1, 00:00:21
B   192.168.1.0/24 [200/0] via 192.168.1.1 inactive, weight 1, 00:00:21
C>* 192.168.1.0/24 is directly connected, r2-r1-eth0, 00:02:00
C>* 192.168.2.0/24 is directly connected, r2-r3-eth1, 00:02:00
B>* 192.168.3.0/24 [20/0] via 192.168.2.2, r2-r3-eth1, weight 1, 00:00:32
B   198.51.1.1/32 [200/0] via 192.168.0.1 inactive, weight 1, 00:00:21
B>* 198.51.1.2/32 [20/0] via 192.168.2.2, r2-r3-eth1, weight 1, 00:00:32

Notice that the 1.0.1.17/32 route is inactive but the nexthop
192.168.0.1 is covered by both the 192.168.0.0/24 prefix( shortest match )
*and* the 0.0.0.0/0 route ( longest match ).  When looking at the logs
the 1.0.1.17/32 route was not being installed because the matching
route was not in a usable state, which is because the 192.168.0.0/24
route was in the process of being installed.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-10-23 08:15:11 -04:00
Christian Hopps
a921202a85 tests: add --gdb-use-emacs option
When specified `--gdb-use-emacs` will launch the daemon with gdb inside a
running emacs server using `emacsclient --eval` commands.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-10-23 05:11:32 -04:00
Philippe Guibert
deac143c6e topotests: add bgp_redistribute_table test
There is no test that ensures the test of the 'redistribute
table-direct' facility. Add a test that checks that routes
created before and after BGP is started, is correctly imported.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-10-20 13:28:52 +02:00
Donatas Abraitis
3c94151258 tests: Check if BGP conditional advertisement works fine with static routes
If we modify the prefix-list that is used to define the routes to be
advertised, all of them MUST be advertised.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-20 12:58:33 +03:00
Donald Sharp
627888864d
Merge pull request #14614 from opensourcerouting/feature/bgpd_handle_orf_capability_via_dynamic_capability
bgpd: Handle ORF capability using dynamic capabilities
2023-10-19 16:01:24 -04:00
Louis Scalbert
3cae026428 topotests: add bgp_l3vpn_label_export test
There is no test that checks for the label allocation mechanisms
involved when using BGP and/or LDP.
- Some configuration changes are applied in the BGP configuration,
and the impact is checked on the BGP contexts, and on the label
manager.
- The label manager dynamic range is reconfigured, BGP auto mode
is checked against the new range, along with LDP when restarting.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-10-18 17:46:28 +02:00
Philippe Guibert
8a400bb70a topotests: bgp_srv6l3vpn_to_bgp_vrf[2,3], ignore tableVersion
The expected tableVersion is wrong, when checking r1 table.

The tableVersion value increments at each route updates. The
previous commit brought an additional route update with the
'vpn_leak_postchange_all()' call.

Keep the function call, and do not check the table version
in bgp_srv6l3vpn_to_bgp_vrf[2,3] tests.

Fixes: 205b62ffae2c ("bgpd: fix hardset l3vpn label available in mpls pool")

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-10-18 17:45:29 +02:00
Donatas Abraitis
4b843e759b tests: Rename test_bgp_dynamic_capability_role
Was copied, but forgot to rename accordingly.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-18 12:31:22 +03:00
Philippe Guibert
dfb56806af topotests: fix bgp_vpnv[4,6]_per_nexthop prefix not updated
The bgp_vpnv[4,6]_table_check() functions analyze the
expected label value of VPN prefixes present in the BGP table.
However, it doesn't verify if the prefixes exist before doing
this. Consequently, the tests will fail if the prefixes do not
show up immediately.
Ensure that all expected VPN prefixes are present before
executing the function.

Fixes: ae5a6bc1f6 ("topotests: add bgp mpls allocation per next-hop test")
Fixes: 37a02a8dcb ("topotests: add bgp_vpnv6 test allocation")

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-10-18 09:41:02 +02:00
Philippe Guibert
9d32589b58 zebra, test: mark mpls label chunks as dynamic or static
The zebra label manager stores the mpls label chunks,
but does not record if the label request was for a
dynamic or a static chunk.

For all label requests accepted, mark the label chunk
if the 'base' parameter is set to MPLS_LABEL_BASE_ANY,
unmark it otherwise.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-10-18 09:41:02 +02:00
Philippe Guibert
4a81210169 topotests: fix accept_own test, bgp label value conflict with ldp
When configuring manual label value in BGP L3VPN, the label
allocation conflicts with the LDP label pool which is in use.
Choose BGP label values different that the ones from LDP.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-10-18 09:41:02 +02:00
Philippe Guibert
cb86d8e3a4 bgpd: fix label allocation should not be allocated at startup
BGP always asks zebra for a chunk of MPLS label even if it doesn't need it.
Fix this by correcting the rounding up "labels_needed" formula.

Fixes: 80853c2ec7 ("bgpd: improve labelpool performance at scale")
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-10-18 09:41:02 +02:00
Donatas Abraitis
1fb08e91d7 tests: Check if ORF capability works with BGP dynamic capabilities
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-17 16:00:00 +03:00
Donald Sharp
c8d568487c
Merge pull request #14599 from opensourcerouting/fix/issue_14419
tests: Check if evpn route-map match by route type works
2023-10-16 10:20:23 -04:00
Donatas Abraitis
c7a9af861a tests: Check if evpn route-map match by route type works
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-15 19:46:34 +03:00
Donald Sharp
50e6ba26a4
Merge pull request #14582 from cloudscale-ch/denis/topotest-for-14488
tests: Add OSPF test for issue 14488
2023-10-14 09:42:49 -04:00
Donatas Abraitis
0a8ce5f3f3
Merge pull request #14553 from donaldsharp/zebra_weighted_ecmp
Zebra weighted ecmp
2023-10-13 23:09:18 +03:00
Denis Krienbühl
616e1fa9df
tests: Add OSPF test for issue 14488
OSPF on IPv4/IPv6 removes the wrong routes in certain cases, causing
issues when removing and re-enabling interfaces. This test proofs that.

These tests all pass with https://github.com/FRRouting/frr/pull/13340
and the latest master (d2324b7b4a).

See https://github.com/FRRouting/frr/issues/14488

Signed-off-by: Denis Krienbühl <denis.krienbuehl@cloudscale.ch>
2023-10-13 17:16:19 +02:00
Igor Ryzhov
7d67b9ff28 build: add -Wimplicit-fallthrough
Also:
- replace all /* fallthrough */ comments with portable fallthrough;
pseudo keyword to accomodate both gcc and clang
- add missing break; statements as required by older versions of gcc
- cleanup some code to remove unnecessary fallthrough

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2023-10-12 21:23:18 +03:00
Donald Sharp
3d8ba5c5ac tests: Fixup bgp_link_bw_ip test to new behavior
Old behavior was metric values between 1-100,
now we have metric values between 1-255.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-10-12 13:35:48 -04:00
Russ White
97d8e5cecd
Merge pull request #14537 from opensourcerouting/feature/bgpd_aod
bgpd: Implement EBGP-OAD peering type
2023-10-11 10:22:26 -04:00
Russ White
9ff1a8c550
Merge pull request #14528 from opensourcerouting/feature/bgpd_handle_addpath_capability_via_dynamic_capability
bgpd: Handle Addpath capability using dynamic capabilities
2023-10-11 10:16:18 -04:00
Donald Sharp
0dc12c9003 Revert "lib: register bgp link-state afi/safi"
This reverts commit 1642a68d60.
2023-10-10 16:45:57 -04:00
Donald Sharp
c4edb3a453 Revert "tests: add bgp_linkstate_topo1"
This reverts commit a0e6cd4c8f.
2023-10-10 16:43:17 -04:00
Donald Sharp
547a0d02aa Revert "tests: add link-state attribute display in bgp_linkstate_topo1"
This reverts commit 5727195cbf.
2023-10-10 16:33:07 -04:00
Adriano Marto Reis
108adcddbb tests: Ajusting the test to the new OSPF6 behaviour
Now OSPF6 shares the /128 prefix by default. Adjusting the expected
number of next hops according to that.

Signed-off-by: Adriano Marto Reis <adrianomarto@gmail.com>
2023-10-10 12:09:07 +10:00
Adriano Marto Reis
a5677ca1e0 tests: OSPF6 point-to-multipoint topotest
* Check if FRR is running
* Check if OSPFv3 converges
* Check OSPFv3 Routing Tables
* Check Linux Kernel Routing Table

Signed-off-by: Adriano Marto Reis <adrianomarto@gmail.com>
2023-10-10 08:10:49 +10:00
Donatas Abraitis
ba67eb6bd0 tests: Check if EBGP-OAD works
https://datatracker.ietf.org/doc/html/draft-uttaro-idr-bgp-oad

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-06 21:53:43 +03:00
Donald Sharp
c516447847
Merge pull request #14534 from mjstapp/fix_topo_nhgid
tests: locate nhg id from json output in all_proto_startup
2023-10-05 15:36:27 -04:00
Mark Stapp
22fb94a248 tests: locate nhg id from json output in all_proto_startup
Don't hard-code a sharpd nhg id: those values aren't stable
if the daemons/protos/route-types change. Use json show output
to find the id in the 'resilient' nhg test case in
the all_protocol_startup suite.

Signed-off-by: Mark Stapp <mjs@labn.net>
2023-10-05 13:47:17 -04:00
Donatas Abraitis
51255e1118 tests: Check if addpath capability is exchanged dynamically
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-10-03 17:44:19 +03:00
Russ White
373d46d0f7
Merge pull request #14511 from opensourcerouting/fix/bgpd_software_version_capability
bgpd: Validate maximum length of software version when handling via dynamic caps
2023-10-03 10:36:21 -04:00
Philippe Guibert
85caa21dff topotests: add bgp_large_comm_list_match test
Add a topotest to check for proper functioning of the
bgp large community list match operation under a route-map.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-10-02 15:24:18 +02:00
Philippe Guibert
aa511000e0 bgpd: add 'match community-list any' function
There is no match mechanism to match one community from the
incoming community-list. Add the 'any' keyword to the 'match
route-map' command of communit-list and large-community-list.

> match community-list AAA any
> match large-community-list AAA any

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-10-02 15:24:18 +02:00
Donatas Abraitis
0e43f80ab9 tests: Make sure we have a valid FRRouting software version string
It can't begin with anything else, otherwise something is broken on the wire.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-29 12:15:24 +03:00
Russ White
8e755a03a3
Merge pull request #12649 from louis-6wind/bgp-link-state
bgpd: add basic support of BGP Link-State RFC7752
2023-09-26 10:07:02 -04:00
Donatas Abraitis
56d8305481
Merge pull request #14473 from cscarpitta/bugfix/fix-srv6-topotest-warning
tests: Fix DeprecationWarning in SRv6 L3VPN topotest
2023-09-24 20:47:07 +03:00
Donald Sharp
4f0db0daaf
Merge pull request #14470 from opensourcerouting/fix/rewrite_dynamic_capabilities_tests
tests: Improve BGP dynamic capability tests
2023-09-23 09:50:43 -04:00
Carmine Scarpitta
71ed1868d6 tests: Fix DeprecationWarning in SRv6 L3VPN topotest
Fix the following warning:

tests/topotests/bgp_srv6l3vpn_sid/test_bgp_srv6l3vpn_sid.py:42
  /media/SharedUTM/workspace/frr/tests/topotests/bgp_srv6l3vpn_sid/test_bgp_srv6l3vpn_sid.py:42: DeprecationWarning: invalid escape sequence '\ '

In test_bgp_srv6l3vpn_sid.py we have a comment containing some '\'
characters. Python mistakenly tries to interpret such "\" characters
as escape sequences, which leads to the above warning.

Let's tell Python to treat the comment as a raw string,
so that it simply treats backslashes as literal characters rather than
escape sequences.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2023-09-22 18:43:42 +02:00
Donald Sharp
eceb1cab6d
Merge pull request #14450 from kuldeepkash/general_fixes
tests: Adding BGP convergence verification before starting PIM tests
2023-09-22 09:53:03 -04:00
Donatas Abraitis
fa5783bbab tests: Check notification/capability received message stats instead of reset/established
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-22 15:50:27 +03:00
Donatas Abraitis
64b4a93d81 tests: Use frr.conf for bgp_dynamic_capabily tests
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-22 15:20:22 +03:00
Kuldeep Kashyap
8824e302bf tests: Fix for issue when RP is changed
Issue: https://github.com/FRRouting/frr/issues/14057
Fix: Added some sleep to make sure prune is received before
RP is changed.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2023-09-20 13:11:31 +00:00
Kuldeep Kashyap
0cf046c647 tests: Adding BGP convergence verification before starting PIM tests
Issue: Sometimes BGP neighbors are not up before doing any PIM
operation, that is causing some tests failures.
https://github.com/FRRouting/frr/issues/14441

Fix: Added BGP convergence for all tests where BGP is used to make
sure all BGP neigbhors

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2023-09-20 13:11:19 +00:00
Dmytro Shytyi
9f3ceabd49 tests: add srv6 multiple segs SIDs topotest
Configure and verify the installed srv6 route with multiple segs SIDs

Signed-off-by: Dmytro Shytyi <dmytro.shytyi@6wind.com>
2023-09-20 15:07:15 +02:00
Donald Sharp
4e5627fb20
Merge pull request #14442 from mjstapp/fix_no_ctime
bgpd, pathd: replace ctime() with ctime_r()
2023-09-20 07:32:51 -04:00
Donatas Abraitis
da1cf4f151
Merge pull request #14440 from fdumontet6WIND/fix_oid_bgp4v2
bgpd: fix  SNMP oid in bgp4v2
2023-09-20 09:58:58 +03:00
Mark Stapp
5b4610fa59 tests: replace ctime with ctime_r
Replace ctime with ctime_r in bgp test.

Signed-off-by: Mark Stapp <mjs@labn.net>
2023-09-19 16:25:01 -04:00
Russ White
ffbff9b515
Merge pull request #14436 from opensourcerouting/fix/set_mss_for_passive_nodes
bgpd: Set TCP MSS for the socket even if the session is set to passive
2023-09-19 10:18:14 -04:00
Russ White
fd8b00ed53
Merge pull request #14420 from opensourcerouting/fix/remove_private_asn_after_route_map
bgpd: Remove private ASNs after we modify the as-path with the route-map
2023-09-19 10:16:33 -04:00
Russ White
a9a89805ec
Merge pull request #14398 from m-varasteh/ospfd-rfc5709
ospfd: add support for RFC 5709 OSPFv2 HMAC-SHA Cryptographic Authentication
2023-09-19 10:14:14 -04:00
Russ White
1e00784731
Merge pull request #14382 from opensourcerouting/feature/long_lived_graceful_restart_dynamic_capability_split
bgpd: Handle LLGR capability using dynamic capabilities
2023-09-19 10:12:35 -04:00
Francois Dumontet
b8fe1c16de bgpd: snmp MIB bgp4v2 fix indexes in OID
currently snmpwalk give results such :
BGP4V2-MIB::bgp4V2PeerRemoteAddrType.1.ipv6z.10.125.0.2 = INTEGER: ipv4(1)
BGP4V2-MIB::bgp4V2PeerRemoteAddrType.2.dns.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = INTEGER: ipv6(2)
BGP4V2-MIB::bgp4V2PeerRemoteAddr.1.ipv6z.10.125.0.2 = Hex-STRING: 0A 7D 00 02
BGP4V2-MIB::bgp4V2PeerRemoteAddr.2.dns.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Hex-STRING: FD 00 01 25 00 00 00 00 00 00 00 00 00 00 00 03

the expected result is the following

BGP4V2-MIB::bgp4V2PeerRemoteAddrType.1.ipv4.10.125.0.2 = INTEGER: ipv4(1)
BGP4V2-MIB::bgp4V2PeerRemoteAddrType.1.ipv6.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 =
 INTEGER: ipv6(2)
BGP4V2-MIB::bgp4V2PeerRemoteAddr.1.ipv4.10.125.0.2 = Hex-STRING: 0A 7D 00 02
BGP4V2-MIB::bgp4V2PeerRemoteAddr.1.ipv6.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Hex
-STRING: FD 00 01 25 00 00 00 00 00 00 00 00 00 00 00 03

in draft-ietf-idr-bgp4-mibv2-11

INDEX for Bgp4V2PeerEntry is define as follows
INDEX {
          bgp4V2PeerInstance,
          bgp4V2PeerRemoteAddrType,
          bgp4V2PeerRemoteAddr
      }

the peer instance is defined as follows
OBJECT bgp4V2PeerInstance
        SYNTAX Unsigned32 (1..4294967295)

more this interpretation is conformant with the snmpwalk implementation
for instance we obtain the following result

swBgp.bgp4V2.bgp4V2Objects.bgp4V2PeerTable.bgp4V2PeerEntry.bgp4V2PeerRemotePort.1.ipv6.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Gauge32: 179

swBgp.bgp4V2.bgp4V2Objects.bgp4V2PeerTable.bgp4V2PeerEntry.bgp4V2PeerRemoteAs.1.ipv4.10.125.0.2 = Gauge32: 65200

since currently we are not supporting  multi instance for bgp peer in
SNMP the bgp4V2PeerInstance value is set to 1 coforming to:

"Implementations that do not support multiple routing instances should return 1 for this object."

test is updated accordingly to fix.
currently index for bgp4V2NlriEntry is not coformant to MIB definition

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-09-19 14:26:41 +02:00
Donatas Abraitis
6cd8f13fac tests: Check if TCP MSS is synced if using a passive neighbor
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-18 22:54:53 +03:00
Louis Scalbert
5727195cbf tests: add link-state attribute display in bgp_linkstate_topo1
Add some attributes to display in the injector and check the output.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 15:07:34 +02:00
Louis Scalbert
a0e6cd4c8f tests: add bgp_linkstate_topo1
Use an external BGP injector tool in router r1. Check that bgpd on r2 is
able to decode BGP-LS prefixes and re-encode to the r3 instance.

Link: https://github.com/louis-6wind/bgp_injector
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 15:06:23 +02:00
Louis Scalbert
1642a68d60 lib: register bgp link-state afi/safi
Register BGP Link-State AFI/SAFI values from RFC7752.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2023-09-18 14:22:51 +02:00
Mahdi Varasteh
f5011cd5dd [ospfd]: add support for RFC 5709 HMAC-SHA Auth
This patch includes:
* Implementation of RFC 5709 support in OSPF. Using
openssl library and FRR key-chain,
one can use SHA1, SHA256, SHA384, SHA512 and
keyed-MD5( backward compatibility with RFC 2328) HMAC algs.
* Updating documentation of OSPF
* add topotests for new HMAC algorithms

Signed-off-by: Mahdi Varasteh <varasteh@amnesh.ir>
2023-09-16 07:38:23 +03:30
Donatas Abraitis
adb1c9aa51 tests: Check if private ASNs are removed if modified by route-map
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-14 21:52:21 +03:00
Russ White
abaa68f213
Merge pull request #14162 from opensourcerouting/feature/turn_on_nht_resolve_via_default_for_traditional_profile
zebra: Turn on `nht resolve-via-default` by default for traditional profile
2023-09-13 05:57:49 -04:00
Donatas Abraitis
6bd5afca22 tests: Check if LLGR settings can be changed via BGP dynamic capabilities
LLGR stale-time setting.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-13 11:30:47 +03:00
Donatas Abraitis
e32fa3edcb
Merge pull request #14400 from louis-6wind/local-no-retain
bgpd: fix import from a local VRF with no bgp retain
2023-09-13 11:23:42 +03:00
Donald Sharp
afe11d5edf tests: snmp tests sometimes fail with Unable to bind
the snmp tests are using zebra.conf to setup the
address that they are binding to and immediately
after that they are starting snmpd.  If snmpd
starts up *before* zebra has installed the address
the bind on the address will fail.  Causing the entire
test to fail.  Modify the snmpd.conf for all our
snmp tests to bind to all addresses.  Things still
work and we no longer have an issue.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-09-12 13:05:05 -04:00
Louis Scalbert
7acdaff7e2 topotests: check route import in bgp_vpnv4_noretain
Check route import in bgp_vpnv4_noretain

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-12 15:18:02 +02:00
Louis Scalbert
142c029725 topotest: fix bgp_vpnv4_noretain test descriptions
Fix bgp_vpnv4_noretain test descriptions

Fixes: 22dfa04b78 ("topotests: more tests in bgp_vpnv4_noretain")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-12 15:18:02 +02:00
Russ White
7b8f81bcb6
Merge pull request #14379 from donaldsharp/peer_connection_part_two
Peer connection part two
2023-09-12 08:51:50 -04:00
Russ White
48d6039e14
Merge pull request #13724 from cscarpitta/feature/isisd-srv6-support
isisd: Add support for SRv6 uSID (RFC 9352)
2023-09-12 08:33:42 -04:00
Carmine Scarpitta
6d22a6e5db tests: Add isis_srv6_topo1 test for IS-IS SRv6
Add a new topotest `isis_srv6_topo1` for verifying SRv6 functionalities
in IS-IS (RFC 9352).

This topotest consists of nine tests:

* Network convergence after applying SRv6 configuration
* Disable SRv6 Locator on zebra on r1
* Enable SRv6 Locator on zebra on r1
* Disable SRv6 Locator on ISIS on r1
* Enable SRv6 Locator on ISIS on r1
* Disable SRv6 on ISIS on r1
* Enable SRv6 on ISIS on r1
* Disable SRv6 on zebra on r1
* Enable SRv6 on zebra on r1

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2023-09-11 22:11:58 +02:00
Carmine Scarpitta
0078f6f53a tests: Update fuzz test to match expected output
Update IS-IS fuzz test to match corrected output after the introduction
of SRv6-related TLVs.

The update was performed using wuschl [1] like this:

$ wuschl rebuild tests/isisd/test_fuzz_isis_tlv
$ gzip -9 tests/isisd/test_fuzz_isis_tlv_tests.h

[1] https://pypi.org/project/wuschl/

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2023-09-11 22:11:52 +02:00
Donald Sharp
7094cc7f42 bgpd: bgp_packet pass connection around
Modify all the receive functions to pass around the actual
connection being acted upon.  Modify the collision detection
function to look at the possible two connections.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-09-10 08:31:25 -04:00
Donald Sharp
4eef430b03
Merge pull request #14225 from opensourcerouting/bug/topostest_grpc
topotest: Command using wrong python version
2023-09-06 09:00:25 -04:00
Donald Sharp
58201b3d63
Merge pull request #14344 from opensourcerouting/freebsd-printf-sync-20230903
lib/printf: sync with FreeBSD for ISO C23 enhancements
2023-09-06 07:59:15 -04:00
Russ White
92515dce64
Merge pull request #14285 from opensourcerouting/feature/graceful_restart_dynamic_capability
bgpd: Handle Graceful Restart capability using dynamic capabilities
2023-09-05 09:37:49 -04:00
Russ White
0d378c66af
Merge pull request #14234 from Pdoijode/pdoijode/frr-bgp-nexthop-find-fix-1
bgpd: set ifindex only for v6 nexthops and nexthops that match peer's LL
2023-09-05 08:23:49 -04:00
David Lamparter
48eee77b51 tests: exercise %b printfrr format specifier
Added by ISO C23 / N2630, implementation imported from FreeBSD.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2023-09-03 23:34:03 +02:00
Donatas Abraitis
e89fd723ee
Merge pull request #14118 from GaladrielZhao/master
bgpd: Convert from struct bgp_node to struct bgp_dest
2023-08-30 17:43:29 +03:00
Donatas Abraitis
23fa9b4107 tests: Check if GR settings can be changed via BGP dynamic capabilities
restart-time and/or notification support.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-08-30 17:18:53 +03:00
Rodrigo Nardi
bf5a32589c topotest: Command using wrong python version
Changing command from python to python3.

Signed-off-by: Rodrigo Nardi <rnardi@netdef.org>
2023-08-30 10:59:33 -03:00
Russ White
fa0dd3d6d0
Merge pull request #14252 from LabNConsulting/ziemba-pbr-bugfix-match-dscp-numeric
pbrd: fix dscp field value computation
2023-08-29 08:05:17 -04:00
Naveen Guggarigoud
bff44a8f77 tests: Adding a bgp router id chaos test case.
This is test when ospf and bgp router ids are same.

Signed-off-by: Naveen Guggarigoud <nguggarigoud@vmware.com>
2023-08-29 06:57:07 +00:00
Yuqing Zhao
6e7f305e54 bgpd: Convert from struct bgp_node to struct bgp_dest
This is based on @donaldsharp's work

The current code base is the struct bgp_node data structure.
The problem with this is that it creates a bunch of
extra data per route_node.
The table structure generates ‘holder’ nodes
that are never going to receive bgp routes,
and now the memory of those nodes is allocated
as if they are a full bgp_node.

After splitting up the bgp_node into bgp_dest and route_node,
the memory of ‘holder’ node which does not have any bgp data
will be allocated as the route_node, not the bgp_node,
and the memory usage is reduced.
The memory usage of BGP node will be reduced from 200B to 96B.
The total memory usage optimization of this part is ~16.00%.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Signed-off-by: Yuqing Zhao <xiaopanghu99@163.com>
2023-08-22 09:35:46 +08:00
Pooja Jagadeesh Doijode
4777c8376a bgpd: set ifindex only v6 nexthops and nexthops that match peer's LL
For v4 nexthops, ifindex was being set. Modified the check to set
ifindex only for v6 nexthops. Also modified the check to set ifindex
only if the v6 nexthop matches peer's LL address.

Signed-off-by: Pooja Jagadeesh Doijode <pdoijode@nvidia.com>
2023-08-21 16:45:09 -07:00
G. Paul Ziemba
1efae6b537 pbrd: fix dscp field value computation
Signed-off-by: G. Paul Ziemba <paulz@labn.net>
2023-08-21 13:27:50 -07:00
Donatas Abraitis
451fb24b17
Merge pull request #8790 from donaldsharp/peer_connection
Peer connection
2023-08-21 20:22:53 +03:00
Donald Sharp
9f4c654c59 tests: static_simple gives up after 3 seconds
Under heavy system load we can see that the static_simple
test is giving up too early in this micronet run:

8-17 15:00:27,105 DEBUG: topo: Waiting for [0.1]s as initial delay
2023-08-17 15:00:27,206 DEBUG: r1: cmd_status("/bin/bash -c 'ip -4 route show'")
2023-08-17 15:00:28,209 DEBUG: r1:
	stdout: 101.0.0.0/24 dev r1-eth0 proto kernel scope link src 101.0.0.1
2023-08-17 15:00:28,209 DEBUG: topo: checking kernel routing table:
101.0.0.0/24 dev r1-eth0 proto kernel scope link src 101.0.0.1

2023-08-17 15:00:28,210  INFO: topo: Function raised exception: Failed to find
  '10.0.0.0/8(?: nhid [0-9]+)? via 101.0.0.2 dev r1-eth0 proto (static|196) metric 20'
   in
  '101.0.0.0/24 dev r1-eth0 proto kernel scope link src 101.0.0.1
  '
assert None
 +  where None = <function search at 0x7f405b7bb0a0>('10.0.0.0/8(?: nhid [0-9]+)? via 101.0.0.2 dev r1-eth0 proto (static|196) metric 20', '101.0.0.0/24 dev r1-eth0 proto kernel scope link src 101.0.0.1 \n')
 +    where <function search at 0x7f405b7bb0a0> = re.search
2023-08-17 15:00:28,210 DEBUG: topo: Sleeping 2s until next retry with 3.0 retry time left
2023-08-17 15:00:30,211 DEBUG: r1: cmd_status("/bin/bash -c 'ip -4 route show'")
2023-08-17 15:00:31,703 DEBUG: r1:
	stdout: 101.0.0.0/24 dev r1-eth0 proto kernel scope link src 101.0.0.1
2023-08-17 15:00:31,703 DEBUG: topo: checking kernel routing table:
101.0.0.0/24 dev r1-eth0 proto kernel scope link src 101.0.0.1

2023-08-17 15:00:31,704  INFO: topo: Function raised exception: Failed to find
  '10.0.0.0/8(?: nhid [0-9]+)? via 101.0.0.2 dev r1-eth0 proto (static|196) metric 20'
   in
  '101.0.0.0/24 dev r1-eth0 proto kernel scope link src 101.0.0.1
  '
assert None
 +  where None = <function search at 0x7f405b7bb0a0>('10.0.0.0/8(?: nhid [0-9]+)? via 101.0.0.2 dev r1-eth0 proto (static|196) metric 20', '101.0.0.0/24 dev r1-eth0 proto kernel scope link src 101.0.0.1 \n')
 +    where <function search at 0x7f405b7bb0a0> = re.search
2023-08-17 15:00:31,704  INFO: topo: Retry timeout of 3s reached
2023-08-17 15:00:31,704  INFO: topo: Spawn collection of support bundle for r1
2023-08-17 15:00:31,704 DEBUG: r1: cmd_status("/bin/bash -c 'mkdir -p /tmp/topotests/static_simple.test_static_simple/r1/support_bundles/test_static_cli'")
2023-08-17 15:00:31,710 DEBUG: r1: popen("/usr/lib/frr/generate_support_bundle.py --log-dir=/tmp/topotests/static_simple.test_static_simple/r1/support_bundles/test_static_cli")
2023-08-17 15:00:31,711 DEBUG: topo: Waiting on support bundle for r1
2023-08-17 15:00:31,751 DEBUG: topo: RETRY DIAG: [failure] Sleeping 2s until next retry with 2.2 retry time left - too see if timeout was too short
2023-08-17 15:00:33,751 DEBUG: r1: cmd_status("/bin/bash -c 'ip -4 route show'")
2023-08-17 15:00:35,137 DEBUG: r1:
	stdout: 10.0.0.0/8 nhid 12 via 101.0.0.2 dev r1-eth0 proto 196 metric 20...
2023-08-17 15:00:35,137 DEBUG: topo: checking kernel routing table:
10.0.0.0/8 nhid 12 via 101.0.0.2 dev r1-eth0 proto 196 metric 20
101.0.0.0/24 dev r1-eth0 proto kernel scope link src 101.0.0.1

2023-08-17 15:00:35,137 DEBUG: topo: Function returned None
2023-08-17 15:00:35,138  WARN: topo: RETRY DIAGNOSTIC: SUCCEED after FAILED with requested timeout of 3.0s; however, succeeded in 8.0s, investigate timeout timing
2023-08-17 15:00:35,138  INFO: topo: Function raised exception: Failed to find
  '10.0.0.0/8(?: nhid [0-9]+)? via 101.0.0.2 dev r1-eth0 proto (static|196) metric 20'
   in
  '101.0.0.0/24 dev r1-eth0 proto kernel scope link src 101.0.0.1
  '
assert None
 +  where None = <function search at 0x7f405b7bb0a0>('10.0.0.0/8(?: nhid [0-9]+)? via 101.0.0.2 dev r1-eth0 proto (static|196) metric 20', '101.0.0.0/24 dev r1-eth0 proto kernel scope link src 101.0.0.1 \n')
 +    where <function search at 0x7f405b7bb0a0> = re.search
2023-08-17 15:00:35,138 DEBUG: topo: RETRY DIAG: [failure] Sleeping 2s until next retry with 0.2 retry time left - too see if timeout was too short
2023-08-17 15:00:37,139 DEBUG: r1: cmd_status("/bin/bash -c 'ip -4 route show'")
2023-08-17 15:00:37,247 DEBUG: r1:
	stdout: 10.0.0.0/8 nhid 12 via 101.0.0.2 dev r1-eth0 proto 196 metric 20...

Of course it works in the extra couple of times it tries but the test still fails.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-08-20 18:43:48 -04:00
Donald Sharp
3e5a31b24e bgpd: Convert struct peer_connection to dynamically allocated
As part of the conversion to a `struct peer_connection` it will
be desirable to have 2 pointers one for when we open a connection
and one for when we receive a connection.  Start this actual
conversion over to this in `struct peer`.  If this sounds confusing
take a look at the bgp state machine for connections and how
it resolves the processing of this router opening -vs- this
router receiving an open.  At some point in time the state
machine decides that we are keeping one of the two connections.

Future commits will allow us to untangle the peer/doppelganger
duality with this abstraction.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-08-18 09:29:04 -04:00
Donald Sharp
e20c23fa5b bgpd: Move status and ostatus to struct peer_connection
The status and ostatus are a function of the `struct peer_connection`
move it into that data structure.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-08-18 09:29:04 -04:00
Donald Sharp
c528b3b153 bgpd: Move t_write and t_read into struct peer_connection
Move the peer->t_write and peer->t_read into `struct peer_connection`
as that these are properties of the connection.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
P# Please enter the commit message for your changes. Lines starting
2023-08-18 09:29:04 -04:00
Donald Sharp
1f32eb30d9 bgpd: Start abstraction of struct peer_connection
BGP tracks connections based upon the peer.  But the problem
with this is that the doppelganger structure for it is being
created.  This has introduced a bunch of fragileness in that
the peer exists independently of the connections to it.

The whole point of the doppelganger structure was to allow
BGP to both accept and initiate tcp connections and then
when we get one to a `good` state we collapse into the
appropriate one.  The problem with this is that having
2 peer structures for this creates a situation where
we have to make sure we are configing the `right` one
and also make sure that we collapse the two independent
peer structures into 1 acting peer.  This makes no sense
let's abstract out the peer into having 2 connection
one for incoming connections and one for outgoing connections
then we can easily collapse down without having to do crazy
stuff.  In addition people adding new features don't need
to have to go touch a million places in the code.

This is the start of this abstraction.  In this commit
we'll just pull out the fd and input/output buffers
into a connection data structure.  Future commits
will abstract further.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-08-18 09:29:04 -04:00
Donatas Abraitis
d02fae5836 zebra: Show NHT resolve via default status on/off
```
donatas-laptop# show ip nht
VRF default:
 Resolve via default: on
192.168.10.123
 resolved via connected
 is directly connected, wlp82s0 (vrf default)
 Client list: bgp(fd 21)
donatas-laptop# show ip nht json
{
  "default":{
    "ipv4":{
      "resolveViaDefault":true,
      "192.168.10.123":{
        "nhtConnected":false,
        "clientList":[
          {
            "protocol":"bgp",
            "socket":21,
            "protocolFiltered":"none"
          }
        ],
        "nexthops":[
          {
            "flags":3,
            "fib":true,
            "directlyConnected":true,
            "interfaceIndex":3,
            "interfaceName":"wlp82s0",
            "vrf":"default",
            "active":true
          }
        ],
        "resolvedProtocol":"connected"
      }
    }
  }
}
donatas-laptop# show ip nht vrf all

VRF default:
 Resolve via default: on
192.168.10.123
 resolved via connected
 is directly connected, wlp82s0 (vrf default)
 Client list: bgp(fd 21)
donatas-laptop# show ip nht vrf all json
{
  "default":{
    "ipv4":{
      "resolveViaDefault":true,
      "192.168.10.123":{
        "nhtConnected":false,
        "clientList":[
          {
            "protocol":"bgp",
            "socket":21,
            "protocolFiltered":"none"
          }
        ],
        "nexthops":[
          {
            "flags":3,
            "fib":true,
            "directlyConnected":true,
            "interfaceIndex":3,
            "interfaceName":"wlp82s0",
            "vrf":"default",
            "active":true
          }
        ],
        "resolvedProtocol":"connected"
      }
    }
  }
}
donatas-laptop#
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-08-17 21:45:55 +03:00
Donald Sharp
bd6a00e8f7
Merge pull request #14181 from opensourcerouting/fix/bgpd_labeled_unicast_set_explicit_null
bgpd: Assign explicit-null for default-originate according to the AFI
2023-08-16 09:25:49 -04:00
mobash-rasool
2b4e038711
Merge pull request #14193 from donaldsharp/pim_vxlan_weirdness
Do not look into pim's eyes, pim gets mad
2023-08-15 22:26:21 +05:30
Donald Sharp
77014daf3a
Merge pull request #14016 from mjstapp/event_exec_ptr
* : include event ptr in event_execute api
2023-08-15 11:52:49 -04:00
Donatas Abraitis
0c7d6dfdf0
Merge pull request #14126 from LabNConsulting/ziemba-pbr-actions-mangling
pbrd: (3/3) add packet mangling actions (src/dst ip-addr/port, dscp, ecn)
2023-08-13 16:39:07 +03:00
Donald Sharp
9276533bbd tests: Make bgp_evpn_mh a 3 level clos
The tests were originally tor --- spine
lets add a tor -- leaf -- spine.  At this
point this change was to allow me to test
some funkiness I am seeing in pim vxlan setups
when the leaf is acting as the intermediate routers.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-08-11 23:51:07 -04:00
Donatas Abraitis
e7dce035ab tests: Check if labeled IPv6 unicast default route works too
Also, check if remote label is explicit null according to the AFI.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-08-11 10:52:39 +03:00
Philippe Guibert
17c3f31642 topotests: add static mpls routing test
There is no test that checks for the mpls interface
configuration.
The new test checks that mpls configuration per
interface works when value is enabled or disabled.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-08-10 18:13:21 +02:00
Quentin Young
e0c1b43814 tests: amalgamate check_ping
✂️📋

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2023-08-09 15:46:29 -04:00
G. Paul Ziemba
ba240bcfa3 pbrd: add packet mangling actions (src/dst ip-addr/port, dscp, ecn)
Signed-off-by: G. Paul Ziemba <paulz@labn.net>
2023-08-09 12:11:43 -07:00
Donatas Abraitis
df04c23c8f
Merge pull request #14073 from fdumontet6WIND/as_path_replace_reg
bgpd: add set as-path replace acl-list command
2023-08-09 15:28:58 +03:00
Russ White
a84dee73d1
Merge pull request #14154 from opensourcerouting/feature/bgpd_handle_role_capability_using_dynamic_capability
bgpd: Handle role capability using dynamic capability
2023-08-08 10:47:04 -04:00
Francois Dumontet
459e1cd903 tests: add one test to bgp_set_aspath_replace.py
add support of  set as-path replace as-path-access-list

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-08-07 12:30:34 +02:00
Donald Sharp
529203905b
Merge pull request #14151 from opensourcerouting/fix/improve_addpath_selected_test
tests: Improve bgp_addpath_best_selected topotest
2023-08-06 17:01:16 -04:00
Donatas Abraitis
6d91d1c768
Merge pull request #14149 from donaldsharp/cleanup_bad_commands
Cleanup bad commands
2023-08-06 20:10:23 +03:00
Donatas Abraitis
2b5236dbb3 tests: Check if role capability is exchanged via dynamic capability
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-08-05 22:57:06 +03:00
Donatas Abraitis
0ba5225b92 tests: Drop duplicate neighbor definition
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-08-04 23:22:38 +03:00
Donald Sharp
d65249aa65
Merge pull request #14148 from opensourcerouting/fix/tests_bgp_addpath_failing_sometimes
tests: Use a correct syntax for defining keepalive/hold timers
2023-08-04 15:44:10 -04:00
Donatas Abraitis
dcf133fdf6 tests: Improve bgp_addpath_best_selected topotest
Test everything else only after we have an initial good state.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-08-04 22:34:17 +03:00
Donald Sharp
d676e8c412 tests: isis_snmp, ldpd doesn't talk to snmp
isis_snmp.test_isis_snmp/r1/ldpd.log:2023/08/04 12:49:54 LDP: [SHWNK-NWT5S][EC 100663304] No such command on config line 8: agentx

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-08-04 13:06:56 -04:00
Donald Sharp
5eceb87d06 tests: babel_topo1 Another no such command
babel_topo1.test_babel_topo1/r3/babeld.log:2023/08/04 12:46:55 BABELD: [SHWNK-NWT5S][EC 100663304] No such command on config line 17:  redistirbute ipv6 connected

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-08-04 13:05:42 -04:00
Donald Sharp
27de57ec33 tests: config_timing calls non-existent command
./config_timing.test_config_timing/r1/zebra.log:2023/08/04 12:34:29 ZEBRA: [SHWNK-NWT5S][EC 100663304] No such command on config line 7: exit-route-map
./config_timing.test_config_timing/r1/zebra.log:2023/08/04 12:34:29 ZEBRA: [SHWNK-NWT5S][EC 100663304] No such command on config line 10: exit-route-map

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-08-04 13:04:48 -04:00
Donald Sharp
8487fd07d6 tests: bfd_ospf_topo1 there is no passive interface command
./bfd_ospf_topo1.test_bfd_ospf_topo1/rt3/ospfd.log:2023/08/04 12:46:58 OSPF: [SHWNK-NWT5S][EC 100663304] No such command on config line 28:  passive interface lo
./bfd_ospf_topo1.test_bfd_ospf_topo1/rt5/ospfd.log:2023/08/04 12:46:59 OSPF: [SHWNK-NWT5S][EC 100663304] No such command on config line 27:  passive interface lo
./bfd_ospf_topo1.test_bfd_ospf_topo1/rt1/ospfd.log:2023/08/04 12:46:56 OSPF: [SHWNK-NWT5S][EC 100663304] No such command on config line 30:  passive interface lo
./bfd_ospf_topo1.test_bfd_ospf_topo1/rt4/ospfd.log:2023/08/04 12:47:00 OSPF: [SHWNK-NWT5S][EC 100663304] No such command on config line 27:  passive interface lo
./bfd_ospf_topo1.test_bfd_ospf_topo1/rt2/ospfd.log:2023/08/04 12:46:57 OSPF: [SHWNK-NWT5S][EC 100663304] No such command on config line 28:  passive interface lo

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-08-04 13:03:44 -04:00
Donald Sharp
965405e25a tests: ospf6_gr_topo1 attempts, but fails to set the password
Irrelevant and let's just remove it.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-08-04 13:01:54 -04:00
Donald Sharp
59f24a5b06 tests: cspf_topo1 has import-te in sharpd.conf
This will never work, let's remove

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-08-04 13:00:36 -04:00
Donald Sharp
a3dda89f45 tests: bgp_update_delay is not even using frr cli syntax
Let's just remove it.   Looks like iproute2 configuration

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-08-04 12:58:53 -04:00
Donald Sharp
dd02d8926c tests: bgp_vpnv4_noretain test turns on isis but never uses it
The test was reading in the bgp config for the isis config and
clearly the test is working without this.  So let's remove
from the test the usage of isisd

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-08-04 12:56:11 -04:00
Donatas Abraitis
40558baf47 tests: Use a correct syntax for defining keepalive/hold timers
BGP: [SHWNK-NWT5S][EC 100663304] No such command on config line 2:  timers 3 10

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-08-04 19:31:05 +03:00
Donatas Abraitis
8bf9ea0611 tests: Check if we can handle software version capability dynamicaly
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-08-03 17:08:32 +03:00
Donald Sharp
cbbbf64f9a tests: Remove unused file in isis_snmp test
The */show_ip_route.ref files are never used, let's remove them
to prevent any future issues.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-08-02 07:15:59 -04:00
Jafar Al-Gharaibeh
ec8ae8f093
Merge pull request #14125 from opensourcerouting/fix/drop_unused_lua_stuff
lib: Do not use time_t as a special Lua encoder/decoder
2023-08-01 23:52:56 -05:00
Donald Sharp
369bdcaa1e tests: Convert d1 and d2 to output and expected in gen_json_diff_report
The output of gen_json_diff_report is used all over the place and
it outputs d1 and d2.  Let's change this to output and expected
as that is how it is used.  Should help with debugging.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-08-01 07:57:16 -04:00
Donald Sharp
29848dbe98 tests: Run black over lib/topotest.py
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-08-01 07:57:16 -04:00
Donald Sharp
0099493f1e tests: Start using output and expected vs d1 and d2
Let us start using output and expected in lib/topotest.py
because when we see output it is confusing what d1 is
versus what d2 is.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-08-01 07:57:16 -04:00
Donatas Abraitis
27dbf81a73 lib: Do not use time_t as a special Lua encoder/decoder
This is purely an integer (long long/long), and causes issues for 32-bit systems.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-08-01 14:08:25 +03:00
Farid Mihoub
6e01399077 tests: test set extended-comm-list <> delete command
Signed-off-by: Farid Mihoub <farid.mihoub@6wind.com>
2023-07-31 11:52:40 +02:00
Donatas Abraitis
27330655f3
Merge pull request #14112 from donaldsharp/test_sponging
Test sponging
2023-07-31 10:02:36 +03:00
Donald Sharp
15bf9baa98 tests: Convert isis to use 1 and 10 for hello/multiplier
Current isis tests use a variety of hello timers as well
as hello-multiplier, let's modify all of the isis test
cases to use 1 and 10.  This cleans up some spurious test
failures I was seeing locally.  As an example without
these changes running isis_tilfa_topo1 2r6 times I would
see 5-10 test failures now I am seeing ~2 test failures.

In any event part of the problem was that some tests were
not fully converged when looking at them under heavy
system load.  Changing this to 1/10 gives us 10 chances
to see the incoming packet.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-29 13:39:37 -04:00
Donald Sharp
940ac2a6fd tests: bfd_bgp_cbit_topo3 allow bgp to converge before testing
This test was failing upstream a bunch of times.  Upon examining
the log files as well as the test script it was noticed that
the bfd peers were checked to see that they had come up.  But
both the timers used for bgp as well as not checking that bgp
has actually come up would cause the test to fail in subsuquent
steps if bgp has not come up.  Test that bgp peering is actually
established before testing link down events.  It's possible
this test might need to be revisited to ensure that the routes
are actually installed and ready to go before as well, but I am
not seeing that right now.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-29 13:39:37 -04:00
Donald Sharp
e566e565c5 tests: Fix zebra_seg6_route to give more time for routes to be installed
This test is failing upstream regularly, when inspecting the log
files we see that the route being looked for is in a queued state
when the test fails.  Give this test more time for when the
system is under severe load.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-29 13:39:37 -04:00
Donald Sharp
3984301417 tests: isis_te_topo1 can fail occassionally
Upstream ( and locally ) this test fails.  The adj-sid value
being looked for in the testing is a dynamic value that is
assigned based upon how the network comes up.  The reality
is that there is no enforced order of what the adj-sid
can be.  As such this test looking for this value makes
no sense.  Let's remove that from the test.

Additionally bring the isis hello-interval to 1 down
from 3 to make things converge faster.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-29 13:39:37 -04:00
Donald Sharp
b0e3fcfe8c tests: zebra_netlink ensure the address is installed
Ran test under high load and system rejected the sharp
install of routes.  Only reason that that would happen
would be if the address had not been set by the kernel
yet.  The test log files had timestamp precision and the
addition of the sharp routes was under 1/10 of a second
after the address was attempted to be installed.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-29 13:39:37 -04:00
Renato Westphal
2dd4cad60b tests: increase wait timer in TI-LFA topotest
Starting from step 11, this topotest focuses on validating the TI-LFA
switchover functionality, where the backup nexthops are activated
after an adjacency expires, either with or without BFD.

Currently, the test checks the RIB shortly after the switchover using
a tight 5 seconds interval to ensure that the RIB update is due to the
switchover and not an SPF update (which is configured with an initial
delay of 15 seconds). However, it was observed that the kernel might
take longer than 5 seconds to install routes when the system is under
heavy load. To account for that, double the wait interval so that
this topotest will succeed even in those conditions.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2023-07-29 14:18:39 -03:00
Renato Westphal
174a3d1b6e tests: ensure BFD session is up before proceeding to the next step
In this topotest, BFD is configured at the end of step 13. However,
in certain cases where the testing machine is exceptionally fast (e.g.,
Donald's quantum computer), there is a possibility that the interface
shutdown event from step 14 may occur before BFD has had sufficient
time to establish the session, which leads to a test failure. To fix
this problem, ensure the BFD session is up before proceeding to the
next step.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2023-07-29 14:18:39 -03:00
Renato Westphal
824b1d299a tests: increase hello multiplier in TI-LFA topotest
In this topotest, the IS-IS hello interval is set to 1 for fast
convergence. However, the current hello multiplier of 3 results in a
tight IS-IS adjacency holdtime of 3 seconds. This tight timeframe can
cause failures when the testing machine is running multiple tests at
full capacity. To improve stability under such conditions, this commit
raises the hello multiplier to 10, providing a more forgiving holdtime
and reducing the likelihood of failures.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2023-07-29 14:10:31 -03:00
Russ White
3f043d027f
Merge pull request #14050 from LabNConsulting/ziemba-pbr-zapi-common
pbrd: 2/3 zapi PBR common encode/decode
2023-07-25 10:55:50 -04:00
Russ White
6109c9a36b
Merge pull request #14086 from qlyoung/fix-strncpy-warning
tests: fix strncpy warning
2023-07-25 10:23:35 -04:00
Mark Stapp
adca5c22c5 * : include event ptr in event_execute api
Include an event ptr-to-ptr in the event_execute() api
call, like the various schedule api calls. This allows the
execute() api to cancel an existing scheduled task if that
task is being executed inline.

Signed-off-by: Mark Stapp <mjs@labn.net>
2023-07-25 10:17:48 -04:00
Russ White
82d8e7d5fa
Merge pull request #13945 from pguibert6WIND/redistribute_isis_table
Redistribute isis table
2023-07-25 10:16:46 -04:00
Quentin Young
64c549e68c tests: fix strncpy warning
GCC/clang warns about using strncpy in such a way that it does not copy
the null byte of a string; as implemented it was fine, but to fix the
warning, just use strlcat which was purpose made for the task being
accomplished here.

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2023-07-24 19:03:24 -04:00
Donatas Abraitis
3a58764e3a
Merge pull request #14034 from LabNConsulting/aceelindem/ospf_prefix_suppression
ospfd: Implement OSPF prefix-suppression as specified in RFC 6860
2023-07-21 10:14:22 +03:00
Acee
e2eea4fe8e ospfd: Implement OSPF prefix-suppression as specified in RFC 6860
Signed-off-by: Acee <aceelindem@gmail.com>
2023-07-20 14:56:43 -04:00
G. Paul Ziemba
580a98b798 lib: zapi PBR common encode/decode
bgpd, pbrd: use common pbr encoder
    zebra: use common pbr decoder
    tests: pbr_topo1: check more filter fields

    Purpose:
	1. Reduce likelihood of zapi format mismatches when adding
	   PBR fields due to multiple parallel encoder implementations
	2. Encourage common PBR structure usage among various daemons
	3. Reduce coding errors via explicit per-field enable flags

Signed-off-by: G. Paul Ziemba <paulz@labn.net>
2023-07-20 08:10:45 -07:00
Donald Sharp
1b1d256f03
Merge pull request #14026 from LabNConsulting/pbr-add-vlan-filters
pbrd: 1/3: add vty support for vlan filtering and send to zebra
2023-07-20 08:01:24 -04:00
G. Paul Ziemba
8b330fe8b7 pbrd: add vlan filters pcp/vlan-id/vlan-flags; ip-protocol any (doc, tests)
Subset: doc and tests

    doc
	PBR section updated with new fields and some copy-editing

    tests
	pbr_topo1: ensure new vlan fields arrive at zebra

    Changes by:
	Josh Werner <joshuawerner@mitre.org>
	Eli Baum <ebaum@mitre.org>
	G. Paul Ziemba <paulz@labn.net>

Signed-off-by: G. Paul Ziemba <paulz@labn.net>
2023-07-19 08:15:45 -07:00
Kuldeep Kashyap
3066746f5f tests: Update join state in verify_upstream_iif API
When JoinState is not passed to API it is expected to
be in Joined state, there was a minor bug in API, where
it was printng JoinState as None, which is default value
in API. Updated value to print Joined when verification
fails.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2023-07-19 19:21:01 +05:30
Francois Dumontet
291d334595 tests: add one test to bgp_exclude_aspath_exclude.py
add support of  set as-path exclude as-path-access-list

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-07-19 10:58:15 +02:00
Donald Sharp
37940809ad
Merge pull request #14037 from opensourcerouting/feature/enable_software_capability_for_datacenter_profile_by_default
bgpd: Enable software version capability for datacenter profile
2023-07-18 09:19:19 -04:00
Russ White
8593341164
Merge pull request #13868 from zice312963205/zly_mapflag
bgpd:Fixing a conflict issue between rmap_in_change_flag and rmap_out…
2023-07-18 09:14:50 -04:00
Russ White
a510c23641
Merge pull request #12964 from FRIDM636/bmp-basic-test
Add basic bgp bmp test
2023-07-18 08:53:07 -04:00
Donatas Abraitis
83d6a6a6e8
Merge pull request #14009 from rgangam-PAN/master
test_grpc.cpp Fix Compilation Error and RuntimePath for finding grpc.so
2023-07-18 09:47:10 +03:00
Donatas Abraitis
30db544508 bgpd: Send software-version capability by default
Useful to have it for datacenter profile only, disabled for traditional.

If the peer is not established or established, but has no description set,
we will show the FRR version instead, which is kinda handy to have instead of
nothing.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-07-18 09:42:48 +03:00
Donatas Abraitis
612f32c834 tests: Add SPDX-License-Identifier for bgp_software_version topotest
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-07-18 09:42:09 +03:00
Jack.zhang
2b4b4aeb67 test: fix the topotest case for the bug fix
Signed-off-by: Jack.zhang <hanyu.zly@alibaba-inc.com>
2023-07-18 14:19:46 +08:00
G. Paul Ziemba
e4a3fe6610 tests: test_babel_topo1: tolerate slow results
Signed-off-by: G. Paul Ziemba <paulz@labn.net>
2023-07-16 14:35:25 -07:00
Donald Sharp
7b52fccc62
Merge pull request #14019 from LabNConsulting/chopps/fix-mgmtd-assert
fix double lock bug and cmd resume early bugs
2023-07-15 16:05:09 -04:00
Donald Sharp
c26aa79ad0
Merge pull request #14020 from LabNConsulting/chopps/check-bt-cores-per-test
check for bt and cores per test
2023-07-15 15:59:25 -04:00
Donald Sharp
b4dd2fd841
Merge pull request #14008 from LabNConsulting/chopps/fix-backtrace
tests: fix/improve the printing of backtrace from cores
2023-07-15 15:59:15 -04:00
Christian Hopps
fd743a6a8e tests: backtraces/cores now fail tests
Previously we just raised an error for the test file with possibly all tests
passing. Now we fail any test that produces new backtraces or cores. This
just works a lot better with analysis and even CI.

Also be less verbose to the console after failure runs, just show error
level and above logs. The log files still capture all levels (DEBUG).

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-07-15 00:26:03 -04:00
Christian Hopps
884fe82ceb tests: add regression test for issue $13920
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-07-14 19:29:57 -04:00
Christian Hopps
2a1787aef8 tests: fix/improve the printing of backtrace from cores
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-07-14 11:12:39 -04:00
Donatas Abraitis
31a985729e
Merge pull request #13993 from achernavin22/fix-rmap-on-match2
lib: fix on-match when added to existing route-map entry
2023-07-14 12:05:02 +03:00
Rajesh Gangam
509c7e5cd9 tests: Fix Compilation Error and RuntimePath changes for test_grpc
The runtime path for grpc.so has been changed for test_grpc.cpp
and also there were couple of definitions which are duplicate,
hence renamed them.

Signed-off-by: Rajesh Gangam <rajeshgangam@gmail.com>
2023-07-14 01:17:35 +00:00
Alexander Chernavin
633eb6ee77 lib: fix on-match when added to existing route-map entry
Currently, "on-match (next|goto)" only works if already present in a
route-map entry when the route-map is applied to the routes. However, if
the command is added to an existing route-map entry, the route-map is
not reapplied to the routes in order to accommodate the changes. And
service restart is needed. The problem is that setting the command
doesn't signal about the change to the listener (i.e. to a routing
daemon).

With this fix, signal to the listener about addition of "on-match
(next|goto)" to a route-map entry.

Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
2023-07-13 08:40:36 +00:00
Donald Sharp
0cbd5855a9 ospf6d: Convert ospf6_lsa_unlock to a better api
Make the ospf6_lsa_unlock take the same parameters
that the ospf_lsa_unlock does to make it consistent
and to also ensure that no-one can make the mistake
of getting the pointer cleared up.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-12 17:56:29 -04:00
Farid Mihoub
d748544769 topotests: add basic bgp bmp test
Test BMP messages logging.
Configure the BMP monitoring policy, add and withdraw IPv4/v6 prefixes.
Check if the received messages coincide with the monitored router BGP
session activity.

Signed-off-by: Farid Mihoub <farid.mihoub@6wind.com>
2023-07-12 14:54:06 +02:00
Farid Mihoub
875511c466 topotests: add basic bmp collector
Signed-off-by: Farid Mihoub <farid.mihoub@6wind.com>
2023-07-12 14:54:06 +02:00
Philippe Guibert
23cd58e857 topotests: add isis redistribute table functionality
Add a test to ensure that isis redistribution works
well.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-07-12 14:06:00 +02:00
Russ White
916feb7acc
Merge pull request #13885 from donaldsharp/tests_need_to_be_stricter
Tests need to be stricter
2023-07-11 11:49:38 -04:00
Russ White
89aba318f7
Merge pull request #13876 from LabNConsulting/mjs/nhrp_resolving
Allow NHRP routes to validate incoming nexthops
2023-07-11 11:48:16 -04:00
Russ White
6e89a5db22
Merge pull request #13691 from LabNConsulting/aceelindem/ospf-opaque-interface-disable
ospfd: Configurable interface-level 'capability opaque' support
2023-07-11 11:47:32 -04:00
Russ White
220d7b1a89
Merge pull request #13948 from opensourcerouting/fix/bgpd_rfc7606_adjustments
bgpd: Some rfc7606 adjustments
2023-07-11 10:19:30 -04:00
Mark Stapp
bf465adc57 tests: add route-install test using NHRP tunnel
Add a test-case to the NHRP test that installs routes over the
NHRP tunnel endpoint routes. This confirms that zebra will use
NHRP routes when validating incoming routes from other daemons
(sharpd in this test).

Signed-off-by: Mark Stapp <mjs@labn.net>
2023-07-10 16:43:53 -04:00
David Schweizer
59640b7223
tests: fix BGP delayopen timer expiration test
The changes allow the test to correctly pass in case the connection
between two peers is be established in less than 0.5 seconds after the
delayopen timer expires.

Signed-off-by: David Schweizer <dschweizer@opensourcerouting.org>
2023-07-10 15:46:05 +02:00
Donald Sharp
162b61ec16 tests: bgp_flowspec expand timings
Attempt to set the hold time in the bgp flowspec exabgp
config.  In addition it was noticed that upstream bgp_flowspec
tests are still not negotiating peering within the time frame
specified.  This is because the first tcp packet is missed
and no keepalive/hold time are negotiated and exabgp will
not attempt a reconnect for quite some time.  Make this
test slower when things go south.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-10 09:06:40 -04:00
Donald Sharp
377e92bc89 tests: Fix wrong config line in bgp_l3vpn_to_bgp_vrf
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-10 09:06:40 -04:00
Donald Sharp
f5c44adb73 tests: isis_tilfa_topo1 fails sometimes due to insufficient time
The isis_tilfa_topo1 test is failing because insufficient time was
given for isis to converge on the system under system load.  Extend
the time and decrease the hello-interval timers to give it more
of a chance to converge.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-10 09:06:40 -04:00
Donald Sharp
ce51339205 tests: bgp_vpnv4_per_nexthop_label is failing
The test is failing because it assumes a json key
is always present when it is not.  Test for it
before having the test fail.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-10 09:06:40 -04:00
Donald Sharp
481c540d28 tests: zebra_rib route-map run times fixup
I have a local test run where the sharp route-map usage
was being checked for 5 seconds.  I saw usages going up
for each 1 second check and the 5th one was at 497 out
of 500.  Looks like the system was really loaded.  Let's
give it more time to coalesce under heavy load.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-10 09:06:40 -04:00
Donald Sharp
9b38d8fec9 tests: Do not remove core files
Tests are removing core files and we are missing some
of them because of this.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-10 09:06:40 -04:00
Donald Sharp
a8510639ad tests: If a core file is generated fail the test
If a .dmp file is found in the test log directories
fail the test.

Issue: #13788
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-10 09:06:40 -04:00
Donald Sharp
caa278d0c7 tests: Look for zlog_backtrace in ci system
There are parts of our daemons that upon certain types
of errors that a zlog_backtrace is auto-generated.
It is desirable for this to be caught and have the
test auto-failed.

Issue: #13787
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-07-10 09:06:40 -04:00
Donatas Abraitis
bea517b669 tests: Ignore test_darr for git
This file is generated after `make check`.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-07-08 22:41:34 +03:00
Donatas Abraitis
c1ccfa977a bgpd: Check if originator-id attribute is not received via eBGP session
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-07-07 23:01:13 +03:00
Donald Sharp
3b496e9b5d
Merge pull request #13915 from pguibert6WIND/bgp_vpnv6_per_nexthop_better_test
topotests: label per nexthop ipv6 test adds add a while loop for mpls…
2023-07-06 16:21:19 -04:00
Donatas Abraitis
2ec7477a26
Merge pull request #13808 from anlancs/fix/zebra-kernel-route-reserved
zebra: fix wrong nexthop check for kernel routes
2023-07-06 09:01:21 +03:00
Philippe Guibert
48f73cbd2f topotests: label per nexthop ipv6 test adds add a while loop for mpls table
The bgp_vpnv6_per_nexthop_label tests only check to see if the mpls labels
are installed one time. Test runs show that all but one label is installed.
More than likely the test has asked for data while zebra is still installing
it. the mpls_label_check functions must check this result multiple times as
that system may be under heavy load.

A loop is introduced in order to let zebra check the mpls table.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-07-05 21:58:38 +02:00
Donald Sharp
806b0ca085
Merge pull request #13916 from pguibert6WIND/vpnv4_asbr_test_complement
topotests: bgp_vpnv4_asbr, wait that mpls entry is installed
2023-07-03 08:34:01 -04:00
Philippe Guibert
37b602a69d topotests: bgp_vpnv4_asbr, wait that mpls entry is installed
Ensure in the test that MPLS entries are installed before
declaring the test fails.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-07-03 10:27:23 +02:00
anlan_cs
019ac03e5b tests: Check if kernel routes work with changed vrf
Check `show ip route` for specific kernel routes after
the interface as their nexthop changes vrf.

After moving interface's vrf, there should be no kernel
route in old vrf.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2023-07-02 10:30:09 +08:00
Donatas Abraitis
3b02d99f33
Merge pull request #13836 from pguibert6WIND/set_aspath_replace_with_configured_asn
bgpd: add 'set as-path replace' with a configured ASN
2023-06-30 12:39:55 +03:00
Jafar Al-Gharaibeh
6f0aef2ef8
Merge pull request #13866 from LabNConsulting/mgmtd/incllang
Changes for inclusive language and other cleanup
2023-06-29 17:14:21 -05:00
Donald Sharp
c65e7e7c3f tests: Fix broken check_ping run_and_expect semantics
*again*.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-06-29 10:42:11 -04:00
Philippe Guibert
a3f0a1f5ed bgpd: add 'set as-path replace' with a configured ASN
There is no route-map set action to replace any ASN,
or a part of an ASN, with a configured ASN.

The current commit adds a new command to use a configured
ASN as replacement, instead of using the local as number.

> set as-path replace any 65500

Update the 'bgp_set_aspath_replace' test.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-06-28 21:21:55 +02:00
Acee
e72549c8f6 ospfd: Configurable interface-level 'capability opaque' support
Add support for "[no] ip ospf capbility opaque" at the interface
    level with the default being capability opaque enabled. The command
    "no ip ospf capability opaque" will disable opaque LSA database
    exchange and flooding on the interface. A change in configuration
    will result in the interface being flapped to update our options
    for neighbors but no attempt will be made to purge existing LSAs
    as in dense topologies, these may received by neighbors through
    different interfaces.

    Topotests are added to test both the configuration and the LSA
    opaque flooding suppression.

Signed-off-by: Acee <aceelindem@gmail.com>
2023-06-28 13:03:48 -04:00
Christian Hopps
e6e0c5bd25 lib: add dynamic array type
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-06-27 18:00:56 -04:00
Russ White
4a7d9469f2
Merge pull request #13826 from opensourcerouting/fix/ripng_match_ipv6_acls
ripng: match ipv6 address [prefix-list] CMDs
2023-06-27 11:31:23 -04:00
Donatas Abraitis
53785cdd43
Merge pull request #13628 from kuldeepkash/uplink_mcast_tests
tests: Add multicast-pim-multi-uplink test suite
2023-06-27 13:34:17 +03:00
Donatas Abraitis
4199f032e5
Merge pull request #13722 from fdumontet6WIND/color_extcomm
bgpd,lib,yang: add colored extended communities support
2023-06-27 13:03:22 +03:00
Francois Dumontet
9ec092c6a2 tests: add bgp colored extended community test
Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-06-26 14:27:27 +02:00
Kuldeep Kashyap
e3122819e9 tests: Add multicast-pim-multi-uplink-topo3 suite
Added 4 new test cases to verify multicast PIM
uplink(8 uplink) functionality.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2023-06-26 09:30:04 +05:30
Kuldeep Kashyap
e350fb986e tests: Add multicast-pim-multi-uplink-topo2 suite
Added 4 new test cases to verify multicast PIM
uplink(8 uplink) functionality.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2023-06-26 09:30:04 +05:30
Jafar Al-Gharaibeh
499eae6c6b
Merge pull request #13795 from LabNConsulting/chopps/mgmt-lock-cleanup
mgmt lock simplification
2023-06-22 13:31:27 -05:00
Donatas Abraitis
2d4da959a6 tests: Check if match ipv6 address [prefix-list] CMDs work for ripng
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-06-22 00:14:03 +03:00
Russ White
be4cfbd2b8
Merge pull request #13790 from pguibert6WIND/set_aspath_exclude
bgpd: add 'set as-path exclude all' command
2023-06-21 08:48:21 -04:00
Donatas Abraitis
508deadf3d tests: Adjust tests for BGP LU labelpool output
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-06-20 20:46:34 +03:00
Russ White
4d9fb376c8
Merge pull request #13728 from opensourcerouting/fix/addpath_drop_non_best_addpaths
bgpd: Implement neighbor X addpath-tx-best-selected command
2023-06-20 09:20:36 -04:00
Russ White
554c2e0350
Merge pull request #13750 from louis-6wind/fix-no-retain-memory-usage
bgpd: fix memory usage of vpn no retain
2023-06-20 09:19:50 -04:00
Russ White
c57667022c
Merge pull request #13769 from opensourcerouting/fix/bgp_peer-group_show_advertised
bgpd: Allow using peer-group for listing advertised-routes, etc.
2023-06-20 09:18:52 -04:00
Russ White
2cfc0ba8e9
Merge pull request #13665 from pguibert6WIND/issue_13616_pr
topotests: label per nexthop test adds add a while loop for mpls table
2023-06-20 09:18:16 -04:00
Russ White
514d3b397a
Merge pull request #13666 from pguibert6WIND/issue_13638_pr
topotests: structural issues in bgp_local_as_dotplus_private_remove
2023-06-20 09:17:51 -04:00
Russ White
68da3eab07
Merge pull request #13524 from pguibert6WIND/mpls_vpn_lsr_redistribute
MPLS vpn LSR redistribute
2023-06-20 09:13:33 -04:00
Russ White
56a10caa03
Merge pull request #12971 from taspelund/trey/mac_vrf_soo_upstream
bgpd: Add MAC-VRF Site-of-Origin support
2023-06-20 09:08:28 -04:00
Philippe Guibert
f2732f531f topotests: label per nexthop test adds add a while loop for mpls table
The bgp_vpnv4_per_nexthop_label tests only check to see if the mpls labels
are installed one time. Test runs show that all but one label is installed.
More than likely the test has asked for data while zebra is still installing
it. the mpls_label_check functions must check this result multiple times as
that system may be under heavy load.

A loop is introduced in order to let zebra check the mpls table.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-06-20 09:09:22 +02:00
Philippe Guibert
d1e16777d5 topotests: structural issues in bgp_local_as_dotplus_private_remove
This test has several issues:
A) The convergence function is spamming the show neighbor command until success,
if the neighbor never comes up the test will never finish. This adds unnecessary
load to an already loaded test system.  Use run_and_expect to properly wait for
the neighbor relationship to come up.
B) The convergence function should not sleep for 1 second *After* the neighbor
is established
C) The _bgp_as_path() function fails if the prefix has not been received yet.
This looking for the prefix data should be within a run_and_expect() functionality.
Else a loaded test system will fail in this function because while we may be in
an established state, prefixes might not yet have been exchanged and there is no
point in failing the test without giving the system some time to actually converge.

Fix those points, similarly to what has been fixed in
bgp_local_as_private_remove test.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-06-20 09:08:33 +02:00
Philippe Guibert
92550adfc7 bgpd: add 'set as-path exclude all' command
It is not possible to flush all the incoming as-path list
from a given BGP update.

Add a route-map set command to remove all as-paths
from a given AS path. Add the necessary tests.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-06-19 18:04:44 +02:00
Christian Hopps
df0173ceeb mgmtd: KISS the locking code
Move away from things like "lock if not locked" type code, require the
user has locked prior to geting to that point.

For now we warn if we are taking a lock we already had; however, this
should really be a failure point.

New requirements:

SETCFG -
  not implicit commit - requires user has locked candidate DS and they
    must unlock after

  implicit commit - requires user has locked candidate and running DS
    both locks will be unlocked on reply to the SETCFG

COMMITCFG -
  requires user has locked candidate and running DS and they must unlock
  after

  rollback - this code now get both locks and then does an unlock and
  early return thing on the adapter side. It needs to be un-special
  cased in follow up work that would also include tests for this
  functionality.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-06-19 00:13:28 -04:00
Louis Scalbert
e3d2aeac17 topotests: import vpn to default vrf in bgp_vpnv4_noretain
Test that importing VPN prefixes into the default VRF is possible with
the no retain feature.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-06-16 14:18:44 +02:00
Louis Scalbert
22dfa04b78 topotests: more tests in bgp_vpnv4_noretain
Add more VRFs in bgp_vpnv4_noretain and test combinations of no-retain
/ retain and import / un-import.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-06-16 14:18:34 +02:00
Louis Scalbert
d629c2f419 topotests: check protocol convergence at init in bgp_vpnv4_noretain
Check that the BGP session is Established before starting the tests.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-06-16 14:18:25 +02:00
Louis Scalbert
1a2b340892 topotests: check r2 vpn table in bgp_vpnv4_noretain
Remove no retain in r2 and check that r2 VPN table remains the same
after r1 configuration changes.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-06-16 14:18:25 +02:00
Louis Scalbert
9aa2e5b1cd topotests: do not import r1 vrf1 to itself bgp_vpnv4_noretain
Do not import r1 vrf1 to itself in order to check that r1 vrf1 prefixes
are only in VPN table because it is needed for advertising the prefixes
to other routers.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-06-16 14:18:25 +02:00
Louis Scalbert
a92a2683a3 topotests: filter out void RD in bgp_vpnv4_noretain
Filter out route-distinguishers that have no prefix in "show bgp table
json"

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-06-16 14:18:25 +02:00
Louis Scalbert
fe993cb25f topotests: router relative variables in bgp_vpnv4_noretain
Change IP addresses, label, RD and RT to match the router number
and VRF number.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-06-16 14:18:25 +02:00
Louis Scalbert
bf636d3712 topotests: apply style to bgp_vpnv4_noretain
Apply style cosmetic changes to bgp_vpnv4_noretain with "black".

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-06-16 14:18:25 +02:00
Louis Scalbert
c2435c67f4 topotests: cosmetic changes to bgp_vpnv4_noretain
Cosmetic changes to bgp_vpnv4_noretain to prepare the next commit.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-06-16 14:18:25 +02:00
Philippe Guibert
7b3c6f8934 topotests: mpls vpn routes redistribution, add asbr test
This setup demonstrates the redistribution and the proper
switching operations in an asbr device.
The setup interconnects an internal AS with an external
connected AS.
- the iBGP AS uses BGP-LU as MPLS transport
- the eBGP peering is directly connected and does use the
'mpls bgp forwarding' configuration to accept exterior
updates.

The setup performs the following tests:
- it checks for end to end connectivity from one interior
host h1 to two external hosts h2, and h3.
- it checks that the proper label values are advertised
by the ASBR to the iBGP peer, and the eBGP peer.
- it checks that the 'show mpls table' has additional
MPLS entries that permit transit mpls traffic to transit
across the ASBR. That behaviour is possible with the
'mpls bgp allocate-label-on-nexthop-change' command.
- it checks that withdraw of routes will remve the MPLS
entries.
- it checks that by unconfiguring the 'next-hop-self' option,
the external routes advertised to the internal maintain the
next-hop.
- it checks that a second prefix advertised by r3 with the
same RD, but different label value is using a new label on r2,
and that this new label value is used.
- it checks that when filtering out prefixes from r1, on r2,
then the MPLS label is deallocated, and the MPLS entry is not
present.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-06-16 10:55:11 +02:00
Christian Hopps
78dfcceeae
Merge pull request #13767 from opensourcerouting/fix/convert_rip_topo1_to_polling
tests: Convert rip/ripng tests using run_and_expect
2023-06-13 04:20:49 -04:00
Donatas Abraitis
e0db9a05bd
Merge pull request #13763 from LabNConsulting/mgmtd/simplify
fix 'exit' bug in config file processing, et al.
2023-06-13 11:10:18 +03:00
Donald Sharp
6ec1065217 tests: test_bgp_flowspec_topo.py changes as per linter
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-06-12 09:22:51 -04:00
Donald Sharp
773376a3c3 tests: The bgp_flowspec frequently fails try to gather more data
Add a bit of code to allow the bgp_flowspec topotest to gather
data when something goes wrong.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-06-12 09:22:51 -04:00
Donatas Abraitis
7ac46d8a08 tests: Check if neighbor X advertised-routes cmd works for peer-groups
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-06-12 15:20:08 +03:00
Donatas Abraitis
48008be43f tests: Apply black formatting for rip_topo1/ripng_topo1
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-06-12 11:45:03 +03:00
Donatas Abraitis
717f180a49 tests: Use run_and_expect() for ripng_topo1
Avoid checking once and failing immediately.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-06-12 11:40:09 +03:00
Donatas Abraitis
3349754a80 tests: Use run_and_expect() for rip_topo1
Avoid checking once and failing immediately.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-06-12 11:38:01 +03:00
Christian Hopps
dac48df52a tests: add mgmtd config test
Testing early exits/ends from config files loaded with `vtysh -f cfgfile`
as well as `vtysh < cfgfile`, verify the same as non-mgmtd behavior.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-06-12 03:23:51 -04:00
Donald Sharp
ae88ba4b52 tests: Fix missing assert for test case in bgp_suppress_fib
Test was attempting to test the 60.0.0.0 route but was querying
10.0.0.3 and ignoring the result.  Let's fix it.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-06-09 09:25:29 -04:00
Jafar Al-Gharaibeh
e48e92e76c
Merge pull request #13734 from LabNConsulting/chopps/removeunused
remove mentions of socat
2023-06-08 23:46:45 -05:00
Quentin Young
cb827d9f55
Merge pull request #13650 from opensourcerouting/feature/bgpd_default_originate_route_map_timer
bgpd: Add an ability to control default-originate route-map timer
2023-06-08 12:05:35 -04:00
Christian Hopps
17054f373e doc: update doc removing socat req + remove unused tests code
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-06-08 11:03:18 -04:00
Christian Hopps
b28bc2561e tests: convert old pim test to more cleanly use pytest fixture
This is a good way to run a per-test background helper process. Here the
helper object is created before the test function requesting it (through param
name match), and then cleaned up after the test function exits (pass or failed).

A context manager is used to further guarantee the cleanup is done.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-06-08 04:55:32 -04:00
Christian Hopps
efedb18976 tests: fixing pim6 topotest bugs
- Remove use of bespoke socat
- Use ipv6 support in mcast-tester.py
- do not run processes in the background behind munet/micronet's
  back with `&` (ever) -- use popen or the helper class

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-06-08 04:55:32 -04:00
Christian Hopps
71231d304f tests: mcast-tester.py handles IPv6
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-06-08 02:39:09 -04:00
Donatas Abraitis
0ec8b2d869 tests: Test neighbor X addpath-tx-best-selected command
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-06-07 22:27:28 +03:00
Donatas Abraitis
7f0c12d5b3
Merge pull request #13622 from kuldeepkash/bgp_always_compare_med
tests: Adding bgp_always_compare_med testuite
2023-06-07 09:36:15 +03:00
Donald Sharp
8625fe0f45 tests: Babel tests do not need to log to eigrp
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-06-06 11:59:20 -04:00
Donald Sharp
da877b5ced
Merge pull request #13690 from LabNConsulting/chopps/mgmtd-cleanup
Chopps/mgmtd cleanup
2023-06-06 07:22:31 -04:00
Martin Winter
6a771192de
Merge pull request #13618 from LabNConsulting/chopps/fixlogging 2023-06-06 02:35:20 -07:00
Donatas Abraitis
fecc953b3c
Merge pull request #13670 from donaldsharp/coverity_99
Coverity 99
2023-06-05 22:33:55 +03:00
Christian Hopps
ee235c606f tests: mgmtd: add prologue to bigconf tests
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-06-05 13:53:51 -04:00
Donald Sharp
05cb9e55a7
Merge pull request #13658 from louis-6wind/fix-flex-algo2
isisd: fix wrongly disabled flex-algorithm
2023-06-05 12:43:01 -04:00
Christian Hopps
9c57c2900a tests: fix some broken logging
- make sure we close and remove all handlers for named logs on each reuse.
- test module level exec.log no longer truncated to last test case output
- cleanup the log names, and make sure they are present in all exec logs
- keep separate exec logs for each pytest worker when running in distributed mode
- disabled code due to CI infra can't handle it: add per test case exec logs

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-06-05 12:42:57 -04:00
Donald Sharp
0889f6d894 tests: Rename a test to test_bgp_gr_functionality_topo3.py
Since the test was not named test_bgp_gr_functionality_topo3.py
pytest was not picking it up to run.  Let's run it.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-06-05 07:57:49 -04:00
Christian Hopps
be3c453556 tests: pause (with CLI) at step() functions when run with --pause
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-06-04 17:38:19 -04:00
Donald Sharp
84af55b268 tests: new mgmt_startup tests are failing due to insufficient time
The tests are failing due to heavily loaded system and insufficient
time for large configs to be handled.  Increasing the time
allows the tests to complete locally for me under heavy load.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-06-01 09:57:48 -04:00
Louis Scalbert
5f230545e1 tests: re-style isis_sr_flex_algo_topo1
Re-style isis_sr_flex_algo_topo1. Cosmetic change.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-06-01 14:26:48 +02:00
Louis Scalbert
b24bad5632 tests: fix mpls table check in isis_sr_flex_algo_topo1
Some test steps result in removing some entries in the MPLS forwarding
table. However, these steps pass before the entries are actually
removed.

Use the exact JSON comparison so that the removal of the entries is
checked.

Fixes: 1a61ef95b2 ("tests: add isis_sr_flex_algo_topo1 for flex-algo")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-06-01 14:14:51 +02:00
Donatas Abraitis
1bfbdc17f2 tests: Check if bgp default-originate timer command works
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-05-31 22:58:32 +03:00
Donald Sharp
22c10bbdaa tests: Actually loop if ping fails
The usage of run_and_expect doesn't work if the function
being called as the run part asserts.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-05-30 15:43:42 -04:00
Donatas Abraitis
147c7a2de3
Merge pull request #13631 from donaldsharp/fix_some_ping_issues
various issues
2023-05-30 21:26:24 +03:00
Trey Aspelund
6510458757 tests: add topotest for EVPN MAC-VRF SoO
Adds topotest to cover the new EVPN MAC-VRF Site-of-Origin feature.

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2023-05-30 15:25:37 +00:00
Christian Hopps
7cd87abc5e tests: add unified config tests
- simple unified test
- unified test with late backend startup test

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-05-30 04:09:29 -04:00
Christian Hopps
e3c4bd2472 tests: add some more mgmtd tests
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-05-30 02:10:20 -04:00
Christian Hopps
5ba5613077 lib: mgmtd: add manual vty server start option and use it
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-05-30 02:10:20 -04:00
Kuldeep Kashyap
ac9c7ac8ba tests: Adding framework support for bgp_always_compare_med
Added/enhanced bgp.py to support config/
unconfig bgp always compare med related
configurations.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2023-05-29 13:20:15 +05:30
Kuldeep Kashyap
9bd040b2fa tests: Adding bgp_always_compare_med testuite
Automated 5 different scenarios to verify BGP
always compare med functionality.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2023-05-29 13:07:54 +05:30
Donald Sharp
131153ea22 tests: Allow ping to run multiple times before failing
the bgp_default_originate test brings up the topology and
then immediately pings.  Which sometimes fails.  This is
of course possible since the first ping might actually fail
due to arp going on.  So let's give it a second chance or two.
Especially since the test, at this point, is just installing
a default route.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-05-28 07:37:25 -04:00
Christian Hopps
898499a50f tests: python-foo assure foo[0] is on a list not dict_values object
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-05-28 05:13:22 -04:00
Donald Sharp
780a8a10e6 tests: Convert to using logger.warning
Use the non deprecated format.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-05-26 16:00:42 -04:00
Donald Sharp
618a9f0592
Merge pull request #13607 from LabNConsulting/chopps/fixospftest
tests: ospfapi: fix non-determinism in test
2023-05-26 15:09:38 -04:00
Donald Sharp
145acbb3bb
Merge pull request #13599 from LabNConsulting/chopps/analyze-search
tests: allow selecting test results by regexp match
2023-05-26 07:20:17 -04:00
Christian Hopps
054d6bdc48 tests: selecting results by regexp and ragnes, add container support
- Allow selecting results using a regexp
- Allow selecting results using commasep range specs
- Add support for getting and saving results from a docker/podman
  container.
- update docs

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-05-26 06:32:24 -04:00
Christian Hopps
39e1f084b5 tests: ospfapi: fix non-determinism in test
fixes #13584

The test had the ospf client injecting multiple opaque LSAs on 5s pace,
but the test itself verified and advanced on an LSA in the middle of
that sequence and not the last one. Then the test reset the ospf client
and originating router. If a later injected LSA managed to get in to the
router and flooded prior to the client/router reset then the opaque data
or sequence number could differ from the expected value.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-05-26 05:09:13 -04:00
Christian Hopps
27c6bfc217 tests: cleanup the config file specification and default code
Also, add a new warning for missing configuration files when user is
expecting them.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-05-26 00:33:07 -04:00
Quentin Young
254feba0a5
Merge pull request #13592 from LabNConsulting/chopps/newmunet
munet: import 0.13.5 w/ nicer cmd logging
2023-05-24 12:20:41 -04:00
Christian Hopps
8aba44e3a7 munet: import 0.13.5 w/ nicer cmd logging
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-05-24 02:48:35 -04:00
Russ White
575a0c5e3c
Merge pull request #13555 from LabNConsulting/aceelindem/ospf-p2mp-delayed-reflooding-config
ospfd: OSPF P2MP Delayed Reflooding configuration
2023-05-23 11:41:35 -04:00
Russ White
fa45a19a60
Merge pull request #13535 from opensourcerouting/feature/ripng_allow_ecmp
ripng: Implement allow-ecmp X command
2023-05-23 07:35:32 -04:00
Donatas Abraitis
29d3532a7a tests: Check if allow-ecmp command works for RIPng
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-05-23 09:29:02 +03:00
Acee
0d8ef0477c ospfd: OSPF P2MP Delayed Reflooding configuration
Currently, delayed reflooding on P2MP interfaces for LSAs received
from neighbors on the interface is unconditionally (see commit
c706f0e32b). In some cases, this
change wasn't desirable and this feature makes delayed reflooding
configurable for P2MP interfaces via the CLI command:
"ip ospf network point-to-multipoint delay-reflood" in interface
submode.

Signed-off-by: Acee <aceelindem@gmail.com>
2023-05-22 15:51:41 -04:00
Donald Sharp
b31a1797c6 tests: Do not Cause test scripts to stop running when config load fails
When running the pytests in parallel, calling pytest.exit() causes
the entire test run to be aborted.  Which.... Is frankly not cool.
Let's notice the failure and move on to the next tests.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-05-22 10:52:54 -04:00
Donald Sharp
af53f97f34 tests: Add exit stanzas to pre-generated config
A bunch of tests rely on pre-generated config from
json files.  These tests were not putting `exit` stanzas
and a bunch of the tests as a result are silently failing
to configure properly at all, as commands were being sent
to the wrong daemons.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-05-22 10:52:54 -04:00
Donald Sharp
b9de32473d tests: Slow bgp_default_originate test down slightly
The test is performing these steps:

a) get timestamp of route installed in zebra
b) <make changes>
c) get new timestamp of route installed in zebra

If < 1 second happens between A and C the test
assumes that something went wrong, as that it is
testing to see if the route was reinstalled <yes I know>.

Just sleep 1 second after a) happens so that if a reinstall
happens we can easily see it, and we also know that if a
reinstall doesn't happen then the new timestamp will
always be 1 second or greater.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-05-22 10:06:07 -04:00
Donatas Abraitis
f0ac9aa4a7
Merge pull request #13563 from donaldsharp/remove_true
tests: pytest does not like return True from a test
2023-05-22 09:38:53 +03:00
Donald Sharp
697e7e5174
Merge pull request #13566 from LabNConsulting/chopps/analyze-improvement
tests: have ananlyze.py `chown -R $SUDO_USER` when copying results
2023-05-21 20:22:22 -04:00
Donald Sharp
57a2ff8b8d
Merge pull request #13568 from opensourcerouting/fix/timers_bgp_topotests
tests: Fix timers command for bgp_disable_addpath_rx test
2023-05-21 20:21:51 -04:00
Donatas Abraitis
f55bd028b7 tests: Fix timers command for bgp_disable_addpath_rx test
Was incorrectly setting BGP timers.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-05-20 10:06:49 +03:00
Christian Hopps
2013c684d0 tests: munet to version 0.13.4
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-05-19 23:16:39 -04:00
Christian Hopps
47e52c47d4 tests: have ananlyze.py chown -R $SUDO_USER when copying results
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-05-19 23:14:18 -04:00
Donald Sharp
cd0956e69d
Merge pull request #13559 from opensourcerouting/fix/ignore_decoding_chars
tests: Ignore utf-8 decoding errors
2023-05-19 21:30:34 -04:00
Donald Sharp
03b53c1229 tests: pytest does not like return True from a test
From running the test:
bgp_remove_private_as/test_bgp_remove_private_as.py::test_bgp_remove_private_as
  /home/sharpd/.local/lib/python3.10/site-packages/_pytest/python.py:198: PytestReturnNotNoneWarning: Expected None, but bgp_remove_private_as/test_bgp_remove_private_as.py::test_bgp_remove_private_as returned True, which will be an error in a future version of pytest.  Did you mean to use `assert` instead of `return`?
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-05-19 12:52:51 -04:00
Donatas Abraitis
76b246aa1f tests: Ignore utf-8 decoding errors
This is happening sometimes for stuff like `r1 shi cat ...`.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-05-19 14:57:56 +03:00
Donatas Abraitis
a8bc67a989
Merge pull request #13369 from samanvithab/bgpd_fix
lib : fix duplicate prefix list delete
2023-05-18 10:24:41 +03:00
Donatas Abraitis
c374605ecb
Merge pull request #13541 from LabNConsulting/chopps/fixtestdefconf
tests: fix implicit config file and recently added logic error
2023-05-18 09:44:38 +03:00
Christian Hopps
f3525b0b17 tests: fix implicit config file and recently added logic error
- Restore default of looking for a daemon config underneath the router directory
if no config file was specified.
- Recent change for adding unified config support had a logic bug, fix
- Update the one test that conflicted with this default
- comment out asyncio option causing warnings if asyncio wasn't installed.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-05-17 16:05:53 -04:00
Christian Hopps
fea00bad20 tests: fix pylint error, and update style in lib/*.py
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-05-17 13:42:32 -04:00
Donald Sharp
244d5d0a16 tests: Change order of config files
Our CI test system is configuring interfaces like this:

int A
  <ospfX config>

router ospfX
  router-id Z.Y.M.Q

On sufficiently loaded systems, the router-id might not be respected because
the interface A neighbor might have come up by the time the router-id
command is read in.  This is a problem for our topotests in that
the tests expect neighbors to be formed with certain router-id,
but the FRR code has stored the new router-id but not accepted
it's use since a neighbor relationship has formed.

Modify the ci test system code to put the 'router ospfX' commands
before the interface commands, thus forcing the router-id to be
read in *before* any possibility that the neighbor can have come
up.

Also, I've filed issue #13452 to address the ordering of commands
with regards to router-id in our ospf protocols.  Once that is
done this should be backed out, to return to a more natural ordering
of commands.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-05-17 09:20:46 -04:00
Donald Sharp
e396a4f0c6 tests: Clean up commands that do nothing
Recently clear commands were added to the tests that do nothing
because they are using the wrong way to input the command.
Since these do nothing remove them:

2023-05-16 16:39:07,072.072 DEBUG: topolog.r0: Router(r0):  cmd_status("['/bin/bash', '-c', 'clear ip ospf neighbor']", pre_cmd: "['/usr/bin/nsenter', '--mount=/proc/4157893/ns/mnt', '--net=/proc/4157893/ns/net', '--uts=/proc/4157893/ns/uts', '-F', '--wd=/tmp/topotests/ospf_basic_functionality.test_ospf_asbr_summary_topo1/r0']" use_pty: False kwargs: {'stdout': -1, 'stderr': -2, 'encoding': 'utf-8', 'shell': False, 'stdin': None, 'env': {'LANG': 'en_US.UTF-8', 'LS_COLO)
2023-05-16 16:39:07,120.120 WARNING: topolog.r0: Router(r0): proc failed: rc 1 pid 4161077
        args: /usr/bin/nsenter --mount=/proc/4157893/ns/mnt --net=/proc/4157893/ns/net --uts=/proc/4157893/ns/uts -F --wd=/tmp/topotests/ospf_basic_functionality.test_ospf_asbr_summary_topo1/r0 /bin/bash -c clear ip ospf neighbor
        stdout: Usage: clear [options]

Options:
  -T TERM     use this instead of $TERM
  -V          print curses-version
  -x          do not try to clear scrollback
        stderr: *empty*

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-05-17 09:20:46 -04:00
Donald Sharp
98f71533f6
Merge pull request #13529 from pguibert6WIND/bgp_vpnv6_per_nexthop_fix
topotests: fix bgp_vpnv6_per_nexthop, syncing with bgp rib
2023-05-17 07:56:07 -04:00
Russ White
18978d1280
Merge pull request #13526 from opensourcerouting/fix/show_table_version_per_subgrp
bgpd: Show the real table version for a decent peer subgroup
2023-05-16 10:14:04 -04:00
Russ White
425fc1f5b7
Merge pull request #12949 from opensourcerouting/ospf-unplanned-gr
OSPF GR for unplanned outages
2023-05-16 08:37:19 -04:00
Philippe Guibert
e82cd92b19 topotests: bgp_vpnv6_per_nexthop_label, use only global ipv6 addresses
The test is modified so as to use global ipv6 addresses for nexthop
resolution.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-05-16 12:40:40 +02:00
David Lamparter
cf0eeb3dc1
Merge pull request #12050 from LabNConsulting/working/lb/topotest-220909 2023-05-16 08:31:06 +02:00
Donatas Abraitis
f913ee30ff tests: Drop tableVersion from EVPN PIM test case
tableVersion always incorrectly showed 0 instead of a decent value. Let's get rid
of this from the partial output at all.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-05-16 09:06:06 +03:00
Christian Hopps
44701495bb tests: improve bgp test determinism
don't grep the tail of a log file after running a previous test, there could be
(and have been) other items added to the log in between.

add before and after count of shutdown messages to very the actual message shows
up as the test intended, and keep the search for the shutdown message.

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-05-12 20:36:50 -04:00
Donatas Abraitis
edc886635d
Merge pull request #13463 from pguibert6WIND/mpls_alloc_per_nh_2
Mpls allocatio mode per nexthop
2023-05-12 20:56:01 +03:00
Donald Sharp
907183cb35
Merge pull request #13430 from opensourcerouting/feature/rip_allow-ecmp_limit
ripd: Implement allow-ecmp X command
2023-05-11 20:31:46 -04:00
Donald Sharp
f1af873fef
Merge pull request #13490 from Jafaral/fix-ospf-asbr-test
tests: improve log messages, clear neighbors to avoid bad state
2023-05-11 20:31:21 -04:00
Jafar Al-Gharaibeh
1fdd28a730 tests: reset neighbor state machine to avoid bad/stale state
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2023-05-11 09:51:26 -05:00
Donald Sharp
4ce530f750
Merge pull request #13507 from opensourcerouting/feature/bgp_route-map_match_source-protocol
bgpd: Implement match source-protocol for route-maps
2023-05-11 09:38:57 -04:00
Lou Berger
083d367279 topotest: all_protocol_startup - respect TOPOTESTS_CHECK_STDERR environ variable
Signed-off-by: Lou Berger <lberger@labn.net>
2023-05-11 07:46:19 -04:00
Lou Berger
d4977708f0 topotest: add --memleaks topotest option
Signed-off-by: Lou Berger <lberger@labn.net>
2023-05-11 07:46:19 -04:00
Lou Berger
c6686550c3 topotests: fix looging of memstat results
Signed-off-by: Lou Berger <lberger@labn.net>
2023-05-11 07:46:18 -04:00
Donatas Abraitis
9c3ffc80db tests: Check if match source-protocol route-map cmd works for BGP
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-05-11 11:40:42 +03:00
Jafar Al-Gharaibeh
ba607fdfcb tests: log the router id in ospf tests, improve log in a couple of places
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2023-05-10 23:47:03 -05:00
Jafar Al-Gharaibeh
bc05bccbdc
Merge pull request #13489 from LabNConsulting/ospf-opaque-stale-fix
ospfd: OSPF opaque LSA stale processing fix and topotests.
2023-05-10 15:51:21 -05:00
Christian Hopps
b81bb36960 tests: update to munet 0.13.3, restoring GNU screen functionality
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-05-10 09:47:57 +00:00
Acee
4e7eb1e62c ospfd: OSPF opaque LSA stale processing fix and topotests.
1. Fix OSPF opaque LSA processing to preserve the stale opaque
            LSAs in the Link State Database for 60 seconds consistent with
            what is done for other LSA types.
         2. Add a topotest that tests for cases where ospfd is restarted
            and a stale OSPF opaque LSA exists in the OSPF routing domain
            both when the LSA is purged and when the LSA is reoriginagted
            with a more recent instance.

Signed-off-by: Acee <aceelindem@gmail.com>
2023-05-09 16:51:03 -04:00
Philippe Guibert
37a02a8dcb topotests: add bgp_vpnv6 test allocation
This test demonstrates that a label is allocated for each
ipv6 next-hop. IPv6 test introduces link local ipv6 addresses
as next hops, and compared to IPv4, one can have two different
next-hops depending if the next-hop is defined by a global
address (static route redistributed) or a bgp peer.

This test checks that:
- The labels are correctly allocated per connected next-hop.
- The default label is used for non connected prefixes.
- The withdraw operation frees the MPLS entry.
- If a recursive route is redistributed by BGP, then the nexthop
tracking will find the appropriate nexthop entry, and the
associated label will be found out.
- When a prefix moves from one peer to one another behind the
vrf, then the MPLS switching operation for return
traffic is changing the outgoing interface to use.
- When the 'label vpn export <value>' MPLS label value is changed,
then the modification is propagated to prefixes which use that value.
- Also, when unconfiguring the per-nexthop allocation mode, check
that the MPLS entries and the VPNv4 entries of r1 are changed
accordingly.
- Reversely, when re-configuring the per-nexthop allocation mode,
check that the allocation mode reuses the other label values.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-05-09 21:01:08 +02:00
Philippe Guibert
ae5a6bc1f6 topotests: add bgp mpls allocation per next-hop test
A new test suite checks for the mpls label allocation
per nexthop mode. This test checks that:
- The labels are correctly allocated per connected
next-hop.
- The default label is used for non connected prefixes
- The withdraw operation frees the mpls entry.
- If a recursive route is redistributed by BGP, then the nexthop
tracking will find the appropriate nexthop entry, and the associated
label will be found out.
- When a prefix moves from one peer to one another behind the vrf,
then the MPLS switching operation for return traffic is changing
the outgoing interface to use.
- When the 'label vpn export <value>' MPLS label value is changed,
then the modification is propagated to prefixes which use that value.
- When unconfiguring the per-nexthop allocation mode, check
that the MPLS entries and the VPNv4 entries of r1 are changed
accordingly.
- Reversely, when re-configuring the per-nexthop allocation mode,
check that the allocation mode reuses the other label values.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-05-09 21:00:57 +02:00
Donald Sharp
788db21e73
Merge pull request #13438 from gpnaveen/vrf_on_loopback
tests: removing un used loopback interface from bgp admin dist.
2023-05-09 13:39:18 -04:00
Donald Sharp
ebfbce2e54
Merge pull request #13460 from Jafaral/ospf-fix2
tests: remove sleep ospf test
2023-05-09 13:37:40 -04:00
Donald Sharp
b03eecbd2e
Merge pull request #13470 from crosser/fix-test-frrscript
test_frrscript: fix dep for out of tree build
2023-05-09 11:30:17 -04:00
Samanvitha B Bhargav
accafb6b78 tests: Verify duplicate prefix list delete fix
Added topotest cases for the modification of added
prefix lists.

Author: Vijay kumar Gupta <vijayg@vmware.com>
Signed-off-by: Samanvitha B Bhargav <bsamanvitha@vmware.com>
2023-05-09 03:51:45 -07:00
Jafar Al-Gharaibeh
3446fec118 tests: remove sleep ospf test
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2023-05-08 23:08:35 -05:00
Martin Winter
6a3631468d tests: Fix ospfv3 output to include Graceful Restart info
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2023-05-08 21:47:44 -03:00
Renato Westphal
763c4113aa tests: add tests for OSPF GR unplanned outages
Reuse the exiting GR topotests since planned and unplanned GR should
behave the same.

The only difference is that for unplanned GR there's no preparation
phase. The OSPF daemons are just killed (SIGTERM) and restarted
normally. The tests then proceed to do the same checks they do for
planned GRs.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2023-05-08 21:47:44 -03:00
Eugene Crosser
5b2ee104c2 tests: Fix out of tree build for lua scripting
test_frrscript is run from the `tests` directory and expects the sample
lua script `script1.lua` to be present in the `lib` directory. When the
package is built out of tree (which always happens when a debian
package is built), and scripting is enabled, test fails because the lua
file is not present in the `tests/lib/` subdir of the _build_ directory.

Fix this by adding `script1.lua` as an extra dependency for
`test_frrscript`, and a recipe that copies the file from the source tree
to the build tree (note: it needs to be marked ".PHONY" because
otherwise `make` thinks that it already exists, in the source tree).

After this commit, the following command starts to work:

    dpkg-buildpackage --build-profiles=pkg.frr.lua -b -uc

Signed-off-by: Eugene Crosser <crosser@average.org>
2023-05-09 02:05:44 +02:00