Commit Graph

14714 Commits

Author SHA1 Message Date
David Lamparter
d8a9134f90
Merge pull request #3804 from qlyoung/build-remove-fPIE-add-fPIC
build: fix automake fart under MSAN
2019-02-18 12:59:41 +01:00
Mark Stapp
786add424c
Merge pull request #3805 from qlyoung/msan-fixes
lib: fix uninitialized value use in privs.c
2019-02-15 15:53:53 -05:00
Quentin Young
09d99a114d
Merge pull request #3798 from robgil/docker-debian9
Quick and dirty debian9 docker image
2019-02-15 13:10:49 -05:00
Quentin Young
fd6611bb4b bgpd: fix automake fart under MSAN
"When building without VNC, automake sees that the `bgpd_bgpd_CFLAGS`
variable exists, although it is only set in the VNC-enabled case... but
since the variable exists, it unconditionally drops `AM_CFLAGS` for the
two bgp targets and uses `bgpd_bgpd_CFLAGS` instead, which will
contain... _nothing_."

This was breaking builds of bgpd binaries with MSAN enabled.

Signed-off-by: David Lamparter <equinox@diac24.net>
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-02-15 17:41:55 +00:00
Quentin Young
72de5f4b5d lib: fix garbage array size in zprivs_init
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-02-15 16:27:55 +00:00
Rob Gil
39e3b9493e
docker: quick and dirty debian 9 img
Signed-off-by: Rob Gil <rob@rem5.com>
2019-02-15 07:42:23 -05:00
Quentin Young
1c77d034e5 lib: fix uninitialized value use in privs.c
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-02-14 19:01:33 +00:00
Rafael Zalamena
09720d3189
Merge pull request #3799 from donaldsharp/show_debugging
Show debugging for bfd
2019-02-14 14:16:38 -02:00
Mark Stapp
1d0c39fbd8
Merge pull request #3791 from sworleys/RT-Braces-rtadv
zebra: Fix CLANG suggestion for braces on init of struct
2019-02-14 09:07:47 -05:00
Donald Sharp
a244e59954 bfdd: Add show debugging [bfd] command
This will prevent vtysh from displaying `command imcomplete`
for a `show debugging` issued and we are running this
bfd daemon.  A quick look showed me that there was not
really the ability to turn on/off debugging like other
daemons.  I imagine future work can be focused here.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-02-13 23:24:05 -05:00
Donald Sharp
6038fe4584 bfdd: Add some code so we can compile from w/ in the bfdd dir
Copy pattern of Makefile from other daemons to allow us to
compile this thingie(tm) from within the bfdd directory.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-02-13 23:23:48 -05:00
Mark Stapp
77a4dd9320
Merge pull request #3794 from donaldsharp/sharp_import_check
Sharp import check
2019-02-13 15:25:02 -05:00
Mark Stapp
c919c6b6ef
Merge pull request #3796 from donaldsharp/mpls_deletion_cleanup
zebra: Deletion of a lsp is not a failure event
2019-02-13 15:19:39 -05:00
Donald Sharp
3fd385c685 zebra: Deletion of a lsp is not a failure event
FRR is reporting that a lsp deletion event as a failure
in the log messsages.  This will lead to confusion and
lots of fun debugging.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-02-13 12:49:59 -05:00
Donald Sharp
cfef27e56e
Merge pull request #3622 from mjstapp/fix_cpp_compile
libs, daemons: changes to permit c++ compilation
2019-02-13 12:47:23 -05:00
Donald Sharp
01490ba25d
Merge pull request #3753 from LabNConsulting/working/master/topotest-l3mdev=1
topotest: bgp_l3vpn_to_bgp_vrf: fix setting of TCP l3mdev
2019-02-13 09:32:43 -05:00
Donald Sharp
80d5ff338d sharpd: Add ability to track import-check nexthops
Add the ability to sharp to track import-check type routes
from the cli.  Update docs too.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-02-13 09:28:38 -05:00
Donald Sharp
b47dc61ade sharpd: Allow the registration of import checks to zebra
Minor code modification to allow the sharp_zebra.c code
to differentiate between import check or nexthop watch
types.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-02-13 09:28:38 -05:00
Donald Sharp
7a197b9269
Merge pull request #3778 from mjstapp/fix_dplane_update
zebra: use update semantics for routes consistently
2019-02-12 19:36:02 -05:00
Stephen Worley
844e918027 zebra: Fix CLANG suggestion for braces on init of struct
CLANG was throwing an error because struct rtadv_rdnss(dnssl) was being
initialized with = {0} instead of {}. Change to be the latter.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2019-02-12 15:24:00 -05:00
David Lamparter
7e737f3d40
Merge pull request #3781 from donaldsharp/pbr_debug
pbrd: Add some missing debugs from external events
2019-02-12 18:07:14 +01:00
David Lamparter
c3b9c7ef68
Merge pull request #3783 from mjstapp/fix_bad_rm_decrement
bgpd: remove route-map decrement call on prefix-list
2019-02-12 18:06:07 +01:00
Mark Stapp
f503d522ec bgpd: remove route-map decrement call on prefix-list
Commit b4897fa5 introduced a call to decrement a route-map counter,
applied to a prefix-list in bgp_rfapi_cfg.c. This commit removes
that call.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2019-02-12 10:10:19 -05:00
David Lamparter
8be328303c
Merge pull request #3773 from pguibert6WIND/bgp_delete_vrfid_unknown
bgpd: if vrf is unknown, bgp deletion not complete
2019-02-12 14:59:39 +01:00
David Lamparter
e0196a847f
Merge pull request #3771 from donaldsharp/eigrp_crash
Eigrp crash
2019-02-12 14:40:09 +01:00
David Lamparter
0fe29323f5
Merge pull request #3723 from slrz/zebra-rtadv-add-rfc8106-support
zebra: add support for IPv6 RA options for DNS configuration (RFC8106)
2019-02-12 14:30:00 +01:00
Donald Sharp
2f61710b73 pbrd: Add some missing debugs from external events
Add some debugs from events that can happen that will
influence our pbr behavior.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-02-12 08:24:58 -05:00
Martin Winter
b7d673c043
Merge pull request #3719 from liam-mcb/master
Revert "redhat: don't Requires initscript on systemd based distros"
2019-02-12 08:54:53 +07:00
David Lamparter
8ed561e1f1 tests: add C++ header compatibility smoke test
Compiling an empty C file with most headers included and -Wc++-compat
gives us a build error if we introduce some stupid C++-incompatible
change.

While this won't catch everything, it's a good start.

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-02-11 22:34:12 -02:00
Renato Westphal
7f04943d6b lib: a few more trivial changes for C++ compatibility
* command_graph.h: stop using "new" as a parameter name as that's a
  reserved C++ keyword.

* module.h: avoid using C99 designated initializers since C++ doesn't
  support them. This change hurts code readability quite considerably,
  so we should try to find a better solution later.

* pw.h: remove unneeded empty structure to silence a C++ warning.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2019-02-11 22:34:12 -02:00
Renato Westphal
343cd13e17 lib: add macro that performs explicit static casts when using a C++ compiler
C++ doesn't support implicit casts from void pointers like C
does. And the libfrr headers have some bits of code that rely on
implicit casts in order to work. To solve this problem, add a new
"static_cast" macro that performs explicit static casts when a C++
compiler is being used, or do nothing otherwise.

NOTE: since macros are only evaluated when they are used, there
might be other macros from libfrr that will need to use "static_cast"
as well. If a header is successfully compiled using a C++ compiler,
there's no guarantee that its macros are compatible with C++. We'll
only know about such macros when they are used by C++ code, then
we'll need to adapt them one by one in the future.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2019-02-11 22:34:12 -02:00
Renato Westphal
c139972c0f lib: rename enum to avoid conflict
Two different definitions of "enum filter_type" exist in libfrr:
one in lib/filter.h and other in lib/command_match.h. Rename one
of them to resolve a conflict that happens when both headers are
included by the same file.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2019-02-11 22:34:12 -02:00
Renato Westphal
5e2444690b lib: add extern "C" {} blocks to all libfrr headers
These are necessary to use functions defined in these headers from C++.

Signed-off-by: David Lamparter <equinox@diac24.net>
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2019-02-11 22:34:12 -02:00
Mark Stapp
8263d1d0d9 zebra: use update semantics for routes consistently
Use 'update' semantics for route updates, to ensure that
netlink replace behavior works correctly.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2019-02-11 16:11:02 -05:00
Lars Seipel
110765e34a zebra: prefer DEFINE_MTYPE_STATIC for local memtypes
Signed-off-by: Lars Seipel <ls@slrz.net>
2019-02-11 21:46:06 +01:00
Donald Sharp
34afe42a80
Merge pull request #3774 from ton31337/fix/ospfd_instances_do_not_connect_to_default
vtysh: Fix typo in function name
2019-02-11 12:52:31 -05:00
David Lamparter
f8cd615bc4 lib: remove unnamed struct in qobj for C++
Signed-off-by: David Lamparter <equinox@diac24.net>
2019-02-11 15:49:49 -02:00
David Lamparter
f3dd45d108 lib: remove extra top-level ;
Signed-off-by: David Lamparter <equinox@diac24.net>
2019-02-11 15:49:49 -02:00
David Lamparter
c8a65463b2 lib: make atomic ops C++ compatible
C++ doesn't have ISO C11 stdatomic.h or "_Atomic inttype", so use
std::atomic instead to get the headers compatible.

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-02-11 15:49:49 -02:00
David Lamparter
be566e4e45 lib: make union prefixptr C++-compatible
Add a no-op conversion constructor to tell C++ that union prefixptr
accepts any of its member types.

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-02-11 15:49:49 -02:00
David Lamparter
cd2d58525e lib: revert table.h change for C++
This reverts the lib/table.h change from commit
049b31f7d810fd70069e3edbbd3fea6b5c7af98f.

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-02-11 15:49:49 -02:00
Mark Stapp
5ad218a655 isisd: rename northbound delete apis
To align with the change to avoid the keyword 'delete', rename
the isis northbound handlers to '_destroy'.

Signed-off-by: Mark Stapp <mjstapp@gmail.com>
2019-02-11 15:49:49 -02:00
Mark Stapp
95ce849b58 libs, rip, isis: change northbound operation enum to DESTROY
Change the northbound lib operation from DELETE to DESTROY;
make the required changes in the users of the northbound, in
the cli, rip, ripng, and isis.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2019-02-11 15:49:49 -02:00
Mark Stapp
d01b92fd75 libs, daemons: changes to permit c++ compilation
Some misc changes to resolve some c++ compilation errors.
The goal is only to permit an external module - a plugin,
for example - to see frr headers, not to support or encourage
contributions in c++. The changes include: avoiding use
of keywords like 'new', 'delete'; cleaning up implicit
type-casting from 'void *' in several places.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2019-02-11 15:49:49 -02:00
Donatas Abraitis
462ea14a8d vtysh: Fix typo in function name
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2019-02-11 18:38:35 +02:00
Philippe Guibert
ee66b77f0e bgpd: if vrf is unknown, bgp deletion not complete
there are some cases where the bgp deletion will not be complete, while
the vrf identifier of the bgp instance is not completely identified. The
vrf search based on the bgp name is the better protection, since the bgp
vrf instance is created, even if the vrf identifier is not yet known.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2019-02-11 14:04:52 +01:00
Donald Sharp
84b5e534e6 eigrpd: Do not redelete the eigrp interface data structure
On interface down do not delete the eigrp interface data
structure.  Ensure that the address that we have setup the
eigrp data structure ontop of is what we are deleting.

Additionally add a test to show that this is no-longer
crashing eigrp.  Future commits will further modify
this test to actually ensure that the eigrp topo is
updated correctly and the rib has the correct data.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-02-11 07:23:23 -05:00
Donald Sharp
051da24eef eigrpd: Correctly handle the ref-count in a couple of spots
The ref count for the eigrp topology table was incorrect in a couple
of spots.  Let's clean it up.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-02-11 07:19:14 -05:00
Donald Sharp
b245781a6b eigrp: Make the eigrp_interface have a prefix instead of a *prefix
The prefix data structure was being freed yet still needed in the
future and it's a fundamental part of the eigrp_interface data
structure let's keep it there instead of having it be deleted
and then not.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-02-11 07:16:35 -05:00
Donald Sharp
5edc2cf3ea eigrpd: Remove unnecessary test for pointer
If we are inside the for loop then eigrp *must* be valid.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-02-11 07:13:41 -05:00