From: Eric Dumazet <eric.dumazet@gmail.com>
To: Simon Horman <horms@verge.net.au>
Cc: lvs-devel@vger.kernel.org, netdev@vger.kernel.org,
David Miller <davem@davemloft.net>,
Julius Volz <julius.volz@gmail.com>,
Rob Gallagher <robert.gallagher@heanet.ie>
Subject: Re: [PATCH] IPVS: Add handling of incoming ICMPV6_PKT_TOOBIG messages
Date: Fri, 24 Jul 2009 06:25:25 +0200 [thread overview]
Message-ID: <4A6937B5.3040707@gmail.com> (raw)
In-Reply-To: <20090724024711.GA13280@verge.net.au>
Simon Horman a écrit :
> From: Julius Volz <julius.volz@gmail.com>
>
> IPVS: Add handling of incoming ICMPV6_PKT_TOOBIG messages
>
> Add handling of incoming ICMPv6 Packet Too Big messages. This message
> is received when a realserver sends a packet >PMTU to the client. The
> hop on this path with insufficient MTU will generate an ICMPv6 Packet
> Too Big message back to the VIP. The LVS server receives this message,
> but the call to the function handling this has been missing. Thus, IPVS
> fails to forward the message to the real server, which then does not
> adjust the path MTU. This patch adds the missing call to
> ip_vs_in_icmp_v6() in ip_vs_in() to handle this situation.
>
> Thanks to Rob Gallagher from HEAnet for reporting this issue and for
> testing this patch in production (with direct routing mode).
>
> Signed-off-by: Julius Volz <julius.volz@gmail.com>
> Tested-by: Rob Gallagher <robert.gallagher@heanet.ie>
> Signed-off-by: Simon Horman <horms@verge.net.au>
>
> ---
> net/netfilter/ipvs/ip_vs_core.c | 23 +++++++++++++++++------
> 1 files changed, 17 insertions(+), 6 deletions(-)
>
> Dave, please consider applying this change.
>
> I'm ok with it not going into 2.6.31 as I don't think that
> many people are affected by this problem.
>
> diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
> index 8dddb17..5750800 100644
> --- a/net/netfilter/ipvs/ip_vs_core.c
> +++ b/net/netfilter/ipvs/ip_vs_core.c
> @@ -1274,13 +1274,24 @@ ip_vs_in(unsigned int hooknum, struct sk_buff *skb,
> return NF_ACCEPT;
> }
>
> - if (unlikely(iph.protocol == IPPROTO_ICMP)) {
> - int related, verdict = ip_vs_in_icmp(skb, &related, hooknum);
> +#ifdef CONFIG_IP_VS_IPV6
> + if (af == AF_INET6) {
> + if (unlikely(iph.protocol == IPPROTO_ICMPV6)) {
> + int related, verdict = ip_vs_in_icmp_v6(skb, &related, hooknum);
>
> - if (related)
> - return verdict;
> - ip_vs_fill_iphdr(af, skb_network_header(skb), &iph);
> - }
> + if (related)
> + return verdict;
> + ip_vs_fill_iphdr(af, skb_network_header(skb), &iph);
> + }
> + } else
> +#endif
> + if (unlikely(iph.protocol == IPPROTO_ICMP)) {
> + int related, verdict = ip_vs_in_icmp(skb, &related, hooknum);
> +
> + if (related)
> + return verdict;
> + ip_vs_fill_iphdr(af, skb_network_header(skb), &iph);
> + }
>
> /* Protocol supported? */
> pp = ip_vs_proto_get(iph.protocol);
I see no reference to ICMPV6_PKT_TOOBIG in this patch, so ChangeLog might be
misleading or uncomplete, since other ICMPV6 message types
(ICMPV6_DEST_UNREACH/ICMPV6_TIME_EXCEED) will also be forwarded/handled ?
next prev parent reply other threads:[~2009-07-24 4:25 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-24 13:22 [PATCH] IPVS: Add handling of incoming ICMPV6_PKT_TOOBIG messages Julius Volz
2009-06-28 15:43 ` Simon Horman
2009-07-02 14:43 ` Julius Volz
2009-07-10 9:56 ` Simon Horman
2009-07-24 2:47 ` Simon Horman
2009-07-24 4:25 ` Eric Dumazet [this message]
2009-07-27 2:19 ` David Miller
2009-07-27 2:37 ` Simon Horman
2009-07-27 10:19 ` Julius Volz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A6937B5.3040707@gmail.com \
--to=eric.dumazet@gmail.com \
--cc=davem@davemloft.net \
--cc=horms@verge.net.au \
--cc=julius.volz@gmail.com \
--cc=lvs-devel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=robert.gallagher@heanet.ie \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.