[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
trouble.
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
well.
- Andreas
More information about the Olsr-dev
mailing list