[ndnSIM] Send interest packet per segment of some content

Spyridon (Spyros) Mastorakis mastorakis at cs.ucla.edu
Wed Apr 12 19:16:58 PDT 2017


Hi,

the class you tried to modify derives from the Consumer class.

I would suggest you modify the Consumer class directly.

Thanks,

Spyridon (Spyros) Mastorakis
Personal Website: http://cs.ucla.edu/~mastorakis/ <http://cs.ucla.edu/~mastorakis/>
Internet Research Laboratory
Computer Science Department
UCLA

> On Apr 12, 2017, at 7:08 PM, Amir Ibrahim <a.ibrahim at fci-cu.edu.eg> wrote:
> 
> Hi All,
>  I'm trying to create a new ndn application that sends interest packet for a content as follow:
> - Each content consists of more than one segment.
> - When a node wants to retrieve a content, it sends interest packets for each segment of that content (ex: if content /prefix/file01 has 2 segments the app should send 2 interest packets
> /prefix/file01/01 and /prefix/file01/02)
> 
> My trials to do so are:
> 1. I tried to modify the ConsumerZipfMandelbrot.cpp application by adding the below lines of code to the SendPacket() method:
> 
> for (uint64_t j = 0; j <m_ChunksPerContent[seq-1]; j++) {
> 
> 	  // prepare the name of content/file
> 	  shared_ptr<Name> nameWithSequence = make_shared<Name>(m_interestName);
> 	  nameWithSequence->appendSequenceNumber(seq);
> 
> 	  std::cout<<"name befor segment: "<<nameWithSequence->toUri()<<"\n";
> 
> 	  nameWithSequence->appendSegment(j+1); // adding chunk number
> 
> 	  std::cout<<"name After segment: "<<nameWithSequence->toUri()<<"\n";
> 	  //std::cout<<"requesting file.chunk"<<seq<<"."<<j+1<<"\n";
> 
> 	  //Amir: Create the interest packet
> 	  shared_ptr<Interest> interest = make_shared<Interest>();
> 	  interest->setNonce(m_rand->GetValue(0, std::numeric_limits<uint32_t>::max()));
> 	  interest->setName(*nameWithSequence);
> 
> 	  // NS_LOG_INFO ("Requesting Interest: \n" << *interest);
> 	  NS_LOG_INFO("> Interest for " << seq << ", Total: " << m_seq << ", face: " << m_face->getId());
> 	  NS_LOG_DEBUG("Trying to add " << seq << " with " << Simulator::Now() << ". already "
> 			  << m_seqTimeouts.size() << " items");
> 
> 	  m_seqTimeouts.insert(SeqTimeout(seq, Simulator::Now()));
> 	  m_seqFullDelay.insert(SeqTimeout(seq, Simulator::Now()));
> 
> 	  m_seqLastDelay.erase(seq);
> 	  m_seqLastDelay.insert(SeqTimeout(seq, Simulator::Now()));
> 
> 	  m_seqRetxCounts[seq]++;
> 
> 	  m_rtt->SentSeq(SequenceNumber32(seq), 1);
> 
> 	  m_transmittedInterests(interest, this, m_face);
> 	  m_appLink->onReceiveInterest(*interest);
> 
> 	  MyConsumerZipfMandelbrot::ScheduleNextPacket();
>   }
> 
> But every time I run I get an error .
> 
> My question is: how do I add a segment number to the interest name (highlighted line )?
> 
> Also, is there any problem to create a for loop to repeat the creation of interests per segments of a content as above?
> 
> -- 
>    Regards
> Prince
> 
> 

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


More information about the ndnSIM mailing list