From: Ondrej Zajicek (work) Date: Wed, 13 Jun 2018 12:47:37 +0000 (+0200) Subject: BGP: Handle missing NEXT_HOP attribute properly X-Git-Tag: v2.0.3~81^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9c9050ff12c52762708dadda78a05108a5b533b2;p=thirdparty%2Fbird.git BGP: Handle missing NEXT_HOP attribute properly RFC 7606 specifies handle-as-withdraw instead of session reset. --- diff --git a/proto/bgp/attrs.c b/proto/bgp/attrs.c index 9003feb2d..d7a4e692e 100644 --- a/proto/bgp/attrs.c +++ b/proto/bgp/attrs.c @@ -1109,6 +1109,9 @@ bgp_decode_attrs(struct bgp_parse_state *s, byte *data, uint len) if (!BIT32_TEST(s->attrs_seen, BA_AS_PATH)) { REPORT(NO_MANDATORY, "AS_PATH"); goto withdraw; } + if (s->ip_reach_len && !BIT32_TEST(s->attrs_seen, BA_NEXT_HOP)) + { REPORT(NO_MANDATORY, "NEXT_HOP"); goto withdraw; } + /* When receiving attributes from non-AS4-aware BGP speaker, we have to reconstruct AS_PATH and AGGREGATOR attributes; RFC 6793 4.2.3 */ if (!p->as4_session)