[Ns-developers] OLSR/AODV routing fails with mobility induced path changes
jabbar314 at gmail.com
Thu Dec 17 16:08:32 PST 2009
On Thu, Dec 17, 2009 at 2:31 AM, Mathieu Lacage <
mathieu.lacage at sophia.inria.fr> wrote:
> I did not try to run your script so this is a guess only: did you try to
> look at the tx queue of your wifi MAC and see if it is not full of data
> packets which makes it really hard for the olsr routing packets to reach
> the medium ? i.e. your routing packets are put at the end of the queue
> so, they have to wait until all data packets in front of them have been
> dropped so that they can get a chance to be transmitted.
We are only generating 1 packet/sec per flow. So at any node, the transmit
queue is being filled at a rate of 1 pkt/sec (or 4 pkts/sec if its the
forwarding node). So I doubt if we are filling the tx queue at the mac. But
we will still try what you recommended.
Also, I do have an update on the status of the simulations.
Like I mentioned we are seeing fewer than expected packets go through the
network. Further digging shows that we are receiving every packet that was
transmitted, its just that the nodes are not sending packets when routes
fail. Probably this is correct behaviour. We looked in to each flow to see
which flows are failing. It seems that OLSR does not figure out the route
between nodes 1 and 2 after node 2 goes out of the direct communication
range of 1. It does not figure out that it can route the packets via node 3.
HOWEVER, it does figure out the path from node 2 to node 1 (via node 3) on
some runs randomly. And in some runs, it will not figure out the route
between 2 and 1 either. So, after the mobility has ended, we see that either
4 or 5 out of the 6 flows work fine and only one or two flows stop..thereby
resulting in a PDR of 5/6 or 4/6.
Given the very low pkt rate, I did simple trace filtering using grep to find
out where the flows are stopping and at what time. E.g: cat
adhoc_olsr_mob_test.tr | grep -P "^t.+10.1.1.1 > 10.1.1.2.+Payload"
We found out that if we don't include static routing in the routing list,
things get better with AODV, but the simulation is very flaky. For the same
simulation, we get any where from 80% to 100% PDR to a simulation crash with
the following error.
assert failed. file=../src/internet-stack/arp-l3-protocol.cc, line=326,
cond="route != 0"
Thinking about it, the only thing random in the simulation is the traffic
start times that are staggered to avoid collisions.
Any ideas..... ?
> You could try to set the maximum queue size:
> Argh, I see that the DcaTxop class does not define the 'Queue'
> attribute. Try adding this in DcaTxop::GetTypeId:
> .AddAttribute ("Queue", "The transmission queue",
> PointerValue (),
> MakePointerAccessor (&DcaTxop::m_queue),
> MakePointerChecker<WifiMacQueue> ())
More information about the Ns-developers