Go to file
Mitchell Skiba 3373d7e7ff bgpd: add addpath ID to adj_out tree sort
When withdrawing addpaths, adj_lookup was called to find the path that
needed to be withdrawn. It would lookup in the RB tree based on subgroup
pointer alone, often find the path with the wrong addpath ID, and return
null.  Only the path highest in the tree sent to the subgroup could be
found, thus withdrawn.

Adding the addpath ID to the sort criteria for the RB tree allows us to
simplify the logic for adj_lookup, and address this problem. We are able
to remove the logic around non-addpath subgroups because the addpath ID
is consistently 0 for non-addpath adj_outs, so special logic to skip
matching the addpath ID isn't required.  (As a side note, addpath will
also never use ID 0, so there won't be any ambiguity when looking at the
structure content.)

Signed-off-by: Mitchell Skiba <mskiba@amazon.com>
2020-01-15 10:12:44 -08:00
.github .github: move pr template to subdir 2019-03-29 16:51:58 +00:00
alpine alpine: fix build on current 'edge' version of Alpine 2019-12-03 21:36:30 +01:00
babeld *: generously apply const 2019-12-02 15:01:29 +01:00
bfdd doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
bgpd bgpd: add addpath ID to adj_out tree sort 2020-01-15 10:12:44 -08:00
debian doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
doc doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
docker Merge pull request #5606 from ton31337/fix/docker_centos8_image_name 2020-01-06 11:24:15 -06:00
eigrpd doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
fpm build: fix "make tags" 2019-09-17 16:35:12 +02:00
gdb bgpd: Convert binfo to path 2018-10-09 14:26:30 -04:00
grpc build: fix "make tags" 2019-09-17 16:35:12 +02:00
include include: Add nexthop.h to the include automake file 2019-10-25 11:13:38 -04:00
isisd doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
ldpd doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
lib lib,zebra: add zapi msg top level error handling 2020-01-08 12:22:29 -05:00
m4 build: add check for python-3.8 2019-08-14 15:06:52 +02:00
mlag zebra: Do not build mlag protobuf support if version 3 is not avail 2019-12-15 09:37:51 -05:00
nhrpd doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
ospf6d doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
ospfclient ospfclient: don't install man page 2020-01-15 14:05:11 +01:00
ospfd doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
pbrd doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
pimd doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
pkgsrc *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
python bgpd/bmp: BMP implementation 2019-08-30 19:22:23 +02:00
qpb build: fix "make tags" 2019-09-17 16:35:12 +02:00
redhat packaging: Redirect stderr to /dev/null in %post action (frr.spec.in) 2020-01-05 19:33:21 +02:00
ripd doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
ripngd doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
sharpd doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
snapcraft snapcraft: Add vrrpd to the snapcraft package 2019-11-19 10:46:33 +01:00
solaris doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
staticd doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
tests tests: ospf6-topo1 did not work properly with nhg's and 5.3 kernels 2020-01-10 08:57:18 -05:00
tools tools: symalyzer 2019-12-14 12:41:19 +01:00
vrrpd doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
vtysh vtysh: Ensure interface ip mroute ... commands are last 2019-12-20 09:47:30 -05:00
watchfrr doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
yang Merge pull request #5314 from qlyoung/yang-vrrp 2020-01-07 21:36:46 -03:00
zebra doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
.clang-format *: frr_elevate_privs -> frr_with_privs 2019-09-03 17:18:35 +02:00
.dir-locals.el tools: fix emacs configuration file 2019-11-04 11:45:52 -03:00
.dockerignore docker: Make docker image on CentOS 7 2019-11-26 19:29:30 +00:00
.gitignore tools: symalyzer 2019-12-14 12:41:19 +01:00
bootstrap.sh autoreconf -i 2007-02-06 19:28:28 +00:00
buildtest.sh config: switch a few references to say FRR 2017-07-12 11:25:33 -05:00
changelog-auto.in debian: cleanly split off from dist tarball 2019-02-19 21:31:18 +01:00
config.version.in build: carry --with-pkg-extra-version into tarballs 2018-10-24 15:11:50 +02:00
configure.ac *: Modify version number of build 2020-01-14 08:21:57 -05:00
COPYING *: make consistent & update GPLv2 file headers 2017-05-15 16:37:41 +02:00
COPYING-LGPLv2.1 build: remove LGPL v2.0, add LGPL v2.1 2016-11-15 17:19:38 +09:00
Makefile.am lib: new defaults logic 2019-12-06 15:13:32 +01:00
README.md README.md: Add FRR Icon 2019-10-29 12:42:06 -04:00
stamp-h.in Initial revision 2002-12-13 20:15:29 +00:00

Icon

FRRouting

FRR is free software that implements and manages various IPv4 and IPv6 routing protocols. It runs on nearly all distributions of Linux and BSD as well as Solaris and supports all modern CPU architectures.

FRR currently supports the following protocols:

  • BGP
  • OSPFv2
  • OSPFv3
  • RIPv1
  • RIPv2
  • RIPng
  • IS-IS
  • PIM-SM/MSDP
  • LDP
  • BFD
  • Babel
  • PBR
  • OpenFabric
  • VRRP
  • EIGRP (alpha)
  • NHRP (alpha)

Installation & Use

For source tarballs, see the releases page.

For Debian and its derivatives, use the APT repository at https://deb.frrouting.org/.

Instructions on building and installing from source for supported platforms may be found in the developer docs.

Once installed, please refer to the user guide for instructions on use.

Community

The FRRouting email list server is located here and offers the following public lists:

Topic List
Development dev@lists.frrouting.org
Users & Operators frog@lists.frrouting.org
Announcements announce@lists.frrouting.org

For chat, we currently use Slack. You can join by clicking the "Slack" link under the Participate section of our website.

Contributing

FRR maintains developer's documentation which contains the project workflow and expectations for contributors. Some technical documentation on project internals is also available.

We welcome and appreciate all contributions, no matter how small!

Security

To report security issues, please use our security mailing list:

security [at] lists.frrouting.org