]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
7 years agozebra: labeled unicast handling
Don Slice [Thu, 2 Feb 2017 17:58:33 +0000 (12:58 -0500)]
zebra: labeled unicast handling

Support install of labeled-unicast routes by a client. This would be
BGP, in order to install routes corresponding to AFI/SAFI 1/4 (IPv4)
or 2/4 (IPv6). Convert labeled-unicast routes into label forwarding
entries (i.e., transit LSPs) when there is a static label binding.

Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
7 years agobgpd: update debugs enance
Don Slice [Wed, 1 Feb 2017 18:19:37 +0000 (13:19 -0500)]
bgpd: update debugs enance

Add information about AFI/SAFI to updates - received and sent.

Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
7 years agozebra: fec register
Don Slice [Wed, 1 Feb 2017 18:10:56 +0000 (13:10 -0500)]
zebra: fec register

Implement interface that allows a client to register a FEC for obtaining
a label binding (in-label). Update client whenever the label binding is
updated and cleanup when client goes away.

Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
7 years agozebra: static label binding
Don Slice [Tue, 27 Dec 2016 15:09:28 +0000 (07:09 -0800)]
zebra: static label binding

Implement static label binding of a label to a prefix (FEC).

Note: Currently, only binding to a prefix is supported, the nexthop and/or
other parameters are not considered.  This was cherry-picked by hand from
an earlier mpls branch.

Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
7 years agoMerge pull request #336 from dwalton76/bgpd-allowas-in-removal
David Lamparter [Wed, 5 Apr 2017 20:30:11 +0000 (22:30 +0200)]
Merge pull request #336 from dwalton76/bgpd-allowas-in-removal

bgpd: removing "allowas-in" for peer-group member still allows AS_PATHS

7 years agoMerge pull request #310 from opensourcerouting/thread-prep
Donald Sharp [Wed, 5 Apr 2017 16:39:25 +0000 (12:39 -0400)]
Merge pull request #310 from opensourcerouting/thread-prep

MT preparations

7 years agobgpd: removing "allowas-in" for peer-group member still allows AS_PATHS
Daniel Walton [Wed, 5 Apr 2017 15:19:00 +0000 (15:19 +0000)]
bgpd: removing "allowas-in" for peer-group member still allows AS_PATHS
with our ASN

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Don Slice <dslice@cumulusnetworks.com>
7 years agoMerge pull request #334 from pichuang/typo frr-3.1-dev
Donald Sharp [Wed, 5 Apr 2017 10:08:28 +0000 (06:08 -0400)]
Merge pull request #334 from pichuang/typo

Remove superfluous path and correct groupname

7 years agoRemove superfluous path and correct groupname
Phil Huang [Wed, 5 Apr 2017 08:00:56 +0000 (16:00 +0800)]
Remove superfluous path and correct groupname

Signed-off-by: Phil Huang <phil_huang@edge-core.com>
7 years agoMerge pull request #332 from opensourcerouting/snmp-fix
Donald Sharp [Tue, 4 Apr 2017 20:39:56 +0000 (16:39 -0400)]
Merge pull request #332 from opensourcerouting/snmp-fix

fix SNMP build

7 years agoMerge pull request #331 from dwalton76/quagga-reload
David Lamparter [Tue, 4 Apr 2017 19:47:01 +0000 (21:47 +0200)]
Merge pull request #331 from dwalton76/quagga-reload

tools: quagga-reload.py fails to change max-paths

7 years agoMerge pull request #330 from dwalton76/ospf-no-log-adjacency-changes-detail
David Lamparter [Tue, 4 Apr 2017 19:45:14 +0000 (21:45 +0200)]
Merge pull request #330 from dwalton76/ospf-no-log-adjacency-changes-detail

ospfd: "no log-adjacency-changes detail" disables log-adjacency-changes

7 years agoMerge pull request #329 from dwalton76/debug-zebra-nht
David Lamparter [Tue, 4 Apr 2017 19:44:28 +0000 (21:44 +0200)]
Merge pull request #329 from dwalton76/debug-zebra-nht

zebra: "debug zebra nht" is not in the config

7 years agovtysh: Fix build for non-snmp case
Donald Sharp [Tue, 4 Apr 2017 19:20:52 +0000 (15:20 -0400)]
vtysh: Fix build for non-snmp case

The snmp code is being included in the build of the vtysh_cmd.c
irrelevant of whether or not it is needed.  Be a bit smarter
about what files to include.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agobuild: fix CFLAGS for snmp modules
David Lamparter [Tue, 4 Apr 2017 19:25:19 +0000 (21:25 +0200)]
build: fix CFLAGS for snmp modules

The SNMP modules include <net-snmp/net-snmp-config.h>, which won't be
found in off-searchpath directories without SNMP_CFLAGS.  Unfortunately
in my tests the files were on the search path even without the flags.

(SNMP_LIBS is not needed because only libfrrsnmp calls into net-snmp
functions.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agotools: quagga-reload.py fails to change max-paths
Daniel Walton [Tue, 4 Apr 2017 18:51:32 +0000 (18:51 +0000)]
tools: quagga-reload.py fails to change max-paths

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agoospfd: "no log-adjacency-changes detail" disables log-adjacency-changes
Daniel Walton [Tue, 4 Apr 2017 18:13:43 +0000 (18:13 +0000)]
ospfd: "no log-adjacency-changes detail" disables log-adjacency-changes

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agozebra: "debug zebra nht" is not in the config
Daniel Walton [Tue, 4 Apr 2017 18:11:04 +0000 (18:11 +0000)]
zebra: "debug zebra nht" is not in the config

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agoMerge branch 'master'
David Lamparter [Tue, 4 Apr 2017 18:04:07 +0000 (20:04 +0200)]
Merge branch 'master'

7 years agobuild: remove wildcards from snapcraft/Makefile.am
David Lamparter [Tue, 4 Apr 2017 16:37:47 +0000 (18:37 +0200)]
build: remove wildcards from snapcraft/Makefile.am

automake does not support globs.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agoMerge branch 'stable/2.0'
David Lamparter [Tue, 4 Apr 2017 16:34:08 +0000 (18:34 +0200)]
Merge branch 'stable/2.0'

Fixed minor conflicts from "defaults" change on stable.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agoMerge pull request #294 from opensourcerouting/modules
Donald Sharp [Tue, 4 Apr 2017 15:55:00 +0000 (11:55 -0400)]
Merge pull request #294 from opensourcerouting/modules

Loadable module support

7 years agovtysh: handle "show modules" like "show memory"
David Lamparter [Tue, 4 Apr 2017 14:12:59 +0000 (16:12 +0200)]
vtysh: handle "show modules" like "show memory"

Preface with line identifying which daemon it applies to.
[Also fixes a missed "plugin" -> "module" replace.]

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agoMerge pull request #322 from qlyoung/fix-distance-commands
David Lamparter [Tue, 4 Apr 2017 13:59:12 +0000 (15:59 +0200)]
Merge pull request #322 from qlyoung/fix-distance-commands

ospfd, ospf6d: fix distance commands

7 years agoMerge pull request #321 from donaldsharp/speed
David Lamparter [Tue, 4 Apr 2017 13:58:11 +0000 (15:58 +0200)]
Merge pull request #321 from donaldsharp/speed

Speedy McSpeederson

7 years agoMerge pull request #314 from donaldsharp/scan-build
David Lamparter [Tue, 4 Apr 2017 13:57:00 +0000 (15:57 +0200)]
Merge pull request #314 from donaldsharp/scan-build

Scan build

7 years agoMerge pull request #324 from opensourcerouting/zebra-v4v6-typos
Donald Sharp [Tue, 4 Apr 2017 13:55:58 +0000 (09:55 -0400)]
Merge pull request #324 from opensourcerouting/zebra-v4v6-typos

zebra: fix v4/v6 typos in some show commands

7 years agozebra: Fix printf formatting
Donald Sharp [Tue, 4 Apr 2017 11:50:31 +0000 (07:50 -0400)]
zebra: Fix printf formatting

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agozebra: fix v4/v6 typos in some show commands
Renato Westphal [Tue, 4 Apr 2017 00:14:18 +0000 (21:14 -0300)]
zebra: fix v4/v6 typos in some show commands

This fixes a few problems like this one:
vtysh# show ipv6 route ospf6
Unknown route type

Also, replace SAFI_UNICAST with SAFI_MULTICAST in the "show ipv6 mroute
vrf all" command.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoMerge pull request #323 from LabNConsulting/working/master/patch/install1
Donald Sharp [Mon, 3 Apr 2017 22:55:30 +0000 (18:55 -0400)]
Merge pull request #323 from LabNConsulting/working/master/patch/install1

Fix a couple of centos related install issues

7 years agolib, zebra: Fix CR comments
Donald Sharp [Mon, 3 Apr 2017 22:28:26 +0000 (18:28 -0400)]
lib, zebra: Fix CR comments

lib -> Add a bit of documentation about what units we are in.
zebra -> Fix failure case to be a bit better.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agoredhat/frr.spec.in: fix typo
Lou Berger [Mon, 3 Apr 2017 21:32:03 +0000 (17:32 -0400)]
redhat/frr.spec.in: fix typo

Signed-off-by: Lou Berger <lberger@labn.net>
7 years agodoc: fix some omissions in centos instructions
Lou Berger [Mon, 3 Apr 2017 21:30:31 +0000 (17:30 -0400)]
doc: fix some omissions in centos instructions

Signed-off-by: Lou Berger <lberger@labn.net>
7 years agoospfd, ospf6d: fix distance commands
Quentin Young [Mon, 3 Apr 2017 20:17:12 +0000 (20:17 +0000)]
ospfd, ospf6d: fix distance commands

OSPF distance commands were broken in a variety of ways. Fix 'em.

* `distance ospf` and `distance ospf6` were accepted commands
* Inconsistent doc strings
* Make use of {keyword|tokens}
* Add ability to reset specific distance without specifying a value
  Ex: ~# no distance ospf6 intra

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agoMerge pull request #316 from qlyoung/fix-logc
Jafar Al-Gharaibeh [Mon, 3 Apr 2017 19:43:50 +0000 (14:43 -0500)]
Merge pull request #316 from qlyoung/fix-logc

lib: fix proto_redistnum() oversight from #257

7 years agozebra: Display new speed information in 'show int..' command
Donald Sharp [Thu, 30 Mar 2017 20:54:15 +0000 (16:54 -0400)]
zebra: Display new speed information in 'show int..' command

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agozebra: Retrieve interface speed when creating interface
Donald Sharp [Thu, 30 Mar 2017 19:51:29 +0000 (15:51 -0400)]
zebra: Retrieve interface speed when creating interface

When we get notification from the kernel about the creation
of a new interface, retrieve the speed of it from the kernel

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agolib, zebra: Add ability to pass interface speed up from zebra
Donald Sharp [Thu, 30 Mar 2017 19:37:22 +0000 (15:37 -0400)]
lib, zebra: Add ability to pass interface speed up from zebra

This is a prepatory commit for future improvements.

Add a change to the zapi to pass the interface speed up.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agoMerge pull request #311 from opensourcerouting/ldpd-vty-simpl
Donald Sharp [Mon, 3 Apr 2017 17:49:30 +0000 (13:49 -0400)]
Merge pull request #311 from opensourcerouting/ldpd-vty-simpl

ldpd: simplify CLI code + small fixes

7 years agolib: fix proto_redistnum() oversight from #257
Quentin Young [Sun, 2 Apr 2017 23:21:09 +0000 (23:21 +0000)]
lib: fix proto_redistnum() oversight from #257

proto_redistnum() now accepts full protocol strings and not partial
names per #10

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agoRelease: FRR-2.0 frr-2.0
Martin Winter [Sun, 2 Apr 2017 05:22:47 +0000 (22:22 -0700)]
Release: FRR-2.0

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
7 years agoisisd: Fix some various clang warnings
Donald Sharp [Sat, 1 Apr 2017 12:42:19 +0000 (08:42 -0400)]
isisd: Fix some various clang warnings

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agolib: fix usage of getgrouplist() in *BSD
Mike Tancsa [Fri, 31 Mar 2017 20:50:35 +0000 (17:50 -0300)]
lib: fix usage of getgrouplist() in *BSD

On BSD systems, the getgrouplist() function returns 0 if successful and
-1 on error.

Linux in the other hand returns *ngroups (the number of groups of which
user is a member) on success and -1 on error.

Given this difference, the most portable way to use getgrouplist()
is use its return value only for checking if it succeeded or not.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agonhrpd: Fix value set but never used.
Donald Sharp [Fri, 31 Mar 2017 21:00:26 +0000 (17:00 -0400)]
nhrpd: Fix value set but never used.

The nbma_addr value is set but never used.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Cleanup termination to avoid possible null ptr deref
Donald Sharp [Fri, 31 Mar 2017 20:56:26 +0000 (16:56 -0400)]
pimd: Cleanup termination to avoid possible null ptr deref

When terminating pim, there existed( albeit small ) the chance
to cause a crash.  Cleanup the termination to not have
that chance.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Fix incorrect indentation
Donald Sharp [Fri, 31 Mar 2017 20:50:08 +0000 (16:50 -0400)]
pimd: Fix incorrect indentation

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Remove impossible conditions from test
Donald Sharp [Fri, 31 Mar 2017 20:43:36 +0000 (16:43 -0400)]
pimd: Remove impossible conditions from test

It is impossible for the list->cmp function to
ever be handed NULL values as the arguments.

Clean up this in the code.

Additionally consolidate the exact same two functions
into 1 function.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Cleanup api and stop crash
Donald Sharp [Fri, 31 Mar 2017 20:38:29 +0000 (16:38 -0400)]
pimd: Cleanup api and stop crash

There is no need for a function that calls another function.

Additionally, nexthop_updates from zebra can be either
ZEBRA_NEXTHOP_UPDATE -or-
ZEBRA_IMPORT_CHECK_UPDATE

If we were to receive a IMPORT_CHECK_UPDATE the code
would cause a immediate crash.  Fix this

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agopimd: Cleanup unused variable write
Donald Sharp [Fri, 31 Mar 2017 20:28:22 +0000 (16:28 -0400)]
pimd: Cleanup unused variable write

There exists a common pattern in pim where we were setting
a variable to a value in the error case when we would no
longer need it.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agoldpd: do not consume vty_conf when updating the configuration
Renato Westphal [Thu, 30 Mar 2017 14:33:08 +0000 (11:33 -0300)]
ldpd: do not consume vty_conf when updating the configuration

David Lamparter gave the idea of keeping vty_conf as a permanent copy of
ldpd_conf in order to simplify the CLI code and facilitate the integration
with his cap'n proto framework in the future. Doing this demanded quite
some effort but it was worth it as the code looks much better now.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agobuild: find & use threading library
David Lamparter [Sat, 25 Apr 2015 11:10:36 +0000 (13:10 +0200)]
build: find & use threading library

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agolib: Linux indentation on memory.[ch]
David Lamparter [Fri, 31 Mar 2017 14:37:23 +0000 (16:37 +0200)]
lib: Linux indentation on memory.[ch]

The fact that I originally wrote this in Linux Kernel style and then
reindented it to GNU makes me want to gouge my eyes out every time I
look at it.  Restore original indentation.

[This patch is whitespace-only.]

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agolib: memtypes: restore atomicity
David Lamparter [Wed, 26 Oct 2016 15:19:56 +0000 (17:19 +0200)]
lib: memtypes: restore atomicity

the original version of this code already used _Atomic and atomic_*().
Restore this functionality for future multithreading.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agobuild: try to find some kind of atomic ops
David Lamparter [Fri, 29 May 2015 07:56:51 +0000 (09:56 +0200)]
build: try to find some kind of atomic ops

Either one of:
- ISO C11
- gcc __atomic_*
- gcc/clang __sync_*

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agoldpd: extend the ldp_config_normalize() function
Renato Westphal [Fri, 31 Mar 2017 01:15:33 +0000 (22:15 -0300)]
ldpd: extend the ldp_config_normalize() function

* remove superfluous parts of the configuration when possible
  (e.g. interfaces that are disabled for both IPv4 and IPv6);
* move the check of whether the pseudowire is active or not from
  merge_l2vpns() to ldp_config_normalize() where it belongs.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: fix configuration of non-existing VPLS interfaces and pseudowires
Renato Westphal [Fri, 31 Mar 2017 00:58:47 +0000 (21:58 -0300)]
ldpd: fix configuration of non-existing VPLS interfaces and pseudowires

If we don't know the ifindex, flags, etc of an interface at the time it's
configured, we should make sure that once this information is available
the appropriate structures are updated.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: remove the interface vty node
Renato Westphal [Thu, 30 Mar 2017 23:26:17 +0000 (20:26 -0300)]
ldpd: remove the interface vty node

ldpd uses a hierarchical configuration model where all commands are
defined inside the "mpls ldp" node and its subnodes. The idea is to keep
all LDP configuration in a single place to keep things simple. With that
said, we can remove the "config-if" node from ldpd because we already
have a separate node ("config-ldp-af-if") for LDP-related interface
specific commands.

Example:
vtysh(config)# mpls ldp
vtysh(config-ldp)# address-family ipv4
vtysh(config-ldp-af)# interface eth1
vtysh(config-ldp-af-if)# discovery hello ?
  holdtime  Hello holdtime
  interval  Hello interval

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agobuild: bump to C11
David Lamparter [Sat, 28 Jan 2017 23:51:45 +0000 (00:51 +0100)]
build: bump to C11

Funnily enough, "gnu11" is gcc's default in 5.x if you don't specify
anything, yet there is no "AC_PROG_CC_C11" in autoconf.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agobuild: disable autoconf "-g -O2" default CFLAGS
David Lamparter [Fri, 29 May 2015 00:22:48 +0000 (02:22 +0200)]
build: disable autoconf "-g -O2" default CFLAGS

We have AC_C_FLAG and try -Os before -O2.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agolib: make sure SEGV handler cannot lock up
David Lamparter [Mon, 11 Jan 2016 15:02:49 +0000 (16:02 +0100)]
lib: make sure SEGV handler cannot lock up

Just adding -pthread to gcc options changes libc's behaviour, e.g.
making malloc() use proper locking.  This means a SEGV inside malloc()
(e.g. because malloc bookkeeping structures have been damaged by writing
to a broken pointer) can lead to a lockup by the following chain:

- random_function()
- malloc()
--- SEGV
- core_handler()
- zlog_backtrace_sigsafe()
- backtrace()
- malloc()

This will hang forever waiting for the malloc() lock to be released.

Another failure mode is dynamic linking with lazy binding (-z lazy,
default).  Since backtrace() is seldomly used, this means the call to
backtrace() in the core handler can in fact result in the dynamic linker
trying to resolve the "backtrace" symbol, which can also deadlock.

Add several safeguards to prevent any of this from happening.

(Unfortunately, these are not theoretical issues - I found them by
running into them headfirst.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agoldpd: no need to synchronize pseudowires with LSPs anymore
Renato Westphal [Thu, 30 Mar 2017 23:19:16 +0000 (20:19 -0300)]
ldpd: no need to synchronize pseudowires with LSPs anymore

Since commit 595b4be, the l2vpn_pw_ok() function doesn't check if there's
a working LSP to the remote end of the pseudowire (we assume that zebra
will do that for us). With that said, the l2vpn_sync_pws() function is
not necessary anymore.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: fix harmless maybe-uninitialized warning
Renato Westphal [Thu, 30 Mar 2017 15:33:46 +0000 (12:33 -0300)]
ldpd: fix harmless maybe-uninitialized warning

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoMerge pull request #291 from AnuradhaKaruppiah/pim-ssm
Jafar Al-Gharaibeh [Fri, 31 Mar 2017 05:15:23 +0000 (00:15 -0500)]
Merge pull request #291 from AnuradhaKaruppiah/pim-ssm

Pim ssm

7 years agoMerge branch 'master' into pim-ssm
Donald Sharp [Thu, 30 Mar 2017 21:20:34 +0000 (16:20 -0500)]
Merge branch 'master' into pim-ssm

7 years agoMerge pull request #301 from qlyoung/nhrpd-gitignore
Jafar Al-Gharaibeh [Thu, 30 Mar 2017 21:15:18 +0000 (16:15 -0500)]
Merge pull request #301 from qlyoung/nhrpd-gitignore

nhrpd: add .gitignore

7 years agoMerge pull request #307 from LabNConsulting/working/2.0/patch/rename2
Donald Sharp [Thu, 30 Mar 2017 19:23:55 +0000 (14:23 -0500)]
Merge pull request #307 from LabNConsulting/working/2.0/patch/rename2

Rename: FreeRangeRouting --> FRRouting

7 years agoMerge pull request #305 from opensourcerouting/build-doc-updates
Donald Sharp [Thu, 30 Mar 2017 19:23:15 +0000 (14:23 -0500)]
Merge pull request #305 from opensourcerouting/build-doc-updates

doc: Update for the Building_FRR docs to include new requirements

7 years agoRename: freerangerouting --> frrouting
Lou Berger [Thu, 30 Mar 2017 18:24:05 +0000 (14:24 -0400)]
Rename: freerangerouting --> frrouting

Signed-off-by: Lou Berger <lberger@labn.net>
7 years agoRename: FreeRangeRouting FRRouting
Lou Berger [Thu, 30 Mar 2017 18:22:35 +0000 (14:22 -0400)]
Rename: FreeRangeRouting FRRouting

Signed-off-by: Lou Berger <lberger@labn.net>
7 years agoMerge pull request #297 from opensourcerouting/ldpd-openbsd
Donald Sharp [Thu, 30 Mar 2017 11:23:59 +0000 (06:23 -0500)]
Merge pull request #297 from opensourcerouting/ldpd-openbsd

Add support for MPLSv6 in OpenBSD + minor fixes

7 years agoMerge pull request #296 from opensourcerouting/ldpd-sighup
Donald Sharp [Thu, 30 Mar 2017 11:18:25 +0000 (06:18 -0500)]
Merge pull request #296 from opensourcerouting/ldpd-sighup

ldpd: do a full configuration reload upon receiving a SIGHUP

7 years agoMerge pull request #299 from opensourcerouting/test-ref-out
Donald Sharp [Thu, 30 Mar 2017 11:14:21 +0000 (06:14 -0500)]
Merge pull request #299 from opensourcerouting/test-ref-out

tests: format TestRefMismatch more readable

7 years agoMerge pull request #298 from opensourcerouting/defaults
Donald Sharp [Thu, 30 Mar 2017 11:13:19 +0000 (06:13 -0500)]
Merge pull request #298 from opensourcerouting/defaults

track version & "defaults" in configs

7 years agonhrpd: add .gitignore
Quentin Young [Wed, 29 Mar 2017 23:40:55 +0000 (23:40 +0000)]
nhrpd: add .gitignore

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agolib: sandbox: print vtysh daemon targets
David Lamparter [Wed, 22 Mar 2017 09:45:51 +0000 (10:45 +0100)]
lib: sandbox: print vtysh daemon targets

This is very useful to check whether a command disappeared from a
specific daemon (by comparing against an earlier output of
"grammar find-ambiguous printall nodescan")

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agovtysh: parsing fixes on distribute-list
David Lamparter [Wed, 22 Mar 2017 09:22:14 +0000 (10:22 +0100)]
vtysh: parsing fixes on distribute-list

The vtysh preprocessing stuff doesn't like the first argument to
install_element() being something other than a _NODE constant, and the
comment hack wasn't cutting it... just expand this.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agovtysh: remove ignore list
David Lamparter [Wed, 22 Mar 2017 09:39:06 +0000 (10:39 +0100)]
vtysh: remove ignore list

With DEFUN_NOSH in place everywhere, this is useless.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years ago*: apply DEFUN_NOSH for node-switch CLI commands
David Lamparter [Wed, 22 Mar 2017 09:38:22 +0000 (10:38 +0100)]
*: apply DEFUN_NOSH for node-switch CLI commands

These have copies in vtysh that do the node-switch locally and are
listed in extract.pl's ignore list.  The ignore list however is
redundant since DEFUN_NOSH does the same thing...

ldpd is a bit hacky, but Renato is reworking this anyway.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years ago*: track version & "defaults" in configs
David Lamparter [Thu, 9 Mar 2017 18:00:19 +0000 (19:00 +0100)]
*: track version & "defaults" in configs

[CF]: Move default name to autoconf and update tests

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
7 years agotests: format TestRefMismatch more readable
Christian Franke [Tue, 28 Mar 2017 16:23:47 +0000 (18:23 +0200)]
tests: format TestRefMismatch more readable

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
7 years agodoc: minor tweaks in the build instructions
Renato Westphal [Tue, 28 Mar 2017 00:39:27 +0000 (21:39 -0300)]
doc: minor tweaks in the build instructions

* ldpd is built by default in all platforms, it's not necessary to
  provide --enable-ldpd anymore;
* Remove comment about ldpd not being tested on OpenBSD, it works very
  well on this platform;
* Provide instructions to enable MPLS forwarding in OpenBSD.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agozebra-mpls: replace legacy bzero by memset
Renato Westphal [Tue, 28 Mar 2017 00:17:37 +0000 (21:17 -0300)]
zebra-mpls: replace legacy bzero by memset

bzero() was deprecated in POSIX.1-2001 and removed in POSIX.1-2008 in
deference to memset().

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agozebra-mpls: add support for MPLSv6 in OpenBSD
Renato Westphal [Tue, 28 Mar 2017 00:13:29 +0000 (21:13 -0300)]
zebra-mpls: add support for MPLSv6 in OpenBSD

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: replace all occurrences of '\n' with VTY_NEWLINE
Renato Westphal [Mon, 27 Mar 2017 23:14:09 +0000 (20:14 -0300)]
ldpd: replace all occurrences of '\n' with VTY_NEWLINE

The format of the terse output of several ldpd's show commands was copied
from the OpenBSD's ldpctl(8) control program. In the process of doing
that I forgot to replace the occurrences of '\n' with VTY_NEWLINE.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: update pledge promise in lde
Renato Westphal [Mon, 27 Mar 2017 18:03:34 +0000 (15:03 -0300)]
ldpd: update pledge promise in lde

With the introduction of the label manager, now lde needs to pledge
"unix" as well in order to connect to zebra.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: fix pseudowire merge algorithm
Renato Westphal [Sat, 25 Mar 2017 23:57:03 +0000 (20:57 -0300)]
ldpd: fix pseudowire merge algorithm

The previous algorithm wasn't failsafe for full configuration reloads
where several pseudowires can be inserted or removed at the same
time. This patch introduces a much simpler logic that solves the problem
in a better way.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: remove a few unnecessary functions
Renato Westphal [Sat, 25 Mar 2017 23:52:42 +0000 (20:52 -0300)]
ldpd: remove a few unnecessary functions

The original ldpd(8) daemon in OpenBSD doesn't allow the user to put
non-existing interfaces in the configuration file. For this reason,
the l2vpn_if_find() and l2vpn_pw_find() functions take an ifindex as
an argument.  In FRR's ldpd we can put non-existing interfaces in the
configuration, and they are activated as soon as they are available. For
this reason, we can't lookup interfaces by their ifindex in this port.
The l2vpn_if_find_name() and l2vpn_pw_find_name() functions were
introduced to address this issue. However, since the "find-by-ifindex"
functions are not being used anymore, we can just remove them and rename
the *_find_name() functions removing the "_name" suffix.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: do a full configuration reload upon receiving a SIGHUP
Renato Westphal [Wed, 22 Mar 2017 15:53:36 +0000 (12:53 -0300)]
ldpd: do a full configuration reload upon receiving a SIGHUP

The rationale here is to do something very similar to what the original
OpenBSD's ldpd(8) does to reload configuration files:
* create a new empty base configuration (vty_conf);
* parse the configuration file and store the result in vty_conf;
* merge the new configuration into the current configuration.

To do this, introduce a new global variable called "sighup" so that ldpd
doesn't attempt to merge vty_conf into ldpd_conf for each command in
the configuration file, which would be very disruptive. vty_conf should
be merged only after the whole configuration file is parsed in order to
avoid taking actions like shutting down neighbors when not necessary.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: ignore the SIGHUP signal in the child processes
Renato Westphal [Sun, 26 Mar 2017 00:28:13 +0000 (21:28 -0300)]
ldpd: ignore the SIGHUP signal in the child processes

Only the parent process should handle the SIGHUP signal, but we need
to make sure that this signal is ignored in the child processes so a
command like "killall -SIGHUP ldpd" won't kill ldpd.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: simplify handling of configuration commands
Renato Westphal [Thu, 23 Mar 2017 17:49:28 +0000 (14:49 -0300)]
ldpd: simplify handling of configuration commands

The logic to make configuration changes in ldpd is as follows:
1 - duplicate the current configuration;
2 - modify the duplicated configuration (delta);
3 - merge the duplicated configuration into the current configuration.

We can however change things a little bit in order to simplify the code.

If we provide a global vty_conf variable and make sure that it's
always an up-to-date duplicate of ldpd_conf, then we don't need to call
ldp_dup_config() in the callback of each configuration command. Instead
of that, we just need to duplicate ldpd_conf in the startup of the daemon
and in the end of the ldp_reload() function. Doing this is safe because,
due to the single-threaded nature of the parent process, it's impossible
to have multiple requests to change the configuration at the same time.

Also, we can remove the *_ref() functions and do something much simpler
instead.  The problem we have to deal with here is that VTY_GET_CONTEXT()
returns a pointer to an element of ldpd_conf, and what we want is a
pointer to an element of vty_conf (e.g. an l2vpn).  To solve this,
we just need to look for the equivalent element inside vty_conf using
standard functions from ldpd like l2vpn_find() and others.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: drop privileges earlier in the parent process
Renato Westphal [Wed, 22 Mar 2017 19:23:46 +0000 (16:23 -0300)]
ldpd: drop privileges earlier in the parent process

This solves a bug where log files created with "log file" were being
created root-owned. So, inserting the "log file" command multiple times
with the same path would fail giving a permission denied error.

Also, rearrange the main() function to call start_child() as soon as
possible to avoid a bunch of unnecessary initializations in the forked
processes.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoMerge pull request #295 from opensourcerouting/community_md_edits
Donald Sharp [Sat, 25 Mar 2017 11:36:53 +0000 (07:36 -0400)]
Merge pull request #295 from opensourcerouting/community_md_edits

COMMUNITY.md: update CodingStyle & branching

7 years agoCOMMUNITY.md: update CodingStyle & branching
David Lamparter [Mon, 23 Jan 2017 19:52:13 +0000 (20:52 +0100)]
COMMUNITY.md: update CodingStyle & branching

Also add a note that this is documentation, not law.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agoMerge pull request #292 from donaldsharp/sgrpt_prune
David Lamparter [Sat, 25 Mar 2017 09:10:22 +0000 (10:10 +0100)]
Merge pull request #292 from donaldsharp/sgrpt_prune

Sgrpt prune

7 years agodoc: document loadable module support
David Lamparter [Sat, 25 Mar 2017 09:05:19 +0000 (10:05 +0100)]
doc: document loadable module support

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agodoc: Update for the Building_FRR docs to include new requirements
Martin Winter [Sat, 25 Mar 2017 07:57:53 +0000 (00:57 -0700)]
doc: Update for the Building_FRR docs to include new requirements

* Added libc-ares
* Added python-dev

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
7 years agozebra: fpm: convert into module
David Lamparter [Sun, 12 Feb 2017 23:29:37 +0000 (00:29 +0100)]
zebra: fpm: convert into module

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years ago*: snmp: convert into modules
David Lamparter [Sun, 12 Jun 2016 15:52:50 +0000 (17:52 +0200)]
*: snmp: convert into modules

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years ago*: use hooks for sending SNMP traps
David Lamparter [Sun, 12 Jun 2016 15:32:23 +0000 (17:32 +0200)]
*: use hooks for sending SNMP traps

This means there are no ties into the SNMP code anymore other than the
init call at startup.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agobuild: split off libfrrsnmp
David Lamparter [Mon, 13 Jun 2016 13:44:26 +0000 (15:44 +0200)]
build: split off libfrrsnmp

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>