[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