Hi everyone!
I was running some experiments with the MAC scheduler for 2 different scenarios: the first containing only one UE and the other containing three UEs, and alternating between RR and my own implementation of WRR. Anyway, when I was running the second scenario (with 3 UEs using RR), from the beginning of the simulation to the end, the delay just increases indefinitely.
I wanted to know if I am instantiating the UEs correctly or how I can debug this to find the error?
void BuildApps(Ipv4InterfaceContainer& ueIpIface)
{
/*
* Traffic part. Install two kind of traffic: low-latency and voice, each
* identified by a particular source port.
*/
uint16_t dlPortLowLat = 1234;
uint16_t dlPortClassic = 1235 + uesContainer.GetN();
ApplicationContainer serverApps;
ApplicationContainer clientApps;
// configure the TCP CUBIC socket
Config::Set("NodeList/" + std::to_string(remoteHostLowLat->GetId()) +
"/$ns3::TcpL4Protocol/SocketType",
TypeIdValue(TcpPrague::GetTypeId()));
Config::Set("NodeList/" + std::to_string(remoteHostClassic->GetId()) +
"/$ns3::TcpL4Protocol/SocketType",
TypeIdValue(TcpCubic::GetTypeId()));
for (uint32_t i = 0; i < uesContainer.GetN(); ++i){
Config::Set("NodeList/" + std::to_string(uesContainer.Get(i)->GetId()) +
"/$ns3::TcpL4Protocol/SocketType",
TypeIdValue(TcpCubic::GetTypeId()));
PacketSinkHelper dlSinkVoice("ns3::TcpSocketFactory",
InetSocketAddress(Ipv4Address::GetAny(), dlPortClassic + i));
serverApps.Add(dlSinkVoice.Install(uesContainer.Get(i)));
BulkSendHelper dlClientVoice("ns3::TcpSocketFactory", Address());
dlClientVoice.SetAttribute("SendSize", UintegerValue(1024));
AddressValue remoteAddressVoice(InetSocketAddress(ueIpIface.GetAddress(i), dlPortClassic + i));
dlClientVoice.SetAttribute("Remote", AddressValue(remoteAddressVoice));
clientApps.Add(dlClientVoice.Install(remoteHostClassic));
// configure the TCP Prague socket
Config::Set("NodeList/" + std::to_string(uesContainer.Get(i)->GetId()) +
"/$ns3::TcpL4Protocol/SocketType",
TypeIdValue(TcpPrague::GetTypeId()));
// The sink will always listen to the specified ports
PacketSinkHelper dlSinkLowLat("ns3::TcpSocketFactory",
InetSocketAddress(Ipv4Address::GetAny(), dlPortLowLat + i));
serverApps.Add(dlSinkLowLat.Install(uesContainer.Get(i)));
// The client will always send to the specified ports
BulkSendHelper dlClientLowLat("ns3::TcpSocketFactory", Address());
dlClientLowLat.SetAttribute("SendSize", UintegerValue(1024));
AddressValue remoteAddressLowLat(InetSocketAddress(ueIpIface.GetAddress(i), dlPortLowLat + i));
dlClientLowLat.SetAttribute("Remote", AddressValue(remoteAddressLowLat));
clientApps.Add(dlClientLowLat.Install(remoteHostLowLat));
}
// start TCP server and client apps
serverApps.Start(TcpAppStart);
clientApps.Start(TcpAppStart);
serverApps.Stop(simTime);
clientApps.Stop(simTime);
}