Subject: Re: [RFC:] struct net_device_ops: Add function pointer to fill device specific ndisc information

From: YOSHIFUJI Hideaki <[email-masked]>
Date: Mon, 21 Jan 2013 21:32:53 +0900

Stefan Richter wrote:

>   b) RFC 2734 MCAP (Multicast Channel Allocation Protocol):  currently not
>      implemented; not sure if needed (I see a few big downsides to using
>      per-multicast-group channels); not sure if networking core support
>      would be needed for this

It is definitely needed because we need to listen on multicast group
for NDP, which might have already had its own channel.

MCAP sends "multicast group address", which is whole IP address.
In IP stack we only manages listening groups by special
"link-layer address" mapped by device specific transform function.
See net/ipv6/ndiscc:ndisc_mc_map() for IPv6.

I am proposing to extend MAC address to 16 bytes long so that we can
"map" whole IPv6 address into the "MAC".

On tx on fwnet, it can determine if the destination is multicast or not
by either by
- Checking protocol, and looking into protocol dependent multicast
  range
or
- Checking "EUI-64" group bit (here, we assume all node do not set it
  in its unique Id, and we map IPv6 multicast and IPv4 multicast in
  special way; e.g.
     ff00::/8  (which has "multicast bit" set)
     0100::/96 (which is also "multicast bit" set)

--yoshfuji