<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">A follow-up email with more tests:<div><br></div><div>Using a fresh ndnSIM 2.6 installation and the <a href="http://ndn-zipf-mandelbrot.cpp">ndn-zipf-mandelbrot.cpp</a> file in the examples, I modified that code to reflect the desired behavior (Consumer App requesting contents starting from a specific Seq Number) and enabled logging.</div><div><br></div><div><div> // Install CCNx applications</div><div> std::string prefix = "/prefix";</div><div><br></div><div> ndn::AppHelper consumerHelper("ns3::ndn::ConsumerZipfMandelbrot");</div><div> // ndn::AppHelper consumerHelper ("ns3::ndn::ConsumerCbr");</div><div> consumerHelper.SetPrefix(prefix);</div><div> consumerHelper.SetAttribute("Frequency", StringValue("10")); // 100 interests a second</div><div> consumerHelper.SetAttribute("NumberOfContents", StringValue("1000")); // 10 different contents</div><div> /************************/</div><div> consumerHelper.SetAttribute("StartSeq", StringValue("100")); // <---- This line was added ---</div><div> /************************/ <br></div><div> // consumerHelper.SetAttribute ("Randomize", StringValue ("uniform")); // 100 interests a second</div><div> consumerHelper.Install(consumerNodes);</div></div><div><br></div><div>The behavior presented in the logs show the Consumer requesting contents with Seq number under 100.</div><div><br></div><div> +76.400000000s 0 ndn.ConsumerZipfMandelbrot:GetNextSeq(): [DEBUG] RandomNumber=17</div><div> +76.400000000s 0 ndn.ConsumerZipfMandelbrot:SendPacket(): [INFO ] > Interest for 17, Total: 865, face: 259</div><div> ...</div><div> +76.800000000s 0 ndn.ConsumerZipfMandelbrot:GetNextSeq(): [DEBUG] RandomNumber=61</div><div> +76.800000000s 0 ndn.ConsumerZipfMandelbrot:SendPacket(): [INFO ] > Interest for 61, Total: 869, face: 259</div><div><br></div><div><br></div><div>How can I accomplish the desired behavior so the consumer app starts requesting content at a certain Seq Number?</div><div>According to the <a href="http://ndnsim.net/current/doxygen/classns3_1_1ndn_1_1ConsumerZipfMandelbrot.html">documentation</a> this consumer application inherits the "StartSeq" from the parent class.</div><div><br></div><div><br></div><div><br></div></div></div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Dec 13, 2018 at 10:59 AM Jack Baldasso <<a href="mailto:jackbaldasso@gmail.com">jackbaldasso@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi,<div><br></div><div>I'm testing an application using the ConsumerZipfMandelbrot where I specify that each node requests a certain chunk of information. I'm using ndnSIM 2.6 on an Ubuntu 16.04 Vagrant VM with 4 GB of memory and 1 CPU (Intel Core i7-7700 3.60GHz)</div><div><br></div><div>I'm defining the consumer application as follows:</div><div><br></div><div> std::string prefix = "/ndn/acme/";</div><div><br></div><div><div> ndn::AppHelper consumerHelper("ns3::ndn::ConsumerZipfMandelbrot");</div><div> consumerHelper.SetAttribute("Frequency", StringValue (10));</div><div> //consumerHelper.SetAttribute("NumberOfContents", StringValue (1000));</div><div> consumerHelper.SetPrefix(prefix);</div><div> </div><div> Ptr<UniformRandomVariable> rnd = CreateObject<UniformRandomVariable> (); <br></div><div><br></div><div> uint32_t nNodes = nodes.GetN ();</div><div> for (uint16_t i = 0; i < nNodes; i++){</div><div> uint16_t start_seq = rnd->GetInteger (0,10000) ; // random between 0 and 10,000</div><div> consumerHelper.SetAttribute("StartSeq",StringValue (std::to_string(
start_seq)));</div><div> consumerHelper.SetAttribute("MaxSeq",StringValue (std::to_string(
start_seq + 1000)));</div><div> } </div><div> consumerHelper.Install(nodes); // where `nodes` is a node container with 50 nodes</div></div><div><br></div><div> Simulator::Stop(Seconds(1000.0));</div><div><br></div><div>Despite the fact that I'm setting the Simulator::Stop to 1000 seconds, my simulation is stopping just over 100 seconds. I assume this is because all nodes finish requesting all 1,000 contents assigned to them (10 Int/s * 100 seconds). But my understanding of the ConsumerZipfMandelbrot application is that it will keep requesting contents until the simulation ends at 1000 seconds.</div><div><br></div><div>Is my assumption wrong? If so, what are other possible things to check? There's no error message given, the simulation ends normally.</div><div><br></div><div>Thanks,</div><div>Jack</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div></div></div></div></div></div></div>
</blockquote></div>