Oliver Fromme <de-bsd-questions(at)de.FreeBSD.org> wrote:
> > also hab das problem noch weiter eingeschränkt. es gibt ein limit von
> > multicast group members. wie kann ich dieses limit erhöhen?
>
> Das Limit ist von der Hardware und dem zugehörigen Treiber
> abhängig und kann i.allg. nicht erhöht werden.
Wie kommst du darauf?
Wenn ein solches Limit existiert, dann muss der Treiber beim
Überschreiten eben alle Multicast-Pakete in Empfang nehmen und den
IP-Stack die passenden ausfiltern lassen.
Ich habe aber noch keinen Treiber gesehen, der ein solches Limit
hätte. Die meisten Chips haben einen Multicast-Hash-Filter.
Schlimmstenfalls sind bei dem alle Bits gesetzt, was auch wieder
dem Empfang aller Multicast-Pakete entspricht, aber man kann beliebig
viele Adressen zusammenhashen.
> Beim em(4) ist die Multicast-Adress-Tabelle 128 Einträge groß, wovon
> die ersten 15 besonders effizient implementiert sind, wenn
> ich den Treiber-Sourcecode richtig interpretiere (nur grob
> überflogen).
15 Einträge können direkt verglichen werden, darüber hinausgehende
wandern in einen Hash-Filter. Bei mehr als 128 Einträgen schaltet
der Treiber einfach dem Empfang aller Multicast-Frames frei. Ich
weiß nicht, was der Autor sich dabei gedacht hat, der Hash-Filter
hat 4096 Bits, aber was solls.
Ich weiß nicht, wo Ottos Limit herkommt, aber nicht von der Hardware
und nicht von den Netzwerktreibern.
-- Christian "naddy" Weisgerber naddy(at)mips.inka.de To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Wed 23 Nov 2005 - 15:59:25 CET