Commit Graph
3552 Commits
Author SHA1 Message Date
francescomani 20accaaceb Merge remote-tracking branch 'origin/use_slot_type' into integration_2025_w10 2025-03-10 18:02:28 +01:00
francescomani 46031d5f1e Merge remote-tracking branch 'origin/RA_common_dl_pdus' into integration_2025_w10 2025-03-07 15:12:24 +01:00
francescomani fecea84ced Merge remote-tracking branch 'origin/feedback_disabled_ra' into integration_2025_w10 2025-03-07 08:36:41 +01:00
francescomani e92f3484b6 Merge remote-tracking branch 'origin/remove_some_mac_extern' into integration_2025_w10 2025-03-07 08:35:47 +01:00
francescomani d8911ff19d use slot type for slots in NR 2025-03-04 18:04:12 +01:00
francescomani 026b42aa1a FeedbackDisabled is sent in RRCSetup, the UE doesn't have it during MSG4 reception, it can't be used
the standard in 213 8.4 says: "In response to the PDSCH reception with the UE contention resolution identity, the UE transmits HARQ-ACK information in a PUCCH."
2025-03-04 15:33:18 +01:00
francescomani c898a9f269 function to get RV replacing extern vector 2025-03-03 17:00:26 +01:00
francescomani 38734ee31c remove nr_mac_extern file 2025-03-03 17:00:26 +01:00
francescomani 00ac4f0b46 functions to read BSR tables 2025-03-03 17:00:26 +01:00
francescomani 26c94a34c4 make precoding tables local and remove them from common files 2025-03-03 17:00:26 +01:00
francescomani ce4dfe0f1b Merge remote-tracking branch 'origin/fix-ul-mcs' into integration_2025_w09 2025-03-01 17:01:19 +01:00
francescomani 10060982c0 Merge remote-tracking branch 'origin/ue-long-prach' into integration_2025_w09 2025-03-01 16:34:48 +01:00
francescomani f50f3a34cd use common prepare_dl_pdus function also for MSG2 2025-02-27 16:56:27 +01:00
francescomani d31f6ef09b just moving prepare_dl_pdus before MSG2 function 2025-02-27 16:34:25 +01:00
francescomani bd3e2e7b62 making prepare_dl_pdus function more general 2025-02-27 16:33:17 +01:00
francescomani 40788580ea remove unnecessary tbs function 2025-02-27 16:02:37 +01:00
rmagueta cbf0ca9ad7 Fix UL-MCS when UL inactivity and no data 2025-02-26 16:06:50 +00:00
Sakthivel Velumani 4814443ba4 Fix RA-RNTI computation according to 3GPP
t_id for long prach formats is computed with mu = 0.
2025-02-25 11:58:41 -05:00
Sakthivel Velumani cf0206e7c6 Fix scheduler for long prach
Long PRACH extends beyond a slot. Changes necessary to mark future slots
that may contain prach in ru, phy and mac functions.

In RU, the PRACH IDFT is done only after receiving last slot and marks
for L1 to start processing. The L1 processes at the last prach slot and
reports to MAC with the first slot index.

In MAC scheduler, the VRB for future slots are also marked as used.
PRACH scheduler is called in advance one frame minus num prach slots.
2025-02-25 11:58:41 -05:00
Sakthivel Velumani 8f5aa740bd Fix function nr_get_prach_mu for L839
function returns mu of UL BWP if msg1-SubcarrierSpacing absent instead
of asserting. The mu retured by this function is used to compute the
slot number of PRACH. In case of long format, the slot number is as per
UL mu.
2025-02-23 16:17:58 -05:00
ndomingues 27dccb8bce Fix "Received Nack" log for Msg4/MsgB and minor improvement in RA logs 2025-02-18 14:23:36 +00:00
Robert Schmidt 919bfb8cfb Merge remote-tracking branch 'origin/improv_TDD' into integration_2025_w07 (!3249)
Improvements in TDD configuration

Including using the frame structure introduced in !2799 also at the UE
2025-02-14 15:10:22 +01:00
Bartosz Podrygajlo 095b791929 Add PDCCH UESS aggregation level configuration option
Added uess_agg_levels configuration option which changes the number of PDCCH
candidates per aggregation level.
2025-02-13 10:57:25 +01:00
Bartosz Podrygajlo 16f028dba5 Dynamic PDCCH aggregation level
The aggregation level search order for PDCCH candidates is modified:
 - the search starts from desired_agg_level_index, which is a value from 0 to 4
   proportial to pdcch_cl_adjust.
 - pdcch_cl_adjust is a value between 0 and 1 that indicates PDCCH channel quality
   by averaging HARQ DTX rate. A value of 0 means perfect channel, a value o 1 means
   impaired channel.
2025-02-13 10:57:14 +01:00
francescomani bd7d007ea8 remove global slots_per_frame, use function instead 2025-02-12 18:08:56 +01:00
francescomani 74bcd9963d make relevant frame_structure functions common 2025-02-12 11:49:43 +01:00
francescomani d0ba1a30e3 use frame_type in frame_structure instead of bool 2025-02-12 11:24:56 +01:00
francescomani b439816409 use frame structure parameter for slots per frame 2025-02-12 11:24:25 +01:00
Robert Schmidt 1be038c88b Merge remote-tracking branch 'origin/fix-cuup-assert-reconnect' into integration_2025_w06 (!3243)
Reset E1 UE contexts after E1 Setup Response

38.463 sec. 8.2.3 says

> This procedure also re-initialises the E1AP UE-related contexts (if
> any) and erases all related signalling connections in the two nodes
> like a Reset procedure would do.

Hence, delete all contexts after reception of E1 Setup Response. This
minimizes a risk of receiving an E1 bearer setup req for an existing UE,
which currently leads to an assert [we trust the CU-CP does not send the
same UE ID twice, as we only "mirror" the existing UE ID].  After this
MR, this is what happens if these entities fail:

- CU-CP fails: all context lost implicitly, upon reconnection, both DU
  and CU-UP reset all contexts (like "start from zero")
- DU fails: CU-CP triggers NGAP UE context release request immediately
  (radio connection with UE lost), all UE contexts attached to this DU
  cleared (like "start from zero" for affected DU)
- CU-UP fails: initially, nothing (UE has no user plane); upon
  reconnection of CU-UP, CU-CP triggers NGAP UE context release request
  (cause radio connection with UE lost) and sends F1 Reset to DU, all UE
  contexts associated to this DU cleared (like "start from zero")

for the last case, a possible improvement could be to use the F1 Reset
message to only clear affected UE conetxts. I chose not to do this,
because this MR is very big now already, and possible "victim" UEs
that were not at that CU-UP will reconnect as well
2025-02-11 17:45:14 +01:00
Robert Schmidt ff106c41a3 Use (CU-initiated) F1 Reset Acknowledgement in stack 2025-02-11 13:20:28 +01:00
Robert Schmidt 999877eaae Merge remote-tracking branch 'origin/issue_709' into integration_2025_w06 (!3000)
Improvements for NR dlsim and ulsim
2025-02-07 17:31:59 +01:00
francescomani bd179fd5e4 making phy-test slot bitmap tdd period based to minimize the chance to need it larger than 64 slots 2025-02-05 18:55:09 +01:00
francescomani 1a3512960a check if the slot selected is valid for DL/UL in dlsim/ulsim 2025-02-04 09:39:11 +01:00
Robert Schmidt 616c677536 Merge remote-tracking branch 'origin/avoid-powerlimit-flood' into integration_2025_w05 (!3208)
Downgrade gNB power limit LOG from "warning" to "debug"

Downgrade the UE power limited LOG from LOG_W to LOG_D. This is to avoid
flooding stdout when UE in low coverage enters power limited state for a
longer period of time. The same information can be inferred from the
periodic UE print which also contains PH value (negative PH values
indicate that the UE is power limited)

Also, correct some typos in PH calculation.

Closes #885
2025-02-03 08:33:23 +01:00
Robert Schmidt 1cb82bae20 Merge remote-tracking branch 'origin/Mult_TDD_Pattern' into integration_2025_w05 (!2799)
Changes to support multiple TDD patterns

- Updated the configuration changes for 2 Patterns
- Update the TDD table configuration for NFAPI
- Added the tdd bitmap for the period
- Adapted the bitmap for UL/DL for the multi TDD pattern
- Updated the RACH procedure for multi TDD pattern
- Updated DL and UL scheduler for multi TDD pattern
2025-02-03 08:32:02 +01:00
vijay chadachanandGuido Casati 4fc74c17ab Refactoring of is_xlsch_in_slot usage in MAC
* Remove the ulsch_slot_bitmap and dlsch_slot_bitmap from nrmac
* Adopt the new is_dl_slot/is_ul_slot functions in the stack
  to replace is_xlsch_in_slot: these functions are getting
  the DL and UL slots as they are set in the TDD configuration
  stored in tdd_slot_bitmap (frame_structure_t)
* Keep is_xlsch_in_slot in openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c:
  this is necessary because the phy-test pre-processors are using the bitmaps
  dlsch_slot_bitmap and ulsch_slot_bitmap to check which DL/UL slots to use
  for transmission among those set in the TDD configuration

Co-authored-by: Guido Casati <guido.casati@firecell.io>
2025-01-31 16:51:19 +01:00
Bartosz Podrygajlo d44279a9a3 Fix PHR PH value to power headroom conversion. 2025-01-31 16:05:13 +01:00
Bartosz Podrygajlo 1e667b379a Downgrade gNB power limit LOG from "warning" to "debug"
Downgrade the UE power limited LOG from LOG_W to LOG_D. This is to avoid flooding
stdout when UE in low coverage enters power limited state for a longer period of
time. The same information can be inferred from the periodic UE print which also
contains PH value (negative PH values indicate that the UE is power limited)
2025-01-31 15:59:45 +01:00
Robert Schmidt 44fe1175c2 Merge remote-tracking branch 'origin/NR_ULSCH_beam_allocation_bugfix' into integration_2025_w05 (!3231)
Bugfix in frame and slot setting for ULSCH beam allocation
2025-01-31 08:01:39 +01:00
Laurent THOMAS 5416be3736 move byte2m128i in a more logical place 2025-01-30 17:14:10 +01:00
francescomani bf238491ec fix in frame and slot for ULSCH beam allocation 2025-01-30 14:52:58 +01:00
Guido Casati 92460a80cd Use is_mixed_slot in stack 2025-01-28 10:07:31 +01:00
vijay chadachanandGuido Casati 0b7bee96cb Add scheduling utility functions to check UL, DL, and mixed slot types in TDD config
* is_ul_slot: returns `true` for UL or mixed slots
* is_dl_slot: returns `true` for DL or mixed slots
* is_mixed_slot: returns `true` for mixed slots

These functions use the TDD slot bitmap for slot type checks

Co-authored-by: Guido Casati <guido.casati@firecell.io>
2025-01-28 10:07:31 +01:00
vijay chadachanandGuido Casati 1d8a590328 Refactor nr_UE_is_to_be_scheduled to use new get_first_ul_slot function
Co-authored-by: Guido Casati <guido.casati@firecell.io>
2025-01-28 10:07:31 +01:00
Guido Casati 00f1d52f92 Rewrite get_first_ul_slot to use pattern configuration stored in frame_structure
* the function is returning the index of the first full UL slot in tdd_slot_bitmap
  or the first UL slot (including mixed) if the "mixed" flag is provided
2025-01-28 10:07:31 +01:00
Guido Casati bebbc857a0 Add get_ul_slot_offset function to calculate nth UL slot offset for UE in TDD period
* the get_ul_slot_offset function calculates the offset of the nth uplink (UL) slot for a given UE index within a TDD period
* this function uses the frame structure bitmap to determine the UL slot positions
2025-01-28 10:07:31 +01:00
vijay chadachanandGuido Casati ae1a5a968b Refactor gNB_scheduler_uci.c (get_pucch_index, etc..) to use frame_structure stored in MAC
Co-authored-by: Guido Casati <guido.casati@firecell.io>
2025-01-28 10:07:31 +01:00
vijay chadachanandGuido Casati dbfcc1a7ef Refactor set_sched_pucch_list to use frame_structure in MAC
Co-authored-by: Guido Casati <guido.casati@firecell.io>
2025-01-28 10:07:31 +01:00
Guido Casati 3dca350f3e Limit scope of set_sched_pucch_list (static) 2025-01-28 10:07:31 +01:00
vijay chadachanandGuido Casati f4e4f2f7ba Refactor get_feasible_msg3_tda to use frame_structure in MAC
Co-authored-by: Guido Casati <guido.casati@firecell.io>
2025-01-28 10:07:31 +01:00