Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Dec 1995 15:38:13 +0000 (GMT)
From:      Paul Richards <p.richards@elsevier.co.uk>
To:        luigi@labinfo.iet.unipi.it (Luigi Rizzo)
Cc:        hackers@freebsd.org, paul@freefall.FreeBSD.org
Subject:   Re: if_lnc and multicast
Message-ID:  <199512071538.PAA10400@cadair.elsevier.co.uk>
In-Reply-To: <199512071204.NAA19486@labinfo.iet.unipi.it> from "Luigi Rizzo" at Dec 7, 95 01:04:00 pm

next in thread | previous in thread | raw e-mail | index | archive | help
In reply to Luigi Rizzo who said
> 
> All the hooks seem to be there, the only missing bit of information is
> how to compute the bit to be set in the multicast mask (ladrf[])
> from within lnc_setladrf()

Yeah, that's all that's missing.

> A quick hack could be to set the if to receive all multicasts when
> sc->arpcom.ac_multicnt>0 (i.e. at least one address is in use).
> However, this is undesirable for performance reasons; moreover, as
> soon as the default multicast route is added (224.0.0.0), the
> counter bumps to 1 and thus would effectively cause the interface
> to be in promiscuous mode.

Nah. Only needs about 10 lines written to do it right.

> 
> Do you have access to the docs of the LANCE chip, which should report
> the hashing algorithm used in the chip ?
> 

I have but they're home and I'm away during the week. I can look it
up at the weekend, though if I do that I might finish the job
myself :-)

In the meantime, look at Matt's if_le.c driver (le_multi_op) which does
the same thing since the Depca is Lance based. The coding style is a
little different but you can see the algorithm used to create the
mask.

Let me know if you finish this off.

-- 
  Paul Richards. Originative Solutions Ltd.
  Internet: paul@netcraft.co.uk, http://www.netcraft.co.uk
  Phone: 0370 462071 (Mobile), +44 1225 447500 (work)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199512071538.PAA10400>