mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-05 01:14:48 +00:00
![]() * bgpd parses NLRIs twice, a first pass "sanity check" and then a second pass that changes actual state. For most AFI/SAFIs this is done by bgp_nlri_sanity_check and bgp_nlri_parse, which are almost identical. As the required action on a syntactic error in an NLRI is to NOTIFY and shut down the session, it should be acceptable to just do a one pass parse. There is no need to atomically handle the NLRIs. * bgp_route.h: (bgp_nlri_sanity_check) Delete * bgp_route.c: (bgp_nlri_parse) Make the prefixlen size check more general and don't hard-code AFI/SAFI details, e.g. use prefix_blen library function. Add error logs consistent with bgp_nlri_sanity_check as much as possible. Add a "defense in depth" type check of the prefixlen against the sizeof the (struct prefix) storage - ala bgp_nlri_parse_vpn. Update standards text from draft RFC4271 to the actual RFC4271 text. Extend the semantic consistency test of IPv6. E.g. it should skip mcast NLRIs for unicast safi as v4 does. * bgp_mplsvpn.{c,h}: Delete bgp_nlri_sanity_check_vpn and make bgp_nlri_parse_vpn_body the bgp_nlri_parse_vpn function again. (bgp_nlri_parse_vpn) Remove the notifies. The sanity checks were responsible for this, but bgp_update_receive handles sending NOTIFY generically for bgp_nlri_parse. * bgp_attr.c: (bgp_mp_reach_parse,bgp_mp_unreach_parse) Delete sanity check. NLRI parsing done after attr parsing by bgp_update_receive. Arising out of discussions on the need for two-pass NLRI parse with: Lou Berger <lberger@labn.net> Donald Sharp <sharpd@cumulusnetworks.com> |
||
---|---|---|
bgpd | ||
cumulus | ||
debian | ||
doc | ||
fpm | ||
gdb | ||
init | ||
isisd | ||
ldpd | ||
lib | ||
m4 | ||
ospf6d | ||
ospfclient | ||
ospfd | ||
pimd | ||
pkgsrc | ||
ports | ||
qpb | ||
redhat | ||
ripd | ||
ripngd | ||
solaris | ||
tests | ||
tools | ||
vtysh | ||
watchquagga | ||
zebra | ||
.gitignore | ||
AUTHORS | ||
bootstrap.sh | ||
buildtest.sh | ||
ChangeLog | ||
common.am | ||
configure.ac | ||
COPYING | ||
COPYING.LIB | ||
HACKING.md | ||
HACKING.pending | ||
INSTALL.quagga.txt | ||
Makefile.am | ||
NEWS | ||
README | ||
README.NetBSD | ||
REPORTING-BUGS | ||
SERVICES | ||
stamp-h.in | ||
TODO | ||
update-autotools |
Quagga is free software that manages various IPv4 and IPv6 routing protocols. Currently Quagga supports BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1, RIPv2, and RIPng as well as very early support for IS-IS. See the file INSTALL.quagga.txt for building and installation instructions. See the file REPORTING-BUGS to report bugs. Quagga is free software. See the file COPYING for copying conditions.