Hello ns-3 community,
I am struggling with an Uplink communication issue using the NR module (5G-LENA) in ns-3.46. Despite a correct RRC connection and IP assignment, Uplink packets are silently dropped within the UE stack, and the gNB never receives any physical signal (no UL SINR calculated).
1. Environment:
- ns-3 Version: 3.46
- Module: 5G-LENA (NR)
- Architecture: 4 UEs <-> 1 gNB <-> EPC (PGW) <-> RemoteHost.
- Helper used: NrPointToPointEpcHelper and NrHelper.
2. The Problem:
I am sending UDP traffic from the UE to the RemoteHost (Uplink).
I have traced the packet flow through the stack:
- Application Level: UdpClient is sending packets correctly.
- IP Level: Ipv4L3Protocol::SendOutgoing is triggered. The routing table shows a valid default route to the PGW (7.0.0.1).
- NetDevice Level: I connected to the NrUeNetDevice::Tx trace. The packets reach this point.
- Radio Level: PhyTxStart (UE) and PhyRxBegin (gNB) are never triggered.
3. Key Observation:
When tracing the packet at the entry of NrUeNetDevice, the destination MAC address is reported as Broadcast (ff:ff:ff:ff:ff:ff). Since NR is a point-to-point technology, I suspect the stack is dropping these packets because it doesn't support broadcast data.
4. Attempted Fixes (without success):
- I tried disabling ARP on the IPv4 interface using iface->SetArpCache(nullptr).
- I tried activating the Data Radio Bearer explicitly using:
Ptr<NrEpcTft> tft = Create<NrEpcTft>(); // Empty TFT (catch-all)
NrEpsBearer bearer(NrEpsBearer::NGBR_VIDEO_TCP_DEFAULT);
epcHelper->ActivateEpsBearer(ueDev, imsi, tft, bearer);
- RRC state reaches CONNECTED_NORMALLY, but DataBearerActivated trace is never triggered.
5. Relevant Code Snippet:
// NR Setup
NetDeviceContainer gnbDevs = nrHelper->InstallGnbDevice(gnbNodes, bwpManager);
NetDeviceContainer ueDevs = nrHelper->InstallUeDevice(ueNodes, bwpManager);
epcHelper->AssignUeIpv4Address(ueDevs);
nrHelper->AttachToClosestGnb(ueDevs, gnbDevs);
// Routing
Ptr<Ipv4StaticRouting> ueStaticRouting = routingHelper.GetStaticRouting(ueNode->GetObject<Ipv4>());
ueStaticRouting->SetDefaultRoute(Ipv4Address("7.0.0.1"), 1);
// Bearer activation attempted here...
epcHelper->ActivateEpsBearer(ueDev, imsi, tft, bearer);
Question: Why would the NrUeNetDevice receive a packet from the IP layer but fail to pass it to the RLC/MAC layers for transmission? Is there a specific configuration required in 5G-LENA to ensure the IPv4 layer sees the NR device as a pure point-to-point link (avoiding the broadcast destination)?
Thank you very much for your time and help.