<div dir="ltr">Hi,<div>In my wireless ad-hoc simulation scenario with broadcast strategy, I have noticed that the first Interest sent by the consumer gets looping in the topology. What I believe is that the Interest must not pass through the "IncomingInterest pipeline" and should enter into the "InterestLoop pipeline". </div><div>It did enter into the "interestLoop pipeline". However, I see the same Interest (same prefix and nonce) in my forwarding strategy "afterReceiveInterest" method again. How is it possible? </div><div>My code of broadcast forwarding strategy and the result is are here.</div><div><br></div><div>void<br>BroadcastStrategy::afterReceiveInterest(const Face& inFace, const Interest& interest,<br>                                        const shared_ptr<pit::Entry>& pitEntry)<br>{<br>  const fib::Entry& fibEntry = this->lookupFib(*pitEntry);<br>  const fib::NextHopList& nexthops = fibEntry.getNextHops();<br>  NFD_LOG_DEBUG("Out side of the loop");<br>  <br>  for (fib::NextHopList::const_iterator it = nexthops.begin(); it != nexthops.end(); ++it) {<br>    Face& outFace = it->getFace();<br>  <br>   int dnw = fw::findDuplicateNonce(*pitEntry, interest.getNonce(), inFace);<br>   bool hasDuplicateNonceInPit = dnw != fw::DUPLICATE_NONCE_NONE;<br>   <br>  // pit::OutRecordCollection::iterator outRecord = pitEntry->getOutRecord(inFace);<br>   <br>  // if (!hasDuplicateNonceInPit) {<br>    <br>      if (!wouldViolateScope(inFace, interest, outFace)) {<br>        this->sendInterest(pitEntry, outFace, interest);          <br>        NFD_LOG_DEBUG("Interest sent with size = " <<sizeof(interest) << " whose nonce is = " << interest.getNonce() << " The prefix is = " <<interest.getName()); <br>        <br>      }<br>  // }<br>    }<br>  <br><br>  if (!hasPendingOutRecords(*pitEntry)) {<br>    this->rejectPendingInterest(pitEntry);<br>  }<br>}<br></div><div><br></div><div>Debugging the strategy</div><div>Waf: Entering directory `/home/inayat/ndnSIM/ns-3/build'<br>Waf: Leaving directory `/home/inayat/ndnSIM/ns-3/build'<br>Build commands will be stored in build/compile_commands.json<br>'build' finished successfully (7.424s)<br>+10.000000000s 0 nfd.BroadcastStrategy:afterReceiveInterest(): [DEBUG] Out side of the loop<br>+10.000000000s 0 nfd.BroadcastStrategy:afterReceiveInterest(): [DEBUG] Interest sent with size = 744 whose nonce is = 23580512 The prefix is = /prefix1/%FE%00<br>+10.000048166s 1 nfd.BroadcastStrategy:afterReceiveInterest(): [DEBUG] Out side of the loop<br>+10.000048166s 1 nfd.BroadcastStrategy:afterReceiveInterest(): [DEBUG] Interest sent with size = 744 whose nonce is = 23580512 The prefix is = /prefix1/%FE%00<br>+10.000048233s 3 nfd.BroadcastStrategy:afterReceiveInterest(): [DEBUG] Out side of the loop<br>+10.000048233s 3 nfd.BroadcastStrategy:afterReceiveInterest(): [DEBUG] Interest sent with size = 744 whose nonce is = 23580512 The prefix is = /prefix1/%FE%00<br>+10.000048286s 4 nfd.BroadcastStrategy:afterReceiveInterest(): [DEBUG] Out side of the loop<br>+10.000048286s 4 nfd.BroadcastStrategy:afterReceiveInterest(): [DEBUG] Interest sent with size = 744 whose nonce is = 23580512 The prefix is = /prefix1/%FE%00<br></div><div><br></div><div>Can anyone guide me what is happening here?</div><div>PS: No data is delivered to the consumer, while the producer responds every time it receives the same Interest packet.</div><div>Thank you </div><div><br></div><div>Regards</div></div>