Commit Graph

471 Commits

Author SHA1 Message Date
David Lamparter
53d93be147 build: non-recursive auxiliary directories
Flatten {m4,pkgsrc,python,redhat,snapcraft}/Makefile.am into the main
one.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-31 23:03:30 +02:00
David Lamparter
0f8b5fd5a0 build: non-recursive qpb & fpm
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-31 23:03:30 +02:00
David Lamparter
ddfeb48652 build: zebra: remove *_method Makefile hacks
replace with preprocessor checks in source files.  Much simpler...

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-31 23:03:30 +02:00
David Lamparter
64d44794fe build: convert zebra/ to non-recursive build
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-31 23:03:30 +02:00
David Lamparter
4a121f99f7 build: convert lib/ to non-recursive build
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-31 23:03:27 +02:00
Jafar Al-Gharaibeh
1689cf7e44 config: switch a few references to say FRR
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2017-07-12 11:25:33 -05:00
Ryan Hagelstrom
22ea387f26 config: No need to test these if enabled. Plays havoc with make distribution.
Signed-off-by: Ryan Hagelstrom <rhagelstrom@gmail.com>
2017-07-07 13:43:01 -05:00
Quentin Young
4db0cff16a
lib: add statistics for hash tables
Adds a function that calculates various statistics on our implementation
of a hash table. These are useful for evaluating performance.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-07-01 19:18:06 -04:00
Donald Sharp
1e84e9a697 Merge pull request #714 from opensourcerouting/cli_magic_defpy
CLI magic: part 1 (DEFPY)
2017-06-28 09:48:33 -04:00
Renato Westphal
c740f7d367 ldpd: convert cli and get rid of the xml interface
The xml2cli.pl script was useful years ago when the vty code was very
rudimentary. This is not the case anymore, so convert all ldpd CLI
commands to use DEFUNs directly and get rid of the XML interface.

The benefits are:
* Consistency with the other daemons;
* One less build dependency (the LibXML perl module);
* Easier to add new commands.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-06-16 14:43:42 -03:00
David Lamparter
5578a14d94 python: clidef.py
Adds "DEFPY()" which invokes an additional layer of preprocessing, so
that we get pre-parsed and named function arguments for the CLI.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-06-14 19:29:26 +02:00
David Lamparter
29ad6f6882 lib: clippy the assistant
Wraps the command parsing code for Python, so we can use it to do fancy
preprocessing and replace extract.pl.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-06-14 19:29:23 +02:00
David Lamparter
92e5026146 build: fix some cross-compilation issues
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-06-14 15:46:36 +02:00
David Lamparter
645bb0b10e Merge branch 'stable/3.0'
Dropped:
	redhat/README.rpm_build.md
	redhat/daemons
	redhat/frr.init
	redhat/frr.logrotate
	redhat/frr.spec.in

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-06-13 17:37:58 +02:00
David Lamparter
97bd5c48de Merge remote-tracking branch 'frr/master' into pull-624 2017-06-13 09:18:14 +02:00
Renato Westphal
316d0ae57b ldpd: remove pledge calls
In OpenBSD pledge is a mitigation mechanism used to restrict the syscalls
a program can use, enforcing its correct behavior.

In this port of OpenBSD's ldpd(8), it's hard to run under the same
tight pledge promises because of libfrr and additional components we
introduced, like a zclient in lde. Since ldpd is already privsep'ed,
removing the pledge calls shouldn't be a big compromise security-wise.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-06-07 10:32:38 -03:00
Donald Sharp
697629e190 Merge remote-tracking branch 'origin/stable/2.0' 2017-06-05 08:19:11 -04:00
David Lamparter
509fac8d85 release: frr-3.0-rc0 2017-06-01 19:23:00 +02:00
Quentin Young
16764760f7 frr: remove --enable-poll
vestigial

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-05-31 17:40:38 +00:00
David Lamparter
ad9a082501 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>
2017-05-31 16:24:04 +02:00
Donald Sharp
293067f086 Merge remote-tracking branch 'origin/master' into babel 2017-05-30 10:58:03 -04:00
Renato Westphal
e8e0cc1af4 zebra: build mpls sources the right way
zebra_mpls_null.c should contain only dummy replacements for
platform-specific functions that may not be available on some systems
(e.g. add/delete LSPs in the kernel).

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-05-19 19:13:29 -03:00
Donald Sharp
ca10883edc *: Initial Import of Babeld into FRR
This is a direct copy of:
https://github.com/boutier/quagga-merge

From the branch babel-merge

I copied the babeld directory into FRR and then fixed up everything to
compile.

Babeld at this point in time when run will more than likely crash and burn
in it's interfactions with zebra.

I might have messed up the cli, which will need to be looked at

extract.pl.in and vtysh.c need to be fixed up.  Additionally we probably
need to work on DEFUN_NOSH conversion in babeld as well

This code comes from:
Matthieu Boutier <boutier@irif.fr>
Juliusz Chroboczek <jch@irif.fr>

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-05-13 14:59:41 -04:00
Donald Sharp
08c369bda9 *: Allow configure to control VTYSH_PAGER used
Signed-off-by: Donald Sharp
2017-05-10 11:16:26 -04:00
Donald Sharp
62ff928b37 *: Allow agentx to be displayed as part of vtysh
Modify code so that that vtysh can now accept the
agentx command for snmp support

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-05-09 10:16:06 -04:00
Donald Sharp
6281320446 Merge remote-tracking branch 'origin/stable/3.0' 2017-05-08 16:51:21 -04:00
Donald Sharp
dbb12b8da9 Merge remote-tracking branch 'origin/master' into datacenter 2017-05-08 14:44:25 -04:00
Russ White
ba2d7123d5 Merge pull request #409 from donaldsharp/EIGRP
Eigrp
2017-05-07 19:48:33 -04:00
Donald Sharp
6c85c08193 eigrpd: Basic Documentation
Add some basic documentation for the EIGRP protocol.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-05-06 14:12:54 -04:00
Donald Sharp
56bdfe7d2a *: Remove cumulus Directory
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-05-04 12:20:29 -04:00
Donald Sharp
df970aa6ef *: Add --enable-datacenter to turn on datacenter defaults
Compile in DataCenter Defaults if --enable-datacenter
is configured instead of --enable-cumulus

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-05-04 11:52:45 -04:00
Donald Sharp
704ef00bb5 lib: Rename HAVE_POLL to prevent conflicting #defines
Rename HAVE_POLL to HAVE_POLL_CALL, when compiling with
snmp and poll enabled this was causing issues.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-05-04 10:32:41 -04:00
Donald Sharp
a03d3c8040 lib: Rename HAVE_POLL to prevent conflicting #defines
Rename HAVE_POLL to HAVE_POLL_CALL, when compiling with
snmp and poll enabled this was causing issues.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-05-04 10:24:25 -04:00
Donald Sharp
05ba625af7 Merge remote-tracking branch 'origin/stable/3.0' 2017-05-02 15:52:09 -04:00
Donald Sharp
b46be72b4a Merge branch 'master' into EIGRP 2017-05-02 11:38:06 -04:00
Donald Sharp
fcc65b0ff4 bgpd: Allow old vpnv4 commands to compile
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-04-28 10:55:45 -04:00
Donald Sharp
ba0cb3fe96 lib: Fix compilation of some be32* code
The be32dec and be32enc functions are available on some
platforms and not others.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-04-26 21:46:10 -04:00
Donald Sharp
6aa210418e Merge remote-tracking branch 'origin/master' into EIGRP 2017-04-26 08:03:54 -04:00
Donald Sharp
c05f73e0f4 Merge remote-tracking branch 'origin/master' into mpls2 2017-04-26 07:50:02 -04:00
Donald Sharp
95f40dbe21 zebra: Get mpls building across multiple platforms.
The build system for mpls is a bit convoluted.  We need
a way to handle builds across multiple platforms.  This,
I believe addresses this issue.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-04-06 14:40:19 -04:00
Donald Sharp
4952d0f0b0 *: Switchover to 3.1-dev
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-04-05 23:25:03 -04:00
Donald Sharp
fa35a883c1 *: Switchover to 3.0
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-04-05 23:20:26 -04:00
Donald Sharp
97133f7915 Merge remote-tracking branch 'origin/master' into EIGRP 2017-04-05 20:52:32 -04:00
Donald Sharp
6492ed5369 Merge pull request #310 from opensourcerouting/thread-prep
MT preparations
2017-04-05 12:39:25 -04:00
David Lamparter
422f8d0ca9 Merge branch 'master' 2017-04-04 20:04:07 +02:00
David Lamparter
3e7c8d040c Merge branch 'stable/2.0'
Fixed minor conflicts from "defaults" change on stable.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-04-04 19:01:47 +02:00
Martin Winter
3e71b5d907 Release: FRR-2.0
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2017-04-01 22:22:47 -07:00
David Lamparter
b31fd74907 build: find & use threading library
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-03-31 17:59:48 +02:00
David Lamparter
899a4fd2a1 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>
2017-03-31 17:59:45 +02:00
David Lamparter
8aa42b826c 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>
2017-03-31 16:22:33 +02:00
David Lamparter
fbd0bae6d6 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>
2017-03-31 16:22:33 +02:00
Lou Berger
d6180888fc Rename: freerangerouting --> frrouting
Signed-off-by: Lou Berger <lberger@labn.net>
2017-03-30 14:24:05 -04:00
Lou Berger
447a8fe92e Rename: FreeRangeRouting FRRouting
Signed-off-by: Lou Berger <lberger@labn.net>
2017-03-30 14:22:35 -04:00
David Lamparter
8efe88eacf *: track version & "defaults" in configs
[CF]: Move default name to autoconf and update tests

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2017-03-28 19:18:42 +02:00
David Lamparter
4f8ea50c0d zebra: fpm: convert into module
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-03-25 08:52:36 +01:00
David Lamparter
5986b66b82 *: snmp: convert into modules
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-03-25 08:52:36 +01:00
David Lamparter
46081234b4 build: split off libfrrsnmp
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-03-25 08:52:36 +01:00
David Lamparter
b249c083d5 lib: add "show modules" CLI command
(for simplicity, this is stuffed in with memory_vty.c)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-03-24 13:02:33 +01:00
David Lamparter
30771d65b2 lib: dynamic module loading
This adds a "-M" option to each daemon, to load dynamic modules at
startup.  Modules are by default located in /usr/lib/frr/modules (lib64
if appropriate).  Unloading or loading at runtime is not supported at
this point to keep things simple.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-03-24 13:02:05 +01:00
Donald Sharp
7f57883ee6 eigrp: Initial Commit
Please Note, I will be redoing this commit message with
more information.

Additionally I will rework the lib/* changes into their
own commits.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-03-08 23:07:46 -05:00
David Lamparter
eb05883f3e *: add frr_config_fork()
Centralise read_config/daemonize/dryrun/pidfile/vty_serv into libfrr.

This also makes multi-instance pid/config handling available as part of
the library.  It's only wired up in ospfd, but the code is in lib/.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-03-08 00:15:36 +01:00
David Lamparter
42350cfc6e build: only default-enable nhrpd on Linux
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-03-07 16:56:57 +01:00
Timo Teräs
caba609302 doc: add initial nhrpd documentation
[DL: resolved renaming & conflicts]
Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-03-07 16:21:01 +01:00
Timo Teräs
2fb975da77 nhrpd: implement next hop resolution protocol
This provides DMVPN support and integrates to strongSwan. Please read
README.nhrpd and README.kernel for more details.

[DL: cherry-picked from dafa05e65fe4b3b3ed5525443f554215ba14f42c]
[DL: merge partially resolved, this commit will not build.]
Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-03-07 16:20:29 +01:00
Quentin Young
855ddb28b5 *: remove QUAGGA_NO_DEPRECATED_INTERFACES
This define is used only to guard macros in lib/linklist.h which
themselves are not used anywhere in the codebase and have been marked
deprecated since anno domini 2005

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-02-27 01:14:40 +00:00
Martin Winter
5753eb9197 release: FRR 2.0-rc2
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2017-02-23 19:47:59 +07:00
Quentin Young
70abec3d71 *: remove QUAGGA_NO_DEPRECATED_INTERFACES
This define is used only to guard macros in lib/linklist.h which
themselves are not used anywhere in the codebase and have been marked
deprecated since anno domini 2005

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-02-17 18:19:27 +00:00
Christian Franke
5a1218aa53 tests: remove dejagnu
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2017-02-13 16:53:00 +01:00
Christian Franke
0b4191c147 tests: remove dejagnu
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2017-02-08 19:08:25 +01:00
Donald Sharp
7df2e1c379 Merge remote-tracking branch 'origin/stable/2.0' 2017-02-07 13:20:12 -05:00
Donald Sharp
55c7280315 *: Convert libzebra -> libfrr
The library libzebra that is installed with FRR will
conflict with Quagga.  So let's rename it to libfrr.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-02-03 08:29:13 -05:00
Donald Sharp
1a35e2e565 Merge remote-tracking branch 'origin/stable/2.0' 2017-02-02 10:42:51 -05:00
Lou Berger
89ea231e43 master: point to https://github.com/freerangerouting/frr/issues 2017-01-27 16:24:03 -05:00
Lou Berger
1049b98d01 master: bump rev to 2.1-dev 2017-01-27 16:21:57 -05:00
Martin Winter
3ab11ecc7b snapcraft: Add snapcraft build and definition files
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2017-01-26 04:23:43 +07:00
David Lamparter
05dbb7df2f build: support bison < 3.0 for parse.error=verbose
*sigh*

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-01-23 23:26:23 +01:00
Donald Sharp
ec5e6fcc59 Merge pull request #88 from pguibert6WIND/mergedown_vpn_old_format
Mergedown vpn old format
2017-01-20 10:52:17 -05:00
David Lamparter
16e32678b1 release: FRR 2.0-rc1 2017-01-19 17:45:51 +01:00
David Lamparter
00c03bc94b build: include copy of pkg.m4, fix invocation
pkg.m4 will be missing on systems that don't have pkg-config installed;
this renders the point of the configure check moot which is to find
pkg-config...

Also, PKG_PROG_PKG_CONFIG should be invoked unconditionally as described
in https://autotools.io/pkgconfig/pkg_check_modules.html

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-01-18 18:01:53 +01:00
Philippe Guibert
28436d6d26 configure: add enable_old_vpn_commands configuration param
This configure applies for BGP and keeps old for vpnv4/vpnv6
configuration and exploitation commands.
If not used, this old style vty commands will not be included.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2017-01-18 12:39:43 +01:00
David Lamparter
7758fe9f60 build: fix several ldpd XML-CLI build issues
- the location of ldp_vty_cmds.c can be either in srcdir or builddir,
  depending on whether a premade file from a dist tarball is used
- perl libxml support is only needed if that file is absent
- the actual perl script wasn't even included in the dist tarball
- the include location doesn't work when srcdir != builddir

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-01-17 19:00:10 +01:00
Donald Sharp
9aa7f43f7e Merge branch 'master' into cleanup 2017-01-13 14:48:16 -05:00
Donald Sharp
6f26de536b frr: Remove HAVE_LIBM from the system
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-01-13 08:05:53 -05:00
Donald Sharp
56c1f7d852 frr: Remove HAVE_IPV6 from code base
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-01-13 08:05:50 -05:00
Renato Westphal
95f5922d27 build: check if the LibXML perl module is available
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-01-09 12:38:26 -02:00
Donald Sharp
b89e46b2e2 Merge remote-tracking branch 'origin/stable/2.0' 2017-01-06 12:48:32 -05:00
Martin Winter
8b0cdbb8aa configure.ac: rename red hat spec from quagga.spec to frr.spec
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2017-01-07 00:12:16 +07:00
Donald Sharp
3b14d86eed Merge remote-tracking branch 'origin/stable/2.0' 2017-01-06 09:58:21 -05:00
Donald Sharp
438f5286d4 doc: Fixup quagga -> frr
Modify the documentation so that it talks about FRR instead of Quagga.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-01-04 07:53:30 -05:00
Donald Sharp
9473e34052 watchfrr: Rename watchquagga -> watchfrr
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-01-03 20:13:02 -05:00
David Lamparter
8e4da10b0a build: more renaming in configure.ac 2016-12-20 17:58:25 +01:00
David Lamparter
b2f361571b build: rename (1 of ?): configure.ac + preproc
This replaces Quagga -> FRR in most configure.ac settings as well as
a handful of preprocessor macros in the source code.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-12-20 17:57:47 +01:00
David Lamparter
a07169b1f6 doc: use config values from configure in manpages
This makes the actual change to the manpages to get ./configure effects
applied into them.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-12-20 17:56:25 +01:00
David Lamparter
461c7bee69 doc: rename manpages to ".in" for autoconf
The manpages contain references to installation paths and thus should be
preprocessed by ./configure to get the actual paths.

This commit is an exact-rename so the changes for the preprocessing are
easier to review (diffs in renames are hard to read...)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-12-20 17:54:22 +01:00
David Lamparter
a6cf5da4fd build: automake 1.12 to deal with flex & bison
bison conditionally writes its output to different files based on the
filenames specified in the source code.  This could be disabled,
however...  flex changes its output filenames when "prefix" is
specified.  And ylwrap from <1.11 doesn't understand how to handle the
header file...

...so this requires automake 1.12 which can deal with this properly.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-12-16 20:42:01 +01:00
David Lamparter
4a06690fca build: check flex >= 2.5.20 is available
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-12-16 20:42:01 +01:00
David Lamparter
0d37f9f325 build: fix bison < 3.0 compatibility
bison-2.7.x really wants "foo" for api.prefix while bison-3.0.x really
wants {foo} ... great.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-12-16 20:42:01 +01:00
Donald Sharp
6ba069f3ba quagga: Convert ldpd to be built by default
(cherry picked from commit a67ce7192143de7de0741af3d0b4f72ee57c7ffd)

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2016-12-14 18:25:00 -02:00
David Lamparter
236dbdac06 Merge branch 'stable/2.0' 2016-11-28 19:26:28 +01:00
David Lamparter
955026c8f0 build: ditch outdated documents, including HACKING
To be re-added with a clean slate.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2016-11-28 19:03:10 +01:00