[olsr-dev] OLSRD Basic Multicast Plugin

spoggle (spam-protected)
Mon May 15 11:20:26 CEST 2006

Thanks for your work!

So it looks like you're using the CRC-16 to index a two-bit entry,
this is very memory efficient, but it would seem to me that the CRC-16
is quite a bit of overhead, plus is dependent upon packet size.  Have
you had any issues with collisions?  With a worst case 6 second
timeout, it would seem to me that your chances are pretty good under
load.  It seems you also have to run the CRC twice on forwarded
packets, once to check the received packet against history, and the
once on the transmitted packet (because you've modified the TTL).

In a previous life we implemented a very similar thing but used the IP
address, the group address, and the IP ID to identify packets.  This
has the advantage of being really really hard to have a collision
(would require a wrap-around of the ID on a single stream), sucked up
memory, and only required that we run the calculation once on a
forwarded packet (since changing TTL had no effect on the criteria we
used to determine the history of the packet).

For performance I think the IP info is superior (and could easily be
retrofitted into your code to test), if you're memory constrained your
method nicely copes.

I'm concerned that you're using a thread to do the packet capturing
and forwarding in a thread in the routing daemon.  Someone (Andreas?)
took threading out of olsrd (look in the CHANGELOG), does anyone know
if the reason was pure portability, or were there design issues with

I guess I'd like to see the capture and forwarding handled outside of
the routing daemon, preferably in kernel.

Out of curiosity, have you benchmarked your code?  I suppose there
would be interest in knowing what the overhead and throughput
difference is between unicast and multicast...

thanks again for your work!

dave c

On 5/14/06, Andreas T√łnnesen <(spam-protected)> wrote:
> This plugin is now part of main olsrd and lives under lib/bmf.
> sourceforge has had some cvs problems as of lately so if anybody
> experiences problems updating/checking out/building please let us know.
> And thanks for sharing this cool plugin Erik!
> - Andreas
> > Hello All,
> >
> > I am proud to present you a basic multicast forwarding plugin
> > for OLSR: BMF. BMF was developed at Thales Communication,
> > Huizen, Netherlands.
> >
> > The Basic Multicast Forwarding Plugin floods IP-multicast and
> > IP-local-broadcast traffic over an OLSRD network. It uses the
> > Multi-Point Relays (MPRs) as identified by the OLSR protocol
> > to optimize the flooding of multicast and local broadcast packets
> > to all the nodes in the network. To prevent broadcast storms, a
> > history of packets is kept; only packets that have not been seen
> > in the past 3-6 seconds are forwarded.
> >
> > To build and use the plugin you need at least OLSRD version 0.4.10.
> >
> > You may get a copy of the source code on:
> >
> > http://home.tiscali.nl/~levab001/olsr-bmf.tar.gz
> >
> > In due time I will have a sourceforge.net project in which I will
> > do maintenance of the code.
> >
> > Here is how to install it:
> >
> > Download the above olsr-bmf.tar.gz file into your OLSRD base install
> > directory.
> >
> > Change directory (cd) to your OLSRD base install directory.
> >
> > At the command prompt, type:
> >
> >   tar -zxvf ./olsr-bmf.tar.gz
> >
> > then type:
> >
> >   make build_all
> >
> > followed by:
> >
> >   make install_all
> >
> > Next, read the readme file:
> >
> >   more ./lib/bmf/README_BMF.txt
> >
> > Have fun with it!
> > Erik Tromp
> >
> > _______________________________________________
> > olsr-dev mailing list
> > (spam-protected)
> > https://www.olsr.org/mailman/listinfo/olsr-dev
> >
> _______________________________________________
> olsr-dev mailing list
> (spam-protected)
> https://www.olsr.org/mailman/listinfo/olsr-dev

More information about the Olsr-dev mailing list