<div dir="ltr"><div>Hi,</div><div><br></div><div>I am writing a simulation in which a single app, maliciousConsumerHelper, is installed on two nodes, NodeC3 and NodeC4. I would like to start the app on both nodes at 25 seconds in the simulation. However, when I run my code, the app starts at the beginning of the simulation.</div><div><br></div><div>In my code, I create a NodeContainer and add both nodes, and then install the helper on the node container. When I install the app on only one node, it works fine, starting at 25 seconds as it should. Could anyone help me understand how to fix this problem?</div><div><br></div><div><div style="color:rgb(212,212,212);background-color:rgb(30,30,30);font-family:"Droid Sans Mono","monospace",monospace,"Droid Sans Fallback";font-weight:normal;font-size:14px;line-height:19px;white-space:pre"><div><span style="color:rgb(106,153,85)">    // default consumer requests a Poisson process</span></div><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(78,201,176)">ndn</span><span style="color:rgb(212,212,212)">::</span><span style="color:rgb(78,201,176)">AppHelper</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">benignConsumerHelper</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"ns3::ndn::ConsumerCbr"</span><span style="color:rgb(212,212,212)">);</span></div><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(156,220,254)">benignConsumerHelper</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">SetPrefix</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"/fine"</span><span style="color:rgb(212,212,212)">);</span></div><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(156,220,254)">benignConsumerHelper</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">SetAttribute</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"Frequency"</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(78,201,176)">StringValue</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"100"</span><span style="color:rgb(212,212,212)">));</span></div><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(156,220,254)">benignConsumerHelper</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">SetAttribute</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"LifeTime"</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(78,201,176)">StringValue</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"2s"</span><span style="color:rgb(212,212,212)">));</span></div><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(156,220,254)">benignConsumerHelper</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">SetAttribute</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"Randomize"</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(78,201,176)">StringValue</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"uniform"</span><span style="color:rgb(212,212,212)">));</span></div><br><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(78,201,176)">ndn</span><span style="color:rgb(212,212,212)">::</span><span style="color:rgb(78,201,176)">AppHelper</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">maliciousConsumerHelper</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"ns3::ndn::ConsumerCbr"</span><span style="color:rgb(212,212,212)">);</span></div><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(156,220,254)">maliciousConsumerHelper</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">SetPrefix</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"/forged"</span><span style="color:rgb(212,212,212)">);</span></div><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(156,220,254)">maliciousConsumerHelper</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">SetAttribute</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"Frequency"</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(78,201,176)">StringValue</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"1000"</span><span style="color:rgb(212,212,212)">));</span></div><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(156,220,254)">maliciousConsumerHelper</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">SetAttribute</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"LifeTime"</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(78,201,176)">StringValue</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"2s"</span><span style="color:rgb(212,212,212)">));</span></div><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(156,220,254)">maliciousConsumerHelper</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">SetAttribute</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"Randomize"</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(78,201,176)">StringValue</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"uniform"</span><span style="color:rgb(212,212,212)">));</span></div><br><div><span style="color:rgb(106,153,85)">    // In this simulation, the attacker does request nonexistent contents.</span></div><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(78,201,176)">ndn</span><span style="color:rgb(212,212,212)">::</span><span style="color:rgb(78,201,176)">AppHelper</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">producerHelper1</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"ns3::ndn::Producer"</span><span style="color:rgb(212,212,212)">);</span></div><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(156,220,254)">producerHelper1</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">SetPrefix</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"/fine"</span><span style="color:rgb(212,212,212)">);</span></div><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(156,220,254)">producerHelper1</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">SetAttribute</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"PayloadSize"</span><span style="color:rgb(212,212,212)">, </span><span style="color:rgb(78,201,176)">StringValue</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(206,145,120)">"1024"</span><span style="color:rgb(212,212,212)">));</span></div><br><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(78,201,176)">ns3</span><span style="color:rgb(212,212,212)">::</span><span style="color:rgb(78,201,176)">NodeContainer</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">badNodes</span><span style="color:rgb(212,212,212)">;</span></div><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(156,220,254)">badNodes</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">Add</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(78,201,176)">Names</span><span style="color:rgb(212,212,212)">::</span><span style="color:rgb(220,220,170)">Find</span><span style="color:rgb(212,212,212)"><</span><span style="color:rgb(78,201,176)">Node</span><span style="color:rgb(212,212,212)">>(</span><span style="color:rgb(206,145,120)">"NodeC3"</span><span style="color:rgb(212,212,212)">));</span></div><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(156,220,254)">badNodes</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">Add</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(78,201,176)">Names</span><span style="color:rgb(212,212,212)">::</span><span style="color:rgb(220,220,170)">Find</span><span style="color:rgb(212,212,212)"><</span><span style="color:rgb(78,201,176)">Node</span><span style="color:rgb(212,212,212)">>(</span><span style="color:rgb(206,145,120)">"NodeC4"</span><span style="color:rgb(212,212,212)">));</span></div><br><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(156,220,254)">benignConsumerHelper</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">Install</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(78,201,176)">Names</span><span style="color:rgb(212,212,212)">::</span><span style="color:rgb(220,220,170)">Find</span><span style="color:rgb(212,212,212)"><</span><span style="color:rgb(78,201,176)">Node</span><span style="color:rgb(212,212,212)">>(</span><span style="color:rgb(206,145,120)">"NodeC1"</span><span style="color:rgb(212,212,212)">));</span></div><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(156,220,254)">benignConsumerHelper</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">Install</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(78,201,176)">Names</span><span style="color:rgb(212,212,212)">::</span><span style="color:rgb(220,220,170)">Find</span><span style="color:rgb(212,212,212)"><</span><span style="color:rgb(78,201,176)">Node</span><span style="color:rgb(212,212,212)">>(</span><span style="color:rgb(206,145,120)">"NodeC2"</span><span style="color:rgb(212,212,212)">));</span></div><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(86,156,214)">auto</span><span style="color:rgb(212,212,212)"> </span><span style="color:rgb(156,220,254)">icnAttack1</span><span style="color:rgb(212,212,212)"> = </span><span style="color:rgb(156,220,254)">maliciousConsumerHelper</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">Install</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(156,220,254)">badNodes</span><span style="color:rgb(212,212,212)">);</span></div><br><div><span style="color:rgb(106,153,85)">    // IFAs run from 25 seconds to 45 seconds</span></div><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(156,220,254)">icnAttack1</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">Start</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(220,220,170)">Seconds</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(181,206,168)">25.0</span><span style="color:rgb(212,212,212)">));</span></div><div><span style="color:rgb(212,212,212)">    </span><span style="color:rgb(156,220,254)">icnAttack1</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">Stop</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(220,220,170)">Seconds</span><span style="color:rgb(212,212,212)">(</span><span style="color:rgb(181,206,168)">45.0</span><span style="color:rgb(212,212,212)">));</span></div></div></div><div><br></div><div>Thanks,</div><div><br></div><div>Eric<br></div></div>