]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
5 years agodebian/tools: new init script
David Lamparter [Fri, 30 Nov 2018 20:40:39 +0000 (21:40 +0100)]
debian/tools: new init script

This separates the init script used for the system (and called in the
systemd unit file) from the script that watchfrr uses to control
daemons.  Mixing these two caused the entire thing to become a rather
huge spaghetti mess.

Note that there is a behaviour change in that the new script always
starts zebra regardless of zebra_enable.

Side changes:
- Ubuntu 12.04 removed from backports since it doesn't work anyway
- zebra is always started regardless of zebra_enable.  To disable FRR,
  the entire init script should be disabled through policy.
- no-watchfrr operation is no longer supported by the scripts in the
  Debian packages.  (This is intentional.)

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agowatchfrr: add status command
David Lamparter [Fri, 30 Nov 2018 16:56:42 +0000 (17:56 +0100)]
watchfrr: add status command

Just to see WTF is going on inside watchfrr...

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agowatchfrr: immediately try connecting after start
David Lamparter [Fri, 30 Nov 2018 16:56:04 +0000 (17:56 +0100)]
watchfrr: immediately try connecting after start

When we make a call to (re)start some daemon(s), we can immediately try
connecting to its VTY socket after the script completes.  If the daemon
started correctly, this will always succeed since the start script only
returns after daemon startup is complete.

Among other things, this reduces the delay to "startup complete"
notification at initial watchfrr start.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agowatchfrr: don't wait around pointlessly at startup
David Lamparter [Fri, 30 Nov 2018 16:55:42 +0000 (17:55 +0100)]
watchfrr: don't wait around pointlessly at startup

We were waiting for timers to expire even when we already know the
status of all daemons.  This delays startup for no good reason.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agowatchfrr, lib: cleanup & delay detaching
David Lamparter [Thu, 27 Sep 2018 02:18:48 +0000 (04:18 +0200)]
watchfrr, lib: cleanup & delay detaching

This cleans up watchfrr to be more "normal" like the other daemons in
terms of what it does in main(), i.e. using the full frr_*() call set.

Also, this changes the startup behaviour on watchfrr to stay attached on
the daemon's parent process until startup is really complete.  This
should allow removing the "watchfrr.started" hack at some point.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agotools/frr: get rid of the bash array and "bB"
David Lamparter [Fri, 26 Oct 2018 19:02:22 +0000 (21:02 +0200)]
tools/frr: get rid of the bash array and "bB"

With a little shell-fu, this can actually be escaped properly.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agoMerge pull request #3407 from opensourcerouting/60-bfd-fix-mhop-bsd
Donald Sharp [Sat, 1 Dec 2018 12:21:23 +0000 (07:21 -0500)]
Merge pull request #3407 from opensourcerouting/60-bfd-fix-mhop-bsd

6.x: bfdd: fix multihop on FreeBSD

5 years agobfdd: fix multihop on FreeBSD
Rafael Zalamena [Fri, 30 Nov 2018 17:02:23 +0000 (15:02 -0200)]
bfdd: fix multihop on FreeBSD

Some systems have a extra `struct sockaddr*` field (`_len`) which must
be filled in order for the peer lookup to work.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
(cherry picked from commit f43a14d2d3051899f77b859dd001b9478f6d9e86)

5 years agoMerge pull request #3282 from opensourcerouting/60-fix-bfd-ipv6-unnumbered
Russ White [Thu, 8 Nov 2018 23:01:58 +0000 (18:01 -0500)]
Merge pull request #3282 from opensourcerouting/60-fix-bfd-ipv6-unnumbered

6.0: bfdd: fix BGP unnumbered peer setup

5 years agobfdd: fix BGP unnumbered peer setup
Rafael Zalamena [Sat, 3 Nov 2018 22:08:33 +0000 (19:08 -0300)]
bfdd: fix BGP unnumbered peer setup

The session key uses the scope id to figure out which interface we are
using with that link-local address, so if we don't set it when
registering a session we'll end up with multiple IPv6 sessions.

This bug was spotted by Sandro Bolliger.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
5 years agoMerge pull request #3253 from opensourcerouting/6.0-backport-build
Quentin Young [Mon, 29 Oct 2018 18:21:47 +0000 (14:21 -0400)]
Merge pull request #3253 from opensourcerouting/6.0-backport-build

6.0: backport build changes from master

5 years agoredhat: remove @CONFDATE@ from spec
David Lamparter [Sun, 28 Oct 2018 18:49:32 +0000 (19:49 +0100)]
redhat: remove @CONFDATE@ from spec

CONFDATE should not be used like this.  Also, the extraversion is now
burned into tarballs anyway so this is no longer neccessary.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: make rfptest and ospfclient "noinst"
David Lamparter [Sun, 28 Oct 2018 15:05:38 +0000 (16:05 +0100)]
build: make rfptest and ospfclient "noinst"

Both of these are testing/demo-style tools that don't make sense as part
of a normal installation.  So don't install them.

NB: this is only the executables, libospfclient and the RFP code are not
affected.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: crop excessive net-snmp library list
David Lamparter [Sat, 27 Oct 2018 17:06:22 +0000 (19:06 +0200)]
build: crop excessive net-snmp library list

This fixes the longstanding GPL vs. OpenSSL licensing issue in our SNMP
code (and cuts down on its other dependencies a wee bit.)

In a way, net-snmp is really buggy here in what it says that we should
link against, but I don't know their application scenarios well enough
to say it should be changed at their end.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agoMerge pull request #3244 from k0ste/stable_6.0_backports
Donald Sharp [Fri, 26 Oct 2018 00:22:00 +0000 (20:22 -0400)]
Merge pull request #3244 from k0ste/stable_6.0_backports

stable/6.0: tools/frr: use path settings from ./configure

5 years agobuild: add "redistclean" target
David Lamparter [Wed, 24 Oct 2018 15:31:31 +0000 (17:31 +0200)]
build: add "redistclean" target

This puts a source tree back in the state it was in after unpacking a
dist tarball.  Different from distclean in that it doesn't remove files
that are included in the tarball.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: make clean and dist consistent
David Lamparter [Wed, 24 Oct 2018 15:44:04 +0000 (17:44 +0200)]
build: make clean and dist consistent

We weren't cleaning up some files (a whole lot of python foobar) and had
some files in the dist tarball that don't quite belong there.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: work around automake wtf
David Lamparter [Mon, 15 Oct 2018 04:51:30 +0000 (06:51 +0200)]
build: work around automake wtf

For some reason, automake was "randomizing" the order of these few lines
in the generated output Makefile.in.

I have absolutely no clue what's going on, but it's the only thing
preventing me from building reproducible source tarballs (i.e.
bit-exactly identical), so... just slightly "rephrase" this.

Should behave exactly the same as before.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: carry --with-pkg-extra-version into tarballs
David Lamparter [Tue, 23 Oct 2018 12:06:25 +0000 (14:06 +0200)]
build: carry --with-pkg-extra-version into tarballs

If we use "./configure --with-pkg-extra-version=... && make dist", we
probably want the dist tarball to remember the extra version it was
configured with.

Use --without-pkg-extra-version to kill the tag.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: rewrite readline/curses check
David Lamparter [Sat, 6 Oct 2018 21:28:19 +0000 (23:28 +0200)]
build: rewrite readline/curses check

We don't need termcap/tinfo/curses, those are just for libreadline.  On
most modern systems, libreadline will pull in the appropriate libs it
needs on its own, so unconditionally adding them adds an extra unneeded
dependency for us.

Still need to try with curses/... for some systems, but only after bare
readline fails.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agodebianpkg: remove bad USE_* options, add WERROR
David Lamparter [Mon, 15 Oct 2018 05:03:20 +0000 (07:03 +0200)]
debianpkg: remove bad USE_* options, add WERROR

This strips the USE_PIM, USE_BFD and USE_LDP options, all of which are
just straight up counterproductive knobs.

Instead, --enable-werror really needs to default to off, so add an
option for that.

Lastly, use --disable-dependency-tracking to speed up the build.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agodebianpkg: clean up dependencies
David Lamparter [Mon, 15 Oct 2018 05:02:47 +0000 (07:02 +0200)]
debianpkg: clean up dependencies

- accept either python2 or python3 packages for everything
- drop texlive-latex-base, texlive-generic-recommended (only needed for
  PDF docs)
- python-ipaddr is not a build time requirement, only runtime

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agodebianpkg: strip ancient/unused cruft
David Lamparter [Mon, 15 Oct 2018 05:00:42 +0000 (07:00 +0200)]
debianpkg: strip ancient/unused cruft

The SNMP MIB directory is unneeded, --enable-poll has been long gone,
the "build" target is straight up wrong (causing FRR to be built in the
install step) and we haven't needed /proc for configure in ages either.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: try to use -D option for ar and ranlib
David Lamparter [Sun, 7 Oct 2018 00:49:20 +0000 (02:49 +0200)]
build: try to use -D option for ar and ranlib

The -D option zeroes out timestamps in .a files and has become the
default on recent distributions to enable reproducible builds.

This also shuts up the "u ignored because D is default" warning that is
showing up on some distributions.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: fix some escapes in configure.ac
David Lamparter [Sun, 7 Oct 2018 22:49:24 +0000 (00:49 +0200)]
build: fix some escapes in configure.ac

Some test statements were missing "" around variables causing syntax
errors during configure runs.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agotools: add a script for building a Debian package in one step.
Daniil Baturin [Mon, 1 Oct 2018 18:38:44 +0000 (20:38 +0200)]
tools: add a script for building a Debian package in one step.

The script simplifies the relatively lengthy procedure.
It should be invoked from the top level source directory, for example:
./tools/build-debian-package.sh

Signed-off-by: Daniil Baturin <daniil@baturin.org>
5 years agodoc: Use `mv -f` in Makefile
Christian Franke [Fri, 28 Sep 2018 17:32:38 +0000 (19:32 +0200)]
doc: Use `mv -f` in Makefile

Sphinx always runs, even in the `make install` stage. When `make install`
is run as root and then another `make` is run by a nonprivileged user,
some versions of `mv` prompt like this:

    mv: replace 'doc/manpages/_build/man/man.stamp',
                 overriding mode 0644 (rw-r--r--)?

Add -f to `mv` to avoid this. As `-f` is part of Posix, this should be
portable enough.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agotools: Update .gitignore
Christian Franke [Fri, 28 Sep 2018 18:33:29 +0000 (20:33 +0200)]
tools: Update .gitignore

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
5 years agofrr-reload.py: Add python2 & python3 compatibility.
jpmondet [Sun, 23 Sep 2018 12:22:17 +0000 (14:22 +0200)]
frr-reload.py: Add python2 & python3 compatibility.

Signed-off-by: jpmondet <jp@mondet.org>
5 years agotools/frr: use path settings from ./configure
David Lamparter [Wed, 26 Sep 2018 23:49:07 +0000 (01:49 +0200)]
tools/frr: use path settings from ./configure

...so we properly locate config files and daemons whereever the user
decided to put them.

Signed-Off-By: David Lamparter <equinox@diac24.net>
5 years agofrr: add README.md to EXTRA_DIST
Quentin Young [Thu, 6 Sep 2018 17:14:03 +0000 (17:14 +0000)]
frr: add README.md to EXTRA_DIST

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
5 years agofrr: improve README
Quentin Young [Tue, 4 Sep 2018 20:27:54 +0000 (20:27 +0000)]
frr: improve README

Friendly READMEs are all the rage!

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
5 years agofrr: remove stale files, allow non-GNU Automake
Quentin Young [Wed, 5 Sep 2018 17:47:53 +0000 (17:47 +0000)]
frr: remove stale files, allow non-GNU Automake

* Add 'foreign' option to allow Automake to ignore missing GNU standard
  files
* Remove AUTHORS
* Remove NEWS
* Remove ChangeLog

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
5 years agobuild: move SPHINXBUILD= to configure in rpm build
David Lamparter [Sat, 8 Sep 2018 12:59:24 +0000 (14:59 +0200)]
build: move SPHINXBUILD= to configure in rpm build

Need to pass this on configure now to work properly.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: fix not building docs w/o sphinx
David Lamparter [Wed, 5 Sep 2018 09:25:24 +0000 (11:25 +0200)]
build: fix not building docs w/o sphinx

Can't build manpages without sphinx-build, oops...

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: fix & clean up *SAN flags
David Lamparter [Sun, 2 Sep 2018 18:36:20 +0000 (20:36 +0200)]
build: fix & clean up *SAN flags

ASAN/MSAN/TSAN flags need to be in CFLAGS and LDFLAGS; the latter links
the correct compiler-dependent library.  Also, the configure switch was
broken (--disable-... would enable the sanitizer.)

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: make pkgconfig configure output useful
David Lamparter [Mon, 27 Aug 2018 05:02:59 +0000 (07:02 +0200)]
build: make pkgconfig configure output useful

The variable name is not exactly the most helpful thing there.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: clean up protobuf build integration
David Lamparter [Sun, 2 Sep 2018 13:15:17 +0000 (15:15 +0200)]
build: clean up protobuf build integration

We were linking all libs and binaries against libprotobuf-c if the
option was enabled... that makes no sense at all.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: use -export-dynamic
David Lamparter [Sun, 2 Sep 2018 12:52:43 +0000 (14:52 +0200)]
build: use -export-dynamic

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: move RFPLDADD to bgpd/rfp-example/librfp
David Lamparter [Tue, 21 Aug 2018 18:56:16 +0000 (20:56 +0200)]
build: move RFPLDADD to bgpd/rfp-example/librfp

This makes it slightly easier to replace the stub RFP code with an
external implementation.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agovtysh: make RPKI node non-conditional
David Lamparter [Sat, 18 Aug 2018 16:03:16 +0000 (18:03 +0200)]
vtysh: make RPKI node non-conditional

Whether or not RPKI is enabled during build shouldn't really influence
vtysh; the user can always manually install bgpd_rpki.so later and it
should work.  This also means that the behaviour of "RPKI module not
loaded" is consistent regardless of whether it was a compile-time or
runtime decision.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years ago*: cleanup .gitignore files
David Lamparter [Sat, 18 Aug 2018 03:29:10 +0000 (05:29 +0200)]
*: cleanup .gitignore files

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agotests: properly locate files in builddir
David Lamparter [Sat, 18 Aug 2018 03:00:54 +0000 (05:00 +0200)]
tests: properly locate files in builddir

test_cli.refout is written by configure into the build directory, thus
we need a little special glue to find it correctly.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: move vtysh & manpage listings to subdir.am
David Lamparter [Sat, 18 Aug 2018 04:05:07 +0000 (06:05 +0200)]
build: move vtysh & manpage listings to subdir.am

Since we're now building through one large Makefile, we can easily put
things with their daemons and crossreference nicely.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: remove common.am
David Lamparter [Sat, 18 Aug 2018 03:34:59 +0000 (05:34 +0200)]
build: remove common.am

Fold things into where they make sense.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: include helper Makefiles in dist
David Lamparter [Sat, 18 Aug 2018 18:08:46 +0000 (20:08 +0200)]
build: include helper Makefiles in dist

Need these to have "make" work in subdirectories.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: non-recursive tests
David Lamparter [Wed, 15 Aug 2018 22:26:39 +0000 (00:26 +0200)]
build: non-recursive tests

May SUBDIRS rest in pieces... er, peace.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: non-recursive vtysh
David Lamparter [Wed, 15 Aug 2018 21:55:22 +0000 (23:55 +0200)]
build: non-recursive vtysh

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: non-recursive bgpd & rfp
David Lamparter [Wed, 15 Aug 2018 21:35:51 +0000 (23:35 +0200)]
build: non-recursive bgpd & rfp

Note: no more --with-rfp-path on configure - badly messing with the
build system like this really isn't how to do a conditional external
dependency.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agolib: Add missing smux.h to `make distrib` results
Donald Sharp [Thu, 6 Sep 2018 00:47:07 +0000 (20:47 -0400)]
lib: Add missing smux.h to `make distrib` results

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agodoc: drop colspan/rowspan elements
David Lamparter [Wed, 29 Aug 2018 03:28:06 +0000 (05:28 +0200)]
doc: drop colspan/rowspan elements

The sphinx 'text' writer apparently doesn't support these, and the
'dummy' writer is only available on recent versions, and all of this
makes the build a bit annoying...

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agodoc: html default off
David Lamparter [Sat, 18 Aug 2018 15:06:22 +0000 (17:06 +0200)]
doc: html default off

... RPM builds break if we enable this unconditionally; should really
change this in CI instead.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: add Makefile variable easy access
David Lamparter [Sat, 25 Aug 2018 05:35:31 +0000 (07:35 +0200)]
build: add Makefile variable easy access

This adds 2 helper targets for use in scripts to easily get at Makefile
variables without parsing the Makefile or config.status.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: improve python search pattern
David Lamparter [Wed, 22 Aug 2018 04:04:32 +0000 (06:04 +0200)]
build: improve python search pattern

- try pythonN.N-config after pythonN-config
- use "python-config --ldflags" instead of --libs
- add Python 3.6 to explicitly searched versions
- if linking fails, try with "-lz" added

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: add warning when overwriting vars on "make"
David Lamparter [Tue, 21 Aug 2018 18:33:13 +0000 (20:33 +0200)]
build: add warning when overwriting vars on "make"

doing things like `make CC="mmix-linux-musl-gcc"` breaks the hosttools/
cross-compilation setup pretty hard and just straight up should not be
done.  These vars belong on `configure`, not `make`.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: cache a few more results in ./configure
David Lamparter [Sat, 18 Aug 2018 06:03:02 +0000 (08:03 +0200)]
build: cache a few more results in ./configure

Makes configure re-runs faster if the `-C` option is used.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: -Werror does not belong in AM_CPPFLAGS
David Lamparter [Sat, 18 Aug 2018 03:08:19 +0000 (05:08 +0200)]
build: -Werror does not belong in AM_CPPFLAGS

(probably neither do the ASAN/... FLAGS, but let's leave that alone.)

Also, it was intentional that it's $(WERROR) and not @WERROR@.  The
former can be overwritten at comandline as "make WERROR=" while the
latter can't.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: non-recursive solaris
David Lamparter [Sat, 18 Aug 2018 02:05:55 +0000 (04:05 +0200)]
build: non-recursive solaris

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: fix some oddities in solaris/
David Lamparter [Wed, 15 Aug 2018 22:56:48 +0000 (00:56 +0200)]
build: fix some oddities in solaris/

target_* is always wrong for FRR because we are not a compiler.  We only
use host_* and build_*.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: trigger fewer unneccessary clippy rebuilds
David Lamparter [Wed, 15 Aug 2018 22:03:58 +0000 (00:03 +0200)]
build: trigger fewer unneccessary clippy rebuilds

Make sure we include the clippy binary file in our timestamp mangling so
`make` will correctly determine when clippy files don't need to be
rebuilt.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: non-recursive debianpkg
David Lamparter [Wed, 15 Aug 2018 22:47:28 +0000 (00:47 +0200)]
build: non-recursive debianpkg

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agobuild: non-recursive doc + parallel sphinx
David Lamparter [Wed, 15 Aug 2018 20:59:31 +0000 (22:59 +0200)]
build: non-recursive doc + parallel sphinx

Sphinx actually does work with a parallel build, if the doctree creation
is a separate step (which the other builds will then just read
unmodified.)  This can be done with the "dummy" target.

This also adds "-j6" to sphinx-build and adds a "--disable-doc-html"
switch on ./configure to turn on/off building HTML docs separately.

Also, HTML docs are now installed by "make install" to
/usr/share/doc/frr/html.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agotools/frr: use path settings from ./configure
David Lamparter [Wed, 26 Sep 2018 23:49:07 +0000 (01:49 +0200)]
tools/frr: use path settings from ./configure

...so we properly locate config files and daemons whereever the user
decided to put them.

Signed-Off-By: David Lamparter <equinox@diac24.net>
(cherry picked from commit 40da52d8c10273f18e3b3cc522ecfa1847ca3198)

5 years agoMerge pull request #3232 from donaldsharp/6.0_revert_default_originate_changes
David Lamparter [Wed, 24 Oct 2018 15:27:03 +0000 (17:27 +0200)]
Merge pull request #3232 from donaldsharp/6.0_revert_default_originate_changes

6.0 revert default originate changes

5 years agoRevert "bgpd: Set attributes according route-maps if applied for default-originate"
Donald Sharp [Wed, 24 Oct 2018 12:47:36 +0000 (08:47 -0400)]
Revert "bgpd: Set attributes according route-maps if applied for default-originate"

This reverts commit 74401e62721b8f83ff0e34127d6235fda112c7c8.

5 years agoRevert "bgpd: Make sure default-originate works without route-map as well"
Donald Sharp [Wed, 24 Oct 2018 12:00:36 +0000 (08:00 -0400)]
Revert "bgpd: Make sure default-originate works without route-map as well"

This reverts commit c2e10422033771da9f12a4a283b0bc767240a3d8.

5 years agoMerge pull request #3218 from opensourcerouting/60-bfdmhoplookup
Quentin Young [Tue, 23 Oct 2018 16:49:21 +0000 (12:49 -0400)]
Merge pull request #3218 from opensourcerouting/60-bfdmhoplookup

6.0: bfdd: fix multi hop hash lookup

5 years agobfdd: fix multi hop hash lookup
Rafael Zalamena [Sun, 14 Oct 2018 13:39:55 +0000 (15:39 +0200)]
bfdd: fix multi hop hash lookup

Use the proper multi hop hash for matching multi hop peers.

Spotted by Dmitrii Turlupov.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
(cherry picked from commit 2055ea096923406e31a7d0a1a15406b3b62f2255)

5 years agoMerge pull request #3170 from opensourcerouting/60-memleak-fix
Donald Sharp [Mon, 15 Oct 2018 11:43:15 +0000 (07:43 -0400)]
Merge pull request #3170 from opensourcerouting/60-memleak-fix

6.0: backport memory leak fix

5 years agolib: refactor thread_execute
Rafael Zalamena [Mon, 1 Oct 2018 16:38:34 +0000 (13:38 -0300)]
lib: refactor thread_execute

Don't allocate threads in the stack, but use the standardized
`thread_get` and `thread_add_unused` to avoid creating corner cases in
the thread API.

This fixes a thread mutex memory leak in FreeBSD.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
(cherry picked from commit c4345fbf71fcc7ef4b64d95979f252c613dd3ebf)

5 years agolib: fix a memory leak in FreeBSD
Rafael Zalamena [Tue, 25 Sep 2018 15:05:53 +0000 (12:05 -0300)]
lib: fix a memory leak in FreeBSD

Two important changes:
* Centralize the thread teardown procedure;
* Save and restore thread mutex context to avoid losing the memory
  pointer;

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
(cherry picked from commit 6655966d2c2fe7a29ca29af4366fa3e044ad1170)

5 years agoFRRouting Release 6.0 frr-6.0
Martin Winter [Mon, 8 Oct 2018 12:32:57 +0000 (05:32 -0700)]
FRRouting Release 6.0

Major Changes since 5.0:
- Staticd: New daemon responsible for management of static routes
- ISISd: Implement dst-src routing as per draft-ietf-isis-ipv6-dst-src-routing
- BFDd: new daemon for BFD (Bidrectional Forwarding Detection). Responsiblei
  for notifying link changes to make routing protocols converge faster.
- various bug fixes

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
5 years agoMerge pull request #3131 from donaldsharp/early_6.0
David Lamparter [Thu, 4 Oct 2018 13:09:42 +0000 (15:09 +0200)]
Merge pull request #3131 from donaldsharp/early_6.0

lib: Include compiler.h as early as is possible in the build

5 years agolib: Include compiler.h as early as is possible in the build
Donald Sharp [Wed, 3 Oct 2018 16:27:57 +0000 (12:27 -0400)]
lib: Include compiler.h as early as is possible in the build

The compiler.h header provides us with some useful macro's
that we are using in the system.  We do not know exactly
where the CPP_NOTICE and CPP_WARN macros are used but
they can move around.  Place this header early in the
build then.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoMerge pull request #3123 from opensourcerouting/6.0-error-code-switch
Quentin Young [Thu, 4 Oct 2018 00:31:50 +0000 (20:31 -0400)]
Merge pull request #3123 from opensourcerouting/6.0-error-code-switch

[6.0] lib: add "log error-code" switch

5 years agolib: add "log error-code" switch
David Lamparter [Tue, 2 Oct 2018 22:19:11 +0000 (00:19 +0200)]
lib: add "log error-code" switch

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agoMerge pull request #3078 from opensourcerouting/large_as_path_6
Donald Sharp [Mon, 24 Sep 2018 15:14:50 +0000 (11:14 -0400)]
Merge pull request #3078 from opensourcerouting/large_as_path_6

bgpd: Fix for large AS paths which are split into segments (6.0 branch)

5 years agobgpd: Fix for large AS paths which are split into segments
Martin Winter [Fri, 7 Sep 2018 21:43:11 +0000 (14:43 -0700)]
bgpd: Fix for large AS paths which are split into segments

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
5 years agoMerge pull request #3054 from donaldsharp/zebra_6.0
Martin Winter [Thu, 20 Sep 2018 16:23:10 +0000 (03:23 +1100)]
Merge pull request #3054 from donaldsharp/zebra_6.0

zebra: Send correct default vrf tableid for MROUTE stats

5 years agoMerge pull request #3048 from donaldsharp/pim_6.0
Martin Winter [Thu, 20 Sep 2018 12:39:13 +0000 (23:39 +1100)]
Merge pull request #3048 from donaldsharp/pim_6.0

pimd: Actually create vif's in non-integrated config

5 years agozebra: Send correct default vrf tableid for MROUTE stats
Donald Sharp [Mon, 17 Sep 2018 13:18:40 +0000 (09:18 -0400)]
zebra: Send correct default vrf tableid for MROUTE stats

So the linux kernel uses the RT_TABLE_MAIN for the table
id used for ip routing.  The multicast routing tables use
RT_TABLE_DEFAULT.  We changed the internal code of zebra_vrf
a few months back to use RT_TABLE_MAIN as the tableid to
use.  This caused the pim sg stats to stop working because
of the kernel bug where it uses a different table
for ip routing and ip multicast.

Put a bit of a special case in to do the right thing.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agopimd: Actually create vif's in non-integrated config
Donald Sharp [Mon, 17 Sep 2018 17:58:59 +0000 (13:58 -0400)]
pimd: Actually create vif's in non-integrated config

The startup of a non-integrated config was not properly
allowing for startup to create the vif when we have
not learned about the interface we are trying to configure
at this point in time.  Actually notice when we are
trying to create a pimreg device or not to properly
notice when to attempt to create the vif or not.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoMerge pull request #3002 from donaldsharp/3001_6.0
Martin Winter [Tue, 11 Sep 2018 03:39:11 +0000 (14:39 +1100)]
Merge pull request #3002 from donaldsharp/3001_6.0

Push 2993 into 6.0

5 years agobgpd: Honor origin change in bgp aggregates
Donald Sharp [Mon, 10 Sep 2018 14:19:03 +0000 (10:19 -0400)]
bgpd: Honor origin change in bgp aggregates

When the origin changed we must honor and update the aggregate
to the peer.  This code adds a bit of code to the bgp_aggregate_info_same
code to see if the origin has changed and to indicate that it has.

Fixes: #2993
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agostatic: Put vty_frame around vrf output in staticd.
Donald Sharp [Wed, 29 Aug 2018 02:47:24 +0000 (22:47 -0400)]
static: Put vty_frame around vrf output in staticd.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agostaticd: Fix mixup in vrf translations
Donald Sharp [Wed, 29 Aug 2018 02:45:06 +0000 (22:45 -0400)]
staticd: Fix mixup in vrf translations

When we store the nexthop for ref-counting, keep
track of the nexthop vrf_id as well.  This will allow
us to track the nexthop per vrf!

Additionally when we get the callback from zebra about
a nexthop update, iterate over all static routes to
see if the nexthop we are getting a callback is
one we are concerned about.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agovtysh: Let staticd know about vrf sub-mode
Donald Sharp [Wed, 29 Aug 2018 02:43:42 +0000 (22:43 -0400)]
vtysh: Let staticd know about vrf sub-mode

staticd was not transitioning into vrf sub-mode, this fixes it.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoMerge pull request #2931 from donaldsharp/pim_zebra_crash
David Lamparter [Tue, 28 Aug 2018 16:13:24 +0000 (18:13 +0200)]
Merge pull request #2931 from donaldsharp/pim_zebra_crash

zebra: Fix crash in mroute debug

5 years agozebra: Fix crash in mroute debug
Donald Sharp [Tue, 28 Aug 2018 14:35:35 +0000 (10:35 -0400)]
zebra: Fix crash in mroute debug

There exists a possibility that the ifindex we are passed
does not exist and as such we should check for it not
resolving as part of the debug.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoMerge pull request #2930 from donaldsharp/pim_debug
David Lamparter [Tue, 28 Aug 2018 13:56:27 +0000 (15:56 +0200)]
Merge pull request #2930 from donaldsharp/pim_debug

pimd: Add some more useful data to debug output

5 years agopimd: Add some more useful data to debug output
Donald Sharp [Tue, 28 Aug 2018 12:50:16 +0000 (08:50 -0400)]
pimd: Add some more useful data to debug output

End user was seeing this debug but we are not giving
the user enough information to debug this on his own.
Add a tiny bit of extra information that could point
the user to solving the problem for themselves.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoMerge pull request #2918 from opensourcerouting/fix-watchfrr-sigchld-handling
Donald Sharp [Tue, 28 Aug 2018 11:35:18 +0000 (07:35 -0400)]
Merge pull request #2918 from opensourcerouting/fix-watchfrr-sigchld-handling

watchfrr: fix global restart

5 years agoMerge pull request #2898 from donaldsharp/vrf_bitmap_is_whack
Lou Berger [Sun, 26 Aug 2018 11:49:46 +0000 (07:49 -0400)]
Merge pull request #2898 from donaldsharp/vrf_bitmap_is_whack

lib: Convert vrf bit-map to a hash.

5 years agoMerge pull request #2920 from donaldsharp/bsd_warnings
David Lamparter [Sun, 26 Aug 2018 02:07:35 +0000 (04:07 +0200)]
Merge pull request #2920 from donaldsharp/bsd_warnings

Bsd warnings

5 years agozebra: No prototype and uninited variables
Donald Sharp [Sat, 25 Aug 2018 22:28:19 +0000 (18:28 -0400)]
zebra: No prototype and uninited variables

Add a header to cleanup no declaration and properly
wrapper some variables to appropriate #ifdef.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agolib: Cleanup uninted `top` variable in ferr.c
Donald Sharp [Sat, 25 Aug 2018 22:27:11 +0000 (18:27 -0400)]
lib: Cleanup uninted `top` variable in ferr.c

The `top` variable could possibly be used without
any initialization, remove the possibility.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoisisd: Include header for function declaration
Donald Sharp [Sat, 25 Aug 2018 22:26:01 +0000 (18:26 -0400)]
isisd: Include header for function declaration

isis_handle_pdu is called but not declared for usage
by not including the appropriate header.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoMerge pull request #2897 from donaldsharp/zebra_rnh_fixup
Renato Westphal [Sat, 25 Aug 2018 22:57:58 +0000 (19:57 -0300)]
Merge pull request #2897 from donaldsharp/zebra_rnh_fixup

zebra: When registering a nexthop, we do not always need to re-eval

5 years agoMerge pull request #2895 from donaldsharp/netlink_encap
Renato Westphal [Sat, 25 Aug 2018 22:35:52 +0000 (19:35 -0300)]
Merge pull request #2895 from donaldsharp/netlink_encap

zebra: Add support for static encap mpls labels

5 years agozebra: Add support for static encap mpls labels
Stephen Worley [Sat, 11 Aug 2018 22:36:22 +0000 (18:36 -0400)]
zebra: Add support for static encap mpls labels

We were ignoring mpls labels encapped with static routes.
Added support for single and multipath labels.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>