[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