--- ../../src.orig/bgpd/rde.c 2026-05-03 15:02:40.895609000 -0500 +++ rde.c 2026-08-04 12:26:48.584850000 -0500 @@ -101,6 +101,8 @@ static void network_dump_upcall(struct rib_entry *, void *); static void network_flush_upcall(struct rib_entry *, void *); +int kr_rfc5549_support(void); + void flowspec_add(struct flowspec *, struct filterstate *, struct filter_set_head *); void flowspec_delete(struct flowspec *); @@ -3505,8 +3568,8 @@ switch (kf.prefix.aid) { case AID_VPN_IPv4: - /* XXX FIB can not handle non-IPv4 nexthop */ - if (kf.nexthop.aid != AID_INET) + if (kf.nexthop.aid != AID_INET && !kr_rfc5549_support()) + /* XXX FIB can not handle non-IPv4 nexthop */ type = IMSG_KROUTE_DELETE; /* FALLTHROUGH */ case AID_VPN_IPv6: @@ -3526,8 +3589,8 @@ } break; case AID_INET: - /* XXX FIB can not handle non-IPv4 nexthop */ - if (kf.nexthop.aid != AID_INET) + if (kf.nexthop.aid != AID_INET && !kr_rfc5549_support()) + /* XXX FIB can not handle non-IPv4 nexthop */ type = IMSG_KROUTE_DELETE; /* FALLTHROUGH */ default: