[OLSR-users] How do you use OLSR within a custom application?
Roar Bjørgum Rotvik
Tue Jan 17 09:39:21 CET 2006
> Hi there,
> I am currently trying that is to route data on an ad hoc network.
> Once I have installed the protocol, how would I go about writing an
> application in JAVA (or any other language) that is to use OLSR (or any
> other routing protocol)?
Applications do not need to know of or use the routing protocol. OLSRD
maintains the in kernel routing table (inside the operating system) and
it is this routing table that is used by the OS to route packets.
A very short description of OLSR routing:
So when you start OLSRD on each ad hoc node and they are connected by IP
(check with ping), OLSRD on each node will start to broadcast HELLO
packets (from the OLSR standard). When a OLSR node "hears" another OLSR
node (both ways) they will add a route entry to each other.
Each node also shares information about what other nodes it can hear, so
that the routing information also covers nodes many hops away.
Any application wanting to send to the other node may do so after the
routing is established by OLSRD, but the application does not need to
know anything about the routing protocol.
> For instance, do I send and receive the packets/data from within my
> appliaction to port 654? And do I also listen on this same port? Or is
> there another allocated port?
Your application may send/receive on any port for the application
spesific traffic, but your application does not need to speak to OLSRD
OLSR is allocated UDP port 698 by the way, but as long as your
application does not implement the OLSR protocol, it should not
communicate on this port to the OLSRD implementation :)
> Also, once I have installed OLSR, is there a simple way to test if the
> protocol is working?
Start OLSRD on two machines with IP connection and check by ping that
the connection works and double check that the other machine IP address
exist in the routing table ("route -n" on Linux).
Add more nodes and see that they also appear in the routing table after
> A hint or two would be greatly appreciated.
I cannot tell you any more spesific thing unless you tries to explain
better what you are trying to do?
- Do you just want routing in an ad hoc network so your application can
work amongst the nodes?
- Do you need to access routing information from your application
(normally you would not need this just for communication between your
application instances in different nodes)?
- Do you want to create a OLSRD plugin that may "flood" information in
the ad hoc network (probably not)?
Roar Bjørgum Rotvik
More information about the Olsr-users