Slot scheduler, MCS and HARQ¶
By default HandoverLab computes the delivered rate from the SINR with a capacity formula and shares
a cell's resources among its users in proportion to their demand. Since 2.2.0 the option
protocol.scheduler replaces this with a data plane that plays every slot: resource blocks per
user, an MCS of TS 38.214, transport blocks that fail with a block error probability, and HARQ
retransmissions. It is off by default; with it off every result of 2.1.0 is unchanged bit for bit.
scenario:
base: ns3-urban-3.5ghz
traffic: {model: full_buffer}
protocol:
scheduler: pf # rr (round robin) or pf (proportional fair); null: off
harq_max_tx: 4 # transmissions of a transport block (first + retransmissions)
harq_rtt_slots: 8 # HARQ round trip [slots]
l2s_loss_db: 1.0 # implementation loss of the block-error model [dB]
It combines with fast fading (radio.fast_fading, see fast fading): the scheduler
then uses the effective SINR over the carrier.
1. What a slot does¶
| Item | Source | HandoverLab |
|---|---|---|
| Slot length | TS 38.211 Table 4.3.2-1 (2^mu slots per 1 ms subframe) | 1 ms / 2^mu for the subcarrier spacing of the carrier |
| Resource blocks of a cell | TS 38.101-1/-2 Table 5.3.2-1 | N_RB of the carrier, less the share of the background load |
| Who gets them | gNB implementation (not specified) | rr: every connected user with data gets an equal share in every slot; pf: the whole band goes to the user with the largest instantaneous over average rate; a due retransmission comes first |
| MCS | TS 38.214 Table 5.1.3.1-1 (MCS table 1) | the highest MCS whose block-error probability at the SINR reported one measurement interval earlier is at most 10 % |
| Transport block size | TS 38.214 clause 5.1.3.2 | steps 1 to 4 with Table 5.1.3.2-1; 12 PDSCH symbols, 12 DMRS REs per PRB, no xOverhead |
| HARQ processes | TS 38.321 5.3.2; TS 38.331 PDSCH-ServingCellConfig | 8 per user (the number when nrofHARQ-ProcessesForPDSCH is absent); a new transport block needs a free process |
| Retransmission | TS 38.321 5.3.2.2 (combined with the earlier data) | after harq_rtt_slots, chase combining (the SINRs of the transmissions add), at most harq_max_tx transmissions (the number is the network's choice) |
2. The block-error probability¶
3GPP gives no curve of block errors against SINR; it is a property of the receiver. HandoverLab
uses the normal approximation of the error probability of a code of finite length (Polyanskiy,
Poor and Verdu, IEEE Trans. Inf. Theory 56(5), 2010) on the bit channel of the modulation: the
mutual information C and the dispersion V per coded bit of QPSK, 16QAM and 64QAM with Gray mapping
(computed by quadrature), and P_e = Q((n C - k + log2(n) / 2) / sqrt(n V)) for n coded bits and
k = TBS + 24 information bits, at the SINR less l2s_loss_db (the gap of a practical LDPC decoder,
an assumption). For 51 PRBs the 10 % points run from about -6 dB (MCS 0) to about 19 dB (MCS 28);
at each of them the spectral efficiency of the MCS lies below the Shannon capacity. No block-error
table of another simulator is used.
3. Cost and limits¶
- Every slot is played: about 45 times the time of the default rate model (10 users on the ns-3 card: about 90 s instead of 2 s for 20 s simulated). Use it for focused studies; a compiled loop is planned.
- The channel is held for the 10 ms step; mobility decisions stay on the 10 ms grid.
- This version needs the base engine (no beams, layers, NTN or TS 38.133 periods).
- Data of a user stop during a handover interruption and wait in its buffer; forwarding between cells, RLC and PDCP are the next item of the roadmap.
- The decoding draws come from the world's stream
harq, one number per user and slot whatever the decisions, so every rule compared on one seed sees the same draws.
4. Checks¶
tests/test_scheduler.py holds the criteria fixed before the code: the MCS and CQI tables against
the text, six transport block sizes worked out by hand from clause 5.1.3.2 (both branches of
R <= 1/4 and N'_info > 8424), the properties of the block-error model, equal round-robin shares,
equal long-run proportional-fair time shares, the loss of p^4 of the blocks after four failed
transmissions, and that the option off changes no fingerprint.