Hi David, On Mon, Sep 10, 2018 at 08:39:34PM -0600, David Ahern wrote: > On 9/10/18 7:04 PM, Hangbin Liu wrote: > > > diff --git a/net/ipv6/route.c b/net/ipv6/route.c > > index 18e00ce..62621b4 100644 > > --- a/net/ipv6/route.c > > +++ b/net/ipv6/route.c > > @@ -998,6 +998,21 @@ static void ip6_rt_copy_init(struct rt6_info *rt, > > struct fib6_info *ort) > > rt->rt6i_prefsrc = ort->fib6_prefsrc; > > } > > > > +static void rt6_update_info(struct rt6_info *rt) > > +{ > > + struct fib6_info *from; > > + > > + rcu_read_lock(); > > + from = rcu_dereference(rt->from); > > + fib6_info_hold(from); > > + rcu_read_unlock(); > > + > > + from->fib6_flags = rt->rt6i_flags; > > + from->fib6_nh.nh_gw = rt->rt6i_gateway; > > As I mentioned on your last patch, redirects do *not* update fib > entries. Exceptions, yes, but not core data of a fib entry.
Thanks for the comments, I understand that we should not update original route. And here I know the redirect (should?) do not update fib entries. So Xin Long's patch looks more reasonable. Thanks Hangbin