From salwa201067 at gmail.com Fri Dec 12 03:08:50 2025 From: salwa201067 at gmail.com (Salwa Abdelwahed) Date: Fri, 12 Dec 2025 12:08:50 +0100 Subject: [ndnSIM] Request for information about L2RateTracer and CsTracer Message-ID: Greetings , I am simulating the attached scenario. I am encountering problems with L2RateTracer ('ndn::L2RateTracer' has not been declared) and CsTracer (a crash occurs in the TraceConnectWithoutContext method). Do these two traces still remain active in ndnSIM? -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ #include "ns3/core-module.h" #include "ns3/network-module.h" #include "ns3/point-to-point-module.h" #include "ns3/ndnSIM-module.h" using namespace ns3; int main(int argc, char* argv[]) { CommandLine cmd; cmd.Parse(argc, argv); NodeContainer routers; routers.Create(20); NodeContainer consumers; consumers.Create(100); NodeContainer producers; producers.Create(4); // Cr?er un container "all" utile pour installer la stack si besoin NodeContainer allNodes; allNodes.Add(routers); allNodes.Add(consumers); allNodes.Add(producers); Config::SetDefault("ns3::PointToPointNetDevice::DataRate", StringValue("1Mbps")); Config::SetDefault("ns3::PointToPointChannel::Delay", StringValue("10ms")); PointToPointHelper p2p; p2p.SetQueue("ns3::DropTailQueue", "MaxSize", StringValue("20p")); p2p.SetDeviceAttribute("DataRate", StringValue("1Mbps")); p2p.SetChannelAttribute("Delay", StringValue("10ms")); for (uint32_t i = 0; i < routers.GetN() - 1; ++i) { p2p.Install(routers.Get(i), routers.Get(i + 1)); } // Connecter les consumers aux 5 premiers routers (round robin) for (uint32_t i = 0; i < consumers.GetN(); ++i) { uint32_t routerIndex = i % 5; p2p.Install(consumers.Get(i), routers.Get(routerIndex)); } // Connecter les producers aux 4 derniers routers (indices 16..19) for (uint32_t i = 0; i < producers.GetN(); ++i) { uint32_t routerIndex = routers.GetN() - producers.GetN() + i; // 16..19 p2p.Install(producers.Get(i), routers.Get(routerIndex)); } ns3::ndn::StackHelper ndnHelper; // Choisir CS de type Stats::Lru (n?cessaire pour CsTracer) et taille ndnHelper.setPolicy("nfd::cs::lru"); ndnHelper.setCsSize(1000); ndnHelper.Install(allNodes); ns3::ndn::StrategyChoiceHelper::InstallAll("/", "/localhost/nfd/strategy/best-route"); ns3::ndn::GlobalRoutingHelper grHelper; grHelper.Install(routers); grHelper.Install(producers); std::vector prefixes = {"/prefix1", "/prefix2", "/prefix3", "/prefix4"}; for (uint32_t i = 0; i < producers.GetN(); ++i) { ns3::ndn::AppHelper producerHelper("ns3::ndn::Producer"); std::string pref = prefixes[i % prefixes.size()]; producerHelper.SetPrefix(pref); producerHelper.SetAttribute("PayloadSize", StringValue("1024")); producerHelper.Install(producers.Get(i)); grHelper.AddOrigins(pref, producers.Get(i)); } for (uint32_t i = 0; i < consumers.GetN(); ++i) { ns3::ndn::AppHelper consumerHelper("ns3::ndn::ConsumerCbr"); std::string pref = prefixes[i % prefixes.size()]; consumerHelper.SetPrefix(pref); consumerHelper.SetAttribute("Frequency", StringValue("100")); // 100 Int/s consumerHelper.Install(consumers.Get(i)); } // Calculer les routes globales (apr?s AddOrigins) ns3::ndn::GlobalRoutingHelper::CalculateRoutes(); Simulator::Stop(ns3::Seconds(20.0)); // AppDelay + L3Rate : ok en InstallAll ns3::ndn::AppDelayTracer::InstallAll("delays.csv"); ns3::ndn::L3RateTracer::InstallAll("rate.csv", ns3::Seconds(1.0)); ns3::ndn::L2RateTracer::InstallAll ("drop-trace.csv", Seconds (0.5)); ns3::ndn::CsTracer::InstallAll ("cs-trace.csv", Seconds (1)); Simulator::Run(); Simulator::Destroy(); return 0; }