Message ID | 1342638944.2013.10.camel@joe2Laptop |
---|---|
State | RFC, archived |
Delegated to: | David Miller |
Headers | show |
From: Joe Perches <joe@perches.com> Date: Wed, 18 Jul 2012 12:15:44 -0700 > On Wed, 2012-07-18 at 11:23 -0700, David Miller wrote: >> Mark them obsolete so there will be a re-lookup to fetch the >> FIB nexthop exception info. > [] >> diff --git a/net/ipv4/route.c b/net/ipv4/route.c > [] >> @@ -716,8 +717,8 @@ static void __ip_do_redirect(struct rtable *rt, struct sk_buff *skb, struct flow >> fnhe->fnhe_gw = new_gw; >> spin_unlock_bh(&fnhe_lock); >> } >> - rt->rt_gateway = new_gw; >> - rt->rt_flags |= RTCF_REDIRECTED; >> + if (kill_route) >> + rt->dst.obsolete = -2; > > Perhaps -2 should be a #define? > > Perhaps struct dst_entry.obsolete could be a char instead of > a short and a pad byte could added for some future use. First thing, char is not signed by default on all systems :-) But yes, this should be cleaned up. Also with a big fat comment above the struct member detailing it's usage. I'll put this on my TODO list, thanks a lot Joe. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, 2012-07-18 at 12:30 -0700, David Miller wrote: > From: Joe Perches <joe@perches.com> > > Perhaps struct dst_entry.obsolete could be a char instead of > > a short and a pad byte could added for some future use. > > First thing, char is not signed by default on all systems :-) yeah, yeah. I'm sure you'll dtrt :) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/include/net/dst.h b/include/net/dst.h index 5161046..6c40490 100644 --- a/include/net/dst.h +++ b/include/net/dst.h @@ -65,7 +65,8 @@ struct dst_entry { unsigned short pending_confirm; short error; - short obsolete; + char obsolete; + char __pad3; unsigned short header_len; /* more space at head required */ unsigned short trailer_len; /* space to reserve at tail */ #ifdef CONFIG_IP_ROUTE_CLASSID