summaryrefslogtreecommitdiff
path: root/Makefile.am
AgeCommit message (Collapse)Author
2022-11-08packaging: Reuse frr.logrotate for Debian and Redhat buildsDonatas Abraitis
It will be easier to maintain a single file instead of two separate. Also, fixes the issue when the file (/var/log/frr/frr.log) is not created after logrotate. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-10-26build, vtysh: extract vtysh commands from .xrefDavid Lamparter
Rather than running selected source files through the preprocessor and a bunch of perl regex'ing to get the list of all DEFUNs, use the data collected in frr.xref. This not only eliminates issues we've been having with preprocessor failures due to nonexistent header files, but is also much faster. Where extract.pl would take 5s, this now finishes in 0.2s. And since this is a non-parallelizable build step towards the end of the build (dependent on a lot of other things being done already), the speedup is actually noticeable. Also files containing CLI no longer need to be listed in `vtysh_scan` since the .xref data covers everything. `#ifndef VTYSH_EXTRACT_PL` checks are equally obsolete. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2021-07-21build: fix `AM_LDFLAGS` usage (and gcov)David Lamparter
like the other automake variables, setting `xyz_LDFLAGS` causes `AM_LDFLAGS` to be ignored for `xyz`. For some reason I had in my mind that automake doesn't do this for LDFLAGS, but... it does. (Which is consistent with `_CFLAGS` and co.) So, all the libraries and modules have been ignoring `AM_LDFLAGS` (which includes `SAN_FLAGS` too). Set up new `LIB_LDFLAGS` and `MODULE_LDFLAGS` to handle all of this correctly (and move these bits to a central location.) Fixes: #9034 Fixes: 0c4285d77eb ("build: properly split CFLAGS from AC_CFLAGS") Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2021-07-03debian: Adjust tarsource.sh to use native debian/changelogOndřej Surý
Signed-off-by: Ondřej Surý <ondrej@sury.org>
2021-06-24build: remove --enable-exampledirDavid Lamparter
This is no longer used with the recent config example removal. Signed-off-by: David Lamparter <equinox@diac24.net>
2021-05-17lib: libyang2 add missed conversionChristian Hopps
Signed-off-by: Christian Hopps <chopps@labn.net>
2021-05-02lib: rework how we "override" assert()David Lamparter
The previous method, using zassert.h and hoping nothing includes assert.h (which, on glibc at least, just does "#undef assert" and puts its own definition in...) was fragile - and actually broke undetected. Just provide our own assert.h and control overriding by putting it in a separate directory to add to the include path (or not.) Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2021-04-21build: turn on automake warnings (& symlinks)David Lamparter
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2021-04-21build: properly split CFLAGS from AC_CFLAGSDavid Lamparter
`CFLAGS` is a "user variable", not intended to be controlled by configure itself. Let's put all the "important" stuff in AC_CFLAGS and only leave debug/optimization controls in CFLAGS. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2021-04-21build: make builddir include path consistentDavid Lamparter
... by referencing all autogenerated headers relative to the root directory. (90% of the changes here is `version.h`.) Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2021-03-16Merge pull request #7963 from volta-networks/feat_pceplib_into_frr_githubDonald Sharp
pceplib: Integrate pcelib into frr
2021-03-05pceplib: Integrate pcelib into frrJavier Garcia
Signed-off-by: Brady Johnson <brady@voltanet.io> Co-authored-by: Javier Garcia <javier.garcia@voltanet.io> Signed-off-by: Javier Garcia <javier.garcia@voltanet.io>
2021-02-23python/xrelfo: the ELF xref extractorDavid Lamparter
This creates JSON dumps of all the xref structs littered around FRR. Signed-off-by: David Lamparter <equinox@diac24.net>
2020-12-18pathd: New SR-TE policy management daemonSebastien Merle
This new daemon manages Segment-Routing Traffic-Engineering (SR-TE) Policies and installs them into zebra. It provides the usual yang support and vtysh commands to define or change SR-TE Policies. In a nutshell SR-TE Policies provide the possibility to steer traffic through a (possibly dynamic) list of Segment Routing segments to the endpoint of the policy. This list of segments is part of a Candidate Path which again belongs to the SR-TE Policy. SR-TE Policies are uniquely identified by their color and endpoint. The color can be used to e.g. match BGP communities on incoming traffic. There can be multiple Candidate Paths for a single policy, the active Candidate Path is chosen according to certain conditions of which the most important is its preference. Candidate Paths can be explicit (fixed list of segments) or dynamic (list of segment comes from e.g. PCEP, see below). Configuration example: segment-routing traffic-eng segment-list SL index 10 mpls label 1111 index 20 mpls label 2222 ! policy color 4 endpoint 10.10.10.4 name POL4 binding-sid 104 candidate-path preference 100 name exp explicit segment-list SL candidate-path preference 200 name dyn dynamic ! ! ! There is an important connection between dynamic Candidate Paths and the overall topic of Path Computation. Later on for pathd a dynamic module will be introduced that is capable of communicating via the PCEP protocol with a PCE (Path Computation Element) which again is capable of calculating paths according to its local TED (Traffic Engineering Database). This dynamic module will be able to inject the mentioned dynamic Candidate Paths into pathd based on calculated paths from a PCE. https://tools.ietf.org/html/draft-ietf-spring-segment-routing-policy-06 Co-authored-by: Sebastien Merle <sebastien@netdef.org> Co-authored-by: Renato Westphal <renato@opensourcerouting.org> Co-authored-by: GalaxyGorilla <sascha@netdef.org> Co-authored-by: Emanuele Di Pascale <emanuele@voltanet.io> Signed-off-by: Sebastien Merle <sebastien@netdef.org>
2020-11-19Revert "debian: Adjust tarsource.sh to use native debian/changelog"Quentin Young
This reverts commit 4ffb9a4c9ddd0ef3f770c0bc2674c4818331780d.
2020-11-19debian: Adjust tarsource.sh to use native debian/changelogOndřej Surý
Signed-off-by: Ondřej Surý <ondrej@sury.org>
2020-10-02vtysh: dynamically generate the list of daemons for commandsIgor Ryzhov
Some daemons were actually missing from the static definitions: nhrpd, babeld, eigrpd and bfdd. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2020-09-21*: Remove solaris from FRRDonald Sharp
The Solaris code has gone through a deprecation cycle. No-one has said anything to us and worse of all we don't have any test systems running Solaris to know if we are making changes that are breaking on Solaris. Remove it from the system so we can clean up a bit. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2020-05-05python: add graphviz callgraphsDavid Lamparter
Uses the JSON data extracted from LLVM bitcode by tools/frr-llvm-cg. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2020-05-05build: add LLVM bitcode targetsDavid Lamparter
Just an easy way to produce LLVM .bc (bitcode) files. Not used during normal builds. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2020-05-05tools: frr-llvm-cgDavid Lamparter
This dumps call graph data from LLVM bitcode files into a JSON file. Specifically for FRR, it understands thread_add_*(), hook_*() and install_element() so it can provide extra information in these cases. As a general feature, it tries to track down function pointers as far as easily feasible. Signed-off-by: David Lamparter <equinox@diac24.net>
2020-04-27build: make clippy Makefile rules nicerDavid Lamparter
These are easy to get subtly wrong, and doing so can cause nondeterministic failures when racing in parallel builds. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2020-04-27python: move MakeVars class into separate moduleDavid Lamparter
... so I can reuse it. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2019-12-06lib: new defaults logicDavid Lamparter
Since we've been writing out "frr version" and "frr defaults" for about a year and a half now, we can now actually use them to manage defaults. Signed-off-by: David Lamparter <equinox@diac24.net>
2019-11-13Zebra: ADD Protobuf Encoding & Decoding for MLAG MessagesSatheesh Kumar K
1. add the Mlag ProtoBuf Lib to Zebra Compilation 2. Encode the messages with protobuf before writing to MLAG 3. Decode the MLAG Messages using protobuf and write to clients based on their subscrption. Signed-off-by: Satheesh Kumar K <sathk@cumulusnetworks.com>
2019-11-13lib,mlag : Defining MLAG Proto fileSatheesh Kumar K
Defining the message structures between Zebra & MLAG Signed-off-by: Satheesh Kumar K <sathk@cumulusnetworks.com>
2019-10-14Revert "Merge pull request #4885 from satheeshkarra/pim_mlag"Quentin Young
This reverts commit d563896dada99f3474d428f928786cbfde936fee, reversing changes made to 09ea1a40386f02a13cdb0462cc55af0d03f0c277.
2019-09-24Zebra: ADD Protobuf Encoding & Decoding for MLAG MessagesSatheesh Kumar K
1. add the Mlag ProtoBuf Lib to Zebra Compilation 2. Encode the messages with protobuf before writing to MLAG 3. Decode the MLAG Messages using protobuf and write to clients based on their subscrption. Signed-off-by: Satheesh Kumar K <sathk@cumulusnetworks.com>
2019-09-24lib,mlag : Defining MLAG Proto fileSatheesh Kumar K
Defining the message structures between Zebra & MLAG Signed-off-by: Satheesh Kumar K <sathk@cumulusnetworks.com>
2019-06-12build: improve clippy optionsDavid Lamparter
* 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>
2019-05-17vrrpd: initial commitQuentin Young
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-05-10build: fix Lua buildQuentin Young
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>
2019-05-07Merge pull request #4082 from opensourcerouting/grpc-nb-pluginQuentin Young
gRPC northbound plugin
2019-05-06lib, yang: disable libyang custom user types temporarilyRenato Westphal
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>
2019-04-26lib: add new gRPC-based northbound pluginRenato Westphal
This is an experimental plugin for now. Full documentation will come later. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2019-04-18ports: remove abandoned ports subdirectoryRenato Westphal
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>
2019-03-25Merge pull request #3989 from opensourcerouting/redhat-new-initDonald Sharp
redhat: switch to new init script
2019-03-22doc: move rpm build doc to dev docsQuentin Young
------------{ <(O.O)> }------------ Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-03-21redhat: switch to new init scriptDavid Lamparter
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>
2019-02-19debian: cleanly split off from dist tarballDavid Lamparter
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>
2019-02-19debian: make package "official"David Lamparter
Move us into place in debian/ Signed-off-by: David Lamparter <equinox@diac24.net>
2019-01-30build: fix a whole bunch of *FLAGSDavid Lamparter
- 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>
2019-01-22Fix 'make clean' os Mac OSRuben Kerkhof
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>
2018-11-29topotests: Adapt docker changes for integrated testsChristian Franke
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-10-27lib: introduce new northbound APIRenato Westphal
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2018-10-24build: add "redistclean" targetDavid Lamparter
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>
2018-10-24build: make clean and dist consistentDavid Lamparter
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>
2018-10-24build: carry --with-pkg-extra-version into tarballsDavid Lamparter
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>
2018-10-19build: try to use -D option for ar and ranlibDavid Lamparter
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>
2018-10-18lib: add libunwind support for backtracesDavid Lamparter
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>