Commit Graph

19747 Commits

Author SHA1 Message Date
Quentin Young
04d6a0f823 ospfd: router LSA link info missing length check
Fix
- Modulo check on data length not inclusive enough
- Garbage heap read when bounds checking

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-04-14 11:29:10 -04:00
Stephen Worley
f732636d70 pbrd: fix wording in pbr_send_pbr_map comment
Fix some bad wording in a comment when deciding whether
to send a pbr map sequence to zebra.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2020-04-14 11:09:54 -04:00
Rafael Zalamena
018e77bcb5 zebra: data plane FPM RIB walk code
Implement the code that walks the RIB to send routes that are already
inside the RIB.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-04-14 11:44:39 -03:00
Rafael Zalamena
d35f447d67 zebra: data plane plugin for FPM netlink
Initial import of the new zebra data plane plugin for FPM netlink.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-04-14 11:44:39 -03:00
Mark Stapp
f73a84672d zebra: dataplane context reset and init apis
Add a public reset api, so a context can be reset and reused;
add apis to init a context for a route or mac update.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-04-14 11:44:39 -03:00
Rafael Zalamena
f78fe8f3d6 zebra: export netlink function and change return
Instead of retuning always `0`, lets return the amount of used bytes for
the message. This will be used by the new FPM interface to know how many
bytes we must reserve for the output buffer.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-04-14 11:44:39 -03:00
Rafael Zalamena
b9c875150b zebra: simplify netlink_route_multipath
*   Remove variable `family`;
*   Remove always false `RTM_DELROUTE` checks;

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-04-14 11:44:39 -03:00
Rafael Zalamena
9266b31568 zebra: simplify some netlink debug messages
*   Use `inet_ntop` instead of `inet_ntoa`
*   Replace function name with `__func__`
*   Inline functions

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-04-14 11:44:39 -03:00
Rafael Zalamena
e57a3fab68 zebra: generalize netlink route talk function
Generalize the netlink route message building function so it can be used
in the future by the netlink Forwarding Plane Manager (FPM) interface.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-04-14 10:40:50 -03:00
Russ White
897cb75e8d
Merge pull request #6201 from adharkar/frr-master-fpm_mac
zebra: Address sequencing issue while sending RMAC via FPM
2020-04-14 09:30:47 -04:00
Russ White
65de4283e8
Merge pull request #6219 from qlyoung/fix-ospf-opaque-so-lsa-uaf
ospfd: fix uaf upon rx of self-originated lsa
2020-04-14 09:18:38 -04:00
Donatas Abraitis
8971c2d828 tests: Describe each scenario for rfc8212 to ease debugging
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-04-14 16:01:46 +03:00
Donatas Abraitis
8955d9e535 doc: Mention that rfc8212 is enabled by default
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-04-14 16:01:46 +03:00
Donatas Abraitis
74f852e33b tests: Remove extra empty vertical spaces
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-04-14 16:01:46 +03:00
Donatas Abraitis
c7688a6943 tests: Enable rfc8212 by default except datacenter profile
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-04-14 16:01:46 +03:00
Donatas Abraitis
1d3fdccfe1 bgpd: Enable rfc8212 by default except datacenter profile
Some competitive vendors like Cisco, Bird, OpenBGPD,
Nokia already have this by default enabled.

The list is here: https://github.com/bgp/RFC8212

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-04-14 16:01:46 +03:00
Donatas Abraitis
0b60953ed4
Merge pull request #6221 from opensourcerouting/defaults-fix-version-cmp
lib/defaults: fix version number comparison
2020-04-14 16:01:21 +03:00
Donald Sharp
950b395e8e
Merge pull request #6011 from patrasar/pim-no-msdp-group-cmd
pimd: added no ip msdp mesh-group <word>
2020-04-14 08:35:09 -04:00
Rafael Zalamena
2b21c5500d doc: update BFD debugging section
Show more information about BFD debug feature.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-04-14 09:35:08 -03:00
Rafael Zalamena
9532601587 topotest: enable bfd debugs on all BFD tests
Lets attempt to get the most out of the debug messages.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-04-14 09:35:08 -03:00
Rafael Zalamena
24843702a0 bfdd: add more zebra debug messages
Uncomment old debug about relayed messages from zebra.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-04-14 09:35:08 -03:00
Rafael Zalamena
6e10bd9772 bfdd: constify satostr
Detect modifications to the `sockaddr_any` struct.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-04-14 09:35:08 -03:00
Rafael Zalamena
869dada534 bfdd: remove time calculation debugs
These were disabled by default and not used by a long time.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-04-14 09:35:08 -03:00
Rafael Zalamena
08de92aff3 bfdd: simplify code flow
Don't attempt to handle out-of-memory situations: XMALLOC/XCALLOC will
`assert` if there is no memory left.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-04-14 09:35:08 -03:00
Rafael Zalamena
48da2c3169 bfdd: add debug fine tuning capabilities
Move most of the log messages to debug guards so they only get activated
if the user configured the proper debug level.

Current debug levels:
- Peer events.
- Zebra events.
- Network layer debugs.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-04-14 09:35:08 -03:00
Donald Sharp
f32b16b09f
Merge pull request #6017 from sarav511/ovrride
pimd: Join not sent within prune override time when received non local prune
2020-04-14 08:32:32 -04:00
David Lamparter
682cb2a455
Merge pull request #6196 from dslicenc/ospf6d-brouter-loop
ospf6d: stop looping thru same Inter-Area Router LSAs
2020-04-14 14:12:17 +02:00
Mark Stapp
f924db4961 zebra: fix some coverity SA warnings
Fix several coverity scan warnings.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-04-14 07:44:54 -04:00
David Lamparter
d29c01db81 lib/defaults: don't use "static" in a weird way
This didn't break anything but it's not really correct either.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2020-04-14 13:25:25 +02:00
David Lamparter
7b8c2b3d66 lib/defaults: more bool confusion
Sigh.  Initializing a bool to -1 gives 1.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2020-04-14 13:25:25 +02:00
David Lamparter
feaabe472d
Merge pull request #5988 from xThaid/zebra_vrf_logs
zebra: Add vrf name and id to debugs
2020-04-14 12:52:31 +02:00
David Lamparter
f1a8dbf74f
Merge pull request #6215 from vivek-cumulus/wtecmp_linkbw_doc
doc: Documentation for weighted ECMP and link bandwidth
2020-04-14 12:45:12 +02:00
Quentin Young
f45be0e105 ospfd: fix uaf upon rx of self-originated lsa
ospf_opaque_self_originated_lsa_received decrements refcount which can
result in a free, this is followed by a call to ospf_ls_ack_send which
accesses the freed LSA

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-04-14 01:43:13 -04:00
vivek
ed647ed2da doc: Documentation for weighted ECMP and link bandwidth
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2020-04-13 20:20:19 -07:00
Renato Westphal
1b0f1cb4d7
Merge pull request #5892 from qlyoung/fix-zclient-many
assorted lib / zclient fixes
2020-04-13 22:48:28 -03:00
Quentin Young
cff0de128d lib: fix SA warning in vrf creation zapi handler
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-04-13 17:03:48 -04:00
Quentin Young
41ce53847b lib: fix if_set_value
Something in there is wrong and causing test failures. Moving it back to
how it was; we'll stil assert if the message was wrong, just in a
different place now.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-04-13 17:03:48 -04:00
Quentin Young
f7d4592509 lib: work around enum issue in old gcc
I'd like to keep the explicit check here, but since underlying type of
enum is implementation defined, theres some inconsistency using -Wall
-Werror in older compilers here

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-04-13 17:03:42 -04:00
Quentin Young
4b010cf44d
Merge pull request #6213 from ton31337/fix/moar_bool_stuff
bgpd: Replace 0 to false for bool assignment in bgp_update_martian_ne…
2020-04-13 14:11:23 -04:00
Mark Stapp
8132da4e55
Merge pull request #6210 from donaldsharp/sharp_labels
sharpd: Allow sharpd to specify it's own routes for label changes
2020-04-13 13:56:03 -04:00
Donatas Abraitis
2dbe3fa97b bgpd: Replace 0 to false for bool assignment in bgp_update_martian_nexthop()
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-04-13 20:39:31 +03:00
Quentin Young
e4f5680d6e lib: re-add accidentally deleted pfx family set
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-04-13 13:25:25 -04:00
Quentin Young
6063ede092 lib: improve sanity check on vrf backend value
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-04-13 13:25:25 -04:00
Quentin Young
67f8158620 lib: handle failure to change ifindex
This fixes a theoretical bug that could occur when trying to change an
ifindex on an interface to that of an existing interface. We would
remove the interface from the ifindex tree, and change the ifindex, but
when we tried to reinsert the interface, the insert would fail. It was
impossible to know if this failed due to the insertion / deletion macros
capturing the result value of the underlying BSD tree macros. So we
would effectively delete the interface.

Instead of failing on insert, we just check if the prospective ifindex
already exists and return -1 if it does.

Macros have been changed to statement expressions so the result can be
checked, and bubbled up.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-04-13 13:25:25 -04:00
Quentin Young
f17a9d0a07 lib: more zclient fixes; str termination, vrfs...
* Don't crash if we get a request to create an existing VRF
* Ensure interface & vrf names are null terminated...again

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-04-13 13:25:25 -04:00
Quentin Young
229d0d4edc lib: don't crash on iface add for unknown vrf
If Zebra sends us an interface add notification with a garbage VRF we
crash on an assert(vrf_get(vrf_id, NULL)); let's not

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-04-13 13:25:25 -04:00
Quentin Young
b98edbccf8 lib: ensure iface name is null terminated
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-04-13 13:25:25 -04:00
Quentin Young
7239d3d9e6 lib: handle bogus VRF backend type
And use an enum...

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-04-13 13:25:25 -04:00
Quentin Young
efc7191bbe lib: make all zclient.[ch] stream funcs safe
Use STREAM_GET* variants of stream getters, which all have non-assert
error paths.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-04-13 13:25:25 -04:00
Quentin Young
c2b5a4e5ff lib: add STREAM_GETQ, STREAM_GETF
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-04-13 13:25:25 -04:00