Date: Thu, 19 Apr 2012 11:32:18 +0200 From: Svatopluk Kraus <onwahe@gmail.com> To: Attila Nagy <bra@fsn.hu> Cc: freebsd-net@freebsd.org Subject: Re: SO_BINDTODEVICE or equivalent? Message-ID: <CAFHCsPXxwoF_xzUZGn8xH_ynPUnthdzF17M%2BsTOeRZpmHgxxyQ@mail.gmail.com> In-Reply-To: <4F8FA591.4010503@fsn.hu> References: <4F8FA591.4010503@fsn.hu>
next in thread | previous in thread | raw e-mail | index | archive | help
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@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@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFHCsPXxwoF_xzUZGn8xH_ynPUnthdzF17M%2BsTOeRZpmHgxxyQ>
