Programming interface MAC filter without enabling PROMISC on an interface from user space.

Bruce M. Simpson bms at FreeBSD.org
Mon Jan 14 09:13:17 PST 2008


Tom Judge wrote:
> Thanks for the response.  I have a quick grep of the src tree to find 
> an example of this being used and only found the following from 
> wpa_supplicant and I have a few questions:
>
>     * I am presuming that this will do what I want, am I correct?

Yes, it will attempt to add the given link layer multicast group to the 
ifnet's underlying device driver.
>
>     * If I was only ever to add the address to an interface an never 
> delete it would this cause any problems?  I.e. when lldpd ends, or is 
> restarted and tries to add the address again?

SIOCADDMULTI is very low level, no resource tracking is performed; I 
changed its semantics to only allow one userland opener so that 
in-kernel refcounting would work, as there is no per-process or 
per-client resource tracking -- so it's a really good idea to clean up 
after it.

>
>     * Alternatively is there a way to query the filter to ask what 
> addresses it is currently programmed for?

Nope, there is no userland or kernel API for that unless you hack up the 
driver.

cheers
BMS


More information about the freebsd-net mailing list