]> git.puffer.fish Git - mirror/frr.git/log
mirror/frr.git
3 years agopimd: fix event order for forward_stop() 10088/head
David Lamparter [Sun, 24 Oct 2021 11:46:06 +0000 (13:46 +0200)]
pimd: fix event order for forward_stop()

`pim_ifchannel_ifjoin_switch()` changes flags that `pim_forward_stop()`
looks at.  This leads to data flow continuing until we have some reason
to sync state again.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agopimd: remove some constant parameters
David Lamparter [Sun, 24 Oct 2021 11:45:18 +0000 (13:45 +0200)]
pimd: remove some constant parameters

ch_del is always true for all callers of ifjoin_to_noinfo.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agoMerge pull request #9852 from opensourcerouting/pim-nht-rework
Donald Sharp [Wed, 17 Nov 2021 14:34:51 +0000 (09:34 -0500)]
Merge pull request #9852 from opensourcerouting/pim-nht-rework

pimd: make PIM NHT less weird

3 years agoMerge pull request #10075 from myloft/fix-chdir-judge
David Lamparter [Wed, 17 Nov 2021 11:26:23 +0000 (12:26 +0100)]
Merge pull request #10075 from myloft/fix-chdir-judge

3 years agopimd: correctly process rp-count==0 BSMs 9852/head
David Lamparter [Thu, 22 Jul 2021 09:49:08 +0000 (11:49 +0200)]
pimd: correctly process rp-count==0 BSMs

rp-count==0 isn't a broken BSM, it just means the BSR no longer has any
Candidate RPs for the group range.  Previous behavior is badly mistaken
since it stops processing the entire packet.

Fix to correctly remove group range on rp-count==0 and continue
processing remainder of the packet.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agotests: add one more BSR check to pim_bsmp_01
David Lamparter [Thu, 23 Sep 2021 13:04:24 +0000 (15:04 +0200)]
tests: add one more BSR check to pim_bsmp_01

This is implicitly checked by the "verify mroute" below, but it's much
more helpful to explicitly check in advance.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agopimd: add back blocking RPF for BSM
David Lamparter [Mon, 26 Jul 2021 08:47:21 +0000 (10:47 +0200)]
pimd: add back blocking RPF for BSM

NHT won't have a result yet when we get the first BSM from a new BSR.
Hence, the first packet(s) are lost, since their RPF validation fails.

Re-add the blocking RPF check that was there before (though in a much
more sensible manner.)

Also nuke the now-unused pim_nexthop_match* functions.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agopimd: move BSM clear into BSM code
David Lamparter [Sun, 25 Jul 2021 13:48:03 +0000 (15:48 +0200)]
pimd: move BSM clear into BSM code

... where it actually belongs.  And make a bunch of stuff static, since
it's no longer used across files now.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agopimd: clean up BSR NHT & fix parallel links
David Lamparter [Fri, 25 Jun 2021 08:53:26 +0000 (10:53 +0200)]
pimd: clean up BSR NHT & fix parallel links

The Bootstrap message RX path needs a RPF check for the BSR address,
and this is implemented both incorrectly as well as quite ugly.

Clean up and fix case when we have multiple interfaces to the same LAN
and/or ECMP nexthops (both would cause message duplication, the former
can even cause BSM forwarding loops.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agopimd: actually return msec in timer_remain_msec()
David Lamparter [Wed, 22 Sep 2021 09:22:12 +0000 (11:22 +0200)]
pimd: actually return msec in timer_remain_msec()

... really old TODO sitting there.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years ago*: clean up ifp-by-local-address function(s)
David Lamparter [Wed, 23 Jun 2021 14:35:44 +0000 (16:35 +0200)]
*: clean up ifp-by-local-address function(s)

Most users of if_lookup_address_exact only cared about whether the
address is any local address.  Split that off into a separate function.

For the users that actually need the ifp - which I'm about to add a few
of - change it to prefer returning interfaces that are UP.

(Function name changed due to slight change in behavior re. UP state, to
avoid possible bugs from this change.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agoMerge pull request #9935 from idryzhov/fabricd-ifconf-cleanup
Mark Stapp [Tue, 16 Nov 2021 16:45:43 +0000 (11:45 -0500)]
Merge pull request #9935 from idryzhov/fabricd-ifconf-cleanup

fabricd: cleanup interface config output

3 years agoMerge pull request #10064 from idryzhov/ospf-grace-period
Russ White [Tue, 16 Nov 2021 16:32:45 +0000 (11:32 -0500)]
Merge pull request #10064 from idryzhov/ospf-grace-period

ospfd: fix no-form of "graceful-restart" command

3 years agoMerge pull request #10062 from idryzhov/bfd-replay
Russ White [Tue, 16 Nov 2021 16:32:20 +0000 (11:32 -0500)]
Merge pull request #10062 from idryzhov/bfd-replay

lib: rename bfd function to reflect real functionality

3 years agoMerge pull request #9944 from ARShreenidhi/tcp_mss_testcase
Russ White [Tue, 16 Nov 2021 14:56:48 +0000 (09:56 -0500)]
Merge pull request #9944 from ARShreenidhi/tcp_mss_testcase

tests: testcase to configure and verity tcp mss with vrf

3 years agoMerge pull request #10072 from idryzhov/zebra-memleak
Donald Sharp [Tue, 16 Nov 2021 13:01:30 +0000 (08:01 -0500)]
Merge pull request #10072 from idryzhov/zebra-memleak

zebra: fix memleak on shutdown

3 years agozebra: fix chdir judgment to avoid starting failed in a non-existent directory 10075/head
Solyn [Tue, 16 Nov 2021 12:46:14 +0000 (20:46 +0800)]
zebra: fix chdir judgment to avoid starting failed in a non-existent directory

Signed-off-by: Solyn <admin@iloft.xyz>
3 years agoMerge pull request #10071 from donaldsharp/valgrind_supp_change
Igor Ryzhov [Tue, 16 Nov 2021 10:04:37 +0000 (13:04 +0300)]
Merge pull request #10071 from donaldsharp/valgrind_supp_change

tools: Add another valgrind suppression for libyang

3 years agozebra: fix memleak on shutdown 10072/head
Igor Ryzhov [Mon, 15 Nov 2021 21:00:00 +0000 (00:00 +0300)]
zebra: fix memleak on shutdown

During shutdown, when table_manager_disable is called for the default
VRF, its vrf_id is already set to VRF_UNKNOWN, so the expression is true
and the table manager memory is not freed. Change the expression to
compare the VRF name instead of the id. The check in table_manager_enable
is changed for consistency.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoMerge pull request #10063 from idryzhov/ospf-gr-guarded-code
Donald Sharp [Mon, 15 Nov 2021 20:08:26 +0000 (15:08 -0500)]
Merge pull request #10063 from idryzhov/ospf-gr-guarded-code

ospfd: fix code being guarded by debug check

3 years agotools: Add another valgrind suppression for libyang 10071/head
Donald Sharp [Mon, 15 Nov 2021 20:06:58 +0000 (15:06 -0500)]
tools: Add another valgrind suppression for libyang

More memory leaks from libyang that we can just ignore

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years agoMerge pull request #10068 from Orange-OpenSource/ospf_ls
Donald Sharp [Mon, 15 Nov 2021 20:06:09 +0000 (15:06 -0500)]
Merge pull request #10068 from Orange-OpenSource/ospf_ls

ospfd: Fix wrong parsing of TE subTLV

3 years agoospfd: Fix wrong parsing of TE subTLV 10068/head
Olivier Dugeon [Mon, 15 Nov 2021 17:19:35 +0000 (18:19 +0100)]
ospfd: Fix wrong parsing of TE subTLV

Function ospf_te_parse_te() and ospf_te_delete_te() browse TE TLV but also
subTLV. The loop that parse the subTLV check that cummulative read data doesn't
exceed the total size of the TLV. However, the sum variable that counts the
number of read data was wrongly intialize to 0 instead to 4 (i.e. the initial
TLV Header size that is located at the TOP of subTLV).

This patch adjust accordingly the initial value of the counter.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
3 years agoMerge pull request #10014 from rgirada/ospf_nbr_cov
Donatas Abraitis [Mon, 15 Nov 2021 15:55:35 +0000 (17:55 +0200)]
Merge pull request #10014 from rgirada/ospf_nbr_cov

ospfd: fixing few coverity issues in ospf_vty.c

3 years agoMerge pull request #10048 from qlyoung/fix-reload-doc-comments
Donatas Abraitis [Mon, 15 Nov 2021 15:54:18 +0000 (17:54 +0200)]
Merge pull request #10048 from qlyoung/fix-reload-doc-comments

Fix reload comments

3 years agoMerge pull request #10050 from mjstapp/fix_mpls_queue_cleanup
Donatas Abraitis [Mon, 15 Nov 2021 15:51:51 +0000 (17:51 +0200)]
Merge pull request #10050 from mjstapp/fix_mpls_queue_cleanup

zebra: free LSP workqueue later during shutdown

3 years agoMerge pull request #10047 from idryzhov/fix-bfd-update-source
Donatas Abraitis [Mon, 15 Nov 2021 15:28:14 +0000 (17:28 +0200)]
Merge pull request #10047 from idryzhov/fix-bfd-update-source

bgpd: fix source-address for BFD sessions when using update-source IFNAME

3 years agolib: rename bfd function to reflect real functionality 10062/head
Igor Ryzhov [Mon, 15 Nov 2021 15:11:49 +0000 (18:11 +0300)]
lib: rename bfd function to reflect real functionality

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoospfd: fix no-form of "graceful-restart" command 10064/head
Igor Ryzhov [Wed, 10 Nov 2021 12:15:15 +0000 (15:15 +0300)]
ospfd: fix no-form of "graceful-restart" command

The no-form should use the same arguments as the regular command, hence
replace "period" with "grace-period".

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoospfd: fix code being guarded by debug check 10063/head
Igor Ryzhov [Fri, 5 Nov 2021 10:54:57 +0000 (13:54 +0300)]
ospfd: fix code being guarded by debug check

OSPF_NSM_TIMER_ON must be called regardless of debug configuration.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoMerge pull request #10046 from donaldsharp/bgp_instance_del
David Lamparter [Mon, 15 Nov 2021 09:49:31 +0000 (10:49 +0100)]
Merge pull request #10046 from donaldsharp/bgp_instance_del

3 years agoMerge pull request #9956 from idryzhov/bfd-remove-ttl
Russ White [Sun, 14 Nov 2021 17:24:28 +0000 (12:24 -0500)]
Merge pull request #9956 from idryzhov/bfd-remove-ttl

lib: remove confusing bfd TTL API

3 years agoMerge pull request #10049 from qlyoung/doc-update-process-arch
Donatas Abraitis [Sat, 13 Nov 2021 19:45:40 +0000 (21:45 +0200)]
Merge pull request #10049 from qlyoung/doc-update-process-arch

doc: update & clarify language in process arch doc

3 years agoMerge pull request #10032 from opensourcerouting/build-fix-20211111
Donald Sharp [Sat, 13 Nov 2021 15:10:59 +0000 (10:10 -0500)]
Merge pull request #10032 from opensourcerouting/build-fix-20211111

build: assorted build system improvements, 2021-11 edition

3 years agoMerge pull request #10036 from donaldsharp/finally_frr
Jafar Al-Gharaibeh [Sat, 13 Nov 2021 03:35:27 +0000 (21:35 -0600)]
Merge pull request #10036 from donaldsharp/finally_frr

Finally frr

3 years agozebra: free LSP workqueue later during shutdown 10050/head
Mark Stapp [Fri, 12 Nov 2021 20:10:00 +0000 (15:10 -0500)]
zebra: free LSP workqueue later during shutdown

Free the LSP workqueue later during shutdown, so that zebra
has enough time to clean up and uninstall any LSPs.

Signed-off-by: Mark Stapp <mstapp@nvidia.com>
3 years agodoc: update & clarify language in process arch doc 10049/head
Quentin Young [Fri, 12 Nov 2021 19:45:36 +0000 (14:45 -0500)]
doc: update & clarify language in process arch doc

There was a historical blurb at the top of the process architecture
document that in several instances caused some confusion regarding
whether or not FRR supports multithreading. Remove this paragraph and
replace it with a summary of the page contents.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
3 years agotools: simplify excessively complex conditional 10048/head
Quentin Young [Fri, 12 Nov 2021 18:37:09 +0000 (13:37 -0500)]
tools: simplify excessively complex conditional

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
3 years agotests: Ensure BGP has had time to import routes through the vpn 10046/head
Donald Sharp [Fri, 12 Nov 2021 15:52:03 +0000 (10:52 -0500)]
tests: Ensure BGP has had time to import routes through the vpn

Currently I get bgp_instance_del-test as well as bgp_l3vpn_to_bgp_vrf
failures every ~3-4 runs when under a 40 parallel run with micronet.
Examination of the failure and passing cases always leads to the
failures showing convergence of bgp bestpath immediately after
the show commands to ensure that the routes are there.

Modify the code to look for the fact that the vrf has
converged from routes being passed around across vrf's
and ensure that bestpath has run on them.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years agobgpd: Add vrf information to best path debugging
Donald Sharp [Fri, 12 Nov 2021 15:46:48 +0000 (10:46 -0500)]
bgpd: Add vrf information to best path debugging

When debugging issues for routes in multiple vrf's.  It would
be extremely useful if the debug output had which vrf we
are acting on.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years agotools: string literals -> comments
Quentin Young [Fri, 12 Nov 2021 18:16:25 +0000 (13:16 -0500)]
tools: string literals -> comments

Convert all floating string literals being used as comments, to comments

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
3 years agoMerge pull request #10045 from qlyoung/fix-pr-10006
Igor Ryzhov [Fri, 12 Nov 2021 18:12:58 +0000 (21:12 +0300)]
Merge pull request #10045 from qlyoung/fix-pr-10006

zebra: use tabs instead of spaces zebra_vxlan.c

3 years agobgpd: fix source-address for BFD sessions when using update-source IFNAME 10047/head
Igor Ryzhov [Fri, 12 Nov 2021 16:32:06 +0000 (19:32 +0300)]
bgpd: fix source-address for BFD sessions when using update-source IFNAME

When "update-source IFNAME" is used for the neighbor, p->update_source
is set to NULL, so we can't use it as a source address and should use
the address from p->su_local.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agozebra: use tabs instead of spaces zebra_vxlan.c 10045/head
Quentin Young [Fri, 12 Nov 2021 16:09:48 +0000 (11:09 -0500)]
zebra: use tabs instead of spaces zebra_vxlan.c

Bad style introduced in
https://github.com/FRRouting/frr/pull/10006

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
3 years agoMerge pull request #9945 from idryzhov/isis-time-t
Donatas Abraitis [Fri, 12 Nov 2021 06:39:46 +0000 (08:39 +0200)]
Merge pull request #9945 from idryzhov/isis-time-t

isisd: use time_t for last update and last flap

3 years agoMerge pull request #9982 from idryzhov/fix-netns-delete 10021/head
Donald Sharp [Thu, 11 Nov 2021 23:41:33 +0000 (18:41 -0500)]
Merge pull request #9982 from idryzhov/fix-netns-delete

zebra: fix netns deletion

3 years agoMerge pull request #9981 from idryzhov/fix-vrf-delete
Donald Sharp [Thu, 11 Nov 2021 23:41:02 +0000 (18:41 -0500)]
Merge pull request #9981 from idryzhov/fix-vrf-delete

lib: fix vrf deletion when the last interface is deleted

3 years agoMerge pull request #9965 from idryzhov/fix-table-manager-disable
Donald Sharp [Thu, 11 Nov 2021 23:40:08 +0000 (18:40 -0500)]
Merge pull request #9965 from idryzhov/fix-table-manager-disable

zebra: fix disabling table manager

3 years agoMerge pull request #10035 from donaldsharp/ospf_use_after_free
Igor Ryzhov [Thu, 11 Nov 2021 21:34:16 +0000 (00:34 +0300)]
Merge pull request #10035 from donaldsharp/ospf_use_after_free

ospfd: Prevent use after free on shutdown

3 years ago*: Cleanup some documentation from quagga->frr 10036/head
Donald Sharp [Thu, 11 Nov 2021 19:40:17 +0000 (14:40 -0500)]
*: Cleanup some documentation from quagga->frr

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years ago*: Rename quagga_timestamp with frr_timestamp
Donald Sharp [Thu, 11 Nov 2021 19:33:41 +0000 (14:33 -0500)]
*: Rename quagga_timestamp with frr_timestamp

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years ago*: Convert quagga_signal_X to frr_signal_X
Donald Sharp [Thu, 11 Nov 2021 19:28:54 +0000 (14:28 -0500)]
*: Convert quagga_signal_X to frr_signal_X

Naming functions/data structures more appropriately for
the project we are actually in.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years agoospfd: Prevent use after free on shutdown 10035/head
Donald Sharp [Thu, 11 Nov 2021 18:25:35 +0000 (13:25 -0500)]
ospfd: Prevent use after free on shutdown

Running ospf_topo_vrf1 leads us to this valgrind issue:

==2386518== Invalid read of size 8
==2386518==    at 0x4971520: route_top (table.c:401)
==2386518==    by 0x181F08: ospf_interface_bfd_apply (ospf_bfd.c:126)
==2386518==    by 0x182069: ospf_interface_disable_bfd (ospf_bfd.c:158)
==2386518==    by 0x18BF51: ospf_del_if_params (ospf_interface.c:557)
==2386518==    by 0x18C584: ospf_if_delete_hook (ospf_interface.c:712)
==2386518==    by 0x490CA0B: hook_call_if_del (if.c:61)
==2386518==    by 0x490D1F3: if_delete_retain (if.c:286)
==2386518==    by 0x490D337: if_delete (if.c:309)
==2386518==    by 0x490CDED: if_destroy_via_zapi (if.c:200)
==2386518==    by 0x49940A9: zclient_interface_delete (zclient.c:2237)
==2386518==    by 0x4998062: zclient_read (zclient.c:3969)
==2386518==    by 0x4979529: thread_call (thread.c:1908)
==2386518==    by 0x4919918: frr_run (libfrr.c:1164)
==2386518==    by 0x181AC7: main (ospf_main.c:235)
==2386518==  Address 0x5df39a0 is 0 bytes inside a block of size 56 free'd
==2386518==    at 0x48399AB: free (vg_replace_malloc.c:538)
==2386518==    by 0x492A03E: qfree (memory.c:141)
==2386518==    by 0x4970C6F: route_table_free (table.c:141)
==2386518==    by 0x4970A36: route_table_finish (table.c:61)
==2386518==    by 0x18C543: ospf_if_delete_hook (ospf_interface.c:708)
==2386518==    by 0x490CA0B: hook_call_if_del (if.c:61)
==2386518==    by 0x490D1F3: if_delete_retain (if.c:286)
==2386518==    by 0x490D337: if_delete (if.c:309)
==2386518==    by 0x490CDED: if_destroy_via_zapi (if.c:200)
==2386518==    by 0x49940A9: zclient_interface_delete (zclient.c:2237)
==2386518==    by 0x4998062: zclient_read (zclient.c:3969)
==2386518==    by 0x4979529: thread_call (thread.c:1908)
==2386518==    by 0x4919918: frr_run (libfrr.c:1164)
==2386518==    by 0x181AC7: main (ospf_main.c:235)
==2386518==  Block was alloc'd at
==2386518==    at 0x483AB65: calloc (vg_replace_malloc.c:760)
==2386518==    by 0x4929EFC: qcalloc (memory.c:116)
==2386518==    by 0x49709F8: route_table_init_with_delegate (table.c:53)
==2386518==    by 0x49717F4: route_table_init (table.c:528)
==2386518==    by 0x18C328: ospf_if_new_hook (ospf_interface.c:659)
==2386518==    by 0x490C97D: hook_call_if_add (if.c:60)
==2386518==    by 0x490CE85: if_create_name (if.c:223)
==2386518==    by 0x490DF32: if_get_by_name (if.c:622)
==2386518==    by 0x4993F73: zclient_interface_add (zclient.c:2186)
==2386518==    by 0x4998062: zclient_read (zclient.c:3969)
==2386518==    by 0x4979529: thread_call (thread.c:1908)
==2386518==    by 0x4919918: frr_run (libfrr.c:1164)
==2386518==    by 0x181AC7: main (ospf_main.c:235)
==2386518==

Fix the ordering to do the individual node tree cleanup after we delete
the data we care about.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years agoMerge pull request #10033 from donaldsharp/bgp_max_no_go
Igor Ryzhov [Thu, 11 Nov 2021 17:31:03 +0000 (20:31 +0300)]
Merge pull request #10033 from donaldsharp/bgp_max_no_go

*: use compiler.h MIN/MAX macros instead of everyone having one

3 years agobuild: fix duplicate yang.c file inclusions 10032/head
David Lamparter [Thu, 11 Nov 2021 14:46:54 +0000 (15:46 +0100)]
build: fix duplicate yang.c file inclusions

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agobuild: remove some useless intermediate libraries
David Lamparter [Thu, 11 Nov 2021 14:45:09 +0000 (15:45 +0100)]
build: remove some useless intermediate libraries

These really serve no purpose other than slowing our build down.  If
there's a benefit to any of these, they can be readded.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years ago*: use compiler.h MIN/MAX macros instead of everyone having one 10033/head
Donald Sharp [Thu, 11 Nov 2021 14:39:52 +0000 (09:39 -0500)]
*: use compiler.h MIN/MAX macros instead of everyone having one

We had various forms of min/max macros across multiple daemons
all of which duplicated what we have in compiler.h.  Convert
everyone to use the `correct` ones

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years agobuild: link libcrypt & libdl to libfrr only
David Lamparter [Thu, 11 Nov 2021 14:28:33 +0000 (15:28 +0100)]
build: link libcrypt & libdl to libfrr only

They're not needed elsewhere.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agobuild: link libelf to clippy only
David Lamparter [Thu, 11 Nov 2021 14:05:02 +0000 (15:05 +0100)]
build: link libelf to clippy only

It's not needed elsewhere & generates a bogus dependency.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agobuild: fix more libtool stupidity for modules
David Lamparter [Thu, 11 Nov 2021 13:27:13 +0000 (14:27 +0100)]
build: fix more libtool stupidity for modules

libtool, the radioactive dumpster fire of the GNU ecosystem.

A module should not have a SONAME set.  SONAMEs are for (versioned)
libraries on search paths.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agobuild: break up tests/subdir.am
David Lamparter [Thu, 11 Nov 2021 13:36:28 +0000 (14:36 +0100)]
build: break up tests/subdir.am

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agoMerge pull request #10006 from chiragshah6/evpn_dev
Russ White [Thu, 11 Nov 2021 13:09:06 +0000 (08:09 -0500)]
Merge pull request #10006 from chiragshah6/evpn_dev

zebra:  svi down remove evpn l2vni from l3vni list

3 years agoMerge pull request #10025 from opensourcerouting/xref-backtrace
Russ White [Thu, 11 Nov 2021 13:08:19 +0000 (08:08 -0500)]
Merge pull request #10025 from opensourcerouting/xref-backtrace

lib: backtraces for specific log messages

3 years agoMerge pull request #9861 from rgirada/ospf6_coverity
Russ White [Thu, 11 Nov 2021 13:04:28 +0000 (08:04 -0500)]
Merge pull request #9861 from rgirada/ospf6_coverity

ospf6d: Addressing few coverity issues.

3 years agoMerge pull request #9864 from ton31337/feature/access_list_autocomplete
Russ White [Thu, 11 Nov 2021 13:03:33 +0000 (08:03 -0500)]
Merge pull request #9864 from ton31337/feature/access_list_autocomplete

lib: Add autocomplete for access-lists

3 years agoMerge pull request #10019 from donaldsharp/pim_upstream_reg_state
Russ White [Thu, 11 Nov 2021 13:00:36 +0000 (08:00 -0500)]
Merge pull request #10019 from donaldsharp/pim_upstream_reg_state

pimd: Remove default from enum based switch

3 years agobuild: refactor `tests/subdir.am`
David Lamparter [Thu, 11 Nov 2021 12:51:44 +0000 (13:51 +0100)]
build: refactor `tests/subdir.am`

... to put related stuff next to each other.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agoMerge pull request #9931 from leibaogit/master
Igor Ryzhov [Thu, 11 Nov 2021 12:34:01 +0000 (15:34 +0300)]
Merge pull request #9931 from leibaogit/master

zebra: Fix the RA packets can not sent out

3 years agozebra: fix disabling table manager 9965/head
Igor Ryzhov [Thu, 4 Nov 2021 22:54:48 +0000 (01:54 +0300)]
zebra: fix disabling table manager

42d4b30e introduced per-VRF table manager.

Table manager is allocated when the VRF is created, but it is freed when
the VRF is disabled. When this VRF is re-enabled, zebra ends up with
table manager being NULL pointer and it crashes on any dereference.

Table manager should be freed when the VRF is deleted, not when it's
disabled.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoisisd: use time_t for last update and last flap 9945/head
Igor Ryzhov [Wed, 3 Nov 2021 09:40:40 +0000 (12:40 +0300)]
isisd: use time_t for last update and last flap

These variables are only assigned with time() which returns time_t.
This should also fix occasional CI build failures because of comparisons
of signed and unsigned integers.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agolib: fix vrf deletion when the last interface is deleted 9981/head
Igor Ryzhov [Fri, 5 Nov 2021 22:22:07 +0000 (01:22 +0300)]
lib: fix vrf deletion when the last interface is deleted

Currently, we automatically delete an inactive VRF when its last
interface is deleted. This code introduces a couple of crashes because
of the following problems:
- vrf_delete is called before calling if_del hook, so daemons may try to
  dereference an ifp->vrf pointer which is freed
- in if_terminate, we continue to use the VRF in the loop condition
  after the last interface is deleted

This check is needed only when the interface is deleted by the user,
because if the interface is deleted by the system, VRF must still exist
in the system. Move the check to appropriate places to fix crashes.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agozebra: fix netns deletion 9982/head
Igor Ryzhov [Sat, 6 Nov 2021 00:36:48 +0000 (03:36 +0300)]
zebra: fix netns deletion

We don't receive interface down/delete notifications from kernel when a
netns is deleted. Therefore we have to manually replicate the necessary
actions, otherwise interfaces are kept in the system with stale pointers
to the deleted netns.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agofabricd: cleanup interface config output 9935/head
Igor Ryzhov [Tue, 2 Nov 2021 12:22:23 +0000 (15:22 +0300)]
fabricd: cleanup interface config output

We don't need to scan through all configured areas to find the circuit
associated with the interface. It is always stored in ifp->info.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agolib: remove confusing bfd TTL API 9956/head
Igor Ryzhov [Thu, 4 Nov 2021 12:11:18 +0000 (15:11 +0300)]
lib: remove confusing bfd TTL API

There are two APIs to control the expected number of hops for a BFD
session – `bfd_sess_set_mininum_ttl` and `bfd_sess_set_hop_count`.
The former is very confusing, as it takes an expected TTL in the
BFD packet which is actually a protocol internal value. The latter is
simple and straightforward – it takes an expected number of hops, which
is always 1 for single-hop and >1 for multi-hop.

As the former API is not used anywhere, just remove it to avoid any
confusion.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoMerge pull request #10029 from anlancs/doc-bgp-title
Igor Ryzhov [Thu, 11 Nov 2021 11:50:53 +0000 (14:50 +0300)]
Merge pull request #10029 from anlancs/doc-bgp-title

doc: remove redundant chars for bgp

3 years agotests: fix frr-format warnings in printfrr test
David Lamparter [Thu, 11 Nov 2021 11:27:11 +0000 (12:27 +0100)]
tests: fix frr-format warnings in printfrr test

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agobuild: adjust silent make rules in tests
David Lamparter [Thu, 11 Nov 2021 11:26:29 +0000 (12:26 +0100)]
build: adjust silent make rules in tests

Purely aesthetic change to make these rules not stick out like a sore
thumb.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agobuild: adjust compiler/C11 bits for autoconf 2.70+
David Lamparter [Thu, 11 Nov 2021 11:18:44 +0000 (12:18 +0100)]
build: adjust compiler/C11 bits for autoconf 2.70+

`autoconf` finally arrived in the 2010s and tries to do ISO C11.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agobuild: work around AC_PROG_LEX deprecation warning
David Lamparter [Thu, 11 Nov 2021 10:57:59 +0000 (11:57 +0100)]
build: work around AC_PROG_LEX deprecation warning

`AC_PROG_LEX without either yywrap or noyywrap is obsolete`, says
autoconf 2.70.  Sadly, there is no transition window for this, in 2.69
the macro takes no arguments.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agodoc: remove redundant chars for bgp 10029/head
anlan_cs [Thu, 11 Nov 2021 08:19:37 +0000 (03:19 -0500)]
doc: remove redundant chars for bgp

Signed-off-by: anlan_cs <anlan_cs@tom.com>
3 years agoMerge pull request #10026 from idryzhov/bfd-peer-str-coverity
Donald Sharp [Thu, 11 Nov 2021 00:01:57 +0000 (19:01 -0500)]
Merge pull request #10026 from idryzhov/bfd-peer-str-coverity

bfdd: fix coverity warnings

3 years agopimd: Remove default from enum based switch 10019/head
Donald Sharp [Wed, 10 Nov 2021 00:30:12 +0000 (19:30 -0500)]
pimd: Remove default from enum based switch

enum based switches should never use default.  It makes
it very hard to fix and find issues when the enum is
changed.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
3 years agoMerge pull request #9988 from idryzhov/ospf-gr-broken
Donald Sharp [Wed, 10 Nov 2021 19:05:38 +0000 (14:05 -0500)]
Merge pull request #9988 from idryzhov/ospf-gr-broken

ospfd: remove commands for broken GR helper mode

3 years agoospfd: remove commands for broken GR helper mode 9988/head
Igor Ryzhov [Sat, 6 Nov 2021 14:00:46 +0000 (17:00 +0300)]
ospfd: remove commands for broken GR helper mode

Issue #9983 explains what is wrong with the GR helper mode.

To unblock the CI that fails almost all the time on the ospf_gr_topo1
test, remove the commands and disable the test. Also add a reminder to
completely remove the helper mode if no one fixes the code in a month.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoMerge pull request #9700 from mjstapp/add_json_det_attrs
Donatas Abraitis [Wed, 10 Nov 2021 14:42:30 +0000 (16:42 +0200)]
Merge pull request #9700 from mjstapp/add_json_det_attrs

bgpd: Add 'show bgp <afi> <safi> json detail' header data

3 years agodoc: stick `libunwind` into build docs 10025/head
David Lamparter [Wed, 10 Nov 2021 11:16:40 +0000 (12:16 +0100)]
doc: stick `libunwind` into build docs

It's strictly optional, but… the backtraces are really much better.
Specifically, `libunwind` is notably more capable in figuring out
function names compared to glibc/libexecinfo `backtrace_symbols()`.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agodoc: add unique-id & backtrace user docs
David Lamparter [Wed, 10 Nov 2021 10:53:32 +0000 (11:53 +0100)]
doc: add unique-id & backtrace user docs

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agolib: fix elf_py TLS section handling
David Lamparter [Wed, 10 Nov 2021 14:30:07 +0000 (15:30 +0100)]
lib: fix elf_py TLS section handling

... need to ignore TLS sections, their address is effectively
meaningless but can overlap other sections we actually need to access.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agobfdd: fix coverity warnings 10026/head
Igor Ryzhov [Wed, 10 Nov 2021 13:36:15 +0000 (16:36 +0300)]
bfdd: fix coverity warnings

show/clear DEFUNs always require either peer label or IP address to be
specified, so if `label` is NULL then `peer_str` is definitely not NULL.
But Coverity doesn't know about that, so it complains about possible
NULL dereference of `peer_str`. This commit should make Coverity happy.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agolib: avoid include loop with assert.h
David Lamparter [Fri, 22 Oct 2021 14:59:42 +0000 (16:59 +0200)]
lib: avoid include loop with assert.h

`assert.h` -> `xref.h` -> `typesafe.h` -> `assert.h`

Might be possible to do this more cleanly some way, but that way is not
obvious, so here's the "simple & dumb" approach.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agolib: add `debug uid XXXXX-XXXXX backtrace`
David Lamparter [Tue, 2 Mar 2021 18:33:45 +0000 (19:33 +0100)]
lib: add `debug uid XXXXX-XXXXX backtrace`

Looks much prettier if `libunwind` is available, but works with glibc or
libexecinfo's `backtrace()` too.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
3 years agoMerge pull request #9941 from chiragshah6/mdev
Rafael Zalamena [Wed, 10 Nov 2021 10:41:33 +0000 (07:41 -0300)]
Merge pull request #9941 from chiragshah6/mdev

pimd: fix msdp mesh grp with wildcard member addr

3 years agolib: stuff xrefs into a tree for lookup
David Lamparter [Wed, 24 Feb 2021 10:57:15 +0000 (11:57 +0100)]
lib: stuff xrefs into a tree for lookup

... so we can actually access by UID without searching the entire list.

Signed-off-by: David Lamparter <equinox@diac24.net>
3 years agolib: add missing include in typerb.h
David Lamparter [Wed, 24 Feb 2021 10:56:41 +0000 (11:56 +0100)]
lib: add missing include in typerb.h

The RB-tree macros use memset(), so we need to #include <string.h>

Signed-off-by: David Lamparter <equinox@diac24.net>
3 years agoMerge pull request #9939 from idryzhov/fix-ptm-build 10020/head
Mark Stapp [Tue, 9 Nov 2021 16:49:09 +0000 (11:49 -0500)]
Merge pull request #9939 from idryzhov/fix-ptm-build

zebra: fix build with --enable-bfdd=no

3 years agoMerge pull request #10007 from Jafaral/debrpm
Quentin Young [Tue, 9 Nov 2021 16:25:15 +0000 (11:25 -0500)]
Merge pull request #10007 from Jafaral/debrpm

3 years agoospfd: fixing few coverity issues in ospf_vty.c 10014/head
rgirada [Tue, 9 Nov 2021 12:21:06 +0000 (04:21 -0800)]
ospfd: fixing few coverity issues in ospf_vty.c

Description:
timerval datastructure is being used without initialization.
Using these uninitialized parameters can lead unexpected results
so initializing before using it.

Signed-off-by: Rajesh Girada <rgirada@vmware.com>
3 years agoMerge pull request #9996 from opensourcerouting/resolver-fix-threads
Igor Ryzhov [Tue, 9 Nov 2021 10:55:44 +0000 (13:55 +0300)]
Merge pull request #9996 from opensourcerouting/resolver-fix-threads

lib: fix `struct thread **` misuse in c-ares resolver bindings

3 years agoMerge pull request #9924 from idryzhov/isis-nb-improvements
Russ White [Mon, 8 Nov 2021 22:56:22 +0000 (17:56 -0500)]
Merge pull request #9924 from idryzhov/isis-nb-improvements

various isisd northbound fixes

3 years agoMerge pull request #9995 from donaldsharp/bfd_ospf_topo1_convvergence
Russ White [Mon, 8 Nov 2021 18:52:12 +0000 (13:52 -0500)]
Merge pull request #9995 from donaldsharp/bfd_ospf_topo1_convvergence

tests: bfd_ospf_topo1 expects unreasonable convergence times under load