Skip to content

Draft: Multi-UE + more slots

Robert Schmidt requested to merge NR_DLUL_PF into develop

This MR adds a multi-UE scheduler (proportional fair) for multiple UEs. Tested for two UEs, but should work for more. Additionally, it enables 12 DL slots and 2 UL slots (still fixed, will be read from the configuration file in a clean-up/follow-up MR).

In detail:

  • Group DCIs in one nFAPI PDCCH message
  • Add a new HARQ framework for fully asynchronous HARQ process
    • Make L1 DLSCH encoding stateless to support fully asynchronous HARQ processos
  • Rework PUCCH allocation so it works for multiple UEs (note: only PUCCH Format 0 is handled for HARQ/AckNack)
  • Decode UE Buffer Status Reports
  • Add DL multi-UE preprocessor
  • Add UL multi-UE preprocessor (allocates only RBs as necessary and not all statically)
  • Fix slots 1,2,3,4,5,6,11,12,13,14,15,16 to be DL slots: the MCS is fixed to 9, but 22Mbps should be achievable in DL for a single UE
  • Fix slots 8,18 to be UL slots: 2Mbps should be achievable in UL for a single UE.
  • Improve MAC dump_mac_stats() formatting like this:
[MAC]   UE ID 0 RNTI 5872 (1/2)
[MAC]   UE 0: dlsch_rounds 3222/2/0/0, dlsch_errors 0
[MAC]   UE 0: dlsch_total_bytes 6833602
[MAC]   UE 0: ulsch_rounds 3768/2/2/1, ulsch_errors 0
[MAC]   UE 0: ulsch_total_bytes_scheduled 407241, ulsch_total_bytes_received 407135
[MAC]   UE 0: LCID 4: 6803014 bytes TX
[MAC]   UE 0: LCID 4: 15693 bytes RX
[MAC]   UE ID 1 RNTI d49f (2/2)
[MAC]   UE 1: dlsch_rounds 3192/1/0/0, dlsch_errors 0
[MAC]   UE 1: dlsch_total_bytes 6822125
[MAC]   UE 1: ulsch_rounds 3658/0/0/0, ulsch_errors 0
[MAC]   UE 1: ulsch_total_bytes_scheduled 392953, ulsch_total_bytes_received 392953
[MAC]   UE 1: LCID 4: 6791870 bytes TX
[MAC]   UE 1: LCID 4: 10715 bytes RX

Thanks @ChiehChun

Edited by Robert Schmidt

Merge request reports