]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
7 years agozebra: Fix the metaq to be aware of all routing protocols we could see
Donald Sharp [Wed, 7 Jun 2017 19:43:23 +0000 (15:43 -0400)]
zebra: Fix the metaq to be aware of all routing protocols we could see

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agoMerge pull request #678 from chiragshah6/pim_dev
Jafar Al-Gharaibeh [Wed, 7 Jun 2017 18:29:56 +0000 (13:29 -0500)]
Merge pull request #678 from chiragshah6/pim_dev

pimd: fix pim bfd crash and bfd down check specific neigh addr

7 years agoMerge branch 'master' of https://github.com/FRRouting/frr into pim_dev
Chirag Shah [Tue, 6 Jun 2017 16:59:29 +0000 (09:59 -0700)]
Merge branch 'master' of https://github.com/FRRouting/frr into pim_dev

7 years agoMerge branch 'stable/3.0'
David Lamparter [Tue, 6 Jun 2017 15:37:41 +0000 (17:37 +0200)]
Merge branch 'stable/3.0'

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agoMerge pull request #648 from qlyoung/fix-pollfd-stack-overflow
David Lamparter [Tue, 6 Jun 2017 15:25:06 +0000 (17:25 +0200)]
Merge pull request #648 from qlyoung/fix-pollfd-stack-overflow

lib: use heap for pollfds

7 years agoMerge pull request #676 from qlyoung/fix-fd-poll-block
David Lamparter [Tue, 6 Jun 2017 15:09:08 +0000 (17:09 +0200)]
Merge pull request #676 from qlyoung/fix-fd-poll-block

lib: allow infinite sleep in poll()

7 years agoMerge pull request #674 from dslicenc/cm16615
David Lamparter [Tue, 6 Jun 2017 15:08:33 +0000 (17:08 +0200)]
Merge pull request #674 from dslicenc/cm16615

bgpd: fix ipv6 network statement label-index node

7 years agoMerge pull request #673 from qlyoung/fix-srcdest-null0-helpstr
David Lamparter [Tue, 6 Jun 2017 15:07:42 +0000 (17:07 +0200)]
Merge pull request #673 from qlyoung/fix-srcdest-null0-helpstr

zebra: remove extraneous help string

7 years agoMerge branch 'frr/pull/672' into stable/3.0
David Lamparter [Tue, 6 Jun 2017 14:47:48 +0000 (16:47 +0200)]
Merge branch 'frr/pull/672' into stable/3.0

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agoMerge branch 'pr-660'
David Lamparter [Tue, 6 Jun 2017 14:41:02 +0000 (16:41 +0200)]
Merge branch 'pr-660'

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agobgpd: fix addpath buffer overrun
Quentin Young [Fri, 2 Jun 2017 20:53:37 +0000 (20:53 +0000)]
bgpd: fix addpath buffer overrun

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
[DL: removed compile_commands.json]

7 years agolib: allow infinite sleep in poll()
Quentin Young [Mon, 5 Jun 2017 20:18:48 +0000 (20:18 +0000)]
lib: allow infinite sleep in poll()

If fd_poll() is called with no file descriptors, an incorrect check in
the function prelude causes it to return instantly; for a thread that
wishes to poll but has no file descriptors, this results in busy
waiting. Desired behavior is to block.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agoMerge remote-tracking branch 'origin/master' into cm16615
Don Slice [Tue, 6 Jun 2017 12:31:12 +0000 (12:31 +0000)]
Merge remote-tracking branch 'origin/master' into cm16615

7 years agoMerge pull request #675 from opensourcerouting/ldpd-cherry-picks
Donald Sharp [Tue, 6 Jun 2017 12:24:47 +0000 (08:24 -0400)]
Merge pull request #675 from opensourcerouting/ldpd-cherry-picks

ldpd: cherry-pick fixes from master to stable/3.0

7 years agoMerge pull request #677 from opensourcerouting/rpm-merge-fix
Donald Sharp [Tue, 6 Jun 2017 12:24:22 +0000 (08:24 -0400)]
Merge pull request #677 from opensourcerouting/rpm-merge-fix

Rpm merge fix

7 years agopimd: fix pim bfd crash and bfd neigh down
Chirag Shah [Tue, 6 Jun 2017 01:21:52 +0000 (18:21 -0700)]
pimd: fix pim bfd crash and bfd neigh down

During running config, all IFPs are traversed, bfd interface config write
need to check for ifp->info null in case pim info is missing and skip the interface.

bfd update for address change need to check if particular pim neighbor's address matches
with bfd address update

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
7 years agoredhat: Cleanup more merge fixes and add nhrpd/eigrpd to red hat package
Martin Winter [Mon, 5 Jun 2017 23:59:20 +0000 (16:59 -0700)]
redhat: Cleanup more merge fixes and add nhrpd/eigrpd to red hat package

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
7 years agoredhat: Remove accidental leftover HEAD tag from merge
Martin Winter [Mon, 5 Jun 2017 21:19:15 +0000 (14:19 -0700)]
redhat: Remove accidental leftover HEAD tag from merge

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
7 years agoldpd: fix bug in pseudowire control-word negotiation
Renato Westphal [Fri, 2 Jun 2017 14:14:54 +0000 (11:14 -0300)]
ldpd: fix bug in pseudowire control-word negotiation

Bingen discovered a bug in the pseudowire control-word negotiation that
might happen when the "control-word exclude" command is used. Under some
very specific conditions, ldpd might ignore a PWID label mapping when
it shouldn't.

This patch removes a wrong optimization that was preventing ldpd to call
l2vpn_pw_reset() every time we change the configuration of a pseudowire.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: fix issues detected by Coverity Scan
Renato Westphal [Thu, 27 Apr 2017 11:56:15 +0000 (08:56 -0300)]
ldpd: fix issues detected by Coverity Scan

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: fix bug when changing the transport address
Renato Westphal [Sat, 22 Apr 2017 15:03:14 +0000 (12:03 -0300)]
ldpd: fix bug when changing the transport address

When the transport address is changed, all interfaces and targeted
neighbors are temporary disabled in the ldpe process until new sockets
bound to the new transport address are received from the parent.

This patch fixes a problem in which adjacencies weren't being removed
after the associated targeted neighbors were disabled. This was causing
ldpd not to set some MD5 sockoptions for new neighbors are thus preventing
MD5-protected sessions to come up after a change in the transport-address.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: allow targeted neighbors over any interface
Renato Westphal [Sat, 22 Apr 2017 13:55:27 +0000 (10:55 -0300)]
ldpd: allow targeted neighbors over any interface

It's doesn't make sense to enforce that a targeted-hello is received
on an LDP-enabled interface. It should be possible, for example, to use
LDP only to signal pseudowires and other another protocol (e.g. RSVP-TE)
to create end-to-end LSPs.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: schedule the sending of label messages when necessary
Renato Westphal [Sat, 22 Apr 2017 01:10:42 +0000 (22:10 -0300)]
ldpd: schedule the sending of label messages when necessary

Once we send a Label Withdraw, we can't send a Label Mapping for the
same FEC until we receive a Label Release from the peer. This is due to
some limitations in the LDP algorithms described in Appendix A. ("LDP
Label Distribution Procedures") of RFC 5036.

To workaround this issue, make it possible to schedule the sending of
a Label Mapping as soon as a Label Release is received for the same FEC.

The easiest way to test this patch is by typing the "label local advertise
explicit-null" command. ldpd will withdraw all null labels using a
Wildcard FEC and then send new Label Mappings as soon the corresponding
Label Releases are received.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: improve ldp_zebra_read_route()
Renato Westphal [Fri, 21 Apr 2017 22:39:11 +0000 (19:39 -0300)]
ldpd: improve ldp_zebra_read_route()

Log deleted routes and simplify the code a bit.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: be more conservative with labels
Renato Westphal [Fri, 21 Apr 2017 18:41:14 +0000 (15:41 -0300)]
ldpd: be more conservative with labels

On unstable networks, routes can be lost and relearned very often. If
we deallocate the input label every time a route is lost and allocate
a new one when the route is relearned, a lot of changes are made in vain.

This patch introduces a logic in which labels are preserved for at least
five minutes before being deallocated by the LIB garbage collector. This
is consistent with what other implementations do.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: accept notifications during the session establishment process
Renato Westphal [Wed, 19 Apr 2017 22:31:19 +0000 (19:31 -0300)]
ldpd: accept notifications during the session establishment process

If we don't do this, we'll never trigger the backoff exponential timer
since it's impossible to distinguish between Initialization NAK's and
general errors.

Also:
* Implement some missing bits from RFC 5036;
* remove superfluous log message in session_shutdown()
  (send_notification() logs that we're sending a fatal notification).

Regression introduced by commit 8819fc3.

Fixes the following ANVL LDP regressions: 6.19 and 6.21.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: minor changes in the output of some show commands
Renato Westphal [Wed, 19 Apr 2017 20:12:35 +0000 (17:12 -0300)]
ldpd: minor changes in the output of some show commands

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: use synchronous channels for sending log messages
Renato Westphal [Wed, 19 Apr 2017 19:59:50 +0000 (16:59 -0300)]
ldpd: use synchronous channels for sending log messages

This is necessary to guarantee that all log messages sent from the child
processes are received in the parent process right away.

Without this patch, when a child process calls fatal() or fatalx(),
the log messages don't make it to the parent because the child doesn't
have a chance to flush its buffers before exiting.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: remove unnecessary checks if a signal was caught
Renato Westphal [Wed, 19 Apr 2017 18:28:43 +0000 (15:28 -0300)]
ldpd: remove unnecessary checks if a signal was caught

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: fix segfault after failed initialization
Renato Westphal [Wed, 19 Apr 2017 18:15:56 +0000 (15:15 -0300)]
ldpd: fix segfault after failed initialization

When ldpd fails to start for some reason, like failing to create a pid
file, the child processes call their shutdown functions without being
completely initialized. This patch adds some protections to prevent a
segmentation fault on such circumstances.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: simplify initialization of the child processes
Renato Westphal [Wed, 19 Apr 2017 01:03:35 +0000 (22:03 -0300)]
ldpd: simplify initialization of the child processes

In order to have separate ASLR/cookies per process, ldpd calls exec()
in the child processes after fork() (this is also known as the fork+exec
model).

This is an important security feature but it makes the initialization
of the child processes a bit more complicated as they're not a copy of
the parent anymore, so all parameters given via command line are lost.

To solve this problem, we were creating an argv array by hand with all
necessary parameters and providing it to the exec() syscall. This works
but it's a very ugly solution. This patch introduces a different approach
to solve the problem: send an IMSG_INIT message to the child processes
with all parameters they need in order to initialize properly. This
makes adding additional initialization parameters much more convenient
and less error prone.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Conflicts:
ldpd/ldpd.c
ldpd/ldpd.h

7 years agoldpd: call openzlog() in the child processes as well
Renato Westphal [Tue, 18 Apr 2017 15:17:30 +0000 (12:17 -0300)]
ldpd: call openzlog() in the child processes as well

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: fix log level of log_warn() and log_warnx()
Renato Westphal [Tue, 18 Apr 2017 15:14:15 +0000 (12:14 -0300)]
ldpd: fix log level of log_warn() and log_warnx()

The log_warn() and log_warnx() functions indicate non-critical warnings
and errors, so use LOG_ERR instead of LOG_CRIT.

Keep using LOG_CRIT only in fatal() and fatalx() since these functions
indicate critical errors (when the program needs to exit).

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: split log.c into two files
Renato Westphal [Tue, 18 Apr 2017 15:04:44 +0000 (12:04 -0300)]
ldpd: split log.c into two files

This is basically to keep in sync with OpenBSD's ldpd(8) where the same
change was done.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agobgpd: fix ipv6 network statement label-index node
Don Slice [Mon, 5 Jun 2017 13:13:57 +0000 (13:13 +0000)]
bgpd: fix ipv6 network statement label-index node

Problem reported with the inability to define "network x:x:x::/64 label-index" to
the config.  Found that the install_element was pointing to the wrong node.

Ticket: CM-16615
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
7 years agoMerge remote-tracking branch 'origin/stable/2.0'
Donald Sharp [Mon, 5 Jun 2017 12:19:11 +0000 (08:19 -0400)]
Merge remote-tracking branch 'origin/stable/2.0'

7 years agoMerge pull request #665 from opensourcerouting/rpm-postun-fix
Donald Sharp [Mon, 5 Jun 2017 11:46:11 +0000 (07:46 -0400)]
Merge pull request #665 from opensourcerouting/rpm-postun-fix

redhat/frr.spec.in: Fix postun script for Fedora.

7 years agozebra: remove extraneous help string
Quentin Young [Sun, 4 Jun 2017 21:01:52 +0000 (21:01 +0000)]
zebra: remove extraneous help string

caused tag to display null0 helpstr

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agobgpd: fix segfault with some show commands
Renato Westphal [Tue, 30 May 2017 11:30:57 +0000 (08:30 -0300)]
bgpd: fix segfault with some show commands

The following commands were causing bgpd to crash when vpnv4/vpnv6 static
routes are configured:

bgpd aborted: vtysh  -c "show ip bgp view all ipv4 vpn json"
bgpd aborted: vtysh  -c "show ip bgp view all ipv4 vpn"
bgpd aborted: vtysh  -c "show ip bgp view all ipv6 vpn json"
bgpd aborted: vtysh  -c "show ip bgp view all ipv6 vpn"
bgpd aborted: vtysh  -c "show ip bgp vrf all ipv4 vpn json"
bgpd aborted: vtysh  -c "show ip bgp vrf all ipv4 vpn"
bgpd aborted: vtysh  -c "show ip bgp vrf all ipv6 vpn json"
bgpd aborted: vtysh  -c "show ip bgp vrf all ipv6 vpn"
bgpd aborted: vtysh  -c "show bgp view all ipv4 vpn json"
bgpd aborted: vtysh  -c "show bgp view all ipv4 vpn"
bgpd aborted: vtysh  -c "show bgp view all ipv6 vpn json"
bgpd aborted: vtysh  -c "show bgp view all ipv6 vpn"
bgpd aborted: vtysh  -c "show bgp vrf all ipv4 vpn json"
bgpd aborted: vtysh  -c "show bgp vrf all ipv4 vpn"
bgpd aborted: vtysh  -c "show bgp vrf all ipv6 vpn json"
bgpd aborted: vtysh  -c "show bgp vrf all ipv6 vpn"

Problem found with the CLI fuzzer.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agobgpd: fix addpath buffer overrun
Quentin Young [Fri, 2 Jun 2017 20:53:37 +0000 (20:53 +0000)]
bgpd: fix addpath buffer overrun

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agoospf6d: fix filter-list commands
Quentin Young [Fri, 2 Jun 2017 21:20:33 +0000 (21:20 +0000)]
ospf6d: fix filter-list commands

incorrect indexes resulted in use of area id as the name of the prefix
list

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agobgpd: fix large-community-list commands
Quentin Young [Fri, 2 Jun 2017 21:48:01 +0000 (21:48 +0000)]
bgpd: fix large-community-list commands

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agoospfd: fix 'show ip ospf interface json'
Quentin Young [Fri, 2 Jun 2017 19:10:03 +0000 (19:10 +0000)]
ospfd: fix 'show ip ospf interface json'

json obj not recreated for each interface

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agoospfd: shufflin
Quentin Young [Wed, 31 May 2017 19:04:53 +0000 (19:04 +0000)]
ospfd: shufflin

move virtual-link command down to be next to its no form

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agoospfd: fix virtual-link timers commands
Quentin Young [Wed, 31 May 2017 19:00:39 +0000 (19:00 +0000)]
ospfd: fix virtual-link timers commands

Use {} semantics, correct docstrings, switchup parsing.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agoredhat/frr.spec.in: Fix postun script for Fedora.
Martin Winter [Sun, 4 Jun 2017 07:43:34 +0000 (00:43 -0700)]
redhat/frr.spec.in: Fix postun script for Fedora.

Fedora uninstall showed some non-fatal postun script error because of an empty if which only applied to other distro's

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
7 years agoMerge pull request #656 from qlyoung/fix-varhandler-reachable
Renato Westphal [Sat, 3 Jun 2017 22:00:52 +0000 (19:00 -0300)]
Merge pull request #656 from qlyoung/fix-varhandler-reachable

lib: free varhandlers on exit

7 years agoMerge pull request #657 from donaldsharp/rompapotamus
Renato Westphal [Sat, 3 Jun 2017 21:52:59 +0000 (18:52 -0300)]
Merge pull request #657 from donaldsharp/rompapotamus

Rompapotamus

7 years agoMerge pull request #663 from chiragshah6/pim_dev
Renato Westphal [Sat, 3 Jun 2017 21:45:23 +0000 (18:45 -0300)]
Merge pull request #663 from chiragshah6/pim_dev

ospfd: Fix ospf timers commands

7 years agoMerge pull request #646 from qlyoung/fix-ospf-timers
Renato Westphal [Sat, 3 Jun 2017 16:29:31 +0000 (13:29 -0300)]
Merge pull request #646 from qlyoung/fix-ospf-timers

Fix ospf timers

7 years agoMerge pull request #664 from opensourcerouting/ldpd-fixes
Donald Sharp [Sat, 3 Jun 2017 15:00:26 +0000 (11:00 -0400)]
Merge pull request #664 from opensourcerouting/ldpd-fixes

Ldpd fixes/cleanup

7 years agoospfd: fix clear ip ospf interface cmd
Chirag Shah [Sat, 3 Jun 2017 05:52:41 +0000 (22:52 -0700)]
ospfd: fix clear ip ospf interface cmd

clear ip ospf interface <IFNAME> parsing issue,
instead of arguement of interface "IFNAME" parsed.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
7 years agoMerge pull request #654 from qlyoung/ignore-compile-commands
Renato Westphal [Sat, 3 Jun 2017 02:27:56 +0000 (23:27 -0300)]
Merge pull request #654 from qlyoung/ignore-compile-commands

frr: ignore 'compile_commands.json'

7 years agoMerge pull request #647 from qlyoung/zebra-mpls-error-messages
Renato Westphal [Sat, 3 Jun 2017 01:53:53 +0000 (22:53 -0300)]
Merge pull request #647 from qlyoung/zebra-mpls-error-messages

zebra: more informative error messages & help strings for mpls labels

7 years agoMerge pull request #652 from donaldsharp/miscapotamus
Renato Westphal [Sat, 3 Jun 2017 01:40:56 +0000 (22:40 -0300)]
Merge pull request #652 from donaldsharp/miscapotamus

Miscapotamus

7 years agoMerge pull request #650 from donaldsharp/zebrafication
Renato Westphal [Sat, 3 Jun 2017 01:38:51 +0000 (22:38 -0300)]
Merge pull request #650 from donaldsharp/zebrafication

zebra: Refactor 'struct rib' to be 'struct route_entry'

7 years agoldpd: further improvements in the configuration handling
Renato Westphal [Fri, 2 Jun 2017 22:08:14 +0000 (19:08 -0300)]
ldpd: further improvements in the configuration handling

This patch attempts to make the code easier to read by removing a
global variable and changing a few other things. Also, ldpd now calls
merge_config() only after reading the whole initial configuration at
startup, instead of doing that for every command in the configuration
file.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: remove variable that is not necessary anymore
Renato Westphal [Fri, 2 Jun 2017 14:27:54 +0000 (11:27 -0300)]
ldpd: remove variable that is not necessary anymore

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: fix bug in pseudowire control-word negotiation
Renato Westphal [Fri, 2 Jun 2017 14:14:54 +0000 (11:14 -0300)]
ldpd: fix bug in pseudowire control-word negotiation

Bingen discovered a bug in the pseudowire control-word negotiation that
might happen when the "control-word exclude" command is used. Under some
very specific conditions, ldpd might ignore a PWID label mapping when
it shouldn't.

This patch removes a wrong optimization that was preventing ldpd to call
l2vpn_pw_reset() every time we change the configuration of a pseudowire.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoospfd: Fix ospf timers command
Chirag Shah [Fri, 2 Jun 2017 22:35:25 +0000 (15:35 -0700)]
ospfd: Fix ospf timers command

ospf timers related commands under router ospf were not accepted
due to incorrect argument count check.

timers throttle lsa all (0-5000)
timers throttle spf (0-600000) (0-600000) (0-600000)
timers lsa arrival (0-1000)
timers lsa min-arrival (0-600000)

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
7 years agopimd: Remove qpim_inaddr_any
Donald Sharp [Thu, 4 May 2017 14:44:51 +0000 (10:44 -0400)]
pimd: Remove qpim_inaddr_any

In prep for switching over to having PIM understand VRF
remove the qpim_inaddr_any global variable and just
use INADDR_ANY directly.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agoospfd: Make OSPF TE warnings be less chatty
Donald Sharp [Tue, 23 May 2017 11:31:01 +0000 (07:31 -0400)]
ospfd: Make OSPF TE warnings be less chatty

If you are not using OSPF-TE than there is no need to
be warned that we cannot find anything about it.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agovtysh: Cleanup some stuff(tm)
Donald Sharp [Mon, 22 May 2017 19:43:20 +0000 (15:43 -0400)]
vtysh: Cleanup some stuff(tm)

1) vtysh_config_dump was not properly indented.  Fix

2) Add VRF_NODE to be line_uniq when parsing return from sub-daemons

3) Fix 'no log monitor' to be line_uniq as well

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agolib, zebra: Pass up kernel table_id for vrf's
Donald Sharp [Wed, 17 May 2017 20:20:29 +0000 (16:20 -0400)]
lib, zebra: Pass up kernel table_id for vrf's

pim controls the vrf table creation for due to the way that
pim must interact with the kernel.  In order to match the
table_id for unicast <-> multicast( not necessary but a
real nice to have ) we need to pass up from zebra the
table_id associated with the vrf.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agolib: free varhandler on exit
Quentin Young [Fri, 2 Jun 2017 17:24:01 +0000 (17:24 +0000)]
lib: free varhandler on exit

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agofrr: ignore 'compile_commands.json'
Quentin Young [Fri, 2 Jun 2017 17:08:29 +0000 (17:08 +0000)]
frr: ignore 'compile_commands.json'

This file is generated by most tooling for Clang and generally wants to
be in the root directory. Best to ignore it.

https://clang.llvm.org/docs/JSONCompilationDatabase.html

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agozebra: Fix help string ordering
Donald Sharp [Fri, 2 Jun 2017 11:35:38 +0000 (07:35 -0400)]
zebra: Fix help string ordering

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Remove some unneeded debugs from pim
Donald Sharp [Fri, 2 Jun 2017 00:11:19 +0000 (20:11 -0400)]
pimd: Remove some unneeded debugs from pim

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agonhrpd: Guard a debug that was constantly spewing information
Donald Sharp [Fri, 2 Jun 2017 00:09:06 +0000 (20:09 -0400)]
nhrpd: Guard a debug that was constantly spewing information

This debug when nhrpd was just running but not configured
was constantly being sent to the log file.  Filling it
with useless information

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agodoc: Fix up some missed stuff for Ubuntu 12.04 build doc
Donald Sharp [Fri, 2 Jun 2017 00:05:15 +0000 (20:05 -0400)]
doc: Fix up some missed stuff for Ubuntu 12.04 build doc

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agorelease: frr-3.0-rc0 frr-3.0-rc0
David Lamparter [Thu, 1 Jun 2017 17:23:00 +0000 (19:23 +0200)]
release: frr-3.0-rc0

7 years agozebra: Refactor 'struct rib' to be 'struct route_entry'
Donald Sharp [Thu, 1 Jun 2017 11:26:25 +0000 (07:26 -0400)]
zebra: Refactor 'struct rib' to be 'struct route_entry'

The 'struct rib' data structure is missnamed.  It really
is a 'struct route_entry' as part of the 'struct route_node'.
We have 1 'struct route_entry' per route src.  As such
1 route node can have multiple route entries if multiple
protocols attempt to install the same route.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agolib: use heap for pollfds
Quentin Young [Wed, 31 May 2017 23:21:40 +0000 (23:21 +0000)]
lib: use heap for pollfds

a bunch of pollfds can cause a stack overflow when using a stack
allocated buffer...silly me...

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agozebra: define mpls label helpstr
Quentin Young [Wed, 31 May 2017 21:50:20 +0000 (21:50 +0000)]
zebra: define mpls label helpstr

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agozebra: more informative error messages for mpls labels
Quentin Young [Wed, 31 May 2017 21:27:08 +0000 (21:27 +0000)]
zebra: more informative error messages for mpls labels

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agoospfd: shufflin
Quentin Young [Wed, 31 May 2017 19:04:53 +0000 (19:04 +0000)]
ospfd: shufflin

move virtual-link command down to be next to its no form

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agoMerge pull request #634 from dwalton76/bgp-ipv6-nexthop-ll-and-global-takeII
Renato Westphal [Wed, 31 May 2017 19:07:57 +0000 (16:07 -0300)]
Merge pull request #634 from dwalton76/bgp-ipv6-nexthop-ll-and-global-takeII

bgpd: resolve IPv6 LL and Global nexthop issue

7 years agoospfd: fix virtual-link timers commands
Quentin Young [Wed, 31 May 2017 19:00:39 +0000 (19:00 +0000)]
ospfd: fix virtual-link timers commands

Use {} semantics, correct docstrings, switchup parsing.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agoMerge pull request #645 from qlyoung/nonblocking-fixup
David Lamparter [Wed, 31 May 2017 18:47:30 +0000 (20:47 +0200)]
Merge pull request #645 from qlyoung/nonblocking-fixup

poll() fixup

7 years agoMerge pull request #643 from opensourcerouting/2.0-pcreposix
Donald Sharp [Wed, 31 May 2017 17:43:45 +0000 (13:43 -0400)]
Merge pull request #643 from opensourcerouting/2.0-pcreposix

[2.0] fix --enable-pcreposix

7 years agofrr: remove --enable-poll
Quentin Young [Wed, 31 May 2017 17:40:38 +0000 (17:40 +0000)]
frr: remove --enable-poll

vestigial

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agolib: make writing end of pipe nonblocking
Quentin Young [Wed, 31 May 2017 17:30:53 +0000 (17:30 +0000)]
lib: make writing end of pipe nonblocking

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agobuild: fix pcreposix check
David Lamparter [Wed, 31 May 2017 14:24:04 +0000 (16:24 +0200)]
build: fix pcreposix check

pcreposix_regexec doesn't exist (anymore?), it's just regexec.  Also, if
the user specifies --enable-pcreposix, not finding it is a fatal error.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agoMerge pull request #378 from opensourcerouting/rpm-fixes-2.0
Donald Sharp [Tue, 30 May 2017 16:56:55 +0000 (12:56 -0400)]
Merge pull request #378 from opensourcerouting/rpm-fixes-2.0

redhat RPM fixes

7 years agobgpd: resolve IPv6 LL and Global nexthop issue
Daniel Walton [Tue, 30 May 2017 15:02:34 +0000 (15:02 +0000)]
bgpd: resolve IPv6 LL and Global nexthop issue

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
7 years agolib: missed AWAKEN in r/w thread scheduler
Quentin Young [Thu, 18 May 2017 18:14:52 +0000 (18:14 +0000)]
lib: missed AWAKEN in r/w thread scheduler

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agolib: allow pthreads to poke poll()
Quentin Young [Wed, 10 May 2017 18:09:49 +0000 (18:09 +0000)]
lib: allow pthreads to poke poll()

When scheduling a task onto a thread master owned by another pthread, we
need to lock the thread master's mutex. However, if the pthread which
owns that thread master is in poll(), we could be stuck waiting for a
very long time. To solve this, we copy all data poll() needs and unlock
during poll(). To break the target pthread out of poll(), thread_master
has gained a pipe whose reading end is passed into poll(). After an event
that requires immediate action by the target pthread, a byte is written
into the pipe in order to wake it up.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
[DL: split off from select() removal]

7 years agolib: remove select()
Quentin Young [Wed, 10 May 2017 18:09:49 +0000 (18:09 +0000)]
lib: remove select()

poll() is present on every supported platform and does not have an upper
limit on file descriptors.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
[DL: split off from AWAKEN() change]

7 years agovtysh: Add back some missing bgp commands
Donald Sharp [Thu, 25 May 2017 17:53:50 +0000 (13:53 -0400)]
vtysh: Add back some missing bgp commands

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agoMerge pull request #617 from donaldsharp/bgp_nexthop
Renato Westphal [Tue, 30 May 2017 13:27:38 +0000 (10:27 -0300)]
Merge pull request #617 from donaldsharp/bgp_nexthop

vtysh: Add back some missing bgp commands

7 years agoMerge pull request #632 from opensourcerouting/bgpd-show-segfaults
Donald Sharp [Tue, 30 May 2017 13:23:56 +0000 (09:23 -0400)]
Merge pull request #632 from opensourcerouting/bgpd-show-segfaults

bgpd: fix segfault with some show commands

7 years agoMerge pull request #630 from opensourcerouting/zebra-lbl-unicast-issues
Donald Sharp [Tue, 30 May 2017 13:13:04 +0000 (09:13 -0400)]
Merge pull request #630 from opensourcerouting/zebra-lbl-unicast-issues

Zebra labeled unicast issues

7 years agoMerge pull request #563 from qlyoung/enforce-no-pthread-cancellation
David Lamparter [Tue, 30 May 2017 13:10:52 +0000 (15:10 +0200)]
Merge pull request #563 from qlyoung/enforce-no-pthread-cancellation

lib: enforce thread_cancel() MT-unsafe invariant

7 years agoMerge pull request #605 from dwalton76/show-ip-route-vrf-main
David Lamparter [Tue, 30 May 2017 12:55:27 +0000 (14:55 +0200)]
Merge pull request #605 from dwalton76/show-ip-route-vrf-main

zebra: one "show ip route" to rule them all

7 years agoMerge pull request #576 from chiragshah6/pim_dev
David Lamparter [Tue, 30 May 2017 12:37:08 +0000 (14:37 +0200)]
Merge pull request #576 from chiragshah6/pim_dev

pimd: pim bfd support

7 years agoMerge pull request #623 from dslicenc/cm16512
Renato Westphal [Tue, 30 May 2017 12:31:40 +0000 (09:31 -0300)]
Merge pull request #623 from dslicenc/cm16512

bgpd: labeled-unicast issue changing from no import-check to using im…

7 years agoMerge pull request #627 from donaldsharp/ripng
David Lamparter [Tue, 30 May 2017 12:29:35 +0000 (14:29 +0200)]
Merge pull request #627 from donaldsharp/ripng

Ripng

7 years agoMerge pull request #603 from qlyoung/fix-access-packed-member
David Lamparter [Tue, 30 May 2017 12:26:03 +0000 (14:26 +0200)]
Merge pull request #603 from qlyoung/fix-access-packed-member

*: do not take address of packed member

7 years agobgpd: labeled-unicast issue changing from no import-check to using import-check
Don Slice [Fri, 26 May 2017 17:05:18 +0000 (17:05 +0000)]
bgpd: labeled-unicast issue changing from no import-check to using import-check

Problem seen in testing import-check using labeled-unicast address-family. When
transitioning from "no bgp network import-check" to "bgp network import-check",
previously installed networks were not removed.  This fix resolves this.

Ticket: CM-16512
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
7 years agobgpd: fix segfault with some show commands
Renato Westphal [Tue, 30 May 2017 11:30:57 +0000 (08:30 -0300)]
bgpd: fix segfault with some show commands

The following commands were causing bgpd to crash when vpnv4/vpnv6 static
routes are configured:

bgpd aborted: vtysh  -c "show ip bgp view all ipv4 vpn json"
bgpd aborted: vtysh  -c "show ip bgp view all ipv4 vpn"
bgpd aborted: vtysh  -c "show ip bgp view all ipv6 vpn json"
bgpd aborted: vtysh  -c "show ip bgp view all ipv6 vpn"
bgpd aborted: vtysh  -c "show ip bgp vrf all ipv4 vpn json"
bgpd aborted: vtysh  -c "show ip bgp vrf all ipv4 vpn"
bgpd aborted: vtysh  -c "show ip bgp vrf all ipv6 vpn json"
bgpd aborted: vtysh  -c "show ip bgp vrf all ipv6 vpn"
bgpd aborted: vtysh  -c "show bgp view all ipv4 vpn json"
bgpd aborted: vtysh  -c "show bgp view all ipv4 vpn"
bgpd aborted: vtysh  -c "show bgp view all ipv6 vpn json"
bgpd aborted: vtysh  -c "show bgp view all ipv6 vpn"
bgpd aborted: vtysh  -c "show bgp vrf all ipv4 vpn json"
bgpd aborted: vtysh  -c "show bgp vrf all ipv4 vpn"
bgpd aborted: vtysh  -c "show bgp vrf all ipv6 vpn json"
bgpd aborted: vtysh  -c "show bgp vrf all ipv6 vpn"

Problem found with the CLI fuzzer.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>