bgpd: Squash spurious "unknown afi" log messages
* bgp_packet.c: (bgp_update_receive) doesn't differentiate between NLRIs that
are 0 AFI/SAFI cause they weren't set, and those because a peer sent a
bogus AFI/SAFI, before sending sending what may be a misleading, spurious
log message. Check the .nlri pointer is set and avoid this.
Incorporating a suggestion from: G. Paul Ziemba <unp@ziemba.us>
diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c
index 740b0f1..9743d06 100644
--- a/bgpd/bgp_packet.c
+++ b/bgpd/bgp_packet.c
@@ -1645,6 +1645,7 @@
memset (&attr, 0, sizeof (struct attr));
memset (&extra, 0, sizeof (struct attr_extra));
memset (&nlris, 0, sizeof nlris);
+
attr.extra = &extra;
s = peer->ibuf;
@@ -1781,6 +1782,8 @@
/* Parse any given NLRIs */
for (i = NLRI_UPDATE; i < NLRI_TYPE_MAX; i++)
{
+ if (!nlris[i].nlri) continue;
+
/* We use afi and safi as indices into tables and what not. It would
* be impossible, at this time, to support unknown afi/safis. And
* anyway, the peer needs to be configured to enable the afi/safi