Semantics of SIOCDELMULTI from an Ethernet Driver Perspective
Am I correct that it is the following:
1. Delete any multicast addresses programmed in HW which are not present in ifp->if_multiaddrs.
2. Update the multicast addresses to be accepted by HW with those in ifp->if_multiaddrs
For SIOCADDMULTI, we skip #1.
In either case ifp->if_multiaddrs contains the multicast addresses that need to be accepted by the interface. This means we can clear all the multicast addresses programmed earlier and replace them with the ones in ifp->if_multiaddrs for both SIOCDELMULTI and SIOCADDMULTI.