Commit Graph
15365 Commits
Author SHA1 Message Date
ChiehChun 21e9339427 Add short/long BSR Table & Log the BSR value 2021-02-07 10:39:40 +01:00
ChiehChun c316f2fc57 Correct bit ordering in struct NR_BSR_LONG 2021-02-07 10:39:40 +01:00
ChiehChun a95346d169 Modify the case of truncated BSR 2021-02-07 10:39:40 +01:00
ChiehChun 1ff770ff20 Add CE & BSR pointer 2021-02-07 10:39:40 +01:00
ChiehChun 2b6a651aae Fix LCID of CRNTI for nr UE 2021-02-07 10:39:40 +01:00
ChiehChun 5e226b9e22 Remove assertion for single UE 2021-02-07 10:39:40 +01:00
ChiehChun 3bb4bddc0d Allocate DL new transmission 2021-02-07 10:39:40 +01:00
ChiehChun a7cb83889a Find max coeff from UE_sched 2021-02-07 10:39:40 +01:00
ChiehChun 6d5634b8ce Check DL buf and Calculate the coeff to create UE_sched 2021-02-07 10:39:40 +01:00
ChiehChun a3cc9f730b Add dlsch_current_bytes and Calculate throughput 2021-02-07 10:39:40 +01:00
ChiehChun 0dd0f5ce4a Create function for find CCE and retransmission 2021-02-07 10:39:40 +01:00
ChiehChun 13da3d6e8a Create nr_store_dlsch_buffer() 2021-02-07 10:39:40 +01:00
ChiehChun 68b03e9cb6 Create pf_dl function 2021-02-07 10:39:40 +01:00
ChiehChun 3b4ec2c82b Change vrb_map to rballoc_mask 2021-02-07 10:39:40 +01:00
ChiehChun 6c3897d4a7 Save selected DL HARQ PID in post-processor 2021-02-07 10:39:40 +01:00
ChiehChun 9fb45867a1 Initial num_pdcch_cand for multi-UE 2021-02-07 10:39:40 +01:00
Robert Schmidt 75dbf5fa4d Don't log retransmissions explicitly 2021-02-07 10:39:40 +01:00
Raymond Knopp 0496c15d27 Remove PHY HARQ round_trials logs 2021-02-07 10:39:40 +01:00
Cedric Roux 16b9f4ed60 Increase RLC buffer size to 10MB, warn when buffer full 2021-02-07 10:39:40 +01:00
Robert Schmidt ca47955293 Bugfix: check that retransmission can be allocated 2021-02-07 10:39:39 +01:00
Robert Schmidt 78da8c9345 Save TB in MAC, transmit TX_req also on retx 2021-02-07 10:39:39 +01:00
Robert Schmidt 80e23a179e Enable 12 slots
This commit enables more slots so that the "real UE" preprocessor can
schedule them. The DL phytest preprocessor continues to only schedule
slots 1 & 3.  This is because the OAI-UE needs to have PUCCH scheduled
at least six slots in advance.  Since we do not support this (yet), but
assume that two slots are enough, we schedule the UE only in slot 1 & 3
so it has 6 slots until slot 7 to send PUCCH.
2021-02-07 10:39:39 +01:00
Robert Schmidt 59cb9c87e0 Refactor nr_rx_sdu() 2021-02-07 10:39:39 +01:00
Robert Schmidt 0773229b1a Implement UL HARQ using NR_list_t 2021-02-07 10:39:39 +01:00
Robert Schmidt a0d47c504c Create lists for UL HARQ management 2021-02-07 10:39:39 +01:00
Robert Schmidt 4ddd45f813 Implement DL HARQ using NR_list_t 2021-02-07 10:39:39 +01:00
Robert Schmidt 42710ee7ba Create lists for DL HARQ management 2021-02-07 10:39:39 +01:00
Raymond Knopp a3867df5f3 cleanup after removing harq state in L0 2021-02-07 10:39:39 +01:00
Raymond Knopp ee2ce7670d made L1 DLSCH encoding stateless. harq_pid/round information are not kept in PHY. Full channel encoding is performed for each transmission of a transport block.
Still to be done: test, then cleanup data structures and fix unitary simulations.
2021-02-07 10:39:39 +01:00
Robert Schmidt d7f46a2ff2 Set RRC nrofHARQ_ProcessesForPDSCH to 16 2021-02-07 10:39:39 +01:00
Robert Schmidt c9de1c70c0 Set secondaryCellGroup + default values in add_new_nr_ue() 2021-02-07 10:39:39 +01:00
Robert Schmidt 74cb9bf367 Refactor add_new_nr_ue() and mac_remove_nr_ue()
mac_remove_nr_ue(): no need to memset sched_ctrl, since it is done on
connection of a UE
2021-02-07 10:39:39 +01:00
Robert Schmidt 4a0efd6f48 mac_top_init_gNB(): do not init per-UE HARQ
the whole UE_sched_ctrl is initialized in add_new_nr_ue(), which will
also init the per-UE HARQ.
2021-02-07 10:39:39 +01:00
Robert Schmidt 77c7fe5b87 Create more generic NR_list_t with helper functions 2021-02-07 10:39:39 +01:00
Robert Schmidt 338d8debae Bugfix OAI UE: reset slot_for_feedback_ack to initial value 2021-02-07 10:39:39 +01:00
Robert Schmidt e328a6ccf7 Make multiple passes over RLC to get all data 2021-02-07 10:39:39 +01:00
Robert Schmidt 76d154f07c Do not count down TBS 2021-02-07 10:39:39 +01:00
Robert Schmidt a18ed9d92d Reorder DLSCH MAC PDU logic
Before this commit, the DLSCH scheduler would construct the MAC PDU by
reading RLC data into a memory on the stack, and then construct the PDU
with CEs first. There are at least two problems:
- we need to keep track of the exact number of bytes of CEs (cumbersome)
  to calculate the number of MAC SDUs to include
- we needlessly copy data around.

This commit does the following instead:
- write all CEs first (no need of keeping track of this in DLSCH and a
  separate function)
- then read MAC SDUs directly into nFAPI as much as possible or
  necessary, without recopying
2021-02-07 10:39:39 +01:00
Robert Schmidt 96e1f3597b Group PDCCH PDU per CC/BWP/CORESET in RA, and reuse in DLSCH 2021-02-07 10:39:39 +01:00
Robert Schmidt c71412882d nr_schedule_ulsch(): only one PDCCH PDU per BWP and CORESET 2021-02-07 10:39:39 +01:00
Robert Schmidt a26404c17f nr_schedule_ue_spec(): link TX_data/PDSCH PDU with common PDU index 2021-02-07 10:39:39 +01:00
Robert Schmidt a6348e8567 nr_generate_Msg2(): link TX_data/PDSCH PDU with common PDU index 2021-02-07 10:39:39 +01:00
Robert Schmidt 28b78ee09c nr_schedule_ue_spec(): only one PDCCH PDU per BWP and CORESET 2021-02-07 10:39:39 +01:00
Robert Schmidt 55c6ce1598 Add small notice that we assume no concurrent RA 2021-02-07 10:39:39 +01:00
Robert Schmidt 089f821dd2 Separate nFAPI PDCCH allocation from nFAPI DCI allocation
According to SCF222, a single PDCCH allocation groups DCIs that are
within the same BWP and CORESET. Therefore, if we want to allocate
multiple DCIs, we need to decouple PDCCH allocation and DCI (previously
jointly done in nr_configure_pdcch()), especially to be forward
compatible.

***Note that as of this commit, we would still allocate different PDCCH
PDUs for multiple UEs (which we do not support yet, anyway)***

nr_configure_pdcch(): simply take out DCI allocation.

nr_generate_Msg2(): separately allocate dci_pdu in common RA SS, and
rename DCI payload variable. Also, reorganize the function so that it is
first checked for CCE allocation and messages nFAPI messages are
allocated afterwards.

nr_schedule_ue_spec(): separately allocate dci_pdu in UE-specific SS.
Rename DCI payload variable.

nr_schedule_ulsch(): separately allocate dci_pdu in UE-specific SS.
Rename DCI payload variable.

nr_fill_nfapi_dl_sib1_pdu(): separately allocate dci_pdu in common SS.
2021-02-07 10:39:39 +01:00
Robert Schmidt 0655cc481d No DCI PDU array in nr_fill_nfapi_dl_sib1_pdu() 2021-02-07 10:39:39 +01:00
Robert Schmidt 080b776097 No DCI PDU array in nr_schedule_ue_spec() 2021-02-07 10:39:39 +01:00
Robert Schmidt 86b1c0035d No DCI PDU array in nr_generate_Msg2() 2021-02-07 10:39:39 +01:00
Robert Schmidt db792632c9 Refactor config_uldci() 2021-02-07 10:39:39 +01:00
Robert Schmidt 52ba0e277d Simplify config_uldci(): handle only one DCI 2021-02-07 10:39:39 +01:00