]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
10 months agotests: cleanup the config file specification and default code
Christian Hopps [Wed, 24 May 2023 08:43:09 +0000 (04:43 -0400)]
tests: cleanup the config file specification and default code

Also, add a new warning for missing configuration files when user is
expecting them.

Signed-off-by: Christian Hopps <chopps@labn.net>
10 months agoMerge pull request #13598 from opensourcerouting/fix/typo_vtysh
Igor Ryzhov [Thu, 25 May 2023 14:09:41 +0000 (17:09 +0300)]
Merge pull request #13598 from opensourcerouting/fix/typo_vtysh

vtysh: Fix typo in warning message for `-b -f ...`

10 months agobgpd: Refactor subgroup_announce_table() to reuse an existing helpers
Donatas Abraitis [Thu, 25 May 2023 12:46:21 +0000 (15:46 +0300)]
bgpd: Refactor subgroup_announce_table() to reuse an existing helpers

Reuse subgroup_process_announce_selected(). It does the same as we do here
duplicating the logic.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
10 months agoripd: embed BFD YANG models
David Lamparter [Thu, 25 May 2023 11:47:03 +0000 (13:47 +0200)]
ripd: embed BFD YANG models

The frr-ripd model has a dependency on frr-bfdd, so include it in build.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
10 months agomgmtd: embed necessary YANG models
David Lamparter [Thu, 25 May 2023 11:45:08 +0000 (13:45 +0200)]
mgmtd: embed necessary YANG models

Listing `.c` files in `$(…_OBJECTS):` does not have the desired effect.

(Also CLEANFILES is not needed, yang/subdir.am already has yang/*.c in
CLEANFILES anyway.)

Fixes: #13600
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
11 months agovtysh: Fix typo in warning message for `-b -f ...`
Donatas Abraitis [Thu, 25 May 2023 07:20:29 +0000 (10:20 +0300)]
vtysh: Fix typo in warning message for `-b -f ...`

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
11 months agoMerge pull request #13592 from LabNConsulting/chopps/newmunet
Quentin Young [Wed, 24 May 2023 16:20:41 +0000 (12:20 -0400)]
Merge pull request #13592 from LabNConsulting/chopps/newmunet

munet: import 0.13.5 w/ nicer cmd logging

11 months agomunet: import 0.13.5 w/ nicer cmd logging
Christian Hopps [Wed, 24 May 2023 06:46:58 +0000 (02:46 -0400)]
munet: import 0.13.5 w/ nicer cmd logging

Signed-off-by: Christian Hopps <chopps@labn.net>
11 months agoldpd: changes for code maintainability
sri-mohan1 [Tue, 23 May 2023 17:50:01 +0000 (23:20 +0530)]
ldpd: changes for code maintainability

these changes are for improving the code maintainability and readability

Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
11 months agoMerge pull request #13555 from LabNConsulting/aceelindem/ospf-p2mp-delayed-reflooding...
Russ White [Tue, 23 May 2023 15:41:35 +0000 (11:41 -0400)]
Merge pull request #13555 from LabNConsulting/aceelindem/ospf-p2mp-delayed-reflooding-config

ospfd: OSPF P2MP Delayed Reflooding configuration

11 months agoMerge pull request #13586 from ponedo/link-state-doc-fix
Donald Sharp [Tue, 23 May 2023 14:57:20 +0000 (10:57 -0400)]
Merge pull request #13586 from ponedo/link-state-doc-fix

doc: fix typo RFC7572 to RFC7752

11 months agodoc: fix typo RFC7572 to RFC7752
ponedo [Tue, 23 May 2023 14:52:51 +0000 (22:52 +0800)]
doc: fix typo RFC7572 to RFC7752

Signed-off-by: ponedo <2534164734@qq.com>
11 months agoMerge pull request #13548 from opensourcerouting/fix/use_min_value_of_cli_zebra_cap_ecmp
Russ White [Tue, 23 May 2023 12:25:46 +0000 (08:25 -0400)]
Merge pull request #13548 from opensourcerouting/fix/use_min_value_of_cli_zebra_cap_ecmp

ripd: Make sure we do not overuse higher values for ECMP count

11 months agoMerge pull request #13556 from donaldsharp/token_to_desc
Russ White [Tue, 23 May 2023 12:21:51 +0000 (08:21 -0400)]
Merge pull request #13556 from donaldsharp/token_to_desc

memory desciprtion shortening

11 months agoMerge pull request #13578 from opensourcerouting/fix/ripd_argv_find
Russ White [Tue, 23 May 2023 12:20:07 +0000 (08:20 -0400)]
Merge pull request #13578 from opensourcerouting/fix/ripd_argv_find

ripd: Use argv_find to avoid buffer overflow when parsing allow-ecmp args

11 months agoMerge pull request #13535 from opensourcerouting/feature/ripng_allow_ecmp
Russ White [Tue, 23 May 2023 11:35:32 +0000 (07:35 -0400)]
Merge pull request #13535 from opensourcerouting/feature/ripng_allow_ecmp

ripng: Implement allow-ecmp X command

11 months agoMerge pull request #13577 from raja-rajasekar/frr_dev1
Donatas Abraitis [Tue, 23 May 2023 07:40:46 +0000 (10:40 +0300)]
Merge pull request #13577 from raja-rajasekar/frr_dev1

Fixing show bgp all json format and convert evpn to no pretty output

11 months agoMerge pull request #13570 from donaldsharp/toooooooo_fast
Donatas Abraitis [Tue, 23 May 2023 06:44:13 +0000 (09:44 +0300)]
Merge pull request #13570 from donaldsharp/toooooooo_fast

Grab bag of fixes from upgrading system

11 months agoripngd: Make sure we do not overuse higher values for ECMP count
Donatas Abraitis [Wed, 17 May 2023 19:17:02 +0000 (22:17 +0300)]
ripngd: Make sure we do not overuse higher values for ECMP count

Use a minimum value of a CLI version and a value of Zebra capabilities.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
11 months agodoc: Add RIPng allow-ecmp command
Donatas Abraitis [Tue, 16 May 2023 07:30:20 +0000 (10:30 +0300)]
doc: Add RIPng allow-ecmp command

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
11 months agotests: Check if `allow-ecmp` command works for RIPng
Donatas Abraitis [Tue, 16 May 2023 07:28:35 +0000 (10:28 +0300)]
tests: Check if `allow-ecmp` command works for RIPng

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
11 months agoripng: Implement `allow-ecmp X` command
Donatas Abraitis [Tue, 16 May 2023 07:34:22 +0000 (10:34 +0300)]
ripng: Implement `allow-ecmp X` command

A port of ripd implementation for ripngd implemented by 75fce4645a7cf0a93ef0109d69365f51b84bc47c.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
11 months agoripd: Use argv_find to avoid buffer overflow when parsing allow-ecmp args
Donatas Abraitis [Tue, 23 May 2023 06:20:27 +0000 (09:20 +0300)]
ripd: Use argv_find to avoid buffer overflow when parsing allow-ecmp args

==13211==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6020000af158 at pc 0x55d48c5f1e38 bp 0x7fffd8a713d0 sp 0x7fffd8a713c0
READ of size 8 at 0x6020000af158 thread T0
    #0 0x55d48c5f1e37 in rip_allow_ecmp ripd/rip_cli.c:98
    #1 0x7f2ec125aa0f in cmd_execute_command_real lib/command.c:990
    #2 0x7f2ec125ae90 in cmd_execute_command lib/command.c:1049
    #3 0x7f2ec125b406 in cmd_execute lib/command.c:1217
    #4 0x7f2ec137ca36 in vty_command lib/vty.c:551
    #5 0x7f2ec137ce52 in vty_execute lib/vty.c:1314
    #6 0x7f2ec1384f9e in vtysh_read lib/vty.c:2223
    #7 0x7f2ec137041b in event_call lib/event.c:1995
    #8 0x7f2ec12b54bf in frr_run lib/libfrr.c:1204
    #9 0x55d48c5f0f32 in main ripd/rip_main.c:171
    #10 0x7f2ec0ad9c86 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21c86)
    #11 0x55d48c5f1349 in _start (/usr/lib/frr/ripd+0x3b349)

0x6020000af158 is located 0 bytes to the right of 8-byte region [0x6020000af150,0x6020000af158)
allocated by thread T0 here:
    #0 0x7f2ec18ccb40 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdeb40)
    #1 0x7f2ec12d2e41 in qmalloc lib/memory.c:100
    #2 0x7f2ec125a815 in cmd_execute_command_real lib/command.c:955
    #3 0x7f2ec125ae90 in cmd_execute_command lib/command.c:1049
    #4 0x7f2ec125b406 in cmd_execute lib/command.c:1217
    #5 0x7f2ec137ca36 in vty_command lib/vty.c:551
    #6 0x7f2ec137ce52 in vty_execute lib/vty.c:1314
    #7 0x7f2ec1384f9e in vtysh_read lib/vty.c:2223
    #8 0x7f2ec137041b in event_call lib/event.c:1995
    #9 0x7f2ec12b54bf in frr_run lib/libfrr.c:1204
    #10 0x55d48c5f0f32 in main ripd/rip_main.c:171
    #11 0x7f2ec0ad9c86 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21c86)

SUMMARY: AddressSanitizer: heap-buffer-overflow ripd/rip_cli.c:98 in rip_allow_ecmp
Shadow bytes around the buggy address:
  0x0c048000ddd0: fa fa fd fa fa fa fd fa fa fa fd fd fa fa fd fa
  0x0c048000dde0: fa fa fd fa fa fa fd fd fa fa fd fa fa fa fd fd
  0x0c048000ddf0: fa fa fd fa fa fa fd fd fa fa fd fd fa fa fd fd
  0x0c048000de00: fa fa fd fa fa fa fd fd fa fa 00 03 fa fa fd fa
  0x0c048000de10: fa fa fd fa fa fa 00 00 fa fa fd fa fa fa 00 03
=>0x0c048000de20: fa fa 00 03 fa fa fd fa fa fa 00[fa]fa fa fa fa
  0x0c048000de30: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c048000de40: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c048000de50: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c048000de60: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c048000de70: 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
==13211==ABORTING

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
11 months agobgpd: Using no pretty json output for l2vpn-Evpn routes
Rajasekar Raja [Mon, 22 May 2023 21:14:30 +0000 (14:14 -0700)]
bgpd: Using no pretty json output for l2vpn-Evpn routes

The output of show bgp all json is inconsistent across Address-families
i.e. ipv4/ipv6 is a no pretty format while l2vpn-evpn is in a pretty
format. For huge scale (lots of routes with lots of paths), it is better
to use no_pretty format.

Before fix:
torm-11# sh bgp all json
{
"ipv4Unicast":{
 "vrfId": 0,
 "vrfName": "default",
 "tableVersion": 1,
 "routerId": "27.0.0.15",
 "defaultLocPrf": 100,
 "localAS": 65000,
 "routes": { } }
,
"l2VpnEvpn":{
"routes":{
  "27.0.0.15:2":{
    "rd":"27.0.0.15:2",
    "[1]:[0]:[03:44:38:39:ff:ff:01:00:00:01]:[128]:[::]:[0]":{
      "prefix":"[1]:[0]:[03:44:38:39:ff:ff:01:00:00:01]:[128]:[::]:[0]",
      "prefixLen":352,
      "paths":[
<SNIP>.............

After fix:
torm-11# sh bgp all json
{
"ipv4Unicast":{
 "vrfId": 0,
 "vrfName": "default",
 "tableVersion": 1,
 "routerId": "27.0.0.15",
 "defaultLocPrf": 100,
 "localAS": 65000,
 "routes": { } }
,
"l2VpnEvpn":{
"routes":{"27.0.0.15:2":{"rd":"27.0.0.15:2","[1]:[0]:[03:44:38:39:ff:ff:01:00:00:01]:[128]:[::]:[0]":{"prefix":"[1]:[0]:[03:44:38:39:ff:ff:01:00:00:01]:[128]:[::]:[0]","prefixLen":352,"paths":[[{"valid":true,"bestpath":true,"selectionReason":"First path received","pathFrom":"external","routeType":1,"weight":32768,"peerId":"(unspec)","path":"","origin":"IGP","extendedCommunity"
<SNIP>.............

Issue: 3472865

Ticket:#3472865

Signed-off-by: Rajasekar Raja <rajasekarr@nvidia.com>
11 months agobgpd: Fix the json output of show bgp all json to be in a valid format
Rajasekar Raja [Mon, 22 May 2023 20:08:34 +0000 (13:08 -0700)]
bgpd: Fix the json output of show bgp all json to be in a valid format

In the json output of show bgp all json, the l2VpnEvpn afi-safi is
missing the 'routes' key making the json output format invalid.

Before Fix:
torm-11# sh bgp all json
{
<SNIP>....................
"l2VpnEvpn":{
{
  "27.0.0.15:2":{
    "rd":"27.0.0.15:2",
    "[4]:[03:44:38:39:ff:ff:01:00:00:01]:[32]:[27.0.0.15]":{
      "prefix":"[4]:[03:44:38:39:ff:ff:01:00:00:01]:[32]:[27.0.0.15]",
      "prefixLen":352,
      "paths":[
<SNIP>....................

After Fix:
torm-11# sh bgp all json
{
<SNIP>....................
"l2VpnEvpn":{
"routes":{
  "27.0.0.15:2":{
    "rd":"27.0.0.15:2",
    "[1]:[0]:[03:44:38:39:ff:ff:01:00:00:01]:[128]:[::]:[0]":{
      "prefix":"[1]:[0]:[03:44:38:39:ff:ff:01:00:00:01]:[128]:[::]:[0]",
      "prefixLen":352,
      "paths":[

Issue: 3472865
Ticket:#3472865

Signed-off-by: Rajasekar Raja <rajasekarr@nvidia.com>
11 months agoospfd: OSPF P2MP Delayed Reflooding configuration
Acee [Thu, 18 May 2023 14:43:52 +0000 (10:43 -0400)]
ospfd: OSPF P2MP Delayed Reflooding configuration

Currently, delayed reflooding on P2MP interfaces for LSAs received
from neighbors on the interface is unconditionally (see commit
c706f0e32ba8aa8780a0618b6fbba364c383ae05). In some cases, this
change wasn't desirable and this feature makes delayed reflooding
configurable for P2MP interfaces via the CLI command:
"ip ospf network point-to-multipoint delay-reflood" in interface
submode.

Signed-off-by: Acee <aceelindem@gmail.com>
11 months agolib: va_end must be called
Donald Sharp [Sun, 21 May 2023 23:59:41 +0000 (19:59 -0400)]
lib: va_end must be called

According to the man page a va_start must be followed by
a va_end before the end of the function.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
11 months agozebra: Fix paths that have already de-refed ctx
Donald Sharp [Sun, 21 May 2023 23:55:20 +0000 (19:55 -0400)]
zebra: Fix paths that have already de-refed ctx

There is no path in some functions where the ctx
has not already been de-refed.  As such no need
to test for it's existence.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
11 months agotests: Do not Cause test scripts to stop running when config load fails
Donald Sharp [Sun, 21 May 2023 23:39:39 +0000 (19:39 -0400)]
tests: Do not Cause test scripts to stop running when config load fails

When running the pytests in parallel, calling pytest.exit() causes
the entire test run to be aborted.  Which.... Is frankly not cool.
Let's notice the failure and move on to the next tests.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
11 months agotests: Add `exit` stanzas to pre-generated config
Donald Sharp [Mon, 22 May 2023 12:25:38 +0000 (08:25 -0400)]
tests: Add `exit` stanzas to pre-generated config

A bunch of tests rely on pre-generated config from
json files.  These tests were not putting `exit` stanzas
and a bunch of the tests as a result are silently failing
to configure properly at all, as commands were being sent
to the wrong daemons.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
11 months agotests: Slow bgp_default_originate test down slightly
Donald Sharp [Fri, 19 May 2023 20:03:57 +0000 (16:03 -0400)]
tests: Slow bgp_default_originate test down slightly

The test is performing these steps:

a) get timestamp of route installed in zebra
b) <make changes>
c) get new timestamp of route installed in zebra

If < 1 second happens between A and C the test
assumes that something went wrong, as that it is
testing to see if the route was reinstalled <yes I know>.

Just sleep 1 second after a) happens so that if a reinstall
happens we can easily see it, and we also know that if a
reinstall doesn't happen then the new timestamp will
always be 1 second or greater.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
11 months agoMerge pull request #13560 from donaldsharp/fpm_netlink_aroni
David Lamparter [Mon, 22 May 2023 13:46:29 +0000 (15:46 +0200)]
Merge pull request #13560 from donaldsharp/fpm_netlink_aroni

11 months agoMerge pull request #13506 from anlancs/fix/bfdd-vrf-check
Igor Ryzhov [Mon, 22 May 2023 11:24:34 +0000 (14:24 +0300)]
Merge pull request #13506 from anlancs/fix/bfdd-vrf-check

bfdd: Fix malformed session with vrf

11 months agoMerge pull request #13564 from chiragshah6/fdev1
Donatas Abraitis [Mon, 22 May 2023 06:45:54 +0000 (09:45 +0300)]
Merge pull request #13564 from chiragshah6/fdev1

 bgpd: aggregate route best path select and other fixes

11 months agoMerge pull request #13563 from donaldsharp/remove_true
Donatas Abraitis [Mon, 22 May 2023 06:38:53 +0000 (09:38 +0300)]
Merge pull request #13563 from donaldsharp/remove_true

tests: pytest does not like return True from a test

11 months agoMerge pull request #13566 from LabNConsulting/chopps/analyze-improvement
Donald Sharp [Mon, 22 May 2023 00:22:22 +0000 (20:22 -0400)]
Merge pull request #13566 from LabNConsulting/chopps/analyze-improvement

tests: have ananlyze.py `chown -R $SUDO_USER` when copying results

11 months agoMerge pull request #13568 from opensourcerouting/fix/timers_bgp_topotests
Donald Sharp [Mon, 22 May 2023 00:21:51 +0000 (20:21 -0400)]
Merge pull request #13568 from opensourcerouting/fix/timers_bgp_topotests

tests: Fix timers command for bgp_disable_addpath_rx test

11 months agoMerge pull request #13567 from opensourcerouting/fix/initialize_buf_char_for_path_inf...
Donald Sharp [Mon, 22 May 2023 00:21:21 +0000 (20:21 -0400)]
Merge pull request #13567 from opensourcerouting/fix/initialize_buf_char_for_path_info_cmp

bgpd: Initialize pfx_buf to zeros before using in bgp_path_info_cmp()

11 months agoMerge pull request #13565 from LabNConsulting/chopps/munet-update
Igor Ryzhov [Sat, 20 May 2023 11:11:05 +0000 (14:11 +0300)]
Merge pull request #13565 from LabNConsulting/chopps/munet-update

11 months agotests: Fix timers command for bgp_disable_addpath_rx test
Donatas Abraitis [Sat, 20 May 2023 07:06:49 +0000 (10:06 +0300)]
tests: Fix timers command for bgp_disable_addpath_rx test

Was incorrectly setting BGP timers.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
11 months agobgpd: Initialize pfx_buf to zeros before using in bgp_path_info_cmp()
Donatas Abraitis [Sat, 20 May 2023 07:03:10 +0000 (10:03 +0300)]
bgpd: Initialize pfx_buf to zeros before using in bgp_path_info_cmp()

This can lead into some garbage outputs, that can't be decoded in utf-8 or so.

This was catched when testing 76b246aa1f779e17ce6845c6ab0c292497b0008f.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
11 months agotests: munet to version 0.13.4
Christian Hopps [Sat, 20 May 2023 03:16:39 +0000 (23:16 -0400)]
tests: munet to version 0.13.4

Signed-off-by: Christian Hopps <chopps@labn.net>
11 months agotests: have ananlyze.py `chown -R $SUDO_USER` when copying results
Christian Hopps [Sat, 20 May 2023 03:14:18 +0000 (23:14 -0400)]
tests: have ananlyze.py `chown -R $SUDO_USER` when copying results

Signed-off-by: Christian Hopps <chopps@labn.net>
11 months agobfdd: Use shorter memory names so that they fit in vty output
Donald Sharp [Thu, 18 May 2023 15:15:58 +0000 (11:15 -0400)]
bfdd: Use shorter memory names so that they fit in vty output

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
11 months agolib, mgmtd: Use short memory names so they fit within vty output
Donald Sharp [Thu, 18 May 2023 15:15:38 +0000 (11:15 -0400)]
lib, mgmtd: Use short memory names so they fit within vty output

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
11 months agozebra: Make memory description string smaller to fit in vty space
Donald Sharp [Thu, 18 May 2023 15:02:40 +0000 (11:02 -0400)]
zebra: Make memory description string smaller to fit in vty space

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
11 months agolib: Fix overlapping memory type
Donald Sharp [Thu, 18 May 2023 15:01:13 +0000 (11:01 -0400)]
lib: Fix overlapping memory type

Make a unique memory type so we are not overlapping another one.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
11 months agoMerge pull request #13559 from opensourcerouting/fix/ignore_decoding_chars
Donald Sharp [Sat, 20 May 2023 01:30:34 +0000 (21:30 -0400)]
Merge pull request #13559 from opensourcerouting/fix/ignore_decoding_chars

tests: Ignore utf-8 decoding errors

11 months agobgpd: fix memory leak in aggregate path info
Chirag Shah [Fri, 19 May 2023 18:41:38 +0000 (11:41 -0700)]
bgpd: fix memory leak in aggregate path info

Fix memory leak in aggregate route path info
comparison api.

Signed-off-by: Chirag shah <chirag@nvidia.com>
11 months agobgpd: fix aggregate route display
Chirag Shah [Fri, 19 May 2023 05:43:08 +0000 (22:43 -0700)]
bgpd: fix aggregate route display

Based on RFC-4760, if NEXT_HOP attribute is not
suppose to be set if MP_REACH_NLRI NLRI is used.
for IPv4 aggregate route only NEXT_HOP attribute
with ipv4 prefixlen needs to be set.

Testing Done:

Before fix:
----------
aggregate route:
*> 184.123.0.0/16   ::(TORC11)               0         32768 i

After fix:
---------
aggregate route:
*> 184.123.0.0/16   0.0.0.0(TORC11)          0         32768 i
* i                 peerlink-3               0    100      0 i
*                   uplink1                                0 4435 5546 i
   184.123.1.0/24   0.0.0.0(TORC11)          0         32768 i
s> 184.123.8.0/22   0.0.0.0(TORC11)          0         32768 i

Signed-off-by: Chirag Shah <chirag@nvidia.com>
11 months agobgpd: fix aggregate route best path select
Chirag Shah [Fri, 19 May 2023 04:49:03 +0000 (21:49 -0700)]
bgpd: fix aggregate route best path select

In ebgp+ ibgp deployment aggregate summary-only route
selected path should always be locally originated
summary route.
When aggregate route summary-only config is removed
The selected path is iBGP peer as its lower cost
Upon reconfiguring aggregate route summary-only,
the locally originated is not selected due to
always choosing first path attribute and bailing
out as no change in route update.

Ticket:#3467890
Issue:3467890
Testing Done:

Config:
------
TORC11(config-router)#router bgp
TORC11(config-router)# address-family ipv4 unicast
TORC11(config-router-af)# aggregate-address 184.123.0.0/16
        summary-only
TORC11(config-router-af)# no aggregate-address 184.123.0.0/16
        summary-only
TORC11(config-router-af)# aggregate-address 184.123.0.0/16
        summary-only

Before fix:
-----------
*> 184.123.0.0/16   ::(TORC11)               0         32768 i
*                   uplink1                                0 4435 5546 i
*                   uplink2                                0 4435 5546 i
* i                 peerlink-3               0    100      0 i

After fix:
----------
*> 184.123.0.0/16   ::(TORC11)               0         32768 i
* i                 peerlink-3               0    100      0 i
*                   uplink2                                0 4435 5546 i
*                   uplink1                                0 4435 5546 i

Signed-off-by: Chirag Shah <chirag@nvidia.com>
11 months agoMerge pull request #13562 from idryzhov/fix-doc-libyang-pluginsdir
Mark Stapp [Fri, 19 May 2023 18:58:33 +0000 (14:58 -0400)]
Merge pull request #13562 from idryzhov/fix-doc-libyang-pluginsdir

doc: remove non-existent configure option

11 months agotests: pytest does not like return True from a test
Donald Sharp [Fri, 19 May 2023 16:51:09 +0000 (12:51 -0400)]
tests: pytest does not like return True from a test

From running the test:
bgp_remove_private_as/test_bgp_remove_private_as.py::test_bgp_remove_private_as
  /home/sharpd/.local/lib/python3.10/site-packages/_pytest/python.py:198: PytestReturnNotNoneWarning: Expected None, but bgp_remove_private_as/test_bgp_remove_private_as.py::test_bgp_remove_private_as returned True, which will be an error in a future version of pytest.  Did you mean to use `assert` instead of `return`?
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
11 months agodoc: remove non-existent configure option
Igor Ryzhov [Fri, 19 May 2023 16:35:19 +0000 (19:35 +0300)]
doc: remove non-existent configure option

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
11 months agozebra: On shutdown stop hook calls for fpm rmac updates
Donald Sharp [Thu, 18 May 2023 20:03:01 +0000 (16:03 -0400)]
zebra: On shutdown stop hook calls for fpm rmac updates

When shutting down zebra, the hook for the rmac update was
not being unregistered.  As such it would be possible
to get into a condition where more rmacs are being
added to the queue for handling in the future after we
are told to shutdown.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
11 months agozebra: Properly handle zfpm_g->t_conn_down in zebra_fpm.c
Donald Sharp [Thu, 18 May 2023 19:59:43 +0000 (15:59 -0400)]
zebra: Properly handle zfpm_g->t_conn_down in zebra_fpm.c

The t_conn_down pointer was being set to NULL when it already
was.  The t_conn_down pointer was being dropped( and leaving
a thread possibly running in the background ) which could
cause problems on shutdown.  And finally when shutting down
the t_conn_down event was not being stopped at all.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
11 months agozebra: Do not allow old FPM to access freed memory after shutdown
Donald Sharp [Fri, 19 May 2023 13:54:05 +0000 (09:54 -0400)]
zebra: Do not allow old FPM to access freed memory after shutdown

On shutdown, the old FPM queues up dests to be sent to
the FPM listener.  This is done through the rib_shutdown
hook.  Which is called when the table that the routes are
stored in are being deleted.  This dest has pointers
to the rnode.  The rnode has pointers to the table it
is associated with as well as the table->info pointer for
the zebra data associated with this table.

The FPM after this attempts to tell this to it's listener
via events.  Unfortunately the zvrf, table_id and nl_pid
was being grabbed from memory that had been freed!  Since
all this can be grabbed from memory that has not been freed
on shutdown let's switch over to using that instead of freed
memory for gathering data.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
11 months agoMerge pull request #13549 from LabNConsulting/chopps/cclsopt
Donatas Abraitis [Fri, 19 May 2023 13:25:23 +0000 (16:25 +0300)]
Merge pull request #13549 from LabNConsulting/chopps/cclsopt

doc: configure: add configure option to generate .ccls file

11 months agoMerge pull request #13553 from LabNConsulting/chopps/fixwarn+msg
Donald Sharp [Fri, 19 May 2023 13:04:09 +0000 (09:04 -0400)]
Merge pull request #13553 from LabNConsulting/chopps/fixwarn+msg

mgmtd: fix uninit warning and cleanup history error messages

11 months agotests: Ignore utf-8 decoding errors
Donatas Abraitis [Fri, 19 May 2023 11:57:56 +0000 (14:57 +0300)]
tests: Ignore utf-8 decoding errors

This is happening sometimes for stuff like `r1 shi cat ...`.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
11 months agoripd: Make sure we do not overuse higher values for ECMP count
Donatas Abraitis [Wed, 17 May 2023 19:47:56 +0000 (22:47 +0300)]
ripd: Make sure we do not overuse higher values for ECMP count

Use a minimum value of a CLI version and a value of Zebra capabilities.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
11 months agodoc: configure: add configure option to generate .ccls file
Christian Hopps [Thu, 18 May 2023 02:26:49 +0000 (22:26 -0400)]
doc: configure: add configure option to generate .ccls file

`ccls` needs information from FRR build configuration to work,
so allow creation of a custom ccls config during autoconf.

Paraphrasing the doc entry: ccls is a very powerful tool that allows
dev environments to provide sophisticated IDE functionality, e.g.,
semantically aware jumps and code refactoring...

Signed-off-by: Christian Hopps <chopps@labn.net>
11 months agomgmtd: fix uninit warning and cleanup history error messages
Christian Hopps [Thu, 18 May 2023 12:42:42 +0000 (08:42 -0400)]
mgmtd: fix uninit warning and cleanup history error messages

Signed-off-by: Christian Hopps <chopps@labn.net>
11 months agoMerge pull request #13544 from cscarpitta/bugfix/fix-build-error
Donald Sharp [Thu, 18 May 2023 11:58:25 +0000 (07:58 -0400)]
Merge pull request #13544 from cscarpitta/bugfix/fix-build-error

zebra: Fix build error when FRR is built with the `--disable-bfdd` option

11 months agoMerge pull request #13369 from samanvithab/bgpd_fix
Donatas Abraitis [Thu, 18 May 2023 07:24:41 +0000 (10:24 +0300)]
Merge pull request #13369 from samanvithab/bgpd_fix

lib : fix duplicate prefix list delete

11 months agoMerge pull request #13541 from LabNConsulting/chopps/fixtestdefconf
Donatas Abraitis [Thu, 18 May 2023 06:44:38 +0000 (09:44 +0300)]
Merge pull request #13541 from LabNConsulting/chopps/fixtestdefconf

tests: fix implicit config file and recently added logic error

11 months agotests: fix implicit config file and recently added logic error
Christian Hopps [Wed, 17 May 2023 11:10:13 +0000 (07:10 -0400)]
tests: fix implicit config file and recently added logic error

- Restore default of looking for a daemon config underneath the router directory
if no config file was specified.
- Recent change for adding unified config support had a logic bug, fix
- Update the one test that conflicted with this default
- comment out asyncio option causing warnings if asyncio wasn't installed.

Signed-off-by: Christian Hopps <chopps@labn.net>
11 months agoMerge pull request #13546 from LabNConsulting/chopps/pylint-fix
Donatas Abraitis [Wed, 17 May 2023 19:56:03 +0000 (22:56 +0300)]
Merge pull request #13546 from LabNConsulting/chopps/pylint-fix

tests: fix pylint error, and update style in lib/*.py

11 months agoMerge pull request #13547 from LabNConsulting/chopps/topo-tshark-doc
Donatas Abraitis [Wed, 17 May 2023 19:55:28 +0000 (22:55 +0300)]
Merge pull request #13547 from LabNConsulting/chopps/topo-tshark-doc

doc: document optionally required packages

11 months agodoc: document optionally required packages
Christian Hopps [Wed, 17 May 2023 17:51:30 +0000 (13:51 -0400)]
doc: document optionally required packages

- tshark and valgrind are required but only if you enable those
  features during test runs.

Signed-off-by: Christian Hopps <chopps@labn.net>
11 months agotests: fix pylint error, and update style in lib/*.py
Christian Hopps [Wed, 17 May 2023 17:40:39 +0000 (13:40 -0400)]
tests: fix pylint error, and update style in lib/*.py

Signed-off-by: Christian Hopps <chopps@labn.net>
11 months agoMerge pull request #13543 from donaldsharp/clear_up_clear_command
Christian Hopps [Wed, 17 May 2023 17:41:43 +0000 (13:41 -0400)]
Merge pull request #13543 from donaldsharp/clear_up_clear_command

Clear up clear command

11 months agozebra: Fix build error when `--disable-bfdd`
Carmine Scarpitta [Wed, 17 May 2023 16:47:23 +0000 (18:47 +0200)]
zebra: Fix build error when `--disable-bfdd`

When FRR is built with the option `--disable-bfdd`, the build process
fails with the following error:

```
zebra/zebra_ptm.c: In function ‘zebra_ptm_init’:
zebra/zebra_ptm.c:119:35: error: ‘FRR_PTM_NAME’ undeclared (first use in this function)
  119 |  snprintf(buf, sizeof(buf), "%s", FRR_PTM_NAME);
      |                                   ^~~~~~~~~~~~
zebra/zebra_ptm.c:119:35: note: each undeclared identifier is reported only once for each function it appears in
make[1]: *** [Makefile:10520: zebra/zebra_ptm.o] Error 1
```

The reason is that `FRR_PTM_NAME` is defined in `version.h` which is not
imported.

This commit adds the missing import.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
11 months agotests: Change order of config files
Donald Sharp [Wed, 17 May 2023 11:56:27 +0000 (07:56 -0400)]
tests: Change order of config files

Our CI test system is configuring interfaces like this:

int A
  <ospfX config>

router ospfX
  router-id Z.Y.M.Q

On sufficiently loaded systems, the router-id might not be respected because
the interface A neighbor might have come up by the time the router-id
command is read in.  This is a problem for our topotests in that
the tests expect neighbors to be formed with certain router-id,
but the FRR code has stored the new router-id but not accepted
it's use since a neighbor relationship has formed.

Modify the ci test system code to put the 'router ospfX' commands
before the interface commands, thus forcing the router-id to be
read in *before* any possibility that the neighbor can have come
up.

Also, I've filed issue #13452 to address the ordering of commands
with regards to router-id in our ospf protocols.  Once that is
done this should be backed out, to return to a more natural ordering
of commands.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
11 months agotests: Clean up commands that do nothing
Donald Sharp [Tue, 16 May 2023 20:46:35 +0000 (16:46 -0400)]
tests: Clean up commands that do nothing

Recently clear commands were added to the tests that do nothing
because they are using the wrong way to input the command.
Since these do nothing remove them:

2023-05-16 16:39:07,072.072 DEBUG: topolog.r0: Router(r0):  cmd_status("['/bin/bash', '-c', 'clear ip ospf neighbor']", pre_cmd: "['/usr/bin/nsenter', '--mount=/proc/4157893/ns/mnt', '--net=/proc/4157893/ns/net', '--uts=/proc/4157893/ns/uts', '-F', '--wd=/tmp/topotests/ospf_basic_functionality.test_ospf_asbr_summary_topo1/r0']" use_pty: False kwargs: {'stdout': -1, 'stderr': -2, 'encoding': 'utf-8', 'shell': False, 'stdin': None, 'env': {'LANG': 'en_US.UTF-8', 'LS_COLO)
2023-05-16 16:39:07,120.120 WARNING: topolog.r0: Router(r0): proc failed: rc 1 pid 4161077
        args: /usr/bin/nsenter --mount=/proc/4157893/ns/mnt --net=/proc/4157893/ns/net --uts=/proc/4157893/ns/uts -F --wd=/tmp/topotests/ospf_basic_functionality.test_ospf_asbr_summary_topo1/r0 /bin/bash -c clear ip ospf neighbor
        stdout: Usage: clear [options]

Options:
  -T TERM     use this instead of $TERM
  -V          print curses-version
  -x          do not try to clear scrollback
        stderr: *empty*

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
11 months agoMerge pull request #13529 from pguibert6WIND/bgp_vpnv6_per_nexthop_fix
Donald Sharp [Wed, 17 May 2023 11:56:07 +0000 (07:56 -0400)]
Merge pull request #13529 from pguibert6WIND/bgp_vpnv6_per_nexthop_fix

topotests: fix bgp_vpnv6_per_nexthop, syncing with bgp rib

11 months agoMerge pull request #13526 from opensourcerouting/fix/show_table_version_per_subgrp
Russ White [Tue, 16 May 2023 14:14:04 +0000 (10:14 -0400)]
Merge pull request #13526 from opensourcerouting/fix/show_table_version_per_subgrp

bgpd: Show the real table version for a decent peer subgroup

11 months agoMerge pull request #12949 from opensourcerouting/ospf-unplanned-gr
Russ White [Tue, 16 May 2023 12:37:19 +0000 (08:37 -0400)]
Merge pull request #12949 from opensourcerouting/ospf-unplanned-gr

OSPF GR for unplanned outages

11 months agotopotests: bgp_vpnv6_per_nexthop_label, use only global ipv6 addresses
Philippe Guibert [Tue, 16 May 2023 08:47:35 +0000 (10:47 +0200)]
topotests: bgp_vpnv6_per_nexthop_label, use only global ipv6 addresses

The test is modified so as to use global ipv6 addresses for nexthop
resolution.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
11 months agoMerge pull request #12050 from LabNConsulting/working/lb/topotest-220909
David Lamparter [Tue, 16 May 2023 06:31:06 +0000 (08:31 +0200)]
Merge pull request #12050 from LabNConsulting/working/lb/topotest-220909

11 months agotests: Drop `tableVersion` from EVPN PIM test case
Donatas Abraitis [Tue, 16 May 2023 06:06:06 +0000 (09:06 +0300)]
tests: Drop `tableVersion` from EVPN PIM test case

tableVersion always incorrectly showed 0 instead of a decent value. Let's get rid
of this from the partial output at all.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
11 months agobgpd: Show the real table version for a decent peer subgroup
Donatas Abraitis [Mon, 15 May 2023 11:43:32 +0000 (14:43 +0300)]
bgpd: Show the real table version for a decent peer subgroup

Without the patch:

```
Neighbor        V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt Desc
192.168.1.2     4      65002         4         5        2    0    0 00:00:45            1        1 N/A
192.168.1.3     4      65003         5         5        2    0    0 00:00:45            0        2 N/A
192.168.1.4     4      65004         5         5        2    0    0 00:00:45            0        2 N/A
```

With the patch:

```
Neighbor        V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt Desc
192.168.1.2     4      65002         6         6        2    0    0 00:01:05            0        1 N/A
192.168.1.3     4      65003         7         7        3    0    0 00:01:05            0        1 N/A
192.168.1.4     4      65004         7         7        3    0    0 00:01:05            0        1 N/A
```

JSON output is also fixed:

```
munet> r1 shi vtysh -c 'sh ip bgp sum json' | grep version -i
  "tableVersion":3,
      "version":4,
      "tableVersion":2,
      "version":4,
      "tableVersion":3,
      "version":4,
      "tableVersion":3,

munet>
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
11 months agoMerge pull request #13528 from opensourcerouting/fix/revert_clang_formatting
Mark Stapp [Mon, 15 May 2023 13:27:10 +0000 (09:27 -0400)]
Merge pull request #13528 from opensourcerouting/fix/revert_clang_formatting

Revert "tools: config clang-format to allow aligned macros"

11 months agoRevert "tools: config clang-format to allow aligned macros"
Donatas Abraitis [Mon, 15 May 2023 12:32:43 +0000 (15:32 +0300)]
Revert "tools: config clang-format to allow aligned macros"

This reverts commit 25314d5d878bbcc5ff63ebe76db9b2143b3e04ab.

This causes errors on clang-formatter for versions <= 10.

```
% git clang-format bgpd
YAML:14:25: error: invalid boolean
AlignConsecutiveMacros: AcrossComments
                        ^~~~~~~~~~~~~~
error: `clang-format -lines=11624:11624 -lines=11802:11802 bgpd/bgp_vty.c` failed
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
11 months agoMerge pull request #13513 from subsecond/patch-4
Donatas Abraitis [Sun, 14 May 2023 19:03:06 +0000 (22:03 +0300)]
Merge pull request #13513 from subsecond/patch-4

Fix typo in multipath route docs

11 months agoMerge pull request #13439 from anlancs/fix/pimd-use-macro-pimreg
mobash-rasool [Sun, 14 May 2023 17:15:53 +0000 (22:45 +0530)]
Merge pull request #13439 from anlancs/fix/pimd-use-macro-pimreg

pimd: Use macro for pimreg interface

11 months agoMerge pull request #13522 from LabNConsulting/chopps/fix-bgp-test
Donald Sharp [Sun, 14 May 2023 01:43:29 +0000 (21:43 -0400)]
Merge pull request #13522 from LabNConsulting/chopps/fix-bgp-test

tests: improve bgp test determinism

11 months agotests: improve bgp test determinism
Christian Hopps [Sat, 13 May 2023 00:32:54 +0000 (20:32 -0400)]
tests: improve bgp test determinism

don't grep the tail of a log file after running a previous test, there could be
(and have been) other items added to the log in between.

add before and after count of shutdown messages to very the actual message shows
up as the test intended, and keep the search for the shutdown message.

Signed-off-by: Christian Hopps <chopps@labn.net>
11 months agoMerge pull request #13444 from donaldsharp/fix_dplane_provider_counter
Mark Stapp [Fri, 12 May 2023 18:54:13 +0000 (14:54 -0400)]
Merge pull request #13444 from donaldsharp/fix_dplane_provider_counter

zebra: Fix dp_out_queued counter to actually reflect real life

11 months agoMerge pull request #13463 from pguibert6WIND/mpls_alloc_per_nh_2
Donatas Abraitis [Fri, 12 May 2023 17:56:01 +0000 (20:56 +0300)]
Merge pull request #13463 from pguibert6WIND/mpls_alloc_per_nh_2

Mpls allocatio mode per nexthop

11 months agoMerge pull request #13518 from mjstapp/clang_align_macros
Donald Sharp [Fri, 12 May 2023 16:34:59 +0000 (12:34 -0400)]
Merge pull request #13518 from mjstapp/clang_align_macros

tools: config clang-format to allow aligned macros

11 months agozebra: Fix dp_out_queued counter to actually reflect real life
Donald Sharp [Fri, 5 May 2023 14:37:11 +0000 (10:37 -0400)]
zebra: Fix dp_out_queued counter to actually reflect real life

The prov->dp_out_queued counter was never being decremented
when a ctx was pulled off of the list.  Let's change it to
accurately reflect real life.

Broken:
janelle.pinkbelly.org# show zebra dplane providers detailed
Zebra dataplane providers:
Kernel (1): in: 330872, q: 0, q_max: 100, out: 330872, q: 330872, q_max: 330872
janelle.pinkbelly.org#

Fixed:
sharpd@janelle:/tmp/topotests$ vtysh -c "show zebra dplane providers detailed"
Zebra dataplane providers:
Kernel (1): in: 221495, q: 0, q_max: 100, out: 221495, q: 0, q_max: 100
sharpd@janelle:/tmp/topotests$

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
11 months agoMerge pull request #13517 from Keelan10/ospf_ti_lfa-memory-leak
Donald Sharp [Fri, 12 May 2023 14:06:45 +0000 (10:06 -0400)]
Merge pull request #13517 from Keelan10/ospf_ti_lfa-memory-leak

ospfd: Fix  ospf_ti_lfa memory leak

11 months agodoc: Fix typo in multipath route docs
Manuel Schweizer [Thu, 11 May 2023 19:53:50 +0000 (21:53 +0200)]
doc: Fix typo in multipath route docs

Signed-off-by: Manuel Schweizer <manuel.schweizer@cloudscale.ch>
11 months agotools: config clang-format to allow aligned macros
Mark Stapp [Fri, 12 May 2023 13:16:34 +0000 (09:16 -0400)]
tools: config clang-format to allow aligned macros

Add an AlignConsecutiveMacros config for clang-format.

Signed-off-by: Mark Stapp <mjs@labn.net>
11 months agoospf_ti_lfa: Free p_space memory allocation
Keelan10 [Fri, 12 May 2023 11:05:46 +0000 (15:05 +0400)]
ospf_ti_lfa: Free p_space memory allocation

Free p_space

Signed-off-by: Keelan Cannoo <keelan.cannoo@icloud.com>
11 months agoMerge pull request #13430 from opensourcerouting/feature/rip_allow-ecmp_limit
Donald Sharp [Fri, 12 May 2023 00:31:46 +0000 (20:31 -0400)]
Merge pull request #13430 from opensourcerouting/feature/rip_allow-ecmp_limit

ripd: Implement allow-ecmp X command

11 months agoMerge pull request #13490 from Jafaral/fix-ospf-asbr-test
Donald Sharp [Fri, 12 May 2023 00:31:21 +0000 (20:31 -0400)]
Merge pull request #13490 from Jafaral/fix-ospf-asbr-test

tests: improve log messages, clear neighbors to avoid bad state

11 months agotests: reset neighbor state machine to avoid bad/stale state
Jafar Al-Gharaibeh [Thu, 11 May 2023 05:12:29 +0000 (00:12 -0500)]
tests: reset neighbor state machine to avoid bad/stale state

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
11 months agoMerge pull request #13507 from opensourcerouting/feature/bgp_route-map_match_source...
Donald Sharp [Thu, 11 May 2023 13:38:57 +0000 (09:38 -0400)]
Merge pull request #13507 from opensourcerouting/feature/bgp_route-map_match_source-protocol

bgpd: Implement match source-protocol for route-maps