Just a question. Why should I dig the code and the standard for you ?
Is my time so less valuable than your ?
Obviously not. It's just that I am less lazy, more curious and definitely more stupid (otherwise I'd simply reply to go and check the standard).
Multicast at L2 in Ethernet.
- mac48address.h has more hints:
/**
* \param address base IPv4 address
* \returns a multicast address
*/
static Mac48Address GetMulticast (Ipv4Address address);
/**
* \brief Get multicast address from IPv6 address.
* \param address base IPv6 address
* \returns a multicast address
*/
static Mac48Address GetMulticast (Ipv6Address address);
/**
* \returns the multicast prefix (01:00:5e:00:00:00).
*/
static Mac48Address GetMulticastPrefix (void);
/**
* \brief Get the multicast prefix for IPv6 (33:33:00:00:00:00).
* \returns a multicast address.
*/
static Mac48Address GetMulticast6Prefix (void);
- However, a fast check in CsmaNetDevice::Receive can tell you that any "multicast" packet will be received by the NIC, no matter what the address is.
In other terms, there is no L2 filtering of the incoming "multicast" packets. Indeed, the standard does not state if and how the L2 filtering must be implemented, or if the multicast filtering must be done at L3.
As you can see, if you plan to manage the multicast packets at L2, you'll have to modify the actual csma NetDevice code. How you modify it will tell you if you can modify the groups at run time or not.
T.