[ndnSIM] Receiving an error while using Globalrouting
Zeinab Rezaeifar
zeinab.rezaiefar at gmail.com
Sat Apr 25 05:57:14 PDT 2020
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 <http://node-list.cc/>, 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 <http://ndn-simple.tr/>"));
///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/20200425/6c9b473f/attachment-0001.html>
More information about the ndnSIM
mailing list