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>
                        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)