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

Reply via email to