Commit Graph

20948 Commits

Author SHA1 Message Date
Donald Sharp
0a822f99bf lib: Remove debug associated with vrf_get
The vrf_get function is called throughout the code base
so much so that when you turn on vrf debugging it eclipses
everything else to a degree that is completely unreasonable.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2020-09-18 07:14:55 -04:00
Donald Sharp
c7384cf86a lib: Add vrf name to vrf debugs
The vrf name was not being printed out in some vrf debugs.  Add
this data in so people don't have to remember the vrf id.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2020-09-17 20:17:14 -04:00
Donald Sharp
0cbee799d5 lib: Actually call nexthop_group_disable_vrf
When the nexthop-groups were added to FRR for some
reason the call to nexthop_group_disable_vrf was
not added although it was written.

Add it in.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2020-09-17 20:13:44 -04:00
Donatas Abraitis
70d400cefa
Merge pull request #7114 from donaldsharp/tip_count
bgpd: Avoid memset when tip hash is empty
2020-09-17 15:10:13 +03:00
Donatas Abraitis
893774e324
Merge pull request #7108 from qlyoung/remove-double-holdtimer-cancel
bgpd: remove extra hold-timer reset
2020-09-17 15:08:49 +03:00
Rafael Zalamena
1d03dd3527
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
2020-09-17 07:03:36 -03:00
Donald Sharp
32e3ca2bcc
Merge pull request #7103 from opensourcerouting/sysrepo-fixes
lib: sysrepo plugin fixes
2020-09-16 20:34:53 -04:00
Anuradha Karuppiah
fb8f609d48 zebra: fixup a neigh del bug introduced by a previous commit for MAC-IP sync
Problem commit -
[
b169fd6fd5 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>
2020-09-16 17:32:33 -07:00
Donald Sharp
3584c85e92 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>
2020-09-16 17:48:15 -04:00
Martin Winter
576cada54c
Merge pull request #7066 from donaldsharp/more_test_speedups
tests: Speed up topotests by being more aggressive
2020-09-16 22:27:16 +02:00
Patrick Ruddy
f6374bd9b7
Merge pull request #7107 from AnuradhaKaruppiah/mh-cleanup
zebra: re-name some mh functions to make the code more readable
2020-09-16 15:42:49 +01:00
Rafael Zalamena
e20c2ae2f5
Merge pull request #7106 from AnuradhaKaruppiah/dad-mh-fix
zebra: dup detected mac avoid update to bgpd
2020-09-16 09:31:00 -03:00
Rafael Zalamena
8fa28e23b5
Merge pull request #7109 from qlyoung/set-threadmaster-default-name
lib: set threadmaster name to 'default' if none
2020-09-16 09:30:12 -03:00
Rafael Zalamena
d36d37a4dc
Merge pull request #7105 from AnuradhaKaruppiah/l3vni-ecom-leak
bgpd: fix ecom leak handling l3vni update
2020-09-16 07:34:09 -03:00
Quentin Young
7ffcd8bd2d 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>
2020-09-15 20:16:56 -04:00
Quentin Young
765b07d9ff 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>
2020-09-15 20:15:08 -04:00
Anuradha Karuppiah
945ee7b272 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>
2020-09-15 16:24:59 -07:00
Chirag Shah
839dfe29a6 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>
2020-09-15 16:12:44 -07:00
Quentin Young
84f22ecc05 bgpd: fix ecom leak handling l3vni update
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-09-15 16:06:58 -07:00
Mark Stapp
171b364c7a
Merge pull request #6905 from gpnaveen/topojson_kernel_version_check
tests: Kernel version check for topojson scripts.
2020-09-15 15:43:25 -04:00
Renato Westphal
bbeaa0333c 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>
2020-09-15 16:00:07 -03:00
Renato Westphal
7dac19f7de 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>
2020-09-15 15:56:53 -03:00
Renato Westphal
88e635ee63 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>
2020-09-15 15:55:55 -03:00
Lou Berger
eac139f8f2
Merge pull request #7099 from mjstapp/fix_doc_thread_rw
doc: clarify independence of THREAD_READ and _WRITE
2020-09-15 11:20:13 -04:00
Renato Westphal
ba25d6d241
Merge pull request #7082 from volta-networks/fix_isis_pseudo_lsp
isisd: fix pseudonode LSP bug
2020-09-15 11:25:04 -03:00
Renato Westphal
4a9dc77a4d
Merge pull request #7083 from volta-networks/isis_route_logs_improve
isisd: improve route-event logs
2020-09-15 11:24:53 -03:00
nguggarigoud
f052d1fc39 tests: Addressing lint error.
Added new line to remove git link error.

Signed-off-by: naveen <nguggarigoud@vmware.com>
2020-09-15 15:51:07 +05:30
nguggarigoud
955212d91b tests: fixing pytest.skip error.
Updated scripts to handle skip on lower
kernel version.

Signed-off-by: naveen <nguggarigoud@vmware.com>
2020-09-15 15:44:10 +05:30
naveen
3dfd384ec4 tests: Moving kernel version check to API.
Signed-off-by: naveen <nguggarigoud@vmware.com>
2020-09-15 15:44:10 +05:30
naveen
eb5e807234 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>
2020-09-15 15:44:10 +05:30
Jafar Al-Gharaibeh
d1ca950e40
Merge pull request #7090 from dslicenc/comm-list-replace
bgpd: correct community-list replace logic
2020-09-14 10:42:10 -05:00
Mark Stapp
942432619e 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>
2020-09-14 11:01:44 -04:00
Mark Stapp
cfa2115d02
Merge pull request #7093 from donaldsharp/pbr_flapping
Pbr flapping
2020-09-14 08:13:48 -04:00
Donatas Abraitis
57bbd777a7
Merge pull request #7065 from idryzhov/bgp-deprecated
bgpd: remove deprecated commands
2020-09-14 12:45:08 +03:00
Emanuele Di Pascale
1b2b26778e 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>
2020-09-14 09:40:10 +02:00
Emanuele Di Pascale
2286851d4c 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>
2020-09-14 09:39:21 +02:00
Igor Ryzhov
a1d3a2a626 bgpd: remove deprecated commands
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2020-09-13 23:57:09 +03:00
Jafar Al-Gharaibeh
cc44f5435e
Merge pull request #7092 from sworleys/RPM-Link-Fix
doc: fix rpm link under libyang help
2020-09-12 09:22:17 -05:00
Donald Sharp
43373bea5a
Merge pull request #7091 from opensourcerouting/nb-leafrefs
lib: fix crashes with leafrefs that point to non-implemented modules
2020-09-12 09:29:33 -04:00
Don Slice
96e2fd256a 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>
2020-09-12 06:17:32 -07:00
Jafar Al-Gharaibeh
2c03a60bb8
Merge pull request #7084 from donaldsharp/pim_limitations
pimd: Warn when we try to build MAXVIFS > 256
2020-09-11 22:15:02 -05:00
Jafar Al-Gharaibeh
58e6747297
Merge pull request #7095 from donaldsharp/coverity_5
isisd: ifp cannot be NULL
2020-09-11 22:07:56 -05:00
Donald Sharp
9fa352cfb7 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>
2020-09-11 20:20:42 -04:00
Donald Sharp
2db7c1b436
Merge pull request #7080 from opensourcerouting/staticd-minor-issues
staticd: remove dead code + minor fix
2020-09-11 20:07:19 -04:00
Donald Sharp
4fdd2942c5 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>
2020-09-11 20:06:06 -04:00
Donald Sharp
166a132d35 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>
2020-09-11 20:04:45 -04:00
Donald Sharp
58a1d24924 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>
2020-09-11 20:04:45 -04:00
Renato Westphal
2525fc315a
Merge pull request #6974 from liron-ze/high-cpu-usage
zebra: Solve the problem of high CPU and memory usage when creating t…
2020-09-11 15:59:27 -03:00
Renato Westphal
beb91114ec
Merge pull request #6789 from volta-networks/feat_ldp_igp_sync
ldpd: Add support for LDP-IGP Synchronization
2020-09-11 15:55:04 -03:00
Donald Sharp
491d1cc12b 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>
2020-09-11 14:30:24 -04:00