fw: forward Interest/Data to ad hoc incoming face
Change-Id: Ia2eacf2a54d65ea4bffb607a709e1d1263547fd7
Refs: #3968
diff --git a/daemon/fw/multicast-strategy.cpp b/daemon/fw/multicast-strategy.cpp
index 9543e6f..7b38bc1 100644
--- a/daemon/fw/multicast-strategy.cpp
+++ b/daemon/fw/multicast-strategy.cpp
@@ -58,7 +58,7 @@
const Name&
MulticastStrategy::getStrategyName()
{
- static Name strategyName("/localhost/nfd/strategy/multicast/%FD%02");
+ static Name strategyName("/localhost/nfd/strategy/multicast/%FD%03");
return strategyName;
}
@@ -85,12 +85,15 @@
for (const auto& nexthop : nexthops) {
Face& outFace = nexthop.getFace();
- if (&outFace != &inFace && !wouldViolateScope(inFace, interest, outFace)) {
- this->sendInterest(pitEntry, outFace, interest);
- NFD_LOG_DEBUG(interest << " from=" << inFace.getId()
- << " pitEntry-to=" << outFace.getId());
- ++nEligibleNextHops;
+ if ((outFace.getId() == inFace.getId() && outFace.getLinkType() != ndn::nfd::LINK_TYPE_AD_HOC) ||
+ wouldViolateScope(inFace, interest, outFace)) {
+ continue;
}
+
+ this->sendInterest(pitEntry, outFace, interest);
+ NFD_LOG_DEBUG(interest << " from=" << inFace.getId()
+ << " pitEntry-to=" << outFace.getId());
+ ++nEligibleNextHops;
}
if (nEligibleNextHops == 0) {