Problem instantiating UEs

23 views
Skip to first unread message

Eduardo Camelo

unread,
Oct 23, 2025, 6:14:41 PM (6 days ago) Oct 23
to ns-3-users

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);
}
Reply all
Reply to author
Forward
0 new messages