]> git.puffer.fish Git - mirror/frr.git/log
mirror/frr.git
3 months agotools: Allow deleting of interfaces 16723/head
Julian Klaiber [Mon, 2 Sep 2024 13:13:40 +0000 (15:13 +0200)]
tools: Allow deleting of interfaces

The frr-reload script currently deletes configurations
line-by-line under an interface context, if the interface was removed.
This approach fails when the interface has already been removed from the system.

This change enables whole interface removal using a single command
(no interface <interface-name>), simplifying the reload process and
reducing reload errors.

Signed-off-by: Julian Klaiber <jklaiber@open-systems.com>
3 months agoMerge pull request #17838 from opensourcerouting/msdp-topo3
Russ White [Wed, 15 Jan 2025 16:11:49 +0000 (11:11 -0500)]
Merge pull request #17838 from opensourcerouting/msdp-topo3

topotests: improve test reliability

3 months agoMerge pull request #17810 from donaldsharp/bgp_connect_refactor
Russ White [Wed, 15 Jan 2025 16:11:41 +0000 (11:11 -0500)]
Merge pull request #17810 from donaldsharp/bgp_connect_refactor

Bgp connect refactor

3 months agoMerge pull request #17855 from opensourcerouting/fix/bgp_enhe_capability_via_dynamic_...
Donald Sharp [Wed, 15 Jan 2025 15:34:39 +0000 (10:34 -0500)]
Merge pull request #17855 from opensourcerouting/fix/bgp_enhe_capability_via_dynamic_capability

bgpd: Handle ENHE capability via dynamic capability

3 months agoMerge pull request #17799 from LabNConsulting/chopps/backend-yang-model
Donald Sharp [Wed, 15 Jan 2025 15:22:11 +0000 (10:22 -0500)]
Merge pull request #17799 from LabNConsulting/chopps/backend-yang-model

mgmtd backend yang model (depends on #17796)

3 months agoMerge pull request #17776 from nabahr/group-rpf-mode
Donald Sharp [Wed, 15 Jan 2025 15:20:24 +0000 (10:20 -0500)]
Merge pull request #17776 from nabahr/group-rpf-mode

PIMD: RPF lookup mode per-group, per-source

3 months agoMerge pull request #17854 from enkechen-panw/flag-reflected
Donatas Abraitis [Wed, 15 Jan 2025 13:41:17 +0000 (15:41 +0200)]
Merge pull request #17854 from enkechen-panw/flag-reflected

bgpd: remove unused BATTR_REFLECTED for rmap_change_flags

3 months agoMerge pull request #17859 from donaldsharp/active_routes_are_active
Donatas Abraitis [Wed, 15 Jan 2025 13:01:59 +0000 (15:01 +0200)]
Merge pull request #17859 from donaldsharp/active_routes_are_active

Active routes are active

3 months agoMerge pull request #17858 from enkechen-panw/aggr-fix5
Donald Sharp [Wed, 15 Jan 2025 12:37:12 +0000 (07:37 -0500)]
Merge pull request #17858 from enkechen-panw/aggr-fix5

bgpd: move bgp_aggregate_increment() after bgp_path_info_add()

3 months agozebra: On Nexthop install failure don't set Installation failed 17859/head
Donald Sharp [Tue, 14 Jan 2025 21:23:40 +0000 (16:23 -0500)]
zebra: On Nexthop install failure don't set Installation failed

Currently FRR when installing a nexthop group, the installation can fail.
The assumption with the code was that the current nexthop group was
not already installed.  This leaves a problem state where if the
users of the nexthop group are removed, the nexthop group will be
removed possibly leaving a orphaned nexthop group in the data plane.

FRR on a nexthop group installation does not actually know the status
of the nexthop group in the kernel.  It's possible that a earlier
version of the nexthop group is left in play.  It's possible that
there is no nexthop group in the kernel at all.  Leaving the
Installed flag alone allows upon Zebra removing the nexthop
group when it is removed from zebra.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 months agobgpd: Handle ENHE capability via dynamic capability 17855/head
Donatas Abraitis [Tue, 14 Jan 2025 16:57:45 +0000 (18:57 +0200)]
bgpd: Handle ENHE capability via dynamic capability

FRR supports dynamic capability which is useful to exchange the capabilities
without tearing down the session. ENHE capability was missed to be included
handling via dynamic capability. Let's add it too.

This was missed and asked in Slack that it would be useful.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
3 months agotests: Check if ENHE capability can be handled dynamically
Donatas Abraitis [Tue, 14 Jan 2025 16:56:48 +0000 (18:56 +0200)]
tests: Check if ENHE capability can be handled dynamically

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
3 months agozebra: Nexthops need to be ACTIVE in some cases
Donald Sharp [Tue, 14 Jan 2025 20:12:32 +0000 (15:12 -0500)]
zebra: Nexthops need to be ACTIVE in some cases

Currently if you have an interface down event, Zebra
sets the nexthop(s) as !ACTIVE that use it.  On
interface up events the singleton nexthops are not being
set as ACTIVE.  Due to timing events it is sometimes
possible to end up with a route that is using a singleton

Change singleton nexthops to set the nexthop to ACTIVE.
This will allow the nexthop to be reinstalled appropriately
as well.

I was able to easily reproduce this using sharpd since
it does not attempt to reinstall the routes when a interface
goes up/down.

Before:

D>* 10.0.0.0/32 [150/0] via 192.168.102.34, dummy2, weight 1, 00:00:01

sharpd@eva ~/frr5 (master)> sudo ip link set dummy2 down ; sudo ip link set dummy2 up

D>  10.0.0.0/32 [150/0] (350) via 192.168.102.34, dummy2 inactive, weight 1, 00:00:10

After code change:

D>* 10.0.0.0/32 [150/0] (73) via 192.168.102.34, dummy2, weight 1, 00:00:14

sharpd@eva ~/frr5 (master)> sudo ip link set dummy2 down ; sudo ip link set dummy2 up

D>* 10.0.0.0/32 [150/0] (73) via 192.168.102.34, dummy2, weight 1, 00:00:21

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 months agolib: northbound/mgmtd: add backend model support 17799/head
Christian Hopps [Mon, 6 Jan 2025 12:52:31 +0000 (07:52 -0500)]
lib: northbound/mgmtd: add backend model support

Signed-off-by: Christian Hopps <chopps@labn.net>
3 months agoMerge pull request #17796 from LabNConsulting/chopps/datastore-notifications
Donald Sharp [Tue, 14 Jan 2025 18:47:28 +0000 (13:47 -0500)]
Merge pull request #17796 from LabNConsulting/chopps/datastore-notifications

operational-state (datastore) change notifications

3 months agoMerge pull request #17581 from mjstapp/fix_fpm_netlink
Donald Sharp [Tue, 14 Jan 2025 18:42:29 +0000 (13:42 -0500)]
Merge pull request #17581 from mjstapp/fix_fpm_netlink

zebra: avoid race between FPM pthread and zebra main pthread in netlink encode/decode

3 months agobgpd: move bgp_aggregate_increment() after bgp_path_info_add() 17858/head
Enke Chen [Tue, 14 Jan 2025 18:29:22 +0000 (10:29 -0800)]
bgpd: move bgp_aggregate_increment() after bgp_path_info_add()

Route aggregation should be checked after a route is added, and
not before. This is for code flow and consistency.

Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
3 months agoMerge pull request #17850 from Jafaral/wr-rpg
Donald Sharp [Tue, 14 Jan 2025 17:41:15 +0000 (12:41 -0500)]
Merge pull request #17850 from Jafaral/wr-rpg

pimd: always write cand-rp group config even when rp is inactive

3 months agoMerge pull request #17841 from Jafaral/pim-bsr-rp
Donald Sharp [Tue, 14 Jan 2025 17:39:52 +0000 (12:39 -0500)]
Merge pull request #17841 from Jafaral/pim-bsr-rp

pimd: fix BSR RPs timing out

3 months agobgpd: remove unused BATTR_REFLECTED for rmap_change_flags 17854/head
Enke Chen [Sun, 12 Jan 2025 08:27:12 +0000 (00:27 -0800)]
bgpd: remove unused BATTR_REFLECTED for rmap_change_flags

Remove unused BATTR_REFLECTED for rmap_change_flags.

Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
3 months agoMerge pull request #17800 from opensourcerouting/fix/import_between_vrf_respect_allow...
Russ White [Tue, 14 Jan 2025 15:19:26 +0000 (10:19 -0500)]
Merge pull request #17800 from opensourcerouting/fix/import_between_vrf_respect_allowas_in

bgpd: Respect allowas-in value from the source VRF's peer

3 months agoMerge pull request #17803 from anlancs/ospfd/fix-redundant-timers
Russ White [Tue, 14 Jan 2025 15:17:20 +0000 (10:17 -0500)]
Merge pull request #17803 from anlancs/ospfd/fix-redundant-timers

ospfd: avoid the redundant timers

3 months agoMerge pull request #17806 from opensourcerouting/fix/lua5.4_support
Russ White [Tue, 14 Jan 2025 15:09:04 +0000 (10:09 -0500)]
Merge pull request #17806 from opensourcerouting/fix/lua5.4_support

Lua 5.4 support

3 months agoMerge pull request #17837 from enkechen-panw/aggr-fix4
Russ White [Tue, 14 Jan 2025 15:05:06 +0000 (10:05 -0500)]
Merge pull request #17837 from enkechen-panw/aggr-fix4

bgpd: fix churn of aggregate routes from duplicate config

3 months agoMerge pull request #17842 from enkechen-panw/aggr-safi
Donald Sharp [Tue, 14 Jan 2025 14:37:39 +0000 (09:37 -0500)]
Merge pull request #17842 from enkechen-panw/aggr-safi

bgpd: remove unused safi in bgp_aggregate structure

3 months agoMerge pull request #17846 from Jafaral/fix-latex-warn
Donald Sharp [Tue, 14 Jan 2025 14:37:09 +0000 (09:37 -0500)]
Merge pull request #17846 from Jafaral/fix-latex-warn

doc: fix LaTex warnings, add documentation to build docs

3 months agoMerge pull request #17639 from pguibert6WIND/bmp_import_vrf_view
Russ White [Tue, 14 Jan 2025 13:38:37 +0000 (08:38 -0500)]
Merge pull request #17639 from pguibert6WIND/bmp_import_vrf_view

Ability to import BMP information from a separate BGP instance

3 months agoMerge pull request #17840 from Jafaral/pim-acl-test
Donatas Abraitis [Tue, 14 Jan 2025 07:08:41 +0000 (09:08 +0200)]
Merge pull request #17840 from Jafaral/pim-acl-test

tests: remove unnecessary wildcard fields from pim acl test

3 months agoMerge pull request #17847 from chiragshah6/freloadfix
Donatas Abraitis [Tue, 14 Jan 2025 07:07:14 +0000 (09:07 +0200)]
Merge pull request #17847 from chiragshah6/freloadfix

tools: fix frr-reload for nbr deletion of no form cmds

3 months agopimd: always write cand-rp group config even when rp is inactive 17850/head
Jafar Al-Gharaibeh [Tue, 14 Jan 2025 05:34:08 +0000 (23:34 -0600)]
pimd: always write cand-rp group config even when rp is inactive

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
3 months agolib: fix new (incorrect) CLANG SA warnings 17796/head
Christian Hopps [Fri, 10 Jan 2025 12:01:00 +0000 (07:01 -0500)]
lib: fix new (incorrect) CLANG SA warnings

Signed-off-by: Christian Hopps <chopps@labn.net>
3 months agotests: add datastore notification test
Christian Hopps [Wed, 8 Jan 2025 16:11:43 +0000 (11:11 -0500)]
tests: add datastore notification test

Signed-off-by: Christian Hopps <chopps@labn.net>
3 months agomgmtd: add notify selectors to filter datastore notifications
Christian Hopps [Wed, 8 Jan 2025 15:34:57 +0000 (10:34 -0500)]
mgmtd: add notify selectors to filter datastore notifications

- Additionally push the selectors down to the backends

Signed-off-by: Christian Hopps <chopps@labn.net>
3 months agolib: notify on datastore (oper-state) changes
Christian Hopps [Sat, 14 Dec 2024 23:26:49 +0000 (18:26 -0500)]
lib: notify on datastore (oper-state) changes

Signed-off-by: Christian Hopps <chopps@labn.net>
3 months agolib: if: track oper-state inline
Christian Hopps [Mon, 2 Dec 2024 00:48:53 +0000 (19:48 -0500)]
lib: if: track oper-state inline

Signed-off-by: Christian Hopps <chopps@labn.net>
3 months agolib: vrf: track oper-state inline
Christian Hopps [Wed, 8 Jan 2025 14:57:10 +0000 (09:57 -0500)]
lib: vrf: track oper-state inline

Signed-off-by: Christian Hopps <chopps@labn.net>
3 months agolib: northbound: add basic oper-state update functions
Christian Hopps [Tue, 7 Jan 2025 11:46:23 +0000 (06:46 -0500)]
lib: northbound: add basic oper-state update functions

Signed-off-by: Christian Hopps <chopps@labn.net>
3 months agotools: fix frr-reload for nbr deletion of no form cmds 17847/head
Chirag Shah [Mon, 13 Jan 2025 02:31:02 +0000 (18:31 -0800)]
tools: fix frr-reload for nbr deletion of no form cmds

When a bgp neighbor removed from associated to peer-group,
the neighbor is fully deleted, subsequent deletion of any
configuration related to the neighbor leads to failure
in frr-reload.
Handle any 'no neighbor ...' part of lines_to_del list

Testing:
Below first line would delete the neighbor swp1.10,
the existing code before the change handles to remove
config starts with 'neighbor swp1.10 ...' but not
'no neighbor swp1.10 ...'.

(Pdb) (lines_to_del)
 (('router bgp 100',), 'neighbor swp1.10 interface peer-group dpeergrp_2'),
 (('router bgp 100',), 'neighbor swp1.10 advertisement-interval 1'),
 (('router bgp 100',), 'neighbor swp1.10 timers 3 9'),
 (('router bgp 100',), 'neighbor swp1.10 timers connect 1'),
 (('router bgp 100',), 'no neighbor swp1.10 capability dynamic'),

Before fix:

(Pdb) (lines_to_del)
[(('router bgp 100',), 'neighbor swp1.10 interface peer-group dpeergrp_2'),
 (('router bgp 100',), 'no neighbor swp1.10 capability dynamic')]

frr-reload log:
2025-01-13 05:13:11,172  INFO: Executed "router bgp 100  no neighbor swp1.10 interface peer-group dpeergrp_2 exit"
2025-01-13 05:13:11,227 ERROR: Failed to execute router bgp 100  neighbor swp1.10 capability dynamic exit
2025-01-13 05:13:11,228 ERROR: "router bgp 100 --  neighbor swp1.10 capability dynamic -- exit" we failed to remove this command

After fix:

(Pdb)(lines_to_del)
 [(('router bgp 100',), 'neighbor swp1.10 interface peer-group dpeergrp_2')]

Signed-off-by: Chirag Shah <chirag@nvidia.com>
3 months agoMerge pull request #17843 from LabNConsulting/chopps/new-docker-and-doc
Jafar Al-Gharaibeh [Mon, 13 Jan 2025 19:16:49 +0000 (13:16 -0600)]
Merge pull request #17843 from LabNConsulting/chopps/new-docker-and-doc

Add Ubuntu 24.04 docker image and developer build doc

3 months agoMerge pull request #17839 from raja-rajasekar/rajasekarr/optimize_nh_compare
Mark Stapp [Mon, 13 Jan 2025 18:47:12 +0000 (13:47 -0500)]
Merge pull request #17839 from raja-rajasekar/rajasekarr/optimize_nh_compare

zebra: Optimize invoking nhg compare func

3 months agoMerge pull request #17844 from LabNConsulting/chopps/munet-0-15-3
Donald Sharp [Mon, 13 Jan 2025 17:07:33 +0000 (12:07 -0500)]
Merge pull request #17844 from LabNConsulting/chopps/munet-0-15-3

tests: update munet to 0.15.3

3 months agodoc: building html/pdf user and developer documentation 17846/head
Jafar Al-Gharaibeh [Mon, 13 Jan 2025 07:38:32 +0000 (01:38 -0600)]
doc: building html/pdf user and developer documentation

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
3 months agodoc: fix LaTex warning when building pdf docs
Jafar Al-Gharaibeh [Mon, 13 Jan 2025 05:00:09 +0000 (23:00 -0600)]
doc: fix LaTex warning when building pdf docs

LaTex doesn't like the Unicon character `≥` which should be represented
by the special sequnce `$\leq$`. Since this is buried all in Sphinx, and
we also have a scrip that look for the character, the easiest fix is to
just use `>=` instead which works without warnings, and without asking to
ignore every warning about the use of every instance of the special char.

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
3 months agopimd: explicitly ensure the RP src is BSR 17841/head
Jafar Al-Gharaibeh [Sat, 11 Jan 2025 20:40:28 +0000 (14:40 -0600)]
pimd: explicitly ensure the RP src is BSR

With the recent suppoort of multiple sources of RPs, we can assume non static RPs
are BSR RPs. Just make the check explicit for BSR.

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
3 months agopimd: fix BSR RPs timing out
Jafar Al-Gharaibeh [Sat, 11 Jan 2025 20:36:45 +0000 (14:36 -0600)]
pimd: fix BSR RPs timing out

On the BSR node itself, RPs shouldn't timeout, becase we know
the node is the BSR, and it is active!

fixes:#17587

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
3 months agolib: Adopt Lua stuff for Lua 5.4 17806/head
Donatas Abraitis [Thu, 9 Jan 2025 07:48:27 +0000 (09:48 +0200)]
lib: Adopt Lua stuff for Lua 5.4

lua_pcall() returns LUA_ERRGCMM in 5.3 which is already deprecated.

The constant LUA_ERRGCMM was removed.
Errors in finalizers are never propagated; instead, they generate a warning.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
3 months agoconfigure: Adopt for Lua 5.4
Donatas Abraitis [Thu, 9 Jan 2025 07:25:11 +0000 (09:25 +0200)]
configure: Adopt for Lua 5.4

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
3 months agotopotests: improve test reliability 17838/head
Rafael Zalamena [Fri, 10 Jan 2025 13:17:35 +0000 (10:17 -0300)]
topotests: improve test reliability

Decrease the protocol timers, wait for peers to connect (and test it)
then finally wait a bit more for SAs to be propagated.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
3 months agom4: Update ax_lua to support Lua 5.4
Donatas Abraitis [Wed, 8 Jan 2025 21:50:07 +0000 (23:50 +0200)]
m4: Update ax_lua to support Lua 5.4

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
3 months agotests: update munet to 0.15.4 17844/head
Christian Hopps [Sun, 12 Jan 2025 09:42:33 +0000 (09:42 +0000)]
tests: update munet to 0.15.4

- add readline and waitline functions for use with popen objects
- other non-topotest (munet native) run changes
  - vm/qemu support booting cloud images (rocky, ubuntu, debian)
  - native topology init commands

Signed-off-by: Christian Hopps <chopps@labn.net>
3 months agodocker: add ubuntu24-ci docker image support 17843/head
Christian Hopps [Sun, 12 Jan 2025 02:30:08 +0000 (02:30 +0000)]
docker: add ubuntu24-ci docker image support

Signed-off-by: Christian Hopps <chopps@labn.net>
3 months agodoc: add building for ubuntu 24.04, and refactor
Christian Hopps [Sun, 12 Jan 2025 02:27:10 +0000 (02:27 +0000)]
doc: add building for ubuntu 24.04, and refactor

- All 3 ubutu 2x (20.04, 22.04 and 24.04) have the same instructions
so put them in one include file.

Signed-off-by: Christian Hopps <chopps@labn.net>
3 months agobgpd: remove unused safi in bgp_aggregate structure 17842/head
Enke Chen [Sat, 11 Jan 2025 22:14:10 +0000 (14:14 -0800)]
bgpd: remove unused safi in bgp_aggregate structure

Remove the unused safi field in bgp_aggregate structure.

Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
3 months agobgpd: fix churn of aggregate routes from duplicate config 17837/head
Enke Chen [Sat, 11 Jan 2025 22:01:36 +0000 (14:01 -0800)]
bgpd: fix churn of aggregate routes from duplicate config

Currently when an aggregate-address is configured, the existing
entry is always removed regardless whether any change is involved.
This would create unnecessary churn of the aggregate route when
the same config is applied for the aggregate address.

The fix is to check for duplicate aggregate-address config.

Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
3 months agotests: remove unnecessary wildcard fields from pim acl test 17840/head
Jafar Al-Gharaibeh [Fri, 10 Jan 2025 23:32:30 +0000 (17:32 -0600)]
tests: remove unnecessary wildcard fields from pim acl test

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
3 months agozebra: Optimize invoking nhg compare func 17839/head
Rajasekar Raja [Fri, 10 Jan 2025 21:39:12 +0000 (13:39 -0800)]
zebra: Optimize invoking nhg compare func

In some cases, the old_re nhe and the newnhe is same and there is no
point in comparing them both since they are the same. Skip comparing in
such cases.

Ex:
2025/01/09 23:49:27.489020 ZEBRA: [W4Z4R-NTSMD] zebra_nhg_rib_find_nhe: => nhe 0x555f611d30c0 (44[38/39/45])
2025/01/09 23:49:27.489021 ZEBRA: [ZH3FQ-TE9NV] zebra_nhg_rib_compare_old_nhe: 0.0.0.0/0 new id: 44 old id: 44
2025/01/09 23:49:27.489021 ZEBRA: [YB8HE-Z86GN] zebra_nhg_rib_compare_old_nhe: 0.0.0.0/0 NEW 0x555f611d30c0 (44[38/39/45])
2025/01/09 23:49:27.489023 ZEBRA: [ZSB1Z-XM2V3] 0.0.0.0/0: NH 20.1.1.9[0] vrf default(0) wgt 1, with flags
2025/01/09 23:49:27.489024 ZEBRA: [ZSB1Z-XM2V3] 0.0.0.0/0: NH 30.1.2.9[0] vrf default(0) wgt 1, with flags
2025/01/09 23:49:27.489025 ZEBRA: [ZSB1Z-XM2V3] 0.0.0.0/0: NH 20.1.1.2[4] vrf default(0) wgt 1, with flags ACTIVE
2025/01/09 23:49:27.489026 ZEBRA: [ZM3BX-HPETZ] zebra_nhg_rib_compare_old_nhe: 0.0.0.0/0 OLD 0x555f611d30c0 (44[38/39/45])
2025/01/09 23:49:27.489027 ZEBRA: [ZSB1Z-XM2V3] 0.0.0.0/0: NH 20.1.1.9[0] vrf default(0) wgt 1, with flags
2025/01/09 23:49:27.489028 ZEBRA: [ZSB1Z-XM2V3] 0.0.0.0/0: NH 30.1.2.9[0] vrf default(0) wgt 1, with flags
2025/01/09 23:49:27.489028 ZEBRA: [ZSB1Z-XM2V3] 0.0.0.0/0: NH 20.1.1.2[4] vrf default(0) wgt 1, with flags ACTIVE

Signed-off-by: Rajasekar Raja <rajasekarr@nvidia.com>
3 months agoMerge pull request #17829 from Jafaral/static-metric
Donald Sharp [Fri, 10 Jan 2025 15:12:39 +0000 (10:12 -0500)]
Merge pull request #17829 from Jafaral/static-metric

tests: avoid nondeterministic route

3 months agobgpd: Only update peer connection information when needed 17810/head
Donald Sharp [Thu, 9 Jan 2025 17:51:16 +0000 (12:51 -0500)]
bgpd: Only update peer connection information when needed

Currently bgp is repeatedly grabbing peer connection information.
This is a bit overkill.  There are two situations:

a) Opening a connection to the peer
   In this case, we know the remote port/address a priori and can get
   the local information by just asking the OS.
b) Peer opening a connection to us.
   In this case, we know the local port/address a priori and can get
   the remote information by just asking the OS.

Modify the code to just grab this data at the appropriate time.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 months agobgpd: su_remote and su_local are properties of the connection
Donald Sharp [Tue, 17 Dec 2024 20:56:19 +0000 (15:56 -0500)]
bgpd: su_remote and su_local are properties of the connection

su_local and su_remote in the peer can change based upon
if we are initiating the remote connection or receiving it.
As such we need to treat it as a property of the connection.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 months agobgpd: bgp_getsockanme is connection oriented
Donald Sharp [Tue, 17 Dec 2024 20:38:01 +0000 (15:38 -0500)]
bgpd: bgp_getsockanme is connection oriented

Let's make it so.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 months agoMerge pull request #17813 from enkechen-panw/aigp-fix6
Donatas Abraitis [Fri, 10 Jan 2025 14:26:34 +0000 (16:26 +0200)]
Merge pull request #17813 from enkechen-panw/aigp-fix6

bgpd: use igpmetric in bgp_aigp_metric_total()

3 months agoMerge pull request #17830 from opensourcerouting/fix/timers_bgp_default
Donald Sharp [Fri, 10 Jan 2025 14:24:00 +0000 (09:24 -0500)]
Merge pull request #17830 from opensourcerouting/fix/timers_bgp_default

bgpd: Fix showing default `timers bgp x y`

3 months agoMerge pull request #17811 from enkechen-panw/aggr-fix3
Donatas Abraitis [Fri, 10 Jan 2025 07:47:21 +0000 (09:47 +0200)]
Merge pull request #17811 from enkechen-panw/aggr-fix3

bgpd: fix memory leak in bgp_aggregate_install()

3 months agoMerge pull request #17831 from Jafaral/ospf6-nodebug
Donatas Abraitis [Fri, 10 Jan 2025 07:45:20 +0000 (09:45 +0200)]
Merge pull request #17831 from Jafaral/ospf6-nodebug

ospf6d: guard a couple of debugs

3 months agoospfd: avoid the redundant timers 17803/head
anlan_cs [Thu, 9 Jan 2025 08:36:12 +0000 (16:36 +0800)]
ospfd: avoid the redundant timers

Since the timer thread for ```OSPF_ROUTE_AGGR_DEL``` has been created,
the subsequent "no summary-address" commands shouldn't trigger redundant timers.

Signed-off-by: anlan_cs <anlan_cs@126.com>
3 months agoospf6d: guard a couple of debugs 17831/head
Jafar Al-Gharaibeh [Thu, 9 Jan 2025 23:26:10 +0000 (17:26 -0600)]
ospf6d: guard a couple of debugs

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
3 months agobgpd: fix memory leak in bgp_aggregate_install() 17811/head
Enke Chen [Thu, 9 Jan 2025 22:48:35 +0000 (14:48 -0800)]
bgpd: fix memory leak in bgp_aggregate_install()

Potential memory leak with as-set and matching-MED-only config.

Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
3 months agodoc: Document rpf-lookup-mode changes 17776/head
Nathan Bahr [Wed, 30 Oct 2024 21:33:09 +0000 (21:33 +0000)]
doc: Document rpf-lookup-mode changes

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
3 months agotests: Add tests for new RPF lookup group and source list features
Nathan Bahr [Wed, 30 Oct 2024 21:03:04 +0000 (21:03 +0000)]
tests: Add tests for new RPF lookup group and source list features

Expand existing pim_mrib tests to include testing lookup modes
specific to source and/or group as defined in prefix lists.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
3 months agopimd: Implement rpf lookup mode as a list
Nathan Bahr [Wed, 30 Oct 2024 21:21:50 +0000 (21:21 +0000)]
pimd: Implement rpf lookup mode as a list

Add the support to store lookup modes as a sorted list.
List is non-unique and sorts mode with both lists < modes with one list < global mode (no lists).
This way, when finding the right mode, we will match a lookup using a prefix list before the global mode.
Add passing group address into all lookups (using nht cache and/or synchronous lookup).
Many areas don't have a group address, use PIMADDR_ANY if no valid group is needed.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
3 months agopimd,yang: Expand rpf-lookup-mode command
Nathan Bahr [Wed, 30 Oct 2024 21:16:30 +0000 (21:16 +0000)]
pimd,yang: Expand rpf-lookup-mode command

Add options for group-list and source-list, both of which take a prefix list name.
The prefix list is used to determine the lookup mode for specific sources and/or groups.
Any number of lookup modes can be configured as long as the combination of group
and source list is unique.
A global lookup mode (empty group and source lists) is always added and defaults to mrib-then-urib
as it currently functions. The global lookup mode can be changed as it current exists with the command
`rpf-lookup-mode MODE`.
When determinig which mode to use, match source (and group if provided) against the lists, if they are set.
If a lookup does not specify a group, then only use lookup modes that do not have a group list defined.
A lookup by definition will have a source, so no special handling there.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
3 months agobgpd: Fix showing default `timers bgp x y` 17830/head
Donatas Abraitis [Thu, 9 Jan 2025 21:56:31 +0000 (23:56 +0200)]
bgpd: Fix showing default `timers bgp x y`

Fixes: ef4a9215b912c885498715614ee01b43dc861c1a ("bgpd: Reuse defined constants for BGP timers")
Fixes: ab3535fbcf37b59ec02332fa021142c5b7d6dd3e ("bgpd: Implement connect retry backoff")
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
3 months agotests: avoid nondeterministic route 17829/head
Jafar Al-Gharaibeh [Thu, 9 Jan 2025 21:41:41 +0000 (15:41 -0600)]
tests: avoid nondeterministic route

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
3 months agoMerge pull request #17805 from donaldsharp/2_test_fixes
Jafar Al-Gharaibeh [Thu, 9 Jan 2025 21:40:08 +0000 (15:40 -0600)]
Merge pull request #17805 from donaldsharp/2_test_fixes

2 test fixes

3 months agoMerge pull request #17809 from donaldsharp/nhg_fix
Jafar Al-Gharaibeh [Thu, 9 Jan 2025 21:38:54 +0000 (15:38 -0600)]
Merge pull request #17809 from donaldsharp/nhg_fix

zebra: Fix leaked nhe

3 months agoMerge pull request #17801 from enkechen-panw/aggr-fix2
Donatas Abraitis [Thu, 9 Jan 2025 21:02:26 +0000 (23:02 +0200)]
Merge pull request #17801 from enkechen-panw/aggr-fix2

bgpd: apply route-map for aggregate before attribute comparison

3 months agoMerge pull request #17807 from louis-6wind/fix-bgp-orf-crash
Donatas Abraitis [Thu, 9 Jan 2025 20:57:51 +0000 (22:57 +0200)]
Merge pull request #17807 from louis-6wind/fix-bgp-orf-crash

bgpd: fix crash in displaying json orf prefix-list

3 months agoMerge pull request #17808 from louis-6wind/rem-if-dead
Donatas Abraitis [Thu, 9 Jan 2025 20:54:43 +0000 (22:54 +0200)]
Merge pull request #17808 from louis-6wind/rem-if-dead

lib: remove interface dead code

3 months agobgpd: use igpmetric in bgp_aigp_metric_total() 17813/head
Enke Chen [Thu, 9 Jan 2025 20:02:02 +0000 (12:02 -0800)]
bgpd: use igpmetric in bgp_aigp_metric_total()

Use igpmetric from bgp_path_info in bgp_igp_metric_total() to be
consistent with all other cases, e.g., as in bgp_path_info_cmp().

Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
3 months agotests: bgp_srv6l3vpn_to_bgp_vrf3 needs more time 17805/head
Donald Sharp [Wed, 8 Jan 2025 14:42:49 +0000 (09:42 -0500)]
tests: bgp_srv6l3vpn_to_bgp_vrf3 needs more time

The test starts with checking for rib insertion
of routes that may take some time after system
startup to come up.  Under heavy load this may
cause this test to just fail.  Give it more time.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 months agolib: remove interface dead code 17808/head
Louis Scalbert [Thu, 9 Jan 2025 17:36:49 +0000 (18:36 +0100)]
lib: remove interface dead code

Remove interface dead code.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
3 months agobgpd: fix crash in displaying json orf prefix-list 17807/head
Louis Scalbert [Thu, 9 Jan 2025 17:28:53 +0000 (18:28 +0100)]
bgpd: fix crash in displaying json orf prefix-list

bgpd crashes when there is several entries in the prefix-list. No
backtrace is provided because the issue was catched from a code review.

Fixes: 856ca177c4 ("Added json formating support to show-...-neighbors-... bgp commands.")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
3 months agobgpd: fix bgp orf prefix-list json prefix
Louis Scalbert [Thu, 9 Jan 2025 17:24:39 +0000 (18:24 +0100)]
bgpd: fix bgp orf prefix-list json prefix

0x<address>FX was displayed instead of the prefix.

Fixes: b219dda129 ("lib: Convert usage of strings to %pFX and %pRN")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
3 months agozebra: Fix leaked nhe 17809/head
Donald Sharp [Thu, 9 Jan 2025 17:34:50 +0000 (12:34 -0500)]
zebra: Fix leaked nhe

During route processing in zebra, Zebra will create a nexthop
group that matches the nexthops passed down from the routing
protocol.  Then Zebra will look to see if it can re-use a
nhe from a previous version of the route entry( say a interface
goes down ).  If Zebra decides to re-use an nhe it was just dropping
the route entry created.  Which led to nexthop group's that had
a refcount of 0 and in some cases these nexthop groups were installed
into the kernel.

Add a bit of code to see if the returned entry is not being used
and it has no reference count and if so, properly dispose of it.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 months agotests: bgp_srv6_sid_reachability should give more time
Donald Sharp [Wed, 8 Jan 2025 14:41:21 +0000 (09:41 -0500)]
tests: bgp_srv6_sid_reachability should give more time

The test starts right in on check_pings with a 10 second
time out.  Any type of delay on startup is going to cause
problems.  Give the first check_ping significant time
for the test to be fully brought up.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 months agoMerge pull request #17798 from mjstapp/fix_remove_clear_thread
Jafar Al-Gharaibeh [Thu, 9 Jan 2025 15:01:33 +0000 (09:01 -0600)]
Merge pull request #17798 from mjstapp/fix_remove_clear_thread

libs: remove deprecated 'clear thread' cli

3 months agobgpd: apply route-map for aggregate before attribute comparison 17801/head
Enke Chen [Thu, 9 Jan 2025 01:34:29 +0000 (17:34 -0800)]
bgpd: apply route-map for aggregate before attribute comparison

Currently when re-evaluating an aggregate route, the full attribute of
the aggregate route is not compared with the existing one in the BGP
table. That can result in unnecessary churns (un-install and then
install) of the aggregate route when a more specific route is added or
deleted, or when the route-map for the aggregate changes. The churn
would impact route installation and route advertisement.

The fix is to apply the route-map for the aggregate first and then
compare the attribute.

Here is an example of the churn:

debug bgp aggregate prefix 5.5.5.0/24
!
route-map set-comm permit 10
 set community 65004:200
!
router bgp 65001
 address-family ipv4 unicast
  redistribute static
  aggregate-address 5.5.5.0/24 route-map set-comm
!

Step 1:
  ip route 5.5.5.1/32 Null0

Jan  8 10:28:49 enke-vm1 bgpd[285786]: [J7PXJ-A7YA2] bgp_aggregate_install: aggregate 5.5.5.0/24, count 1
Jan  8 10:28:49 enke-vm1 bgpd[285786]: [Y444T-HEVNG]   aggregate 5.5.5.0/24: installed

Step 2:
  ip route 5.5.5.2/32 Null0

Jan  8 10:29:03 enke-vm1 bgpd[285786]: [J7PXJ-A7YA2] bgp_aggregate_install: aggregate 5.5.5.0/24, count 2
Jan  8 10:29:03 enke-vm1 bgpd[285786]: [S2EH5-EQSX6]   aggregate 5.5.5.0/24: existing, removed
Jan  8 10:29:03 enke-vm1 bgpd[285786]: [Y444T-HEVNG]   aggregate 5.5.5.0/24: installed
---

Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
3 months agotests: Check if allowas-in works when importing between local VRFs 17800/head
Donatas Abraitis [Wed, 8 Jan 2025 17:22:27 +0000 (19:22 +0200)]
tests: Check if allowas-in works when importing between local VRFs

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
3 months agobgpd: Respect allowas-in value from the source VRF's peer
Donatas Abraitis [Wed, 8 Jan 2025 17:03:55 +0000 (19:03 +0200)]
bgpd: Respect allowas-in value from the source VRF's peer

If the peer which has allowas-in enabled and then reimports the routes to another
local VRF, respect that value.

This was working with < 10.2 releases.

Fixes: d4426b62d221f4e15810dbe578de05df8991c991 ("bgpd: copy source vrf ASN to leaked route and block loops")
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
3 months agoRevert "bgpd: Reinstall aggregated routes if using route-maps and it was changed"
Enke Chen [Wed, 8 Jan 2025 17:12:56 +0000 (09:12 -0800)]
Revert "bgpd: Reinstall aggregated routes if using route-maps and it was changed"

This reverts commit ee1986f1b5ae6b94b446b12e1b77cc30d8f5f46d.

The fix is incomplete, and is no longer needed with the fix that applies
the route-map for an aggregate and then compares the attribute.

Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
3 months agoMerge pull request #17795 from gromit1811/bugfix_priv_syscaps_alloc
Donald Sharp [Wed, 8 Jan 2025 15:20:11 +0000 (10:20 -0500)]
Merge pull request #17795 from gromit1811/bugfix_priv_syscaps_alloc

lib: Fix privs syscaps (pset_t) allocation

3 months agolibs: remove deprecated 'clear thread' cli 17798/head
Mark Stapp [Wed, 8 Jan 2025 15:17:51 +0000 (10:17 -0500)]
libs: remove deprecated 'clear thread' cli

Remove a deprecated 'clear thread cpu' command.

Signed-off-by: Mark Stapp <mjs@cisco.com>
3 months agoMerge pull request #17778 from enkechen-panw/aggr-fix
Donald Sharp [Wed, 8 Jan 2025 13:57:54 +0000 (08:57 -0500)]
Merge pull request #17778 from enkechen-panw/aggr-fix

bgpd: add a debug command for route aggregation

3 months agolib: Fix privs syscaps (pset_t) allocation 17795/head
Martin Buck [Wed, 8 Jan 2025 09:38:56 +0000 (10:38 +0100)]
lib: Fix privs syscaps (pset_t) allocation

Don't over-allocate syscaps in zcaps2sys(): This is just a single struct
(pset_t) with a count and a pointer to an array of capabilities, not an
array. So only allocate a single pset_t, not num copies of it.

The allocation size of syscaps->caps then needs to be based on the number of
Linux capabilities (count), but that is already handled properly a few lines
below.

Note that this fix is mostly cosmetic and for correctness. There was no
potential for memory corruption, because num is guaranteed to be nonzero. So
at least the one required pset_t was always allocated (but potentially much
more).

Signed-off-by: Martin Buck <mb-tmp-tvguho.pbz@gromit.dyndns.org>
3 months agobgpd: add debugging command for route aggregation 17778/head
Enke Chen [Wed, 8 Jan 2025 06:52:41 +0000 (22:52 -0800)]
bgpd: add debugging command for route aggregation

Add a new debugging command:

  debug bgp aggregate [prefix <A.B.C.D/M|X:X::X:X/M>]

Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
3 months agoMerge pull request #17707 from gromit1811/pr16811_rebased
Russ White [Tue, 7 Jan 2025 21:14:15 +0000 (16:14 -0500)]
Merge pull request #17707 from gromit1811/pr16811_rebased

tests: cleanup ospf6 ecmp inter area

3 months agoMerge pull request #17772 from LabNConsulting/chopps/fix-oper-walk
Donald Sharp [Tue, 7 Jan 2025 18:52:37 +0000 (13:52 -0500)]
Merge pull request #17772 from LabNConsulting/chopps/fix-oper-walk

improve error handling of operational state walk callback

3 months agoMerge pull request #17781 from LabNConsulting/chopps/fix-keyless-list-query
Donald Sharp [Tue, 7 Jan 2025 18:17:37 +0000 (13:17 -0500)]
Merge pull request #17781 from LabNConsulting/chopps/fix-keyless-list-query

fix xpath query on keyless list with positional predicate

3 months agoMerge pull request #17782 from LabNConsulting/chopps/new-notify-msg-fmt
Donald Sharp [Tue, 7 Jan 2025 18:15:40 +0000 (13:15 -0500)]
Merge pull request #17782 from LabNConsulting/chopps/new-notify-msg-fmt

New YANG notify msg fmt

3 months agoMerge pull request #17783 from LabNConsulting/chopps/new-oper-get-callback
Donald Sharp [Tue, 7 Jan 2025 18:11:26 +0000 (13:11 -0500)]
Merge pull request #17783 from LabNConsulting/chopps/new-oper-get-callback

Add new oper state get callback