Some progress on CcnxPit. Partially working
diff --git a/model/ccnx-bestroute-strategy.cc b/model/ccnx-bestroute-strategy.cc
index 3295d31..f455d60 100644
--- a/model/ccnx-bestroute-strategy.cc
+++ b/model/ccnx-bestroute-strategy.cc
@@ -57,7 +57,7 @@
}
bool
-CcnxBestRouteStrategy::PropagateInterest (const CcnxPitEntry &pitEntry,
+CcnxBestRouteStrategy::PropagateInterest (Ptr<CcnxPitEntry> pitEntry,
const Ptr<CcnxFace> &incomingFace,
Ptr<CcnxInterestHeader> &header,
const Ptr<const Packet> &packet)
@@ -73,7 +73,7 @@
int propagatedCount = 0;
- BOOST_FOREACH (const CcnxFibFaceMetric &metricFace, pitEntry.m_fibEntry->m_faces.get<i_metric> ())
+ BOOST_FOREACH (const CcnxFibFaceMetric &metricFace, pitEntry->m_fibEntry->m_faces.get<i_metric> ())
{
if (metricFace.m_status == CcnxFibFaceMetric::NDN_FIB_RED) // all non-read faces are in front
break;
@@ -81,16 +81,16 @@
if (metricFace.m_face == incomingFace)
continue; // same face as incoming, don't forward
- if (pitEntry.m_incoming.find (metricFace.m_face) != pitEntry.m_incoming.end ())
+ if (pitEntry->m_incoming.find (metricFace.m_face) != pitEntry->m_incoming.end ())
continue; // don't forward to face that we received interest from
CcnxPitEntryOutgoingFaceContainer::type::iterator outgoing =
- pitEntry.m_outgoing.find (metricFace.m_face);
+ pitEntry->m_outgoing.find (metricFace.m_face);
- if (outgoing != pitEntry.m_outgoing.end () &&
- outgoing->m_retxCount >= pitEntry.m_maxRetxCount)
+ if (outgoing != pitEntry->m_outgoing.end () &&
+ outgoing->m_retxCount >= pitEntry->m_maxRetxCount)
{
- NS_LOG_ERROR (outgoing->m_retxCount << " >= " << pitEntry.m_maxRetxCount);
+ NS_LOG_ERROR (outgoing->m_retxCount << " >= " << pitEntry->m_maxRetxCount);
continue; // already forwarded before during this retransmission cycle
}
@@ -100,8 +100,7 @@
continue;
}
- m_pit->modify (pitEntry,
- ll::bind(&CcnxPitEntry::AddOutgoing, ll::_1, metricFace.m_face));
+ pitEntry->AddOutgoing (metricFace.m_face);
Ptr<Packet> packetToSend = packet->Copy ();