[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <39C363776A4E8C4A94691D2BD9D1C9A1029EDC30@XCH-NW-7V2.nw.nos.boeing.com>
Date: Thu, 15 Nov 2007 10:06:48 -0800
From: "Templin, Fred L" <Fred.L.Templin@...ing.com>
To: YOSHIFUJI Hideaki / 吉藤英明
<yoshfuji@...ux-ipv6.org>
Cc: <netdev@...r.kernel.org>, <vladislav.yasevich@...com>
Subject: RE: [PATCH 01/01] ipv6: RFC4214 Support (v2.2)
Yoshifuji,
See below for follow-up:
> -----Original Message-----
> From: YOSHIFUJI Hideaki / 吉藤英明 [mailto:yoshfuji@...ux-ipv6.org]
> Sent: Thursday, November 15, 2007 3:22 AM
> To: Templin, Fred L
> Cc: netdev@...r.kernel.org; vladislav.yasevich@...com;
> yoshfuji@...ux-ipv6.org
> Subject: Re: [PATCH 01/01] ipv6: RFC4214 Support (v2.2)
>
> In article
> <39C363776A4E8C4A94691D2BD9D1C9A1029EDC2B@...-NW-7V2.nw.nos.bo
eing.com> (at Wed, 14 Nov 2007 22:44:17 -0800), "Templin, Fred L" > <Fred.L.Templin@...ing.com> 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
fred.l.templin@...ing.com
> --yoshfuji
>
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists