Skip to content

Fix: Don’t grant DL data to a UE with no free H-ARQ process - #307

Open
umaan1982 wants to merge 1 commit into
Unipisa:masterfrom
umaan1982:fix/dl-harq-eligibility
Open

umaan1982 wants to merge 1 commit into
Unipisa:masterfrom
umaan1982:fix/dl-harq-eligibility

Conversation

@umaan1982

Copy link
Copy Markdown

Hi,

while working with Simu5G 1.2.2 on a DL scenario with a lot of interference, we lost packets at the application while the MAC reported 0 % loss. We traced it to LteSchedulerEnbDl::checkEligibility(). The same code is still on master.

If a UE has no free H-ARQ process, firstAvailable() returns HARQ_NONE. That case falls through to return true, so the UE still gets a grant. The RLC builds PDUs for it, and LteMacEnb::macPduMake() then finds no free process and deletes the MAC PDU (“no available process for this MAC PDU in TxHarqBuffer”). No statistic counts this. The UE’s RLC sees the sequence gaps and drops the affected SDUs.

In our run the gNB deleted 214 MAC PDUs in the first 3 seconds. With this change it deleted none, and delivery of a 300 B periodic flow went from 58 % to 90 % (mean over 20 seeds).

The fix returns false in that case, so the UE simply waits a TTI. Retransmissions go through schedulePerAcidRtx() and aren’t affected. Fingerprints of scenarios where a UE runs out of H-ARQ processes will probably change.

LteMacUe::macPduMake() has a similar delete on the UL side; we haven’t looked into that one.

Thanks!

LteSchedulerEnbDl::checkEligibility() fell through to 'return true' when
no H-ARQ process was free. The UE was granted, the RLC built PDUs, and
LteMacEnb::macPduMake() then deleted the MAC PDU without any statistic.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant