Go to file
Donald Sharp 94dc0c4ed4 pimd: Allow the LPM match work properly with prefix lists and normal rp's
All rp_info's are being saved in the pim->rp_list and the non prefix-list
rp's are supposed to be saved in table pim->rp_table.  What was happening,
though, is that all the plists were being stored at the 224.0.0.0/4 node
of the tree(irrelevant to the fact that we should not be looking up the
non-prefix list rp's in the table) and since we can have multiple prefix lists
and only one rp_info stored at the 224.0.0.0/4 node of the tree, there can be situations
where the 224.0.0.0/4 node can be overwritten due to the order entered.

As such there exists situations where command enter ordering will cause
what we match to, change in pim_rp_find_match_group.

Fixes:

a) Do not store prefix list based rp_info's in the pim->rp_table
b) In pim_rp_find_match_group, ensure that the node lookup does
not correspond to a prefix list based node.
c) When in the situation there are both:
ip pim rp 4.5.6.7 224.0.0.0/16
ip pim rp 5.6.67.8 prefix-list FOO
ip prefix-list FOO permit 224.0.1.0/24
and we receive a group for 224.0.1.5, we were comparing the
224.0.0.0/16 to the 224.0.0.0/4 of the 5.6.67.8 group, when
FRR should have been comparing to entry that matched in the prefix-list

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-05-26 10:45:35 -04:00
.github github: Use pull_request_target as a target 2022-05-25 19:07:40 +03:00
alpine alpine: fix path for daemons file install 2021-08-30 15:21:59 -04:00
babeld babeld: Check that bodylen is within some bounds of usable 2022-05-12 13:23:36 -04:00
bfdd bfdd: Prevent coverity from thinking values are uninited 2022-05-12 16:58:29 -04:00
bgpd Merge pull request #11268 from opensourcerouting/fix/drop_rpki_cli_server_redundand 2022-05-24 17:51:22 -04:00
debian Merge pull request #11252 from Jafaral/rel-pkg 2022-05-25 15:33:53 +03:00
doc Merge pull request #11245 from opensourcerouting/fix/doc_overview_package_url 2022-05-25 10:06:48 -04:00
docker Merge pull request #11270 from opensourcerouting/fix/docker_builds_centos 2022-05-24 17:50:34 -04:00
eigrpd *: Properly use memset() when zeroing 2022-05-11 14:08:47 +03:00
fpm build: fix AM_LDFLAGS usage (and gcov) 2021-07-21 17:10:08 +02:00
gdb *: Cleanup some documentation from quagga->frr 2021-11-11 14:41:27 -05:00
grpc build: fix AM_LDFLAGS usage (and gcov) 2021-07-21 17:10:08 +02:00
include zebra: netlink registry rtm tunnel notif 2022-05-18 07:56:35 -07:00
isisd *: Properly use memset() when zeroing 2022-05-11 14:08:47 +03:00
ldpd *: use FRR interface name definition everywhere 2022-05-02 13:00:12 -03:00
lib lib: Make thread_is_scheduled a static inline 2022-05-20 09:53:44 -04:00
m4 autoconf: do not .gitignore m4/ax_lua.m4 2022-03-26 15:05:54 +01:00
mlag build: fix AM_LDFLAGS usage (and gcov) 2021-07-21 17:10:08 +02:00
nhrpd *: Properly use memset() when zeroing 2022-05-11 14:08:47 +03:00
ospf6d ospf6d: Clean up thread interface 2022-05-20 09:52:16 -04:00
ospfclient *: Properly use memset() when zeroing 2022-05-11 14:08:47 +03:00
ospfd *: Properly use memset() when zeroing 2022-05-11 14:08:47 +03:00
pathd *: Properly use memset() when zeroing 2022-05-11 14:08:47 +03:00
pbrd Merge pull request #11059 from anlancs/fix/bgpd-evnp-wrong-check-hashget 2022-05-04 21:19:51 +03:00
pceplib *: Properly use memset() when zeroing 2022-05-11 14:08:47 +03:00
pimd pimd: Allow the LPM match work properly with prefix lists and normal rp's 2022-05-26 10:45:35 -04:00
pkgsrc *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
python python: improve clippy/clidef macro processing 2022-02-28 13:28:43 +01:00
qpb build: fix AM_LDFLAGS usage (and gcov) 2021-07-21 17:10:08 +02:00
redhat Merge pull request #11252 from Jafaral/rel-pkg 2022-05-25 15:33:53 +03:00
ripd *: Properly use memset() when zeroing 2022-05-11 14:08:47 +03:00
ripngd *: Properly use memset() when zeroing 2022-05-11 14:08:47 +03:00
sharpd build: fix new gcc 11.2 warnings 2022-04-25 14:07:41 +02:00
snapcraft snap: Use librtr >= 0.8.0 for snap packages 2022-05-10 09:48:30 +03:00
staticd staticd: redo VRF_DEFAULT NHT registers on connect 2022-04-24 17:21:09 +02:00
tests Merge pull request #11239 from opensourcerouting/feature/topotests_for_notification_gr 2022-05-25 10:07:49 -04:00
tools Merge pull request #11177 from opensourcerouting/fix/memset_memcpy 2022-05-13 07:40:58 -04:00
vrrpd *: remove the checking returned value for hash_get() 2022-05-03 00:41:48 +08:00
vtysh *: Properly use memset() when zeroing 2022-05-11 14:08:47 +03:00
watchfrr *: Properly use memset() when zeroing 2022-05-11 14:08:47 +03:00
yang Merge pull request #10775 from opensourcerouting/pim6-mld-pr 2022-05-17 07:20:08 -04:00
zebra zebra: avoid pbr iptable added twice when used with flowspec 2022-05-25 14:26:28 +02:00
.clang-format lib: add _last and _prev on typesafe RB/DLIST 2022-03-12 13:23:36 +01:00
.dir-locals.el tests: remove python format block from dir-locals 2021-09-13 10:04:29 -04:00
.dockerignore docker: Make docker image on CentOS 7 2019-11-26 19:29:30 +00:00
.git-blame-ignore-revs tools: Ignore mass renaming of topotests for git blame 2021-05-11 14:14:26 +03:00
.gitignore *: Add some missed make check generated files in .gitignore 2021-09-16 08:13:17 -04:00
.pylintrc tests: micronet: update infra 2021-09-04 09:04:46 -04:00
.travis.yml lib: libyang2 add missed conversion 2021-05-17 22:13:59 -04:00
bootstrap.sh build: turn on automake warnings (& symlinks) 2021-04-21 15:42:37 +02:00
buildtest.sh build: remove --enable-exampledir 2021-06-24 16:42:58 +02:00
config.version.in build: carry --with-pkg-extra-version into tarballs 2018-10-24 15:11:50 +02:00
configure.ac configure: Require librtr >= 0.8.0 2022-05-10 09:48:30 +03: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 build: fix AM_LDFLAGS usage (and gcov) 2021-07-21 17:10:08 +02:00
README.md doc: Fix the link that points to Slack invitation in README 2022-03-24 13:13:37 +02:00
stamp-h.in Initial revision 2002-12-13 20:15:29 +00:00
version.h build: make builddir include path consistent 2021-04-21 15:42:33 +02: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 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