Thread (67 messages) 67 messages, 11 authors, 2012-08-29

Re: [PATCH 2/2] ipvs: Extend MTU check to account for IPv6 NAT defrag changes

From: Simon Horman <horms@verge.net.au>
Date: 2012-08-28 08:28:54
Also in: lvs-devel, netfilter-devel

On Tue, Aug 28, 2012 at 10:22:05AM +0200, Patrick McHardy wrote:
On Mon, 27 Aug 2012, Julian Anastasov wrote:
quoted
Hello,

On Mon, 27 Aug 2012, Jesper Dangaard Brouer wrote:
quoted
This patch is necessary, to make IPVS work, after Patrick McHardys
IPv6 NAT defragmentation changes.

Signed-off-by: Jesper Dangaard Brouer <redacted>
---

I would appriciate, if someone (e.g. Julian) double check the tunnel mode code.
Sure
quoted
--Jesper

net/netfilter/ipvs/ip_vs_xmit.c |   16 +++++++++++++---
1 files changed, 13 insertions(+), 3 deletions(-)
@@ -956,8 +963,11 @@ ip_vs_tunnel_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
		skb_dst(skb)->ops->update_pmtu(skb_dst(skb), NULL, skb, mtu);

	/* MTU checking: Special for tunnel mode */
-	if (mtu < ntohs(old_iph->payload_len) + sizeof(struct ipv6hdr) &&
-	    !skb_is_gso(skb)) {
+	if ((!IP6CB(skb)->frag_max_size &&
+	     (mtu < ntohs(old_iph->payload_len) + sizeof(struct ipv6hdr) &&
+	      !skb_is_gso(skb)))
+	    || IP6CB(skb)->frag_max_size + sizeof(struct ipv6hdr) > mtu) {
+
mtu is already reduced with the new outer header size,
may be we can just call __mtu_check_toobig_v6 with mtu?
quoted
		if (!skb->dev) {
			struct net *net = dev_net(skb_dst(skb)->dev);
All other changes in patch 1 and 2 look ok and
I'll ack them next time.
I'd like to take the final patches through my nat-ipv6 tree in order
to avoid temporary regressions. Please let me know when they're ready
for applying.
I'm fine with these changes going through your tree (rather than my IPVS tree)
once they are ready.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help