model: Changing ForwardingStrategy trace output logic
As of now, ForwardingStrategy will report that packet has been
forwarded (OutData/OutInterest trace) any time packet was send out to the face, regardless
the actual status of a particular send (i.e., will report as send even if queue has
been overflown for a particular face).
Additional trace (DropData/DropInterest) will report all instances of
unsuccessful transmission of Data or Interest, including cases of queue
overflowing on faces, Interest collapsing, Interest limits drops, and other
level-3 "drops".
In simple scenarios, DropData+DropInterest should equal to TxQueue drops.
diff --git a/model/fw/ndn-forwarding-strategy.cc b/model/fw/ndn-forwarding-strategy.cc
index 7532f13..5b51993 100644
--- a/model/fw/ndn-forwarding-strategy.cc
+++ b/model/fw/ndn-forwarding-strategy.cc
@@ -389,20 +389,15 @@
BOOST_FOREACH (const pit::IncomingFace &incoming, pitEntry->GetIncoming ())
{
bool ok = incoming.m_face->Send (origPacket->Copy ());
- if (ok)
- {
- m_outData (header, payload, inFace == 0, incoming.m_face);
- DidSendOutData (inFace, incoming.m_face, header, payload, origPacket, pitEntry);
- NS_LOG_DEBUG ("Satisfy " << *incoming.m_face);
- }
- else
+ DidSendOutData (inFace, incoming.m_face, header, payload, origPacket, pitEntry);
+ NS_LOG_DEBUG ("Satisfy " << *incoming.m_face);
+
+ if (!ok)
{
m_dropData (header, payload, incoming.m_face);
NS_LOG_DEBUG ("Cannot satisfy data to " << *incoming.m_face);
}
-
- // successfull forwarded data trace
}
// All incoming interests are satisfied. Remove them
@@ -570,7 +565,11 @@
//transmission
Ptr<Packet> packetToSend = origPacket->Copy ();
- outFace->Send (packetToSend);
+ bool successSend = outFace->Send (packetToSend);
+ if (!successSend)
+ {
+ m_dropInterests (header, outFace);
+ }
DidSendOutInterest (inFace, outFace, header, origPacket, pitEntry);
@@ -595,6 +594,7 @@
Ptr<const Packet> origPacket,
Ptr<pit::Entry> pitEntry)
{
+ m_outData (header, payload, inFace == 0, outFace);
}
void
diff --git a/model/pit/ndn-pit-entry.cc b/model/pit/ndn-pit-entry.cc
index 49a180e..f380b75 100644
--- a/model/pit/ndn-pit-entry.cc
+++ b/model/pit/ndn-pit-entry.cc
@@ -219,7 +219,6 @@
void
Entry::IncreaseAllowedRetxCount ()
{
- NS_LOG_ERROR (this);
if (Simulator::Now () - m_lastRetransmission >= MilliSeconds (100))
{
// cheat: