SO_BINDTODEVICE or equivalent?

Svatopluk Kraus onwahe at gmail.com
Thu Apr 19 09:32:21 UTC 2012


Hi,

Use IP_RECVIF option.

For IP_SENDIF look at
http://lists.freebsd.org/pipermail/freebsd-net/2007-March/013510.html
I used the patch on my embedded FreeBSD 9.0 boxes and it works fine. I
modificated it slightly to match 9.0.

Svata

On Thu, Apr 19, 2012 at 7:41 AM, Attila Nagy <bra at fsn.hu> wrote:
>
>   Hi,
>   I want to solve the classic problem of a DHCP server: listening for
>   broadcast UDP packets and figuring out what interface a packet has
>   come in.
>   The Linux solution is SO_BINDTODEVICE, which according to socket(7):
>   SO_BINDTODEVICE
>          Bind this socket to a particular device like "eth0", as
>          specified in the passed interface name. If the name is an empty
>          string or the option length is zero, the socket device binding
>          is removed. The passed option is a variable-length
>          null-terminated interface name string with the maximum size of
>          IFNAMSIZ. If a socket is bound to an interface, only packets
>          received from that particular interface are processed by the
>          socket. Note that this only works for some socket types,
>          particularly AF_INET sockets. It is not supported for packet
>          sockets (use normal [1]bind(2) there).
>
>   This makes it possible to listen on selected interfaces for
>   (broadcast) packets. FreeBSD currently doesn't implement this feature.
>   Any chances that somebody will do this?
>   What alternatives would you recommend? Raw packet access (like BPF and
>   RAW sockets) finally make the application to do more -mainly useless-
>   work.
>   Are there any other solutions, which doesn't require additional packet
>   parsing?
>   Thanks,
>
> References
>
>   1. http://linux.die.net/man/2/bind
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"


More information about the freebsd-net mailing list