Subject: Multicast ethernet question
To: None <tech-net@NetBSD.ORG>
From: Dave Huang <khym@bga.com>
List: tech-net
Date: 11/02/1997 20:07:17
Hi folks, I've been working on a driver for the AMD MACE chip...
currently, the driver doesn't support multicast yet. What's the right
thing to do? Not set the IFF_MULTICAST flag, and return EINVAL for
SIOCADD/DELMULTI?

Also, how should I go about adding multicast support? The MACE has a
64-bit "logical address filter" register that's supposed to be for
multicast. It works by calculating the CRC of the destination ethernet
address (using the Ethernet FCS algorithm), and looking at the top 6 bits
of the result. If the corresponding bit in the logical address filter is
set, the chip signals that it's got a packet and passes it to the driver.
Otherwise, it just ignores it.

So, is that good enough for me, or do I have to then do my own comparison
and see if it exactly matches one of the interface's multicast addresses
before passing it on to ether_input()?

Name: Dave Huang     |   Mammal, mammal / their names are called /
INet: khym@bga.com   |   they raise a paw / the bat, the cat /
FurryMUCK: Dahan     |   dolphin and dog / koala bear and hog -- TMBG
Dahan: Hani G Y+C 22 Y++ L+++ W- C++ T++ A+ E+ S++ V++ F- Q+++ P+ B+ PA+ PL++