[ndnSIM] Interest loop problem in wireless ad-hoc scenario

Sonia zohanoor67 at gmail.com
Thu Dec 31 00:51:28 PST 2020


Hi,
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".
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?
My code of broadcast forwarding strategy and the result is are here.

void
BroadcastStrategy::afterReceiveInterest(const Face& inFace, const Interest&
interest,
                                        const shared_ptr<pit::Entry>&
pitEntry)
{
  const fib::Entry& fibEntry = this->lookupFib(*pitEntry);
  const fib::NextHopList& nexthops = fibEntry.getNextHops();
  NFD_LOG_DEBUG("Out side of the loop");

  for (fib::NextHopList::const_iterator it = nexthops.begin(); it !=
nexthops.end(); ++it) {
    Face& outFace = it->getFace();

   int dnw = fw::findDuplicateNonce(*pitEntry, interest.getNonce(), inFace);
   bool hasDuplicateNonceInPit = dnw != fw::DUPLICATE_NONCE_NONE;

  // pit::OutRecordCollection::iterator outRecord =
pitEntry->getOutRecord(inFace);

  // if (!hasDuplicateNonceInPit) {

      if (!wouldViolateScope(inFace, interest, outFace)) {
        this->sendInterest(pitEntry, outFace, interest);
        NFD_LOG_DEBUG("Interest sent with size = " <<sizeof(interest) << "
whose nonce is = " << interest.getNonce() << " The prefix is = "
<<interest.getName());

      }
  // }
    }


  if (!hasPendingOutRecords(*pitEntry)) {
    this->rejectPendingInterest(pitEntry);
  }
}

Debugging the strategy
Waf: Entering directory `/home/inayat/ndnSIM/ns-3/build'
Waf: Leaving directory `/home/inayat/ndnSIM/ns-3/build'
Build commands will be stored in build/compile_commands.json
'build' finished successfully (7.424s)
+10.000000000s 0 nfd.BroadcastStrategy:afterReceiveInterest(): [DEBUG] Out
side of the loop
+10.000000000s 0 nfd.BroadcastStrategy:afterReceiveInterest(): [DEBUG]
Interest sent with size = 744 whose nonce is = 23580512 The prefix is =
/prefix1/%FE%00
+10.000048166s 1 nfd.BroadcastStrategy:afterReceiveInterest(): [DEBUG] Out
side of the loop
+10.000048166s 1 nfd.BroadcastStrategy:afterReceiveInterest(): [DEBUG]
Interest sent with size = 744 whose nonce is = 23580512 The prefix is =
/prefix1/%FE%00
+10.000048233s 3 nfd.BroadcastStrategy:afterReceiveInterest(): [DEBUG] Out
side of the loop
+10.000048233s 3 nfd.BroadcastStrategy:afterReceiveInterest(): [DEBUG]
Interest sent with size = 744 whose nonce is = 23580512 The prefix is =
/prefix1/%FE%00
+10.000048286s 4 nfd.BroadcastStrategy:afterReceiveInterest(): [DEBUG] Out
side of the loop
+10.000048286s 4 nfd.BroadcastStrategy:afterReceiveInterest(): [DEBUG]
Interest sent with size = 744 whose nonce is = 23580512 The prefix is =
/prefix1/%FE%00

Can anyone guide me what is happening here?
PS: No data is delivered to the consumer, while the producer responds every
time it receives the same Interest packet.
Thank you

Regards
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20201231/c2dbc1bb/attachment.html>


More information about the ndnSIM mailing list