ARCnet multicast support (for PROMISC-capable , i.e. COM20020 cards).

David Woodhouse (dwmw2@cam.ac.uk)
Mon, 05 Jan 1998 17:15:30 +0000


This is a multipart MIME message.

--==_Exmh_-15440012240
Content-Type: text/plain; charset=us-ascii

I was just looking through some networking documentation, and noticed that
ARCnet was listed as not supporting multicast at all. Here's a completely
untested fix, as I don't have access to such cards any more. It's so simple
that if I've screwed it up I should probably go shoot myself anyway :)

--==_Exmh_-15440012240
Content-Type: text/plain ; name="arcnet-multicast.diff"; charset=us-ascii
Content-Description: arcnet-multicast.diff
Content-Disposition: attachment; filename="arcnet-multicast.diff"

--- linux/drivers/net/com20020.c.prearcmulti Sat Nov 29 18:33:19 1997
+++ linux/drivers/net/com20020.c Mon Jan 5 17:07:41 1998
@@ -1,4 +1,4 @@
-/* $Id: com20020.c,v 1.6 1997/11/09 11:04:58 mj Exp $
+/* $Id: com20020.c,v 1.2 1998/01/05 17:07:41 dwmw2 Exp $

Written 1997 by David Woodhouse <dwmw2@cam.ac.uk>

@@ -215,7 +215,7 @@


static const char *version =
- "com20020.c: v3.00 97/11/09 Avery Pennarun <apenwarr@bond.net> et al.\n";
+ "com20020.c: v3.01 97/11/09 Avery Pennarun <apenwarr@bond.net> et al.\n";

/****************************************************************************
* *
@@ -516,7 +516,6 @@
* num_addrs == 0 Normal mode, clear multicast list
* num_addrs > 0 Multicast mode, receive normal and MC packets, and do
* best-effort filtering.
- * FIX ME - do multicast stuff, not just promiscuous.
*/
static void
arc20020_set_mc_list(struct device *dev)
@@ -524,8 +523,11 @@
struct arcnet_local *lp=dev->priv;
int ioaddr=dev->base_addr;

- if ((dev->flags & IFF_PROMISC) && (dev->flags & IFF_UP))
+ if (((dev->mc_count) || dev->flags & (IFF_PROMISC | IFF_ALLMULTI)) &&
+ (dev->flags & IFF_UP))
{ /* Enable promiscuous mode */
+ dev->flags |= IFF_PROMISC;
+
if (!(lp->setup & PROMISCflag))
BUGMSG(D_NORMAL, "Setting promiscuous flag...\n");
REGSETUP;
--- linux/Documentation/networking/multicast.txt.prearcmulti Mon Jan 5 16:47:45 1998
+++ linux/Documentation/networking/multicast.txt Mon Jan 5 17:04:05 1998
@@ -22,7 +22,9 @@
3c59x YES YES YES Software
ac3200 YES YES YES Hardware
apricot YES PROMISC YES Hardware
-arcnet NO NO NO N/A
+arcnet:
+ 90xx chipset NO NO NO N/A
+ 2002x chipset PROMISC PROMISC YES Software
at1700 PROMISC PROMISC YES Software
atp PROMISC PROMISC YES Software
cs89x0 YES YES YES Software

--==_Exmh_-15440012240
Content-Type: text/plain; charset=us-ascii

---- ---- ----
David Woodhouse, Robinson College, CB3 9AN, England. (+44) 0976 658355
dwmw2@cam.ac.uk http://dwmw2.robinson.cam.ac.uk
finger pgp@dwmw2.robinson.cam.ac.uk for PGP key.

--==_Exmh_-15440012240--