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>
FRR supports the ability to turn off the negotation of bgp capabilities.
Provide a few bread crumbs to the operator that it might not be as
useful as they would hope.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
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>
Current autocompletion works only for simple "vrf NAME" case.
This commit expands it also for the following cases:
- "nexthop-vrf NAME" in staticd
- usage of $varname in many daemons
All daemons are updated to use single varname "$vrf_name".
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Update the user docs to have information about the `show bgp update-group..
group of commands.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Modification of the documentation for the `ip pim sm` command in order to avoid the understanding of an incompatibility with IGMP on the interface.
Signed-off-by: Alexis Royer <alexis.royer@gmail.com>
Allow bgp to store and pass through a different distance than
normal for installing into the rib.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
The FRR documentation had no discussion about how Administrative
Distance is used. Update the documentation to reflect the reality
on the ground.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
In a data center, having 32-128 peers is not uncommon. In such a situation, to find a
peer that has failed and why is several commands. This hinders both the automatability of
failure detection and the ease/speed with which the reason can be found. To simplify this
process of catching a failure and its cause quicker, this patch does the following:
1. Created a new function, bgp_show_failed_summary to display the
failed summary output for JSON and vty
2. Created a new function to display the reset code/subcode. This is now used in the
failed summary code and in the show neighbors code
3. Added a new variable failedPeers in all the JSON outputs, including the vanilla
"show bgp summary" family. This lists the failed session count.
4. Display peer, dropped count, estd count, uptime and the reason for failure as the
output of "show bgp summary failed" family of commands
5. Added three resset codes for the case where we're waiting for NHT, waiting for peer
IPv6 addr, waiting for VRF to init.
This also counts the case where only one peer has advertised an AFI/SAFI.
The new command has the optional keyword "failed" added to the classical summary command.
The changes affect only one existing output, that of "show [ip] bgp neighbors <nbr>". As
we track the lack of NHT resolution for a peer or the lack of knowing a peer IPv6 addr,
the output of that command will show a "waiting for NHT" etc. as the last reset reason.
This patch includes update to the documentation too.
Signed-off-by: Dinesh G Dutt <5016467+ddutt@users.noreply.github.com>
This implements BMP. There's no fine-grained history here, the non-BMP
preparations are already split out from here so all that remains is BMP
proper.
Signed-off-by: David Lamparter <equinox@diac24.net>
Problem reported that "clear bgp *" only cleared ipv6 peers.
Changed the logic to clear all afi/safis of all peers in
that case. Also improved the operation of clearing
individual afi/safi using soft/in/out to do the right thing.
Ticket: CM-25887
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Add notes to several docs about the limits to FRR's current
MPLS-TE support, which is limited to some routing protocol
LSA/TLV support. It wasn't very clear that FRR does not offer
a complete TE/RSVP-TE solution at this time.
Also removed some stale info about configure script options.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
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>
Add a warning to the user documentation about v6 ecmp route
deletion and what version of the linux kernel that you should
be using.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
The documentation says "match aspath" to match an AS path in a
route-map while the directive is "match as-path".
Signed-off-by: Vincent Bernat <vincent@bernat.ch>
The v2 and v3 ospf documentation was suggesting
that the user should use a deprecated command.
Fixes: #4734
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
the documentation of zebra is appended with that command.
PR=61261
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Acked-by: Thibaut Collet <thibaut.collet@6wind.com>
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>
Add a not under the log-filter command to indicate
that, while filtering reduces load on the system by
large margins, there may still be a small performance
hit from filtering those.
Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
Fix details :
Added a utility cli to generate a igmp query on an interface.
This won't impact the existing query generation based on the
general query interval.
Signed-off-by: Rajesh Girada <rgirada@vmware.com>
This will allow the end-user to clear the counters associated
with the route-map. Subsuquent `show route-map ..` commands
will display counters since the last clear.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
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>
Add some user documentation for applying/deleting/showing
log filters with the new commands.
Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
FRR has a provision to give exact-match in match clause for
standard community, but this option is missing for lcommunity.
Part 3 : show related changes for match clause
Signed-off-by: vishaldhingra <vdhingra@vmware.com>
FRR has a provision to give exact-match in match clause for
standard community, but this option is missing for lcommunity.
Part 2 : CLI related changes for match clause
Signed-off-by: vishaldhingra <vdhingra@vmware.com>
The `bgp multiple-instance` command has been removed but
we did not properly update the documentation. Let's do so.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
FRR has no option for the as-set for aggregate route
under IPV6 address family. Added the command to
configure the as-set option for IPV6.
Signed-off-by: vishaldhingra <vdhingra@vmware.com>
The -N <namespace> option is now used to control the location
of various control files and sockets. Update the documentation
to reflect this.
Signed-off-by: Donald Sharp <sharpd@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>
Simple documentation update for the new `clear ip mroute [vrf NAME] count`
command to the FRRouting documentation.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Introduce new cli commands ip igmp last-member-query-count <1-7>
ip igmp last-member-query-interval <1-255> deciseconds.
Display the config in show running config and show ip igmp interface
Signed-off-by: Sarita Patra <saritap@vmware.com>
Introduced a new command "show ip mroute summary"
to display total number of (*, G) and (S, G) mroutes
created and number of mroutes installed in the kernel.
Signed-off-by: Sarita Patra <saritap@vmware.com>
The `bgp bestpath prefix-validate disallow-invalid` command referenced in
the rpki documentation does not actually exist, remove the erroneous docs
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
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>
Place in the code the ability for end operators to know how
to modify MAX_FDS so that they can run large scale operations.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This code doees this:
a) Imagine ospf installs a route into zebra. Zebra crashes and
we restart FRR. If we are using the -k option on zebra than
all routes are re-read in, including this OSPF route.
b) Now imagine at the same time that zebra is starting backup
ospf on a different router looses a link to the this route.
c) Since zebra was run with -k this OSPF route is read back
in but never replaced and we now have a route pointing out
an interface to other routers that cannot handle it.
We should never allow users to implement bad options from zebra's
perspective that allow them to put themselves into a clear problem
state and additionally we have *absolutely* no mechanism to ever
fix that broken route without special human interaction.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
<Initial Code from Praveen Chaudhary>
Add the a `--graceful_restart X` flag to zebra start that
now creates a timer that pops in X seconds and will go
through and remove all routes that are older than startup.
If graceful_restart is not specified then we will just pop
a timer that cleans everything up immediately.
Signed-off-by: Praveen Chaudhary <pchaudhary@linkedin.com>
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 current wording can sometimes be misinterpreted to mean that this
command is optional, but for an MPLS-VPN to function a VPN label MUST be
assigned to routes exported from the VPN.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
this command is used when user wants to use the cbit value.
more information in the documentation.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
in ospf6d, the 'router-id' command must be prefixed with 'ospf6'.
Update the docs to reflect this.
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
now that bfd show commands have changed, update documentation so as to
reflect how to use vrf keyword in the show bfd commands.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Noticed that a couple of the `show zebra ...` commands are missing
from the zebra documentation that I use a bunch. Let's add them
in.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This command is broken and has been broken since the introduction
of vrf's. Since no-one has complained it is safe to assume that
there is no call for this specialized linux command. Remove
from the system with extreme prejudice.
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>
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>
The PIM-EVPN doc was not rendering very well on the
website. So Update documentation to allow it to render
better.
Signed-off-by: Donald Sharp <sharpd@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>
watchfrr_enable is ignored, watchfrr_options is unneeded and the
valgrind options have been replaced with daemon_wrap/all_wrap.
Signed-off-by: David Lamparter <equinox@diac24.net>
Add build-essential and, for platforms with systemd, libsystemd-dev to
the package list for builds
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
When you are using the install/remove routes command, the
output goes to a log file. This command allows for ease
of dump of timing information from the vty or vtysh.
Signed-off-by: Donald Sharp <sharpd@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>
This doc is .. include::'d in snmp.rst and needs to be ignored as part
of the main toctree build. This patch squashes a Sphinx build warning.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
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>
* Add full version history with header diagrams
* Update field descriptions
* Update overview section
* Update list of protocol commands
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Router Information needs to specify the area ID when flooding scope is set to
AREA. However, this authorize only one AREA. Thus, Area Border Router (ABR) are
unable to flood Router Information Opaque LSA in all areas they are belongs to.
The path implies that the area ID is no more necessary for the command
'router-info area'. It remains suported for compatibility, but mark as
deprecated. Documentation has been updated accordingly.
Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
The --with-yangmodelsdir and --with-libyang-pluginsdir build-time options
pertain to FRR so they shouldn't be placed along with the libyang build
instructions. Move these instructions to where they belong to avoid
confusion.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
These instructions are intended to be temporary until we have libyang
packages available for all supported platforms.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
This plugin leverages the northbound API to integrate FRR with Sysrepo,
a YANG-based configuration and operational state data store.
The plugin is linked to the libsysrepo library and communicates with
the sysrepod daemon using GPB (Google Protocol Buffers) over AF_UNIX
sockets. The integration consists mostly of glue code that calls the
appropriate FRR northbound callbacks in response to events triggered
by the sysrepod daemon (e.g. request to change the configuration or to
fetch operational data).
To build the sysrepo plugin, provide the --enable-sysrepo option to the
configure script while building FRR (the libsysrepo library needs to be
installed in the system).
When installed, the sysrepo plugin will be available for all FRR daemons
and can be loaded using the -M (or --module) command line option.
Example: bgpd -M sysrepo.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
This plugin leverages the northbound API to integrate FRR with the ConfD
management agent.
The plugin is linked to the libconfd library and communicates with the
confd daemon using local TCP sockets. The integration consists mostly
of glue code that calls the appropriate FRR northbound callbacks in
response to events triggered by the confd daemon (e.g. request to change
the configuration or to fetch operational data).
By integrating FRR with the libconfd library, FRR can be managed using
all northbound interfaces provided by ConfD, including NETCONF, RESTCONF
and their Web API.
The ConfD CDB API is used to handle configuration changes and the ConfD
Data Provider API is used to provide operational data, process RPCs and
send notifications. Support for configuration management using the ConfD
Data Provider API is not available at this point.
The ConfD optional 'get_object()' and 'get_next_object()' callbacks were
implemented for optimal performance when fetching operational data.
This plugins requires ConfD 6.5 or later since it uses the new leaf-list
API introduced in ConfD 6.5.
To install the plugin, the --enable-confd option should be given to the
configure script, specifying the location where ConfD is installed.
Example: ./configure --enable-confd=/root/confd-6.6
When installed, the confd plugin will be available for all FRR daemons
and can be loaded using the -M (or --module) command line option.
Example: zebra -M confd.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
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>
For some reason, automake was "randomizing" the order of these few lines
in the generated output Makefile.in.
I have absolutely no clue what's going on, but it's the only thing
preventing me from building reproducible source tarballs (i.e.
bit-exactly identical), so... just slightly "rephrase" this.
Should behave exactly the same as before.
Signed-off-by: David Lamparter <equinox@diac24.net>
Some draft ietf are not handle by :rfc: keyword. A workaround is
proposed, like it has been done for flowspec.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Do a straight conversion of `struct bgp_info` to `struct bgp_path_info`.
This commit will setup the rename of variables as well.
This is being done because `struct bgp_info` is not descriptive
of what this data actually is. It is path information for routes
that we keep to build the actual routes nexthops plus some extra
information.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This corrects the route map documentation to add the missing "prefix-list"
keyword, which is necessary when matching against a prefix list (as opposed to
an access list).
Additionally, change hyphens for underscores in the variables the user is
supposed to substitute in those commands, to prevent any confusion with the
"prefix-list" keyword itself, and also to make it more consistent with the
other documented commands (which are already using underscores).
Signed-off-by: Tore Anderson <tore@redpill-linpro.com>
Documentation on how to use multiple autonomous systems was inaccurate
and a bit scattered. Clarify usage of VRFs with multiple autonomous
systems, how to configure them, and their distinction from views. Also
moves a block on L3VPN VRFs out of the 'Basic Concepts' section.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
The script simplifies the relatively lengthy procedure.
It should be invoked from the top level source directory, for example:
./tools/build-debian-package.sh
Signed-off-by: Daniil Baturin <daniil@baturin.org>
Sphinx always runs, even in the `make install` stage. When `make install`
is run as root and then another `make` is run by a nonprivileged user,
some versions of `mv` prompt like this:
mv: replace 'doc/manpages/_build/man/man.stamp',
overriding mode 0644 (rw-r--r--)?
Add -f to `mv` to avoid this. As `-f` is part of Posix, this should be
portable enough.
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
Corrections so that the BGP daemon can work with the label manager properly
through a label-manager proxy. Details:
- Correction so the BGP daemon behind a proxy label manager gets the range
correctly (-I added to the BGP daemon, to set the daemon instance id)
- For the BGP case, added an asynchronous label manager connect command so
the labels get recycled in case of a BGP daemon reconnection. With this,
BGPd and LDPd would behave similarly.
Signed-off-by: F. Aragon <paco@voltanet.io>
In some places we were using `frrvt` instead of `frrvty`. Make it consistent
with every other place and use frrvty.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
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>
Implement RFC 6232, optionally allowing to flood isisd's NET and
hostname in purges it originates.
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
fabricd is built using the sources of isisd. To allow differentiation
in the code, -DFABRICD=1 is added to its preprocessor flags.
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
The sphinx 'text' writer apparently doesn't support these, and the
'dummy' writer is only available on recent versions, and all of this
makes the build a bit annoying...
Signed-off-by: David Lamparter <equinox@diac24.net>
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>
It is possible to dynamically change default VRF name, if vrf backend is
a netns backend. By creating a link to the default netns in
/var/run/netns folder, then the file name will be used to name the
default VRF. If no backend netns is chosen, it is explained that it is
still possible to statically configure the default vrf name to new
define.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Coded as part of #2684 and most code written while participating at
BornHack@2018.
bgp.rst: Explain what the communities does and a summarized edition of
the communities purpose.
Signed-off-by: Christoffer <netravnen@gmail.com>
The ZEBRA_IPV4_ROUTE_[ADD|DELETE] and ZEBRA_IPV6_ROUTE_[ADD|DELETE] functionality
has been deprecated for a year now, let's remove this code from the system.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
The smux.c code has not been able to compile for 2+ years
and no-one has noticed. Additionally net-snmp has marked
smux integration as deprecated for quite some time as well.
Since no-one has noticed and it's been broken and smux integration
is deprecated let's just remove this from the code base.
From looking at the code, it sure looks like SNMP could use
a decent cleanup.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This roughly outlines when to use which logging function. It's
certainly something to have to point people to, so they get things nice
and right - and so we get at least somewhat consistent behaviour for the
user.
Signed-off-by: David Lamparter <equinox@diac24.net>
Since we removed --enable-tcp-zebra cleanup the last
remaining vestiges of that code from the system.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Improvements:
* Show command line as code, to avoid confusion about single dash (`-`)
and double dash;
* Tell the user where the BGP BFD commands can be found;
* Document OSPF/OSPF6/PIM BFD commands;
* Document JSON commands;
* Tell about session counters;
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
Options must be documented before they can be cross-referenced, and the
scope for configure options is not present in rpki.rst. Remove the
option role tag from the `-M` option to remove the build warning.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Remove the ip route specific sections from zebra documenation and
create a specific one for the new staticd.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
The parameter was missing in that vty command. Then it is being added.
Also some documentation is refreshed.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
It has not been properly documented yet how to enable the RPKI module with BGP when having installed FRR with RPKI support. This PR seeks to add a section to the user documentation about this. So users will not have to resolve to searching the internet and looking through the FROG mailing list threads for answers.
* Sphinx numbered lists use 1. not 1)
* Indents are three spaces
* Blocks under lists should be indented along with the rest of the list
content
* Sphinx converts :: to : when used as a code block marker
* Apply some preformatted markup to things that should be preformatted
* Remove trailing whitespace
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit gathers some basic information on how to configure and setup
Ldp, as well as depict some main principles for that protocol.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Add some information to inform the user that one can either display ipv4
or ipv6 routing table, with the above commands.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
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>
* Fix broken citations
* Remove trailing whitespace
* Rewrap to 80 lines
* Tweak capitalization of section headers
* Clean up a few indented blocks
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* Rewrap lines to 80 characters
* Update some portions to reflect current practices
* Clean up some formatting (indent, markup, etc)
* Reorganize sections on patch submission
* Remove link to nonexistent github wiki page
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Older versions of Sphinx don't support toctree captions, so we can't use
them yet unfortunately.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* Update the list of protocol daemons from 5 to the current 13
* Rewrap and clean up formatting for lots of miscellaneous code blocks
* Improve English in various spots
* Update architecture description and diagram
* Remove duplicate information on reporting bugs
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This doc needed (and still needs) a lot of love.
* Reorganize doc into logical sections
* Clean up lots of grammatical mistakes and misspellings
* Clean up lots of bad formatting
* Remove non-existent configuration options and commands
* Mark deprecated configuration options as deprecated
* Fix all cross-references to follow a standard format
* Fix capitalization on section and subsection titles
* Fix section and subsection level underlines
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
PIM documantation was missing commands relevant to PIM protocol
that were documented in COMMANDS file of pimd directory.
Signed-off-by: Mladen Sablic <mladen.sablic@gmail.com>
Note that these commands:
bgp config-type cisco
no bgp multiple-instance
are now deprecated and will be removed in a future version of FRR.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Keeping the config intact might be misunderstood. I say that even if VRF
netns is automatically discovered, it is possible for administrator to
save the netns information in the config file, to bring more clarity (
hence the config commands available).
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
To avoid some confusions, it is precised in the documentation that
the configuration not done from zebra will not be injected in the
configuration context. As consequence, the config file will not be
impacted by underlying network context. But also, this will not be
possible for *Zebra* to attempt to modify outside networking objects.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
This commit brings some information about BGP VRF case with peering
using multiple VRF instances.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Apparently Automake has some undocumented logic somewhere that makes it
so any Makefile generated from an Automake Makefile.am is removed from
its secret list of things to delete that it deletes when performing a
recursive distclean before actually performing the recursive distclean
and since the secret list is automatically generated from the list of
things that Autoconf should generate in configure.ac we can't remove the
Makefile from that list or it will break Automake's list of things to
automatically generate that it generates from Autoconf's list of things
to automatically generate.
Thus, to prevent Automake from deleting Makefiles and then immediately
trying to use the Makefiles it just deleted to delete said Makefiles, we
must remove ourselves from the secret list, which is accomplished by
changing the file extension to '.am' instead of '.in'.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Add the documentation for match source-instance.
I also noticed that 'match source-protocol' was missing
add that in too.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Kernel 2.2 was released in 1999, I'm pretty sure everybody has it by
now. Plus these links don't even exist anymore.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
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>
The required packages list should be easier to parse. Updated the style so it's more similar to the ``./configure`` style later in the document.
Signed-off-by: Jarad Olson <brotherdust+github@gmail.com>
Names of the MPLS kernel modules changed slightly in recent kernel. Uses underscore instead of dash.
Signed-off-by: Jarad Olson <brotherdust+github@gmail.com>
The pull request #1545 from @donaldsharp introduced the command 'no
password' to remove an existing terminal connection password.
Additionally, warnings have been added to both 'no password' and 'no
enable password' to make the user aware of any security implications.
It seems that this specific pull request was never merged against master
and got lost. This commit is a cherry-pick of d4961273cb with fixed
conflicts and updated documentation.
Thanks to @donaldsharp and @pogojotz for the original PR.
Signed-off-by: Pascal Mathis <mail@pascalmathis.com>
Updated the doc to cross-reference build documentation as well and
reformatted to RST. Removed stub section on how to configure daemons and
whatnot, as that's the domain of the user docs.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
As there are subtle differences between VRF-lite and VRF-netns,
some information is given to the operator on what can be/ can not be
done.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Explain the --enable-ecmp=X configure option as well as
modify the zebra user doc to explain the -e X option.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Documentation was not fully using Automake / Autoconf and therefore needs
modifications to support black magic VPATH builds.
* Convert Makefile's to Autoconf-controlled Makefile.in's
* Tweak loading of pygments lexer to handle runtime paths
* Update .gitignore's as necessary
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Adding to mtracebis querying with group address. Same change
to vtysh mtrace command. Support for querying (S,G) and (*,G)
state in mtrace router code. Further improvments to mtrace router
code with closer complience to IETF draft. More references in
comments to the draft. Man page has been updated accordingly.
Signed-off-by: Mladen Sablic <mladen.sablic@gmail.com>
* Run sphinxcontrib-spelling over docs
* Correct spelling errors
* Compile a dictionary for future spellchecking efforts
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Add support for CLI "auto" keyword in vrf->vpn export label:
router bgp NNN vrf FOO
address-family ipv4 unicast
label vpn export auto
exit-address-family
Signed-off-by: G. Paul Ziemba <paulz@labn.net>
The docs extract various configuration values from config.status and
substitute them into placeholders throughout the docs. Add the ability
to build the docs with some reasonable defaults set instead of failing
when config.status doesn't exist.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Pygments 2.2+ has `load_lexer_from_file`, but it looks like some of our
build platforms are on an older version.
Also gotta include the new file in dist tarball.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Currently, we just package the frr daemons, but we don't run
them. This is fine for basic tests, but it is inconvenient to
orchestrate the daemons from downstream test environments.
Here, we follow the redhat and debianpkg formats more closely,
putting the daemons in /usr/lib/frr and including the frr user
and groups in the package. We also include a docker specific
startup script and a sysvinit link in /etc/init.d/frr for
openrc based alpine installs.
Testing done:
Built packages, built base images, everything seems to work fine.
Uninstalled the package, all the daemons stopped.
Issue: https://github.com/FRRouting/frr/issues/2030
Signed-off-by: Arthur Jones <arthur.jones@riverbed.com>
Vincent Bernat has written a small Pygments lexer for IOS / Quagga
config files that works just as well on FRR stuff. Pulled that into our
docs with his blessing.
Also changed the background color on our code blocks away from that
kinda ugly green to gray, which looks way better with the syntax
highlighting changes that are about to happen in the next commit.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Use the proper section markup as defined in workflow.rst.
This helps Sphinx organize sections properly.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Short and long form options can be written on the same line, Sphinx
understands how to cross-reference using either one of them. Also
replace some - with _ where appropriate.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Currently, we tar up the git repo before building alpine packages.
This ensures that the packages we're building are exactly what is
checked in. But, in practice, this restriction causes us to not
be able to build off of git contexts, which is a convenient feature
especially when using docker-compose.
So, here, we build the alpine packages directly from the contents
of the current directory and we install the packages into a base
image to ease downstream consumption. There is still work to be
done in that area, as we need to package up the daemons, frr user
and all the rest, but that's for later...
Testing-done:
Built directly from the git repo, built from a reference to the
git repo and built using docker-compose, all seemed to work. Also,
tested by @leleobhz and seems to build fine.
Thanks to Leonardo Amaral (@leleobhz) for reporting the issue and for
the original idea for a fix.
Issue: https://github.com/FRRouting/frr/issues/2024
Signed-off-by: Arthur Jones <arthur.jones@riverbed.com>
* Document modes & nodes
* Document walkup behavior
* Document struct cmd_node
* Add graph of node relationships
* Reorder sections to make more logical sense
* Rewrap sections to 80 lines
* Fix code block indent
* Specify language for code blocks in order to get syntax highlighting
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Adds support for V4 GoAway flag as described in
https://www.ietf.org/id/draft-bz-v4goawayflag-00.txt
This option allows advertising neighbors to indicate to recipients that
they should disable IPv4 on the link.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* Ubuntu 18.04 build doc was not included in its toctree
* Duplicate definition of the same CLI command removed
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Add the documentation for 'remote-as [internal|external]`
Cleanup some old obsolete information
Specify that interfaces can be used as a peer in bgp
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
The following types are nonstandard:
- u_char
- u_short
- u_int
- u_long
- u_int8_t
- u_int16_t
- u_int32_t
Replace them with the C99 standard types:
- uint8_t
- unsigned short
- unsigned int
- unsigned long
- uint8_t
- uint16_t
- uint32_t
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* Checkpatch.pl now checks for nonstandard integral types
* Add shell script to replace all nonstandard types with their standard
counterparts in C source files
* Document usage of types, mention conversion script
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
add note that author's shouldn't remove a comment or review.
also add a note that automatically generated comments can
be deleted by authors and others when such comments are not
the most results from that automated comment source.
Signed-off-by: Lou Berger <lberger@labn.net>
The default theme has a css rule that limits the body element width to
800px, which results in sizeable chunk of empty space to the right of
the docs. Add a small css override to remove this limit (like the Python
docs do).
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* Translate plaintext stub documenting bgpd preprocessor constants for
attributes into a RST file and include it in the doctree
* Remove the Markdown version of the OSPF-API document, as I've already
translated it into RST
* Remove the Markdown version of the modules document, as I've already
translated it into RST
* Rename the various "Building_FRR_*" documents to match standard RST
file conventions
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
LaTeX doesn't know how to typeset SVG images, so use a png. Sphinx has a
plugin to automatically convert images to the right format for every
builder but it depends on imagemagick and God only knows what plugin
support is like on Centos 6...
Also correct the name of the BGP typecodes doc in its index file.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* Translate plaintext stub documenting bgpd preprocessor constants for
attributes into a RST file and include it in the doctree
* Remove the Markdown version of the OSPF-API document, as I've already
translated it into RST
* Remove the Markdown version of the modules document, as I've already
translated it into RST
* Rename the various "Building_FRR_*" documents to match standard RST
file conventions
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Building alpine packages in a "standard" distro can be
complicated due to the limited scope of the distro (embedded
and small docker images). Building in a VM is one possibility,
but docker support for alpine is very good (default docker images
come in alpine due to the very small size).
Here, we want to package up the current git repo into apk packages
that can be easily installed in alpine linux using the apk tool.
This support is not intended to package released versions of
apk packages, that, if it comes to be, should be done here:
git://git.alpinelinux.org/aports
We're content here to build packages that can be used by developers
to try out frr in docker and other alpine environments.
This is a very minimal environment, we don't support importing
keys (so, installing the packages with apk requires the
--allow-untrusted option). In addition, we can't use the
git commit id in hex as version tag, as alpine doesn't support hex
digits in the version string. So, we need to convert the git hash
to decimal before tagging the package with the extra version.
This is yucky, but I can't think of another way to get a
unique version per package. The alpine way (using a numeric date),
only works for released packages, not for dev packages.
Issue: https://github.com/FRRouting/frr/issues/1859
Signed-off-by: Arthur Jones <arthur.jones@riverbed.com>
The vtysh man page was referencing eigrp. Looked like a
cut-n-paste error?
Added some missing cli for the vtysh program, that users
might want to see.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Document the configure option to strip non-numeric characters from
the version string.
Testing done:
Build alpine packages in docker, run texinfo on the doc apk package.
Issue: https://github.com/FRRouting/frr/issues/1859
Signed-off-by: Arthur Jones <arthur.jones@riverbed.com>
Since docs are rebuilt on every make invocation, don't bother building html by
default to save a bit of time.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Sphinx is not designed to be run in parallel and exhibits filesystem race
conditions if it is. Disable parallel build.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Iron out all of the glitches with recursive Automake, 3rd-party
autogenerated Sphinx makefiles, building and installing 3 different
document formats under different targets, and handling clean.
* Implement all Automake-required targets for 3rd-party Makefiles
* Setup subdirectories for 3rd-party Makefiles
* Override implicit Automake document targets
* Clean up explicit targets for developer docs
* Move Sphinx-generated Makefile to an include file
* Update targets for debian packaging
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Remove the various manpages & info related ignore rules so that git
clean can pick them up and delete them.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Unconditional automake subdirectory flag = 'man' causes manpages to
always be built regardless of target, which is undesirable for `clean`.
Remove unconditional flag and override automake targets that need to
build manpages instead.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
- Added warning for CentOS 6 support to be limited
- Added instructions for installing sphinx27-build manually
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
Error message for missing sphinx-build wasn't clear enough when
explaining how to change the path to the sphinx-build binary as it said
'environment variable' instead of 'make variable'
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* New manpage: mtracebis.rst
* Makefile.am includes mtracebis.rst
* configure.ac lines removed
* Debian packaging files updated
* Fixed up manpage |seealso-programs| in the process
* Centos7 build package list updated to include systemd-devel
* New paragraph on netns vrf support in zebra manpage
Conflicts:
configure.ac
debianpkg/backports/ubuntu14.04/debian/frr.install
debianpkg/frr.install
doc/Makefile.am
doc/developer/Building_FRR_on_CentOS7.rst
doc/zebra.8.in
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
- To ease checking the Segment Routing conformity in topotest,
add json output to 'show ip ospf database segment-routing' CLI.
- Update ospfd user guide accordingly
- Update OSPF-SR documentation with supported features and interoperability
Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
Update the centos7 build instructions to include
data on how to build w/ systemd. This is especially
useful because we tell the user to install the frr.service
file and the frr.service file expects systemd integration
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
BSD systems need gmake to build FRR, hence why we use $(MAKE) instead of
directly invoking make. It looks like Sphinx generated makefiles
understand this, but contain a bug where the target for info files
hardcodes make instead of using $(MAKE). Fix this.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Some platforms (actually just Centos6, again, of course) call
"sphinx-build" as "sphinx-1.0-build", and so to work around this
apparently useless name, fall back to sphinx-1.0-build when we can't
find sphinx-build before displaying an error message. I am not doing in
this the configure script because the sphinx makefiles are not Automake
files and the less Automake in tree the better.
Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
This commit is the implementation of weak multicast traceroute.
It consists of IGMP module dealing with mtrace type IGMP messages
and client program mtrace/mtracebis for initiating mtrace queries.
Signed-off-by: Mladen Sablic <mladen.sablic@gmail.com>
Incidentally this was all broken before anyway.
* Correctly ship all documents in frr-doc
* Ship manpages for all daemons in frr
* Update rules to build docs via Sphinx
* Use packaging install files correctly
Forgot to add a couple includes to the exclude list. Also move
defines.txt to defines.rst since I know how to properly ignore things
now.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Newer sphinx-build generated makefiles use an as-of-yet undocumented CLI
option that is not present in older versions.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Replaced stub definitions of CLI with references to their full
definitions so that Sphinx can properly cross reference them.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
At some point the routeserver docs got lost, converted those from texi
and put them back. Also fixed some broken cli xrefs.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* Remove groff manpages
* Rewrite manpages in RST
* Clean up and standardize manpage content
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* Move all developer related docs into developer/
* Move all figures into their own directory
* Move manpages to own directory
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Following various review, following files have been modfied:
- All: Change u_intXX_t typedef to standard uintXX_t types
- doc/OSPF-SR.rst: Update doc in particular the Linux Kernel configuration
section
- doc/ospfd.texi: Update CLI
- ospfd/ospf_dump.[c,h]: Add new 'debug ospf sr' when performing 'sh run'
- ospfd/ospf_ext.[c, h]: Various bug corrections notably to handle flooding of
Extended Prefix at startup. iFix TLVs size for LAN Adjacency.
Update Licence as per Community.md
- ospfd/ospf_opaque.c: Add proper termination function call to remove MPLS entries
- ospfd/ospf_ri.[c,h]: Bug corrections
- ospfd/ospf_sr.[c,h]: Various bug corrections, notably to determine the nexthop
SR Node. Add support to 'no-php-flag'.
Update Licence as per Community.md
- ospfd/ospfd.c: Add call to 'ospf_opaque_term()'
Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
Using /var/run/frr as a localstate directory will allow
debian9 to just delete that directory on every reboot.
This causes issues for people who are new to the system
in that FRR will just stop working on a reboot.
Instead just point people at a better spot.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
- Remove OSPD_SR route type
- Check that Segment Routing is enable only in default VRF
- Add comment for SRGB in lib/mpls.h
- Update documentation
Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
This is an incomplete stub of a chapter and goes under BGP docs anyway.
Also fix an include statement for RPKI.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
In conf.py, extract & construct values for inline variables throughout
the docs. In the docs, use these inline variables in RST syntax.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
- In ospfd and isisd documentation, Traffic Engineering examples
are referring to old interface syntax. Update both examples to
'link-param' syntax.
Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
- ospf_ext.c: Correct deferred pointer raised by valgrind
- ospf_sr.c: Correct deffered pointer raised by valgrind. Modify
Segment Routing shutdown. This is due to the fact that RI LSA
4.0.0.0 is flush prior to 7.0.0.X & 8.0.0.X LSA. This trigger
SR-Node deletion which also remove all Extended Link / Prefix
leaving them unavailable when there are referenced by 7.0.0.X
& 8.0.0.X LSA flushing.
- doc/OSPF-SR.rst: Correct Restructured Text syntax and add
Configuration example as well as Credit section
Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
This is an implementation of draft-ietf-ospf-segment-routing-extensions-24
and RFC7684 for Extended Link & Prefix Opaque LSA.
Look to doc/OSPF_SR.rst for implementation details & known limitations.
New files:
- ospfd/ospf_sr.h: Segment Routing structure definition (SubTLVs + SRDB)
- ospfd/ospf_sr.c: Main functions for Segment Routing support
- ospfd/ospf_ext.h: TLVs and SubTLVs definition for RFC7684
- ospfd/ospf_ext.c: RFC7684 Extended Link / Prefix implementation
- doc/OSPF-SRr.rst: Documentation
Modified Files:
- doc/ospfd.texi: Add new Segment Routing CLI command definition
- lib/command.h: Add new string command for Segment Routing CLI
- lib/mpls.h: Add default value for SRGB
- lib/route_types.txt: Add new OSPF Segment Routing route type
- ospfd/ospf_dump.[c,h]: Add OSPF SR debug
- ospfd/ospf_memory.[c,h]: Add new Segment Routing memory type
- ospfd/ospf_opaque.[c,h]: Add ospf_sr_init() starting function
- ospfd/ospf_ri.c: Add new functions to Set/Get Segment Routing TLVs
Add new ospf_router_info_lsa_upadte() to send Opaque LSA to ospf_sr.c()
- ospfd/ospf_ri.h: Add new Router Information SR SubTLVs
- ospfd/ospf_spf.c: Add new scheduler when running SPF to trigger
update of NHLFE
- ospfd/ospfd.h: Add new thread for Segment Routing scheduler
- ospfd/subdir.am: Add new files
- vtysh/Makefile.am: Add new ospf_sr.c file for vtysh
- zebra/kernel_netlink.c: Add new OSPF_SR route type
- zebra/rt_netlink.[c,h]: Add new OSPF_SR route type
- zebra/zebra_mpls.h: Add new OSPF_SR route type
Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
The old Texi docs had some Makefile-style variable substitutions they
used to pull in information like release date, configured install path,
etc. Sphinx has this ability as well, we start making use of it here.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Automatically translated all Texinfo files to RST using a script found
on the GCC mailing list[0]. Some formatting manually corrected.
Also created index.rst for building as well as boilerplate Sphinx
conf.py and Makefile.
[0] https://gcc.gnu.org/ml/gcc-patches/2015-11/msg01095.html
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* Add chapter on BGPD
* Add diagram for git workflow
* Convert next-hop tracking documents to ReST
* Update & organize workflow document
* Move ldpd docs back up to the parent directory
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
* Move doc/code/ -> doc/developer/
* Move disparate code documentation to doc/developer/
* Convert Markdown docs to reStructuredText
* Organize docs into Sphinx tree
* Move build docs -> doc/developer/
* Change build doc titles to fit under Building subsection of manual
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit adds support for the RTR protocol to receive ROA
information from a RPKI cache server. That information can than be used
to validate the BGP origin AS of IP prefixes.
Both features are implemented using [rtrlib](http://rtrlib.realmv6.org/).
Signed-off-by: Marcel Röthke <marcel.roethke@haw-hamburg.de>
1) Write zserv api commands( one of each type ) to the side. This will allow
us to use them as input for a fuzzer.
2) Add -c <file to pass to zapi read process> into zebra as a run-time
option of we've turned on fuzzing.
While in and of itself these are not terribly useful( you still need
an external fuzzer ), they provide an infrastructure to allow
tools like afl to test the zapi.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Add the ability to match a specific prefix-length in zebra.
This command behaves in the same manner that the v4 version
of the command behaves.
Fixes: #1398
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Added python-ipaddr apt requirement to documentation.
Added clarification to install systemd service section
as commands assume are in frr directory.
Signed-off-by: Will McLendon <wimclend@gmail.com>
Turn on '-g3 and -O0' for compilation. Additionally
document the --enable-dev-build flag in our documentation.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
When matching user input against a CLI graph, we keep a stack of tokens
matched. Stack size was limited to 64, making the effective number of
tokens that could be entered on a line 64. This is too limiting in some
circumstances, so bump it to 256 (and document it).
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Regular expressions are used throughout in bgp commands, it
should not be in a section under as paths which cannot be
easily found.
Signed-off-by: Nigel Kukard <nkukard@lbsd.net>
Disable this in the code to make it hard for people to shoot themselves
in the foot. It's only left as a remnant for development use.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This adds "@tcp" as new choice on the -z option present in zebra and the
protocol daemons. The --enable-tcp-zebra option on configure is no
longer needed, both UNIX and TCP socket support is always available.
Note that @tcp should not be used by default (e.g. in an init script),
and --enable-tcp-zebra should never have been in any distro package
builds, because
**** TCP-ZEBRA IS A SECURITY PROBLEM ****
It allows arbitrary local users to mess with the routing table and
inject bogus data -- and also ZAPI is not designed to be robust against
attacks.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This inserts "\global \advance \brackcount by 1" into the frr.fn
(function index) for some reason, which causes the PDF build to fail.
It's somehow related to the [] brackets, but they work just fine in
other locations...
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Ditch version.texi, put PACKAGE_VERSION in defines.texi instead.
Also add a PACKAGE_URL variable and fix some leftover outdated URLs.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
BUILT_SOURCES doesn't do what the name suggests. What it actually means
is "these files should be built first when doing a 'make' without
explicit target" (or "make all").
It's pretty much almost always wrong to use BUILT_SOURCES, the only
correct use is when a file is needed by an unspecified / large set of
files.
Also remove version.h and route_types.h from dist tarball while we're at
it. configure will create them anyway.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Remove -R, -a, -A, -e and -z options. Also remove blocker in the code
that refuses to start if --dry is given together with -k / -s / -r.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>