Clarification on nprb

20 views
Skip to first unread message

Guy Gabay

unread,
Jan 5, 2026, 11:27:56 PM (11 days ago) Jan 5
to 5G-LENA-users

Hi all,
I’m looking for clarification regarding NrAmc::CalculateTbSize(uint8_t mcs, uint8_t rank, uint32_t nprb) when using the NR TDMA scheduler in ns-3 (5G-LENA).

Conceptually, nprb should represent the number of PRBs allocated to a UE (i.e., dci.m_rbLen).
However, in the TDMA scheduler I’m observing that nprb behaves like a cumulative counter (number of RBs allocated/scanned so far while building the schedule), and this same variable is then passed directly to CalculateTbSize().

This makes the TB size depend on:

  • UE ordering in the scheduler loop

  • internal traversal state rather than the actual allocation

My understanding is that the correct behavior should be:

uint32_t rbAllocatedToUe = dci.m_rbLen;
uint32_t tbSize = m_amc->CalculateTbSize(mcs, rank, rbAllocatedToUe);

i.e., pass a fixed number of PRBs actually allocated to the UE, and keep any cumulative counters separate for internal bookkeeping only.

This ensures that:

  • TB size is stable and independent of UE order

  • AMC and DCI allocations are consistent

  • BLER and throughput results are realistic

Is the current behavior:

  1. Intended by design?

  2. A known simplification of the TDMA scheduler?

  3. Or an implementation issue where nprb is reused for two different purposes?

Any guidance or clarification would be greatly appreciated. Thanks!

Tom Henderson

unread,
Jan 6, 2026, 1:10:09 PM (11 days ago) Jan 6
to Guy Gabay, 5G-LENA-users

Hello Guy,

I don't know much about the TDMA scheduler (I work mainly on sidelink code) but I looked at the calls to CalculateTbSize() in the TDMA scheduler code (also in the nr-mac-scheduler-ue-info.cc) and it doesn't seem to me that cumulative counts are passed; each call is using either m_ulRBG or m_dlRBG, which are per-UE variables.  If you still think there is a problem, can you please provide more details?

In working on sidelink code, I recently looked at this method carefully and noticed that it does not calculate the TB size strictly (the name of the method is not fully accurate), and I wrote up some proposed documentation changes in a merge request that is waiting for review/comment.  If you or others want to review my proposal, or have other suggested improvements, I'd appreciate the review.

https://gitlab.com/cttc-lena/nr/-/merge_requests/341

- Tom

--
You received this message because you are subscribed to the Google Groups "5G-LENA-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to 5g-lena-user...@googlegroups.com.
To view this discussion, visit https://groups.google.com/d/msgid/5g-lena-users/f10240ab-1aae-4938-9634-d68e4e6fc245n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages