]> git.puffer.fish Git - mirror/frr.git/log
mirror/frr.git
8 years agoMerge pull request #412 from dwalton76/draft-ietf-idr-bgp-prefix-sid-05
Russ White [Tue, 2 May 2017 15:43:50 +0000 (11:43 -0400)]
Merge pull request #412 from dwalton76/draft-ietf-idr-bgp-prefix-sid-05

Update to draft-ietf-idr-bgp-prefix-sid-05

8 years agoMerge pull request #410 from dslicenc/rdnbrd-vrr
Martin Winter [Tue, 2 May 2017 15:42:38 +0000 (08:42 -0700)]
Merge pull request #410 from dslicenc/rdnbrd-vrr

zebra: fix attempt to install a second rib from imported table entries

8 years agoMerge pull request #377 from qlyoung/frr-pthreads
Russ White [Tue, 2 May 2017 15:26:20 +0000 (11:26 -0400)]
Merge pull request #377 from qlyoung/frr-pthreads

lib: MT-safe thread.c + add pthread manager

8 years agolib: allow nonblocking thread_fetch() 377/head
Quentin Young [Fri, 28 Apr 2017 22:45:59 +0000 (22:45 +0000)]
lib: allow nonblocking thread_fetch()

This change adds three fields to thread_master and associated code to
use them. The fields are:

 * long selectpoll_timeout

This is a millisecond value that, if nonzero, will override the
internally calculated timeout for select()/poll(). -1 indicates
nonblocking while a positive value indicates the desired timeout in
milliseconds.

 * bool spin

This indicates whether a call to thread_fetch() should result in a loop
until work is available. By default this is set to true, in order to
keep the default behavior. In this case a return value of NULL indicates
that a fatal signal was received in select() or poll(). If it is set to
false, thread_fetch() will return immediately. NULL is then an
acceptable return value if there is no work to be done.

 * bool handle_signals

This indicates whether or not the pthread that owns the thread master
is responsible for handling signals (since this is an MT-unsafe
operation, it is best to have just the root thread do it). It is set to
true by default. Non-root pthreads should set this to false.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
8 years agoMerge pull request #428 from qlyoung/fix-isis-mt
Renato Westphal [Sun, 30 Apr 2017 13:24:05 +0000 (10:24 -0300)]
Merge pull request #428 from qlyoung/fix-isis-mt

isisd: fix uninitialized pointer

8 years agoisisd: fix uninitialized pointer 428/head
Quentin Young [Fri, 28 Apr 2017 23:30:59 +0000 (23:30 +0000)]
isisd: fix uninitialized pointer

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
8 years agolib: add pthread manager
Quentin Young [Sun, 16 Apr 2017 03:14:36 +0000 (03:14 +0000)]
lib: add pthread manager

Adds infrastructure for keeping track of pthreads.

The general idea is to maintain a daemon-wide table of all pthreads,
running or not. A pthread is associated with its own thread master that
can be used with existing thread.c code, which provides user-space
timers, an event loop, non-blocking I/O callbacks and other facilities.

Each frr_pthread has a unique identifier that can be used to fetch it
from the table. This is to allow naming threads using a macro, for
example:

 #define WRITE_THREAD 0
 #define READ_THREAD  1
 #define WORK_THREAD  2

The idea here is to be relatively flexible with regard to how daemons
manage their collection of pthreads; the implementation could get away
with just some #define'd constants, or keep a dynamically allocated data
structure that provides organization, searching, prioritizing, etc.

Overall this interface should provide a way to maintain the familiar
thread.c userspace threading model while progressively introducing
pthreads.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
8 years agolib: additional thread.c MT-safety work
Quentin Young [Mon, 17 Apr 2017 18:33:58 +0000 (18:33 +0000)]
lib: additional thread.c MT-safety work

Fixes a few insufficient critical sections. Adds back locking for
thread_cancel(), since while thread_cancel() is only safe to call from
the pthread which owns the thread master due to races involving
thread_fetch() modifying thread master's ready queue, we still need
mutual exclusion here for all of the other public thread.c functions to
maintain their MT-safety.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
8 years agolib: make thread.c pthread-safe
Quentin Young [Fri, 3 Mar 2017 19:01:49 +0000 (19:01 +0000)]
lib: make thread.c pthread-safe

This change introduces synchronization mechanisms to thread.c in order
to allow safe concurrent use.

Thread.c should now be threadstafe with respect to:
* struct thread
* struct thread_master

Calls into thread.c for operations upon data of this type should not
require external synchronization.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
8 years agoMerge pull request #423 from opensourcerouting/feature/isis-mt
Donald Sharp [Fri, 28 Apr 2017 14:18:33 +0000 (10:18 -0400)]
Merge pull request #423 from opensourcerouting/feature/isis-mt

IS-IS multi topology

8 years agoisisd: make spf MT aware 423/head
Christian Franke [Thu, 27 Apr 2017 11:56:47 +0000 (13:56 +0200)]
isisd: make spf MT aware

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
8 years agoisisd: announce and parse MT IP reachabilities
Christian Franke [Thu, 27 Apr 2017 11:56:45 +0000 (13:56 +0200)]
isisd: announce and parse MT IP reachabilities

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
8 years agoisisd: announce and parse MT IS reachabilities
Christian Franke [Thu, 27 Apr 2017 11:56:43 +0000 (13:56 +0200)]
isisd: announce and parse MT IS reachabilities

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
8 years agoisisd: track intersecting set of supported MTs for each adj
Christian Franke [Thu, 27 Apr 2017 11:56:41 +0000 (13:56 +0200)]
isisd: track intersecting set of supported MTs for each adj

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
8 years agoisisd: announce MT capabilities in IIH and LSP
Christian Franke [Thu, 27 Apr 2017 11:56:38 +0000 (13:56 +0200)]
isisd: announce MT capabilities in IIH and LSP

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
8 years agoisisd: add MT configuration
Christian Franke [Thu, 27 Apr 2017 11:56:35 +0000 (13:56 +0200)]
isisd: add MT configuration

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
8 years agoisisd: implement draft-ietf-isis-ext-eth and support p2p over LAN on BSD
Christian Franke [Thu, 27 Apr 2017 10:56:11 +0000 (12:56 +0200)]
isisd: implement draft-ietf-isis-ext-eth and support p2p over LAN on BSD

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
8 years agoisisd: do some cleanup on the spf implementation
Christian Franke [Thu, 27 Apr 2017 10:54:21 +0000 (12:54 +0200)]
isisd: do some cleanup on the spf implementation

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
8 years agoisisd: function lsp_te_tlv_fit is never used
Christian Franke [Thu, 27 Apr 2017 10:42:56 +0000 (12:42 +0200)]
isisd: function lsp_te_tlv_fit is never used

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
8 years agoMerge pull request #416 from opensourcerouting/ldpd-coverity-fix
Donald Sharp [Thu, 27 Apr 2017 13:41:07 +0000 (09:41 -0400)]
Merge pull request #416 from opensourcerouting/ldpd-coverity-fix

ldpd: fix issues detected by Coverity Scan

8 years agoMerge remote-tracking branch 'origin/stable/2.0'
Donald Sharp [Thu, 27 Apr 2017 13:12:46 +0000 (09:12 -0400)]
Merge remote-tracking branch 'origin/stable/2.0'

8 years agoMerge pull request #415 from hwchiu/fix_ubuntu16.04
Donald Sharp [Thu, 27 Apr 2017 12:31:16 +0000 (08:31 -0400)]
Merge pull request #415 from hwchiu/fix_ubuntu16.04

Update Building_FRR_on_Ubuntu1604 to make it support systemd

8 years agoldpd: fix issues detected by Coverity Scan 416/head
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>
8 years agoUpdate Building_FRR_on_Ubuntu1604.md 415/head
Hung-Wei Chiu [Thu, 27 Apr 2017 03:22:15 +0000 (11:22 +0800)]
Update Building_FRR_on_Ubuntu1604.md

Fix typo

8 years agoUpdate Building_FRR_on_Ubuntu1604.md
Hung-Wei Chiu [Thu, 27 Apr 2017 03:10:36 +0000 (11:10 +0800)]
Update Building_FRR_on_Ubuntu1604.md

1.  Modify the configure prefix (since there some hard coded path in **/usr/lib/frr/fr**
2.  Install the systemd service config

8 years agoMerge pull request #384 from donaldsharp/dr2
Martin Winter [Wed, 26 Apr 2017 23:24:48 +0000 (16:24 -0700)]
Merge pull request #384 from donaldsharp/dr2

Add source of route as protocol string in ip route pushed into kernel

8 years agoUpdate to draft-ietf-idr-bgp-prefix-sid-05 412/head
Daniel Walton [Wed, 26 Apr 2017 21:45:32 +0000 (21:45 +0000)]
Update to draft-ietf-idr-bgp-prefix-sid-05

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
The initial implementation was against draft-keyupate-idr-bgp-prefix-sid-02
This updates our label-index implementation up to draft-ietf-idr-bgp-prefix-sid-05
- changed BGP_ATTR_LABEL_INDEX to BGP_ATTR_PREFIX_SID
- since there are multiple TLVs in BGP_ATTR_PREFIX_SID you can no longer
  rely on that flag to know if there is a label-index for the path. I
changed bgp_attr_extra_new() to init the label_index to
BGP_INVALID_LABEL_INDEX
- put some placeholder code in for the other two TLVs (IPv6 and
  Originator SRGB)

8 years agoMerge pull request #343 from donaldsharp/mpls2
Renato Westphal [Wed, 26 Apr 2017 20:57:04 +0000 (17:57 -0300)]
Merge pull request #343 from donaldsharp/mpls2

Mpls

8 years agoMerge remote-tracking branch 'origin/master' into mpls2 343/head
Donald Sharp [Wed, 26 Apr 2017 18:18:22 +0000 (14:18 -0400)]
Merge remote-tracking branch 'origin/master' into mpls2

8 years agoBGP_ATTR_LABEL_INDEX fixes
Daniel Walton [Wed, 26 Apr 2017 15:53:35 +0000 (15:53 +0000)]
BGP_ATTR_LABEL_INDEX fixes

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
- cleaned up the "show bgp ipv4 labeled-unicast x.x.x.x" output

- fixed some json keys to use camelCase

- bgp_attr_label_index() was clearing BGP_ATTR_LABEL_INDEX because it
  was comparing mp_update->afi against SAFI_LABELED_UNICAST instead of
  mp_update->safi

- added BGP_ATTR_LABEL_INDEX to attr_str

8 years agobgpd: Do not force nh_afi to be AFI_IP for 'ipv4 labeled-unicast'
Daniel Walton [Tue, 25 Apr 2017 21:53:28 +0000 (21:53 +0000)]
bgpd: Do not force nh_afi to be AFI_IP for 'ipv4 labeled-unicast'

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
8 years agoMerge pull request #393 from opensourcerouting/ldpd-minor-fixes
Donald Sharp [Wed, 26 Apr 2017 14:38:28 +0000 (10:38 -0400)]
Merge pull request #393 from opensourcerouting/ldpd-minor-fixes

ldpd: minor fixes

8 years agozebra: fix attempt to install a second rib from imported table entries 410/head
Don Slice [Fri, 21 Apr 2017 18:18:42 +0000 (11:18 -0700)]
zebra: fix attempt to install a second rib from imported table entries

Problem reported by a customer with prefix imported by rdnbrd not being
successfully installed in the quagga rib.  Determined that this was due
to VRR resolving the same arp entry, causing two entries to be installed
in table 10.  When these were imported into the quagga rib, they came in
as two different rib entries from the same table/instance, which is not
permitted and caused them to be deleted.

Added logic to zebra_add_import_table_entry to do the same actions as
rib_add and delete the older rib entry if a new rib entry is received
which matches.

Manual testing successful and automated tests for redistribute neighbor
have the same passes and failures as the base.

Ticket: CM-15926
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Reviewed-by:

8 years agoldpd: fix bug when changing the transport address 393/head
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>
8 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>
8 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>
8 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>
8 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>
8 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>
8 years agoldpd: fix small style issues
Renato Westphal [Wed, 19 Apr 2017 21:14:20 +0000 (18:14 -0300)]
ldpd: fix small style issues

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 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>
8 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>
8 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>
8 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>
8 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>
8 years agoMerge remote-tracking branch 'origin/master' into mpls2
Donald Sharp [Wed, 26 Apr 2017 11:50:02 +0000 (07:50 -0400)]
Merge remote-tracking branch 'origin/master' into mpls2

8 years agoMerge remote-tracking branch 'origin/stable/3.0'
Donald Sharp [Tue, 25 Apr 2017 14:42:14 +0000 (10:42 -0400)]
Merge remote-tracking branch 'origin/stable/3.0'

8 years agoMerge pull request #403 from donaldsharp/nhrpd2
Russ White [Tue, 25 Apr 2017 14:24:23 +0000 (10:24 -0400)]
Merge pull request #403 from donaldsharp/nhrpd2

Nhrpd2

8 years agonhrpd: Fix cli changes missed 403/head
Donald Sharp [Tue, 25 Apr 2017 13:07:05 +0000 (09:07 -0400)]
nhrpd: Fix cli changes missed

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agonhrp: parse and log command response errors from strongSwan
Timo Teräs [Fri, 21 Apr 2017 11:58:17 +0000 (14:58 +0300)]
nhrp: parse and log command response errors from strongSwan

helps to debug configuration problems

8 years agonhrp: fix potential crash when vici profile name is not configured
Timo Teräs [Fri, 21 Apr 2017 11:57:57 +0000 (14:57 +0300)]
nhrp: fix potential crash when vici profile name is not configured

8 years agonhrp: notify 'tunnel protection' changes
Timo Teräs [Fri, 21 Apr 2017 11:56:45 +0000 (14:56 +0300)]
nhrp: notify 'tunnel protection' changes

to triggers refresh of IKE SAs immediately on this command

8 years agonhrp: explicitly cast ints to size_t for vici_request_vc va_list handling
Timo Teräs [Fri, 21 Apr 2017 10:57:28 +0000 (13:57 +0300)]
nhrp: explicitly cast ints to size_t for vici_request_vc va_list handling

8 years agonhrp: fix protocol address family parsing on receive
Timo Teräs [Thu, 20 Apr 2017 13:24:14 +0000 (16:24 +0300)]
nhrp: fix protocol address family parsing on receive

See bugzilla #948

8 years agonhrp: implement 'no ip nhrp map' command
Timo Teräs [Fri, 21 Apr 2017 10:37:07 +0000 (13:37 +0300)]
nhrp: implement 'no ip nhrp map' command

was accidentally not implemented earlier

8 years agonhrpd: implement 'show ip nhrp nhs'
Timo Teräs [Sat, 25 Mar 2017 15:27:24 +0000 (17:27 +0200)]
nhrpd: implement 'show ip nhrp nhs'

8 years ago*: Move the cumulus/etc/rt_protos.d/frr.conf 384/head
Donald Sharp [Tue, 25 Apr 2017 11:37:00 +0000 (07:37 -0400)]
*: Move the cumulus/etc/rt_protos.d/frr.conf

Moving cumulus/etc/rt_protos.d/frr.conf to tools/etc/rt_protos.d/frr.conf

Requested in Review.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agoMerge pull request #400 from dwalton76/default-frr-conf
Martin Winter [Tue, 25 Apr 2017 03:11:11 +0000 (20:11 -0700)]
Merge pull request #400 from dwalton76/default-frr-conf

vtysh: "Command incomplete: log syslog"

8 years agoldpd: remove two unused imsg types
Renato Westphal [Tue, 18 Apr 2017 16:27:30 +0000 (13:27 -0300)]
ldpd: remove two unused imsg types

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 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>
8 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>
8 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>
8 years agoMerge pull request #345 from chiragshah6/pim_dev
Renato Westphal [Mon, 24 Apr 2017 19:59:58 +0000 (16:59 -0300)]
Merge pull request #345 from chiragshah6/pim_dev

pimd: Pim ECMP changes along with nexthop tracking using cached DB

8 years agovtysh: "Command incomplete: log syslog" 395/head 400/head
Daniel Walton [Mon, 24 Apr 2017 18:22:29 +0000 (18:22 +0000)]
vtysh: "Command incomplete: log syslog"

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Before
======
root@spine-1[~]# cat /etc/frr/frr.conf
no log monitor
!
service integrated-vtysh-config
!
log syslog
!
log syslog informational
!
line vty
!
root@spine-1[~]#
root@spine-1[~]# vtysh -m -f /etc/frr/frr.conf
no log monitor
!
service integrated-vtysh-config
!
line 5: % Command incomplete: log syslog

root@spine-1[~]#

After
=====
root@spine-1[~]# vtysh -m -f /etc/frr/frr.conf
no log monitor
!
service integrated-vtysh-config
!
log syslog
!
log syslog informational
!
line vty
!
end
root@spine-1[~]#

8 years agoMerge pull request #391 from opensourcerouting/fix-no-router-ospf6
Donald Sharp [Sat, 22 Apr 2017 21:55:26 +0000 (17:55 -0400)]
Merge pull request #391 from opensourcerouting/fix-no-router-ospf6

ospf6d: fix "no router ospf6"

8 years agoospf6d: fix "no router ospf6" 391/head
Renato Westphal [Sat, 22 Apr 2017 20:41:54 +0000 (17:41 -0300)]
ospf6d: fix "no router ospf6"

The "no router ospf6" command wasn't working.

Regression introduced by commit 16cedbb.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
8 years agoMerge pull request #388 from opensourcerouting/snap-fixes-3.0
Donald Sharp [Sat, 22 Apr 2017 00:13:31 +0000 (20:13 -0400)]
Merge pull request #388 from opensourcerouting/snap-fixes-3.0

Snap fixes 3.0

8 years agodoc: Add nhrpd to relevant section in Building_FRR_on_xxxx doc
Martin Winter [Fri, 21 Apr 2017 10:55:14 +0000 (03:55 -0700)]
doc: Add nhrpd to relevant section in Building_FRR_on_xxxx doc

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
8 years agoClean installation guide with Debian/Ubuntu
Phil Huang [Thu, 13 Apr 2017 13:20:53 +0000 (21:20 +0800)]
Clean installation guide with Debian/Ubuntu

Signed-off-by: Phil Huang <phil_huang@edge-core.com>
8 years agoAdd user `frr` into group `frrvty`
Phil Huang [Thu, 13 Apr 2017 10:11:28 +0000 (18:11 +0800)]
Add user `frr` into group `frrvty`

Signed-off-by: Phil Huang <phil_huang@edge-core.com>
8 years agosnapcraft: Add FPM module with command to set mode or disable it 388/head
Martin Winter [Fri, 21 Apr 2017 09:49:39 +0000 (02:49 -0700)]
snapcraft: Add FPM module with command to set mode or disable it

- New snap command:
    frr.set fpm {disable | protobuf | netlink}

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
8 years agolib: Add CLI option --moduledir to override default module location (needed for snap...
Martin Winter [Fri, 21 Apr 2017 06:03:03 +0000 (23:03 -0700)]
lib: Add CLI option --moduledir to override default module location (needed for snap support)

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
8 years agoAdd source of route as protocol string in ip route pushed into kernel
Dinesh G Dutt [Wed, 11 Jan 2017 22:33:39 +0000 (14:33 -0800)]
Add source of route as protocol string in ip route pushed into kernel

Ticket: CM-14313
Reviewed By:
Testing Done: bgpmin, ospfmin, bgp_kitchen_sink_test

'ip route show' displays all routes as belonging to protocol zebra.
The user has to run an additional command (in vtysh) to get the actual
source of a route (bgp/ospf/static etc.). This patch addresses that by
pushing the appropriate protocol string into the protocol field of the
netlink route update message. Now you can see routes with the correct
origin as well as filter on them (ip route show proto ospf).

'ospf' is used for both IPv4 and IPv6 routes, even though the OSPF
version is different in both cases.

Sample output (old):
9.9.12.13 via 69.254.2.38 dev swp3.2  proto zebra  metric 20
9.9.13.3  proto zebra  metric 20
        nexthop via 69.254.2.30  dev swp1.2 weight 1
        nexthop via 69.254.2.34  dev swp2.2 weight 1
        nexthop via 69.254.2.38  dev swp3.2 weight 1

Sample output (new):
9.9.12.13 via 69.254.2.38 dev swp3.2  proto bgp  metric 20
9.9.13.3  proto bgp  metric 20
        nexthop via 69.254.2.30  dev swp1.2 weight 1
        nexthop via 69.254.2.34  dev swp2.2 weight 1
        nexthop via 69.254.2.38  dev swp3.2 weight 1

8 years agosnapcraft: Add nhrpd to snap
Martin Winter [Fri, 21 Apr 2017 01:18:40 +0000 (18:18 -0700)]
snapcraft: Add nhrpd to snap

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
8 years agosnapcraft: Fix another old leftover of ubuntu-core in build doc
Martin Winter [Fri, 21 Apr 2017 00:24:12 +0000 (17:24 -0700)]
snapcraft: Fix another old leftover of ubuntu-core in build doc

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
8 years agosnapcraft: Update snapcraft requirements for FRR 3.0 (from 2.0)
Martin Winter [Thu, 20 Apr 2017 23:58:24 +0000 (16:58 -0700)]
snapcraft: Update snapcraft requirements for FRR 3.0 (from 2.0)

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
8 years agoMerge pull request #382 from opensourcerouting/snap-doc-fixes-3.0
Donald Sharp [Thu, 20 Apr 2017 22:55:21 +0000 (18:55 -0400)]
Merge pull request #382 from opensourcerouting/snap-doc-fixes-3.0

snapcraft: Improve README.usage.md based on feedback received

8 years agosnapcraft: Improve README.usage.md based on feedback received 382/head
Martin Winter [Wed, 12 Apr 2017 23:00:43 +0000 (16:00 -0700)]
snapcraft: Improve README.usage.md based on feedback received

- Fix snap connect (it's now called core, not ubuntu-core)
- Add section on MPLS configuration
- Add FAQ topic on ospfd/ospf6d crashing before privs are assigned to snap
- Add pointer to official webpage

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
8 years agoMerge remote-tracking branch 'origin/stable/3.0'
Donald Sharp [Wed, 19 Apr 2017 11:43:30 +0000 (07:43 -0400)]
Merge remote-tracking branch 'origin/stable/3.0'

8 years agoMerge pull request #373 from qlyoung/fix-no-pim-rp
Russ White [Wed, 19 Apr 2017 11:16:22 +0000 (07:16 -0400)]
Merge pull request #373 from qlyoung/fix-no-pim-rp

pimd: fix some pim commands

8 years agoMerge pull request #374 from qlyoung/pqueue-linear-remove
Russ White [Wed, 19 Apr 2017 11:04:04 +0000 (07:04 -0400)]
Merge pull request #374 from qlyoung/pqueue-linear-remove

lib: add removal by item to pqueue

8 years agoMerge pull request #379 from pguibert6WIND/frrouting_issue309_2
Russ White [Wed, 19 Apr 2017 10:58:48 +0000 (06:58 -0400)]
Merge pull request #379 from pguibert6WIND/frrouting_issue309_2

vtysh: remove deprecated HAVE_EVPN flag

8 years agovtysh: remove deprecated HAVE_EVPN flag 379/head
Philippe Guibert [Wed, 12 Apr 2017 13:22:41 +0000 (15:22 +0200)]
vtysh: remove deprecated HAVE_EVPN flag

This flag prevents from entering into evpn address-family node, when
calling command from vtysh.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
8 years agoMerge pull request #315 from LabNConsulting/working/master/patch/bgp-startup
Donald Sharp [Tue, 18 Apr 2017 16:14:58 +0000 (12:14 -0400)]
Merge pull request #315 from LabNConsulting/working/master/patch/bgp-startup

Restore functionality broken/overridden by 857b5446497505f582417e4a5ada029712743cbc

8 years agozebra: stop crash on process termination due to stale ifp->node
Don Slice [Tue, 18 Apr 2017 12:11:32 +0000 (08:11 -0400)]
zebra: stop crash on process termination due to stale ifp->node

Problem reported that crash occurred when stopping quagga in certain
circumstances.  Determined that this was due to a stale pointer on the
ifp for a deleted interface.  The ifp->node had been freed but the ifp
still kept a pointer to it, and when later the process was stopped, it
attempted to delete it again.

Ticket: CM-15550
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agoMerge remote-tracking branch 'origin/stable/3.0'
Donald Sharp [Mon, 17 Apr 2017 23:12:44 +0000 (19:12 -0400)]
Merge remote-tracking branch 'origin/stable/3.0'

8 years agoMerge pull request #371 from donaldsharp/as_path_fix_3.0
Martin Winter [Mon, 17 Apr 2017 21:47:08 +0000 (14:47 -0700)]
Merge pull request #371 from donaldsharp/as_path_fix_3.0

bgpd: Fix 'set as-path prepend last-as 10'

8 years agoMerge pull request #370 from donaldsharp/as_path_fix
Martin Winter [Mon, 17 Apr 2017 21:46:28 +0000 (14:46 -0700)]
Merge pull request #370 from donaldsharp/as_path_fix

bgpd: Fix 'set as-path prepend last-as 10'

8 years agopimd: fix 'show ip msdp sa ...' 373/head
Quentin Young [Mon, 17 Apr 2017 19:21:06 +0000 (19:21 +0000)]
pimd: fix 'show ip msdp sa ...'

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
8 years agolib: add removal by item to pqueue 374/head
Quentin Young [Mon, 17 Apr 2017 00:06:02 +0000 (00:06 +0000)]
lib: add removal by item to pqueue

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
8 years agozebra: Add some more checks to fec [un]registration
Donald Sharp [Sat, 15 Apr 2017 17:25:03 +0000 (13:25 -0400)]
zebra: Add some more checks to fec [un]registration

Be a bit more rigoruous about what we can receive
from another protocol and attempt to make the code
less likely to crash and to just safely bail
out when an error is received.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agobgpd: Fix up several issues in bgp_route.c
Donald Sharp [Sat, 15 Apr 2017 13:31:59 +0000 (09:31 -0400)]
bgpd: Fix up several issues in bgp_route.c

1) Some commands were installed in the wrong node
2) Fix output to show labeled information to correctly display
3) Whitespace issue in route-map command

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agozebra: Fix whitespace issue with if statement
Donald Sharp [Sat, 15 Apr 2017 12:59:40 +0000 (08:59 -0400)]
zebra: Fix whitespace issue with if statement

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agozebra: Allow explicit-null as a label option
Donald Sharp [Sat, 15 Apr 2017 12:57:03 +0000 (08:57 -0400)]
zebra: Allow explicit-null as a label option

When entering 'mpls label bind ...' command
allow the explicit-null as an option.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agozebra: Fix crash with dereference of NULL pointer
Donald Sharp [Sat, 15 Apr 2017 12:42:18 +0000 (08:42 -0400)]
zebra: Fix crash with dereference of NULL pointer

We only create the v4 and v6 mpls fec tables currently.
Follow the code pattern for the rest of the code and
ensure that the table exists before we attempt to access it.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agolib, bgpd: Remove UNDEFINED_NODE
Donald Sharp [Sat, 15 Apr 2017 12:33:43 +0000 (08:33 -0400)]
lib, bgpd: Remove UNDEFINED_NODE

Remove the UNDEFINED_NODE as that it's implementation breaks
our ability in BGP to figure out where we are by allowing
default: in the switch statement.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agopimd: fix off-by-one in `no ip pim rp ...`
Quentin Young [Sat, 15 Apr 2017 06:23:22 +0000 (06:23 +0000)]
pimd: fix off-by-one in `no ip pim rp ...`

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
8 years agobgpd: 'show .... bgp regexp WORD' fixed 371/head
Donald Sharp [Sat, 15 Apr 2017 00:39:56 +0000 (20:39 -0400)]
bgpd: 'show .... bgp regexp WORD' fixed

The command was always just returning as part of the
bgp_regexp_show function.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agobgpd: Fix 'set as-path prepend last-as 10'
Donald Sharp [Sat, 15 Apr 2017 00:13:26 +0000 (20:13 -0400)]
bgpd: Fix 'set as-path prepend last-as 10'

1) Fix missing newline in help string
2) Make the ability to have 10 be consistent with the stable/2.0 branch.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
8 years agobgpd: Fix 'set as-path prepend last-as 10' 370/head
Donald Sharp [Sat, 15 Apr 2017 00:05:48 +0000 (20:05 -0400)]
bgpd: Fix 'set as-path prepend last-as 10'

The route-map compilation function was comparing < 10
instead of <= 10.  While the cli was accepting 1-10.

Fix:
!
route-map FOO permit 44
 set as-path prepend last-as 10
!

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