Generate netlink notification when default IPv6 route preference changes

Generate RTM_NEWROUTE netlink notification when the route preference
 changes on an existing kernel generated default route in response to
 RA messages. Currently netlink notifications are generated only when
 this route is added or deleted but not when the route preference
 changes, which can cause userspace routing application state to go
 out of sync with kernel.

Signed-off-by: Kalash Nainwal <kalash@arista.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Kalash Nainwal 2022-02-10 14:09:35 -08:00 committed by David S. Miller
parent 4ddc844eb8
commit 806c37ddcf
1 changed files with 5 additions and 1 deletions

View File

@ -1337,8 +1337,12 @@ static void ndisc_router_discovery(struct sk_buff *skb)
return;
}
neigh->flags |= NTF_ROUTER;
} else if (rt) {
} else if (rt && IPV6_EXTRACT_PREF(rt->fib6_flags) != pref) {
struct nl_info nlinfo = {
.nl_net = net,
};
rt->fib6_flags = (rt->fib6_flags & ~RTF_PREF_MASK) | RTF_PREF(pref);
inet6_rt_notify(RTM_NEWROUTE, rt, &nlinfo, NLM_F_REPLACE);
}
if (rt)