Date: Thu, 19 Feb 2004 10:54:00 +0100 From: Andreas T <andreto@olsr.org> To: freebsd-net@freebsd.org Subject: Binding sockets to devices in FreeBSD Message-ID: <403487B8.901@olsr.org>
next in thread | raw e-mail | index | archive | help
Hi all, I am developing an implementation of the Optimized LinkState Routing protocol(RFC3626) for Linux(www.olsr.org). OLSR is a routing protocol for mobile, multihop, wireless ad-hoc networks. I would really like to have my code compile on FreeBSD - but there is one major issue. OLSR sends control traffic broadcasted(IPv4) or multicasted(IPv6) on a pr.interface basis. That means that a node running OLSR on two interfaces a and b, would not always broadcast the same content in messages sent on a and b. This works fine using IPv4 and broadcast as long as the interfaces uses different broadcast addresses - but as soon as two interfaces is set up with the same broadcastaddress(or as soon as one uses IPv6 with the same multicastgroup) any message (sent on the broadcastsocket) will be transmitted on both interfaces. I hope this made some sense :) Bottom line is that one has to be able to control on which interface packets are sent. To do this in Linux i use the SO_BINDTODEVICE flag(with setsockopt(2)). That way I can have one socket for each interface OLSR is to use regradless of destinationaddress. In FreeBSD there is no SO_BINDTODEVICE or equalivant as far as I can see. To me it seems like BPF could provide the functioning I need. Is this so? Can BPF in some way help me control on which interface packets are transmitted? If so I would really appreciate some (pseudo or real)code examples to get me started or some links to such material - as I am totally new to the BPF interface(and the concept). If BPF is not the way to go I would appreciate any help in finding a way of doing this in FreeBSD. I could ofcause try to figure this out by myself - but as FreeBSD porting is not too high prioritized for now I figured I'd rather be lazy and ask you experts :) Thanks! regards, Andreas T -- Andreas Tønnesen(andreas@olsr.org) UniK University Graduation Center University of Oslo http://www.olsr.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?403487B8.901>