]> git.puffer.fish Git - matthieu/frr.git/log
matthieu/frr.git
6 months agozebra: Fix crash during reconnect
Igor Zhukov [Fri, 4 Oct 2024 06:16:02 +0000 (13:16 +0700)]
zebra: Fix crash during reconnect

fpm_enqueue_rmac_table expects an fpm_rmac_arg* as its argument.

The issue can be reproduced by dropping the TCP session using:

ss -K dst 127.0.0.1 dport = 2620

I used Fedora 40 and frr 9.1.2 and I got the gdb backtrace:

(gdb) bt
0  0x00007fdd7d6997ea in fpm_enqueue_rmac_table (bucket=0x2134dd0, arg=0x2132b60) at zebra/dplane_fpm_nl.c:1217
1  0x00007fdd7dd1560d in hash_iterate (hash=0x21335f0, func=0x7fdd7d6997a0 <fpm_enqueue_rmac_table>, arg=0x2132b60) at lib/hash.c:252
2  0x00007fdd7dd1560d in hash_iterate (hash=0x1e5bf10, func=func@entry=0x7fdd7d698900 <fpm_enqueue_l3vni_table>,
    arg=arg@entry=0x7ffed983bef0) at lib/hash.c:252
3  0x00007fdd7d698b5c in fpm_rmac_send (t=<optimized out>) at zebra/dplane_fpm_nl.c:1262
4  0x00007fdd7dd6ce22 in event_call (thread=thread@entry=0x7ffed983c010) at lib/event.c:1970
5  0x00007fdd7dd20758 in frr_run (master=0x1d27f10) at lib/libfrr.c:1213
6  0x0000000000425588 in main (argc=10, argv=0x7ffed983c2e8) at zebra/main.c:492

Signed-off-by: Igor Zhukov <fsb4000@yandex.ru>
6 months agoMerge pull request #16994 from louis-6wind/bmp-adj-labels
Donald Sharp [Thu, 3 Oct 2024 19:08:36 +0000 (15:08 -0400)]
Merge pull request #16994 from louis-6wind/bmp-adj-labels

bgpd: export labels to pre-policy bmp

6 months agoMerge pull request #16993 from louis-6wind/bfd-no-variants
Donald Sharp [Thu, 3 Oct 2024 14:41:40 +0000 (10:41 -0400)]
Merge pull request #16993 from louis-6wind/bfd-no-variants

bfdd: add no variants to all configurations

6 months agobgpd: export labels to pre-policy bmp
Louis Scalbert [Tue, 27 Feb 2024 18:35:32 +0000 (19:35 +0100)]
bgpd: export labels to pre-policy bmp

Export labels to pre-policy BMP

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agoMerge pull request #16992 from sri-mohan1/srib-24-frr-a
Donald Sharp [Thu, 3 Oct 2024 13:34:00 +0000 (09:34 -0400)]
Merge pull request #16992 from sri-mohan1/srib-24-frr-a

bgpd: changes for code maintainability

6 months agoMerge pull request #16989 from opensourcerouting/fix/unreachable_code
Donald Sharp [Thu, 3 Oct 2024 12:29:55 +0000 (08:29 -0400)]
Merge pull request #16989 from opensourcerouting/fix/unreachable_code

bgpd: Print debug message about reaching maximum allowed multi paths

6 months agolib: remove unused bfd defines
Louis Scalbert [Thu, 3 Oct 2024 11:37:51 +0000 (13:37 +0200)]
lib: remove unused bfd defines

Remove unused bfd defines

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agobfdd: add no variants to all configurations
Louis Scalbert [Thu, 3 Oct 2024 11:08:43 +0000 (13:08 +0200)]
bfdd: add no variants to all configurations

Continue the work of b70835d690 ("bfdd: add no variants to interval
configurations")

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agobgpd: changes for code maintainability
sri-mohan1 [Thu, 3 Oct 2024 10:55:36 +0000 (16:25 +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: Print debug message about reaching maximum allowed multi paths
Donatas Abraitis [Thu, 3 Oct 2024 06:20:40 +0000 (09:20 +0300)]
bgpd: Print debug message about reaching maximum allowed multi paths

Fixes: 421cf856ef86db250a86be01437d0a668b463dcc ("bgpd: Cleanup multipath figuring out in bgp")
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
6 months agoMerge pull request #16978 from donaldsharp/dmed_deselect_not_used
Donatas Abraitis [Thu, 3 Oct 2024 04:05:13 +0000 (07:05 +0300)]
Merge pull request #16978 from donaldsharp/dmed_deselect_not_used

bgpd: Remove unused bgp_mp_dmed_deselect function

6 months agoMerge pull request #16977 from louis-6wind/fix-printfrr_bp
Donatas Abraitis [Wed, 2 Oct 2024 15:57:59 +0000 (18:57 +0300)]
Merge pull request #16977 from louis-6wind/fix-printfrr_bp

bgpd: fix printfrr_bp for non initialized peers

6 months agoMerge pull request #16971 from opensourcerouting/fix/v6-with-v4-nexthops
Donald Sharp [Wed, 2 Oct 2024 15:08:13 +0000 (11:08 -0400)]
Merge pull request #16971 from opensourcerouting/fix/v6-with-v4-nexthops

bgpd: Actually make ` --v6-with-v4-nexthops` it work

6 months agobgpd: Remove unused bgp_mp_dmed_deselect function
Donald Sharp [Wed, 2 Oct 2024 14:41:37 +0000 (10:41 -0400)]
bgpd: Remove unused bgp_mp_dmed_deselect function

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agoMerge pull request #16967 from donaldsharp/nexthop_fixes
Donatas Abraitis [Wed, 2 Oct 2024 13:10:34 +0000 (16:10 +0300)]
Merge pull request #16967 from donaldsharp/nexthop_fixes

lib: nexthop code should use uint16_t for nexthop counting

6 months agobgpd: fix printfrr_bp for non initialized peers
Louis Scalbert [Wed, 2 Oct 2024 12:38:15 +0000 (14:38 +0200)]
bgpd: fix printfrr_bp for non initialized peers

Fix printfrr_bp for non initialized peers. For example:

> Sep 26 17:56:44 r1 bgpd[26295]: [GJPH1-W8PZV] Resetting peer (null)(Unknown) due to change in addpath config

Is now:

> Oct 02 14:00:59 r1 bgpd[12795]: [MNE5N-K0G4Z] Resetting peer 2.2.2.2 due to change in addpath config

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
6 months agoMerge pull request #16968 from opensourcerouting/bfd-no-commands
Donald Sharp [Wed, 2 Oct 2024 12:40:14 +0000 (08:40 -0400)]
Merge pull request #16968 from opensourcerouting/bfd-no-commands

bfdd: add no variants to interval configurations

6 months agoMerge pull request #16961 from donaldsharp/mp_info_changes
Donatas Abraitis [Wed, 2 Oct 2024 11:53:04 +0000 (14:53 +0300)]
Merge pull request #16961 from donaldsharp/mp_info_changes

Mp info changes

6 months agobgpd: Actually make ` --v6-with-v4-nexthops` it work
Donatas Abraitis [Wed, 2 Oct 2024 10:57:30 +0000 (13:57 +0300)]
bgpd: Actually make ` --v6-with-v4-nexthops` it work

It was using `-v` which is actually a _version_.

Fixes: 0435b31bb8ed55377f83d0e19bc085abc3c71b44 ("bgpd: Allow bgp to specify if it will allow v6 routing with v4 nexthops")
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
6 months agobfdd: add no variants to interval configurations
Rafael Zalamena [Tue, 1 Oct 2024 21:58:24 +0000 (18:58 -0300)]
bfdd: add no variants to interval configurations

Add missing no commands to various interval configurations.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
6 months agolib: nexthop code should use uint16_t for nexthop counting
Donald Sharp [Tue, 1 Oct 2024 18:31:08 +0000 (14:31 -0400)]
lib: nexthop code should use uint16_t for nexthop counting

It's possible to specify via the cli and configure how many
nexthops that are allowed on the system.  If you happen to
have > 255 then things are about to get interesting otherwise.

Let's allow up to 65k nexthops (ha!)

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agoMerge pull request #16952 from anlancs/fix/tools-pim-interface-wrong
Jafar Al-Gharaibeh [Tue, 1 Oct 2024 19:30:35 +0000 (14:30 -0500)]
Merge pull request #16952 from anlancs/fix/tools-pim-interface-wrong

tools: fix missing check interfaces for reloading pim

6 months agoMerge pull request #16955 from anlancs/fix/pimd-add-v4v6-check
Jafar Al-Gharaibeh [Tue, 1 Oct 2024 19:28:28 +0000 (14:28 -0500)]
Merge pull request #16955 from anlancs/fix/pimd-add-v4v6-check

pimd: fix missing IPV4 check

6 months agobgpd: Remove bgp_path_info_mpath_dequeue
Donald Sharp [Tue, 1 Oct 2024 13:18:44 +0000 (09:18 -0400)]
bgpd: Remove bgp_path_info_mpath_dequeue

This function is no doing any work.  Let's remove.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agobgpd: Cleanup multipath figuring out in bgp
Donald Sharp [Mon, 30 Sep 2024 19:09:42 +0000 (15:09 -0400)]
bgpd: Cleanup multipath figuring out in bgp

Currently bgp multipath has these properties:

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

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

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

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

2 full feeds in work_queue_run prior:

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

BGP multipath info            :  1941844     48   110780992  1941844 110780992

2 full feeds in work_queue_run after change:

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

BGP multipath info            :   970860     32    38836880   970866  38837120

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

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agotests: Clean up some logging in test_bgp_default_originate_2links.py
Donald Sharp [Mon, 30 Sep 2024 18:57:45 +0000 (14:57 -0400)]
tests: Clean up some logging in test_bgp_default_originate_2links.py

Test was confusing.  Add some useful data and clean up some debugs

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agobgpd: Ensure mpath data is only on bestpath
Donald Sharp [Thu, 26 Sep 2024 14:46:23 +0000 (10:46 -0400)]
bgpd: Ensure mpath data is only on bestpath

The mpath data structure has data that is only relevant
for the first mpath in the list.  It is not being used
anywhere else.  Let's document that a bit more.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agobgpd: Use CHECK_FLAG to remain consistent for mp_flags
Donald Sharp [Thu, 26 Sep 2024 14:40:30 +0000 (10:40 -0400)]
bgpd: Use CHECK_FLAG to remain consistent for mp_flags

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
6 months agoMerge pull request #16958 from opensourcerouting/calloc-warning-fix
Jafar Al-Gharaibeh [Mon, 30 Sep 2024 17:42:12 +0000 (12:42 -0500)]
Merge pull request #16958 from opensourcerouting/calloc-warning-fix

lib: fix calloc warning on recent compiler

6 months agoMerge pull request #16957 from opensourcerouting/pim-fixes
Jafar Al-Gharaibeh [Mon, 30 Sep 2024 17:07:50 +0000 (12:07 -0500)]
Merge pull request #16957 from opensourcerouting/pim-fixes

pimd: miscellaneous fixes

6 months agoMerge pull request #16938 from btrent98/autorp-topotest
Rafael Zalamena [Mon, 30 Sep 2024 15:49:05 +0000 (12:49 -0300)]
Merge pull request #16938 from btrent98/autorp-topotest

pimd: enhance topotest of autorp, fix autorp cli bug

6 months agolib: fix calloc warning on recent compiler
Rafael Zalamena [Mon, 30 Sep 2024 14:31:56 +0000 (11:31 -0300)]
lib: fix calloc warning on recent compiler

Fix the following compiler warning:
```
lib/elf_py.c: In function _elffile_load_:
lib/elf_py.c:1310:34: warning: _calloc_ sizes specified with _sizeof_ in the earlier argument and not in the later argument [-Wcalloc-transposed-args]
 1310 |         w->sects = calloc(sizeof(PyObject *), w->ehdr->e_shnum);
      |                                  ^~~~~~~~
lib/elf_py.c:1310:34: note: earlier argument should specify number of elements, later size of each element
```

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
6 months agopimd: fix northbound error message on delete
Rafael Zalamena [Thu, 1 Aug 2024 01:16:54 +0000 (22:16 -0300)]
pimd: fix northbound error message on delete

`snprintf` doesn't know about `%pPAs` use `snprintfrr` instead.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
6 months agopimd: remove unreachable code
Rafael Zalamena [Mon, 5 Aug 2024 17:36:18 +0000 (14:36 -0300)]
pimd: remove unreachable code

MLD code is IPv6 only so the define `PIM_IPV` will never be 4.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
6 months agopimd: fix missing IPV4 check
anlan_cs [Mon, 30 Sep 2024 05:06:26 +0000 (13:06 +0800)]
pimd: fix missing IPV4 check

In `pim_if_addr_add()`, some code inside `PIM_IPV == 4`
( the case of `igmp->mtrace_only` ) wrongly accepts ipv6 address.

So, clearly add IPV4 check.

Signed-off-by: anlan_cs <anlan_cs@126.com>
6 months agotools: fix missing check interfaces for reloading pim
anlan_cs [Sun, 29 Sep 2024 02:15:31 +0000 (10:15 +0800)]
tools: fix missing check interfaces for reloading pim

Without checking interfaces, the other interfaces' changes will be wrongly
lost.

Running config:
```
interface A
ip pim
ip pim use-source 11.0.0.1
exit
!
interface B
ip pim
ip pim use-source 22.0.0.1
exit
!
```

Reload the new config:
```
interface A
exit
!
interface B
ip pim
exit
```

Before:
```
2024-09-29 10:08:27,686  INFO: Executed "interface A  no ip pim exit"
```

After:
```
2024-09-29 10:05:01,356  INFO: Executed "interface A  no ip pim exit"
2024-09-29 10:05:01,376  INFO: Executed "interface B  no ip pim use-source 22.0.0.1 exit"
```

Signed-off-by: anlan_cs <anlan_cs@126.com>
7 months agotests: enhance autorp topotest
Barry A. Trent [Fri, 27 Sep 2024 19:59:12 +0000 (12:59 -0700)]
tests: enhance autorp topotest

Signed-off-by: Barry A. Trent <barry.trent@atcorp.com>
7 months agopimd: fix autorp CLI bugs
Barry A. Trent [Thu, 26 Sep 2024 21:49:19 +0000 (14:49 -0700)]
pimd: fix autorp CLI bugs

Signed-off-by: Barry A. Trent <barry.trent@atcorp.com>
7 months agoMerge pull request #16939 from sri-mohan1/srib-24-frr-a
Donatas Abraitis [Fri, 27 Sep 2024 05:53:38 +0000 (08:53 +0300)]
Merge pull request #16939 from sri-mohan1/srib-24-frr-a

bgpd: changes for code maintainability

7 months agoMerge pull request #16934 from donaldsharp/clang_format
Donatas Abraitis [Fri, 27 Sep 2024 05:49:31 +0000 (08:49 +0300)]
Merge pull request #16934 from donaldsharp/clang_format

*: Modify clang-format column limit to 100

7 months agobgpd: changes for code maintainability
sri-mohan1 [Fri, 27 Sep 2024 00:39:57 +0000 (06:09 +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>
7 months ago*: Modify clang-format column limit to 100
Donald Sharp [Thu, 26 Sep 2024 13:57:28 +0000 (09:57 -0400)]
*: Modify clang-format column limit to 100

A bunch of recent discussion has gone on about this.  Let's see
if we are actually interested in making a change.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
7 months agoMerge pull request #16931 from sri-mohan1/srib-24-frr-a
Donald Sharp [Thu, 26 Sep 2024 12:11:32 +0000 (08:11 -0400)]
Merge pull request #16931 from sri-mohan1/srib-24-frr-a

bgpd: changes for code maintainability

7 months agobgpd: changes for code maintainability
sri-mohan1 [Thu, 26 Sep 2024 09:21:19 +0000 (14:51 +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>
7 months agoMerge pull request #16929 from Jafaral/pim-oil-fix
Donald Sharp [Thu, 26 Sep 2024 00:22:24 +0000 (20:22 -0400)]
Merge pull request #16929 from Jafaral/pim-oil-fix

pimd: fix a possible use after free bug when doing pim trace

7 months agopimd: fix a possible use after free bug when doing pim trace
Jafar Al-Gharaibeh [Wed, 25 Sep 2024 19:44:54 +0000 (14:44 -0500)]
pimd: fix a possible use after free bug when doing pim trace

```
ERROR: AddressSanitizer: heap-use-after-free on address 0x6160000aecf0 at pc 0x5555557ecdb9 bp 0x7fffffffe350 sp 0x7fffffffe340
READ of size 4 at 0x6160000aecf0 thread T0
    #0 0x5555557ecdb8 in igmp_source_delete pimd/pim_igmpv3.c:340
    #1 0x5555557ed475 in igmp_source_delete_expired pimd/pim_igmpv3.c:405
    #2 0x5555557de574 in igmp_group_timer pimd/pim_igmp.c:1346
    #3 0x7ffff7275421 in event_call lib/event.c:1996
    #4 0x7ffff7140797 in frr_run lib/libfrr.c:1237
    #5 0x5555557f5840 in main pimd/pim_main.c:166
    #6 0x7ffff6a54082 in __libc_start_main ../csu/libc-start.c:308
    #7 0x555555686eed in _start (/usr/lib/frr/pimd+0x132eed)

0x6160000aecf0 is located 112 bytes inside of 600-byte region [0x6160000aec80,0x6160000aeed8)
freed by thread T0 here:
    #0 0x7ffff767b40f in __interceptor_free ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:122
    #1 0x7ffff716ed34 in qfree lib/memory.c:131
    #2 0x5555557169ae in pim_channel_oil_free pimd/pim_oil.c:84
    #3 0x555555717981 in pim_channel_oil_del pimd/pim_oil.c:199
    #4 0x55555573c42c in tib_sg_gm_prune pimd/pim_tib.c:196
    #5 0x5555557d6d04 in igmp_source_forward_stop pimd/pim_igmp.c:229
    #6 0x5555557d5855 in igmp_anysource_forward_stop pimd/pim_igmp.c:61
    #7 0x5555557de539 in igmp_group_timer pimd/pim_igmp.c:1344
    #8 0x7ffff7275421 in event_call lib/event.c:1996
    #9 0x7ffff7140797 in frr_run lib/libfrr.c:1237
    #10 0x5555557f5840 in main pimd/pim_main.c:166
    #11 0x7ffff6a54082 in __libc_start_main ../csu/libc-start.c:308

previously allocated by thread T0 here:
    #0 0x7ffff767ba06 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:153
    #1 0x7ffff716ebe1 in qcalloc lib/memory.c:106
    #2 0x555555716eb7 in pim_channel_oil_add pimd/pim_oil.c:133
    #3 0x55555573b2b9 in tib_sg_oil_setup pimd/pim_tib.c:30
    #4 0x55555573bdd3 in tib_sg_gm_join pimd/pim_tib.c:119
    #5 0x5555557d6788 in igmp_source_forward_start pimd/pim_igmp.c:193
    #6 0x5555557d5771 in igmp_anysource_forward_start pimd/pim_igmp.c:51
    #7 0x5555557ecaa0 in group_exclude_fwd_anysrc_ifempty pimd/pim_igmpv3.c:310
    #8 0x5555557ef937 in toex_incl pimd/pim_igmpv3.c:839
    #9 0x5555557f00a2 in igmpv3_report_toex pimd/pim_igmpv3.c:938
    #10 0x5555557f543d in igmp_v3_recv_report pimd/pim_igmpv3.c:2000
    #11 0x5555557da2b4 in pim_igmp_packet pimd/pim_igmp.c:787
    #12 0x5555556ee46a in process_igmp_packet pimd/pim_mroute.c:763
    #13 0x5555556ee5f3 in pim_mroute_msg pimd/pim_mroute.c:787
    #14 0x5555556eef58 in mroute_read pimd/pim_mroute.c:877
    #15 0x7ffff7275421 in event_call lib/event.c:1996
    #16 0x7ffff7140797 in frr_run lib/libfrr.c:1237
    #17 0x5555557f5840 in main pimd/pim_main.c:166
    #18 0x7ffff6a54082 in __libc_start_main ../csu/libc-start.c:308

SUMMARY: AddressSanitizer: heap-use-after-free pimd/pim_igmpv3.c:340 in igmp_source_delete
Shadow bytes around the buggy address:
  0x0c2c8000dd40: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c2c8000dd50: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c2c8000dd60: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c2c8000dd70: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c2c8000dd80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x0c2c8000dd90: fd fd fd fd fd fd fd fd fd fd fd fd fd fd[fd]fd
  0x0c2c8000dda0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c2c8000ddb0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c2c8000ddc0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c2c8000ddd0: fd fd fd fd fd fd fd fd fd fd fd fa fa fa fa fa
  0x0c2c8000dde0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
```

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
7 months agoMerge pull request #16913 from chiragshah6/evpn_dev4
Donatas Abraitis [Wed, 25 Sep 2024 18:52:33 +0000 (21:52 +0300)]
Merge pull request #16913 from chiragshah6/evpn_dev4

bgpd: EVPN fix per rd specific type-2 json output

7 months agoMerge pull request #16918 from donaldsharp/addr_cmp_problems_in_snmp
Donatas Abraitis [Wed, 25 Sep 2024 18:50:35 +0000 (21:50 +0300)]
Merge pull request #16918 from donaldsharp/addr_cmp_problems_in_snmp

zebra snmp fixes

7 months agoMerge pull request #16916 from nabahr/pim-coverity
Donald Sharp [Wed, 25 Sep 2024 16:30:19 +0000 (12:30 -0400)]
Merge pull request #16916 from nabahr/pim-coverity

pimd: Fix new issues found in coverity

7 months agozebra: Add missing proto translations
Donald Sharp [Wed, 25 Sep 2024 16:14:50 +0000 (12:14 -0400)]
zebra: Add missing proto translations

Add missing isis and eigrp proto translations.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
7 months agozebra: Correctly report metrics
Donald Sharp [Wed, 25 Sep 2024 16:09:40 +0000 (12:09 -0400)]
zebra: Correctly report metrics

Report the routes metric in IPFORWARDMETRIC1 and return
-1 for the other metrics as required by the IP-FORWARD-MIB.

inetCidrRouteMetric2 OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
           "An alternate routing metric for this route.  The
            semantics of this metric are determined by the routing-
            protocol specified in the route's inetCidrRouteProto
            value.  If this metric is not used, its value should be
            set to -1."
    DEFVAL { -1 }
    ::= { inetCidrRouteEntry 13 }

I've included metric2 but it's the same for all of them.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
7 months agozebra: Let's use memset instead of walking bytes and setting to 0
Donald Sharp [Wed, 25 Sep 2024 16:08:03 +0000 (12:08 -0400)]
zebra: Let's use memset instead of walking bytes and setting to 0

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
7 months agozebra: Fix snmp walk of zebra rib
Donald Sharp [Wed, 25 Sep 2024 16:06:29 +0000 (12:06 -0400)]
zebra: Fix snmp walk of zebra rib

The snmp walk of the zebra rib was skipping entries
because in_addr_cmp was replaced with a prefix_cmp
which worked slightly differently causing parts
of the zebra rib tree to be skipped.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
7 months agoMerge pull request #16915 from donaldsharp/bgp_dead_code
Jafar Al-Gharaibeh [Wed, 25 Sep 2024 15:56:04 +0000 (10:56 -0500)]
Merge pull request #16915 from donaldsharp/bgp_dead_code

bgpd: Remove dead code from recent commit

7 months agopimd: Fix coverity checked return issue
Nathan Bahr [Wed, 25 Sep 2024 13:53:08 +0000 (13:53 +0000)]
pimd: Fix coverity checked return issue

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
7 months agopimd: Fix coverity checked return issue
Nathan Bahr [Wed, 25 Sep 2024 13:50:44 +0000 (13:50 +0000)]
pimd: Fix coverity checked return issue

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
7 months agopimd: Fix igmp proxy null pointer dereference
Nathan Bahr [Wed, 25 Sep 2024 13:41:57 +0000 (13:41 +0000)]
pimd: Fix igmp proxy null pointer dereference

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
7 months agoMerge pull request #16912 from sri-mohan1/srib-24-frr-a
Donald Sharp [Wed, 25 Sep 2024 13:47:39 +0000 (09:47 -0400)]
Merge pull request #16912 from sri-mohan1/srib-24-frr-a

bgpd: changes for code maintainability

7 months agobgpd: Remove dead code from recent commit
Donald Sharp [Wed, 25 Sep 2024 13:30:37 +0000 (09:30 -0400)]
bgpd: Remove dead code from recent commit

Recent commit 4d0e7a49cf8d4311a485281fa50bbff6ee8ca6cc
brought in changes that moved a check for ret up
in the code, caused some code to be left around
and be effectively dead since it would never be called.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
7 months agobgpd: EVPN fix per rd specific type-2 json output
Sindhu Parvathi Gopinathan [Tue, 24 Sep 2024 17:55:09 +0000 (10:55 -0700)]
bgpd: EVPN fix per rd specific type-2 json output

Current Issue:

paths key is not there for
'show bgp l2vpn evpn route rd <rd-id> mac <mac> json' uses
evpn prefix as key for each path.
Replace the evpn prefix with "paths".
This aligned with overall EVPN RIB json output like
'show bgp l2vpn evpn route json'
'show bgp l2vpn evpn route rd <> type 2 json'

Fix:

paths key is added instead of prefix info.

Ticket:#4087461

Issue:4087461

Testing:

Before fix:

leaf22# show bgp l2vpn evpn route rd 6.0.0.17:2 mac 00:02:00:00:00:12 json
{
  "prefix":"[2]:[0]:[48]:[00:02:00:00:00:12]",
  "prefixLen":352,
  "rd":"6.0.0.17:2",
  "routeType":2,
  "ethTag":0,
  "macLen":48,
  "mac":"00:02:00:00:00:12",
  "advertisedTo":{
    "220.20.0.33":{
      "hostname":"spine21"
    },
    "220.21.0.33":{
      "hostname":"spine22"
    }
  },
  "[2]:[0]:[48]:[00:02:00:00:00:12]":[ <=====  Prefix info instead of "paths" key
    [
      {
        "vni":"101101",
        "aspath":{
          "string":"65202 65024",
          "segments":[
            {
              "type":"as-sequence",
              "list":[
                65202,
                65024
              ]
            }
          ],
          "length":2
        },
        "esi":"03:00:00:00:77:02:04:00:00:18",
        "es_info":{
          "localEs":true
        },
        "origin":"IGP",
        "valid":true,
        "version":5,
        "bestpath":{
          "bestpathFromAs":65202,
          "overall":true,
          "selectionReason":"Older Path"
        },
        "extendedCommunity":{
          "string":"RT:65024:101101 ET:8"
        },
        "lastUpdate":{
          "epoch":1726803218,
          "string":"Fri Sep 20 03:33:38 2024\n"
        },
        "nexthops":[
          {
            "ip":"6.0.0.17",
            "hostname":"spine21",
            "afi":"ipv4",
            "metric":0,
            "accessible":true,
            "used":true
          }
        ],
        "peer":{
          "peerId":"220.20.0.33",
          "routerId":"6.0.0.20",
          "hostname":"spine21",
          "type":"external"
        }
      }
    ],
    [
      {
        "vni":"101101",
        "aspath":{
          "string":"65202 65024",
          "segments":[
            {
              "type":"as-sequence",
              "list":[
                65202,
                65024
              ]
            }
          ],
          "length":2
        },
        "esi":"03:00:00:00:77:02:04:00:00:18",
        "es_info":{
          "localEs":true
        },
        "origin":"IGP",
        "valid":true,
        "version":5,
        "extendedCommunity":{
          "string":"RT:65024:101101 ET:8"
        },
        "lastUpdate":{
          "epoch":1726803218,
          "string":"Fri Sep 20 03:33:38 2024\n"
        },
        "nexthops":[
          {
            "ip":"6.0.0.17",
            "hostname":"spine22",
            "afi":"ipv4",
            "metric":0,
            "accessible":true,
            "used":true
          }
        ],
        "peer":{
          "peerId":"220.21.0.33",
          "routerId":"6.0.0.21",
          "hostname":"spine22",
          "type":"external"
        }
      }
    ]
  ],
  "numPaths":2
}

After fix:

eaf22# show bgp l2vpn evpn route rd 6.0.0.17:2 mac 00:02:00:00:00:12 json
{
  "prefix":"[2]:[0]:[48]:[00:02:00:00:00:12]",
  "prefixLen":352,
  "rd":"6.0.0.17:2",
  "routeType":2,
  "ethTag":0,
  "macLen":48,
  "mac":"00:02:00:00:00:12",
  "advertisedTo":{
    "220.20.0.33":{
      "hostname":"spine21"
    },
    "220.21.0.33":{
      "hostname":"spine22"
    }
  },
  "paths":[
    [
      {
        "vni":"101101",
        "aspath":{
          "string":"65202 65024",
          "segments":[
            {
              "type":"as-sequence",
              "list":[
                65202,
                65024
              ]
            }
          ],
          "length":2
        },
        "esi":"03:00:00:00:77:02:04:00:00:18",
        "es_info":{
          "localEs":true
        },
        "origin":"IGP",
        "valid":true,
        "version":3,
        "bestpath":{
          "bestpathFromAs":65202,
          "overall":true,
          "selectionReason":"Router ID"
        },
        "extendedCommunity":{
          "string":"RT:65024:101101 ET:8"
        },
        "lastUpdate":{
          "epoch":1727175046,
          "string":"Tue Sep 24 10:50:46 2024\n"
        },
        "nexthops":[
          {
            "ip":"6.0.0.17",
            "hostname":"spine21",
            "afi":"ipv4",
            "metric":0,
            "accessible":true,
            "used":true
          }
        ],
        "peer":{
          "peerId":"220.20.0.33",
          "routerId":"6.0.0.20",
          "hostname":"spine21",
          "type":"external"
        }
      }
    ],
    [
      {
        "vni":"101101",
        "aspath":{
          "string":"65202 65024",
          "segments":[
            {
              "type":"as-sequence",
              "list":[
                65202,
                65024
              ]
            }
          ],
          "length":2
        },
        "esi":"03:00:00:00:77:02:04:00:00:18",
        "es_info":{
          "localEs":true
        },
        "origin":"IGP",
        "valid":true,
        "version":3,
        "extendedCommunity":{
          "string":"RT:65024:101101 ET:8"
        },
        "lastUpdate":{
          "epoch":1727175046,
          "string":"Tue Sep 24 10:50:46 2024\n"
        },
        "nexthops":[
          {
            "ip":"6.0.0.17",
            "hostname":"spine22",
            "afi":"ipv4",
            "metric":0,
            "accessible":true,
            "used":true
          }
        ],
        "peer":{
          "peerId":"220.21.0.33",
          "routerId":"6.0.0.21",
          "hostname":"spine22",
          "type":"external"
        }
      }
    ]
  ],
  "numPaths":2
}

Signed-off-by: Sindhu Parvathi Gopinathan's <sgopinathan@nvidia.com>
7 months agoMerge pull request #16909 from donaldsharp/help
Jafar Al-Gharaibeh [Wed, 25 Sep 2024 02:23:03 +0000 (21:23 -0500)]
Merge pull request #16909 from donaldsharp/help

lib: Help text correction

7 months agoMerge pull request #16911 from donaldsharp/command_node_is_fun
Jafar Al-Gharaibeh [Wed, 25 Sep 2024 02:22:11 +0000 (21:22 -0500)]
Merge pull request #16911 from donaldsharp/command_node_is_fun

Command node is fun

7 months agobgpd: changes for code maintainability
sri-mohan1 [Wed, 25 Sep 2024 01:13:01 +0000 (06:43 +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>
7 months agolib: Removed unused RFP_DEFAULTS_NODE
Donald Sharp [Tue, 24 Sep 2024 20:11:43 +0000 (16:11 -0400)]
lib: Removed unused RFP_DEFAULTS_NODE

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
7 months agolib, zebra: TABLE_NODE is not used
Donald Sharp [Tue, 24 Sep 2024 20:05:54 +0000 (16:05 -0400)]
lib, zebra: TABLE_NODE is not used

No-one is using this, remove

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
7 months agoMerge pull request #16634 from nabahr/autorp
Donald Sharp [Tue, 24 Sep 2024 19:36:09 +0000 (15:36 -0400)]
Merge pull request #16634 from nabahr/autorp

PIM: Implement AutoRP functionality

7 months agolib: Help text correction
Donald Sharp [Tue, 24 Sep 2024 19:25:49 +0000 (15:25 -0400)]
lib: Help text correction

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
7 months agoMerge pull request #16908 from donaldsharp/ospf6_snmp_special
Jafar Al-Gharaibeh [Tue, 24 Sep 2024 18:39:57 +0000 (13:39 -0500)]
Merge pull request #16908 from donaldsharp/ospf6_snmp_special

ospf6d: Remove unguarded debugs in ospf6_snmp.c

7 months agotests: Addition of AutoRP Discovery uncovered broken PIM test
Nathan Bahr [Wed, 18 Sep 2024 15:00:10 +0000 (15:00 +0000)]
tests: Addition of AutoRP Discovery uncovered broken PIM test

With AutoRP discovery running by default, that adds a new
IGMP group that needs to be accounted for in IGMP output.

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

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
7 months agotests: Update existing tests for changes introduced by AutoRP Discovery
Nathan Bahr [Wed, 18 Sep 2024 14:58:48 +0000 (14:58 +0000)]
tests: Update existing tests for changes introduced by AutoRP Discovery

With AutoRP discovery running by default, that adds a new
IGMP group that needs to be accounted for in IGMP output.

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

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
7 months agotests: Added tests for new AutoRP functionality
Nathan Bahr [Tue, 17 Sep 2024 21:23:19 +0000 (21:23 +0000)]
tests: Added tests for new AutoRP functionality

Uses hardcoded sample AutoRP packets injected in to test
message parsing and proper application of AutoRP learned
RP info. Tests mix of AutoRP and static RP's.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
7 months agodoc: Add user documentation for AutoRP CLI
Nathan Bahr [Tue, 17 Sep 2024 02:35:27 +0000 (02:35 +0000)]
doc: Add user documentation for AutoRP CLI

Document the CLI commands to configure AutoRP discovery
and candidate RP announcements.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
7 months agopimd,yang: Implement AutoRP CLI and NB config path
Nathan Bahr [Tue, 17 Sep 2024 02:10:03 +0000 (02:10 +0000)]
pimd,yang: Implement AutoRP CLI and NB config path

New CLI commands added:
router pim [vrf NAME]
  autorp discovery
  autorp announce RP-ADDR [GROUP | group-list PREFIX-LIST]
  autorp announce {scope (1-255) | interval (1-65535) | holdtime (0-65535)}

autorp discovery
  Enables Auto RP discovery for learning dynamic RP information using the
  AutoRP protocol.

autorp announce RP-ADDR [GROUP | group-list PREFIX-LIST]
  Enable announcements of a candidate RP with the given group range, or
  prefix list of group ranges, to an AutoRP mapping agent.

autorp announce {scope (1-255) | interval (1-65535) | holdtime (0-65535)}
  Configure the parameters of the AutoRP announcement messages.
  The scope sets the packet TTL.
  The interval sets the time between TX of announcements.
  The holdtime sets the hold time in the message, the time the mapping
  agent should wait before invalidating the candidate RP information.

debug pim autorp
  Enable debug logging of the AutoRP protocol

show ip pim [vrf NAME] autorp [json]
  Show details of the AutoRP protocol.
  To view learned RP info, use the existing command 'show ip pim rp-info'

Extend pim yang for new configuration:
  augment /frr-rt:routing/frr-rt:control-plane-protocols/frr-rt:control-plane-protocol/frr-pim:pim/frr-pim:address-family:
    +--rw rp
       +--rw auto-rp
          +--rw discovery-enabled?   boolean
          +--rw announce-scope?      uint8
          +--rw announce-interval?   uint16
          +--rw announce-holdtime?   uint16
          +--rw candidate-rp-list* [rp-address]
             +--rw rp-address           inet:ip-address
             +--rw (group-or-prefix-list)?
                +--:(group)
                |  +--rw group?         frr-route-types:ip-multicast-group-prefix
                +--:(prefix-list)
                   +--rw prefix-list?   plist-ref

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
7 months agopimd: Add AutoRP functionality to PIMD
Nathan Bahr [Tue, 17 Sep 2024 02:32:59 +0000 (02:32 +0000)]
pimd: Add AutoRP functionality to PIMD

Perform AutoRP discovery and candidate RP announcements using the
AutoRP protocol.
Mapping agent is not yet implemented, but this feature is not
necessary for FRR to support AutoRP as we only need one AutoRP
mapping agent in the network.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
7 months agoMerge pull request #16861 from btrent98/igmp-proxy2
Donald Sharp [Tue, 24 Sep 2024 16:32:15 +0000 (12:32 -0400)]
Merge pull request #16861 from btrent98/igmp-proxy2

Add igmp proxy support

7 months agoMerge pull request #16788 from LabNConsulting/jmuthii/nhrpd-retry-resolution
Jafar Al-Gharaibeh [Tue, 24 Sep 2024 16:07:21 +0000 (11:07 -0500)]
Merge pull request #16788 from LabNConsulting/jmuthii/nhrpd-retry-resolution

nhrpd: Implement retrying resolution request

7 months agoMerge pull request #16855 from zhou-run/202409131731
Russ White [Tue, 24 Sep 2024 15:25:13 +0000 (11:25 -0400)]
Merge pull request #16855 from zhou-run/202409131731

isisd: Fix NHLFE entry memory leaks

7 months agoMerge pull request #16907 from opensourcerouting/fix/load_built-in_lua_functions
Russ White [Tue, 24 Sep 2024 14:56:25 +0000 (10:56 -0400)]
Merge pull request #16907 from opensourcerouting/fix/load_built-in_lua_functions

lib: Load built-in Lua functions

7 months agoospf6d: Remove unguarded debugs in ospf6_snmp.c
Donald Sharp [Tue, 24 Sep 2024 14:44:15 +0000 (10:44 -0400)]
ospf6d: Remove unguarded debugs in ospf6_snmp.c

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
7 months agoMerge pull request #16906 from opensourcerouting/fix/match_peer_self
Russ White [Tue, 24 Sep 2024 14:16:35 +0000 (10:16 -0400)]
Merge pull request #16906 from opensourcerouting/fix/match_peer_self

bgpd: Return NOMATCH only if both conf_if/group does not exist

7 months agoMerge pull request #16904 from louis-6wind/fix-zebra-rib-range
Russ White [Tue, 24 Sep 2024 14:15:25 +0000 (10:15 -0400)]
Merge pull request #16904 from louis-6wind/fix-zebra-rib-range

tests: fix zebra_rib range

7 months agoMerge pull request #16895 from opensourcerouting/fix/dual_as_topotest
Russ White [Tue, 24 Sep 2024 14:13:14 +0000 (10:13 -0400)]
Merge pull request #16895 from opensourcerouting/fix/dual_as_topotest

tests: Simplify BGP dual-as topotest

7 months agoMerge pull request #16853 from Shbinging/no_ip_ospf_dead_interval_minimal
Russ White [Tue, 24 Sep 2024 14:03:29 +0000 (10:03 -0400)]
Merge pull request #16853 from Shbinging/no_ip_ospf_dead_interval_minimal

ospfd: fix snytax of some no commands

7 months agoMerge pull request #16851 from Shbinging/fix_timer_throttle_spf
Russ White [Tue, 24 Sep 2024 14:03:05 +0000 (10:03 -0400)]
Merge pull request #16851 from Shbinging/fix_timer_throttle_spf

ospfd: reset spf_hold_multiplier when current SPF delay state is changed

7 months agoMerge pull request #16838 from opensourcerouting/fix/refresh_pr_9079
Russ White [Tue, 24 Sep 2024 14:01:10 +0000 (10:01 -0400)]
Merge pull request #16838 from opensourcerouting/fix/refresh_pr_9079

Refreshement of BGP multi ASNs

7 months agoMerge pull request #16533 from acooks-at-bda/less-controversial-ospf6d-refactor-befor...
Russ White [Tue, 24 Sep 2024 13:50:19 +0000 (09:50 -0400)]
Merge pull request #16533 from acooks-at-bda/less-controversial-ospf6d-refactor-before-adding-tlvs

OSPF6: Refactor to prepare for E-LSA handling

7 months agoMerge pull request #16219 from cunningr/prevent-ipv6-link-local-injection
Russ White [Tue, 24 Sep 2024 13:44:36 +0000 (09:44 -0400)]
Merge pull request #16219 from cunningr/prevent-ipv6-link-local-injection

bgpd - Exclude case for remote prefix w/o link-local #16198

7 months agotests: Check if built-in Lua functions are working
Donatas Abraitis [Tue, 24 Sep 2024 10:27:43 +0000 (13:27 +0300)]
tests: Check if built-in Lua functions are working

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
7 months agolib: Load built-in Lua functions
Donatas Abraitis [Tue, 24 Sep 2024 10:13:50 +0000 (13:13 +0300)]
lib: Load built-in Lua functions

We can't use even `string()` function because built-in functions are not
loaded.

Testing with:

```
$ cat /etc/frr/scripts/zebra.lua
function on_rib_process_dplane_results(ctx)
log.warn(string.upper("testas"))
return {}
end
```

This results to "TESTAS" in the logs.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
7 months agotests: Add a basic test to verify `match peer ...`
Donatas Abraitis [Tue, 24 Sep 2024 09:28:56 +0000 (12:28 +0300)]
tests: Add a basic test to verify `match peer ...`

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
7 months agobgpd: Return NOMATCH only if both conf_if/group does not exist
Donatas Abraitis [Tue, 24 Sep 2024 09:27:45 +0000 (12:27 +0300)]
bgpd: Return NOMATCH only if both conf_if/group does not exist

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
7 months agotests: fix zebra_rib range
Louis Scalbert [Mon, 23 Sep 2024 15:57:48 +0000 (17:57 +0200)]
tests: fix zebra_rib range

Range is wrong. We want values 1 and 2 but we only test 1.

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

Fixes: abd2a1ff3f ("tests: Test some basic kernel <-> zebra interactions")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
7 months agoMerge pull request #16902 from donaldsharp/forwarding_on_off
Donatas Abraitis [Tue, 24 Sep 2024 07:22:00 +0000 (10:22 +0300)]
Merge pull request #16902 from donaldsharp/forwarding_on_off

tests: Add v4/v6 forwarding off/on

7 months agotests: Add v4/v6 forwarding off/on
Donald Sharp [Mon, 23 Sep 2024 19:07:28 +0000 (15:07 -0400)]
tests: Add v4/v6 forwarding off/on

There are no tests that ensured that turning off then on
v4 and v6 forwarding actually worked.  This does so.
This was found via looking at the code coverage.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
7 months agotests: add topotest for igmp proxy
Barry A. Trent [Tue, 17 Sep 2024 20:15:27 +0000 (13:15 -0700)]
tests: add topotest for igmp proxy

Signed-off-by: Barry A. Trent <barry.trent@atcorp.com>
7 months agodoc: add documentation for ip igmp proxy cli
Barry A. Trent [Mon, 16 Sep 2024 22:34:01 +0000 (15:34 -0700)]
doc: add documentation for ip igmp proxy cli

Signed-off-by: Barry A. Trent <barry.trent@atcorp.com>
7 months agopimd: add show commands for igmp proxy joins
Barry A. Trent [Tue, 17 Sep 2024 21:21:05 +0000 (14:21 -0700)]
pimd: add show commands for igmp proxy joins

Signed-off-by: Barry A. Trent <barry.trent@atcorp.com>
7 months agopimd: add proxy join/prune functionality
Barry A. Trent [Tue, 20 Aug 2024 21:34:26 +0000 (14:34 -0700)]
pimd: add proxy join/prune functionality

Use existing igmp static join infrastructure.
Add an enum to distinguish static from proxy joins.

Signed-off-by: Barry A. Trent <barry.trent@atcorp.com>
7 months agobgpd: Delete EVPN VRF instace if it's not a hidden instance only
Donatas Abraitis [Mon, 23 Sep 2024 13:55:31 +0000 (16:55 +0300)]
bgpd: Delete EVPN VRF instace if it's not a hidden instance only

```
==5445==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000008 (pc 0x7ff4c6bedb19 bp 0x7ffc95f2e400 sp 0x7ffc95f2e3c0 T0)
==5445==The signal is caused by a READ memory access.
==5445==Hint: address points to the zero page.
    #0 0x7ff4c6bedb19 in hash_iterate lib/hash.c:246
    #1 0x5618f41f5f59 in bgp_evpn_nh_finish bgpd/bgp_evpn_mh.c:4663
    #2 0x5618f41dcbe8 in bgp_evpn_vrf_delete bgpd/bgp_evpn.c:7336
    #3 0x5618f43bdd35 in bgp_delete bgpd/bgpd.c:4098
    #4 0x5618f417ef6e in bgp_exit bgpd/bgp_main.c:206
    #5 0x5618f417ef6e in sigint bgpd/bgp_main.c:164
    #6 0x7ff4c6cac6c4 in frr_sigevent_process lib/sigevent.c:117
    #7 0x7ff4c6cd8258 in event_fetch lib/event.c:1767
    #8 0x7ff4c6c0dcbc in frr_run lib/libfrr.c:1230
    #9 0x5618f418080d in main bgpd/bgp_main.c:555
    #10 0x7ff4c670c249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #11 0x7ff4c670c304 in __libc_start_main_impl ../csu/libc-start.c:360
    #12 0x5618f417ea20 in _start (/usr/lib/frr/bgpd+0x2e4a20)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV lib/hash.c:246 in hash_iterate
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
7 months agoMerge pull request #16859 from mjstapp/bgp_cancel_once
Donatas Abraitis [Mon, 23 Sep 2024 09:01:05 +0000 (11:01 +0200)]
Merge pull request #16859 from mjstapp/bgp_cancel_once

bgpd: cancel events once in peer_free()