]> git.puffer.fish Git - mirror/frr.git/log
mirror/frr.git
2 months agobgpd: remove dmed check not required in bestpath selection 18210/head
Donald Sharp [Thu, 20 Feb 2025 19:28:15 +0000 (14:28 -0500)]
bgpd: remove dmed check not required in bestpath selection

As part of the upstream master commit (f3575f61c7 bgpd: Sort the
bgp_path_inf) the snippet of the code for dmed check condition
left out, which leads to an issue of selecting incorrect bestpath.

As an example:

During the bestpath selection local route looses to another path due
to dmed condition being hit.

The snippet of the logs:

2025/02/20 03:06:20.131441 BGP: [JW7VP-K1YVV]
[2]:[0]:[48]:[00:92:00:00:00:10](VRF default): Comparing path
27.0.0.7 flags Valid  with path Static announcement flags Selected Valid Attr Changed Unsorted
2025/02/20 03:06:20.131445 BGP: [SYTDR-QV6X9] [2]:[0]:[48]:[00:92:00:00:00:10]: path 27.0.0.7 loses to path Static announcement as ES 03:44:38:39:ff:ff:02:00:00:01 is same and local
2025/02/20 03:06:20.131452 BGP: [JW7VP-K1YVV] [2]:[0]:[48]:[00:92:00:00:00:10](VRF default): Comparing path 27.0.0.8 flags Valid  with path Static announcement flags Selected Valid Attr Changed Unsorted
2025/02/20 03:06:20.131456 BGP: [SYTDR-QV6X9] [2]:[0]:[48]:[00:92:00:00:00:10]: path 27.0.0.8 loses to path Static announcement as ES 03:44:38:39:ff:ff:02:00:00:01 is same and local
2025/02/20 03:06:20.131458 BGP: [WEWEC-8SE72] [2]:[0]:[48]:[00:92:00:00:00:10](VRF default): path Static announcement is the bestpath from AS 0   <<<< static is best
2025/02/20 03:06:20.131463 BGP: [Z3A78-GM3G5] bgp_best_selection: [2]:[0]:[48]:[00:92:00:00:00:10](VRF default) pi 27.0.0.7 dmed
2025/02/20 03:06:20.131467 BGP: [Z3A78-GM3G5] bgp_best_selection: [2]:[0]:[48]:[00:92:00:00:00:10](VRF default) pi 27.0.0.8 dmed
2025/02/20 03:06:20.131471 BGP: [N6CTF-2RSKS] [2]:[0]:[48]:[00:92:00:00:00:10](VRF default): After path selection, newbest is path 27.0.0.7 oldbest was Static announce

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 months agoMerge pull request #17666 from routingrocks/pim_fhr_rp
Mark Stapp [Thu, 20 Feb 2025 18:41:10 +0000 (13:41 -0500)]
Merge pull request #17666 from routingrocks/pim_fhr_rp

pimd: During prefix-list update, behave as PIM_UPSTREAM_NOTJOINED sta…

2 months agoMerge pull request #14227 from routingrocks/pim_data_fix
Jafar Al-Gharaibeh [Thu, 20 Feb 2025 16:56:05 +0000 (10:56 -0600)]
Merge pull request #14227 from routingrocks/pim_data_fix

pimd: Fix for data packet loss when FHR is LHR and RP

2 months agoMerge pull request #18194 from donaldsharp/more_orf_funniness
Donatas Abraitis [Wed, 19 Feb 2025 20:34:43 +0000 (22:34 +0200)]
Merge pull request #18194 from donaldsharp/more_orf_funniness

bgpd: Fix another crash in orf

2 months agoMerge pull request #18197 from donaldsharp/ospf_passive_test_removal
Donatas Abraitis [Wed, 19 Feb 2025 20:33:10 +0000 (22:33 +0200)]
Merge pull request #18197 from donaldsharp/ospf_passive_test_removal

tests: Remove warning about passive command

2 months agoMerge pull request #17914 from opensourcerouting/pim-nb-filter
Jafar Al-Gharaibeh [Wed, 19 Feb 2025 19:39:12 +0000 (13:39 -0600)]
Merge pull request #17914 from opensourcerouting/pim-nb-filter

pimd: filter neighbors by address

2 months agotests: Remove warning about passive command 18197/head
Donald Sharp [Wed, 19 Feb 2025 13:04:54 +0000 (08:04 -0500)]
tests: Remove warning about passive command

Several tests have warnings about the passive
command and how to use it.  Let's address this.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 months agodoc: add allowed-neighbors command 17914/head
Rafael Zalamena [Thu, 23 Jan 2025 16:00:39 +0000 (13:00 -0300)]
doc: add allowed-neighbors command

Let users know about new command to filter PIM sessions based on peer
address.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2 months agotopotests: test PIM neighbor filtering
Rafael Zalamena [Wed, 22 Jan 2025 14:07:15 +0000 (11:07 -0300)]
topotests: test PIM neighbor filtering

Add new topology for testing neighbor filtering and more features in
the future.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2 months agopimd: allow restricting neighbors per interface
David Lamparter [Thu, 19 Aug 2021 14:46:30 +0000 (16:46 +0200)]
pimd: allow restricting neighbors per interface

Just filter incoming packets against a specified prefix-list.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 months agoMerge pull request #18108 from opensourcerouting/fix/zebra_no_vni_validation
Donald Sharp [Wed, 19 Feb 2025 12:22:03 +0000 (07:22 -0500)]
Merge pull request #18108 from opensourcerouting/fix/zebra_no_vni_validation

zebra: Do not flush an existing vni configuration trying to remove wrong vni

2 months agoMerge pull request #18111 from opensourcerouting/gmp-leave
Donald Sharp [Wed, 19 Feb 2025 12:21:00 +0000 (07:21 -0500)]
Merge pull request #18111 from opensourcerouting/gmp-leave

pimd,pim6d: support IGMPv2/MLDv1 immediate leave

2 months agobgpd: Fix another crash in orf 18194/head
Donald Sharp [Tue, 18 Feb 2025 15:25:47 +0000 (10:25 -0500)]
bgpd: Fix another crash in orf

I was pointed at yet another crash in the orf code.  I think it
stems from basicaly the same problem as the last one.  Let's just
make sure that the orf_plist is handled appropriately.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 months agoMerge pull request #18164 from Pdoijode/pdoijode/staticd-nht-register
Russ White [Tue, 18 Feb 2025 14:18:29 +0000 (09:18 -0500)]
Merge pull request #18164 from Pdoijode/pdoijode/staticd-nht-register

staticd: Failed to register nexthop after networking restart

2 months agoMerge pull request #18189 from Shbinging/fix_ip_rip_split-horizon
Russ White [Tue, 18 Feb 2025 14:16:46 +0000 (09:16 -0500)]
Merge pull request #18189 from Shbinging/fix_ip_rip_split-horizon

doc: correct `ip rip split-horizon` command in the documentation

2 months agoMerge pull request #18095 from opensourcerouting/zebra-check-class-e
Russ White [Tue, 18 Feb 2025 13:31:31 +0000 (08:31 -0500)]
Merge pull request #18095 from opensourcerouting/zebra-check-class-e

Use ipv4 class E addresses (240.0.0.0/4) as connected routes by default

2 months agoMerge pull request #17957 from pguibert6WIND/codepoint_add_some_flavors
Carmine Scarpitta [Tue, 18 Feb 2025 10:06:51 +0000 (11:06 +0100)]
Merge pull request #17957 from pguibert6WIND/codepoint_add_some_flavors

isisd, lib: add some codepoints usually shared with other vendors

2 months agodoc: correct `ip rip split-horizon` command in the RIP documentation. 18189/head
Shbinging [Mon, 17 Feb 2025 06:45:05 +0000 (14:45 +0800)]
doc: correct `ip rip split-horizon` command in the RIP documentation.

The previous version incorrectly spelled the command as `ip split-horizon`. The correct command is `ip rip split-horizon`, as indicated in the code at line 675 of rip_cli.c.

Signed-off-by: Shbinging <bingshui@smail.nju.edu.cn>
2 months agoMerge pull request #18082 from LabNConsulting/chopps/fix-yang-config-destroy
Jafar Al-Gharaibeh [Tue, 18 Feb 2025 02:35:49 +0000 (20:35 -0600)]
Merge pull request #18082 from LabNConsulting/chopps/fix-yang-config-destroy

lib: nb: call child destroy CBs when YANG container is deleted

2 months agoMerge pull request #16796 from gtataranni/feat/logfmt
Donatas Abraitis [Mon, 17 Feb 2025 21:02:27 +0000 (23:02 +0200)]
Merge pull request #16796 from gtataranni/feat/logfmt

tools: add logfmt option for frr-reload.py

2 months agotools: add logfmt option for frr-reload.py 16796/head
Giovanni Tataranni [Thu, 19 Sep 2024 13:46:02 +0000 (15:46 +0200)]
tools: add logfmt option for frr-reload.py

Add the option of printing logs in logfmt format.

Additional machine readable information can be printed via the `extra`
argument.
Example:
```python
log.debug("exit context"), extra={"line": line, "ctx_keys": ctx_keys})

log.error(f"Failed to execute command {' '.join(cmd)}", extra={"cmd": cmd})
```

Signed-off-by: Giovanni Tataranni <g.tataranni@gmail.com>
2 months agoMerge pull request #18139 from y-bharath14/srib-yang-v2
Christian Hopps [Mon, 17 Feb 2025 10:13:57 +0000 (05:13 -0500)]
Merge pull request #18139 from y-bharath14/srib-yang-v2

yang: Default value for a key leaf to be ignored

2 months agoMerge pull request #18187 from cscarpitta/fix/fix_srv6_encap_src_addr_test_failures
Donald Sharp [Sun, 16 Feb 2025 13:09:18 +0000 (08:09 -0500)]
Merge pull request #18187 from cscarpitta/fix/fix_srv6_encap_src_addr_test_failures

tests: Fix intermittent failures in `srv6_encap_src_addr` topotest

2 months agotests: Fix intermittent failures in `srv6_encap_src_addr` topotest 18187/head
Carmine Scarpitta [Sun, 16 Feb 2025 09:59:05 +0000 (10:59 +0100)]
tests: Fix intermittent failures in `srv6_encap_src_addr` topotest

The `srv6_encap_src_addr` runs a vtysh command to configure the SRv6
encapsulation source address and then immediately invokes an iproute2
command to verify that zebra has set this address in the kernel. There
is no wait between the two operations and the verification is attempted
only once. If the topotest does not find the expected address it fails
immediately.

The problem is that when topotest is run on a heavyily loaded system,
it can take some time for zebra to set the address in the kernel.
In this case, when the topotest checks the kernel address right after
running the vtysh command, it doesn't find the expected address because
zebra hasn't set it yet.

This commit gives zebra some time to configure the address. It keeps to
check that the address is the expected one for about 1 minute. If after
1 minute the address is not the expected one then the test fails.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 months agotests: Increase retry timeout in `srv6_encap_src_addr` topotest
Carmine Scarpitta [Sun, 16 Feb 2025 09:23:07 +0000 (10:23 +0100)]
tests: Increase retry timeout in `srv6_encap_src_addr` topotest

The `srv6_encap_src_addr` topotest uses a waiting time that is too
small. For this reason during startup it prints a warning:

```
2025-02-16 09:23:47,704 WARNING: topo: Waiting time is too small (count=10, wait=1), using default values (count=20, wait=3)
```

This commit increases the waiting time to fix the warning.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 months agotests: Do not load bgpd config in `srv6_encap_src_addr` topotest
Carmine Scarpitta [Sun, 16 Feb 2025 09:14:16 +0000 (10:14 +0100)]
tests: Do not load bgpd config in `srv6_encap_src_addr` topotest

The `srv6_encap_src_addr` topotest tries to load bgpd.conf file that
does not exist, which produces the following warning:

```
2025-02-16 09:23:35,151 WARNING: topo: missing config 'r1' for '/media/frr/tests/topotests/srv6_encap_src_addr/r1/bgpd.conf' creating empty file '/etc/frr/bgpd.conf'
```

Since this topotest doesn't actually use bgpd, there's no point in
loading the config file.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 months agotests: Do not load sharpd config in `srv6_encap_src_addr` topotest
Carmine Scarpitta [Sun, 16 Feb 2025 09:13:15 +0000 (10:13 +0100)]
tests: Do not load sharpd config in `srv6_encap_src_addr` topotest

The `srv6_encap_src_addr` topotest tries to load sharpd.conf file that
does not exist, which produces the following warning:

```
2025-02-16 09:23:35,151 WARNING: topo: missing config 'r1' for '/media/frr/tests/topotests/srv6_encap_src_addr/r1/sharpd.conf' creating empty file '/etc/frr/sharpd.conf'
```

Since this topotest doesn't actually use sharpd, there's no point in
loading the config file.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 months agotests: Remove bgpd marker in `srv6_encap_src_addr` topotest
Carmine Scarpitta [Sun, 16 Feb 2025 08:51:22 +0000 (09:51 +0100)]
tests: Remove bgpd marker in `srv6_encap_src_addr` topotest

The `srv6_encap_src_addr` does not use bgp. As such, it should not have
bgpd marker.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 months agoMerge pull request #18109 from mjstapp/fix_evpn_vty_rt
Donatas Abraitis [Sat, 15 Feb 2025 20:11:00 +0000 (22:11 +0200)]
Merge pull request #18109 from mjstapp/fix_evpn_vty_rt

bgpd: fix vty output of evpn route-target AS4

2 months agoMerge pull request #18178 from cscarpitta/fix/isis_request_srv6_locator
Donald Sharp [Sat, 15 Feb 2025 14:39:04 +0000 (09:39 -0500)]
Merge pull request #18178 from cscarpitta/fix/isis_request_srv6_locator

isisd: Request SRv6 locator after zebra connection

2 months agoMerge pull request #18163 from opensourcerouting/sharpd-crash-command
Donald Sharp [Sat, 15 Feb 2025 14:17:10 +0000 (09:17 -0500)]
Merge pull request #18163 from opensourcerouting/sharpd-crash-command

sharpd: add `crashme` commands

2 months agoisisd: Request SRv6 locator after zebra connection 18178/head
Carmine Scarpitta [Sat, 15 Feb 2025 09:39:40 +0000 (10:39 +0100)]
isisd: Request SRv6 locator after zebra connection

When SRv6 is enabled and an SRv6 locator is specified in the IS-IS
configuration, IS-IS may attempt to request SRv6 locator information from
zebra before the connection is fully established. If this occurs, the
request fails with the following error:

```
2025/02/14 21:41:20 ISIS: [HR66R-TWQYD][EC 100663302] srv6_manager_get_locator: invalid zclient socket
````

As a result, IS-IS is unable to obtain the locator information,
preventing SRv6 from working.

This commit fixes the issue by ensuring IS-IS requests SRv6 locator
information once the connection with zebra is successfully established.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 months agoisisd: Add helper function to request SRv6 locator information
Carmine Scarpitta [Sat, 15 Feb 2025 09:39:30 +0000 (10:39 +0100)]
isisd: Add helper function to request SRv6 locator information

This commit adds a function that iterates over all IS-IS areas and asks
the SRv6 Manager for information about the configured locators.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2 months agoMerge pull request #18160 from donaldsharp/orf_plist_argie_bargie
David Lamparter [Fri, 14 Feb 2025 21:28:09 +0000 (22:28 +0100)]
Merge pull request #18160 from donaldsharp/orf_plist_argie_bargie

bgpd: When removing the prefix list drop the pointer

2 months agoMerge pull request #18122 from louis-6wind/bgp_cleanup_table-factorize
Donatas Abraitis [Fri, 14 Feb 2025 21:08:51 +0000 (23:08 +0200)]
Merge pull request #18122 from louis-6wind/bgp_cleanup_table-factorize

bgpd: factorize bgp_table_cleanup()

2 months agostaticd: Failed to register nexthop after networking restart 18164/head
Pooja Jagadeesh Doijode [Fri, 14 Feb 2025 07:34:46 +0000 (23:34 -0800)]
staticd: Failed to register nexthop after networking restart

Problem:
After networking restart, staticd unregistered the nexthop
but failed to register the nexthop again, which caused the
nexthop to remain inactive in zebra for static route.

Fix:
Call to static_zebra_nht_register() from static_install_path() was
removed in 3c05d53bf8defc36acdfe6e78064e068d60c649f. Adding it back
so that staticd can register the nexthop for static routes.

Testing:
After networking restart trigger on h1:

Before fix:
```
h1# show ipv6 route vrf vrf1012
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP,
       T - Table, A - Babel, D - SHARP, F - PBR, f - OpenFabric,
       t - Table-Direct, Z - FRR,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

VRF vrf1012:
S   ::/0 [1/0] via 2003:7:2::1, swp1.2 inactive, weight 1, 00:00:39
K>* ::/0 [255/8192] unreachable (ICMP unreachable) (vrf default), 00:00:39
L * 2000:9:12::3/128 is directly connected, vrf1012, 00:00:39
C>* 2000:9:12::3/128 is directly connected, vrf1012, 00:00:39
C>* 2003:7:2::/125 is directly connected, swp1.2, 00:00:37
L>* 2003:7:2::3/128 is directly connected, swp1.2, 00:00:37
C>* fe80::/64 is directly connected, swp1.2, 00:00:37
h1#
```

After fix:
```
h1# show ipv6 route vrf vrf1012

Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP,
       T - Table, A - Babel, D - SHARP, F - PBR, f - OpenFabric,
       t - Table-Direct, Z - FRR,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

VRF vrf1012:
S>* ::/0 [1/0] via 2003:7:2::1, swp1.2, weight 1, 00:00:15
K * ::/0 [255/8192] unreachable (ICMP unreachable) (vrf default), 00:00:17
L * 2000:9:12::3/128 is directly connected, vrf1012, 00:00:17
C>* 2000:9:12::3/128 is directly connected, vrf1012, 00:00:17
C>* 2003:7:2::/125 is directly connected, swp1.2, 00:00:15
L>* 2003:7:2::3/128 is directly connected, swp1.2, 00:00:15
```

Signed-off-by: Pooja Jagadeesh Doijode <pdoijode@nvidia.com>
2 months agolib: nb: call child destroy CBs when YANG container is deleted 18082/head
Christian Hopps [Tue, 11 Feb 2025 07:12:06 +0000 (07:12 +0000)]
lib: nb: call child destroy CBs when YANG container is deleted

Previously the code was only calling the child destroy callbacks if the target
deleted node was a non-presence container. We now add a flag to the callback
structure to instruct northbound to perform the rescursive delete for code that
wishes for this to happen.

- Fix wrong relative path lookup in keychain destroy callback

Signed-off-by: Christian Hopps <chopps@labn.net>
2 months agosharpd: add `crashme` commands 18163/head
David Lamparter [Fri, 14 Feb 2025 16:23:29 +0000 (17:23 +0100)]
sharpd: add `crashme` commands

This adds 2 commands, one that should just straight up SEGV, another
that should trip an ASAN warning for an use-after-free.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 months agoisisd, lib: add some codepoints usually shared with other vendors 17957/head
Philippe Guibert [Thu, 30 Jan 2025 08:14:00 +0000 (09:14 +0100)]
isisd, lib: add some codepoints usually shared with other vendors

Some codepoints can not be read by interoperating with CISCO.
This is because PSP/USP flavor are used by default, and the display of
the isis output has to be adapted.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2 months agodoc: Update description of 'allow-reserved-ranges' 18095/head
David Schweizer [Wed, 12 Feb 2025 12:22:06 +0000 (13:22 +0100)]
doc: Update description of 'allow-reserved-ranges'

Update user documentation to reflect behavior of config command
'allow-reserved-ranges' after changes enable use of ipv4 class E
addresses by default.

Signed-off-by: David Schweizer <dschweizer@opensourcerouting.org>
2 months agolib,zebra: Allow class E prefixes in RIB
David Schweizer [Wed, 12 Feb 2025 12:07:38 +0000 (13:07 +0100)]
lib,zebra: Allow class E prefixes in RIB

Changes allow ipv4 class E addresses and prefixes in the 240.0.0.0/4
range to be configured on interfaces, imported from the kernel routing
table and redistributed as connected routes in zebra by default.

Changes also fix routes with class E prefixes in kernel routing table
getting rejected by zebra during early daemon startup.

Drivin this change in default behavior are cloud providers (with
customers still using obsolete ipv4 protocol, i.e. Azure, AWS) running
out of ip space and abusing class E for addressing instances (announced
via BGP) over tunneling connections back to customers on premise
infrastructure.

Signed-off-by: David Schweizer <dschweizer@opensourcerouting.org>
2 months agobgpd: When removing the prefix list drop the pointer 18160/head
Donald Sharp [Fri, 14 Feb 2025 12:55:09 +0000 (07:55 -0500)]
bgpd: When removing the prefix list drop the pointer

We are very very rarely seeing this crash:

    0 0x7f36ba48e389 in prefix_list_apply_ext lib/plist.c:789
    1 0x55eff3fa4126 in subgroup_announce_check bgpd/bgp_route.c:2334
    2 0x55eff3fa858e in subgroup_process_announce_selected bgpd/bgp_route.c:3440
    3 0x55eff4016488 in subgroup_announce_table bgpd/bgp_updgrp_adv.c:808
    4 0x55eff401664e in subgroup_announce_route bgpd/bgp_updgrp_adv.c:861
    5 0x55eff40111df in peer_af_announce_route bgpd/bgp_updgrp.c:2223
    6 0x55eff3f884cb in bgp_announce_route_timer_expired bgpd/bgp_route.c:5892
    7 0x7f36ba4ec239 in event_call lib/event.c:2019
    8 0x7f36ba41a22a in frr_run lib/libfrr.c:1295
    9 0x55eff3e668b7 in main bgpd/bgp_main.c:557
    10 0x7f36b9e2d249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    11 0x7f36b9e2d304 in __libc_start_main_impl ../csu/libc-start.c:360
    12 0x55eff3e64a30 in _start (/home/ci/cibuild.1407/frr-source/bgpd/.libs/bgpd+0x2fda30)
0x608000037038 is located 24 bytes inside of 88-byte region [0x608000037020,0x608000037078)
freed by thread T0 here:
    0 0x7f36ba8b76a8 in __interceptor_free ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:52
    1 0x7f36ba439bd7 in qfree lib/memory.c:131
    2 0x7f36ba48d3a3 in prefix_list_free lib/plist.c:156
    3 0x7f36ba48d3a3 in prefix_list_delete lib/plist.c:247
    4 0x7f36ba48fbef in prefix_bgp_orf_remove_all lib/plist.c:1516
    5 0x55eff3f679c4 in bgp_route_refresh_receive bgpd/bgp_packet.c:2841
    6 0x55eff3f70bab in bgp_process_packet bgpd/bgp_packet.c:4069
    7 0x7f36ba4ec239 in event_call lib/event.c:2019
    8 0x7f36ba41a22a in frr_run lib/libfrr.c:1295
    9 0x55eff3e668b7 in main bgpd/bgp_main.c:557
    10 0x7f36b9e2d249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
previously allocated by thread T0 here:
    0 0x7f36ba8b83b7 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:77
    1 0x7f36ba4392e4 in qcalloc lib/memory.c:106
    2 0x7f36ba48d0de in prefix_list_new lib/plist.c:150
    3 0x7f36ba48d0de in prefix_list_insert lib/plist.c:186
    4 0x7f36ba48d0de in prefix_list_get lib/plist.c:204
    5 0x7f36ba48f9df in prefix_bgp_orf_set lib/plist.c:1479
    6 0x55eff3f67ba6 in bgp_route_refresh_receive bgpd/bgp_packet.c:2920
    7 0x55eff3f70bab in bgp_process_packet bgpd/bgp_packet.c:4069
    8 0x7f36ba4ec239 in event_call lib/event.c:2019
    9 0x7f36ba41a22a in frr_run lib/libfrr.c:1295
    10 0x55eff3e668b7 in main bgpd/bgp_main.c:557
    11 0x7f36b9e2d249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58

Let's just stop trying to save the pointer around in the peer->orf_plist
data structure.  There are other design problems but at least lets
stop the crash from possibly happening.

Fixes: #18138
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 months agoMerge pull request #18127 from donaldsharp/w_option_for_watchfrr
David Lamparter [Thu, 13 Feb 2025 20:31:39 +0000 (21:31 +0100)]
Merge pull request #18127 from donaldsharp/w_option_for_watchfrr

2 months agoMerge pull request #18121 from louis-6wind/fix-lable-release
Donatas Abraitis [Thu, 13 Feb 2025 19:08:23 +0000 (21:08 +0200)]
Merge pull request #18121 from louis-6wind/fix-lable-release

bgpd: release manual vpn label on instance deletion

2 months agoMerge pull request #18080 from opensourcerouting/fix/enable_ll_capability_if_using_un...
Donald Sharp [Thu, 13 Feb 2025 19:06:24 +0000 (14:06 -0500)]
Merge pull request #18080 from opensourcerouting/fix/enable_ll_capability_if_using_unnumerred

bgpd: Some fixes/improvements for Link-Local Next Hop capability

2 months agoMerge pull request #18142 from donaldsharp/vrf_tableid_debugs
Donatas Abraitis [Thu, 13 Feb 2025 18:52:16 +0000 (20:52 +0200)]
Merge pull request #18142 from donaldsharp/vrf_tableid_debugs

Vrf tableid debugs

2 months agoMerge pull request #18064 from cscarpitta/fix/fix_srv6_sid_parameters
Donald Sharp [Thu, 13 Feb 2025 18:37:22 +0000 (13:37 -0500)]
Merge pull request #18064 from cscarpitta/fix/fix_srv6_sid_parameters

staticd: Fix SRv6 SID installation and deletion

2 months agoMerge pull request #18023 from pguibert6WIND/srv6_route_dump
Carmine Scarpitta [Thu, 13 Feb 2025 17:57:44 +0000 (18:57 +0100)]
Merge pull request #18023 from pguibert6WIND/srv6_route_dump

lib: fix false context information for SRv6 route

2 months agoMerge pull request #18079 from donaldsharp/labelpool_crash
Philippe Guibert [Thu, 13 Feb 2025 17:44:19 +0000 (18:44 +0100)]
Merge pull request #18079 from donaldsharp/labelpool_crash

bgpd: Fix crash in bgp_labelpool

2 months agotools: watchfrr should ignore frr_global_options 18127/head
Donald Sharp [Thu, 13 Feb 2025 16:41:27 +0000 (11:41 -0500)]
tools: watchfrr should ignore frr_global_options

watchfrr is currently being started with $frr_global_options
This is problematic as that it has a entirely different cli
than the rest of the daemons and we have no plans to make
this equivalent.

Fixes: #18107
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 months agoMerge pull request #18046 from LabNConsulting/aceelindem/ospf-lsa-add-delete-hook
Russ White [Thu, 13 Feb 2025 16:16:42 +0000 (11:16 -0500)]
Merge pull request #18046 from LabNConsulting/aceelindem/ospf-lsa-add-delete-hook

ospfd: Replace LSDB callbacks with LSA Update/Delete hooks.

2 months agopimd,topotests: frrbot styling suggestions 18111/head
Rafael Zalamena [Thu, 13 Feb 2025 16:07:34 +0000 (13:07 -0300)]
pimd,topotests: frrbot styling suggestions

Incorporate frrbot suggestion to avoid the CI warning.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2 months agotopotests: test IGMPv2/MLDv1 immediate leave
Rafael Zalamena [Wed, 22 Jan 2025 14:07:15 +0000 (11:07 -0300)]
topotests: test IGMPv2/MLDv1 immediate leave

Add new topology for testing IGMPv2/MLDv1 immediate leave and more features
in the future.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2 months agodoc: document new immediate-leave commands
Rafael Zalamena [Fri, 7 Feb 2025 17:43:05 +0000 (14:43 -0300)]
doc: document new immediate-leave commands

Let user know about this new multicast knob.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2 months agopimd: add IGMPv2/MLDv1 immediate-leave
David Lamparter [Tue, 28 Sep 2021 12:40:23 +0000 (14:40 +0200)]
pimd: add IGMPv2/MLDv1 immediate-leave

(Somewhat) useful when dealing with an interface that has only one host
attached.  Only works for IGMPv2 and MLDv1, other protocol versions have
no leave message.

Co-authored-by: David Lamparter <equinox@opensourcerouting.org>
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2 months agozebra: Use tableid when displaying prefix 18142/head
Donald Sharp [Thu, 13 Feb 2025 15:40:52 +0000 (10:40 -0500)]
zebra: Use tableid when displaying prefix

Found some more instances of tableid not being
displayed when trying to debug something.  Fix.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 months agopbr: Add tableid to some debugs
Donald Sharp [Thu, 13 Feb 2025 15:40:17 +0000 (10:40 -0500)]
pbr: Add tableid to some debugs

Add prefix and tableid to one debug instead of several.
Consolidate a bit.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 months agoMerge pull request #18032 from opensourcerouting/gmp-limit
Jafar Al-Gharaibeh [Thu, 13 Feb 2025 15:32:07 +0000 (09:32 -0600)]
Merge pull request #18032 from opensourcerouting/gmp-limit

pimd,pim6d: implement GMP group / source limits

2 months agobgpd: remove unused afi arg from bgp_cleanup_table 18122/head
Louis Scalbert [Thu, 13 Feb 2025 15:04:12 +0000 (16:04 +0100)]
bgpd: remove unused afi arg from bgp_cleanup_table

Remove unused AFI argument from bgp_cleanup_table()

Fixes: ec6e09c271 ("bgpd: fix flushing ipv6 flowspec entries when peering stops")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2 months agobgpd: factorize bgp_table_cleanup()
Louis Scalbert [Fri, 7 Feb 2025 10:27:13 +0000 (11:27 +0100)]
bgpd: factorize bgp_table_cleanup()

Factorize bgp_table_cleanup(). Cosmetic change. It will help adding
AFI / SAFI in the future.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2 months agoyang: Default value for a key leaf to be ignored 18139/head
Y Bharath [Thu, 13 Feb 2025 11:40:46 +0000 (17:10 +0530)]
yang: Default value for a key leaf to be ignored

In YANG, key leaves are used to uniquely identify list entries, and they
cannot have default values

Signed-off-by: y-bharath14 <y.bharath@samsung.com>
2 months agozebra: Do not flush an existing vni configuration trying to remove wrong vni 18108/head
Donatas Abraitis [Tue, 11 Feb 2025 19:22:12 +0000 (21:22 +0200)]
zebra: Do not flush an existing vni configuration trying to remove wrong vni

Before:

```
pc.donatas.net(config)# do sh run | include vni
vni 1
pc.donatas.net(config)# no vni 2
pc.donatas.net(config)# do sh run | include vni
pc.donatas.net(config)#
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 months agoMerge pull request #18120 from louis-6wind/fix-bgp-rd-json-show
Donatas Abraitis [Wed, 12 Feb 2025 20:09:39 +0000 (22:09 +0200)]
Merge pull request #18120 from louis-6wind/fix-bgp-rd-json-show

bgpd: fix incorrect JSON in bgp_show_table_rd

2 months agoMerge pull request #18118 from y-bharath14/srib-yang-v1
Christian Hopps [Wed, 12 Feb 2025 19:46:59 +0000 (14:46 -0500)]
Merge pull request #18118 from y-bharath14/srib-yang-v1

yang: Reorder the revision statements

2 months agoMerge pull request #18125 from donaldsharp/bfd_fd_zero
Mark Stapp [Wed, 12 Feb 2025 19:21:42 +0000 (14:21 -0500)]
Merge pull request #18125 from donaldsharp/bfd_fd_zero

bfdd: 0 is a valid fd.

2 months agoMerge pull request #17649 from ariel-anieli/calloc-warns
Donald Sharp [Wed, 12 Feb 2025 18:00:36 +0000 (13:00 -0500)]
Merge pull request #17649 from ariel-anieli/calloc-warns

tests: clear `-Wcalloc-transposed-args` warnings

2 months agoMerge pull request #18026 from donaldsharp/bfd_fixups
Jafar Al-Gharaibeh [Wed, 12 Feb 2025 18:00:23 +0000 (12:00 -0600)]
Merge pull request #18026 from donaldsharp/bfd_fixups

Bfd fixups

2 months agobfdd: 0 is a valid fd. 18125/head
Donald Sharp [Wed, 12 Feb 2025 15:33:22 +0000 (10:33 -0500)]
bfdd: 0 is a valid fd.

It's unlikely that this would ever get a 0 fd to use
but let's just let the code assume it is ok.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 months agoMerge pull request #18062 from pguibert6WIND/cid_1636504
Donald Sharp [Wed, 12 Feb 2025 14:36:21 +0000 (09:36 -0500)]
Merge pull request #18062 from pguibert6WIND/cid_1636504

Cid 1636504

2 months agoMerge pull request #18068 from opensourcerouting/fix/coverity_link_local_capability
Donald Sharp [Wed, 12 Feb 2025 14:35:16 +0000 (09:35 -0500)]
Merge pull request #18068 from opensourcerouting/fix/coverity_link_local_capability

bgpd: Do not check for capability length for Link-Local Next Hop capability

2 months agoMerge pull request #18094 from opensourcerouting/event-tardy-bfd
Donald Sharp [Wed, 12 Feb 2025 14:29:54 +0000 (09:29 -0500)]
Merge pull request #18094 from opensourcerouting/event-tardy-bfd

lib (+bfd): improve late timer warnings

2 months agoMerge pull request #18049 from donaldsharp/fpm_keep_on_trying
Mark Stapp [Wed, 12 Feb 2025 13:47:02 +0000 (08:47 -0500)]
Merge pull request #18049 from donaldsharp/fpm_keep_on_trying

zebra: Allow fpm_listener to continue to try to read

2 months agoospfd: Replace LSDB callbacks with LSA Update/Delete hooks. 18046/head
Acee Lindem [Thu, 6 Feb 2025 18:36:06 +0000 (18:36 +0000)]
ospfd: Replace LSDB callbacks with LSA Update/Delete hooks.

Replace the LSDB callbacks with LSA update and delete hooks using the
the FRR hook mechanism. Remove redundant callbacks by placing the LSA
update and delete hooks in a single place so that deletes don't need
to be handled by the update hook. Simplify existing OSPF TE and OSPF
API Server callbacks now that there is no ambiguity or redundancy.
Also cleanup the debugging by separating out opaque-lsa debugging
from the overloaded event debugging.

Signed-off-by: Acee Lindem <acee@lindem.com>
2 months agobgpd: release manual vpn label on instance deletion 18121/head
Louis Scalbert [Wed, 12 Feb 2025 12:49:50 +0000 (13:49 +0100)]
bgpd: release manual vpn label on instance deletion

When a BGP instance with a manually assigned VPN label is deleted, the
label is not released from the Zebra label registry. As a result,
reapplying a configuration with the same manual label leads to VPN
prefix export failures.

For example, with the following configuration:

> router bgp 65000 vrf BLUE
>  address-family ipv4 unicast
>   label vpn export <int>

Release zebra label registry on unconfiguration.

Fixes: d162d5f6f5 ("bgpd: fix hardset l3vpn label available in mpls pool")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2 months agobgpd: fix incorrect json in bgp_show_table_rd 18120/head
Louis Scalbert [Wed, 12 Feb 2025 11:50:42 +0000 (12:50 +0100)]
bgpd: fix incorrect json in bgp_show_table_rd

In bgp_show_table_rd(), the is_last argument is determined using the
expression "next == NULL" to check if the RD table is the last one. This
helps ensure proper JSON formatting.

However, if next is not NULL but is no longer associated with a BGP
table, the JSON output becomes malformed.

Updates the condition to also verify the existence of the next bgp_dest
table.

Fixes: 1ae44dfcba ("bgpd: unify 'show bgp' with RD with normal unicast bgp show")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2 months agoyang: Reorder the revision statements 18118/head
Y Bharath [Wed, 12 Feb 2025 06:43:06 +0000 (12:13 +0530)]
yang: Reorder the revision statements

According to the YANG specification, the revision statements should be
ordered with the most recent revision first

Signed-off-by: y-bharath14 <y.bharath@samsung.com>
2 months agoMerge pull request #18069 from cscarpitta/fix/bgp_request_srv6_locator
Jafar Al-Gharaibeh [Wed, 12 Feb 2025 02:59:22 +0000 (20:59 -0600)]
Merge pull request #18069 from cscarpitta/fix/bgp_request_srv6_locator

bgpd: Request SRv6 locator after zebra connection

2 months agoMerge pull request #18078 from pguibert6WIND/nhrp_incomplete_msg
Jafar Al-Gharaibeh [Wed, 12 Feb 2025 02:57:09 +0000 (20:57 -0600)]
Merge pull request #18078 from pguibert6WIND/nhrp_incomplete_msg

nhrpd: fix dont consider incomplete L2 entry

2 months agobgpd: fix vty output of evpn route-target AS4 18109/head
Mark Stapp [Tue, 11 Feb 2025 19:35:28 +0000 (14:35 -0500)]
bgpd: fix vty output of evpn route-target AS4

evpn route-targets are decoded in  ... multiple places; at least
two have a bug where the AS4 form doesn't have its AS decoded.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2 months agoMerge pull request #18037 from pguibert6WIND/bmp_bgp_open_router_id_and_as_val
Russ White [Tue, 11 Feb 2025 18:43:09 +0000 (13:43 -0500)]
Merge pull request #18037 from pguibert6WIND/bmp_bgp_open_router_id_and_as_val

Bmp bgp open router id and as val

2 months agotests: Set scope to be link-local and not global for NH 18080/head
Donatas Abraitis [Tue, 11 Feb 2025 18:41:14 +0000 (20:41 +0200)]
tests: Set scope to be link-local and not global for NH

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 months agopimd: Fix for data packet loss when FHR is LHR and RP 14227/head
Rajesh Varatharaj [Thu, 17 Aug 2023 20:11:42 +0000 (13:11 -0700)]
pimd: Fix for data packet loss when FHR is LHR and RP

Topology:
A single router is acting as the First Hop Router (FHR), Last Hop Router (LHR), and RP.

RC and Issue:
When an upstream S,G is in join state, it sends a register message to the RP.
If the RP has the receiver, it sends a register stop message and switches to the shortest path.
When the register stop message is processed, it removes pimreg, moves to prune,
and starts the reg stop timer.

When the reg stop timer expires, PIM changes S,G state to Join Pending and sends out a NULL
register message to RP. RP receives it and fails to send Reg stop because SPT is not set at that point.

The problem is when the register stop timer pops and state is in Join Pending.
According to https://www.rfc-editor.org/rfc/rfc4601#section-4.4.1,
we need to put back the pimreg reg tunnel into the S,G mroute.
This causes data to be sent to the control plane and subsequently interrupts the line rate.

Fix:
If the router is FHR and RP to the group,
ignore SPT status and send out a register stop message back to the DR (in this context, the same router).

Ticket: #3506780

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Signed-off-by: Rajesh Varatharaj <rvaratharaj@nvidia.com>
2 months agozebra: Allow fpm_listener to continue to try to read 18049/head
Donald Sharp [Thu, 6 Feb 2025 23:40:30 +0000 (18:40 -0500)]
zebra: Allow fpm_listener to continue to try to read

Currently when the fpm_listener attempts to read say X
bytes it may only get Y( which is less than X ).  In this
case we should assume that the dplane_fpm_nl code is just
being slow, as that we know it is possible for it to send
a partial fpm message.  Let's just loosen the constraints
a bit and allow data to flow.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 months agoMerge pull request #18060 from opensourcerouting/lib-crashlog-signals
Donald Sharp [Tue, 11 Feb 2025 17:25:28 +0000 (12:25 -0500)]
Merge pull request #18060 from opensourcerouting/lib-crashlog-signals

lib: crash handlers must be allowed on threads

2 months agoMerge pull request #18081 from chiragshah6/bgp_dev6
Russ White [Tue, 11 Feb 2025 17:19:45 +0000 (12:19 -0500)]
Merge pull request #18081 from chiragshah6/bgp_dev6

bgpd: fix bgp vrf instance creation from implicit

2 months agotests: Disable link-local capability to check if we can use GUA NHs
Donatas Abraitis [Tue, 11 Feb 2025 14:47:22 +0000 (16:47 +0200)]
tests: Disable link-local capability to check if we can use GUA NHs

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 months agobgpd: Add an ability to disable link-local capability per peer
Donatas Abraitis [Tue, 11 Feb 2025 13:24:12 +0000 (15:24 +0200)]
bgpd: Add an ability to disable link-local capability per peer

Even if we have unnumbered peering, let's respect `no neighbor X capability link-local`
and disable it per-neighbor on demand.

Fixes: db853cc97eafee8742cd391aaa2b5bc58a6751ae ("bgpd: Implement Link-Local Next Hop capability")
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 months agoMerge pull request #18034 from donaldsharp/unneeded_isisd
Russ White [Tue, 11 Feb 2025 13:50:09 +0000 (08:50 -0500)]
Merge pull request #18034 from donaldsharp/unneeded_isisd

isisd: Remove unneeded modify functions

2 months agoMerge pull request #17870 from opensourcerouting/fix/bgp_show_ip_bgp_cmd_internal
Russ White [Tue, 11 Feb 2025 13:44:43 +0000 (08:44 -0500)]
Merge pull request #17870 from opensourcerouting/fix/bgp_show_ip_bgp_cmd_internal

bgpd: Show internal data for BGP routes

2 months agoMerge pull request #17370 from louis-6wind/fix-vpn-leaking
Russ White [Tue, 11 Feb 2025 13:41:03 +0000 (08:41 -0500)]
Merge pull request #17370 from louis-6wind/fix-vpn-leaking

bgpd: fix for the validity and the presence of prefixes in the BGP VPN table.

2 months agolib: `thread` -> `event` in formatting 18094/head
David Lamparter [Tue, 11 Feb 2025 10:58:15 +0000 (11:58 +0100)]
lib: `thread` -> `event` in formatting

Make it consistent and call it `event` when formatting something to
display.  Much less confusing for some user seeing it too, since threads
aren't involved.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 months agobfdd: use lower lateness warning for TX timers
David Lamparter [Tue, 11 Feb 2025 11:07:00 +0000 (12:07 +0100)]
bfdd: use lower lateness warning for TX timers

FRR's event loop prints a warning if a timer is executed more than some
given threshold late, default being 4s.  Set a more appropriate
threshold for BFD TX timers (half TX interval).

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 months agolib: improve late timer warnings
David Lamparter [Tue, 11 Feb 2025 10:55:19 +0000 (11:55 +0100)]
lib: improve late timer warnings

Refactor the "timer getting executed too late" warning:

- warning threshold is now adjustable
- check is performed when event actually executes, rather than when it's
  thrown on ready list
- ignore_late_timer replaced with threshold = 0
- system load averages printed in log message
- warning ratelimited to once per 10s rather than once per poll()

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 months agobgpd: Add additional JSON field linkLocalOnly
Donatas Abraitis [Tue, 11 Feb 2025 09:15:40 +0000 (11:15 +0200)]
bgpd: Add additional JSON field linkLocalOnly

This is to show if the NH address received as Link-Local Next Hop capability.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 months agotests: Adopt bgp_vrf_leaking_5549_routes for LL Next Hop capability
Donatas Abraitis [Tue, 11 Feb 2025 08:58:25 +0000 (10:58 +0200)]
tests: Adopt bgp_vrf_leaking_5549_routes for LL Next Hop capability

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 months agotests: Adopt bgp_ipv6_rtadv for LL Next Hop capability
Donatas Abraitis [Tue, 11 Feb 2025 08:54:48 +0000 (10:54 +0200)]
tests: Adopt bgp_ipv6_rtadv for LL Next Hop capability

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 months agobgpd: Show scope as link-local if using LL Next Hop capability
Donatas Abraitis [Tue, 11 Feb 2025 08:49:19 +0000 (10:49 +0200)]
bgpd: Show scope as link-local if using LL Next Hop capability

Fixes: db853cc97eafee8742cd391aaa2b5bc58a6751ae ("bgpd: Implement Link-Local Next Hop capability")
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 months agonhrpd: fix dont consider incomplete L2 entry 18078/head
Philippe Guibert [Mon, 10 Feb 2025 15:15:44 +0000 (16:15 +0100)]
nhrpd: fix dont consider incomplete L2 entry

Sometimes, NHRP receives L2 information on a cache entry with the
0.0.0.0 IP address. NHRP considers it as valid and updates the binding
with the new IP address.

> Feb 09 20:09:54 aws-sin-vpn01 nhrpd[2695]: [QQ0NK-1H449] Netlink: new-neigh 10.2.114.238 dev dmvpn1 lladdr 162.251.180.10 nud 0x2 cache used 0 type 4
> Feb 09 20:10:35 aws-sin-vpn01 nhrpd[2695]: [QQ0NK-1H449] Netlink: new-neigh 10.2.114.238 dev dmvpn1 lladdr 162.251.180.10 nud 0x4 cache used 1 type 4
> Feb 09 20:10:48 aws-sin-vpn01 nhrpd[2695]: [QQ0NK-1H449] Netlink: del-neigh 10.2.114.238 dev dmvpn1 lladdr 162.251.180.10 nud 0x4 cache used 1 type 4
> Feb 09 20:10:49 aws-sin-vpn01 nhrpd[2695]: [QQ0NK-1H449] Netlink: who-has 10.2.114.238 dev dmvpn1 lladdr (unspec) nud 0x1 cache used 1 type 4
> Feb 09 20:10:49 aws-sin-vpn01 nhrpd[2695]: [QVXNM-NVHEQ] Netlink: update binding for 10.2.114.238 dev dmvpn1 from c 162.251.180.10 peer.vc.nbma 162.251.180.10 to lladdr (unspec)
> Feb 09 20:10:49 aws-sin-vpn01 nhrpd[2695]: [QQ0NK-1H449] Netlink: new-neigh 10.2.114.238 dev dmvpn1 lladdr 0.0.0.0 nud 0x2 cache used 1 type 4
> Feb 09 20:11:30 aws-sin-vpn01 nhrpd[2695]: [QQ0NK-1H449] Netlink: new-neigh 10.2.114.238 dev dmvpn1 lladdr 0.0.0.0 nud 0x4 cache used 1 type 4

Actually, the 0.0.0.0 IP addressed mentiones in the 'who-has' message is
wrong because the nud state value means that value is incomplete and
should not be handled as a valid entry. Instead of considering it, fix
this by by invalidating the current binding. This step is necessary in
order to permit NHRP to trigger resolution requests again.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2 months agobgpd: fix bmp loc-rib peer up message should use correct AS number 18037/head
Philippe Guibert [Thu, 6 Feb 2025 10:32:46 +0000 (11:32 +0100)]
bgpd: fix bmp loc-rib peer up message should use correct AS number

The transmitted AS value in te tx open message of the peer up loc-rib
message is set to 0. Actually, it should reflect the AS value of the
current BGP instance.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2 months agobgpd: fix loc-rib open message should use router-id
Philippe Guibert [Thu, 6 Feb 2025 10:26:42 +0000 (11:26 +0100)]
bgpd: fix loc-rib open message should use router-id

When forging BMP open message, the BGP router-id of tx open message of
the BMP LOC-RIB peer up message is always set to 0.0.0.0, whatever the
configured value of 'bgp router-id'.

Actually, when forging a peer up LOC-RIB message, the BGP router-id
value should be taken from the main BGP instance, and not from the peer
bgp identifier. Fix this by refreshing the router-id whenever a peer up
loc-rib message should be sent.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>