* [PATCH 04/05] ipv6: RFC4214 Support
@ 2007-11-07 1:16 Templin, Fred L
2007-11-07 16:16 ` Templin, Fred L
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Templin, Fred L @ 2007-11-07 1:16 UTC (permalink / raw)
To: netdev
From: Fred L. Templin <fred.l.templin@boeing.com>
This is experimental support for the Intra-Site Automatic
Tunnel Addressing Protocol (ISATAP) per RFC4214. It uses
the SIT module, and is configured using the unmodified
"ip" utility with device names beginning with: "isatap".
The following diffs are specific to the Linux 2.6.23
kernel distribution.
Signed-off-by: Fred L. Templin <fred.l.templin@boeing.com>
---
--- linux-2.6.23/net/ipv6/sit.c.orig 2007-10-09 13:31:38.000000000
-0700
+++ linux-2.6.23/net/ipv6/sit.c 2007-11-06 15:32:27.000000000 -0800
@@ -16,6 +16,7 @@
* Changes:
* Roger Venning <r.venning@telstra.com>: 6to4 support
* Nate Thompson <nate@thebog.net>: 6to4 support
+ * Fred L. Templin <fltemplin@acm.org>: isatap support
*/
#include <linux/module.h>
@@ -154,6 +155,14 @@ static struct ip_tunnel * ipip6_tunnel_l
struct net_device *dev;
char name[IFNAMSIZ];
+#if defined(CONFIG_IPV6_ISATAP)
+ /* ISATAP (RFC4214) - router address in daddr */
+ if (!strncmp(parms->name, "isatap", 6)) {
+ parms->i_key = parms->iph.daddr;
+ parms->iph.daddr = remote = 0;
+ }
+#endif
+
for (tp = __ipip6_bucket(parms); (t = *tp) != NULL; tp =
&t->next) {
if (local == t->parms.iph.saddr && remote ==
t->parms.iph.daddr)
return t;
@@ -182,6 +191,11 @@ static struct ip_tunnel * ipip6_tunnel_l
dev->init = ipip6_tunnel_init;
nt->parms = *parms;
+#if defined(CONFIG_IPV6_ISATAP)
+ if (!strncmp(dev->name, "isatap", 6))
+ dev->priv_flags |= IFF_ISATAP;
+#endif
+
if (register_netdevice(dev) < 0) {
free_netdev(dev);
goto failed;
@@ -382,6 +396,48 @@ static int ipip6_rcv(struct sk_buff *skb
IPCB(skb)->flags = 0;
skb->protocol = htons(ETH_P_IPV6);
skb->pkt_type = PACKET_HOST;
+#if defined(CONFIG_IPV6_ISATAP)
+ /* ISATAP (RFC4214) - check source address */
+ if (tunnel->dev->priv_flags & IFF_ISATAP) {
+ struct neighbour *neigh;
+ struct dst_entry *dst;
+ struct flowi fl;
+ struct in6_addr *addr6;
+ struct ipv6hdr *iph6;
+
+ /* from ISATAP router */
+ if (iph->saddr == tunnel->parms.i_key) goto accept;
+
+ iph6 = ipv6_hdr(skb);
+ addr6 = &iph6->saddr;
+
+ /* from legitimate previous hop */
+ memset(&fl, 0, sizeof(fl));
+ fl.proto = iph6->nexthdr;
+ ipv6_addr_copy(&fl.fl6_dst, addr6);
+ fl.oif = tunnel->dev->ifindex;
+ security_skb_classify_flow(skb, &fl);
+
+ if (!(dst = ip6_route_output(NULL, &fl)) ||
+ (dst->dev != tunnel->dev) ||
+ ((neigh = dst->neighbour) == NULL))
+ goto drop;
+
+ addr6 = (struct in6_addr*)&neigh->primary_key;
+
+ if (!(ipv6_addr_is_isatap(addr6)) ||
+ (addr6->s6_addr32[3] != iph->saddr)) {
+drop:
+ tunnel->stat.rx_errors++;
+ dst_release(dst);
+ kfree_skb(skb);
+ read_unlock(&ipip6_lock);
+ return 0;
+ }
+ dst_release(dst);
+ }
+accept:
+#endif
tunnel->stat.rx_packets++;
tunnel->stat.rx_bytes += skb->len;
skb->dev = tunnel->dev;
@@ -395,8 +451,6 @@ static int ipip6_rcv(struct sk_buff *skb
}
icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0);
- kfree_skb(skb);
- read_unlock(&ipip6_lock);
out:
return 0;
}
@@ -444,6 +498,31 @@ static int ipip6_tunnel_xmit(struct sk_b
if (skb->protocol != htons(ETH_P_IPV6))
goto tx_error;
+#if defined(CONFIG_IPV6_ISATAP)
+ /* ISATAP (RFC4214) - must come before 6to4 */
+ if (dev->priv_flags & IFF_ISATAP) {
+ struct neighbour *neigh = NULL;
+
+ if (skb->dst)
+ neigh = skb->dst->neighbour;
+
+ if (neigh == NULL) {
+ if (net_ratelimit())
+ printk(KERN_DEBUG "sit: nexthop ==
NULL\n");
+ goto tx_error;
+ }
+
+ addr6 = (struct in6_addr*)&neigh->primary_key;
+ addr_type = ipv6_addr_type(addr6);
+
+ if ((addr_type & IPV6_ADDR_UNICAST) &&
+ ipv6_addr_is_isatap(addr6))
+ dst = addr6->s6_addr32[3];
+ else
+ goto tx_error;
+ }
+#endif /* CONFIG_IPV6_ISATAP */
+
if (!dst)
dst = try_6to4(&iph6->daddr);
^ permalink raw reply [flat|nested] 10+ messages in thread* RE: [PATCH 04/05] ipv6: RFC4214 Support
2007-11-07 1:16 [PATCH 04/05] ipv6: RFC4214 Support Templin, Fred L
@ 2007-11-07 16:16 ` Templin, Fred L
2007-11-07 18:36 ` YOSHIFUJI Hideaki / 吉藤英明
2007-11-10 20:56 ` Andi Kleen
2 siblings, 0 replies; 10+ messages in thread
From: Templin, Fred L @ 2007-11-07 16:16 UTC (permalink / raw)
To: netdev
> @@ -395,8 +451,6 @@ static int ipip6_rcv(struct sk_buff *skb
> }
>
> icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0);
> - kfree_skb(skb);
> - read_unlock(&ipip6_lock);
> out:
> return 0;
> }
Note that the above lines were incorrectly deleted.
This has been fixed and tested.
Fred
fred.l.templin@boeing.com
> -----Original Message-----
> From: Templin, Fred L
> Sent: Tuesday, November 06, 2007 5:16 PM
> To: netdev@vger.kernel.org
> Subject: [PATCH 04/05] ipv6: RFC4214 Support
>
> From: Fred L. Templin <fred.l.templin@boeing.com>
>
> This is experimental support for the Intra-Site Automatic
> Tunnel Addressing Protocol (ISATAP) per RFC4214. It uses
> the SIT module, and is configured using the unmodified
> "ip" utility with device names beginning with: "isatap".
>
> The following diffs are specific to the Linux 2.6.23
> kernel distribution.
>
> Signed-off-by: Fred L. Templin <fred.l.templin@boeing.com>
>
> ---
>
> --- linux-2.6.23/net/ipv6/sit.c.orig 2007-10-09 13:31:38.000000000
> -0700
> +++ linux-2.6.23/net/ipv6/sit.c 2007-11-06
> 15:32:27.000000000 -0800
> @@ -16,6 +16,7 @@
> * Changes:
> * Roger Venning <r.venning@telstra.com>: 6to4 support
> * Nate Thompson <nate@thebog.net>: 6to4 support
> + * Fred L. Templin <fltemplin@acm.org>: isatap support
> */
>
> #include <linux/module.h>
> @@ -154,6 +155,14 @@ static struct ip_tunnel * ipip6_tunnel_l
> struct net_device *dev;
> char name[IFNAMSIZ];
>
> +#if defined(CONFIG_IPV6_ISATAP)
> + /* ISATAP (RFC4214) - router address in daddr */
> + if (!strncmp(parms->name, "isatap", 6)) {
> + parms->i_key = parms->iph.daddr;
> + parms->iph.daddr = remote = 0;
> + }
> +#endif
> +
> for (tp = __ipip6_bucket(parms); (t = *tp) != NULL; tp =
> &t->next) {
> if (local == t->parms.iph.saddr && remote ==
> t->parms.iph.daddr)
> return t;
> @@ -182,6 +191,11 @@ static struct ip_tunnel * ipip6_tunnel_l
> dev->init = ipip6_tunnel_init;
> nt->parms = *parms;
>
> +#if defined(CONFIG_IPV6_ISATAP)
> + if (!strncmp(dev->name, "isatap", 6))
> + dev->priv_flags |= IFF_ISATAP;
> +#endif
> +
> if (register_netdevice(dev) < 0) {
> free_netdev(dev);
> goto failed;
> @@ -382,6 +396,48 @@ static int ipip6_rcv(struct sk_buff *skb
> IPCB(skb)->flags = 0;
> skb->protocol = htons(ETH_P_IPV6);
> skb->pkt_type = PACKET_HOST;
> +#if defined(CONFIG_IPV6_ISATAP)
> + /* ISATAP (RFC4214) - check source address */
> + if (tunnel->dev->priv_flags & IFF_ISATAP) {
> + struct neighbour *neigh;
> + struct dst_entry *dst;
> + struct flowi fl;
> + struct in6_addr *addr6;
> + struct ipv6hdr *iph6;
> +
> + /* from ISATAP router */
> + if (iph->saddr == tunnel->parms.i_key) goto accept;
> +
> + iph6 = ipv6_hdr(skb);
> + addr6 = &iph6->saddr;
> +
> + /* from legitimate previous hop */
> + memset(&fl, 0, sizeof(fl));
> + fl.proto = iph6->nexthdr;
> + ipv6_addr_copy(&fl.fl6_dst, addr6);
> + fl.oif = tunnel->dev->ifindex;
> + security_skb_classify_flow(skb, &fl);
> +
> + if (!(dst = ip6_route_output(NULL, &fl)) ||
> + (dst->dev != tunnel->dev) ||
> + ((neigh = dst->neighbour) == NULL))
> + goto drop;
> +
> + addr6 = (struct in6_addr*)&neigh->primary_key;
> +
> + if (!(ipv6_addr_is_isatap(addr6)) ||
> + (addr6->s6_addr32[3] != iph->saddr)) {
> +drop:
> + tunnel->stat.rx_errors++;
> + dst_release(dst);
> + kfree_skb(skb);
> + read_unlock(&ipip6_lock);
> + return 0;
> + }
> + dst_release(dst);
> + }
> +accept:
> +#endif
> tunnel->stat.rx_packets++;
> tunnel->stat.rx_bytes += skb->len;
> skb->dev = tunnel->dev;
> @@ -395,8 +451,6 @@ static int ipip6_rcv(struct sk_buff *skb
> }
>
> icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0);
> - kfree_skb(skb);
> - read_unlock(&ipip6_lock);
> out:
> return 0;
> }
> @@ -444,6 +498,31 @@ static int ipip6_tunnel_xmit(struct sk_b
> if (skb->protocol != htons(ETH_P_IPV6))
> goto tx_error;
>
> +#if defined(CONFIG_IPV6_ISATAP)
> + /* ISATAP (RFC4214) - must come before 6to4 */
> + if (dev->priv_flags & IFF_ISATAP) {
> + struct neighbour *neigh = NULL;
> +
> + if (skb->dst)
> + neigh = skb->dst->neighbour;
> +
> + if (neigh == NULL) {
> + if (net_ratelimit())
> + printk(KERN_DEBUG "sit: nexthop ==
> NULL\n");
> + goto tx_error;
> + }
> +
> + addr6 = (struct in6_addr*)&neigh->primary_key;
> + addr_type = ipv6_addr_type(addr6);
> +
> + if ((addr_type & IPV6_ADDR_UNICAST) &&
> + ipv6_addr_is_isatap(addr6))
> + dst = addr6->s6_addr32[3];
> + else
> + goto tx_error;
> + }
> +#endif /* CONFIG_IPV6_ISATAP */
> +
> if (!dst)
> dst = try_6to4(&iph6->daddr);
> -
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 04/05] ipv6: RFC4214 Support
2007-11-07 1:16 [PATCH 04/05] ipv6: RFC4214 Support Templin, Fred L
2007-11-07 16:16 ` Templin, Fred L
@ 2007-11-07 18:36 ` YOSHIFUJI Hideaki / 吉藤英明
2007-11-07 18:41 ` Templin, Fred L
2007-11-10 20:56 ` Andi Kleen
2 siblings, 1 reply; 10+ messages in thread
From: YOSHIFUJI Hideaki / 吉藤英明 @ 2007-11-07 18:36 UTC (permalink / raw)
To: Fred.L.Templin; +Cc: netdev, yoshfuji
Hello.
In article <39C363776A4E8C4A94691D2BD9D1C9A1029EDBE5@XCH-NW-7V2.nw.nos.boeing.com> (at Tue, 6 Nov 2007 17:16:11 -0800), "Templin, Fred L" <Fred.L.Templin@boeing.com> says:
> @@ -154,6 +155,14 @@ static struct ip_tunnel * ipip6_tunnel_l
> struct net_device *dev;
> char name[IFNAMSIZ];
>
> +#if defined(CONFIG_IPV6_ISATAP)
> + /* ISATAP (RFC4214) - router address in daddr */
> + if (!strncmp(parms->name, "isatap", 6)) {
> + parms->i_key = parms->iph.daddr;
> + parms->iph.daddr = remote = 0;
> + }
> +#endif
> +
> for (tp = __ipip6_bucket(parms); (t = *tp) != NULL; tp =
> &t->next) {
> if (local == t->parms.iph.saddr && remote ==
> t->parms.iph.daddr)
> return t;
I do not think it is a good idea to change the behavior based on
the interface name.
> @@ -182,6 +191,11 @@ static struct ip_tunnel * ipip6_tunnel_l
> dev->init = ipip6_tunnel_init;
> nt->parms = *parms;
>
> +#if defined(CONFIG_IPV6_ISATAP)
> + if (!strncmp(dev->name, "isatap", 6))
> + dev->priv_flags |= IFF_ISATAP;
> +#endif
> +
ditto.
> + if (!(ipv6_addr_is_isatap(addr6)) ||
> + (addr6->s6_addr32[3] != iph->saddr)) {
> +drop:
> + tunnel->stat.rx_errors++;
you can unlock here.
> + dst_release(dst);
> + kfree_skb(skb);
> + read_unlock(&ipip6_lock);
> + return 0;
> + }
> + dst_release(dst);
> + }
> +accept:
> +#endif
--yoshfuji
^ permalink raw reply [flat|nested] 10+ messages in thread* RE: [PATCH 04/05] ipv6: RFC4214 Support
2007-11-07 18:36 ` YOSHIFUJI Hideaki / 吉藤英明
@ 2007-11-07 18:41 ` Templin, Fred L
2007-11-07 18:45 ` Stephen Hemminger
0 siblings, 1 reply; 10+ messages in thread
From: Templin, Fred L @ 2007-11-07 18:41 UTC (permalink / raw)
To: YOSHIFUJI Hideaki / 吉藤英明; +Cc: netdev
Yoshifuji,
> -----Original Message-----
> From: YOSHIFUJI Hideaki / 吉藤英明 [mailto:yoshfuji@linux-ipv6.org]
> Sent: Wednesday, November 07, 2007 10:37 AM
> To: Templin, Fred L
> Cc: netdev@vger.kernel.org; yoshfuji@linux-ipv6.org
> Subject: Re: [PATCH 04/05] ipv6: RFC4214 Support
>
> Hello.
>
> In article
> <39C363776A4E8C4A94691D2BD9D1C9A1029EDBE5@XCH-NW-7V2.nw.nos.bo
> eing.com> (at Tue, 6 Nov 2007 17:16:11 -0800), "Templin, Fred
> L" <Fred.L.Templin@boeing.com> says:
>
> > @@ -154,6 +155,14 @@ static struct ip_tunnel * ipip6_tunnel_l
> > struct net_device *dev;
> > char name[IFNAMSIZ];
> >
> > +#if defined(CONFIG_IPV6_ISATAP)
> > + /* ISATAP (RFC4214) - router address in daddr */
> > + if (!strncmp(parms->name, "isatap", 6)) {
> > + parms->i_key = parms->iph.daddr;
> > + parms->iph.daddr = remote = 0;
> > + }
> > +#endif
> > +
> > for (tp = __ipip6_bucket(parms); (t = *tp) != NULL; tp =
> > &t->next) {
> > if (local == t->parms.iph.saddr && remote ==
> > t->parms.iph.daddr)
> > return t;
>
> I do not think it is a good idea to change the behavior based on
> the interface name.
The goal was to avoid requiring changes to applications such as
'iproute2', i.e., the intention was for a standalone code insertion point
within the kernel itself. What do you suggest?
> > @@ -182,6 +191,11 @@ static struct ip_tunnel * ipip6_tunnel_l
> > dev->init = ipip6_tunnel_init;
> > nt->parms = *parms;
> >
> > +#if defined(CONFIG_IPV6_ISATAP)
> > + if (!strncmp(dev->name, "isatap", 6))
> > + dev->priv_flags |= IFF_ISATAP;
> > +#endif
> > +
>
> ditto.
Same as above, but note that the name check is confined to these
two places.
>
> > + if (!(ipv6_addr_is_isatap(addr6)) ||
> > + (addr6->s6_addr32[3] != iph->saddr)) {
> > +drop:
> > + tunnel->stat.rx_errors++;
>
> you can unlock here.
OK; will fix.
Fred
fred.l.templin@boeing.com
> > + dst_release(dst);
> > + kfree_skb(skb);
> > + read_unlock(&ipip6_lock);
> > + return 0;
> > + }
> > + dst_release(dst);
> > + }
> > +accept:
> > +#endif
>
> --yoshfuji
>
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 04/05] ipv6: RFC4214 Support
2007-11-07 18:41 ` Templin, Fred L
@ 2007-11-07 18:45 ` Stephen Hemminger
2007-11-07 19:12 ` Templin, Fred L
0 siblings, 1 reply; 10+ messages in thread
From: Stephen Hemminger @ 2007-11-07 18:45 UTC (permalink / raw)
To: Templin, Fred L
Cc: YOSHIFUJI Hideaki / 吉藤英明, netdev
On Wed, 7 Nov 2007 10:41:49 -0800
"Templin, Fred L" <Fred.L.Templin@boeing.com> wrote:
> Yoshifuji,
>
> > -----Original Message-----
> > From: YOSHIFUJI Hideaki / 吉藤英明 [mailto:yoshfuji@linux-ipv6.org]
> > Sent: Wednesday, November 07, 2007 10:37 AM
> > To: Templin, Fred L
> > Cc: netdev@vger.kernel.org; yoshfuji@linux-ipv6.org
> > Subject: Re: [PATCH 04/05] ipv6: RFC4214 Support
> >
> > Hello.
> >
> > In article
> > <39C363776A4E8C4A94691D2BD9D1C9A1029EDBE5@XCH-NW-7V2.nw.nos.bo
> > eing.com> (at Tue, 6 Nov 2007 17:16:11 -0800), "Templin, Fred
> > L" <Fred.L.Templin@boeing.com> says:
> >
> > > @@ -154,6 +155,14 @@ static struct ip_tunnel * ipip6_tunnel_l
> > > struct net_device *dev;
> > > char name[IFNAMSIZ];
> > >
> > > +#if defined(CONFIG_IPV6_ISATAP)
> > > + /* ISATAP (RFC4214) - router address in daddr */
> > > + if (!strncmp(parms->name, "isatap", 6)) {
> > > + parms->i_key = parms->iph.daddr;
> > > + parms->iph.daddr = remote = 0;
> > > + }
> > > +#endif
> > > +
> > > for (tp = __ipip6_bucket(parms); (t = *tp) != NULL; tp =
> > > &t->next) {
> > > if (local == t->parms.iph.saddr && remote ==
> > > t->parms.iph.daddr)
> > > return t;
> >
> > I do not think it is a good idea to change the behavior based on
> > the interface name.
>
> The goal was to avoid requiring changes to applications such as
> 'iproute2', i.e., the intention was for a standalone code insertion point
> within the kernel itself. What do you suggest?
Agreed, magic names are evil.
Change iproute2 utilities, if it is more logical for administration.
--
Stephen Hemminger <shemminger@linux-foundation.org>
^ permalink raw reply [flat|nested] 10+ messages in thread* RE: [PATCH 04/05] ipv6: RFC4214 Support
2007-11-07 18:45 ` Stephen Hemminger
@ 2007-11-07 19:12 ` Templin, Fred L
2007-11-08 14:26 ` YOSHIFUJI Hideaki / 吉藤英明
0 siblings, 1 reply; 10+ messages in thread
From: Templin, Fred L @ 2007-11-07 19:12 UTC (permalink / raw)
To: Stephen Hemminger
Cc: YOSHIFUJI Hideaki / 吉藤英明, netdev
> -----Original Message-----
> From: Stephen Hemminger [mailto:shemminger@linux-foundation.org]
> Sent: Wednesday, November 07, 2007 10:45 AM
> To: Templin, Fred L
> Cc: YOSHIFUJI Hideaki / 吉藤英明; netdev@vger.kernel.org
> Subject: Re: [PATCH 04/05] ipv6: RFC4214 Support
>
> On Wed, 7 Nov 2007 10:41:49 -0800
> "Templin, Fred L" <Fred.L.Templin@boeing.com> wrote:
>
> > Yoshifuji,
> >
> > > -----Original Message-----
> > > From: YOSHIFUJI Hideaki / 吉藤英明 [mailto:yoshfuji@linux-ipv6.org]
> > > Sent: Wednesday, November 07, 2007 10:37 AM
> > > To: Templin, Fred L
> > > Cc: netdev@vger.kernel.org; yoshfuji@linux-ipv6.org
> > > Subject: Re: [PATCH 04/05] ipv6: RFC4214 Support
> > >
> > > Hello.
> > >
> > > In article
> > > <39C363776A4E8C4A94691D2BD9D1C9A1029EDBE5@XCH-NW-7V2.nw.nos.bo
> > > eing.com> (at Tue, 6 Nov 2007 17:16:11 -0800), "Templin, Fred
> > > L" <Fred.L.Templin@boeing.com> says:
> > >
> > > > @@ -154,6 +155,14 @@ static struct ip_tunnel * ipip6_tunnel_l
> > > > struct net_device *dev;
> > > > char name[IFNAMSIZ];
> > > >
> > > > +#if defined(CONFIG_IPV6_ISATAP)
> > > > + /* ISATAP (RFC4214) - router address in daddr */
> > > > + if (!strncmp(parms->name, "isatap", 6)) {
> > > > + parms->i_key = parms->iph.daddr;
> > > > + parms->iph.daddr = remote = 0;
> > > > + }
> > > > +#endif
> > > > +
> > > > for (tp = __ipip6_bucket(parms); (t = *tp) != NULL; tp =
> > > > &t->next) {
> > > > if (local == t->parms.iph.saddr && remote ==
> > > > t->parms.iph.daddr)
> > > > return t;
> > >
> > > I do not think it is a good idea to change the behavior based on
> > > the interface name.
> >
> > The goal was to avoid requiring changes to applications such as
> > 'iproute2', i.e., the intention was for a standalone code
> insertion point
> > within the kernel itself. What do you suggest?
>
> Agreed, magic names are evil.
>
> Change iproute2 utilities, if it is more logical for administration.
This being an experimental release, I would prefer to go
forward with a standalone kernel solution for the first
iteration then come back with the iproute2 changes at a
later time. IMHO, we should only touch iproute2 once, and
it should be an architected solution - not just a quick
hack. For the short term, timeliness of interoperability testing
with the other major OS's should be the highest priority, IMHO.
Other opinions?
Fred
fred.l.templin@boeing.com
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 04/05] ipv6: RFC4214 Support
2007-11-07 19:12 ` Templin, Fred L
@ 2007-11-08 14:26 ` YOSHIFUJI Hideaki / 吉藤英明
2007-11-08 21:01 ` Templin, Fred L
0 siblings, 1 reply; 10+ messages in thread
From: YOSHIFUJI Hideaki / 吉藤英明 @ 2007-11-08 14:26 UTC (permalink / raw)
To: Fred.L.Templin; +Cc: shemminger, netdev, yoshfuji
In article <39C363776A4E8C4A94691D2BD9D1C9A1029EDBF5@XCH-NW-7V2.nw.nos.boeing.com> (at Wed, 7 Nov 2007 11:12:47 -0800), "Templin, Fred L" <Fred.L.Templin@boeing.com> says:
> > > The goal was to avoid requiring changes to applications such as
> > > 'iproute2', i.e., the intention was for a standalone code
> > insertion point
> > > within the kernel itself. What do you suggest?
> >
> > Agreed, magic names are evil.
> >
> > Change iproute2 utilities, if it is more logical for administration.
>
> This being an experimental release, I would prefer to go
> forward with a standalone kernel solution for the first
> iteration then come back with the iproute2 changes at a
> later time. IMHO, we should only touch iproute2 once, and
> it should be an architected solution - not just a quick
> hack. For the short term, timeliness of interoperability testing
> with the other major OS's should be the highest priority, IMHO.
Hmm, what is missing from API POV?
Since even if you do not change iproute2 now, users may need
to change their configuration script twice anyway, we should
be careful.
--yoshfuji
^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [PATCH 04/05] ipv6: RFC4214 Support
2007-11-08 14:26 ` YOSHIFUJI Hideaki / 吉藤英明
@ 2007-11-08 21:01 ` Templin, Fred L
2007-11-08 23:30 ` David Miller
0 siblings, 1 reply; 10+ messages in thread
From: Templin, Fred L @ 2007-11-08 21:01 UTC (permalink / raw)
To: YOSHIFUJI Hideaki / 吉藤英明; +Cc: shemminger, netdev
> Hmm, what is missing from API POV?
This would have to be determined under a follow-on project (hopefully
with input from others) after we have gained operational experience.
> Since even if you do not change iproute2 now, users may need
> to change their configuration script twice anyway, we should
> be careful.
The unmodified iproute2 gives a basic API that is sufficient for now.
A more feature-rich API can be developed later, but the basic API
will remain in place such that no existing scripts would have to
change and new scripts could benefit from the new API.
Thanks - Fred
fred.l.templin@boeing.com
> --yoshfuji
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 04/05] ipv6: RFC4214 Support
2007-11-08 21:01 ` Templin, Fred L
@ 2007-11-08 23:30 ` David Miller
0 siblings, 0 replies; 10+ messages in thread
From: David Miller @ 2007-11-08 23:30 UTC (permalink / raw)
To: Fred.L.Templin; +Cc: yoshfuji, shemminger, netdev
From: "Templin, Fred L" <Fred.L.Templin@boeing.com>
Date: Thu, 8 Nov 2007 13:01:34 -0800
> > Hmm, what is missing from API POV?
>
> This would have to be determined under a follow-on project (hopefully
> with input from others) after we have gained operational experience.
I personally don't buy any of this desire to avoid iproute2
changes at this time.
This is never how we handle this kind of situation.
We add in the new feature, and add support to iproute2 in
parallel. If we screw it up we figure that out quickly
and fix things before it's been deployed for too long.
I suspect you simply want users to just be able to use the
new feature with only a kernel patch, but that's not an
appropriate reason to not do things correctly when submitting
a feature upstream.
Please use the new name in the kernel side changes and implement
iproute2 support for these ISATAP devices.
Thank you.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 04/05] ipv6: RFC4214 Support
2007-11-07 1:16 [PATCH 04/05] ipv6: RFC4214 Support Templin, Fred L
2007-11-07 16:16 ` Templin, Fred L
2007-11-07 18:36 ` YOSHIFUJI Hideaki / 吉藤英明
@ 2007-11-10 20:56 ` Andi Kleen
2 siblings, 0 replies; 10+ messages in thread
From: Andi Kleen @ 2007-11-10 20:56 UTC (permalink / raw)
To: Templin, Fred L; +Cc: netdev
"Templin, Fred L" <Fred.L.Templin@boeing.com> writes:
>
> +#if defined(CONFIG_IPV6_ISATAP)
> + /* ISATAP (RFC4214) - router address in daddr */
> + if (!strncmp(parms->name, "isatap", 6)) {
Modern distributions tend to have daemons to automatically rename
network interfaces using SIOCSIFNAME. Not sure they would touch
isatap*, but they or someone else might. I would be likely safer to
not base your user interface on the name only, but use a flag
or number somewhere else.
-Andi
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2007-11-10 20:56 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-07 1:16 [PATCH 04/05] ipv6: RFC4214 Support Templin, Fred L
2007-11-07 16:16 ` Templin, Fred L
2007-11-07 18:36 ` YOSHIFUJI Hideaki / 吉藤英明
2007-11-07 18:41 ` Templin, Fred L
2007-11-07 18:45 ` Stephen Hemminger
2007-11-07 19:12 ` Templin, Fred L
2007-11-08 14:26 ` YOSHIFUJI Hideaki / 吉藤英明
2007-11-08 21:01 ` Templin, Fred L
2007-11-08 23:30 ` David Miller
2007-11-10 20:56 ` Andi Kleen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox