Re: Maximum MAC multicast filters? --clarified--



In article <1128618718.388739.35130@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>,
googlegroups@xxxxxxxxxx wrote:
>
> I want to subscribe to lots of layer 3 multicast groups.
>
> With each group subscription, my OS instructs my NIC to pass the
> corresponding layer 2 address.
>
> As I subscribe to more and more layer 3 multicast groups, the filter
> table in my NIC is keeping track of more and more layer 2 addresses
> which should be handed up the stack.
>
> I can't imagine the NIC can keep track of all 2^23 addresses in the
> range:
> 01:00:5e:00:00:00 - 01:00:5e:7f:ff:ff
>
> So then, what is the practical limit?
>

It depends on the particular NIC. Some use a "perfect" multicast filter,
i.e., they include a full 48 bit comparator for some number of
addresses. (The comparators can be set for unicast or multicast
addresses; it makes no difference.) Practical end-station NICs may have
10-16 or so (or maybe more, these days).

As noted in another post, many NICs use an imperfect hash to filter
multicasts, typically hashing the 48 bits to 6 (and thus providing 64
multicast "buckets"). Of course, as you subscribe to more and more
multicast groups, the buckets all tend to open up. Once all 64 are
opened, you are effectively in a full "promiscuous multicast" (but not
promiscuous unicast) mode. Even with fewer than 64 opened, if one of
your desired multicasts happens to hash to the same bucket as some
heavily-trafficked, undesired multicast, your NIC will have to receive
all of those frames and perform additional filtering in software. (BTW,
this additional filtering is at Layer *2*, not Layer 3 as implied in an
a previous reply-post.)

>
> But unwanted traffic leakage may not be nearly as dramatic as fallback
> into full-blown promiscuous mode. -- Especially because I will be
> spacing my groups to eliminate unwanted collisions at the MAC layer.
>

Unless you know the hash function used by that particular NIC, you
cannot "space" your groups to prevent hash collisions. Usually, the hash
is some number of bits of the CRC shift-register, as it appears at the
point where the 48-bit DA has been received.


--
Rich Seifert Networks and Communications Consulting
21885 Bear Creek Way
(408) 395-5700 Los Gatos, CA 95033
(408) 228-0803 FAX

Send replies to: usenet at richseifert dot com
.



Relevant Pages

  • Re: Maximum MAC multicast filters? --clarified--
    ... >> There are 2^23 MAC layer multicast addresses. ... I want to subscribe to lots of layer 3 multicast groups. ...
    (comp.dcom.lans.ethernet)
  • Re: Socket Bind question
    ... To get multicast, many cards filter out multicast in hardware, simply ... vendor; explain ... must one of the NICs, thus the other one blocks any multicast receipts. ...
    (microsoft.public.vc.mfc)
  • Re: Socket Bind question
    ... must one of the NICs, thus the other one blocks any multicast receipts. ... connected to a different network. ... My understanding of Bind was that if you passed NULL for the IP address ...
    (microsoft.public.vc.mfc)
  • Re: Socket Bind question
    ... Note that multicasting requires that you enable the multicast group, ... if the NICs are on separate cards (as opposed to multiple ... stack, and you can pursue it in one of the network groups, or report it as a bug. ... My understanding of Bind was that if you passed NULL for the IP address then ...
    (microsoft.public.vc.mfc)
  • Multicasting can receive on one NIC - .NET / XP
    ... Windows seems to only allow itself to enroll in a multicast group once, ... For example, say I have three NICs on a machine (separate NICs, not just ...
    (microsoft.public.dotnet.languages.csharp)