From 78a7085778868f1bc0e5e5542b7e208f943e3778 Mon Sep 17 00:00:00 2001 From: Benjamin Cama Date: Wed, 20 Jul 2011 00:29:02 +0200 Subject: [PATCH] Disable IPv6 routes adv when peer doesn't support it. Signed-off-by: Benjamin Cama --- bgp.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/bgp.c b/bgp.c index 2deeeb3..ea15faf 100644 --- a/bgp.c +++ b/bgp.c @@ -1093,6 +1093,17 @@ static int bgp_handle_input(struct bgp_peer *peer) return 0; } + if (notification->error_code == BGP_ERR_OPEN + && notification->subcode == BGP_ERR_OPN_UNSUP_CAP) + { + /* the only capability we advertise is this one, so upon receiving + an "unsupported capability" message, we disable IPv6 routes for + this peer */ + LOG(4, 0, 0, "BGP peer %s doesn't support IPv6 routes advertisement\n", peer->name); + peer->handle_ipv6_routes = 0; + break; + } + /* FIXME: should handle more notifications */ LOG(4, 0, 0, "BGP peer %s sent unhandled NOTIFICATION %d\n", peer->name, (int) notification->error_code); -- 2.20.1