[ndnSIM] Receiving an error while using Globalrouting

Spyridon Mastorakis smastorakis at unomaha.edu
Mon May 4 10:47:33 PDT 2020


Hi,

Most probably you are trying to apply the helper to a node that does not exist. I guess somehow the range of nodes gets out of bounds. Did you try to use the debugger and see what is going on through the debug trace?

Thanks,

Spyridon (Spyros) Mastorakis
Assistant Professor
Computer Science Department
University of Nebraska, Omaha
Peter Kiewit Institute Room 175A
https://sites.google.com/site/spyridonmastorakis

On Apr 25, 2020, at 7:57 AM, Zeinab Rezaeifar via ndnSIM <ndnsim at lists.cs.ucla.edu<mailto:ndnsim at lists.cs.ucla.edu>> wrote:

Hi there,
when I use the Globalrouting instead of default route in the following scenario I will receive this error:
“ assert failed. cond="n < m_nodes.size ()", msg="Node index 4294967295 is out of range (only have 19 nodes).", file=../src/network/model/node-list.cc<https://urldefense.proofpoint.com/v2/url?u=http-3A__node-2Dlist.cc_&d=DwMFaQ&c=Cu5g146wZdoqVuKpTNsYHeFX_rg6kWhlkLF8Eft-wwo&r=eI5Bh74ovG-uIXQ5ksQETSPgRFzmJXjIZXneCqw580E&m=ZcApI5ZnVlTLZf_wVSfW4MriXPn1GxSjY0u6RyzF0Ks&s=SLkkKzqSZdDjSXRNa8xqWiUinPybc_qpS8WGHe9AcV8&e=>, line=209
libc++abi.dylib: terminating
Command ['/Users/zrf/ndnSIM/ns-3/build/scratch/xc'] terminated with signal SIGIOT. Run it under a debugger to get more information (./waf --run <program> --command-template="gdb --args %s <args>”). “

the scenario that I run :

// ndn-simple.cpp

#include "ns3/core-module.h"
#include "ns3/network-module.h"
#include "ns3/point-to-point-module.h"
#include "ns3/ndnSIM-module.h"
#include "ns3/ndnSIM/utils/trie/lru-policy.hpp"
#include "ns3/ndnSIM/utils/trie/multi-policy.hpp"


namespace ns3 {


int
main(int argc, char* argv[])
{
  // setting default parameters for PointToPoint links and channels
  Config::SetDefault ("ns3::PointToPointNetDevice::DataRate", StringValue ("10Mbps"));
  Config::SetDefault ("ns3::PointToPointChannel::Delay", StringValue ("1ms"));
 // Config::SetDefault ("ns3::DropTailQueue::MaxPackets", StringValue ("20p"));
      Config::SetDefault("ns3::QueueBase::MaxSize", StringValue("10p"));


  // Read optional command-line parameters (e.g., enable visualizer with ./waf --run=<> --visualize
  CommandLine cmd;
  cmd.Parse(argc, argv);

  // Creating nodes
 NodeContainer routerNodes;
  NodeContainer producerNodes;
  NodeContainer consumerNodes;
    NodeContainer attackerNodes;
//producerNodes.Create(3);
consumerNodes.Create(9);
routerNodes.Create(9);
attackerNodes.Create(1);


  // Connecting nodes using two links
  PointToPointHelper p2p;


   //Router 0
   p2p.Install(routerNodes.Get(0), routerNodes.Get(1));
   p2p.Install(routerNodes.Get(0), routerNodes.Get(2));
   p2p.Install(routerNodes.Get(0), routerNodes.Get(3));
   p2p.Install(routerNodes.Get(0), routerNodes.Get(6));

   //Router 1
   p2p.Install(routerNodes.Get(1), routerNodes.Get(2));
   p2p.Install(routerNodes.Get(1), routerNodes.Get(4));
   p2p.Install(routerNodes.Get(1), routerNodes.Get(7));

   //Router 2
   p2p.Install(routerNodes.Get(2), routerNodes.Get(5));
   p2p.Install(routerNodes.Get(2), routerNodes.Get(8));

   //Router 3
   //Router 4
   //Router 5
   //Router 6
   //Router 7
   //Router 8

   //Producers
   p2p.Install(routerNodes.Get(3), consumerNodes.Get(6));
   p2p.Install(routerNodes.Get(4), consumerNodes.Get(7));
   p2p.Install(routerNodes.Get(5), consumerNodes.Get(8));

   //Consumers
   p2p.Install(consumerNodes.Get(0), routerNodes.Get(6));
   p2p.Install(consumerNodes.Get(1), routerNodes.Get(7));
   p2p.Install(consumerNodes.Get(2), routerNodes.Get(8));
   p2p.Install(consumerNodes.Get(3), routerNodes.Get(3));
   p2p.Install(consumerNodes.Get(4), routerNodes.Get(4));
   p2p.Install(consumerNodes.Get(5), routerNodes.Get(5));

  // Install NDN stack on all nodes
  ndn::StackHelper ndnHelper;
//ndnHelper.SetDefaultRoutes(true);
ndnHelper.SetOldContentStore("ns3::ndn::cs::Lru", "MaxSize", "0");
      ndnHelper.InstallAll();

///ndnHelper.Install(routerNodes);
//ndnHelper.SetOldContentStore("ns3::ndn::cs::Nocache");
///ndnHelper.Install(consumerNodes);

//  ndnHelper.InstallAll();

  // Choosing forwarding strategy
  //ndn::StrategyChoiceHelper::InstallAll("/prefix", "/localhost/nfd/strategy/multicast");
// ndn::StrategyChoiceHelper::InstallAll("/prefix", "/localhost/nfd/strategy/ncc");
ndn::StrategyChoiceHelper::InstallAll("/", "/localhost/nfd/strategy/best-route");
     // Installing global routing interface on all nodes
 ndn::GlobalRoutingHelper ndnGlobalRoutingHelper;
  ndnGlobalRoutingHelper.InstallAll ();

  // Installing applications
//NodeContainer consumerNodes;
//  consumerNodes.Add (nodes.Get(0));
// consumerNodes.Add (nodes.Get(4));
  // Consumer
 std::string prefix= "/prefix";
    std::string prefix2 = "/fake";
    Ptr<Node> producer=consumerNodes.Get(1);

  ndn::AppHelper consumerHelper("ns3::ndn::ConsumerZipfMandelbrot");
  // ndn::AppHelper consumerHelper ("ns3::ndn::ConsumerCbr");
  consumerHelper.SetPrefix(prefix);
  consumerHelper.SetAttribute("Frequency", StringValue("100"));        // 100 interests a second
  consumerHelper.SetAttribute("NumberOfContents", StringValue("100")); // 10 different contents
consumerHelper.SetAttribute("s", StringValue("0.9"));
 consumerHelper.Install(consumerNodes.Get(3));
consumerHelper.Install(consumerNodes.Get(5));
consumerHelper.Install(consumerNodes.Get(7));
consumerHelper.SetAttribute("Frequency", StringValue("50"));        // 100 interests a second
consumerHelper.Install(consumerNodes.Get(0));
consumerHelper.Install(consumerNodes.Get(2));
consumerHelper.Install(consumerNodes.Get(4));
consumerHelper.Install(consumerNodes.Get(6));
consumerHelper.Install(consumerNodes.Get(8));
    //*************
    ndn::AppHelper consumerHelper2("ns3::ndn::ConsumerZipfMandelbrot");
  // ndn::AppHelper consumerHelper ("ns3::ndn::ConsumerCbr");
  consumerHelper2.SetPrefix("/fake");
  consumerHelper2.SetAttribute("Frequency", StringValue("200"));        // 100 interests a second
  consumerHelper2.SetAttribute("NumberOfContents", StringValue("100")); // 10 different contents
consumerHelper2.SetAttribute("s", StringValue("0.9"));
 //consumerHelper2.Install(attackNodes.Get(0));
     auto apps2 = consumerHelper2.Install(attackerNodes.Get(0));                        // first node
    apps2.Start(Seconds(0.1));



  // Producer
  ndn::AppHelper producerHelper("ns3::ndn::Producer");
  // Producer will reply to all requests starting with /prefix
  producerHelper.SetPrefix("/prefix");
  producerHelper.SetAttribute("PayloadSize", StringValue("1024"));
  producerHelper.Install(consumerNodes.Get(1)); // last node
  // ndnGlobalRoutingHelper.AddOrigins (prefix, producer);

    ndn::AppHelper producerHelper2("ns3::ndn::Producer");
  // Producer will reply to all requests starting with /prefix
  producerHelper2.SetPrefix("/fake");
  producerHelper2.SetAttribute("PayloadSize", StringValue("1024"));
  producerHelper2.Install(consumerNodes.Get(1)); // last node
    ndnGlobalRoutingHelper.AddOrigins (prefix2, producer);
// Calculate and install FIBs
 ndnGlobalRoutingHelper.CalculateRoutes ();
  Simulator::Stop(Seconds(20.0));
///ndn::AppDelayTracer::InstallAll("app-delays-trace.txt");

 ///AsciiTraceHelper ascii;
  ///p2p.EnableAsciiAll (ascii.CreateFileStream ("ndn-simple.tr<https://urldefense.proofpoint.com/v2/url?u=http-3A__ndn-2Dsimple.tr_&d=DwMFaQ&c=Cu5g146wZdoqVuKpTNsYHeFX_rg6kWhlkLF8Eft-wwo&r=eI5Bh74ovG-uIXQ5ksQETSPgRFzmJXjIZXneCqw580E&m=ZcApI5ZnVlTLZf_wVSfW4MriXPn1GxSjY0u6RyzF0Ks&s=_ZyrTiS6JlNcctc2ptn-UOxkYx28qp6sOc_ZJq0W8z4&e=>"));
 ///p2p.EnablePcapAll ("ndn-simple");
ndn::CsTracer::InstallAll("cs-trace.txt", Seconds(1));
  Simulator::Run();
  Simulator::Destroy();

  return 0;
}

} // namespace ns3

int
main(int argc, char* argv[])
{
  return ns3::main(argc, argv);

}


I do not understand what mistakes I am doing. I will appreciate your help
Kind regards
Zeinab


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


More information about the ndnSIM mailing list