[openib-general] Multicast address aliasing in IPoIB

Hal Rosenstock halr at voltaire.com
Mon Sep 6 09:56:36 PDT 2004


On Sun, 2004-09-05 at 03:47, Michael S. Tsirkin wrote:
> Hello!
> Quoting Dror Goldenberg (gdror at mellanox.co.il) "[openib-general] Multicast address aliasing in IPoIB":
> > IPoIB defines no aliasing in the mapping of IP multicast address into IPoIB HW
> > addresses.
> > In Ethernet, there is an aliasing, i.e. more than one IP address can map into
> > the same
> > Ethernet multicast MAC address.
> >  
> > In short: IP to Ether takes 24 LSbits from the IP address
> >              IP to IB takes 28 LSbits from the IP address (which are
> >              essentially the whole
> >              IP address, the remaining 4 bits are "class D prefix").
> >  
> > The problem is that the current IPoIB driver interfaces the Linux kernel as if
> > it were an Ethernet driver.
> > Therefore, the IP layer will not notify the net_device when
> > a new MC
> > address is added if it maps to the same MAC address. It will rather increment
> > the
> > reference count of the MAC address (net_device->mc_list->dmi_user) and won't
> > call
> > net_device->set_multicast_list().
> > Therefore, if a user just adds itself to an IP MC group (setsockopt with
> > IP_ADD_MEMBERSHIP), then if the IPoIB driver already has this Ether MAC address
> > in its filter because of a previous registration to another IP MC group, then
> > the IPoIB driver
> > will not get any notification, and the user will not get registered to the MCG.
> >  
> > I was wondering what should be the solution for that in the current kernels
> > (gen1) and
> > in future kernels (gen2).
> >
> 
> 
> What about registering for all possible IB multicast groups, up front?
> There are 2^(28-24)=16 options, so you end up being registered in
> 16 multicast groups, which is not that huge an overhead.

There are a lot of groups and many of them are transient groups.
Many of these are for data not just control (so the packet rates
are higher). 

> Upper layers of the IP protocol will filter the right packets
> as they do for ethernet.
> 
> This is essentially what
> we do with IP over IB anyway - emulating broadcast with multicast.

That is the primary disadvantage of broadcast: the fact that unwanted
packets need filtering. There is much less filtering (CPU waste) which
is needed for true multicast as only the groups which share the same
link multicast address and are not desired need to be filtered. Ethernet
uses one scheme to share multicast MAC addresses. That is the one which
the RFC describes. IB multicast groups (MGIDs) can share MLIDs, but only
when the group characteristics are the same.

-- Hal

> 
> MST
> _______________________________________________
> openib-general mailing list
> openib-general at openib.org
> http://openib.org/mailman/listinfo/openib-general
> 
> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general




More information about the general mailing list