| From: |
| YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> |
| To: |
| jgarzik@pobox.com, davem@redhat.com, kuznet@ms2.inr.ac.ru |
| Subject: |
| [PATCH] IPV6: ARCnet IPv6 support (1/2) Driver |
| Date: |
| Fri, 16 May 2003 04:14:06 +0900 (JST) |
| Cc: |
| linux-net@vger.kernel.org, usagi@linux-ipv6.org |
Hi,
IPv6 over ARCnet (RFC2497) support, driver part.
Patch is against 2.5.69.
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/linux/if_arcnet.h
===================================================================
RCS file: /cvsroot/usagi/usagi-backport/linux25/include/linux/if_arcnet.h,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 if_arcnet.h
--- include/linux/if_arcnet.h 7 Oct 2002 10:22:49 -0000 1.1.1.1
+++ include/linux/if_arcnet.h 15 May 2003 18:41:20 -0000
@@ -25,6 +25,7 @@
/* RFC1201 Protocol ID's */
#define ARC_P_IP 212 /* 0xD4 */
+#define ARC_P_IPV6 196 /* 0xC4: RFC2497 */
#define ARC_P_ARP 213 /* 0xD5 */
#define ARC_P_RARP 214 /* 0xD6 */
#define ARC_P_IPX 250 /* 0xFA */
@@ -44,6 +45,9 @@
#define ARC_P_POWERLAN_BEACON2 243 /* 0xF3 */
#define ARC_P_LANSOFT 251 /* 0xFB - what is this? */
#define ARC_P_ATALK 0xDD
+
+/* Hardware address length */
+#define ARCNET_ALEN 1
/*
* The RFC1201-specific components of an arcnet packet header.
Index: drivers/net/arcnet/arcnet.c
===================================================================
RCS file: /cvsroot/usagi/usagi-backport/linux25/drivers/net/arcnet/arcnet.c,v
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 arcnet.c
--- drivers/net/arcnet/arcnet.c 14 Apr 2003 04:32:39 -0000 1.1.1.2
+++ drivers/net/arcnet/arcnet.c 15 May 2003 18:41:26 -0000
@@ -340,7 +340,7 @@
dev->hard_header_len = sizeof(struct archdr);
dev->mtu = choose_mtu();
- dev->addr_len = 1;
+ dev->addr_len = ARCNET_ALEN;
dev->tx_queue_len = 30;
dev->broadcast[0] = 0x00; /* for us, broadcasts are address 0 */
dev->watchdog_timeo = TX_TIMEOUT;
Index: drivers/net/arcnet/rfc1201.c
===================================================================
RCS file: /cvsroot/usagi/usagi-backport/linux25/drivers/net/arcnet/rfc1201.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 rfc1201.c
--- drivers/net/arcnet/rfc1201.c 7 Oct 2002 10:21:43 -0000 1.1.1.1
+++ drivers/net/arcnet/rfc1201.c 15 May 2003 18:41:26 -0000
@@ -56,6 +56,7 @@
void __init arcnet_rfc1201_init(void)
{
arc_proto_map[ARC_P_IP]
+ = arc_proto_map[ARC_P_IPV6]
= arc_proto_map[ARC_P_ARP]
= arc_proto_map[ARC_P_RARP]
= arc_proto_map[ARC_P_IPX]
@@ -114,6 +115,8 @@
switch (soft->proto) {
case ARC_P_IP:
return htons(ETH_P_IP);
+ case ARC_P_IPV6:
+ return htons(ETH_P_IPV6);
case ARC_P_ARP:
return htons(ETH_P_ARP);
case ARC_P_RARP:
@@ -388,6 +391,9 @@
switch (type) {
case ETH_P_IP:
soft->proto = ARC_P_IP;
+ break;
+ case ETH_P_IPV6:
+ soft->proto = ARC_P_IPV6;
break;
case ETH_P_ARP:
soft->proto = ARC_P_ARP;
--
Hideaki YOSHIFUJI @ USAGI Project <yoshfuji@linux-ipv6.org>
GPG FP: 9022 65EB 1ECF 3AD1 0BDF 80D8 4807 F894 E062 0EEA
-
To unsubscribe from this list: 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