--- Hello, while debugging "Invalid NEXT_HOP attribute" messages in my setup I had to recompile bird2 with additional debug output to determine which BAD_NEXT_HOP line was triggered and with which NEXT_HOP value. After adding this patch determining the problem was very easy. I also looked at the other BAD_NEXT_HOP in the file but I'm not sure how to properly print their values. Regards Simon proto/bgp/packets.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/proto/bgp/packets.c b/proto/bgp/packets.c index 99b5d5b4..830a2060 100644 --- a/proto/bgp/packets.c +++ b/proto/bgp/packets.c @@ -955,7 +955,7 @@ bgp_apply_next_hop(struct bgp_parse_state *s, rta *a, ip_addr gw, ip_addr ll) nbr = neigh_find(&p->p, ll, p->neigh->iface, 0); if (!nbr || (nbr->scope == SCOPE_HOST)) - WITHDRAW(BAD_NEXT_HOP); + WITHDRAW(BAD_NEXT_HOP " %I (direct)", gw); a->dest = RTD_UNICAST; a->nh.gw = nbr->addr; @@ -965,7 +965,7 @@ bgp_apply_next_hop(struct bgp_parse_state *s, rta *a, ip_addr gw, ip_addr ll) else /* GW_RECURSIVE */ { if (ipa_zero(gw)) - WITHDRAW(BAD_NEXT_HOP); + WITHDRAW(BAD_NEXT_HOP " %I (recursive)", gw); rtable *tab = ipa_is_ip4(gw) ? c->igp_table_ip4 : c->igp_table_ip6; s->hostentry = rt_get_hostentry(tab, gw, ll, c->c.table); -- 2.34.1 -- + privacy is necessary + using gnupg http://gnupg.org + public key id: 0x92FEFDB7E44C32F9