]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
4 years agoyang: use leafref instead of string
Igor Ryzhov [Tue, 8 Sep 2020 18:06:46 +0000 (21:06 +0300)]
yang: use leafref instead of string

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
4 years agoMerge pull request #7114 from donaldsharp/tip_count
Donatas Abraitis [Thu, 17 Sep 2020 12:10:13 +0000 (15:10 +0300)]
Merge pull request #7114 from donaldsharp/tip_count

bgpd: Avoid memset when tip hash is empty

4 years agoMerge pull request #7108 from qlyoung/remove-double-holdtimer-cancel
Donatas Abraitis [Thu, 17 Sep 2020 12:08:49 +0000 (15:08 +0300)]
Merge pull request #7108 from qlyoung/remove-double-holdtimer-cancel

bgpd: remove extra hold-timer reset

4 years agoMerge pull request #7117 from AnuradhaKaruppiah/mh-macip-fixes
Rafael Zalamena [Thu, 17 Sep 2020 10:03:36 +0000 (07:03 -0300)]
Merge pull request #7117 from AnuradhaKaruppiah/mh-macip-fixes

zebra: fixup a neigh del bug introduced by a previous commit for EVPN-MH MAC-IP sync

4 years agoMerge pull request #7103 from opensourcerouting/sysrepo-fixes
Donald Sharp [Thu, 17 Sep 2020 00:34:53 +0000 (20:34 -0400)]
Merge pull request #7103 from opensourcerouting/sysrepo-fixes

lib: sysrepo plugin fixes

4 years agozebra: fixup a neigh del bug introduced by a previous commit for MAC-IP sync
Anuradha Karuppiah [Tue, 12 May 2020 02:10:13 +0000 (19:10 -0700)]
zebra: fixup a neigh del bug introduced by a previous commit for MAC-IP sync

Problem commit -
[
b169fd6fd59ed zebra: support for MAC-IP sync routes
]

That commit had accidentally replaced a mac-ip del to bgp with a mac
del (consequence of a bad cut-paste).

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
4 years agobgpd: Avoid memset when tip hash is empty
Donald Sharp [Wed, 16 Sep 2020 21:48:15 +0000 (17:48 -0400)]
bgpd: Avoid memset when tip hash is empty

The tip hash is only used when we are dealing with
evpn.  In bgp_nexthop_self we are doing a memset
irrelevant of whether we will ever find data.  Yes
hash_lookup will return pretty quickly.

Modify the code to avoid doing a memset in the case
where the tip hash is empty as that we know we'll
never find anything.  With full BGP feeds this
small memset does take some time.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agoMerge pull request #7066 from donaldsharp/more_test_speedups
Martin Winter [Wed, 16 Sep 2020 20:27:16 +0000 (22:27 +0200)]
Merge pull request #7066 from donaldsharp/more_test_speedups

tests: Speed up topotests by being more aggressive

4 years agoMerge pull request #7107 from AnuradhaKaruppiah/mh-cleanup
Patrick Ruddy [Wed, 16 Sep 2020 14:42:49 +0000 (15:42 +0100)]
Merge pull request #7107 from AnuradhaKaruppiah/mh-cleanup

zebra: re-name some mh functions to make the code more readable

4 years agoMerge pull request #7106 from AnuradhaKaruppiah/dad-mh-fix
Rafael Zalamena [Wed, 16 Sep 2020 12:31:00 +0000 (09:31 -0300)]
Merge pull request #7106 from AnuradhaKaruppiah/dad-mh-fix

zebra: dup detected mac avoid update to bgpd

4 years agoMerge pull request #7109 from qlyoung/set-threadmaster-default-name
Rafael Zalamena [Wed, 16 Sep 2020 12:30:12 +0000 (09:30 -0300)]
Merge pull request #7109 from qlyoung/set-threadmaster-default-name

lib: set threadmaster name to 'default' if none

4 years agoMerge pull request #7105 from AnuradhaKaruppiah/l3vni-ecom-leak
Rafael Zalamena [Wed, 16 Sep 2020 10:34:09 +0000 (07:34 -0300)]
Merge pull request #7105 from AnuradhaKaruppiah/l3vni-ecom-leak

bgpd: fix ecom leak handling l3vni update

4 years agolib: set threadmaster name to 'default' if none
Quentin Young [Wed, 16 Sep 2020 00:11:39 +0000 (20:11 -0400)]
lib: set threadmaster name to 'default' if none

And also include the name of the threadmaster in its event hash name.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agobgpd: remove extra hold-timer reset
Quentin Young [Wed, 16 Sep 2020 00:15:08 +0000 (20:15 -0400)]
bgpd: remove extra hold-timer reset

Handler function doesn't need to reset the hold timer, this is done
during the FSM update.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agozebra: re-name some mh functions to make the code more readable
Anuradha Karuppiah [Sun, 31 May 2020 15:10:55 +0000 (08:10 -0700)]
zebra: re-name some mh functions to make the code more readable

As a part of the re-factoring some of the evpn_vni_es apis got re-named
as evpn_evpn_es. Changed them to evpn_es_evi to make it common to
vxlan and mpls.

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
4 years agozebra: dup detected mac avoid update to bgpd
Chirag Shah [Tue, 26 May 2020 18:43:14 +0000 (11:43 -0700)]
zebra: dup detected mac avoid update to bgpd

When a MAC is detected duplicate on a local
learn event (with freeze action),
do not send update to bgp to advertise into
evpn control plane.

With evpn mh, inform_client flag is set and
sends notification to bgp albeit dup detect
is set.

Check mac are detected as duplicate before
setting inform_client to true.

Ticket:CM-29817
Reviewed By:CCR-10329
Testing Done:

Enable DAD with freeze action
Upon local learn MAC detected as duplica

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
4 years agobgpd: fix ecom leak handling l3vni update
Quentin Young [Thu, 14 May 2020 22:33:10 +0000 (18:33 -0400)]
bgpd: fix ecom leak handling l3vni update

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
4 years agoMerge pull request #6905 from gpnaveen/topojson_kernel_version_check
Mark Stapp [Tue, 15 Sep 2020 19:43:25 +0000 (15:43 -0400)]
Merge pull request #6905 from gpnaveen/topojson_kernel_version_check

tests: Kernel version check for topojson scripts.

4 years agolib: simplify handling of the sysrepo startup configuration
Renato Westphal [Sat, 12 Sep 2020 01:39:50 +0000 (22:39 -0300)]
lib: simplify handling of the sysrepo startup configuration

In the new Sysrepo, all SR_EV_ENABLED notifications are followed by
SR_EV_DONE notifications (assuming no errors occur), so there's no
need to special case the SR_EV_ENABLED event anymore (e.g. do full
transactions in one step).

While here, add a few more guarded debug messages to facilitate
troubleshooting.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agolib: fix handling of deleted nodes in the sysrepo plugin
Renato Westphal [Sat, 12 Sep 2020 01:39:35 +0000 (22:39 -0300)]
lib: fix handling of deleted nodes in the sysrepo plugin

Make the sysrepo plugin ignore the deletion of configuration
nodes that don't exist anymore instead of logging an error and
rejecting the changes. This is necessary because Sysrepo delivers
delete notifications for all nodes of a deleted data tree instead
of delivering a single delete notification of the top-level subtree
node (which would suffice for the northbound layer).

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agolib: postpone the sysrepo plugin initialization
Renato Westphal [Sat, 12 Sep 2020 01:39:11 +0000 (22:39 -0300)]
lib: postpone the sysrepo plugin initialization

From Sysrepo's documentation:
"Note: do not use fork() after creating a connection. Sysrepo
internally stores PID of every created connection and this way a
mismatch of PID and connection is created".

Introduce a new "frr_very_late_init" hook in libfrr that is only
called after the daemon is forked (when the '-d' option is used)
and after the configuration is read. This way we can initialize
the sysrepo plugin correctly even when the daemon is daemonized,
and after the Sysrepo CLI commands are processed (only "debug
northbound client sysrepo" for now).

Fixes #7062

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agoMerge pull request #7099 from mjstapp/fix_doc_thread_rw
Lou Berger [Tue, 15 Sep 2020 15:20:13 +0000 (11:20 -0400)]
Merge pull request #7099 from mjstapp/fix_doc_thread_rw

doc: clarify independence of THREAD_READ and _WRITE

4 years agoMerge pull request #7082 from volta-networks/fix_isis_pseudo_lsp
Renato Westphal [Tue, 15 Sep 2020 14:25:04 +0000 (11:25 -0300)]
Merge pull request #7082 from volta-networks/fix_isis_pseudo_lsp

isisd: fix pseudonode LSP bug

4 years agoMerge pull request #7083 from volta-networks/isis_route_logs_improve
Renato Westphal [Tue, 15 Sep 2020 14:24:53 +0000 (11:24 -0300)]
Merge pull request #7083 from volta-networks/isis_route_logs_improve

isisd: improve route-event logs

4 years agotests: Addressing lint error.
nguggarigoud [Tue, 15 Sep 2020 10:21:07 +0000 (15:51 +0530)]
tests: Addressing lint error.

Added new line to remove git link error.

Signed-off-by: naveen <nguggarigoud@vmware.com>
4 years agotests: fixing pytest.skip error.
nguggarigoud [Tue, 15 Sep 2020 05:39:43 +0000 (11:09 +0530)]
tests: fixing pytest.skip error.

Updated scripts to handle skip on lower
kernel version.

Signed-off-by: naveen <nguggarigoud@vmware.com>
4 years agotests: Moving kernel version check to API.
naveen [Tue, 18 Aug 2020 14:22:45 +0000 (19:52 +0530)]
tests: Moving kernel version check to API.

Signed-off-by: naveen <nguggarigoud@vmware.com>
4 years agotests: Kernel version check for topojson scripts.
naveen [Wed, 12 Aug 2020 05:45:57 +0000 (11:15 +0530)]
tests: Kernel version check for topojson scripts.

1. Added linux kernel version check to avoid failures
in CI systems if matching kernel version not found.

Signed-off-by: naveen <nguggarigoud@vmware.com>
4 years agoMerge pull request #7090 from dslicenc/comm-list-replace
Jafar Al-Gharaibeh [Mon, 14 Sep 2020 15:42:10 +0000 (10:42 -0500)]
Merge pull request #7090 from dslicenc/comm-list-replace

bgpd: correct community-list replace logic

4 years agodoc: clarify independence of THREAD_READ and _WRITE
Mark Stapp [Mon, 14 Sep 2020 15:01:44 +0000 (11:01 -0400)]
doc: clarify independence of THREAD_READ and _WRITE

Make it clearer that the READ and WRITE tasks/events are
independent in the lib/thread apis.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
4 years agoMerge pull request #7093 from donaldsharp/pbr_flapping
Mark Stapp [Mon, 14 Sep 2020 12:13:48 +0000 (08:13 -0400)]
Merge pull request #7093 from donaldsharp/pbr_flapping

Pbr flapping

4 years agoMerge pull request #7065 from idryzhov/bgp-deprecated
Donatas Abraitis [Mon, 14 Sep 2020 09:45:08 +0000 (12:45 +0300)]
Merge pull request #7065 from idryzhov/bgp-deprecated

bgpd: remove deprecated commands

4 years agoisisd: improve route-event logs
Emanuele Di Pascale [Tue, 8 Sep 2020 15:00:40 +0000 (17:00 +0200)]
isisd: improve route-event logs

suppress route-event logs that are uninformative and add more info to
the ones that matter, i.e. hints on what changed in a route update. The
suppressed logs can be enabled by defining EXTREME_DEBUG to 1, similarly
to what is done elsewhere in isisd (e.g. in isis_spf.c)

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
4 years agoisisd: fix pseudonode LSP bug
Emanuele Di Pascale [Fri, 11 Sep 2020 09:07:37 +0000 (11:07 +0200)]
isisd: fix pseudonode LSP bug

Currently, when the is-type of an area is changed and its circuits resign,
we are not resetting the DIS flag. Consequently, if the area type is reverted
we are not running the DR election and not regenerating the pseudonode LSP.

Also adding event debug logs for circuit commence/resign.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
4 years agobgpd: remove deprecated commands
Igor Ryzhov [Tue, 8 Sep 2020 22:10:06 +0000 (01:10 +0300)]
bgpd: remove deprecated commands

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
4 years agoMerge pull request #7092 from sworleys/RPM-Link-Fix
Jafar Al-Gharaibeh [Sat, 12 Sep 2020 14:22:17 +0000 (09:22 -0500)]
Merge pull request #7092 from sworleys/RPM-Link-Fix

doc: fix rpm link under libyang help

4 years agoMerge pull request #7091 from opensourcerouting/nb-leafrefs
Donald Sharp [Sat, 12 Sep 2020 13:29:33 +0000 (09:29 -0400)]
Merge pull request #7091 from opensourcerouting/nb-leafrefs

lib: fix crashes with leafrefs that point to non-implemented modules

4 years agobgpd: correct community-list replace logic
Don Slice [Thu, 10 Sep 2020 12:40:28 +0000 (12:40 +0000)]
bgpd: correct community-list replace logic

Problem rerported that if you enter an existing community list
sequence number with new community information, the entire community
list would be deleted.  This commit fixes the replace logic to do
the right thing.

Ticket: CM-30555
Signed-off-by: Don Slice <dslice@nvidia.com>
4 years agoMerge pull request #7084 from donaldsharp/pim_limitations
Jafar Al-Gharaibeh [Sat, 12 Sep 2020 03:15:02 +0000 (22:15 -0500)]
Merge pull request #7084 from donaldsharp/pim_limitations

pimd: Warn when we try to build MAXVIFS > 256

4 years agoMerge pull request #7095 from donaldsharp/coverity_5
Jafar Al-Gharaibeh [Sat, 12 Sep 2020 03:07:56 +0000 (22:07 -0500)]
Merge pull request #7095 from donaldsharp/coverity_5

isisd: ifp cannot be NULL

4 years agotests: Speed up topotests by being more aggressive
Donald Sharp [Wed, 9 Sep 2020 03:04:42 +0000 (23:04 -0400)]
tests: Speed up topotests by being more aggressive

We have a bunch of tests that wait *then* check a command for success/failure.
Modify the tests to check *first* then to wait.  This reduces test
run times on my system by ~1400 seconds for a full run.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agoMerge pull request #7080 from opensourcerouting/staticd-minor-issues
Donald Sharp [Sat, 12 Sep 2020 00:07:19 +0000 (20:07 -0400)]
Merge pull request #7080 from opensourcerouting/staticd-minor-issues

staticd: remove dead code + minor fix

4 years agopimd: Warn when we try to build MAXVIFS > 256
Donald Sharp [Fri, 11 Sep 2020 12:27:28 +0000 (08:27 -0400)]
pimd: Warn when we try to build MAXVIFS > 256

We use the pim mroute socket for kernel notifications of events.
Currently this is limited to 8 bits of data.  There are patches
coming down the pike in kernel land to allow this to expand.
Rather than fix this and all the other places we assume MAXVIFS < 256
in the pim code right now.  Leave a land mine for the developer
doing this work to point them in the right direction.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agopbrd: Ensure rule is installed on interface up
Donald Sharp [Fri, 11 Sep 2020 17:05:55 +0000 (13:05 -0400)]
pbrd: Ensure rule is installed on interface up

If we are experiencing an interface that is bouncing
very fast and the last operation that we experienced
was a ifdown we will send rule deletions associated
with that interface.  If we have not received notification
that hte rule was removed *but* we immiedately get another
ifup notification when we go to install the rule we
are deciding that it's not ready to send down again,
as that we still think it is installed.

Force the rule installation when we have a interface up
event.

Ticket: CM-31042
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agobgpd, lib, pbrd, zebra: Pass by ifname
Donald Sharp [Thu, 10 Sep 2020 15:31:39 +0000 (11:31 -0400)]
bgpd, lib, pbrd, zebra: Pass by ifname

When installing rules pass by the interface name across
zapi.

This is being changed because we have a situation where
if you quickly create/destroy ephermeal interfaces under
linux the upper level protocol may be trying to add
a rule for a interface that does not quite exist
at the moment.  Since ip rules actually want the
interface name ( to handle just this sort of situation )
convert over to passing the interface name and storing
it and using it in zebra.

Ticket: CM-31042
Signed-off-by: Stephen Worley <sworley@nvidia.com>
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agoMerge pull request #6974 from liron-ze/high-cpu-usage
Renato Westphal [Fri, 11 Sep 2020 18:59:27 +0000 (15:59 -0300)]
Merge pull request #6974 from liron-ze/high-cpu-usage

zebra: Solve the problem of high CPU and memory usage when creating t…

4 years agoMerge pull request #6789 from volta-networks/feat_ldp_igp_sync
Renato Westphal [Fri, 11 Sep 2020 18:55:04 +0000 (15:55 -0300)]
Merge pull request #6789 from volta-networks/feat_ldp_igp_sync

ldpd: Add support for LDP-IGP Synchronization

4 years agoisisd: ifp cannot be NULL
Donald Sharp [Fri, 11 Sep 2020 18:30:24 +0000 (14:30 -0400)]
isisd: ifp cannot be NULL

the ifp pointer cannot be NULL when we get to this point
in the code.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
4 years agostaticd: fix display of the "nexthop-vrf" parameter of static routes
Renato Westphal [Fri, 11 Sep 2020 00:27:48 +0000 (21:27 -0300)]
staticd: fix display of the "nexthop-vrf" parameter of static routes

When the static route VRF and its nexthop VRF are inactive in the
kernel, both VRFs will have the same ID (VRF_UNKNOWN) even though
they might not be the same. This can cause "sh run" to not display
the "nexthop-vrf" parameter correctly when necessary. Change the
code to compare VRFs by their names to fix this problem.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agostaticd: remove checks that are no longer necessary
Renato Westphal [Thu, 10 Sep 2020 21:45:42 +0000 (18:45 -0300)]
staticd: remove checks that are no longer necessary

All call sites of static_route_leak() are passing a non-null pointer
to the 'vty' parameter, hence remove the 'vty' null checks that
are no longer necessary.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agodoc: fix rpm link under libyang help
Stephen Worley [Fri, 11 Sep 2020 18:11:48 +0000 (14:11 -0400)]
doc: fix rpm link under libyang help

Fix the rpm link under libyang help. The link was assuming
it was local without the https.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
4 years agolib: fix crashes with leafrefs that point to non-implemented modules
Renato Westphal [Fri, 11 Sep 2020 13:43:49 +0000 (10:43 -0300)]
lib: fix crashes with leafrefs that point to non-implemented modules

Whenever libyang loads a module that contains a leafref, it will
also implicitly load the module of the referring node if it's
not loaded already. That makes sense as otherwise it wouldn't be
possible to validate the leafref value correctly.

The problem is that loading a module implicitly violates the
assumption of the northbound layer that all loaded modules
are implemented (i.e. they have a northbound node associated
to each schema node). This means that loading a module that
isn't implemented can lead to crashes as the "priv" pointer
of schema nodes is no longer guaranteed to be valid. To fix this
problem, add a few null checks to ignore data nodes associated
to non-implemented modules.

The side effect of this change is harmless. If a daemon receives
configuration it doesn't support (e.g. BFD peers on staticd),
that configuration will be stored but otherwise ignored. This can
only happen when using a northbound client like gRPC, as the CLI
will never send to a daemon a command it doesn't support. This
minor problem should go away in the long run as FRR migrates to
a centralized management model, at which point the YANG-modeled
configuration of all daemons will be maintained in a single place.

Finally, update some daemons to stop implementing YANG modules
they don't need to (i.e. revert 1b741a01c and a74b47f5).

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agoMerge pull request #7075 from donaldsharp/snap_fix
Martin Winter [Fri, 11 Sep 2020 13:40:00 +0000 (15:40 +0200)]
Merge pull request #7075 from donaldsharp/snap_fix

snapcraft: Update libyang version

4 years agoMerge pull request #7085 from donaldsharp/nhrpd-leafref-workaround
Rafael Zalamena [Fri, 11 Sep 2020 13:37:53 +0000 (10:37 -0300)]
Merge pull request #7085 from donaldsharp/nhrpd-leafref-workaround

nhrpd: add frr-vrf to the list of implemented yang modules

4 years agonhrpd: add frr-vrf to the list of implemented yang modules
Donald Sharp [Fri, 11 Sep 2020 12:51:05 +0000 (08:51 -0400)]
nhrpd: add frr-vrf to the list of implemented yang modules

PR #6376 introduced a VRF leafref in the frr-interface YANG module.
That change exposed a bug in the northbound layer that is causing
nhrpd to crash under certain circumstances. Even though nhrpd wasn't
converted to the new northbound model yet, make it implement the
frr-vrf module in order to work around this problem. This is a
temporary fix until a better solution is available.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agoMerge pull request #7078 from sworleys/RPM-Doc-Blurb
Jafar Al-Gharaibeh [Fri, 11 Sep 2020 05:27:50 +0000 (00:27 -0500)]
Merge pull request #7078 from sworleys/RPM-Doc-Blurb

doc: add blurb for rpm package server in overview

4 years agodoc: add blurb for rpm package server in overview
Stephen Worley [Thu, 10 Sep 2020 21:16:11 +0000 (17:16 -0400)]
doc: add blurb for rpm package server in overview

Add a blurb about the rpm package server in the overview page
so its easier to know where it is. Should be with the debian
one anyway.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
4 years agosnapcraft: Update libyang version
Donald Sharp [Thu, 10 Sep 2020 11:48:53 +0000 (07:48 -0400)]
snapcraft: Update libyang version

Update the snapcraft build of libyang to the version we
actually want to be using v1.0.184

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agoMerge pull request #6827 from maduri111/bgpd-show-bgp-all
Donatas Abraitis [Thu, 10 Sep 2020 12:11:14 +0000 (15:11 +0300)]
Merge pull request #6827 from maduri111/bgpd-show-bgp-all

bgpd: show <ip> bgp <ipv4/ipv6> all

4 years agoMerge pull request #7064 from donaldsharp/bgp_timings_faster
Donatas Abraitis [Thu, 10 Sep 2020 12:10:11 +0000 (15:10 +0300)]
Merge pull request #7064 from donaldsharp/bgp_timings_faster

tests: Modify bgpd.conf to have faster keepalive/hold timers

4 years agoMerge pull request #7070 from opensourcerouting/pbrd-leafref-workaround
Donald Sharp [Thu, 10 Sep 2020 02:10:00 +0000 (22:10 -0400)]
Merge pull request #7070 from opensourcerouting/pbrd-leafref-workaround

pbrd: add frr-vrf to the list of implemented yang modules

4 years agopbrd: add frr-vrf to the list of implemented yang modules
Renato Westphal [Thu, 10 Sep 2020 01:31:59 +0000 (22:31 -0300)]
pbrd: add frr-vrf to the list of implemented yang modules

PR #6376 introduced a VRF leafref in the frr-interface YANG module.
That change exposed a bug in the northbound layer that is causing
pbrd to crash under certain circumstances. Even though pbrd wasn't
converted to the new northbound model yet, make it implement the
frr-vrf module in order to work around this problem. This is a
temporary fix until a better solution is available.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
4 years agoisisd: ldp-igp-sync feature: adding isis support
lynne [Wed, 22 Jul 2020 18:32:35 +0000 (14:32 -0400)]
isisd: ldp-igp-sync feature: adding isis support

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
Signed-off-by: Karen Schoener <karen@voltanet.io>
4 years agoospfd: ldp-igp-sync feature: adding ospf support
lynne [Wed, 22 Jul 2020 17:31:14 +0000 (13:31 -0400)]
ospfd: ldp-igp-sync feature: adding ospf support

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
Signed-off-by: Karen Schoener <karen@voltanet.io>
4 years agolib: adding support for LDP IGP Sync feature
Karen Schoener [Wed, 22 Jul 2020 16:41:57 +0000 (12:41 -0400)]
lib: adding support for LDP IGP Sync feature

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
Signed-off-by: Karen Schoener <karen@voltanet.io>
4 years agoldpd: adding topotests for the LDP IGP Sync feature
Karen Schoener [Wed, 22 Jul 2020 16:18:29 +0000 (12:18 -0400)]
ldpd: adding topotests for the LDP IGP Sync feature

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
Signed-off-by: Karen Schoener <karen@voltanet.io>
4 years agoldpd: Adding support for LDP IGP Synchronization
Karen Schoener [Wed, 22 Jul 2020 16:10:59 +0000 (12:10 -0400)]
ldpd: Adding support for LDP IGP Synchronization

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
Signed-off-by: Karen Schoener <karen@voltanet.io>
4 years ago*: Update version string
Donald Sharp [Wed, 9 Sep 2020 14:10:54 +0000 (10:10 -0400)]
*: Update version string

Update the version string to reflect work towards next release

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agoMerge pull request #7047 from qlyoung/fix-zlog-target-null-deref
Mark Stapp [Tue, 8 Sep 2020 19:25:08 +0000 (15:25 -0400)]
Merge pull request #7047 from qlyoung/fix-zlog-target-null-deref

lib: fix possible null dereference in zlog

4 years agoMerge pull request #7031 from dslicenc/global-bgp-update-delay
Donatas Abraitis [Tue, 8 Sep 2020 18:43:51 +0000 (21:43 +0300)]
Merge pull request #7031 from dslicenc/global-bgp-update-delay

Global bgp update delay

4 years agoMerge pull request #7032 from qlyoung/devdocs-libyang-hashtable
Mark Stapp [Tue, 8 Sep 2020 17:03:16 +0000 (13:03 -0400)]
Merge pull request #7032 from qlyoung/devdocs-libyang-hashtable

Dev docs update for libyang, hash table invariants

4 years agotests: Modify bgpd.conf to have faster keepalive/hold timers
Donald Sharp [Tue, 8 Sep 2020 16:56:55 +0000 (12:56 -0400)]
tests: Modify bgpd.conf to have faster keepalive/hold timers

Modify bgpd.conf in all easily accessible topotests to use 3 10
as their timers du jour.  This will allow the tests to converge
faster.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
4 years agodoc: update libyang blurb for 1.x
Quentin Young [Tue, 1 Sep 2020 18:10:20 +0000 (14:10 -0400)]
doc: update libyang blurb for 1.x

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agodoc: add notes about hash table invariants
Quentin Young [Tue, 1 Sep 2020 18:10:06 +0000 (14:10 -0400)]
doc: add notes about hash table invariants

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agoMerge pull request #6376 from opensourcerouting/bump-libyang-req-version-1.x
Donald Sharp [Tue, 8 Sep 2020 16:06:10 +0000 (12:06 -0400)]
Merge pull request #6376 from opensourcerouting/bump-libyang-req-version-1.x

build, yang: bump libyang minimum required version to 1.0.184

4 years agolib: fix possible null dereference in zlog
Quentin Young [Wed, 2 Sep 2020 21:24:54 +0000 (17:24 -0400)]
lib: fix possible null dereference in zlog

In some cases one or both of the zlog targets in use here can be null,
we need to check for that.

Interestingly it appears we don't crash even when this is the case.
Undefined behavior ftw

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agoMerge pull request #6969 from ton31337/feature/autoshutdown_if_rtt_higher_than_specified
Russ White [Tue, 8 Sep 2020 15:28:40 +0000 (11:28 -0400)]
Merge pull request #6969 from ton31337/feature/autoshutdown_if_rtt_higher_than_specified

bgpd: Add `neighbor <neigh> shutdown rtt` command

4 years agotopotests: Add test for bgp update-delay configuration
Don slice [Fri, 28 Aug 2020 19:53:03 +0000 (15:53 -0400)]
topotests: Add test for bgp update-delay configuration

Signed-off-by: Don Slice <dslice@nvidia.com>
4 years agobgpd: add global config for update-delay
Don slice [Wed, 5 Aug 2020 19:08:17 +0000 (19:08 +0000)]
bgpd: add global config for update-delay

Enhancement to update-delay configuration to allow setting globally
rather than per-instance.  Setting the update-delay is allowed either
per-vrf or globally, but not both at the same time.

Ticket: CM-31096
Signed-off-by: Don Slice <dslice@nvidia.com>
4 years agodoc: Add `neighbor <x.x.x.x.> shutdown rtt <milliseconds>`
Donatas Abraitis [Tue, 18 Aug 2020 20:08:16 +0000 (23:08 +0300)]
doc: Add `neighbor <x.x.x.x.> shutdown rtt <milliseconds>`

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agobgpd: Add `neighbor <neigh> shutdown rtt` command
Donatas Abraitis [Sat, 25 Jul 2020 06:10:56 +0000 (09:10 +0300)]
bgpd: Add `neighbor <neigh> shutdown rtt` command

This would be useful in cases with lots of peers and shutdown them
automatically if RTT goes above the specified limit.

A host with 512 or more IPv6 addresses has a higher latency due to
ipv6_addr_label(). This method tries to pick the best candidate address
fo outgoing connection and literally increases processing latency.

```
Samples: 28  of event 'cycles', Event count (approx.): 22131542
  Children      Self  Command  Shared Object      Symbol
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] entry_SYSCALL_64_fastpath
  +  100.00%     0.00%  ping6    [unknown]          [.] 0x0df0ad0b8047022a
  +  100.00%     0.00%  ping6    libc-2.17.so       [.] __sendto_nocancel
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] sys_sendto
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] SYSC_sendto
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] sock_sendmsg
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] inet_sendmsg
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] rawv6_sendmsg
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] ip6_dst_lookup_flow
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] ip6_dst_lookup_tail
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] ip6_route_get_saddr
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] ipv6_dev_get_saddr
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] __ipv6_dev_get_saddr
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] ipv6_get_saddr_eval
  +  100.00%     0.00%  ping6    [kernel.kallsyms]  [k] ipv6_addr_label
  +  100.00%   100.00%  ping6    [kernel.kallsyms]  [k] __ipv6_addr_label
  +    0.00%     0.00%  ping6    [kernel.kallsyms]  [k] schedule
```

This is how it works:

```
~# vtysh -c 'show bgp neigh 192.168.0.2 json' | jq '."192.168.0.2".estimatedRttInMsecs'
9
~# tc qdisc add dev eth1 root netem delay 120ms
~# vtysh -c 'show bgp neigh 192.168.0.2 json' | jq '."192.168.0.2".estimatedRttInMsecs'
89
~# vtysh -c 'show bgp neigh 192.168.0.2 json' | jq '."192.168.0.2".estimatedRttInMsecs'
null
~# vtysh -c 'show bgp neigh 192.168.0.2 json' | jq '."192.168.0.2".lastResetDueTo'
"Admin. shutdown"
```

Warning message:
bgpd[14807]: 192.168.0.2 shutdown due to high round-trip-time (200ms > 150ms)

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agobgpd: Update RTT on KEEPALIVE message
Donatas Abraitis [Sat, 25 Jul 2020 06:10:15 +0000 (09:10 +0300)]
bgpd: Update RTT on KEEPALIVE message

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
4 years agoMerge pull request #6982 from achernavin22/ospf_nssa_after_redist
Santosh P K [Mon, 7 Sep 2020 12:54:41 +0000 (18:24 +0530)]
Merge pull request #6982 from achernavin22/ospf_nssa_after_redist

ospfd: install Type-7 when NSSA enabled after redistribution

4 years agoMerge pull request #7040 from qlyoung/fix-evpn-attribute-hash-error
Donatas Abraitis [Sat, 5 Sep 2020 12:47:38 +0000 (15:47 +0300)]
Merge pull request #7040 from qlyoung/fix-evpn-attribute-hash-error

bgpd: modify attr fields before hash insert

4 years agoMerge pull request #7037 from volta-networks/fix_traps_bgp
Donatas Abraitis [Sat, 5 Sep 2020 05:28:19 +0000 (08:28 +0300)]
Merge pull request #7037 from volta-networks/fix_traps_bgp

Fix bgpBackwardTransition traps

4 years agoMerge pull request #7051 from donaldsharp/ospf_test_speedup
Donatas Abraitis [Sat, 5 Sep 2020 05:17:31 +0000 (08:17 +0300)]
Merge pull request #7051 from donaldsharp/ospf_test_speedup

Ospf test speedup

4 years agoMerge pull request #7054 from qlyoung/fix-bgp-mplsvpn-nlri-missing-length-checks
Donatas Abraitis [Sat, 5 Sep 2020 05:17:15 +0000 (08:17 +0300)]
Merge pull request #7054 from qlyoung/fix-bgp-mplsvpn-nlri-missing-length-checks

bgpd: fix mplsvpn nlri garbage heap read

4 years agoMerge pull request #7046 from qlyoung/fix-various-integer-issues
Renato Westphal [Sat, 5 Sep 2020 01:33:48 +0000 (22:33 -0300)]
Merge pull request #7046 from qlyoung/fix-various-integer-issues

Fix various integer signedness / overflow issues

4 years agoMerge pull request #7055 from qlyoung/fix-bgp-localpref-overflow
Renato Westphal [Fri, 4 Sep 2020 21:56:46 +0000 (18:56 -0300)]
Merge pull request #7055 from qlyoung/fix-bgp-localpref-overflow

bgpd: fix asserting read of localpref

4 years agoMerge pull request #6934 from Niral-Networks/niral_dev_vrf_isis_core_pr4
Renato Westphal [Fri, 4 Sep 2020 21:44:56 +0000 (18:44 -0300)]
Merge pull request #6934 from Niral-Networks/niral_dev_vrf_isis_core_pr4

isisd, yang, doc : Support for different VRF in ISIS.

4 years agoMerge pull request #6971 from volta-networks/fix_ldp_no_config
Renato Westphal [Fri, 4 Sep 2020 19:39:16 +0000 (16:39 -0300)]
Merge pull request #6971 from volta-networks/fix_ldp_no_config

ldpd: Fix issue when starting up LDP with no configuration.

4 years agoMerge pull request #6589 from NaveenThanikachalam/gr_fixes
Donatas Abraitis [Fri, 4 Sep 2020 15:39:26 +0000 (18:39 +0300)]
Merge pull request #6589 from NaveenThanikachalam/gr_fixes

bgpd: GR fixes

4 years agoldpd: Fix issue when starting up LDP with no configuration.
lynne [Wed, 12 Aug 2020 23:15:24 +0000 (19:15 -0400)]
ldpd: Fix issue when starting up LDP with no configuration.

LDP would mark all routes as learned on a non-ldp interface.  Then
when LDP was configured the labels were not updated correctly.  This
commit fixes issues 6841 and 6842.

Signed-off-by: Lynne Morrison <lynne@voltanet.io>
4 years agoMerge pull request #6826 from pjdruddy/bgp-auth-vrf-frr
Donatas Abraitis [Fri, 4 Sep 2020 13:03:47 +0000 (16:03 +0300)]
Merge pull request #6826 from pjdruddy/bgp-auth-vrf-frr

Bgp auth vrf frr

4 years agoMerge pull request #7053 from mjstapp/fix_ospf6_intf_sa
Donald Sharp [Fri, 4 Sep 2020 10:47:07 +0000 (06:47 -0400)]
Merge pull request #7053 from mjstapp/fix_ospf6_intf_sa

ospf6d: fix SA warning

4 years agoMerge pull request #7052 from mjstapp/fix_stream_get_data
Donald Sharp [Fri, 4 Sep 2020 00:45:05 +0000 (20:45 -0400)]
Merge pull request #7052 from mjstapp/fix_stream_get_data

lib: remove unused stream_get_data api

4 years agoMerge pull request #6891 from opensourcerouting/feature/sr-te-bgpd
Donald Sharp [Thu, 3 Sep 2020 18:52:30 +0000 (14:52 -0400)]
Merge pull request #6891 from opensourcerouting/feature/sr-te-bgpd

bgpd: Add support for SR-TE Policies in route-maps

4 years agobgpd: use stream_rewind_getp() to remove overflow
Quentin Young [Wed, 2 Sep 2020 20:44:13 +0000 (16:44 -0400)]
bgpd: use stream_rewind_getp() to remove overflow

Passing a negative argument to a size_t parameter creates an overflow
condition

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agolib: add stream_rewind_getp()
Quentin Young [Wed, 2 Sep 2020 20:43:29 +0000 (16:43 -0400)]
lib: add stream_rewind_getp()

stream_forward_getp() cannot be used with negative numbers due to the
size_t argument, we'll end up doing overflow arithmetic.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
4 years agobgpd: fix asserting read of localpref
Quentin Young [Thu, 3 Sep 2020 18:10:33 +0000 (14:10 -0400)]
bgpd: fix asserting read of localpref

Attribute may not be long enough to contain a localpref value, resulting
in an assert on stream size. Gracefully handle this case instead.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>