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

Simon Horman
2012-08-28T08:28:54Z

On Tue, Aug 28, 2012 at 10:22:05AM +0200, Patrick McHardy wrote:
> On Mon, 27 Aug 2012, Julian Anastasov wrote:
>
> >
> > Hello,
> >
> >On Mon, 27 Aug 2012, Jesper Dangaard Brouer wrote:
> >
> >>This patch is necessary, to make IPVS work, after Patrick McHardys
> >>IPv6 NAT defragmentation changes.
> >>
> >>Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
> >>---
> >>
> >>I would appriciate, if someone (e.g. Julian) double check the tunnel mode code.
> >
> > Sure
> >
> >>--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?
> >
> >> 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.