[olsr-dev] olsrd 0.5 and libnet

Andreas T√łnnesen (spam-protected)
Wed Jan 4 19:57:05 CET 2006

Hi Thomas, all,

Ok, here is my first idea for 0.5. (This is not a very interesting
one, but rather a technical issue)
I think we should start using some external cross-platform library such
as libnet(http://www.packetfactory.net/libnet/). This will free us of
two problems.
* Multiple interfaces.
   As of now this only works under Linux(using SO_BINDTODEVICE) or under
   the libnet version of the FreeBSD build. If we start using libnet for
   all platforms then we can use the bind to device mechanisms
   available in libnet and rid us of theese problems.
* Missmatched IPv6 IP header/OLSR header addresses
   As of now we have no control of what IPv6 address is put in the
   IP header of OLSR packets. This can lead to problems as discussed
   on this list in december. olsrd uses the IP from the IP header upon
   receiving packets, and if this one is not concistent with the address
   used by the remote olsrd for the transmitting interface then we are in

But before I start any hacking I'd like to know a few things, if there
are anyone with experience on theese issues here:
* Are there any good alternatives to libnet?
* How cross-platfromish is libnet(1.[0|1])? I could not find very much
   documentation on this. The PORTS file in the libnet source
   package does not say very much...
* How well maintained is libnet? To me it seems like there has not
   happened a lot on the libnet project page/code lately. The latest RC
   was uploaded a year ago. Is the library more or less finalized?
* Should we use the 1.0 or 1.1 series? My take is to go for 1.1

The best thing would be if libnet is suported on all platforms that we
support. Then we can integrate libnet usage to core-olsrd. If not we
should consider a per-platform approach.
This makes us dependent on an external library - but IMO it makes life
much easier. But feel free to air any considerations regarding this as

- Andreas

More information about the Olsr-dev mailing list