Go to file
Paul Jakma 48a5452b5b bgpd: Regularise BGP NLRI sanity checks a bit
* bgp_route.h: (bgp_nlri_sanity_check) The bulk of the args are equivalent
  to a (struct bgp_nlri), consolidate.
* bgp_route.c: (bgp_nlri_sanity_check) Make this a frontend for all afi/safis.
  Including SAFI_MPLS_LABELED_VPN.
  (bgp_nlri_sanity_check_ip) Regular IP NLRI sanity check based on the
  existing code, and adjusted for (struct bgp_nlri *) arg.
* bgp_attr.c: (bgp_mp_reach_parse) Adjust for passing (struct bgp_nlri *)
  to bgp_nlri_sanity_check.
  Get rid of special-casing to not sanity check VPN.
  (bgp_mp_unreach_parse) Ditto.

* bgp_mplsvpn.c: Use the same VPN parsing code for both the sanity
  check and the actual parse.

  (bgp_nlri_parse_vpn) renamed to bgp_nlri_parse_vpn_body and made
  internal.

  (bgp_nlri_parse_vpn_body) Added (bool) argument to control whether it
  is sanity checking or whether it should update routing state for each
  NLRI.  Send a NOTIFY and reset the session, if there's a parsing
  error, as bgp_nlri_sanity_check_ip does, and as is required by the
  RFC.

  (bgp_nlri_parse_vpn) now a wrapper to call _body with update.

  (bgp_nlri_sanity_check_vpn) wrapper to call parser without
  updating.

* bgp_mplsvpn.h: (bgp_nlri_sanity_check_vpn) export for
  bgp_nlri_sanity_check.

* bgp_packet.c: (bgp_update_receive) Adjust for bgp_nlri_sanity_check
  argument changes.

* test/bgp_mp_attr_test.c: Extend to also test the NLRI parsing functions,
  if the initial MP-attr parsing has succeeded.  Fix the NLRI in the
  VPN cases.  Add further VPN tests.

* tests/bgpd.tests/testbgpmpattr.exp: Add the new test cases.

This commit a joint effort of:

Lou Berger <lberger@labn.net>
Donald Sharp <sharpd@cumulusnetworks.com>
Paul Jakma <paul.jakma@hpe.com> / <paul@jakma.org>
2016-10-26 09:36:08 -04:00
bgpd bgpd: Regularise BGP NLRI sanity checks a bit 2016-10-26 09:36:08 -04:00
cumulus
debian debian: Disable build of vnc currently 2016-10-03 08:25:33 -04:00
doc bgpd: add L3/L2VPN Virtual Network Control feature 2016-10-03 08:17:02 -04:00
fpm Use only the ISC license for .proto files. 2016-09-23 12:12:16 -04:00
gdb
init
isisd isisd: Fix size of malloc 2016-10-20 20:28:26 -04:00
ldpd zebra/ldpd: introduce ZEBRA_ROUTE_ALL wildcard route type 2016-10-18 08:51:23 -04:00
lib lib: Fix race condition in shutdown of routemap 2016-10-24 13:40:08 -04:00
m4
ospf6d ospf6d: fix off-by-one on display of spf reasons 2016-10-20 20:28:26 -04:00
ospfclient
ospfd ospfd: Add 'no ...' form of some commands to cli 2016-10-26 08:11:12 -04:00
pimd pimd: don't leak original_s_route on error 2016-10-20 20:28:26 -04:00
pkgsrc
ports
qpb fpm/protobuf: fix compile errors & warnings 2016-09-23 12:12:17 -04:00
redhat bgpd: add L3/L2VPN Virtual Network Control feature 2016-10-03 08:17:02 -04:00
ripd ripd: print md5 auth digest correctly 2016-10-20 20:28:26 -04:00
ripngd *: Consolidate routemap initialization 2016-10-19 10:55:59 -04:00
solaris
tests bgpd: Regularise BGP NLRI sanity checks a bit 2016-10-26 09:36:08 -04:00
tools tools: Fix bug whereby no searches were made 2016-10-25 04:01:50 +00:00
vtysh vtysh: Allow vtysh to not know about enabled daemons/features 2016-10-25 08:26:09 -04:00
watchquagga
zebra zebra: Allow v6 static routes to handle mpls not in kernel 2016-10-25 14:45:49 -04:00
.gitignore build: remove accidentally-added configure outputs 2016-10-11 13:09:06 +02:00
AUTHORS
bootstrap.sh
buildtest.sh
ChangeLog
common.am qpb: Add support for protobuf. 2016-09-23 12:12:16 -04:00
configure.ac vtysh: Allow vtysh to not know about enabled daemons/features 2016-10-25 08:26:09 -04:00
COPYING
COPYING.LIB
HACKING.md
HACKING.pending
INSTALL.quagga.txt build: goodbye, gawk 2016-09-19 16:31:08 -04:00
Makefile.am bgpd: add L3/L2VPN Virtual Network Control feature 2016-10-03 08:17:02 -04:00
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.