[ndnSIM] Request for information about L2RateTracer and CsTracer
Salwa Abdelwahed
salwa201067 at gmail.com
Fri Dec 12 03:08:50 PST 2025
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: <http://www.lists.cs.ucla.edu/pipermail/ndnsim/attachments/20251212/4f1d0bb8/attachment.htm>
-------------- 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<Packet>", "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<std::string> 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;
}
More information about the ndnSIM
mailing list