BUG: time index for PIT entry was using wrong data structure (set instead of multiset), which caused extremely unexpected behavior
diff --git a/model/pit/ccnx-pit-impl.cc b/model/pit/ccnx-pit-impl.cc
index c57a44c..222b3c9 100644
--- a/model/pit/ccnx-pit-impl.cc
+++ b/model/pit/ccnx-pit-impl.cc
@@ -243,7 +243,7 @@
// i_time.begin ()->GetExpireTime () << "s abs time");
m_cleanEvent = Simulator::Schedule (nextEvent,
- &CcnxPitImpl::CleanExpired, this);
+ &CcnxPitImpl<Policy>::CleanExpired, this);
}
template<class Policy>
@@ -270,6 +270,7 @@
if (super::getPolicy ().size ())
{
NS_LOG_DEBUG ("Size: " << super::getPolicy ().size ());
+ NS_LOG_DEBUG ("i_time size: " << i_time.size ());
}
RescheduleCleaning ();
}
diff --git a/model/pit/ccnx-pit-impl.h b/model/pit/ccnx-pit-impl.h
index 94709f3..6754dcd 100644
--- a/model/pit/ccnx-pit-impl.h
+++ b/model/pit/ccnx-pit-impl.h
@@ -118,7 +118,7 @@
// indexes
typedef
- boost::intrusive::set<entry,
+ boost::intrusive::multiset<entry,
boost::intrusive::compare < TimestampIndex< entry > >,
boost::intrusive::member_hook< entry,
boost::intrusive::set_member_hook<>,