Bugzilla – Bug 2650
In aodv destination sequence numbers is not incremented in case of Local Repair
Last modified: 2017-05-18 04:12:34 EDT
AS per RFC 3561 of AODV protocol in section 6.12 (Local Repair) on the occurrence of link break Nodes must increment the destination sequence numbers of the routing entries contained in the RERR message before transmitting to nodes in precursor list. The function which initiates RERR is void RoutingProtocol::SendRerrWhenBreaksLinkToNextHop (Ipv4Address nextHop) in this function the first call is m_routingTable.LookupRoute (nextHop, toNextHop). when we read this function in aodvrtable.cc in case of true the following code is given where the destination sequence number is not incremented anywhere. std::map<Ipv4Address, RoutingTableEntry>::const_iterator i = m_ipv4AddressEntry.find (id); if (i == m_ipv4AddressEntry.end ()) { NS_LOG_LOGIC ("Route to " << id << " not found"); return false; } rt = i->second; NS_LOG_LOGIC ("Route to " << id << " found"); return true;
Thank you for the report; are you able to provide a patch to fix it?
Created attachment 2801 [details] patch file for aodv-packet.h Sir I tried to resole the problem by adding the function given below in aodv-packet.h file void SetDestCount (uint32_t sdc) { if (sdc==0) m_unreachableDstSeqNo.clear (); }
Created attachment 2802 [details] patch flie to change aodv-routing-protocol.cc
(In reply to Deepti from comment #2) > Created attachment 2801 [details] > patch file for aodv-packet.h > > Sir I tried to resole the problem by adding the function given below in > aodv-packet.h file > void SetDestCount (uint32_t sdc) { if (sdc==0) m_unreachableDstSeqNo.clear > (); }