Re: multicast: same port, different IP address?

From: Bill Fink
Date: Thu Apr 09 2009 - 01:50:32 EST


On Wed, 08 Apr 2009, Jeremy Jackson wrote:

> On Wed, 2009-04-08 at 13:18 -0500, Matt Garman wrote:
> > On Wed, Apr 8, 2009 at 12:55 PM, Jeremy Jackson <jerj@xxxxxxxxxxxx> wrote:
> > > On Wed, 2009-04-08 at 12:41 -0500, Matt Garman wrote:
>
> > >> The latter case is what we need. We are basically already using the
> > >> former, but since all messages aren't required at all sites, we're
> > >> trying to reduce network load. (We have lots of message types and
> > >> very high message volume.)
> > >
> > > To conserve resources, you should consider the choice of multicast
> > > addresses you use. You will want to choose them so that all your
> > > hardware, switches, routers, NICs, can use hardware filtering. Various
> > > NICs have different hardware multicast filter types/sizes, so I guess
> > > you'd have to consult the driver sources, but hardware filtering avoids
> > > interrupts for packets a machine isn't interested in, so it's worth
> > > while.
>
> > We're using all Intel server NICs on our machines (e1000/igb driver).
> > Anyone know offhand what the filtering capabilities are? :) Reducing
> > interrupts is possibly worth pursuing.
>
> I can't say exactly, but I'd guess "good". But the devil is in the
> details, DEC tulip used hardware hash, but also had a small number of
> "perfect" address filters. The goal there would be to keep the number
> of MACs small, to fit in the "perfect" filters, or space the addresses
> to not collide in the same hash bucket.

Not only is the number of multicast addresses a possible issue, to
avoid overflowing the NIC's hardware address filters and thus avoid
the NIC having to switch to allmulti or promiscuous mode, but care
should also be given to the specific IP multicast addresses chosen.
You should avoid IP multicast addresses that would map to the same
Ethernet multicast addresses as some commonly used IP multicast
addresses. For example, 239.0.0.1 maps to the same Ethernet multicast
address as 224.0.0.1, which is the All Hosts IP multicast group.

More details and other guidelines for selection of IP multicast
addresses can be found at:

http://www.29west.com/docs/THPM/multicast-address-assignment.html

And some commonly used IP multicast addresses are given in the
following Wikipedia page:

http://en.wikipedia.org/wiki/Multicast_address

-Bill



> > On the other hand... how much filtering is done by the switch/router,
> > and how much is done by the NIC? I'm guessing it's all dependent on
> > the capabilities of the hardware itself?
>
> Some (possibly older) switches could do simple flooding only (ie treat
> multicast like broadcast). Most managed switches would let you enable
> IGMP snooping to do real multicast (only send to subscribed ports. Then
> there's configuring routers for multicast forwarding...
--
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html