Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S269952AbTGKNYB (ORCPT ); Fri, 11 Jul 2003 09:24:01 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S269953AbTGKNYA (ORCPT ); Fri, 11 Jul 2003 09:24:00 -0400 Received: from cs180094.pp.htv.fi ([213.243.180.94]:39808 "EHLO hades.pp.htv.fi") by vger.kernel.org with ESMTP id S269952AbTGKNX7 convert rfc822-to-8bit (ORCPT ); Fri, 11 Jul 2003 09:23:59 -0400 Subject: Re: 2.4.21+ - IPv6 over IPv4 tunneling b0rked From: Mika Liljeberg To: Mika =?ISO-8859-1?Q?Penttil=E4?= Cc: Pekka Savola , Andre Tomt , linux-kernel@vger.kernel.org, netdev@oss.sgi.com In-Reply-To: <3F0EB227.50403@kolumbus.fi> References: <1057925366.896.24.camel@hades> <3F0EB227.50403@kolumbus.fi> Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8BIT Message-Id: <1057930712.895.32.camel@hades> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 11 Jul 2003 16:38:32 +0300 Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1831 Lines: 42 On Fri, 2003-07-11 at 15:48, Mika Penttil? wrote: > It turns out to be the (otherwise valid) check for IFF_LOOPBACK for > gateway's address in ip6_route_add() that gives EINVAL for prefix::, and > has nothing to do with iid being 0, just a coinsidence.... Not sure. Seems to me that ipv6_addr_type() flags the gateway address as anycast. In ip6_route_addr() [2.5.74] we have: if (rtmsg->rtmsg_flags & RTF_GATEWAY) { struct in6_addr *gw_addr; int gwa_type; gw_addr = &rtmsg->rtmsg_gateway; ipv6_addr_copy(&rt->rt6i_gateway, &rtmsg->rtmsg_gateway); gwa_type = ipv6_addr_type(gw_addr); if (gwa_type != (IPV6_ADDR_LINKLOCAL|IPV6_ADDR_UNICAST)) { struct rt6_info *grt; /* IPv6 strictly inhibits using not link-local addresses as nexthop address. Otherwise, router will not able to send redirects. It is very good, but in some (rare!) curcumstances (SIT, PtP, NBMA NOARP links) it is handy to allow some exceptions. --ANK */ err = -EINVAL; if (!(gwa_type&IPV6_ADDR_UNICAST)) goto out; Looks like it would bail out here, unless I read the code wrong. How about: if (!(gwa_type&(IPV6_ADDR_UNICAST|IPV6_ADDR_ANYCAST))) goto out; MikaL - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/