From a68a6e89e59ed3fc89581ed0b383964f960a23fd Mon Sep 17 00:00:00 2001 From: Pim van Pelt Date: Tue, 8 Mar 2022 13:55:28 +0000 Subject: [PATCH] Backport https://gerrit.fd.io/r/c/vpp/+/35519 --- lcpng_nl_sync.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lcpng_nl_sync.c b/lcpng_nl_sync.c index e1b917c..f98686b 100644 --- a/lcpng_nl_sync.c +++ b/lcpng_nl_sync.c @@ -472,10 +472,12 @@ lcp_nl_route_add (struct rtnl_route *rr) lcp_nl_mk_route_prefix (rr, &pfx); entry_flags = lcp_nl_mk_route_entry_flags (rtype, table_id, rproto); - /* link local IPv6 */ - if (FIB_PROTOCOL_IP6 == pfx.fp_proto && - (ip6_address_is_multicast (&pfx.fp_addr.ip6) || - ip6_address_is_link_local_unicast (&pfx.fp_addr.ip6))) + nlt = lcp_nl_table_add_or_lock (table_id, pfx.fp_proto); + /* Skip any kernel routes and IPv6 LL or multicast routes */ + if (rproto == RTPROT_KERNEL || + (FIB_PROTOCOL_IP6 == pfx.fp_proto && + (ip6_address_is_multicast (&pfx.fp_addr.ip6) || + ip6_address_is_link_local_unicast (&pfx.fp_addr.ip6)))) { NL_DBG ("route_add: skip linklocal table %d prefix %U flags %U", rtnl_route_get_table (rr), format_fib_prefix, &pfx, @@ -494,7 +496,6 @@ lcp_nl_route_add (struct rtnl_route *rr) if (0 != vec_len (np.paths)) { - nlt = lcp_nl_table_add_or_lock (table_id, pfx.fp_proto); if (rtype == RTN_MULTICAST) { /* it's not clear to me how linux expresses the RPF paramters