]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
6 years agopimd: fix indentation warnings
Sarita Patra [Wed, 12 Sep 2018 05:00:15 +0000 (22:00 -0700)]
pimd: fix indentation warnings

Signed-off-by: Sarita Patra <saritap@vmware.com>
6 years agoMerge pull request #2944 from thbtcllt/master
Russ White [Tue, 11 Sep 2018 15:33:27 +0000 (11:33 -0400)]
Merge pull request #2944 from thbtcllt/master

fix zebra crash when a vrf interface changes with netns implementation for vrf

6 years agoMerge branch 'pr2983'
David Lamparter [Tue, 11 Sep 2018 14:56:30 +0000 (16:56 +0200)]
Merge branch 'pr2983'

6 years agolib: whitespace/spelling fix
David Lamparter [Tue, 11 Sep 2018 14:55:56 +0000 (16:55 +0200)]
lib: whitespace/spelling fix

Signed-off-by: David Lamparter <equinox@diac24.net>
6 years agoMerge pull request #2985 from patrasar/Fix_1636
Donald Sharp [Tue, 11 Sep 2018 13:16:24 +0000 (09:16 -0400)]
Merge pull request #2985 from patrasar/Fix_1636

pimd: create a new command "ip pim" configuring pim sm

6 years agopimd: create a new command "ip pim" configuring pim sm
root [Fri, 7 Sep 2018 11:46:57 +0000 (04:46 -0700)]
pimd: create a new command "ip pim" configuring pim sm

A new command "ip pim" is created to configure pim sm on an
interface, which replaces the existing commands "ip pim sm"
and "ip pim ssm" and make "ip pim sm" and "ip pim ssm" as
hidden commands. The command "ip multicast-routing" is removed
since it is already enabled on FRR by default.

Signed-off-by: Sarita Patra saritap@vmware.com
6 years agoMerge pull request #3001 from donaldsharp/bgp_origin_honor
Martin Winter [Tue, 11 Sep 2018 01:18:39 +0000 (12:18 +1100)]
Merge pull request #3001 from donaldsharp/bgp_origin_honor

bgpd: Honor origin change in bgp aggregates

6 years agoMerge pull request #2999 from donaldsharp/consistent
David Lamparter [Mon, 10 Sep 2018 17:51:05 +0000 (19:51 +0200)]
Merge pull request #2999 from donaldsharp/consistent

doc: Fixup to use consistent frrvty group name

6 years agoMerge pull request #2979 from qlyoung/improve-readme
David Lamparter [Mon, 10 Sep 2018 17:50:52 +0000 (19:50 +0200)]
Merge pull request #2979 from qlyoung/improve-readme

Improve readme

6 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>
6 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>
6 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>
6 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>
6 years agodoc: Fixup to use consistent frrvty group name
Donald Sharp [Mon, 10 Sep 2018 12:46:50 +0000 (08:46 -0400)]
doc: Fixup to use consistent frrvty group name

In some places we were using `frrvt` instead of `frrvty`.  Make it consistent
with every other place and use frrvty.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agoMerge pull request #2977 from opensourcerouting/doc-fix
Donald Sharp [Sun, 9 Sep 2018 18:52:38 +0000 (14:52 -0400)]
Merge pull request #2977 from opensourcerouting/doc-fix

build: fix not building docs w/o sphinx

6 years agoMerge pull request #2965 from opensourcerouting/buildfoo-20180904
Donald Sharp [Sun, 9 Sep 2018 18:11:10 +0000 (14:11 -0400)]
Merge pull request #2965 from opensourcerouting/buildfoo-20180904

more build fixes & warning-free build

6 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>
6 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>
6 years agoMerge pull request #2862 from opensourcerouting/non-recursive
Donald Sharp [Sun, 9 Sep 2018 17:51:58 +0000 (13:51 -0400)]
Merge pull request #2862 from opensourcerouting/non-recursive

final non-recursive make

6 years agoMerge pull request #2995 from wwijkander/docpatch
David Lamparter [Sun, 9 Sep 2018 11:38:12 +0000 (13:38 +0200)]
Merge pull request #2995 from wwijkander/docpatch

doc: Update RPM building instructions

6 years agoMerge pull request #2994 from opensourcerouting/sa-warnings
Donald Sharp [Sun, 9 Sep 2018 01:04:54 +0000 (21:04 -0400)]
Merge pull request #2994 from opensourcerouting/sa-warnings

fix remaining SA warnings

6 years agolib: early-include "config.h" in flex lexers
David Lamparter [Sat, 8 Sep 2018 23:00:42 +0000 (01:00 +0200)]
lib: early-include "config.h" in flex lexers

This is neccessary to get _FILE_OFFSET_BITS right.

Signed-off-by: David Lamparter <equinox@diac24.net>
6 years agoospf6d: remove extra struct in ospf6_lsa_handler
David Lamparter [Tue, 4 Sep 2018 10:55:19 +0000 (12:55 +0200)]
ospf6d: remove extra struct in ospf6_lsa_handler

This serves no other purpose than to generate stupid warnings for
overwritten initializers on old gcc versions.

Signed-off-by: David Lamparter <equinox@diac24.net>
6 years ago*: fix some random warnings
David Lamparter [Tue, 4 Sep 2018 10:27:46 +0000 (12:27 +0200)]
*: fix some random warnings

Signed-off-by: David Lamparter <equinox@diac24.net>
6 years agolib: make pthread_set[_]name_np test OS agnostic
David Lamparter [Tue, 4 Sep 2018 11:15:56 +0000 (13:15 +0200)]
lib: make pthread_set[_]name_np test OS agnostic

FreeBSD supports pthread_set_name_np() too.  Also, pthread_set_name_np()
returns void.  And NetBSD has pthread_setname_np() with an extra arg...

Signed-off-by: David Lamparter <equinox@diac24.net>
6 years agobuild: check {malloc,pthread}_np.h for *BSD
David Lamparter [Tue, 4 Sep 2018 10:24:22 +0000 (12:24 +0200)]
build: check {malloc,pthread}_np.h for *BSD

FreeBSD has malloc_usable_size() in malloc_np.h
OpenBSD has pthread_set_name_np() in pthread_np.h

Signed-off-by: David Lamparter <equinox@diac24.net>
6 years agoUpdate RPM building instructions
Wilhelm Wijkander [Sat, 8 Sep 2018 19:56:25 +0000 (21:56 +0200)]
Update RPM building instructions

6 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>
6 years agobuild: use _POSIX_C_SOURCE
David Lamparter [Tue, 28 Aug 2018 09:40:57 +0000 (11:40 +0200)]
build: use _POSIX_C_SOURCE

Need this to get CMSG_SPACE/CMSG_LEN on Solaris.

Also, AC_GNU_SOURCE is deprecated, AC_USE_SYSTEM_EXTENSIONS does that.

Signed-off-by: David Lamparter <equinox@diac24.net>
6 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>
6 years ago*: fix some solaris warnings
David Lamparter [Tue, 28 Aug 2018 08:59:02 +0000 (10:59 +0200)]
*: fix some solaris warnings

Signed-off-by: David Lamparter <equinox@diac24.net>
6 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>
6 years ago*: fix config.h/zebra.h include order
David Lamparter [Tue, 28 Aug 2018 08:57:13 +0000 (10:57 +0200)]
*: fix config.h/zebra.h include order

config.h (or, transitively, zebra.h) must be the first include file
listed for autoconf things like _GNU_SOURCE and _POSIX_C_SOURCE to work
correctly.

Signed-off-by: David Lamparter <equinox@diac24.net>
6 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>
6 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>
6 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>
6 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>
6 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>
6 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>
6 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>
6 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>
6 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>
6 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>
6 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>
6 years agobfdd: fix garbage "port" string
David Lamparter [Sat, 8 Sep 2018 18:18:30 +0000 (20:18 +0200)]
bfdd: fix garbage "port" string

bfd_recv_ipv4() is getting an uninitialized buffer passed in as port,
and then checks it without clearing it first.  Thus we can end up
leaving garbage data in it.

Signed-off-by: David Lamparter <equinox@diac24.net>
6 years ago*: fix clang-6 SA warnings
David Lamparter [Sat, 8 Sep 2018 18:16:59 +0000 (20:16 +0200)]
*: fix clang-6 SA warnings

I don't see these in CI, but my local clang-6 does emit warnings for
these.

Signed-off-by: David Lamparter <equinox@diac24.net>
6 years agolib: fix SA warning in skiplist code
David Lamparter [Sat, 8 Sep 2018 17:47:05 +0000 (19:47 +0200)]
lib: fix SA warning in skiplist code

Clang was thinking the random level could be negative.  (And, no, I
couldn't figure that out by reading its output... trial and error this
was.)

Signed-off-by: David Lamparter <equinox@diac24.net>
6 years agolib, ldpd: fix SA warnings from TAILQ oddness
David Lamparter [Sat, 8 Sep 2018 17:25:00 +0000 (19:25 +0200)]
lib, ldpd: fix SA warnings from TAILQ oddness

Add a TAILQ_POP_FIRST so Clang understands it's the same item that is
getting removed from the list.

Signed-off-by: David Lamparter <equinox@diac24.net>
6 years agoMerge pull request #2875 from opensourcerouting/fabricd
Donald Sharp [Sat, 8 Sep 2018 17:48:48 +0000 (13:48 -0400)]
Merge pull request #2875 from opensourcerouting/fabricd

OpenFabric support

6 years agoMerge pull request #2991 from donaldsharp/mac_compiling
David Lamparter [Sat, 8 Sep 2018 17:45:18 +0000 (19:45 +0200)]
Merge pull request #2991 from donaldsharp/mac_compiling

Mac compiling cleanups

6 years agoisisd: silence SA warnings
David Lamparter [Sat, 8 Sep 2018 16:25:45 +0000 (18:25 +0200)]
isisd: silence SA warnings

As suggested by Renato Westphal.

Signed-off-by: David Lamparter <equinox@diac24.net>
6 years agovtysh: Actually make the new_completion function match
Donald Sharp [Fri, 7 Sep 2018 18:30:24 +0000 (14:30 -0400)]
vtysh: Actually make the new_completion function match

The new_completion function was not declared the same
way the rl_attempted_completion_function pointer was.
The only difference was a 'const char *' -vs- 'char *'
So convert it over.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agovtysh: Add code to isolate append_history
Donald Sharp [Fri, 7 Sep 2018 17:50:57 +0000 (13:50 -0400)]
vtysh: Add code to isolate append_history

The append_history function in lib readline appears to
not be universally available across all of the esoteric
platforms we may want to compile on.  As such
provide a way to gracefully do nothing.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agolib: Detect if pthread_condattr_setclock is available
Donald Sharp [Fri, 7 Sep 2018 17:11:02 +0000 (13:11 -0400)]
lib: Detect if pthread_condattr_setclock is available

Auto-detect if pthread_condattr_setclock is available and if
it is not allow the code to compile around the issue.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agolib: Cleanup include of link.h
Donald Sharp [Fri, 7 Sep 2018 16:55:03 +0000 (12:55 -0400)]
lib: Cleanup include of link.h

We need link.h for the HAVE_DLINFO_LINKMAP, so include
it if we need it for that code path.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agoMerge pull request #2989 from donaldsharp/static_debug
David Lamparter [Sat, 8 Sep 2018 15:38:48 +0000 (17:38 +0200)]
Merge pull request #2989 from donaldsharp/static_debug

Static debug

6 years agoMerge pull request #2988 from donaldsharp/more_debugs
David Lamparter [Sat, 8 Sep 2018 15:36:18 +0000 (17:36 +0200)]
Merge pull request #2988 from donaldsharp/more_debugs

zebra: Modify nexthop checks to report inactive a bit more

6 years agoMerge pull request #2981 from donaldsharp/v6_vxlan_bug
David Lamparter [Sat, 8 Sep 2018 15:35:20 +0000 (17:35 +0200)]
Merge pull request #2981 from donaldsharp/v6_vxlan_bug

zebra: Fix RB-Tree storage comparison function for v6

6 years agoMerge pull request #2982 from donaldsharp/smux_h
David Lamparter [Sat, 8 Sep 2018 15:13:45 +0000 (17:13 +0200)]
Merge pull request #2982 from donaldsharp/smux_h

lib: Add missing smux.h to `make distrib` results

6 years agoMerge pull request #2949 from donaldsharp/removal
Martin Winter [Fri, 7 Sep 2018 17:04:51 +0000 (19:04 +0200)]
Merge pull request #2949 from donaldsharp/removal

ospf6d: Remove deprecated code after 1 year

6 years agoMerge pull request #2987 from pacovn/Coverity_1473088_ovf_array_index_write
Quentin Young [Fri, 7 Sep 2018 15:40:31 +0000 (11:40 -0400)]
Merge pull request #2987 from pacovn/Coverity_1473088_ovf_array_index_write

lib: array index check (Coverity 1473088)

6 years agosharpd: Fix missing 'show debug' command
Donald Sharp [Fri, 7 Sep 2018 11:05:35 +0000 (07:05 -0400)]
sharpd: Fix missing 'show debug' command

The sharp daemon was not properly handling 'show debug'
commands.  Fix.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agostaticd: Fix 'show debug static" command
Donald Sharp [Fri, 7 Sep 2018 11:01:19 +0000 (07:01 -0400)]
staticd: Fix 'show debug static" command

'show debugging' is returning a Command incomplete
error message as that it is being sent to staticd
and staticd has no knowledge of it, fix this.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agolib: array index check (Coverity 1473088)
F. Aragon [Fri, 7 Sep 2018 09:20:45 +0000 (11:20 +0200)]
lib: array index check (Coverity 1473088)

Signed-off-by: F. Aragon <paco@voltanet.io>
6 years agozebra: Modify nexthop checks to report inactive a bit more
Donald Sharp [Thu, 6 Sep 2018 22:26:04 +0000 (18:26 -0400)]
zebra: Modify nexthop checks to report inactive a bit more

Debugging inactive nexthops in zebra can be quite difficult
and non-obvious what has gone wrong.  Add detailed rib
debugs for the cases where we decide that a nexthop is
inactive so that we can more easily debug a reason
for the failure.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agoMerge pull request #2984 from donaldsharp/ak503_eigrp
Renato Westphal [Thu, 6 Sep 2018 16:51:40 +0000 (13:51 -0300)]
Merge pull request #2984 from donaldsharp/ak503_eigrp

eigrp: opnional metric in 'no redistribute'

6 years agoMerge pull request #2974 from donaldsharp/v4_and_v6
Renato Westphal [Thu, 6 Sep 2018 15:33:26 +0000 (12:33 -0300)]
Merge pull request #2974 from donaldsharp/v4_and_v6

V4 and v6

6 years agoeigrp: opnional metric in 'no redistribute'
dturlupov [Wed, 5 Sep 2018 09:23:50 +0000 (12:23 +0300)]
eigrp: opnional metric in 'no redistribute'

Signed-off-by: Dmitrii Turlupov <dturlupov@factor-rs.ru>
6 years agolib: Ensure FRR detects running of the second instance of a FRR daemon, doesnot allow...
Biswajit Sadhu [Thu, 6 Sep 2018 09:51:40 +0000 (02:51 -0700)]
lib: Ensure FRR detects running of the second instance of a FRR daemon, doesnot allow it to run.

Solution :
The following procedures would be performed :

1. Verify if the pid file for each daemon is present or not. If the file is not present, that means the
   daemon is getting instantiated for the first time. So let it go ahead.
   If the file is present proceed to point ‘2’.

2. Try fetching the properties of the pid file.

3. If it has RW lock, that means one instance of this the daemon is already running.
   So stop moving ahead and do exit() else let it go ahead.
Please note all above procedure happen at
   the initial state of daemon’s instantiation, much before it starts any session with other
   process/allocates resources etc.. and this verification do not have any impact of any
   operations done later, if the verification succeeds.

Signed-off-by: bisdhdh sadhub@vmware.com
6 years agozebra/lib: code cleaning
Thibaut Collet [Thu, 6 Sep 2018 05:48:12 +0000 (07:48 +0200)]
zebra/lib: code cleaning

Remove useless parenthesis and explicit cast.
Remove redundant code.

Signed-off-by: Thibaut Collet <thibaut.collet@6wind.com>
6 years agodoc: Update sharp documentation
Donald Sharp [Wed, 5 Sep 2018 01:02:33 +0000 (21:02 -0400)]
doc: Update sharp documentation

Update the sharp documentation to note v6 nexthops are able
to be installed now.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agosharpd: Modify route install to allow v6 nexthops
Donald Sharp [Wed, 5 Sep 2018 01:00:04 +0000 (21:00 -0400)]
sharpd: Modify route install to allow v6 nexthops

Allow the user to create a v4 route with a v6 nexthop.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agozebra: Fix _route_entry_dump to handle nexthop family as appropriate
Donald Sharp [Wed, 5 Sep 2018 00:56:42 +0000 (20:56 -0400)]
zebra: Fix _route_entry_dump to handle nexthop family as appropriate

The _route_entry_dump function was not handling the nexthop as passed
in from an upper level protocol appropriate and as such not displaying
the v4/v6 nexthop right in the case where we have both going.

Additionally dump the nexthop vrf as well.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 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>
6 years agoMerge pull request #2959 from opensourcerouting/bfd-cleanup
Donald Sharp [Wed, 5 Sep 2018 23:54:35 +0000 (19:54 -0400)]
Merge pull request #2959 from opensourcerouting/bfd-cleanup

bfdd: code clean up

6 years agoMerge pull request #2873 from vivek-cumulus/evpn-extended-mobility
Russ White [Wed, 5 Sep 2018 22:09:31 +0000 (18:09 -0400)]
Merge pull request #2873 from vivek-cumulus/evpn-extended-mobility

EVPN extended mobility support

6 years agozebra: Fix RB-Tree storage comparison function for v6
Donald Sharp [Wed, 5 Sep 2018 21:04:35 +0000 (17:04 -0400)]
zebra: Fix RB-Tree storage comparison function for v6

The RB-Tree used to store rmac information was not properly
handling the v6 address family.  Modify the code to allow
this handling.

Cleans up this error message:

zebra[2231]: host_rb_entry_compare: Unexpected family type: 10

That is being seen, This fixes some connectivity issues being seen.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
6 years agobfdd: fix crash when receiving invalid echo packet
Rafael Zalamena [Wed, 5 Sep 2018 15:29:14 +0000 (12:29 -0300)]
bfdd: fix crash when receiving invalid echo packet

The log function would improperly format a string using an integer
causing a crash. This situation was found when switching echo mode with
a active connection.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
6 years agobfdd: use THREAD_OFF() instead of thread_cancel()
Rafael Zalamena [Wed, 5 Sep 2018 15:27:52 +0000 (12:27 -0300)]
bfdd: use THREAD_OFF() instead of thread_cancel()

Use a standardized function to cancel threads instead of hand rolling
our own.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
6 years agoMerge pull request #2970 from dslicenc/more-bool-use-json
Russ White [Wed, 5 Sep 2018 14:38:11 +0000 (10:38 -0400)]
Merge pull request #2970 from dslicenc/more-bool-use-json

bgpd, ospfd, pimd, zebra: Convert more use_json locations to bool

6 years agodoc: add documentation for fabricd
Christian Franke [Mon, 20 Aug 2018 20:29:29 +0000 (22:29 +0200)]
doc: add documentation for fabricd

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
6 years agoisisd: fix warnings by removing union isis_N and going to void * instead
Christian Franke [Thu, 9 Aug 2018 18:37:30 +0000 (20:37 +0200)]
isisd: fix warnings by removing union isis_N and going to void * instead

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
6 years agofabricd: add support for completely unnumbered operation
Christian Franke [Thu, 7 Jun 2018 10:58:42 +0000 (12:58 +0200)]
fabricd: add support for completely unnumbered operation

With this commit, fabricd can run without any IPv4 addresses configured
except on loopback. There are two changes to achieve this:

a) If a circuit has no IPv4 address configured, fabricd will resort to
advertise the routers loopback IP in the OpenFabric hellos.

b) All the routes from OpenFabric are sent with ZEBRA_FLAG_ONLINK set,
so that zebra will install them into the fib without checking whether
the nexthop is reachable

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
6 years agozebra: add a ZEBRA_FLAG_ONLINK so that routes bypass the is-unnumbered check
Christian Franke [Thu, 7 Jun 2018 10:58:21 +0000 (12:58 +0200)]
zebra: add a ZEBRA_FLAG_ONLINK so that routes bypass the is-unnumbered check

For OpenFabric operation, we need to be able to install routes via
interfaces without any IPv4 addresses configured. Introduce a flag
ZEBRA_FLAG_ONLINK which upper protocols can set on a route they send
towards zebra, to force the nexthops to be considered onlink.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
6 years agofabricd: trigger CSNP after flooding scope LSP has been received
Christian Franke [Thu, 7 Jun 2018 09:08:55 +0000 (11:08 +0200)]
fabricd: trigger CSNP after flooding scope LSP has been received

Have fabricd send out a CSNP whenever a circuit scoped LSP is received,
and log a warning if the CSNP showed resynchronization was necessary.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
6 years agofabricd: Remove processing for unneded PDUs and TLVs
Christian Franke [Tue, 5 Jun 2018 18:50:59 +0000 (20:50 +0200)]
fabricd: Remove processing for unneded PDUs and TLVs

The OpenFabric draft prescribes that any IS-IS PDUs not needed for
OpenFabric operation MUST be ignored. So this commit makes fabricd
ignore any LAN IIHs and any L1 LSPs.

Also the draft specifies that any reachabilities given as narrow-metric
TLVs SHALL be ignored, so adhere to that too.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
6 years agoisisd: add purge originator identification support
Christian Franke [Thu, 31 May 2018 13:14:26 +0000 (15:14 +0200)]
isisd: add purge originator identification support

Implement RFC 6232, optionally allowing to flood isisd's NET and
hostname in purges it originates.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
6 years agoisisd: add TLV 13 Purge Originator Identification
Christian Franke [Mon, 28 May 2018 13:36:15 +0000 (15:36 +0200)]
isisd: add TLV 13 Purge Originator Identification

Extend our parser to support the Purge Originator Identifaction
TLV as per RFC 6232.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
6 years agotests/isisd: remove auth when fuzzing
Christian Franke [Fri, 25 May 2018 12:31:59 +0000 (14:31 +0200)]
tests/isisd: remove auth when fuzzing

Our "deserialize, reserialize, check-equality" test fails when the
fuzzer produces PDUs with incorrect cryptographic checksums.

While the most realistic solution would be to validate the
cryptographic checksums in the test program, that seems very silly,
given that we don't want to fuzz our cryptographic auth.

Given that, removing auth during fuzzing seems the next best solution.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
6 years agoisisd: add support for Prefix-SID subtlv
Christian Franke [Fri, 25 May 2018 11:26:27 +0000 (13:26 +0200)]
isisd: add support for Prefix-SID subtlv

Extend isisd's TLV parser to support the Prefix-SID subtlv as per
draft-ietf-isis-segment-routing-extensions-19

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
6 years agofabricd: add flooding algorithm debugging
Christian Franke [Wed, 25 Jul 2018 09:01:59 +0000 (11:01 +0200)]
fabricd: add flooding algorithm debugging

Add a command `debug openfabric flooding` to allow verification of
correct operation of the OpenFabric flooding optimization algorithm.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
6 years agofabricd: implement flooding optimization
Christian Franke [Thu, 10 May 2018 15:40:04 +0000 (17:40 +0200)]
fabricd: implement flooding optimization

Regular IS-IS will flood any LSP updates out to all circuits except the
one where it was received on. This is done in `lsp_flood`.

Change `lsp_flood` for fabricd to use the optimized flooding algorithm
instead.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
6 years agofabricd: build a list of neighbors and neighbors neighbors
Christian Franke [Thu, 10 May 2018 11:10:59 +0000 (13:10 +0200)]
fabricd: build a list of neighbors and neighbors neighbors

OpenFabric uses a list of neighbors and neighbors neighbors to calculate
a set of designated reflooders.

While the draft prescribes that these lists should be built whenever an
LSP needs to be flooded, this implementation opted to build them only
when we ran an spf, given that they will only change when the topology
changes.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
6 years agofabricd: add field with first and second nexthop to SPF paths
Christian Franke [Thu, 10 May 2018 18:02:04 +0000 (20:02 +0200)]
fabricd: add field with first and second nexthop to SPF paths

OpenFabric requires knowledge of the first two hops on each path
calculated by spf to implement its flooding optimization. Extend the
hopcount-spf to build such a datastructure.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
6 years agofabricd: support transmission/reception of circuit-scoped LSPs
Christian Franke [Thu, 9 Aug 2018 20:07:20 +0000 (22:07 +0200)]
fabricd: support transmission/reception of circuit-scoped LSPs

OpenFabric makes use of flooding scope LSPs to reduce the amount of
reflooding caused by the update process. Implement transmission and
reception of such PDUs.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
6 years agofabricd: reimplement LSP transmission logic
Christian Franke [Thu, 10 May 2018 15:37:05 +0000 (17:37 +0200)]
fabricd: reimplement LSP transmission logic

Before this commit, isisd/fabricd maintained a bitfield for each LSP
to track the SRM bit for each circuit, which specifies whether an LSP
needs to be sent on that circuit. Every second, it would scan over all
LSPs in `lsp_tick` and queue them up for transmission accordingly.

This design has two drawbacks: a) it scales poorly b) it adds
unacceptable latency to the update process: each router takes a random
amount of time between 0 and 1 seconds to forward an update. In a
network with a diamter of 10, it might already take 10 seconds for an
update to traverse the network.

To mitigate this, a new design was chosen. Instead of tracking SRM in a
bitfield, have one tx_queue per circuit and declare that an LSP is in
that queue if and only if it would have SRM set for that circuit.

This way, we can track SRM similarly as we did before, however, on
insertion into the LSP queue, we can add a timer for (re)transmission,
alleviating the need for a periodic scan with LSP tick and reducing the
latency for forwarding of updates.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
6 years agofabricd: implement asymmetric metric for tier 0 as per Section 6.2
Christian Franke [Wed, 23 May 2018 13:37:45 +0000 (15:37 +0200)]
fabricd: implement asymmetric metric for tier 0 as per Section 6.2

To avoid passing of traffic via leaf nodes in the fabric, OpenFabric
specifies that all links towards tier 0 nodes should be advertised with
a very high metric.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
6 years agofabricd: implement fabric locality detection algorithm
Christian Franke [Thu, 10 May 2018 15:52:18 +0000 (17:52 +0200)]
fabricd: implement fabric locality detection algorithm

If an OpenFabric router doesn't have its tier number configured
manually, try to execute the fabric locality calculation algorithm
whenever we have run spf.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
6 years agofabricd: allow to configure tier-level advertisement
Christian Franke [Thu, 10 May 2018 17:05:40 +0000 (19:05 +0200)]
fabricd: allow to configure tier-level advertisement

While OpenFabric calculates most tier numbers automatically by the
fabric locality calculation algorithm, that algorithm requires two
systems to be manually configured as tier 0, so it has reference points.

Also, completely manual configuration is possible.

To support this, introduce appropriate CLI commands and flood the
configured information.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
6 years agofabricd: Add support for TLV 150 (Spine-Leaf-Extension)
Christian Franke [Fri, 6 Apr 2018 11:49:38 +0000 (13:49 +0200)]
fabricd: Add support for TLV 150 (Spine-Leaf-Extension)

To flood the tier calculated by the fabric locality detection,
OpenFabric makes use of TLV 150, defined in
draft-shen-isis-spine-leaf-ext-06, so add support for that TLV.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>