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 <[email protected]> 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 > _______________________________________________ > [email protected] mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "[email protected]" _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "[email protected]"
