Thread (4 messages) 4 messages, 2 authors, 2018-03-12

Re: [PATCH net] ipv4: lock mtu in fnhe when received PMTU < net.ipv4.route.min_pmtu

flat view

From: Sabrina Dubroca <sd@queasysnail.net>
Date: 2018-03-12 16:05:31

2018-03-09, 16:06:19 -0500, David Miller wrote:
From: Sabrina Dubroca <sd@queasysnail.net>
Date: Fri,  9 Mar 2018 17:43:21 +0100
quoted
diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h
index f80524396c06..77d0a78cf7d2 100644
--- a/include/net/ip_fib.h
+++ b/include/net/ip_fib.h
@@ -59,6 +59,7 @@ struct fib_nh_exception {
 	int				fnhe_genid;
 	__be32				fnhe_daddr;
 	u32				fnhe_pmtu;
+	bool				fnhe_mtu_locked;
 	__be32				fnhe_gw;
 	unsigned long			fnhe_expires;
 	struct rtable __rcu		*fnhe_rth_input;
diff --git a/include/net/route.h b/include/net/route.h
index 1eb9ce470e25..729bb5e61e9a 100644
--- a/include/net/route.h
+++ b/include/net/route.h
@@ -64,6 +64,7 @@ struct rtable {
 
 	/* Miscellaneous cached information */
 	u32			rt_pmtu;
+	bool			rt_mtu_locked;
 
 	u32			rt_table_id;
 
Please use a flag bit for this, we've worked hard to shrink these
datastructures as much as possible.
Oops, sorry.
I think if you just choose an unused RTCF_* bit (f.e. 0x02000000) for
the state, you can use that because values propagate into the
rtable->rt_flags, and do not propagate out.  So you should be able to
use it in this way privately inside the kernel.
What about a bitfield?

-	u32			rt_pmtu;
+	u32			rt_mtu_locked:1,
+				rt_pmtu:31;

Since it's going to be private to the kernel, I'd rather not use a
value that's in uapi, especially considering that they're almost all
used (unless we start recycling).

-- 
Sabrina
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help