Thread (29 messages) flat view 29 messages, 5 authors, 2012-04-18

Re: [PATCH] ipv6: Fix problem with expired dst cache

From: Gao feng <hidden>
Date: 2012-02-24 07:09:34

于 2012年02月24日 14:47, David Miller 写道:
From: Gao feng <redacted>
Date: Fri, 24 Feb 2012 14:20:04 +0800
quoted
diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h
index b26bb81..3da4d58c 100644
--- a/include/net/ip6_fib.h
+++ b/include/net/ip6_fib.h
@@ -106,6 +106,7 @@ struct rt6_info {
 	u32				rt6i_metric;
 	u32				rt6i_peer_genid;
 
+	struct rt6_info			*rt6i_copy;
 	struct inet6_dev		*rt6i_idev;
 	struct inet_peer		*rt6i_peer;
This bloats up every route and cached entry in the machine, find
another way.
Another way is set dst cache's RTF_EXPIRES flag and expires in ip6_rt_copy
and when receive RA packet,update all the related dst cache's expires.
I don't think this is a good idea.
quoted
+	if ((rt->rt6i_flags & RTF_EXPIRES) &&
+		time_after(jiffies, rt->dst.expires))
Poorly formatted, correct way is:

	if ((rt->rt6i_flags & RTF_EXPIRES) &&
	    time_after(jiffies, rt->dst.expires))
quoted
+	if (rt->rt6i_copy && (rt->rt6i_copy->rt6i_flags & RTF_EXPIRES) &&
+		time_after(jiffies, rt->rt6i_copy->dst.expires))
Same problem.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help