![]() 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> |
||
---|---|---|
.github | ||
alpine | ||
babeld | ||
bfdd | ||
bgpd | ||
debian | ||
doc | ||
docker | ||
eigrpd | ||
fpm | ||
gdb | ||
grpc | ||
include | ||
isisd | ||
ldpd | ||
lib | ||
m4 | ||
mlag | ||
nhrpd | ||
ospf6d | ||
ospfclient | ||
ospfd | ||
pathd | ||
pbrd | ||
pceplib | ||
pimd | ||
pkgsrc | ||
python | ||
qpb | ||
redhat | ||
ripd | ||
ripngd | ||
sharpd | ||
snapcraft | ||
staticd | ||
tests | ||
tools | ||
vrrpd | ||
vtysh | ||
watchfrr | ||
yang | ||
zebra | ||
.clang-format | ||
.dir-locals.el | ||
.dockerignore | ||
.git-blame-ignore-revs | ||
.gitignore | ||
.pylintrc | ||
.travis.yml | ||
bootstrap.sh | ||
buildtest.sh | ||
config.version.in | ||
configure.ac | ||
COPYING | ||
COPYING-LGPLv2.1 | ||
Makefile.am | ||
README.md | ||
stamp-h.in | ||
version.h |
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