// === Internet stack & IPs (required for FlowMonitor) ===
InternetStackHelper internet;
internet.Install(vehicleNodes);
internet.Install(pedestrianNodes);
Ipv4AddressHelper ipv4;
ipv4.SetBase("10.0.0.0", "255.255.255.0");
// === NR-V2X helper & devices ===
Ptr<NrHelper> nrHelper = CreateObject<NrHelper>();
nrHelper->EnableSidelink();
Ptr<SidelinkResourcePool> pool = CreateObject<SidelinkResourcePool>();
pool->SetAttribute("PoolSize", UintegerValue(rbNum));
pool->SetAttribute("Bandwidth", UintegerValue(20));
pool->SetAttribute("SelectionWindow", UintegerValue(100));
nrHelper->SetSidelinkResourcePool(pool);
// === WINNER II B1 channel ===
Ptr<SpectrumChannel> channel = CreateObject<SpectrumChannel>();
// LOS model
Ptr<ThreeGppPropagationLossModel> winnerLOS = CreateObject<ThreeGppPropagationLossModel>();
winnerLOS->SetAttribute("Scenario", EnumValue(ThreeGppPropagationLossModel::UMi_StreetCanyon));
winnerLOS->SetAttribute("ChannelCondition", EnumValue(ThreeGppPropagationLossModel::LOS));
winnerLOS->SetAttribute("Frequency", DoubleValue(5.9e9));
winnerLOS->SetAttribute("ShadowingStdDev", DoubleValue(4.0));
channel->AddPropagationLossModel(winnerLOS);
// NLOS model