Give the FRR users some examples of gRPC usage in scripts to let them
start experimenting with the new configuration interface provided by
YANG/northbound.
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
It's time to say good bye to libyang 0.16.105. The recently
released libyang 1.0.184 includes numerous bug fixes and performance
improvements that we need.
Despite the major version bump from 0.x to 1.x, the libyang API is
the same except for a single backward-incompatible change in the
user types interface (which we're currently not using). Hence no
code changes were necessary to adapt FRR to libyang 1.x.
This commit also reintroduces some leafrefs that needed to be
removed from our YANG modules due to a bug that was present on
libyang 0.16.105.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Add note blocks to the topotest and topotest-json dev docs to
emphasize the need for generous BGP retry/convergence timers.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
Based on work originally by Mark Stapp <mjs@voltanet.io>.
Make it possible to iterate the typesafe lists in a const
context, as well as find items from them.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
[above signoff was for the original version before modification]
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Last patch sent in on the mailing list was in July 2018. If someone
sends a patch we can still pick it up, but practiced reality is quite
clearly PRs on github.
Signed-off-by: David Lamparter <equinox@diac24.net>
Distinguish zapi sessions, for daemons who use more than one,
by adding a session id. The tuple of proto + instance is not
adequate to support clients who use multiple zapi sessions.
Include the id in the client show output if it's present. Add
a bit of info about this to the developer doc.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
Fix the table that shows the mapping between ip network cli
tokens and the data struct that the cli handler will see.
Optional network/subnet types appear as a pointer to an
all-zeroes struct, not a NULL pointer.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
Add a couple breadcrumbs to get people up and running
with lua when they are trying to develop for it.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Handling capability received from client. It may contain
GR enable/disable, Stale time changes, RIB update complete
for given AFi, ASAFI and instance. It also has changes for
stale route handling.
Signed-off-by: Santosh P K <sapk@vmware.com>
Update the workflow.rst file to outline new requirement for
features to include automated testing of some sort.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Add some doc to let developers know about the `-s` flag
with `git commit`.
We were seeing some people writing the sign-off manually.
Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
As per weekly meeting this is an attempt to document about
how we as a community will work together on development
branches.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Use the `--enable-address-sanitizer` option instead of the manual
version using environment flags.
This also avoids the problem of having to remember to skip clippy with
the custom flags:
```
make -C lib CFLAGS="-g -O2" LDFLAGS="-g" clippy
```
The snippet above is not needed with `--enable-address-sanitizer`!
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
The asm-code was interpreted inconsistently for different platforms.
In particular for AArch64 this caused UB, if multiple static MTYPEs
where defined in one file. All static MTYPE_* could point to the same
memory location (namely the first defined MTYPE) OR to their respective
(correct) locations depending on the context of their usage.
Signed-off-by: Juergen Werner <juergen@opensourcerouting.org>
All FRR Linux packages are built using libcap-dev (or libcap-devel)
installed in the system. Update the build instructions to suggest
FRR developers to do the same. The main motivation for this is that
the seteuid() system call is too expensive and overall less secure
compared to using the Linux capabilities framework.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
pytest intends to deprecate users not having python 2 on the system.
in order to make topotest work, just use an older pytest version.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
After ~4 months of deprecation period [1], drop support for older
libyang versions that don't support embedded extensions.
In addition to support for embedded extensions, libyang 0.16-r3
contains several bug fixes and performance improvements compared
to libyang-0.16-r1. It was about time to update.
Fixes:
* Issue #3273
* Issue #3971
[1] See commit 68626e08.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
The "static struct mtype * const MTYPE_FOO" doesn't quite make a
"constant" that is usable for initializers. An 1-element array works
better.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Add a note in the fedora build guide on how to disable
firewalld and clear iptables that come by default.
Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
People have been complaining our major version number increases to
fast and/or in a meaningless way...
Signed-off-by: David Lamparter <equinox@diac24.net>
The lists documentation had not been updated to represent
the for_eachXXX to frr_eachXXX changes. Make it so.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This is an 8-ary heap (cacheline optimized.) It works as a semi-sorted
kind of middle ground between unsorted and sorted datastructures; pop()
always returns the lowest item but ordering is only loosely enforced.
Signed-off-by: David Lamparter <equinox@diac24.net>
Turns out we need one of these. Same API as DECLARE_LIST, but deleting
random items is much faster.
Signed-off-by: David Lamparter <equinox@diac24.net>
The mpls-route module may be missing from Ubuntu 18.4. Provide info on
what pkg to install plus what directory py.test needs to be run from.
Signed-off-by: nikos <ntriantafillis@gmail.com>
Noticed during attempts at usage that the documentation
needed a couple small updates:
1) Tell the user which header to include
2) Some functions want the address of the data structure
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Noticed during attempts at usage that the documentation
needed a couple small updates:
1) Tell the user which header to include
2) Some functions want the address of the data structure
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Ralph has kindly granted us GPLv2+ license to use this documentation,
and requests that we keep a reference to his name. Add these facts to
the documentation.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* Reflow to 80 columns
* Improve markup
* Add --apiserver option to example ospfd invocations
* Add note on requirement of this option to use api server
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
libyang defaults CMAKE_BUILD_TYPE to "Debug", which disables compiler
optimizations. We should instruct our users to build libyang in the
"Release" mode so that compiler optimizations are enabled and they
can benefit from the associated performance improvements.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Remove the following:
* gawk
* dejagnu
Add the following for FreeBSD 9 and OpenBSD 6:
* libexecinfo
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* Update build package list
* Update ./configure options
* Fix some RST syntax errors
* Use monolithic config examples
* Use compile include snippet
* Reorganize a bit
Tested on Ubuntu 18.04
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* Use compile include snippet
* Move daemons enable section to end
* Fix a couple syntax errors
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
We're going to use this same snippet across every build doc so let's
just pull it into its own include file now.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Tested these on Fedora 24 and 28, so they should be true for all
versions in-between as well as Fedora 29 and all upcoming versions.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* Upstream libyang now works with FRR; use it
* Install libyang to system library directories to satisfy pkg-config
* Remove warnings about ABI version
* Remove outdated binary package links
* Cleanup formatting
Validated that these instructions work on:
- Fedora 24
- Fedora 28.
- Ubuntu 18.04
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
it is possible to do some ponctual backporting of bug fixes, on older
than the 2 last maintenance releases.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Add build-essential and, for platforms with systemd, libsystemd-dev to
the package list for builds
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Starting with libyang 0.16.74, we can load internally embedded yang
extensions instead of going through the file system/dlopen. Detect
support for this at build time and use if available.
NB: the fallback mechanism will go away in a short while.
Signed-off-by: David Lamparter <equinox@diac24.net>
The modules.rst documents how to create a module, let's update
it a bit to reflect what an end user needs to do a bit more.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Unfortunately the first version of the FreeBSD libyang port contained
a bug in which the libyang pkginfo file wasn't being installed
correctly in the system, and this prevented the FRR build system from
detecting the library. This bug was already fixed months ago but some
FreeBSD package repositories still have the old bugged version of the
port. This means we can't suggest people to install libyang using
"pkg install" since this causes problems for most people. In this
case, suggest FreeBSD users to build and install libyang manually
as we suggest for other BSD platforms.
This commit should be reverted once all FreeBSD package repositories
are updated with the new version of the libyang port.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
explain why GPLv3 must be permitted, and explicitly mention that code
not compatible with GPLv3 is prohibited.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>