summaryrefslogtreecommitdiffstats
path: root/Makefile.am (follow)
Commit message (Collapse)AuthorAgeFilesLines
* build: improve clippy optionsDavid Lamparter2019-06-121-0/+6
| | | | | | | | | | * adds a `--with-clippy=...` option to use a prebuilt clippy binary * limits the autoconf tests done for `--enable-clippy-only` (e.g. no libyang) Fixes: #3921 Fixes: #4006 Signed-off-by: David Lamparter <equinox@diac24.net>
* vrrpd: initial commitQuentin Young2019-05-171-1/+2
| | | | Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* build: fix Lua buildQuentin Young2019-05-101-1/+3
| | | | | | | | | | | | | | | | | | Each of Lua's major versions are incompatible with each other. Ubuntu, at least, does not provide a single liblua.so or /usr/include/lua; all SOs and headers are versioned, e.g. liblua5.3.so and /usr/include/lua5.3. There's already an m4 macro in the GNU collection to handle this situation, so let's use that. This allows building with Lua enabled to work on platforms other than Fedora. * Move lib/lua.[ch] -> lib/frrlua.[ch] to prevent path conflicts * Fix configure.ac search for proper CPP and linker flags * Add Lua include path to AM_CPPFLAGS * Update vtysh/extract.pl.in Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* Merge pull request #4082 from opensourcerouting/grpc-nb-pluginQuentin Young2019-05-071-0/+2
|\ | | | | gRPC northbound plugin
| * lib: add new gRPC-based northbound pluginRenato Westphal2019-04-261-0/+2
| | | | | | | | | | | | | | This is an experimental plugin for now. Full documentation will come later. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
* | lib, yang: disable libyang custom user types temporarilyRenato Westphal2019-05-071-2/+0
|/ | | | | | | | | | | | | | | | | | libyang 1.0 introduced a few changes in the user types API, and these changes made FRR incompatible with libyang 1.x. In order to ease our migration from libyang 0.x to libyang 1.x, let's disable our libyang custom user types temporarily so that FRR can work with both libyang 0.x and libyang 1.x. This should be especially helpful to the CI systems during the transition. Once the migration to libyang 1.x is complete, this commit will be reverted. Disabling our libyang custom user types should have only minimal performance implications when processing configuration transactions. The user types infrastructure should be more important in the future to perform canonization of YANG data values when necessary. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
* ports: remove abandoned ports subdirectoryRenato Westphal2019-04-181-1/+0
| | | | | | | | This subdirectory is outdated in all possible ways. Remove it. FRR already has a FreeBSD port and it's maintained separately. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
* Merge pull request #3989 from opensourcerouting/redhat-new-initDonald Sharp2019-03-251-3/+0
|\ | | | | redhat: switch to new init script
| * redhat: switch to new init scriptDavid Lamparter2019-03-211-3/+0
| | | | | | | | | | | | | | | | Drop the special versions of frr.init/frr.service/daemons from redhat/ and use the generic versions instead. Tested-by: Liam McBirnie <liam.mcbirnie@boeing.com> Signed-off-by: David Lamparter <equinox@diac24.net>
* | doc: move rpm build doc to dev docsQuentin Young2019-03-221-1/+0
|/ | | | | | ------------{ <(O.O)> }------------ Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* debian: cleanly split off from dist tarballDavid Lamparter2019-02-191-1/+2
| | | | | | | | | | | | | | | | | The debian/ directory is distributed separately for tarballs in 3.0 (quilt) format. Including it in the dist tarball causes problems with automake when the separately distributed debian directory is unpacked on top of the dist tarball; the clean and correct thing to do here is to not include the debian/ directory in dist tarballs. Users have two choices for building FRR Debian packages: - build straight off git - build from a "frr.tar" + "frr-debian.tar" The tarsource.sh tool does the right thing when invoked with the -D ("Debian") option. Signed-off-by: David Lamparter <equinox@diac24.net>
* debian: make package "official"David Lamparter2019-02-191-1/+1
| | | | | | Move us into place in debian/ Signed-off-by: David Lamparter <equinox@diac24.net>
* build: fix a whole bunch of *FLAGSDavid Lamparter2019-01-301-1/+2
| | | | | | | | | - some target_CFLAGS that needed to include AM_CFLAGS didn't do so - libyang/sysrepo/sqlite3/confd CFLAGS + LIBS weren't used at all - consistently use $(FOO_CFLAGS) instead of @FOO_CFLAGS@ - 2 dependencies were missing for clippy Signed-off-by: David Lamparter <equinox@diac24.net>
* Fix 'make clean' os Mac OSRuben Kerkhof2019-01-221-2/+2
| | | | | | | | | | | | | | | | The find command on Mac OS needs a path as first argument, or else it outputs: find -name __pycache__ -o -name .pytest_cache | xargs rm -rf find: illegal option -- n usage: find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression] find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression] find -name "*.pyc" -o -name "*_clippy.c" | xargs rm -f find: illegal option -- n usage: find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression] find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression] Signed-off-by: Ruben Kerkhof <ruben@rubenkerkhof.com>
* topotests: Adapt docker changes for integrated testsChristian Franke2018-11-291-0/+1
| | | | Signed-off-by: Christian Franke <chris@opensourcerouting.org>
* lib: introduce new northbound APIRenato Westphal2018-10-271-0/+5
| | | | Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
* build: add "redistclean" targetDavid Lamparter2018-10-241-0/+3
| | | | | | | | This puts a source tree back in the state it was in after unpacking a dist tarball. Different from distclean in that it doesn't remove files that are included in the tarball. Signed-off-by: David Lamparter <equinox@diac24.net>
* build: make clean and dist consistentDavid Lamparter2018-10-241-0/+7
| | | | | | | We weren't cleaning up some files (a whole lot of python foobar) and had some files in the dist tarball that don't quite belong there. Signed-off-by: David Lamparter <equinox@diac24.net>
* build: carry --with-pkg-extra-version into tarballsDavid Lamparter2018-10-241-0/+1
| | | | | | | | | | If we use "./configure --with-pkg-extra-version=... && make dist", we probably want the dist tarball to remember the extra version it was configured with. Use --without-pkg-extra-version to kill the tag. Signed-off-by: David Lamparter <equinox@diac24.net>
* build: try to use -D option for ar and ranlibDavid Lamparter2018-10-191-0/+4
| | | | | | | | | | The -D option zeroes out timestamps in .a files and has become the default on recent distributions to enable reproducible builds. This also shuts up the "u ignored because D is default" warning that is showing up on some distributions. Signed-off-by: David Lamparter <equinox@diac24.net>
* lib: add libunwind support for backtracesDavid Lamparter2018-10-181-0/+1
| | | | | | | | | | | | | | libunwind provides an alternate to backtrace() for printing out the call stack of a particular location. It doesn't use the frame pointer, it goes by the DWARF debug info. In most cases the traces have exactly the same information, but there are some situations where libunwind traces are better. (On some platforms, the libc backtrace() also uses the DWARF debug info [e.g.: ARM backtraces are impossible without it] but this is not the case everywhere, especially not on BSD libexecinfo.) Signed-off-by: David Lamparter <equinox@diac24.net>
* build: add --enable-static-bin optionDavid Lamparter2018-10-011-0/+2
| | | | | | | | | This option can be used to get statically linked binaries. Note: libfrr.la is removed from modules' library dependency list. This is intentional and explained in a comment in lib/subdir.am. Signed-off-by: David Lamparter <equinox@diac24.net>
* frr: add README.md to EXTRA_DISTQuentin Young2018-09-101-0/+1
| | | | Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* build: fix & clean up *SAN flagsDavid Lamparter2018-09-081-4/+6
| | | | | | | | ASAN/MSAN/TSAN flags need to be in CFLAGS and LDFLAGS; the latter links the correct compiler-dependent library. Also, the configure switch was broken (--disable-... would enable the sanitizer.) Signed-off-by: David Lamparter <equinox@diac24.net>
* build: use -export-dynamicDavid Lamparter2018-09-081-0/+2
| | | | Signed-off-by: David Lamparter <equinox@diac24.net>
* build: move vtysh & manpage listings to subdir.amDavid Lamparter2018-09-081-0/+1
| | | | | | | Since we're now building through one large Makefile, we can easily put things with their daemons and crossreference nicely. Signed-off-by: David Lamparter <equinox@diac24.net>
* build: remove common.amDavid Lamparter2018-09-081-5/+8
| | | | | | Fold things into where they make sense. Signed-off-by: David Lamparter <equinox@diac24.net>
* build: include helper Makefiles in distDavid Lamparter2018-09-081-0/+25
| | | | | | Need these to have "make" work in subdirectories. Signed-off-by: David Lamparter <equinox@diac24.net>
* build: non-recursive testsDavid Lamparter2018-09-081-7/+1
| | | | | | May SUBDIRS rest in pieces... er, peace. Signed-off-by: David Lamparter <equinox@diac24.net>
* build: non-recursive vtyshDavid Lamparter2018-09-081-5/+3
| | | | Signed-off-by: David Lamparter <equinox@diac24.net>
* build: non-recursive bgpd & rfpDavid Lamparter2018-09-081-5/+5
| | | | | | | | Note: no more --with-rfp-path on configure - badly messing with the build system like this really isn't how to do a conditional external dependency. Signed-off-by: David Lamparter <equinox@diac24.net>
* build: add Makefile variable easy accessDavid Lamparter2018-08-301-0/+14
| | | | | | | This adds 2 helper targets for use in scripts to easily get at Makefile variables without parsing the Makefile or config.status. Signed-off-by: David Lamparter <equinox@diac24.net>
* build: add warning when overwriting vars on "make"David Lamparter2018-08-301-0/+42
| | | | | | | | doing things like `make CC="mmix-linux-musl-gcc"` breaks the hosttools/ cross-compilation setup pretty hard and just straight up should not be done. These vars belong on `configure`, not `make`. Signed-off-by: David Lamparter <equinox@diac24.net>
* build: non-recursive solarisDavid Lamparter2018-08-301-2/+3
| | | | Signed-off-by: David Lamparter <equinox@diac24.net>
* build: non-recursive debianpkgDavid Lamparter2018-08-301-1/+1
| | | | Signed-off-by: David Lamparter <equinox@diac24.net>
* build: non-recursive doc + parallel sphinxDavid Lamparter2018-08-301-2/+13
| | | | | | | | | | | | | | Sphinx actually does work with a parallel build, if the doctree creation is a separate step (which the other builds will then just read unmodified.) This can be done with the "dummy" target. This also adds "-j6" to sphinx-build and adds a "--disable-doc-html" switch on ./configure to turn on/off building HTML docs separately. Also, HTML docs are now installed by "make install" to /usr/share/doc/frr/html. Signed-off-by: David Lamparter <equinox@diac24.net>
* bfdd: wire to the build processRafael Zalamena2018-08-081-0/+1
| | | | | | | | | Add BFD daemon to the build process and packaging instructions. Currently the bfdd daemon does nothing, this is just to document how the daemon insertion step occured. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
* staticd: Start the addition of a staticdDonald Sharp2018-07-291-0/+1
| | | | | | | | | This is the start of separating out the static handling code from zebra -> staticd. This will help simplify the zebra code and isolate static route handling to it's own code base. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
* Merge pull request #2652 from LabNConsulting/working/master/confdate_cleanupDonald Sharp2018-07-231-2/+1
|\ | | | | Simplify deprecation check
| * *: VERSION_TYPE no longer needed -- remove itLou Berger2018-07-101-2/+1
| | | | | | | | Signed-off-by: Lou Berger <lberger@labn.net>
* | unit tests: support code coverage instrumentation and reportsArthur Jones2018-07-041-0/+20
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, make check runs the unit tests and reports pass/fail, but we have no way to guage how much of the code is covered by these tests. gcov provides those statistics on a per source file basis, but requires special CFLAGS and LDFLAGS. Here, we add the --enable-gcov configure option to setup those options correctly. We also add a make target called check-coverage, which runs the unit tests, runs gcov and uploads the data to the codecov.io cloud service for display. Finally, we include a Dockerfile-coverage which creates a container image in alpine linux to run the tests. To create the image: $ docker build \ --build-arg commit=`git rev-parse HEAD` \ --build-arg token=<upload token from codecov.io> \ -t frr-gcov:latest \ -f docker/alpine/Dockerfile-coverage . and to create and upload the report: $ docker run -it --rm frr-gcov:latest Testing done: Created and uploaded a report from my fork using alpine linux 3.7. Non-coverage alpine 3.7 build still works. Issue: https://github.com/FRRouting/frr/issues/2442 Signed-off-by: Arthur Jones <arthur.jones@riverbed.com>
* *: disable all sanitizers for clippy buildQuentin Young2018-06-081-2/+1
| | | | | | | | | | | * Move configure flag propagations out of user flags * Use AC_SUBST to transfer flag values to Automake * Set default AM_CFLAGS and AM_CPPFLAGS in common.am and change child Makefiles to modify these base variables * Add flag override to turn off all sanitizers when building clippy * Remove LSAN suppressions blacklist as it's no longer needed Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* *: remove update-autotoolsQuentin Young2018-05-251-1/+0
| | | | Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* doc: add "Getting Started" sectionQuentin Young2018-05-161-1/+0
| | | | | | | | | | | | While we have docs on various pieces of the build system we don't have any docs on how to actually get FRR running once it's installed, nor do we have comprehensive documentation on the basic procedure for building from source. This patch remedies both of those. Also updated the services list in the docs and removed the SERVICES file from the project root. Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* *: clean up various top level stuffQuentin Young2018-05-081-1/+0
| | | | | | | | | * Updated README to point to new bug report location * Updated README to point to community doc location * Remove COMMUNITY.md * Remove references to no longer extant docs in packaging files Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* pbrd: Add PBR to FRRDonald Sharp2018-04-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an implementation of PBR for FRR. This implemenation uses a combination of rules and tables to determine how packets will flow. PBR introduces a new concept of 'nexthop-groups' to specify a group of nexthops that will be used for ecmp. Nexthop-groups are specified on the cli via: nexthop-group DONNA nexthop 192.168.208.1 nexthop 192.168.209.1 nexthop 192.168.210.1 ! PBR sees the nexthop-group and installs these as a default route with these nexthops starting at table 10000 robot# show pbr nexthop-groups Nexthop-Group: DONNA Table: 10001 Valid: 1 Installed: 1 Valid: 1 nexthop 192.168.209.1 Valid: 1 nexthop 192.168.210.1 Valid: 1 nexthop 192.168.208.1 I have also introduced the ability to specify a table in a 'show ip route table XXX' to see the specified tables. robot# show ip route table 10001 Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP, P - PIM, E - EIGRP, N - NHRP, T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR, > - selected route, * - FIB route F>* 0.0.0.0/0 [0/0] via 192.168.208.1, enp0s8, 00:14:25 * via 192.168.209.1, enp0s9, 00:14:25 * via 192.168.210.1, enp0s10, 00:14:25 PBR tracks PBR-MAPS via the pbr-map command: ! pbr-map EVA seq 10 match src-ip 4.3.4.0/24 set nexthop-group DONNA ! pbr-map EVA seq 20 match dst-ip 4.3.5.0/24 set nexthop-group DONNA ! pbr-maps can have 'match src-ip <prefix>' and 'match dst-ip <prefix>' to affect decisions about incoming packets. Additionally if you only have one nexthop to use for a pbr-map you do not need to setup a nexthop-group and can specify 'set nexthop XXXX'. To apply the pbr-map to an incoming interface you do this: interface enp0s10 pbr-policy EVA ! When a pbr-map is applied to interfaces it can be installed into the kernel as a rule: [sharpd@robot frr1]$ ip rule show 0: from all lookup local 309: from 4.3.4.0/24 iif enp0s10 lookup 10001 319: from all to 4.3.5.0/24 iif enp0s10 lookup 10001 1000: from all lookup [l3mdev-table] 32766: from all lookup main 32767: from all lookup default [sharpd@robot frr1]$ ip route show table 10001 default proto pbr metric 20 nexthop via 192.168.208.1 dev enp0s8 weight 1 nexthop via 192.168.209.1 dev enp0s9 weight 1 nexthop via 192.168.210.1 dev enp0s10 weight 1 The linux kernel now will use the rules and tables to properly apply these policies. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com> Signed-off-by: Don Slice <dslice@cumulusnetworks.com> Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* Makefile.am: change verstion type detection, if just numbers = _RELEASE, ↵Lou Berger2018-04-051-1/+1
| | | | | | _DEV otherwise Signed-off-by: Lou Berger <lberger@labn.net>
* Makefile.am: add automatic defintion of VERSION_TYPE_(DEV_|RELEASE) CPP typeLou Berger2018-04-031-1/+2
| | | | Signed-off-by: Lou Berger <lberger@labn.net>
* Makefile.am: Add 'make indent' targetLou Berger2018-03-061-0/+3
| | | | Signed-off-by: Lou Berger <lberger@labn.net>
* sharpd: Add Super Happy Advanced Routing ProtocolDonald Sharp2017-11-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Add a daemon that will allow us to test the zapi as well as test route install/removal times from the kernel. The current commands are: install route <starting ip address> nexthop <nexthop> (1-1000000) This command starts installing at <starting ip address>/32 (1-100000) routes that it auto-increments by 1 Installation start time is noted in the log and finish time is noted as well. remove routes <starting ip address> (1-1000000) This command removes routes at <starting ip address>/32 and removes (1-100000) routes created by the install route command. This code can be considered experimental and *is not* something that should be run in a production environment. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>