Simplifying a FIB entry modification (now we can do it directly, without notifying the container)
diff --git a/model/ccnx-l3-protocol.cc b/model/ccnx-l3-protocol.cc
index d5f4438..928d015 100644
--- a/model/ccnx-l3-protocol.cc
+++ b/model/ccnx-l3-protocol.cc
@@ -335,9 +335,10 @@
ll::bind (&CcnxPitEntry::RemoveIncoming, ll::_1, incomingFace));
}
- StaticCast<CcnxFibImpl> (m_fib)->modify (pitEntry->m_fibEntry,
- ll::bind (&CcnxFibEntry::UpdateStatus,
- ll::_1, incomingFace, CcnxFibFaceMetric::NDN_FIB_YELLOW));
+ pitEntry->m_fibEntry->UpdateStatus (incomingFace, CcnxFibFaceMetric::NDN_FIB_YELLOW);
+ // StaticCast<CcnxFibImpl> (m_fib)->modify (pitEntry->m_fibEntry,
+ // ll::bind (&CcnxFibEntry::UpdateStatus,
+ // ll::_1, incomingFace, CcnxFibFaceMetric::NDN_FIB_YELLOW));
if (pitEntry->m_incoming.size () == 0) // interest was actually satisfied
{
@@ -486,9 +487,10 @@
// ?? not sure if we need to do that ?? ...
- StaticCast<CcnxFibImpl> (m_fib)->modify(pitEntry->m_fibEntry,
- ll::bind (&CcnxFibEntry::UpdateStatus,
- ll::_1, incomingFace, CcnxFibFaceMetric::NDN_FIB_YELLOW));
+ pitEntry->m_fibEntry->UpdateStatus (incomingFace, CcnxFibFaceMetric::NDN_FIB_YELLOW);
+ // StaticCast<CcnxFibImpl> (m_fib)->modify(pitEntry->m_fibEntry,
+ // ll::bind (&CcnxFibEntry::UpdateStatus,
+ // ll::_1, incomingFace, CcnxFibFaceMetric::NDN_FIB_YELLOW));
}
else
if (!isNew && !isRetransmitted)
@@ -590,11 +592,12 @@
// If we have sent interest for this data via this face, then update stats.
if (out != pitEntry->m_outgoing.end ())
{
- StaticCast<CcnxFibImpl> (m_fib)->modify (pitEntry->m_fibEntry,
- ll::bind (&CcnxFibEntry::UpdateFaceRtt,
- ll::_1,
- incomingFace,
- Simulator::Now () - out->m_sendTime));
+ pitEntry->m_fibEntry->UpdateFaceRtt (incomingFace, Simulator::Now () - out->m_sendTime);
+ // StaticCast<CcnxFibImpl> (m_fib)->modify (pitEntry->m_fibEntry,
+ // ll::bind (&CcnxFibEntry::UpdateFaceRtt,
+ // ll::_1,
+ // incomingFace,
+ // Simulator::Now () - out->m_sendTime));
}
else
{
@@ -617,9 +620,10 @@
}
// Update metric status for the incoming interface in the corresponding FIB entry
- StaticCast<CcnxFibImpl>(m_fib)->modify (pitEntry->m_fibEntry,
- ll::bind (&CcnxFibEntry::UpdateStatus, ll::_1,
- incomingFace, CcnxFibFaceMetric::NDN_FIB_GREEN));
+ pitEntry->m_fibEntry->UpdateStatus (incomingFace, CcnxFibFaceMetric::NDN_FIB_GREEN);
+ // StaticCast<CcnxFibImpl>(m_fib)->modify (pitEntry->m_fibEntry,
+ // ll::bind (&CcnxFibEntry::UpdateStatus, ll::_1,
+ // incomingFace, CcnxFibFaceMetric::NDN_FIB_GREEN));
// Add or update entry in the content store
m_contentStore->Add (header, payload);