Some progress on CcnxPit. Partially working
diff --git a/model/ccnx-forwarding-strategy.cc b/model/ccnx-forwarding-strategy.cc
index 414e200..f518f95 100644
--- a/model/ccnx-forwarding-strategy.cc
+++ b/model/ccnx-forwarding-strategy.cc
@@ -82,7 +82,7 @@
}
bool
-CcnxForwardingStrategy::PropagateInterestViaGreen (const CcnxPitEntry &pitEntry,
+CcnxForwardingStrategy::PropagateInterestViaGreen (Ptr<CcnxPitEntry> pitEntry,
const Ptr<CcnxFace> &incomingFace,
Ptr<CcnxInterestHeader> &header,
const Ptr<const Packet> &packet)
@@ -92,22 +92,22 @@
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 ||
metricFace.m_status == CcnxFibFaceMetric::NDN_FIB_YELLOW)
break; //propagate only to green faces
- 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_DEBUG ("retxCount: " << outgoing->m_retxCount << ", maxRetxCount: " << pitEntry.m_maxRetxCount);
+ NS_LOG_DEBUG ("retxCount: " << outgoing->m_retxCount << ", maxRetxCount: " << pitEntry->m_maxRetxCount);
continue;
}
@@ -118,8 +118,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 ();