Commit Graph

31951 Commits

Author SHA1 Message Date
Donald Sharp
0eaa6523f6 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>
2023-05-19 10:02:19 -04:00
Donatas Abraitis
32b20e1ad6
Merge pull request #13549 from LabNConsulting/chopps/cclsopt
doc: configure: add configure option to generate .ccls file
2023-05-19 16:25:23 +03:00
Donald Sharp
f8bcb70a39
Merge pull request #13553 from LabNConsulting/chopps/fixwarn+msg
mgmtd: fix uninit warning and cleanup history error messages
2023-05-19 09:04:09 -04:00
Christian Hopps
2596308a09 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>
2023-05-18 09:32:32 -04:00
Christian Hopps
0030b5825e mgmtd: fix uninit warning and cleanup history error messages
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-05-18 08:42:42 -04:00
Donald Sharp
72207cfe9a
Merge pull request #13544 from cscarpitta/bugfix/fix-build-error
zebra: Fix build error when FRR is built with the `--disable-bfdd` option
2023-05-18 07:58:25 -04:00
Donatas Abraitis
a8bc67a989
Merge pull request #13369 from samanvithab/bgpd_fix
lib : fix duplicate prefix list delete
2023-05-18 10:24:41 +03:00
Donatas Abraitis
c374605ecb
Merge pull request #13541 from LabNConsulting/chopps/fixtestdefconf
tests: fix implicit config file and recently added logic error
2023-05-18 09:44:38 +03:00
Christian Hopps
f3525b0b17 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>
2023-05-17 16:05:53 -04:00
Donatas Abraitis
d66a297fab
Merge pull request #13546 from LabNConsulting/chopps/pylint-fix
tests: fix pylint error, and update style in lib/*.py
2023-05-17 22:56:03 +03:00
Donatas Abraitis
967d7ceda1
Merge pull request #13547 from LabNConsulting/chopps/topo-tshark-doc
doc: document optionally required packages
2023-05-17 22:55:28 +03:00
Christian Hopps
9b18d3d6ac 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>
2023-05-17 13:52:41 -04:00
Christian Hopps
fea00bad20 tests: fix pylint error, and update style in lib/*.py
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-05-17 13:42:32 -04:00
Christian Hopps
b4cf9c4847
Merge pull request #13543 from donaldsharp/clear_up_clear_command
Clear up clear command
2023-05-17 13:41:43 -04:00
Carmine Scarpitta
eb68d4a04c 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>
2023-05-17 18:47:23 +02:00
Donald Sharp
244d5d0a16 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>
2023-05-17 09:20:46 -04:00
Donald Sharp
e396a4f0c6 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>
2023-05-17 09:20:46 -04:00
Donald Sharp
98f71533f6
Merge pull request #13529 from pguibert6WIND/bgp_vpnv6_per_nexthop_fix
topotests: fix bgp_vpnv6_per_nexthop, syncing with bgp rib
2023-05-17 07:56:07 -04:00
Russ White
18978d1280
Merge pull request #13526 from opensourcerouting/fix/show_table_version_per_subgrp
bgpd: Show the real table version for a decent peer subgroup
2023-05-16 10:14:04 -04:00
Russ White
425fc1f5b7
Merge pull request #12949 from opensourcerouting/ospf-unplanned-gr
OSPF GR for unplanned outages
2023-05-16 08:37:19 -04:00
Philippe Guibert
e82cd92b19 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>
2023-05-16 12:40:40 +02:00
David Lamparter
cf0eeb3dc1
Merge pull request #12050 from LabNConsulting/working/lb/topotest-220909 2023-05-16 08:31:06 +02:00
Donatas Abraitis
f913ee30ff 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>
2023-05-16 09:06:06 +03:00
Donatas Abraitis
bdf8b8dda9 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>
2023-05-15 21:46:41 +03:00
Mark Stapp
8fcc5b515d
Merge pull request #13528 from opensourcerouting/fix/revert_clang_formatting
Revert "tools: config clang-format to allow aligned macros"
2023-05-15 09:27:10 -04:00
Donatas Abraitis
105bc93af5 Revert "tools: config clang-format to allow aligned macros"
This reverts commit 25314d5d87.

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>
2023-05-15 15:32:48 +03:00
Donatas Abraitis
cef398924c
Merge pull request #13513 from subsecond/patch-4
Fix typo in multipath route docs
2023-05-14 22:03:06 +03:00
mobash-rasool
24f558e8a9
Merge pull request #13439 from anlancs/fix/pimd-use-macro-pimreg
pimd: Use macro for pimreg interface
2023-05-14 22:45:53 +05:30
Donald Sharp
2bbda57677
Merge pull request #13522 from LabNConsulting/chopps/fix-bgp-test
tests: improve bgp test determinism
2023-05-13 21:43:29 -04:00
Christian Hopps
44701495bb 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>
2023-05-12 20:36:50 -04:00
Mark Stapp
e8224402cd
Merge pull request #13444 from donaldsharp/fix_dplane_provider_counter
zebra: Fix dp_out_queued counter to actually reflect real life
2023-05-12 14:54:13 -04:00
Donatas Abraitis
edc886635d
Merge pull request #13463 from pguibert6WIND/mpls_alloc_per_nh_2
Mpls allocatio mode per nexthop
2023-05-12 20:56:01 +03:00
Donald Sharp
f683852ba1
Merge pull request #13518 from mjstapp/clang_align_macros
tools: config clang-format to allow aligned macros
2023-05-12 12:34:59 -04:00
Donald Sharp
995d810d08 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>
2023-05-12 11:34:56 -04:00
Donald Sharp
62b408a05f
Merge pull request #13517 from Keelan10/ospf_ti_lfa-memory-leak
ospfd: Fix  ospf_ti_lfa memory leak
2023-05-12 10:06:45 -04:00
Manuel Schweizer
c2a440d550 doc: Fix typo in multipath route docs
Signed-off-by: Manuel Schweizer <manuel.schweizer@cloudscale.ch>
2023-05-12 15:38:46 +02:00
Mark Stapp
25314d5d87 tools: config clang-format to allow aligned macros
Add an AlignConsecutiveMacros config for clang-format.

Signed-off-by: Mark Stapp <mjs@labn.net>
2023-05-12 09:16:34 -04:00
Keelan10
10ca618db9 ospf_ti_lfa: Free p_space memory allocation
Free p_space

Signed-off-by: Keelan Cannoo <keelan.cannoo@icloud.com>
2023-05-12 15:05:46 +04:00
Donald Sharp
907183cb35
Merge pull request #13430 from opensourcerouting/feature/rip_allow-ecmp_limit
ripd: Implement allow-ecmp X command
2023-05-11 20:31:46 -04:00
Donald Sharp
f1af873fef
Merge pull request #13490 from Jafaral/fix-ospf-asbr-test
tests: improve log messages, clear neighbors to avoid bad state
2023-05-11 20:31:21 -04:00
Jafar Al-Gharaibeh
1fdd28a730 tests: reset neighbor state machine to avoid bad/stale state
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2023-05-11 09:51:26 -05:00
Donald Sharp
4ce530f750
Merge pull request #13507 from opensourcerouting/feature/bgp_route-map_match_source-protocol
bgpd: Implement match source-protocol for route-maps
2023-05-11 09:38:57 -04:00
Lou Berger
083d367279 topotest: all_protocol_startup - respect TOPOTESTS_CHECK_STDERR environ variable
Signed-off-by: Lou Berger <lberger@labn.net>
2023-05-11 07:46:19 -04:00
Lou Berger
d4977708f0 topotest: add --memleaks topotest option
Signed-off-by: Lou Berger <lberger@labn.net>
2023-05-11 07:46:19 -04:00
Lou Berger
c6686550c3 topotests: fix looging of memstat results
Signed-off-by: Lou Berger <lberger@labn.net>
2023-05-11 07:46:18 -04:00
Lou Berger
4d28aea958 lib: when running as a daemon, only redirect sdtin, stdout, sdterr to null when a tty.
Also write memstat to stderr when stderr is not a tty
     and allow for --log stdout

Signed-off-by: Lou Berger <lberger@labn.net>
2023-05-11 07:38:25 -04:00
Lou Berger
39869a3597 doc: update for ubuntu 22.04 and to run topotest with valgrind
Signed-off-by: Lou Berger <lberger@labn.net>
2023-05-11 07:13:20 -04:00
Donatas Abraitis
9c3ffc80db tests: Check if match source-protocol route-map cmd works for BGP
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-05-11 11:40:42 +03:00
Donatas Abraitis
1c035c8c2c bgpd: Implement match source-protocol for route-maps
The main idea is to filter routes by matching source (originating) protocol
for outgoing direction. For instance, filter outgoing routes to an arbitrary
router that are static only. Or filter out only routes learned from RIP.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-05-11 11:39:23 +03:00
anlan_cs
f403844a12 pimd: Use macro for pimreg interface
Some interfaces are special, they have the same `ifindex` with pimreg.
Use macro for `ifindex` of pimreg.

And adjust log.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2023-05-11 13:52:25 +08:00