]> git.puffer.fish Git - mirror/frr.git/log
mirror/frr.git
6 months agoMerge pull request #15586 from donaldsharp/nht_explain_doc
Jafar Al-Gharaibeh [Tue, 15 Oct 2024 19:25:35 +0000 (14:25 -0500)]
Merge pull request #15586 from donaldsharp/nht_explain_doc

zebra: Attempt to explain the rnh tracking code better

6 months agoMerge pull request #17088 from donaldsharp/connected_kernel_fun
Jafar Al-Gharaibeh [Tue, 15 Oct 2024 19:04:51 +0000 (14:04 -0500)]
Merge pull request #17088 from donaldsharp/connected_kernel_fun

zebra: Prevent a kernel route from being there when a connected should

6 months agoMerge pull request #17073 from louis-6wind/fix-ipv6-ll-nexthop-reflector
Russ White [Tue, 15 Oct 2024 18:18:49 +0000 (14:18 -0400)]
Merge pull request #17073 from louis-6wind/fix-ipv6-ll-nexthop-reflector

bgpd, tests: don't send local nexthop from rr client

6 months agoMerge pull request #17104 from opensourcerouting/frr-format-array-crash
Donald Sharp [Tue, 15 Oct 2024 17:22:54 +0000 (13:22 -0400)]
Merge pull request #17104 from opensourcerouting/frr-format-array-crash

tools/gcc-plugins: don't crash on array parameters

6 months agozebra: Attempt to explain the rnh tracking code better 15586/head
Donald Sharp [Wed, 20 Mar 2024 19:32:30 +0000 (15:32 -0400)]
zebra: Attempt to explain the rnh tracking code better

I got asked today what was going on in the rnh code.  I
had to take time off of what I was doing and rewrap my
head around this code, since it's been a long time.
As that this question may come up again in the future
I am trying to document this better so that someone
coming behind us will be able to read this and get
a better idea of what the algorithm is attempting
to do.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agoMerge pull request #17106 from louis-6wind/fix-bmp-converity
Russ White [Tue, 15 Oct 2024 15:55:42 +0000 (11:55 -0400)]
Merge pull request #17106 from louis-6wind/fix-bmp-converity

bgpd: fix bmp coverity issue 1600779

6 months agoMerge pull request #17101 from Shbinging/fix_no_area_range_command
Russ White [Tue, 15 Oct 2024 15:20:34 +0000 (11:20 -0400)]
Merge pull request #17101 from Shbinging/fix_no_area_range_command

ospfd: fix the bug that the empty area was not free after no_area_range was executed

6 months agoMerge pull request #17083 from opensourcerouting/fix/openfabric_remove_redundant_check
Russ White [Tue, 15 Oct 2024 15:17:02 +0000 (11:17 -0400)]
Merge pull request #17083 from opensourcerouting/fix/openfabric_remove_redundant_check

isisd: Remove circuit state check for openfabric

6 months agoMerge pull request #17058 from opensourcerouting/fix/apply_route_maps_earlier
Russ White [Tue, 15 Oct 2024 15:15:41 +0000 (11:15 -0400)]
Merge pull request #17058 from opensourcerouting/fix/apply_route_maps_earlier

lib: Apply and generate route-map commands earlier before any other protocol

6 months agoMerge pull request #17053 from opensourcerouting/fix/drop_bgp_network_import_check_ex...
Russ White [Tue, 15 Oct 2024 15:14:35 +0000 (11:14 -0400)]
Merge pull request #17053 from opensourcerouting/fix/drop_bgp_network_import_check_exact_cmd

bgpd: Drop deprecated `bgp network import-check exact` command

6 months agoMerge pull request #17093 from enkechen-panw/aigp-fix2
Donatas Abraitis [Tue, 15 Oct 2024 14:23:04 +0000 (17:23 +0300)]
Merge pull request #17093 from enkechen-panw/aigp-fix2

bgpd: fix route selection with AIGP

6 months agobgpd: fix bmp coverity issue 1600779 17106/head
Louis Scalbert [Tue, 15 Oct 2024 13:42:02 +0000 (15:42 +0200)]
bgpd: fix bmp coverity issue 1600779

Fix bmp coverity issue 1600779. peer->su_local cannot be NULL.

Fixes: 035304c25a ("bgpd: bmp loc-rib peer up/down for vrfs")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agoMerge pull request #17103 from opensourcerouting/fix/null_ptr_dereference_bmp_bgp
Mark Stapp [Tue, 15 Oct 2024 12:24:54 +0000 (08:24 -0400)]
Merge pull request #17103 from opensourcerouting/fix/null_ptr_dereference_bmp_bgp

bgpd: Check if su_local/su_remote exist before encoding BMP peer state

6 months agoMerge pull request #17099 from opensourcerouting/fix/remove_BGP_NEXTHOP_CONNECTED_CHANGED
Mark Stapp [Tue, 15 Oct 2024 12:24:22 +0000 (08:24 -0400)]
Merge pull request #17099 from opensourcerouting/fix/remove_BGP_NEXTHOP_CONNECTED_CHANGED

bgpd: Remove unused BGP_NEXTHOP_CONNECTED_CHANGED flag for nexthop

6 months agoMerge pull request #16737 from raja-rajasekar/rajasekarr/vlan_to_dplane
Mark Stapp [Tue, 15 Oct 2024 12:06:34 +0000 (08:06 -0400)]
Merge pull request #16737 from raja-rajasekar/rajasekarr/vlan_to_dplane

zebra: vlan to dplane

6 months agotools/gcc-plugins: don't crash on array parameters 17104/head
David Lamparter [Tue, 15 Oct 2024 11:28:41 +0000 (13:28 +0200)]
tools/gcc-plugins: don't crash on array parameters

Need to have arrays as a stop condition in this type normalization
function, like pointers and function pointers.  Actual arrays as
argument types are extremely rare to see because C has this
array-decay-to-pointer thing, but it can happen.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
6 months agobgpd: Check if su_local/su_remote exist before encoding BMP peer state 17103/head
Donatas Abraitis [Tue, 15 Oct 2024 09:51:51 +0000 (12:51 +0300)]
bgpd: Check if su_local/su_remote exist before encoding BMP peer state

Fixes: 035304c25a3890a040acbe23ca385750b062cdce ("bgpd: bmp loc-rib peer up/down for vrfs")
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
6 months agobgpd: Remove unused BGP_NEXTHOP_CONNECTED_CHANGED flag for nexthop 17099/head
Donatas Abraitis [Tue, 15 Oct 2024 09:43:38 +0000 (12:43 +0300)]
bgpd: Remove unused BGP_NEXTHOP_CONNECTED_CHANGED flag for nexthop

Also reduce the size of change_flags, which is way enough to be 1 byte.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
6 months agoospfd:fix the bug that the empty area was not free after the command was executed 17101/head
Shbinging [Tue, 15 Oct 2024 07:26:50 +0000 (07:26 +0000)]
ospfd:fix the bug that the empty area was not free after the command was executed

When we use the no area X.X.X.X range A.B.C.D/M command, if the area no longer has an interface to which it belongs, then the area should be deleted from the LSDB. This processing logic is consistent with instructions such as no network area and no area authentication.

Signed-off-by: Shbinging <bingshui@smail.nju.edu.cn>
6 months agoMerge pull request #17001 from louis-6wind/bmp-new
Donatas Abraitis [Tue, 15 Oct 2024 06:09:42 +0000 (09:09 +0300)]
Merge pull request #17001 from louis-6wind/bmp-new

bgpd: bmp loc-rib peer up/down for vrfs

6 months agoMerge pull request #17087 from louis-6wind/fix-as-override
Donatas Abraitis [Tue, 15 Oct 2024 05:54:49 +0000 (08:54 +0300)]
Merge pull request #17087 from louis-6wind/fix-as-override

doc: clarify bgp as-override

6 months agoMerge pull request #17074 from chiragshah6/evpn_dev4
Donatas Abraitis [Tue, 15 Oct 2024 05:20:54 +0000 (08:20 +0300)]
Merge pull request #17074 from chiragshah6/evpn_dev4

bgpd: fix evpn mh esi down

6 months agotests: fix and adjust topotest/bgp_aigp 17093/head
Enke Chen [Tue, 15 Oct 2024 01:47:59 +0000 (18:47 -0700)]
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>
6 months agobgpd: fix route selection with AIGP
Enke Chen [Tue, 15 Oct 2024 01:42:15 +0000 (18:42 -0700)]
bgpd: fix route selection with AIGP

The nexthop metric should be added to AIGP when calculating the
bestpath in bgp_path_info_cmp().

Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
6 months agobgpd: fix evpn mh esi flap remove local routes 17074/head
Chirag Shah [Tue, 8 Oct 2024 02:04:43 +0000 (19:04 -0700)]
bgpd: fix evpn mh esi flap remove local routes

In symmetric routing, when local ESI is down,
the MH peer learnt local mac-ip
prefix is installed into teannt vrf (given l3vni).

When ESI is back up and associated to evi/vni then
remove the local synced mac-ip imported routes from the
tenant vrf as local neigh/arp is present.

Ticket: #3878699
Testing:

peer advertised mac-ip route:
*> [2]:[0]:[48]:[aa:aa:aa:00:00:01]:[32]:[45.0.0.51] RD 27.0.0.4:9
                    27.0.0.4 (spine-1)
                                                           0 64435 65016 i
                    ESI:03:44:38:39:ff:ff:01:00:00:01
                    RT:65016:1000 RT:65016:4000 ET:8 Rmac:44:38:39:ff:ff:16

When local ESI is flapped
torm-11:# ip neigh show 45.0.0.51
45.0.0.51 dev vlan1000 lladdr aa:aa:aa:00:00:01 REACHABLE proto zebra

Before fix:
(The imported route remained in tenant-vrf)
torm-11:# ip route show vrf vrf1 45.0.0.51
45.0.0.51 nhid 257 proto bgp metric 20

After fix:

torm-11# ip route show vrf vrf1 45.0.0.51
torm-11#

trace:
2024/10/11 18:19:29 BGP: [JMP3T-178G8] route [2]:[0]:[48]:[00:02:00:00:00:08]:[32]:[21.1.0.5]
is matched on local esi 03:00:00:00:77:01:04:00:00:0e, uninstall from VRF tenant1 route table

Signed-off-by: Chirag Shah <chirag@nvidia.com>
6 months agozebra: Prevent a kernel route from being there when a connected should 17088/head
Donald Sharp [Mon, 14 Oct 2024 15:25:32 +0000 (11:25 -0400)]
zebra: Prevent a kernel route from being there when a connected should

There exists a series of events where a kernel route is learned
first( that happens to be exactly what a connected route should be )
and FRR ends up with both a kernel route and a connected route,
leaving us in a very strange spot.  This code change just mirrors
the existing code of if there is a connected route drop the kernel
route.  Here we just do the reverse, if we have a kernel route
already and a connected should be created, remove the kernel and
keep the connected.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agotests: fix bgp_as_override number of routers 17087/head
Louis Scalbert [Mon, 14 Oct 2024 12:39:00 +0000 (14:39 +0200)]
tests: fix bgp_as_override number of routers

There is only 4 routers not 6.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agodoc: clarify bgp as-override
Louis Scalbert [Mon, 14 Oct 2024 12:36:54 +0000 (14:36 +0200)]
doc: clarify bgp as-override

Clarify bgp as-override

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agobgpd, tests: don't send local nexthop from rr client 17073/head
Louis Scalbert [Fri, 11 Oct 2024 04:59:16 +0000 (06:59 +0200)]
bgpd, tests: don't send local nexthop from rr client

AS 65000  | AS 65001
          |
      RR  |
       |  |
R1 --- | --- R2
          |

When r1 peer is an iBGP route reflector client of rr and r2 peer is a
eBGP neighbor of rr, and all three routers shares the same network, r2
receives announcements coming from r1 with a IPv6 link-local nexthop
from rr. This is incorrect as r2 should send traffic to r1 without
involving rr.

Do not send an IPv6 link-local nexthop if the originating peer is a
route-reflector client.

Link: https://github.com/FRRouting/frr/pull/16219#issuecomment-2397425505
Link: https://github.com/FRRouting/frr/pull/17037#discussion_r1792529683
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agobgpd: rename reflect in subgroup_announce_check
Louis Scalbert [Fri, 11 Oct 2024 04:57:14 +0000 (06:57 +0200)]
bgpd: rename reflect in subgroup_announce_check

In subgroup_announce_check(), the variable reflect is misleading, as it
suggests a relation to route reflection. However, it actually refers to
the scenario where an iBGP peer announces a route to another iBGP peer.

Rename reflect to ibgp_to_ibgp.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agoMerge pull request #17062 from donaldsharp/dplane_fpm_nl_problems
Donatas Abraitis [Mon, 14 Oct 2024 05:14:34 +0000 (08:14 +0300)]
Merge pull request #17062 from donaldsharp/dplane_fpm_nl_problems

zebra: Only notify dplane work pthread when needed

6 months agoMerge pull request #17082 from anlancs/zebra/add-debug-flags-fix
Donatas Abraitis [Mon, 14 Oct 2024 05:12:40 +0000 (08:12 +0300)]
Merge pull request #17082 from anlancs/zebra/add-debug-flags-fix

zebra: add back one field for debug

6 months agoisisd: Remove circuit state check for openfabric 17083/head
Donatas Abraitis [Sun, 13 Oct 2024 16:54:08 +0000 (19:54 +0300)]
isisd: Remove circuit state check for openfabric

If we have something like:

```
int eth1
 ip router openfabric x
 ipv6 router openfabric x
```

And eth1 is removed, the first `ip router ...` fails and only `ipv6 router ...`
is enabled.

If we leave only:

```
int eth1
 ipv6 router openfabric x
```

Then also, no interface is going to be enabled, which is weird too.

Fixes: https://github.com/FRRouting/frr/issues/17075
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
6 months agozebra: add back one field for debug 17082/head
anlan_cs [Sun, 13 Oct 2024 13:26:02 +0000 (21:26 +0800)]
zebra: add back one field for debug

The `flags` field is removed recently, so add back it for debug.

Signed-off-by: anlan_cs <anlan_cs@126.com>
6 months agoMerge pull request #17071 from louis-6wind/fix-ipv6-ll-nexthop-unchanged
Donatas Abraitis [Sun, 13 Oct 2024 11:16:54 +0000 (14:16 +0300)]
Merge pull request #17071 from louis-6wind/fix-ipv6-ll-nexthop-unchanged

bgpd: split nexthop-local unchanged peer subgroup

6 months agofpm: Allow max fpm message size to float based on ecmp 17062/head
Donald Sharp [Fri, 11 Oct 2024 13:33:35 +0000 (09:33 -0400)]
fpm: Allow max fpm message size to float based on ecmp

Currently the max message size is 4k.  With a 256 way
ecmp FRR is seeing message sizes that are in the
6k size.  There is desire to allow this to increase as
well to 512.  Since the multipath size directly effects
how big the message may be when sending the routes ecmp
let's give a bit of headroom for this value when compiling
FRR at greater sizes.  Additionally since we know not everyone
is using such large ecmp, allow them to build as appropriate
for their use cases.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agozebra: Slow down fpm_process_queue
Donald Sharp [Fri, 11 Oct 2024 00:08:32 +0000 (20:08 -0400)]
zebra: Slow down fpm_process_queue

When the fpm_process_queue has run out of space
but has written to the fpm output buffer, schedule
it to wake up immediately, as that the write will go out
pretty much immediately, since it was scheduled first.
If the fpm_process_queue has not written to the output
buffer then delay the processing by 10 milliseconds to
allow a possibly backed up write processing to have a
chance to complete it's work.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agozebra: Only notify dplane work pthread when needed
Donald Sharp [Thu, 10 Oct 2024 20:00:08 +0000 (16:00 -0400)]
zebra: Only notify dplane work pthread when needed

The fpm_nl_process function was getting the count
of the total number of ctx's processed.  This leads
to after having processed 1 context to always signal
the dataplane that there is work to do.  Change the
code to only notify the dplane worker when a context
was actually added to the outgoing context queue.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agotopotest: add bgp_bmp_vrf topotest 17001/head
Louis Scalbert [Wed, 28 Feb 2024 13:12:19 +0000 (14:12 +0100)]
topotest: add bgp_bmp_vrf topotest

Add test to check BMP in VRF.

Note that the following configuration works with interface r1-eth0
towards 192.0.2.10 (BMP collector) in the default VRF but not in vrf1.

> router bgp 65501 vrf vrf1
>  bmp targets bmp1
>   bmp connect 192.0.2.10 port 1789 min-retry 100 max-retry 10000

Also, for some reasons, the test works even without "bgpd: bmp loc-rib
peer up/down for vrfs" commit.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agotopotests: check for bmp peer up/down messages
Louis Scalbert [Wed, 28 Feb 2024 13:07:06 +0000 (14:07 +0100)]
topotests: check for bmp peer up/down messages

Check for bmp peer up / down  messages

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agotopotests: add peer down log in bmp collector
Louis Scalbert [Wed, 28 Feb 2024 12:51:50 +0000 (13:51 +0100)]
topotests: add peer down log in bmp collector

Add peer down log in bmp collector

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agotopotests: log bmp peer up message type in collector
Louis Scalbert [Wed, 28 Feb 2024 12:50:50 +0000 (13:50 +0100)]
topotests: log bmp peer up message type in collector

Log "peer up" message type in BMP collector logs.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agobgpd: bmp loc-rib peer up/down for vrfs
Maxence Younsi [Thu, 13 Apr 2023 13:28:32 +0000 (15:28 +0200)]
bgpd: bmp loc-rib peer up/down for vrfs

added bmp bgp peer for vrfs
added peer up vrf in bmp peer up state
added vrf state in bmpbgp
added safe bmp_peer_sendall : bmp_peer_sendall_safe
changed bgp_open_send to call new bgp_open_make
bgp_open_make creates a bgp open packet, now used in bmp for peer up vrf
added hook and call to bgp instance state
vrf peer state is recomputed when interfaces (including vrf itf) go up / down
and when it gets created or removed

Link: https://github.com/mxyns/frr/commit/e48ba380700d53124131f4e4419f646c05b40c86
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Signed-off-by: Maxence Younsi <mx.yns@outlook.fr>
6 months agotopotests: check export labels to pre-policy bmp
Louis Scalbert [Tue, 27 Feb 2024 18:32:21 +0000 (19:32 +0100)]
topotests: check export labels to pre-policy bmp

Check export labels to pre-policy bmp

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agotests: test nexthop-local unchanged with reflector 17071/head
Louis Scalbert [Fri, 11 Oct 2024 11:14:25 +0000 (13:14 +0200)]
tests: test nexthop-local unchanged with reflector

Test nexthop-local unchanged with route-reflector.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agotests: test nexthop-local unchanged with route-server
Louis Scalbert [Thu, 10 Oct 2024 12:51:11 +0000 (14:51 +0200)]
tests: test nexthop-local unchanged with route-server

Test nexthop-local unchanged with route-server.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agobgpd: split nexthop-local unchanged peer subgroup
Louis Scalbert [Fri, 11 Oct 2024 05:12:23 +0000 (07:12 +0200)]
bgpd: split nexthop-local unchanged peer subgroup

5bb99ccad2 ("bgpd: reset ipv6 invalid link-local nexthop") now resets
the link-local when originating and destination peers are not on the
same network segment. However, it does not work all the time.

The fix compares the 'from' and 'peer' global IPv6 address. However,
'peer' refers to one of the peers of subgroup. The subgroup may contain
peers located on different network segment.

Split nexthop-local unchanged peer subgroup by network segment.

Fixes: 5bb99ccad2 ("bgpd: reset ipv6 invalid link-local nexthop")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agotests: unset r3 enforce-first-as bgp_route_server_client
Louis Scalbert [Thu, 10 Oct 2024 12:59:50 +0000 (14:59 +0200)]
tests: unset r3 enforce-first-as bgp_route_server_client

Unset enforce-first-as on r3 of bgp_route_server_client to enable the
reception of routes on this router.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agotests: rework bgp_route_server_client
Louis Scalbert [Thu, 10 Oct 2024 11:29:43 +0000 (13:29 +0200)]
tests: rework bgp_route_server_client

Rework bgp_route_server_client in a more standard form in order to
facilitate the next commut changes. Cosmetic change.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agoMerge pull request #17059 from opensourcerouting/fix/move_match_ipv6_next-hop_acl_to_...
Donald Sharp [Fri, 11 Oct 2024 11:14:51 +0000 (07:14 -0400)]
Merge pull request #17059 from opensourcerouting/fix/move_match_ipv6_next-hop_acl_to_routemap_lib

bgpd: Move some non BGP-specific route-map functions to lib

6 months agoMerge pull request #17064 from rudis/master
Donald Sharp [Fri, 11 Oct 2024 11:13:59 +0000 (07:13 -0400)]
Merge pull request #17064 from rudis/master

doc: routemap: fix typos

6 months agodoc: routemap: fix typos 17064/head
Simon Ruderich [Fri, 11 Oct 2024 06:23:48 +0000 (08:23 +0200)]
doc: routemap: fix typos

Signed-off-by: Simon Ruderich <simon@ruderich.org>
6 months agoMerge pull request #17037 from louis-6wind/fix-ipv6-ll-nexthop
Donatas Abraitis [Fri, 11 Oct 2024 05:36:14 +0000 (08:36 +0300)]
Merge pull request #17037 from louis-6wind/fix-ipv6-ll-nexthop

bgpd: fix ipv6 nexthop-local unchanged

6 months agoMerge pull request #17061 from Jafaral/10.3-dev
Donatas Abraitis [Fri, 11 Oct 2024 05:24:06 +0000 (08:24 +0300)]
Merge pull request #17061 from Jafaral/10.3-dev

10.3 dev deb/rpm housekeeping

6 months agoMerge pull request #17040 from sri-mohan1/srib-24-frr-a
Donatas Abraitis [Fri, 11 Oct 2024 05:19:44 +0000 (08:19 +0300)]
Merge pull request #17040 from sri-mohan1/srib-24-frr-a

bgpd: changes for code maintainability

6 months agoMerge pull request #17057 from donaldsharp/bgp_graceful_restart_vrf
Jafar Al-Gharaibeh [Fri, 11 Oct 2024 00:39:10 +0000 (19:39 -0500)]
Merge pull request #17057 from donaldsharp/bgp_graceful_restart_vrf

bgpd: Allow specification of vrf in show bgp neighbor graceful-restart

6 months agoMerge pull request #17044 from baozhen-H3C/202410091476
Donald Sharp [Thu, 10 Oct 2024 22:41:27 +0000 (18:41 -0400)]
Merge pull request #17044 from baozhen-H3C/202410091476

isisd: Lsp fragments will delete the corresponding dyn_cache entry.

6 months agodebian, redhat: frr dev 10.3 package housekeeping 17061/head
Jafar Al-Gharaibeh [Thu, 10 Oct 2024 20:44:30 +0000 (15:44 -0500)]
debian, redhat: frr dev 10.3 package housekeeping

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
6 months agodebian, redhat: updating changelog for 10.1 release
Jafar Al-Gharaibeh [Thu, 1 Aug 2024 04:31:57 +0000 (23:31 -0500)]
debian, redhat: updating changelog for 10.1 release

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
6 months agobgpd: changes for code maintainability 17040/head
sri-mohan1 [Wed, 9 Oct 2024 08:49:55 +0000 (14:19 +0530)]
bgpd: changes for code maintainability

these changes are for improving the code maintainability and readability

Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
6 months agobgpd: Move some non BGP-specific route-map functions to lib 17059/head
Donatas Abraitis [Thu, 10 Oct 2024 13:50:38 +0000 (16:50 +0300)]
bgpd: Move some non BGP-specific route-map functions to lib

They are managed under `frr-route-map`, not under `frr-bgp-route-map`.

Fixes: https://github.com/FRRouting/frr/issues/17055
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
6 months agolib: Apply and generate route-map commands earlier before any other protocol 17058/head
Donatas Abraitis [Thu, 10 Oct 2024 13:24:24 +0000 (16:24 +0300)]
lib: Apply and generate route-map commands earlier before any other protocol

If e.g. BGP neighbor is using a route-map at the boot, that is not yet created,
then the log is spammed with `The route-map 'X' does not exist`.

Processing earlier, should do the trick.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
6 months agobgpd: Allow specification of vrf in show bgp neighbor graceful-restart 17057/head
Donald Sharp [Thu, 10 Oct 2024 13:13:39 +0000 (09:13 -0400)]
bgpd: Allow specification of vrf in show bgp neighbor graceful-restart

This command did not allow the operator to display neighbor information
related to graceful-restart when used inside of a vrf.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agoMerge pull request #17054 from opensourcerouting/fix/add_missing_logrotate_mgmtd
Donald Sharp [Thu, 10 Oct 2024 12:54:52 +0000 (08:54 -0400)]
Merge pull request #17054 from opensourcerouting/fix/add_missing_logrotate_mgmtd

tools: Add missing mgmtd into logrotate/rsyslogd

6 months agotools: Add missing mgmtd into logrotate/rsyslogd 17054/head
Donatas Abraitis [Thu, 10 Oct 2024 09:58:43 +0000 (12:58 +0300)]
tools: Add missing mgmtd into logrotate/rsyslogd

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
6 months agobgpd: Drop deprecated `bgp network import-check exact` command 17053/head
Donatas Abraitis [Thu, 10 Oct 2024 09:53:51 +0000 (12:53 +0300)]
bgpd: Drop deprecated `bgp network import-check exact` command

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
6 months agoMerge pull request #17050 from chriswiggins/doc/vrrp-in-vm-bridge
Donatas Abraitis [Thu, 10 Oct 2024 09:45:49 +0000 (12:45 +0300)]
Merge pull request #17050 from chriswiggins/doc/vrrp-in-vm-bridge

Adds note about VRRP issues inside a VM with underlying bridge networking

6 months agotopotests: add bgp_nexthop_ipv6 17037/head
Louis Scalbert [Tue, 8 Oct 2024 13:04:34 +0000 (15:04 +0200)]
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>
6 months agobgpd: reset ipv6 invalid link-local nexthop
Louis Scalbert [Wed, 9 Oct 2024 15:08:44 +0000 (17:08 +0200)]
bgpd: reset ipv6 invalid link-local nexthop

If the "nexthop-local unchanged" setting is enabled, it preserves the
IPv6 link-local nexthop from the originating peer. However, if the
originating and destination peers are not on the same network segment,
the originating peer's IPv6 link-local address will be unreachable from
the destination peer.

In such cases, reset the IPv6 link-local nexthop, even if "nexthop-local
unchanged" is set on the destination peer.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agobgpd: do not insert link-local with local unchanged
Louis Scalbert [Wed, 9 Oct 2024 15:06:19 +0000 (17:06 +0200)]
bgpd: do not insert link-local with local unchanged

Do not add an IPv6 link-local nexthop if the originating peer does not
provide one and the nexthop-local unchanged setting is enabled.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agoMerge pull request #17002 from louis-6wind/bfd-values
Donatas Abraitis [Thu, 10 Oct 2024 06:25:42 +0000 (09:25 +0300)]
Merge pull request #17002 from louis-6wind/bfd-values

bfdd, yang: change bfd timer and multiplier values

6 months agodoc: VRRP troubleshooting info for linux-hosted VMs 17050/head
Chris Wiggins [Thu, 10 Oct 2024 04:39:54 +0000 (17:39 +1300)]
doc: VRRP troubleshooting info for linux-hosted VMs

Signed-off-by: Chris Wiggins <chris@wiggins.nz>
6 months agoMerge pull request #17042 from donaldsharp/zebra_pw_crash
Jafar Al-Gharaibeh [Wed, 9 Oct 2024 18:46:25 +0000 (13:46 -0500)]
Merge pull request #17042 from donaldsharp/zebra_pw_crash

zebra: Fix crash in pw code

6 months agoRevert "bgpd: Exclude case for remote prefix w/o link-local"
Louis Scalbert [Tue, 8 Oct 2024 11:01:45 +0000 (13:01 +0200)]
Revert "bgpd: Exclude case for remote prefix w/o link-local"

This reverts commit 5f6a61f91fdbfa33df1b7112c961135156fbd894.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agoisisd: Lsp fragments will delete the corresponding dyn_cache entry. 17044/head
baozhen-H3C [Wed, 9 Oct 2024 09:58:05 +0000 (17:58 +0800)]
isisd: Lsp fragments will delete the corresponding dyn_cache entry.

When LSP fragments age, isis_dynhn_remove() is also called to remove the corresponding dyhn_cache entries.

Signed-off-by: baozhen-H3C <bao.zhen@h3c.com>
6 months agozebra: Fix crash in pw code 17042/head
Donald Sharp [Wed, 9 Oct 2024 11:16:37 +0000 (07:16 -0400)]
zebra: Fix crash in pw code

Recent PR #17009 introduced a crash in pw handing
for deletion.  Let's fix that problem.

Fixes: #17041
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agobuild: FRR 10.3 development version frr-10.3-dev
Jafar Al-Gharaibeh [Tue, 8 Oct 2024 18:06:40 +0000 (13:06 -0500)]
build: FRR 10.3 development version

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
6 months agoMerge pull request #17023 from donaldsharp/dplane_problems base_10.2
Russ White [Tue, 8 Oct 2024 15:45:27 +0000 (11:45 -0400)]
Merge pull request #17023 from donaldsharp/dplane_problems

zebra: Allow dplane to pass larger number of nexthops down to dataplane

6 months agoMerge pull request #17009 from donaldsharp/pw_cleanup
Russ White [Tue, 8 Oct 2024 14:56:28 +0000 (10:56 -0400)]
Merge pull request #17009 from donaldsharp/pw_cleanup

Pw cleanup

6 months agoMerge pull request #16945 from opensourcerouting/fix/bgp_received-routes_with_soft_in...
Russ White [Tue, 8 Oct 2024 14:16:24 +0000 (10:16 -0400)]
Merge pull request #16945 from opensourcerouting/fix/bgp_received-routes_with_soft_inbound

bgpd: Show unmodified version of received-routes per neighbor

6 months agoMerge pull request #16942 from baozhen-H3C/202409271079
Russ White [Tue, 8 Oct 2024 14:15:19 +0000 (10:15 -0400)]
Merge pull request #16942 from baozhen-H3C/202409271079

TI-LFA incorrectly included pseudo-nodes when calculating PQ space.

6 months agoMerge pull request #16941 from opensourcerouting/fix/issue_16877
Russ White [Tue, 8 Oct 2024 14:14:30 +0000 (10:14 -0400)]
Merge pull request #16941 from opensourcerouting/fix/issue_16877

bgpd: Relax the same prefix and nexthop to be valid

6 months agoMerge pull request #17022 from opensourcerouting/vrrp-cmsg-next
Donald Sharp [Tue, 8 Oct 2024 13:31:18 +0000 (09:31 -0400)]
Merge pull request #17022 from opensourcerouting/vrrp-cmsg-next

vrrpd: iterate over all ancillary messages

6 months ago*: Allow 16 bit size for nexthops 17023/head
Donald Sharp [Mon, 7 Oct 2024 16:40:46 +0000 (12:40 -0400)]
*: Allow 16 bit size for nexthops

Currently FRR is limiting the nexthop count to a uint8_t not a
uint16_t.  This leads to issues when the nexthop count is 256
which results in the count to overflow to 0 causing problems
in the code.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agoMerge pull request #15903 from y-bharath14/srib-topotests-v1
Russ White [Tue, 8 Oct 2024 12:27:12 +0000 (08:27 -0400)]
Merge pull request #15903 from y-bharath14/srib-topotests-v1

tests: catch exception during switch shutdown

6 months agobfdd, doc, yang: change bfd timer and multiplier values 17002/head
Philippe Guibert [Fri, 12 Jul 2019 08:32:42 +0000 (10:32 +0200)]
bfdd, doc, yang: change bfd timer and multiplier values

The minimum and maximum values for BFD timers and multiplier settings
have been updated to align with RFC 5880 requirements.

Since the values inputted via VTY are in milliseconds, the maximum
permissible value on the VTY interface is 4,294,967 milliseconds.

For the multiplier setting, the minimum value is now restricted to be
greater than zero, as zero is not allowed.

The minimum transmit interval has been set to 10 milliseconds to ensure
reliable service performance.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agoMerge pull request #17014 from anlancs/fix/isisd-topo-check
Donatas Abraitis [Tue, 8 Oct 2024 05:10:22 +0000 (08:10 +0300)]
Merge pull request #17014 from anlancs/fix/isisd-topo-check

isisd: fix wrong check for MT commands

6 months agoMerge pull request #17024 from Jafaral/fix-autorp
Donatas Abraitis [Tue, 8 Oct 2024 05:03:52 +0000 (08:03 +0300)]
Merge pull request #17024 from Jafaral/fix-autorp

pimd: fix a possible crash when enabling debug autorp

6 months agozebra: Do not retry in 30 seconds on pw reachability failure 17009/head
Donald Sharp [Fri, 4 Oct 2024 13:51:46 +0000 (09:51 -0400)]
zebra: Do not retry in 30 seconds on pw reachability failure

Currently the zebra pw code has setup a retry to install the
pw after 30 seconds when it is decided that reachability to
the pw is gone.  This causes a failure mode where the
pw code just goes and re-installs the pw after 30 seconds
in the non-reachability case.  Instead it should just be
reinstalling after reachability is restored.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agozebra: Move pw status settting until after we get results
Donald Sharp [Fri, 4 Oct 2024 13:38:25 +0000 (09:38 -0400)]
zebra: Move pw status settting until after we get results

Currently the pw code sets the status of the pw for install
and uninstall immediately when notifying the dplane.  This
is incorrect in that we do not actually know the status at
this point in time.  When we get the result is when to set
the status.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agopimd: fix a possible crash when enabling debug autorp 17024/head
Jafar Al-Gharaibeh [Mon, 7 Oct 2024 23:20:34 +0000 (18:20 -0500)]
pimd: fix a possible crash when enabling debug autorp

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
6 months agoMerge pull request #17015 from LabNConsulting/chopps/load-internal-ietf-yang-library
Igor Ryzhov [Mon, 7 Oct 2024 17:33:23 +0000 (20:33 +0300)]
Merge pull request #17015 from LabNConsulting/chopps/load-internal-ietf-yang-library

lib: add flag to have libyang load internal ietf-yang-library module

6 months agovrrpd: iterate over all ancillary messages 17022/head
Rafael Zalamena [Mon, 7 Oct 2024 16:02:44 +0000 (13:02 -0300)]
vrrpd: iterate over all ancillary messages

Assign the return of `CMSG_NXTHDR` so we can really iterate over the
ancillary data.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
6 months agoMerge pull request #17013 from dksharp5/removal_functions
Donatas Abraitis [Mon, 7 Oct 2024 08:47:01 +0000 (11:47 +0300)]
Merge pull request #17013 from dksharp5/removal_functions

Removal functions

6 months agoMerge pull request #17012 from dksharp5/remove_function
Donatas Abraitis [Mon, 7 Oct 2024 08:45:05 +0000 (11:45 +0300)]
Merge pull request #17012 from dksharp5/remove_function

zebra: remove unused function rib_lookup_ipv4

6 months agolib: add flag to have libyang load internal ietf-yang-library module 17015/head
Christian Hopps [Mon, 7 Oct 2024 03:23:31 +0000 (03:23 +0000)]
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>
6 months agoisisd: fix wrong check for MT commands 17014/head
anlan_cs [Sun, 6 Oct 2024 13:06:15 +0000 (21:06 +0800)]
isisd: fix wrong check for MT commands

```
anlan# show run
!
interface eth0
 ip router isis A
exit
!
router isis A
 metric-style narrow <- NOT wide
exit
!
end
anlan (config)# int eth0
anlan (config-if)# no isis topology ipv6-unicast
% Configuration failed.

Error type: validation
Error description: Multi topology IS-IS can only be used with wide metrics
```

The MT commands are mainly controlled by the binded area, not by interface.
Currently if there is any MT configuration in the area, `metric-style` must
be with the `wide` mode, this requirement is sufficient.  So, the
unnecessary/wrong check for MT in the interface should be removed.

Signed-off-by: anlan_cs <anlan_cs@126.com>
6 months agolib,zebra: remove unused ZEBRA_VRF_UNREGISTER 17013/head
Donna Sharp [Sun, 6 Oct 2024 23:40:49 +0000 (19:40 -0400)]
lib,zebra: remove unused ZEBRA_VRF_UNREGISTER

Signed-off-by: Donna Sharp <dksharp5@gmail.com>
6 months agozebra: remove unsued function from tc_netlink.c
Donna Sharp [Sun, 6 Oct 2024 23:30:56 +0000 (19:30 -0400)]
zebra: remove unsued function from tc_netlink.c

Signed-off-by: Donna Sharp <dksharp5@gmail.com>
6 months agozebra: remove unused function from if_netlink.c
Donna Sharp [Sun, 6 Oct 2024 23:25:44 +0000 (19:25 -0400)]
zebra: remove unused function from if_netlink.c

Signed-off-by: Donna Sharp <dksharp5@gmail.com>