<div dir="ltr">Is there a way to have M distinct producers in ndnsim? I wonder about the forwarding strategies used. I set up 4 consumers, 1 router, and 9 producers. Each producer should only respond to a single prefix<div>
<br></div><div><div>int producernodeIndex = 1;</div><div>std::string producernodeNamePrefix("producer");</div><div>std::string producerNodeName = producernodeNamePrefix +  boost::lexical_cast<std::string>(producernodeIndex);</div>
<div>Ptr<Node> producerNode = Names::Find<Node>(producerNodeName);</div><div>while(producerNode != NULL)</div><div>{</div><div>  NodeContainer producerNodes;</div><div>  producerNodes.Add (producerNode);</div>
<div><br></div><div>  // Producer</div><div>  ndn::AppHelper producerHelper ("ns3::ndn::Producer");</div><div>  // Producer will reply to all requests starting with /prefix</div><div>  std::string pprefix = "/producer"+  boost::lexical_cast<std::string>(producernodeIndex);</div>
<div>  std::cout<<"producernodeName="<<producerNodeName<<" pprefix="<<pprefix<<std::endl;</div><div>  producerHelper.SetPrefix (pprefix);</div><div>  producerHelper.SetAttribute ("PayloadSize", StringValue("1024"));</div>
<div>  producerHelper.Install(producerNodes);</div><div>  producerNodeName = producernodeNamePrefix +  boost::lexical_cast<std::string>(++producernodeIndex);</div><div>  producerNode = Names::Find<Node>(producerNodeName);</div>
<div>}</div></div><div><br></div><div><br></div><div><div>producernodeName=producer1 pprefix=/producer1</div><div>producernodeName=producer2 pprefix=/producer2</div><div>producernodeName=producer3 pprefix=/producer3</div>
<div>producernodeName=producer4 pprefix=/producer4</div><div>producernodeName=producer5 pprefix=/producer5</div><div>producernodeName=producer6 pprefix=/producer6</div><div>producernodeName=producer7 pprefix=/producer7</div>
<div>producernodeName=producer8 pprefix=/producer8</div><div>producernodeName=producer9 pprefix=/producer9</div><div><br></div><div><br></div><div>Though I can observe in the logs, that interests for '/producer9' are being routed and received by producer node 3 (which should only respond to /producer3). Why would the routing forward to a producer which *shouldn't* be responding to these interests?</div>
<div><br></div><div><a href="https://github.com/joshjdevl/icn-cache-privacy/blob/master/ndn-topology.cc">https://github.com/joshjdevl/icn-cache-privacy/blob/master/ndn-topology.cc</a><br></div></div><div><br></div><div>Thanks,</div>
<div>Josh</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, May 21, 2014 at 9:16 PM, Josh J <span dir="ltr"><<a href="mailto:joshjdevl@gmail.com" target="_blank">joshjdevl@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I also tried with the unmodified ns3::ndn::ConsumerZipfMandelbrot where each producer is responsible for a particular segment. Though none of the interests are satisfied (there are no data responses).<div>
<br>
</div><div><a href="https://gist.github.com/joshjdevl/9d303d8996ad8ad02098" target="_blank">https://gist.github.com/joshjdevl/9d303d8996ad8ad02098</a><br></div><div><br></div><div>Thanks,</div><div>Josh</div></div><div class="HOEnZb">
<div class="h5"><div class="gmail_extra">
<br><br><div class="gmail_quote">On Wed, May 21, 2014 at 8:05 PM, Josh J <span dir="ltr"><<a href="mailto:joshjdevl@gmail.com" target="_blank">joshjdevl@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr"><div>> Why did you comment appendSeqNum() ? It seems to be correct way of doing it.<div><br></div></div><div>Is there a way for a single consumer to generate requests in a zipf distribution for multiple M producers, where each producer is responsible for a particular prefix? I would like to have M producer nodes (1...M), where (except for intermediate caches) producer1 is the only producer which can satisfy a particular interest /producer1 or /producer/1, producer2 satisfies /producer2 or producer/2, etc.<div>

<div><br>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, May 21, 2014 at 1:35 PM, Ilya Moiseenko <span dir="ltr"><<a href="mailto:iliamo@ucla.edu" target="_blank">iliamo@ucla.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


<div style="word-wrap:break-word">I believe that sequence numbers are marked with reserved symbols.<div>Why did you comment appendSeqNum() ? It seems to be correct way of doing it.</div><div><br></div><div>Ilya</div><div>


<br><div><div><div><div>On May 21, 2014, at 4:27 PM, Josh J <<a href="mailto:joshjdevl@gmail.com" target="_blank">joshjdevl@gmail.com</a>> wrote:</div><br></div></div><blockquote type="cite"><div><div>
<div dir="ltr">Tracing thru gdb I find the following error being throw. Though no idea what it means? What required marker is necessary?<div><br></div><div><div>    {</div><div>      BOOST_THROW_EXCEPTION (error::name::Component ()</div>



<div>                             << error::msg ("Name component does not have required marker [" + toUri () + "]"));</div><div>    }</div></div><div><br></div></div><div class="gmail_extra"><br>



<br><div class="gmail_quote">On Wed, May 21, 2014 at 6:38 AM, Josh J <span dir="ltr"><<a href="mailto:joshjdevl@gmail.com" target="_blank">joshjdevl@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">



<div dir="ltr">Hi,<div><br></div><div>I'm trying to setup a scenario where there are M distinct producers 1...M. Each producer is responsible for a certain prefix /producer1 ... /producerM.</div><div><br></div><div>There are also N consumers which generate requests for interests ranging from /producer1 to /producerM followiing a zipf distribution.</div>




<div><br></div><div>I modified the zipfmandelbrotconsumer by changing the following line</div><div><pre><div>  <span>Ptr</span><span><</span><span>Name</span><span>></span> <span>nameWithSequence</span> <span>=</span> <span>Create</span><span><</span><span>Name</span><span>></span> <span>(</span><span>m_producerPrefix</span><span>+</span><span>boost</span><span>::</span><span>lexical_cast</span><span><</span><span>std</span><span>::</span><span>string</span><span>></span><span>(</span><span>seq</span><span>));</span></div>




<div>  <span>//nameWithSequence->appendSeqNum (seq);</span></div><div><span><br></span></div><div><a href="https://github.com/joshjdevl/icn-cache-privacy/blob/master/extensions/ndn-consumer-zipf-prefix-mandelbrot.cc" target="_blank">https://github.com/joshjdevl/icn-cache-privacy/blob/master/extensions/ndn-consumer-zipf-prefix-mandelbrot.cc</a><br>




</div><div><br></div><div>I then installed a consumerapp and producerapp on each node accordingly.</div><div><br></div><div><a href="https://github.com/joshjdevl/icn-cache-privacy/blob/master/ndn-topology.cc" target="_blank">https://github.com/joshjdevl/icn-cache-privacy/blob/master/ndn-topology.cc</a><br>




</div><div><br></div><div>The simulation runs for a very brief amount of time before receiving an error.</div><div>0.573765s 1 ndn.ConsumerZipfPrefixMandelbrot:GetNextSeq(): [LOGIC] p_random=0.142848
0.573765s 1 ndn.ConsumerZipfPrefixMandelbrot:GetNextSeq(): [DEBUG] RandomNumber=1
0.573765s 1 ndn.ConsumerZipfPrefixMandelbrot:SendPacket(): [INFO ] seq=1
0.573765s 1 ndn.ConsumerZipfPrefixMandelbrot:SendPacket(): [INFO ] > Interest for 1, Total: 6, face: 1
0.573765s 1 ndn.ConsumerZipfPrefixMandelbrot:SendPacket(): [DEBUG] Trying to add 1 with +573764778.0ns. already 4 items
0.573765s 1 ndn.fw:OnInterest(0x1740d10, /producer1)
0.576379s 3 ndn.ConsumerZipfPrefixMandelbrot:SendPacket()
0.576379s 3 ndn.ConsumerZipfPrefixMandelbrot:GetNextSeq(): [LOGIC] p_random=0.926702
0.576379s 3 ndn.ConsumerZipfPrefixMandelbrot:GetNextSeq(): [DEBUG] RandomNumber=8
0.576379s 3 ndn.ConsumerZipfPrefixMandelbrot:SendPacket(): [INFO ] seq=8
0.576379s 3 ndn.ConsumerZipfPrefixMandelbrot:SendPacket(): [INFO ] > Interest for 8, Total: 7, face: 1
0.576379s 3 ndn.ConsumerZipfPrefixMandelbrot:SendPacket(): [DEBUG] Trying to add 8 with +576379247.0ns. already 5 items
0.576379s 3 ndn.fw:OnInterest(0x1740dd0, /producer8)
0.576426s 0 ndn.fw:OnData(0x1722870, /producer2)
0.576426s 0 ndn.Consumer:OnData(0x173c580, 0x174bb40)
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<ns3::ndn::error::name::Component>'
  what():  std::exception
</div><div><br></div><div><br></div><div>Is there any naming convention assumed in the routing such as /producer/1 /producer/2 instead of being able to route to /producer1 /producer2 ?</div><div><br></div><div>The gdb backtrace is posted here</div>




<div><a href="https://gist.github.com/joshjdevl/80bcc0af2fab262120d0" target="_blank">https://gist.github.com/joshjdevl/80bcc0af2fab262120d0</a><br></div><div><br></div><div>Thanks,</div><div>Josh</div><div><br></div>
</pre></div></div>
</blockquote></div><br></div></div></div>
_______________________________________________<br>ndnSIM mailing list<br><a href="mailto:ndnSIM@lists.cs.ucla.edu" target="_blank">ndnSIM@lists.cs.ucla.edu</a><br><a href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim" target="_blank">http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim</a><br>


</blockquote></div><br></div></div></blockquote></div><br></div></div></div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>