In article <[EMAIL PROTECTED]> (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);
}
> @@ -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.
> + struct ip_tunnel *t = netdev_priv(ifp->idev->dev);
> + if (t->parms.i_key != INADDR_NONE) {
> + spin_lock(&ifp->lock);
I guess INADDR_ANY.
--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