Amar, Your explanation is not clear and not sure if you are messing up with the codes without knowing what you like to achieve.
1. Create a minimalistic scenario. 2. Enable Hello Packets. [Do not touch aodv.cc, it is controlled by a flag in aodv.h, comment out "#define AODV_LINK_LAYER_DETECTION" in aodv.h] 3. Observe the trace file if it is operating correctly. 4. If it is not, you need to provide clear details on -your scenario of interest, -what is the topology -its configuration/setup/parameters, -the changes done in the code, -what you observed in trace file, -what you are expecting -what you think is the next way forward to solve the bottle neck you are facing. Good Luck. rgds Saravanan K On Fri, Feb 8, 2013 at 5:25 AM, AmarNath Patra <amarnath.pa...@gmail.com>wrote: > > Hello Everyone, > > In the existing AODV code, HELLO is disabled. I am able to enable it (by > commenting '#ifndef AODV_LINK_LAYER_DETECTION' and '#endif' in aodv.cc). > The problem is that after enabling, all the nodes in the network perform > the hello process. > But,according to the rfc3561, "*A node SHOULD only use hello messages if it > is part of an active route.*" > Please help me to implement this feature (of selective HELLO) in AODV. > > By the way, is the implementation of hello process in aodv in ns2.34 * > incorrect*? > > I tried to implement this feature in aodv.cc as below: > > In the function: HelloTimer::handle(Event*), I put the statement: > agent->sendHello(); inside the condition:* if(agent->rtable.head())* > So I have now: > > --------------------------------------------------------------------------------------------------------------------------------------------- > void > HelloTimer::handle(Event*) { > if(agent->rtable.head()){ //amar: allowing only the nodes which are > part of any active route to use hello msg, in accrdnc to rfc3561 > agent->sendHello(); > } > double interval = MinHelloInterval + ((MaxHelloInterval - > MinHelloInterval) * Random::uniform()); > assert(interval >= 0); > Scheduler::instance().schedule(this, &intr, interval); > } > > ---------------------------------------------------------------------------------------------------------------------------------------------- > Is this implementation correct? > > Thanks in advance. > -amar >