fw: NccStrategy remembers only best face
refs #1961
Strategy::beforeSatisfyPendingInterest is renamed to
Strategy::beforeSatisfyInterest, so as to match the semantics of this trigger.
This is a backwards-incompatible change that requires function renaming in
all subclasses of Strategy class.
LimitedIo::afterOp gets a bugfix that allows it to be invoked out of
LimitedIo::run without leaving io_service unusable.
Change-Id: Ia4c632beb62c554724b83846a3d6358ae08779ad
diff --git a/daemon/fw/ncc-strategy.cpp b/daemon/fw/ncc-strategy.cpp
index fcabe7a..925a3cf 100644
--- a/daemon/fw/ncc-strategy.cpp
+++ b/daemon/fw/ncc-strategy.cpp
@@ -183,9 +183,15 @@
}
void
-NccStrategy::beforeSatisfyPendingInterest(shared_ptr<pit::Entry> pitEntry,
- const Face& inFace, const Data& data)
+NccStrategy::beforeSatisfyInterest(shared_ptr<pit::Entry> pitEntry,
+ const Face& inFace, const Data& data)
{
+ if (pitEntry->getInRecords().empty()) {
+ // PIT entry has already been satisfied (and is now waiting for straggler timer to expire)
+ // NCC does not collect measurements for non-best face
+ return;
+ }
+
shared_ptr<measurements::Entry> measurementsEntry = this->getMeasurements().get(*pitEntry);
for (int i = 0; i < UPDATE_MEASUREMENTS_N_LEVELS; ++i) {