[ndnSIM] Receiving an error while using Globalrouting
Zeinab
zeinab.rezaiefar at gmail.com
Tue May 5 05:06:30 PDT 2020
Hi spyridon,
I solved my problem. Yes, you are right. One node was not connected
Thank you so much
Best regards
Zeinab
> On 4 May 2020, at 18:47, Spyridon Mastorakis <smastorakis at unomaha.edu> wrote:
>
> 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> 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, 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"));
>> ///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/20200505/07c4d26b/attachment-0001.html>
More information about the ndnSIM
mailing list