From patchwork Wed Sep 18 12:05:35 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Duan Jiong X-Patchwork-Id: 275691 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 2702B2C00F3 for ; Wed, 18 Sep 2013 22:06:42 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752386Ab3IRMGi (ORCPT ); Wed, 18 Sep 2013 08:06:38 -0400 Received: from cn.fujitsu.com ([222.73.24.84]:55773 "EHLO song.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1752048Ab3IRMGi (ORCPT ); Wed, 18 Sep 2013 08:06:38 -0400 X-IronPort-AV: E=Sophos;i="4.90,929,1371052800"; d="scan'208";a="8562708" Received: from unknown (HELO tang.cn.fujitsu.com) ([10.167.250.3]) by song.cn.fujitsu.com with ESMTP; 18 Sep 2013 20:03:25 +0800 Received: from fnstmail02.fnst.cn.fujitsu.com (tang.cn.fujitsu.com [127.0.0.1]) by tang.cn.fujitsu.com (8.14.3/8.13.1) with ESMTP id r8IC6aCb013543; Wed, 18 Sep 2013 20:06:36 +0800 Received: from [10.167.225.86] ([10.167.225.86]) by fnstmail02.fnst.cn.fujitsu.com (Lotus Domino Release 8.5.3) with ESMTP id 2013091820050508-1608807 ; Wed, 18 Sep 2013 20:05:05 +0800 Message-ID: <5239970F.8000105@cn.fujitsu.com> Date: Wed, 18 Sep 2013 20:05:35 +0800 From: Duan Jiong User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130612 Thunderbird/17.0.6 MIME-Version: 1.0 To: David Miller CC: netdev@vger.kernel.org, hannes@stressinduktion.org Subject: [PATCH ] ip6tnl: do route updating for redirect in ip6_tnl_err() X-MIMETrack: Itemize by SMTP Server on mailserver/fnst(Release 8.5.3|September 15, 2011) at 2013/09/18 20:05:05, Serialize by Router on mailserver/fnst(Release 8.5.3|September 15, 2011) at 2013/09/18 20:05:05, Serialize complete at 2013/09/18 20:05:05 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Duan Jiong After the ip6_tnl_err() is called, the rel_msg is assigned to 0, and the ip4ip6_err()will return directly, the instruction below will not be executed. In rfc2473, we can know that the tunnel ICMP redirect message should not be reported to the source of the original packet, so we can handle it in ip4ip6_err(). Signed-off-by: Duan Jiong --- net/ipv6/ip6_tunnel.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c index 2d8f482..35c4b70 100644 --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c @@ -529,6 +529,9 @@ ip6_tnl_err(struct sk_buff *skb, __u8 ipproto, struct inet6_skb_parm *opt, rel_msg = 1; } break; + case NDISC_REDIRECT: + ip6_redirect(skb, net, 0, 0); + break; } *type = rel_type; @@ -576,9 +579,6 @@ ip4ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, rel_type = ICMP_DEST_UNREACH; rel_code = ICMP_FRAG_NEEDED; break; - case NDISC_REDIRECT: - rel_type = ICMP_REDIRECT; - rel_code = ICMP_REDIR_HOST; default: return 0; } @@ -637,8 +637,6 @@ ip4ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, skb_dst(skb2)->ops->update_pmtu(skb_dst(skb2), NULL, skb2, rel_info); } - if (rel_type == ICMP_REDIRECT) - skb_dst(skb2)->ops->redirect(skb_dst(skb2), NULL, skb2); icmp_send(skb2, rel_type, rel_code, htonl(rel_info));