View | Details | Raw Unified | Return to bug 1099
Collapse All | Expand All

(-)a/src/aodv/model/aodv-routing-protocol.cc (-6 / +15 lines)
 Lines 356-362    Link Here 
356
      bool result = m_routingTable.LookupRoute(header.GetDestination (), rt);
356
      bool result = m_routingTable.LookupRoute(header.GetDestination (), rt);
357
      if(!result || ((rt.GetFlag() != IN_SEARCH) && result))
357
      if(!result || ((rt.GetFlag() != IN_SEARCH) && result))
358
        {
358
        {
359
          NS_LOG_LOGIC ("Send RREQ to" <<header.GetDestination ());
359
          NS_LOG_LOGIC ("Send new RREQ for outbound packet to " <<header.GetDestination ());
360
          SendRequest (header.GetDestination ());
360
          SendRequest (header.GetDestination ());
361
        }
361
        }
362
    }
362
    }
 Lines 867-872    Link Here 
867
        { 
867
        { 
868
          destination = iface.GetBroadcast ();
868
          destination = iface.GetBroadcast ();
869
        }
869
        }
870
      NS_LOG_DEBUG ("Send RREQ with id " << rreqHeader.GetId () << " to socket");
870
      socket->SendTo (packet, 0, InetSocketAddress (destination, AODV_PORT));
871
      socket->SendTo (packet, 0, InetSocketAddress (destination, AODV_PORT));
871
    }
872
    }
872
  ScheduleRreqRetry (dst);
873
  ScheduleRreqRetry (dst);
 Lines 894-899    Link Here 
894
  rt.IncrementRreqCnt ();
895
  rt.IncrementRreqCnt ();
895
  m_routingTable.Update (rt);
896
  m_routingTable.Update (rt);
896
  m_addressReqTimer[dst].Schedule (Time (rt.GetRreqCnt () * NetTraversalTime));
897
  m_addressReqTimer[dst].Schedule (Time (rt.GetRreqCnt () * NetTraversalTime));
898
  NS_LOG_LOGIC ("Scheduled RREQ retry in " << Time (rt.GetRreqCnt () * NetTraversalTime).GetSeconds () << " seconds");
897
}
899
}
898
900
899
void
901
void
 Lines 1002-1008    Link Here 
1002
  if (m_routingTable.LookupRoute (src, toPrev))
1004
  if (m_routingTable.LookupRoute (src, toPrev))
1003
    {
1005
    {
1004
      if (toPrev.IsUnidirectional ())
1006
      if (toPrev.IsUnidirectional ())
1005
        return;
1007
        {
1008
          NS_LOG_DEBUG ("Ignoring RREQ from node in blacklist");
1009
          return;
1010
	}
1006
    }
1011
    }
1007
1012
1008
  uint32_t id = rreqHeader.GetId ();
1013
  uint32_t id = rreqHeader.GetId ();
 Lines 1014-1019    Link Here 
1014
   */
1019
   */
1015
  if (m_rreqIdCache.IsDuplicate (origin, id))
1020
  if (m_rreqIdCache.IsDuplicate (origin, id))
1016
    {
1021
    {
1022
      NS_LOG_DEBUG ("Ignoring RREQ due to duplicate");
1017
      return;
1023
      return;
1018
    }
1024
    }
1019
1025
 Lines 1058-1070    Link Here 
1058
                                      toOrigin.GetLifeTime ()));
1064
                                      toOrigin.GetLifeTime ()));
1059
      m_routingTable.Update (toOrigin);
1065
      m_routingTable.Update (toOrigin);
1060
    }
1066
    }
1061
  NS_LOG_LOGIC (receiver << " receive RREQ to destination " << rreqHeader.GetDst ());
1067
  NS_LOG_LOGIC (receiver << " receive RREQ with hop count " << static_cast<uint32_t>(rreqHeader.GetHopCount ()) 
1068
		         << " ID " << rreqHeader.GetId ()
1069
		         << " to destination " << rreqHeader.GetDst ());
1062
1070
1063
  //  A node generates a RREP if either:
1071
  //  A node generates a RREP if either:
1064
  //  (i)  it is itself the destination,
1072
  //  (i)  it is itself the destination,
1065
  if (IsMyOwnAddress (rreqHeader.GetDst ()))
1073
  if (IsMyOwnAddress (rreqHeader.GetDst ()))
1066
    {
1074
    {
1067
      m_routingTable.LookupRoute (origin, toOrigin);
1075
      m_routingTable.LookupRoute (origin, toOrigin);
1076
      NS_LOG_DEBUG ("Send reply since I am the destination");
1068
      SendReply (rreqHeader, toOrigin);
1077
      SendReply (rreqHeader, toOrigin);
1069
      return;
1078
      return;
1070
    }
1079
    }
 Lines 1468-1484    Link Here 
1468
   */
1477
   */
1469
  if (toDst.GetRreqCnt () == RreqRetries)
1478
  if (toDst.GetRreqCnt () == RreqRetries)
1470
    {
1479
    {
1471
      NS_LOG_LOGIC("route discovery to " << dst << " has been attempted RreqRetries times");
1480
      NS_LOG_LOGIC("route discovery to " << dst << " has been attempted RreqRetries (" << RreqRetries << ") times");
1472
      m_addressReqTimer.erase (dst);
1481
      m_addressReqTimer.erase (dst);
1473
      m_routingTable.DeleteRoute (dst);
1482
      m_routingTable.DeleteRoute (dst);
1474
      NS_LOG_DEBUG ("Route not found. Drop packet with dst " << dst);
1483
      NS_LOG_DEBUG ("Route not found. Drop all packets with dst " << dst);
1475
      m_queue.DropPacketWithDst (dst);
1484
      m_queue.DropPacketWithDst (dst);
1476
      return;
1485
      return;
1477
    }
1486
    }
1478
1487
1479
  if (toDst.GetFlag () == IN_SEARCH)
1488
  if (toDst.GetFlag () == IN_SEARCH)
1480
    {
1489
    {
1481
      NS_LOG_LOGIC ("Send new RREQ to " << dst << " ttl " << NetDiameter);
1490
      NS_LOG_LOGIC ("Resend RREQ to " << dst << " ttl " << NetDiameter);
1482
      SendRequest (dst);
1491
      SendRequest (dst);
1483
    }
1492
    }
1484
  else
1493
  else

Return to bug 1099