ErwinLi opened issue #1068: `UlBandwidth`/`DlBandwidth` Configuration Not Taking Effect at nsnam / ns-3-dev

ErwinLi
2024-04-16T00:01:36Z

I am experiencing an issue with setting the U/DlBandwidth attribute for the LTE eNodeB device. While the initial method of configuration directly on the LteHelper object successfully applies the bandwidth settings and affects the network performance, subsequent methods using either Config::Set or LteEnbNetDevice::SetUlBandwidth() do not seem to affect the network performance as expected.

According to the document of LteEnbNetDevice::UpdateConfig(), this function is needed to update the sub-modules of LteEnbNetDevice when modifying bandwidth, so I tried to modify the source code and add updateConfig() in SetUlBandwidth() and SetDlBandwidth but does not work.

"Several attributes (e.g., the bandwidth) are exported as the attributes of the LteEnbNetDevice from a user perspective, but are actually used also in other sub-modules (the RRC, the PHY, the scheduler, etc.)."

I have attached a snippet of the recorded data and the relevant parts of the simulation setup code to help diagnose the issue. Any insights or suggestions would be appreciated:

# Method 1: Configure is changed and made effects to network
lte_helper.SetEnbDeviceAttribute("UlBandwidth", ns.UintegerValue(100))

enb_devices = lte_helper.InstallEnbDevice(enb_nodes)
ue_devices = lte_helper.InstallUeDevice(ue_nodes)

# Method 2: Configure is changed but does not affect the network performance
enb_node = enb_nodes.Get(0)
enb_node_id = enb_node.GetId()
ns.Config.Set(f"/NodeList/{enb_node_id}/DeviceList/*/$ns3::LteNetDevice/$ns3::LteEnbNetDevice/UlBandwidth", ns.UintegerValue(6))

# Method 3: Configure is changed but does not affect the network performance
enb_net_device = enb_node.GetDevice(0).GetObject["LteEnbNetDevice"]()
enb_net_device.SetUlBandwidth(6)

Tested version: ns-3.4.0 and ns-3.4.1