Yoshifuji, See below for follow-up:
> -----Original Message----- > From: YOSHIFUJI Hideaki / 吉藤英明 [mailto:[EMAIL PROTECTED] > Sent: Thursday, November 15, 2007 3:22 AM > To: Templin, Fred L > Cc: netdev@vger.kernel.org; [EMAIL PROTECTED]; > [EMAIL PROTECTED] > Subject: Re: [PATCH 01/01] ipv6: RFC4214 Support (v2.2) > > In article > <[EMAIL PROTECTED] eing.com> (at Wed, 14 Nov 2007 22:44:17 -0800), "Templin, Fred L" > <[EMAIL PROTECTED]> says: > > > --- linux-2.6.24-rc2/net/ipv6/addrconf.c.orig > 2007-11-08 11:59:35.000000000 -0800 > > +++ linux-2.6.24-rc2/net/ipv6/addrconf.c 2007-11-14 > 22:17:28.000000000 -0800 > > @@ -1424,6 +1424,21 @@ static int addrconf_ifid_infiniband(u8 * > > return 0; > > } > > > > +static int addrconf_ifid_isatap(u8 *eui, __be32 addr) > > +{ > > + > > + eui[0] = 0x02; eui[1] = 0; eui[2] = 0x5E; eui[3] = 0xFE; > > + memcpy (eui+4, &addr, 4); > > + > > + if (ZERONET(addr) || PRIVATE_10(addr) || LOOPBACK(addr) || > > + LINKLOCAL_169(addr) || PRIVATE_172(addr) || > TEST_192(addr) || > > + ANYCAST_6TO4(addr) || PRIVATE_192(addr) || TEST_198(addr) || > > + MULTICAST(addr) || BADCLASS(addr)) > > + eui[0] &= ~0x02; > > + > > + return 0; > > +} > > + > > static int ipv6_generate_eui64(u8 *eui, struct net_device *dev) > > { > > switch (dev->type) { > > { > eui[0] = (ZERONET(addr) || PRIVATE_10(addr) || LOOPBACK(addr) || > LINKLOCAL_169(addr) || PRIVATE_172(addr) || > TEST_192(addr) || > ANYCAST_6TO4(addr) || PRIVATE_192(addr) || > TEST_198(addr) || > MULTICAST(addr) || BADCLASS(addr)) ? 0 : 2; > eui[1] = 0; > eui[2] = 0x5E; > eui[3] = 0xFE; > memcpy (eui+4, &addr, 4); > } OK; I'll make this change. > > @@ -2167,7 +2185,8 @@ static void addrconf_dev_config(struct n > > (dev->type != ARPHRD_FDDI) && > > (dev->type != ARPHRD_IEEE802_TR) && > > (dev->type != ARPHRD_ARCNET) && > > - (dev->type != ARPHRD_INFINIBAND)) { > > + (dev->type != ARPHRD_INFINIBAND) && > > + !(dev->priv_flags & IFF_ISATAP)) { > > /* Alas, we support only Ethernet autoconfiguration. */ > > return; > > } > > Because priv_flags are local to device type, you need to > check dev->type: > (dev->type == ARPHRD_SIT && !(dev->priv_flags & IFF_ISATAP)) > or something like this. OK. > > + struct ip_tunnel *t = netdev_priv(ifp->idev->dev); > > + if (t->parms.i_key != INADDR_NONE) { > > + spin_lock(&ifp->lock); > > I guess INADDR_ANY. No; INADDR_NONE is correct. Non-zero router value is the way 'ip' tells the kernel that the interface is ISATAP. INADDR_NONE means "ISATAP, but no router". The ISATAP router will never be INADDR_ANY. Thanks - Fred [EMAIL PROTECTED] > --yoshfuji > - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html