Commit Graph

16256 Commits

Author SHA1 Message Date
Lou Berger
5b5971483e tests/topotests: bgp_l3vpn_to_bgp_vrf double the amount of time to wait during scaling tests
Signed-off-by: Lou Berger <lberger@labn.net>
2019-06-18 11:54:57 +00:00
Lou Berger
90d5fc83c0 tests/topotests: add bgp_instance_del_test to test for crashes seen during bgp instance deletes
Signed-off-by: Lou Berger <lberger@labn.net>
2019-06-18 11:54:57 +00:00
Lou Berger
f4c713ae04 bgpd: handle additional events occuring during instance shutdown
Signed-off-by: Lou Berger <lberger@labn.net>
2019-06-18 11:54:52 +00:00
Lou Berger
5beabde635
Merge pull request #4499 from kssoman/core
bgpd: Process core when bgp instance is deleted
2019-06-13 16:08:11 -04:00
David Lamparter
0688fd81d0
bgpd, lib: Add iana_afi2str and iana_safi2str for eye pleasing strings (#4439)
bgpd, lib: Add iana_afi2str and iana_safi2str for eye pleasing strings
2019-06-13 22:06:49 +02:00
Quentin Young
42aac9b2ab
Merge pull request #4500 from opensourcerouting/clippy-improve
clippy: batch of improvements
2019-06-13 15:06:24 -04:00
Quentin Young
096873bd46
Merge pull request #4509 from opensourcerouting/spanish-intquisition
lib: make printfrr int64_t usable
2019-06-13 14:00:50 -04:00
Donald Sharp
6a81b60a94
Merge pull request #4502 from opensourcerouting/topotest-backward-compat
topotests: backward compatibility fix
2019-06-13 09:19:02 -04:00
Mark Stapp
a8baba69ae
Merge pull request #4448 from opensourcerouting/cxx-container-of
lib: const-unaware container_of for C++
2019-06-13 08:38:05 -04:00
Donald Sharp
230113cf71
Merge pull request #4506 from opensourcerouting/fix-outdated-candidate
lib: fix outdated candidate configuration issue
2019-06-13 06:01:28 -04:00
David Lamparter
8b40649e0d
Docker binary image on Debian Buster (#4504)
Docker binary image on Debian Buster
2019-06-13 00:24:27 +02:00
David Lamparter
16afe1e13b
Merge pull request #4510 from sworleys/DOC-systemd-devel
doc: Add systemd-devel to fedora build instruction
2019-06-12 19:58:17 +02:00
David Lamparter
39c94f89da build: use -O2, not -Os
apparently -Os is quite a bit slower...

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-06-12 19:35:43 +02:00
David Lamparter
b9a0d38d53 tools: add vim snippet
Signed-off-by: David Lamparter <equinox@diac24.net>
2019-06-12 19:35:43 +02:00
David Lamparter
afb35622ef lib: make "%Ld" work for int64_t
... without compiler plugins.

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-06-12 19:35:43 +02:00
David Lamparter
c7179009cf lib: use snprintfrr() in "hidden" printfs
We need to be calling snprintfrr() instead of snprintf() in places that
wrap snprintf in some user-exposed way; otherwise the extensions won't
be available for those functions.

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-06-12 19:35:43 +02:00
David Lamparter
7e5cfaea0a zebra: fix stats printing formats
Signed-off-by: David Lamparter <equinox@diac24.net>
2019-06-12 19:35:43 +02:00
David Lamparter
b41b3f7bf1 lib/clippy: expand some macros
At least the "easy" cases of macros work.

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-06-12 19:23:00 +02:00
David Lamparter
4381a59be0 lib/clippy: assert() for non-optional args
This is mostly to help static analysis; since we know from the command
string which args are optional and which aren't, we can add assert()
statements on them.

Fixes: #3270
Signed-off-by: David Lamparter <equinox@diac24.net>
2019-06-12 19:23:00 +02:00
David Lamparter
3779776a39 lib/clippy: error out on unsupported bits
clippy can't process #ifdef or similar bits inside of an argument list
(e.g. within the braces of a DEFUN or DEFPY statement.)  Improve error
reporting to catch these cases instead of generating broken C code.

Fixes: #3840
Signed-off-by: David Lamparter <equinox@diac24.net>
2019-06-12 19:22:59 +02:00
David Lamparter
72ad94d548 build: improve env var handling for cross build
We can use `$ac_precious_vars` to get at autoconf's conception of which
environment variables are relevant.  This makes "HOST_..." setup more
consistent for cross-compilation setups.

Fixes: #4006
Signed-off-by: David Lamparter <equinox@diac24.net>
2019-06-12 19:22:59 +02:00
David Lamparter
a71c5039ad build: improve clippy options
* adds a `--with-clippy=...` option to use a prebuilt clippy binary
* limits the autoconf tests done for `--enable-clippy-only`
  (e.g. no libyang)

Fixes: #3921
Fixes: #4006
Signed-off-by: David Lamparter <equinox@diac24.net>
2019-06-12 19:22:59 +02:00
David Lamparter
102f26e611 build: remove tests/Makefile.in
this was accidentally added in 370c8e07

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-06-12 19:22:59 +02:00
David Lamparter
1af5b6d9a3 build: use -Wno-yacc on bison 3.3+
we only support bison, we don't care about yacc compatibility.

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-06-12 19:22:59 +02:00
David Lamparter
2655e41fa2 build: slim down configure.ac
Quite a few tests are deprecated/unnecessary at this point.  Remove
everything that is pointless.

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-06-12 19:22:55 +02:00
Stephen Worley
c7e8718cbd doc: Add systemd-devel to fedora build instruction
systemd-devel is a neccessary package for building frr, added to
the install list.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2019-06-12 11:59:21 -04:00
Renato Westphal
eaf6705d7a lib: fix outdated candidate configuration issue
Even when using the classic CLI mode (i.e. when --tcli is not
used), the northbound code still uses vty->candidate_config
to perform configuration changes. From the perspective of the
user, the running configuration is being edited directly, but
under the hood the northbound layer does a full configuration
transaction for each command.  When the running configuration is
edited by a northbound client other than the CLI (e.g. kernel,
gRPC), vty->candidate_config might become outdated, and this can
lead to lots of weird problems. To fix this, always regenerate
vty->candidate_config before each configuration command when
using the classic CLI mode. When using the transactional CLI,
the user needs to update the candidate manually using the "update"
command, otherwise the "commit" command will fail with this error:
"% Candidate configuration needs to be updated before commit".

Fixes some problems reported by Don after moving an interface from
one VRF to another one while zebra is running.

Reported-by: Don Slice <dslice@cumulusnetworks.com>
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2019-06-12 11:17:03 -03:00
Donald Sharp
8fd142d931
Merge pull request #3509 from faickermo/fix_bgp_ipv6_default_nexthop
bgpd: Set bgp default nexthop value of IPv6
2019-06-12 08:23:03 -04:00
Rob Gil
9c7255c821
docker: Docker binary image on Debian Buster
Utilizes debian buster and the support libyang from the vendor.

Signed-off-by: Rob Gil <rob@rem5.com>
2019-06-11 16:58:21 -04:00
Quentin Young
afbdfbb69b
Merge pull request #4498 from ak503/ldpd
ldpd: Fix shutdown
2019-06-11 14:16:35 -04:00
Rafael Zalamena
04ce2b970e topotests: backward compatibility fix
Allow old topologies to use default parameters from `pytest.ini`.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2019-06-11 14:05:48 -03:00
David Lamparter
a7f20d4328 lib: const-unaware container_of for C++
This version of container_of() should work on C++, by ditching the
unavailable builtins (at the cost of no longer checking for "const"
violations.)

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-06-11 18:45:38 +02:00
Soman K S
9f822fa2db bgpd: Process core when bgp instance is deleted
* When the bgp is being deleted and routes are in clear workqueue
  and new aggregate address being allocated
* Added flag BGP_FLAG_DELETE_IN_PROGRESS in bgp structure to
  bgp instance is being  deleted
* When adding aggregate route check this flag and  peer_self is valid

Signed-off-by: Soman K S <somanks@vmware.com>
2019-06-11 06:20:09 -07:00
Russ White
6aba4eeaec
Merge pull request #4482 from opensourcerouting/warnings-20190606
*: fix some dumb printf format warnings
2019-06-11 08:33:48 -04:00
Russ White
51e6f92ec6
Merge pull request #4494 from donaldsharp/no_src_for_you
pimd: The PIM_OIF_FLAG_PROTO_SRC flag was never used
2019-06-11 08:13:04 -04:00
Russ White
13e132613f
Merge pull request #4483 from donaldsharp/pim_mroute_debug_detail
pimd: debug pim XXX detail now include the non detail data as well
2019-06-11 08:08:49 -04:00
Russ White
7ca67f30e3
Merge pull request #4491 from opensourcerouting/watchfrr-sd-timeout
tools: retain WATCHDOG_USEC when reloading
2019-06-11 07:59:52 -04:00
dturlupov
a0c49f50db ldpd: Fix shutdown
When we stopped ldpd, we get fatal error message from wait().
This commit fix it.

Signed-off-by: Dmitrii Turlupov <dturlupov@factor-ts.ru>
2019-06-11 14:55:10 +03:00
David Lamparter
051a0be4b2 *: fix some dumb printf format warnings
Some types like `time_t` vary across platforms and always need to be
cast when printed.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2019-06-11 13:34:57 +02:00
David Lamparter
e787685f86
More compiler cleanup (#4487)
More compiler cleanup
2019-06-11 13:31:52 +02:00
David Lamparter
0afc154435
Zebra.h header cleanup (#4444)
Zebra.h header cleanup
2019-06-11 11:36:17 +02:00
David Lamparter
681848a672
Merge pull request #4481 from donaldsharp/pim_zlookup_fixup
pimd: Allow zlookup socket to drain
2019-06-11 11:10:40 +02:00
David Lamparter
35aa470801
Merge pull request #4493 from sworleys/Pbr-NHT-Fix
zebra, pbrd: PBR handle nexthop tracking correctly
2019-06-11 10:59:25 +02:00
Stephen Worley
b822b93a35 zebra,pbrd: Update pbrd to handle NHT properly
Update pbrd to properly handle nexthop tracking.

When we get a notification that a change happened on a nexthop,
re-install it if its still valid.

Before, we were running over all routes and re-queueing them if they
were PBR routes. This commit removes that and puts all the processing
in PBR instead.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2019-06-10 14:36:30 -04:00
Stephen Worley
ad9255f8fe pbrd: Set next/prev to NULL on cached nexthops
When we copy a new nexthop to cache and track, set its
next and prev pointers to NULL. We don't want those since
this is to be treated as a single nexthop.Other nexthops that
aren't in a group could hash to this nexthop so it doesn't
make sense to keep those pointers in the cache.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2019-06-10 14:36:30 -04:00
David Lamparter
9c251d376a tools: retain sanity when reloading under systemd
Without this, we end up restarting watchfrr with the systemd watchdog
non-functional & tripped a bit later.  Also, if watchfrr is in the
"control" cgroup, systemd 232 will kill it.  (241 apparently doesn't.
Can't find anything about this in systemd's ChangeLog though.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2019-06-10 19:21:43 +02:00
Mark Stapp
82e16a13e5
Merge pull request #4488 from donaldsharp/pim_solo
Pim solo
2019-06-10 11:30:01 -04:00
Mark Stapp
d578d6e533
Merge pull request #4492 from dslicenc/bgp-l2vpn-parse
bgpd: add l2vpn evpn to afi safi parse utility
2019-06-10 11:28:58 -04:00
Don Slice
8688b3e76b bgpd: add l2vpn evpn to afi safi parse utility
Problem reported with "clear bgp l2vpn evpn * soft" clearing the
wrong afi/safi (cleared ipv6 unicast instead).  Determined that
the calling function used the argv_find_and_parse_afi/safi routines
to determine the correct afi/safi to pass on.  Since l2vpn/evpn were
missing from the lookup, the command defaulted to ipv6 unicast.  This
fix just adds that afi/safi to the lookup routine.

Ticket: CM-25167
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
2019-06-10 05:48:36 -07:00
Donald Sharp
11e0acfba5 pimd: The PIM_OIF_FLAG_PROTO_SRC flag was never used
Nor should it be.  So remove from system.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-06-08 07:30:36 -04:00