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.Surequoted
--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.