Hi, IPv6 over ARCnet (RFC2497) support, IPv6 part. Patch is against 2.5.69 and depends on the part 1, driver part. I believe that this change is not harmful at all. However, honestly speaking, since I don't have ARCnet hardware, I've never tested... NOTE: I did not change MTU size while RFC says default MTU is 9072. Index: include/net/if_inet6.h =================================================================== RCS file: /cvsroot/usagi/usagi-backport/linux25/include/net/if_inet6.h,v retrieving revision 1.1.1.5 diff -u -r1.1.1.5 if_inet6.h --- include/net/if_inet6.h 6 May 2003 12:44:09 -0000 1.1.1.5 +++ include/net/if_inet6.h 15 May 2003 18:41:24 -0000 @@ -264,5 +264,10 @@ buf[5]=0x00; } } + +static inline void ipv6_arcnet_mc_map(const struct in6_addr *addr, char *buf) +{ + buf[0] = 0x00; +} #endif #endif Index: net/ipv6/addrconf.c =================================================================== RCS file: /cvsroot/usagi/usagi-backport/linux25/net/ipv6/addrconf.c,v retrieving revision 1.1.1.13 diff -u -r1.1.1.13 addrconf.c --- net/ipv6/addrconf.c 10 May 2003 15:49:16 -0000 1.1.1.13 +++ net/ipv6/addrconf.c 15 May 2003 18:41:27 -0000 @@ -32,6 +32,7 @@ * support. * Yuji SEKIYA @USAGI : Don't assign a same IPv6 * address on a same interface. + * YOSHIFUJI Hideaki @USAGI : ARCnet support */ #include <linux/config.h> @@ -44,6 +45,7 @@ #include <linux/in6.h> #include <linux/netdevice.h> #include <linux/if_arp.h> +#include <linux/if_arcnet.h> #include <linux/route.h> #include <linux/inetdevice.h> #include <linux/init.h> @@ -1061,6 +1063,13 @@ eui[4] = 0xFE; eui[0] ^= 2; return 0; + case ARPHRD_ARCNET: + /* XXX: inherit EUI-64 fro mother interface -- yoshfuji */ + if (dev->addr_len != ARCNET_ALEN) + return -1; + memset(eui, 0, 7); + eui[7] = *(u8*)dev->dev_addr; + return 0; } return -1; } @@ -1732,7 +1741,8 @@ if ((dev->type != ARPHRD_ETHER) && (dev->type != ARPHRD_FDDI) && - (dev->type != ARPHRD_IEEE802_TR)) { + (dev->type != ARPHRD_IEEE802_TR) && + (dev->type != ARPHRD_ARCNET)) { /* Alas, we support only Ethernet autoconfiguration. */ return; } @@ -2715,6 +2725,7 @@ case ARPHRD_ETHER: case ARPHRD_FDDI: case ARPHRD_IEEE802_TR: + case ARPHRD_ARCNET: addrconf_dev_config(dev); break; default:; Index: net/ipv6/ndisc.c =================================================================== RCS file: /cvsroot/usagi/usagi-backport/linux25/net/ipv6/ndisc.c,v retrieving revision 1.1.1.12 diff -u -r1.1.1.12 ndisc.c --- net/ipv6/ndisc.c 10 May 2003 15:49:16 -0000 1.1.1.12 +++ net/ipv6/ndisc.c 15 May 2003 18:41:27 -0000 @@ -232,6 +232,9 @@ case ARPHRD_IEEE802_TR: ipv6_tr_mc_map(addr,buf); return 0; + case ARPHRD_ARCNET: + ipv6_arcnet_mc_map(addr, buf); + return 0; default: if (dir) { memcpy(buf, dev->broadcast, dev->addr_len); - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html