Commit Graph

3902 Commits

Author SHA1 Message Date
Donatas Abraitis
953fc0c6cb Revert "tests: Add topotest for OSPF multi-instance default origination."
This reverts commit f10d238869.

Reverting because it causes failures for stable/10.2 due to multi OSPF instances
support for frr.conf (unified configuration).

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-12-04 08:54:18 +02:00
Russ White
80318865a1
Merge pull request #17478 from FRRouting/mergify/bp/stable/10.2/pr-17436
ospfd: OSPF multi-instance default origination fixes (backport #17436)
2024-11-26 13:56:29 -05:00
Donatas Abraitis
04ffcc23f0 tests: Check if GR settings are inherited for peer-groups
Convert to unified config also.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit a4bfa8c574)
2024-11-26 16:00:55 +00:00
Acee Lindem
f10d238869 tests: Add topotest for OSPF multi-instance default origination.
This change adds a topotest to test various case of OSPF multi-instance
origination including cases where the criteria route is from another
instance of OSPF, as well as the same OSPF instance (where a default
should not be originated).

Signed-off-by: Acee Lindem <acee@lindem.com>
(cherry picked from commit 82f4349402)
2024-11-21 17:21:18 +00:00
Rajasekar Raja
031d427101 bgpd: Fix for match source-protocol in route-map for redistribute cmd
A redistribute cmd can have a route-map attached to it and adding the
match source-protocol to that route-map means BGP to filter which
protocol routes to accept among the bunch of routes zebra is sending.

Fixing this since this wasnt implemented earlier.

Ticket :#4119692

Signed-off-by: Donald Sharp <sharpd@nvidia.com>

Signed-off-by: Rajasekar Raja <rajasekarr@nvidia.com>
(cherry picked from commit 68358c0f92)
2024-11-09 20:02:57 +00:00
hanyu.zly
0c1564d1d9 bgpd:support tcp-mss for neighbor group
Signed-off-by: hanyu.zly <hanyu.zly@alibaba-inc.com>
(cherry picked from commit 9fa56a03c7)
2024-11-08 07:12:55 +00:00
Donatas Abraitis
0b1bb84242 tests: Check if stale routes with addpath are marked with LLGR community
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 2e5e3b4bd0)
2024-11-07 16:07:12 +00:00
Donatas Abraitis
86532b3dc2 tests: Check if routes with addpath are cleared if they are stale
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 444bdc4cc0)
2024-11-07 16:07:12 +00:00
Donald Sharp
f640f0714c
Merge pull request #17345 from FRRouting/mergify/bp/dev/10.2/pr-17115
nhrpd: fix passphrase handling, add topotest for resolution request (backport #17115)
2024-11-05 14:28:10 -05:00
anlan_cs
ac1bd83312 test: add test case for kernel blackhole routes
The test verifies that a kernel blackhole route is not affected by
interface's link change.

Signed-off-by: anlan_cs <anlan_cs@126.com>
(cherry picked from commit 0073a870d1)
2024-11-05 15:22:24 +00:00
Joshua Muthii
e127b7f464 nhrpd: Add topotest for retrying resolution request
Modified nhrp_topo topotest to test for newly added resolution
request retry feature. Changes to the topotest include adding a spoke to the
existing nhrp_topo topotest so that a topology with two spokes and hub
can be used to create shortcuts and test the sending/resending of
resolution requests and responses between spoke and hub. The resolution
request retry feature was tested by blocking incoming resolution requests on a
receiving nodes to stop the creation of a successful shortcut - which
then triggered the sending spoke to retry sending resolution requests

Signed-off-by: Joshua Muthii <jmuthii@labn.net>
(cherry picked from commit d599aa1da6)
2024-11-05 15:11:07 +00:00
Donatas Abraitis
9474e8677e tests: Add an ability to specify daemon params with unified config
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 879466731b)
2024-10-31 13:55:51 +00:00
Liam Brady
9a830b3cf4 tests: logger masked in topotest.py
a local logger masks the global logger and prevents errors from being
gracefully handled within topotest.py

Signed-off-by: Liam Brady <lbrady@labn.net>
(cherry picked from commit 1b38f33041)
2024-10-28 15:17:56 +00:00
Jafar Al-Gharaibeh
288d27431d tests: expand bsr topotest to cover ipv6
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
(cherry picked from commit a7e7cc301d)
2024-10-27 19:12:49 +00:00
Enke Chen
5d953ab5b2 tests: add a new BGP AIGP topotest
The topotest verifies that a local route is favored irrespective
of its AIGP value.

Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
(cherry picked from commit 1a2c3d684a)
2024-10-25 07:00:47 +00:00
Donatas Abraitis
c024da828a tests: Check if BGP no-export community is passed to BGP OAD peers
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 7eaec540ec)
2024-10-22 15:06:54 +00:00
Enke Chen
862d7bcd6f tests: add a topotest bgp_aigp_rr
In this topotest, the route reflector advertises a route with the
aigp attribute to its client, some with the nexthop unchanged and
some with the nexthp changed. Different aigp values are sent to
the clients depending on the nexthop setting.

Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
(cherry picked from commit 7e7f65cc00)
2024-10-22 05:40:49 +00:00
Enke Chen
6c776ee834 tests: add a new topotest to bgp_aigp
Add a new topotest for getting the aigp from the "igp-metric"
for a redistributed route (ospf route in the test).

Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
(cherry picked from commit 51612593f7)
2024-10-17 05:56:00 +00:00
Donald Sharp
9ef2d1b183 tests: iproute2_check_path_selection call the actual command
For some reason this was missing.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit c8a947e12b)
2024-10-16 02:26:43 +00:00
Enke Chen
52fcb77955 tests: fix and adjust topotest/bgp_aigp
Fix and adjust the topotest post the fix for route selection with
AIGP.

When there are multiple	IGP domains (OSPF in this case), the nexthop
for a BGP route with the AIGP attribute must be resolved in its own
IGP domain.

The changes in r2/bgpd.conf and r3/bgpd.conf are needed as incorrect
IGP metrics are received from NHT for the recursive nexthops. Once
the issue is resolved, the changes can be reverted.

Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
(cherry picked from commit 1ee7e63a6c)
2024-10-15 14:24:41 +00:00
Louis Scalbert
ead451f633 topotests: add bgp_nexthop_ipv6
Add bgp_nexthop_ipv6 to check the ipv6 link-local nexthop conformity in
several situations.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
(cherry picked from commit 6dc4d95061)
2024-10-11 05:36:39 +00:00
Russ White
374fda66df
Merge pull request #16945 from opensourcerouting/fix/bgp_received-routes_with_soft_inbound
bgpd: Show unmodified version of received-routes per neighbor
2024-10-08 10:16:24 -04:00
Russ White
02e5a059ee
Merge pull request #16941 from opensourcerouting/fix/issue_16877
bgpd: Relax the same prefix and nexthop to be valid
2024-10-08 10:14:30 -04:00
Russ White
382e4e9338
Merge pull request #15903 from y-bharath14/srib-topotests-v1
tests: catch exception during switch shutdown
2024-10-08 08:27:12 -04:00
Christian Hopps
e8648a0c72 lib: add flag to have libyang load internal ietf-yang-library module
Mgmtd makes use of libyang's internal ietf-yang-library module to add
support for said module to FRR management. Previously, mgmtd was loading
this module explicitly; however, that required that libyang's
`ietf-yang-library.yang` module definition file be co-located with FRR's
yang files so that it (and ietf-datastore.yang) would be found when
searched for by libyang using FRRs search path. This isn't always the
case depending on how the user compiles and installs libyang so mgmtd
was failing to run in some cases.

Instead of doing it the above way we simply tell libyang to load it's
internal version of ietf-yang-library when we initialize the libyang
context.

This required adding a boolean to a couple of the init functions which
is why so many files are touched (although all the changes are minimal).

Signed-off-by: Christian Hopps <chopps@labn.net>
2024-10-07 03:32:44 +00:00
Russ White
15991e1a08
Merge pull request #16800 from donaldsharp/nhg_reuse_intf_down_up
Nhg reuse intf down up
2024-10-04 10:28:58 -04:00
Donatas Abraitis
dab1441128 tests: Check if loopback routes are considered valid for nexthop tracking
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-10-01 21:08:28 +03:00
Donatas Abraitis
2c6eb34af8 tests: Drop test_bgp_with_loopback_with_same_subnet_p1
It's replaced and simplified by c3fd1e9520c619babb3004cea6df622ca67b0dfa.

JSON topo is just horrible to debug.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-10-01 21:05:52 +03:00
Donald Sharp
421cf856ef bgpd: Cleanup multipath figuring out in bgp
Currently bgp multipath has these properties:

a) mp_info may or may not be on a single path, based
upon path perturbations in the past.
b) mp_info->count started counting at 0( meaning 1 ).  As that the
bestpath path_info was never included in the count
c) The first mp_info in the list held the multipath data associated
with the multipath.  As such if you were at any other node that data
was not filled in.
d) As such the mp_info's that are not first on the list basically
were just pointers to the corresponding bgp_path_info that was in
the multipath.
e) On bestpath calculation, a linklist(struct linklist *) of bgp_path_info's was
created.
f) This linklist was passed in to a comparison function that took the
old mpinfo list and compared it item by item to the linklist and
doing magic to figure out how to create a new mp_info list.
g) the old mp_info and the link list had to be memory managed and
freed up.
h) BGP_PATH_MULTIPATH is only set on non bestpath nodes in the
multipath.

This is really complicated.  Let's change the algorithm to this:

a) When running bestpath, mark a bgp_path_info node that could be in the ecmp path as
BGP_PATH_MULTIPATH_NEW.
b) When running multipath, just walk the list of bgp_path_info's and if
it has BGP_PATH_MULTIPATH_NEW on it, decide if it is in BGP_MULTIPATH.
If we run out of space to put in the ecmp, clear the flag on the rest.
c) Clean up the counting of sometimes adding 1 to the mpath count.
d) Only allocate a mpath_info node for the bestpath.  Clean it up
when done with it.
e) remove the unneeded list management associated with the linklist and
the mp_list.

This greatly simplifies multipath computation for bgp and reduces memory
load for large scale deployments.

2 full feeds in work_queue_run prior:

    0      56367.471      1123    50193    493695    50362    493791         0         0          0    TE   work_queue_run

BGP multipath info            :  1941844     48   110780992  1941844 110780992

2 full feeds in work_queue_run after change:

    1      52924.931      1296    40837    465968    41025    487390         0         0          1    TE   work_queue_run

BGP multipath info            :   970860     32    38836880   970866  38837120

Aproximately 4 seconds of saved cpu time for convergence and ~75 mb
smaller run time.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-10-01 12:25:57 -04:00
Donald Sharp
6ff85fc748 tests: Clean up some logging in test_bgp_default_originate_2links.py
Test was confusing.  Add some useful data and clean up some debugs

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-10-01 12:25:57 -04:00
Barry A. Trent
41fa154163 tests: enhance autorp topotest
Signed-off-by: Barry A. Trent <barry.trent@atcorp.com>
2024-09-27 13:39:50 -07:00
Donatas Abraitis
f4c17673d1 tests: Check if we can see unmodified received-routes with soft inbound
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-09-27 14:04:59 +03:00
Y Bharath
5118fd1018 tests: catch exception during switch shutdown
Signed-off-by: y-bharath14 <y.bharath@samsung.com>
2024-09-25 19:03:31 +05:30
Nathan Bahr
dff1db9ef6 tests: Addition of AutoRP Discovery uncovered broken PIM test
With AutoRP discovery running by default, that adds a new
IGMP group that needs to be accounted for in IGMP output.

For pim.py
  The clear IGMP interfaces function is in a broken state. It was
  already ignoring any errors and returned true always, but with
  the addition of the AutoRP discovery group, you could end up
  with a different group order in the json which would cause a key
  error making the test fail. For now I just added a check to
  avoid the key error.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-09-24 16:40:57 +00:00
Nathan Bahr
ec37f603a1 tests: Update existing tests for changes introduced by AutoRP Discovery
With AutoRP discovery running by default, that adds a new
IGMP group that needs to be accounted for in IGMP output.

For multicast_pim_sm_topo3:
  Ignore the total group number as it is unnecessary for the test.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-09-24 16:40:57 +00:00
Nathan Bahr
af45a16fce tests: Added tests for new AutoRP functionality
Uses hardcoded sample AutoRP packets injected in to test
message parsing and proper application of AutoRP learned
RP info. Tests mix of AutoRP and static RP's.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-09-24 16:40:55 +00:00
Donald Sharp
269d63a5c1
Merge pull request #16861 from btrent98/igmp-proxy2
Add igmp proxy support
2024-09-24 12:32:15 -04:00
Russ White
5cf4af6947
Merge pull request #16907 from opensourcerouting/fix/load_built-in_lua_functions
lib: Load built-in Lua functions
2024-09-24 10:56:25 -04:00
Russ White
9fa9e41613
Merge pull request #16906 from opensourcerouting/fix/match_peer_self
bgpd: Return NOMATCH only if both conf_if/group does not exist
2024-09-24 10:16:35 -04:00
Russ White
d86524951f
Merge pull request #16904 from louis-6wind/fix-zebra-rib-range
tests: fix zebra_rib range
2024-09-24 10:15:25 -04:00
Russ White
74aef8aabd
Merge pull request #16895 from opensourcerouting/fix/dual_as_topotest
tests: Simplify BGP dual-as topotest
2024-09-24 10:13:14 -04:00
Russ White
3c89cb638f
Merge pull request #16533 from acooks-at-bda/less-controversial-ospf6d-refactor-before-adding-tlvs
OSPF6: Refactor to prepare for E-LSA handling
2024-09-24 09:50:19 -04:00
Donatas Abraitis
623fb6d996 tests: Check if built-in Lua functions are working
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-09-24 13:40:37 +03:00
Donatas Abraitis
a4ed22b0b6 tests: Add a basic test to verify match peer ...
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-09-24 12:34:19 +03:00
Louis Scalbert
eb186bcdad tests: fix zebra_rib range
Range is wrong. We want values 1 and 2 but we only test 1.

> >>> for i in range(1, 2):
> ...     print(i)
> ...
> 1

Fixes: abd2a1ff3f ("tests: Test some basic kernel <-> zebra interactions")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-09-24 10:15:49 +02:00
Donald Sharp
ddbea65491 tests: Add v4/v6 forwarding off/on
There are no tests that ensured that turning off then on
v4 and v6 forwarding actually worked.  This does so.
This was found via looking at the code coverage.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-09-23 15:16:00 -04:00
Barry A. Trent
1425d4ac48 tests: add topotest for igmp proxy
Signed-off-by: Barry A. Trent <barry.trent@atcorp.com>
2024-09-23 11:43:40 -07:00
Donatas Abraitis
89644d5bf3 tests: Simplify BGP dual-as topotest
Test if we can establish a session with a global ASN directly.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-09-23 09:49:36 +03:00
Carmine Scarpitta
81de5a5a99 tests: Add testcase for SRv6 End.DT6
Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2024-09-22 07:40:50 +02:00
Carmine Scarpitta
a963eecc4f tests: Add testcase for SRv6 End.DT4
Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2024-09-22 07:40:50 +02:00