From efd9cbeda4b6501ed3a6d4ab33eeab70d6a2797a Mon Sep 17 00:00:00 2001 From: Borovkova Elena Date: Fri, 14 Aug 2009 13:47:49 +0400 Subject: [PATCH] RoutingProtocol::Drop added --- src/routing/aodv/aodv-routing-protocol.cc | 6 ++++++ src/routing/aodv/aodv-routing-protocol.h | 2 +- src/routing/aodv/aodv-rqueue.cc | 14 ++++---------- src/routing/aodv/aodv-rqueue.h | 2 -- 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/routing/aodv/aodv-routing-protocol.cc b/src/routing/aodv/aodv-routing-protocol.cc index 6c239e005..f2c97df70 100644 --- a/src/routing/aodv/aodv-routing-protocol.cc +++ b/src/routing/aodv/aodv-routing-protocol.cc @@ -1311,6 +1311,12 @@ RoutingProtocol::FindSocketWithInterfaceAddress (Ipv4InterfaceAddress addr ) con return socket; } +void +RoutingProtocol::Drop(Ptr packet, const Ipv4Header & header, Socket::SocketErrno err) +{ + NS_LOG_LOGIC (this <<" drop own packet " << packet->GetUid() << " to " << header.GetDestination () << " from queue. Error " << err); +} + void RoutingProtocol::LocalRouteRepair (Ipv4Address dst, Ipv4Address origin ) diff --git a/src/routing/aodv/aodv-routing-protocol.h b/src/routing/aodv/aodv-routing-protocol.h index a1b206671..cff12c96f 100644 --- a/src/routing/aodv/aodv-routing-protocol.h +++ b/src/routing/aodv/aodv-routing-protocol.h @@ -238,7 +238,7 @@ private: //\} /// Notify that packet is dropped for some reason - void Drop(Ptr, const Ipv4Header &, Socket::SocketErrno) {} + void Drop(Ptr, const Ipv4Header &, Socket::SocketErrno); ///\name Timers. TODO comment each one //\{ diff --git a/src/routing/aodv/aodv-rqueue.cc b/src/routing/aodv/aodv-rqueue.cc index 90442463e..dcdbad7d7 100644 --- a/src/routing/aodv/aodv-rqueue.cc +++ b/src/routing/aodv/aodv-rqueue.cc @@ -105,7 +105,10 @@ RequestQueue::Enqueue (QueueEntry & entry ) entry.SetExpireTime (m_queueTimeout); if (m_queue.size () == m_maxLen) - Drop (Pop (), "Drop the most aged packet"); // Drop the most aged packet + { + Drop (m_queue.front (), "Drop the most aged packet"); // Drop the most aged packet + m_queue.erase (m_queue.begin ()); + } m_queue.push_back (entry); } @@ -146,15 +149,6 @@ RequestQueue::Find (Ipv4Address dst ) return false; } -QueueEntry -RequestQueue::Pop () -{ - NS_LOG_FUNCTION (this); - QueueEntry entry = m_queue.front (); - m_queue.erase (m_queue.begin ()); - return entry; -} - struct IsExpired { bool diff --git a/src/routing/aodv/aodv-rqueue.h b/src/routing/aodv/aodv-rqueue.h index ca0240459..1d054294a 100644 --- a/src/routing/aodv/aodv-rqueue.h +++ b/src/routing/aodv/aodv-rqueue.h @@ -114,8 +114,6 @@ public: private: std::vector m_queue; - /// Remove and return first entry from queue - QueueEntry Pop(); /// Remove all expired entries void Purge(); /// Notify that packet is dropped from queue by timeout