266 Commits
Author SHA1 Message Date
francescomani bcfa68347f fix bug in selecting MSG3 re-transmission slot 2026-01-21 03:53:25 +01:00
francescomani def635ad7d type int for aggregation level and candidates 2026-01-16 00:55:04 +01:00
francescomani 75820422a4 check if CSET0 exceeds upper BW limit 2026-01-16 00:43:00 +01:00
francescomani 98618a7dc8 The network must configure BWPs with consecutive IDs from 1
... so if we want to have 1 BWP configured at any given time we need to
reconfigure BWP 1 every time. This means that since the gNB has more
than 1 BWPs (for use for different UEs), that there is a "gNB BWP ID"
(as used by the gNB), which can be any BWP ID X, and one "UE BWP ID",
which is always 1. This commit implements this distinction.
2025-12-03 17:20:11 +01:00
Robert Schmidt 8a05dcdfee Merge remote-tracking branch 'origin/NR_fix_tpmi_ctnd' into integration_2025_w34 (!3591)
separate computation of size and value for DCI precoding information

This removes stuff that is only relevant for the gNB from the common
functions and moves it to the gNB scheduler functions (related to UL
precoding). In principle no functional change.
2025-08-20 13:11:47 +02:00
francescomani c94db4adec separate computation of size and value for DCI precoding information 2025-08-14 10:56:33 +02:00
Robert Schmidt 626fce4f44 config_frame_structure(): make const 2025-08-04 09:53:14 +02:00
Romain Beurdouche 42b5df351d Split out PRACH-specific functions into separate header
Split out type and function definitions for a cleaner separation for
some consumers of these functions. Concretely, nr_mac_common.h includes
various ASN.1 NR RRC headers, but not all consumers of these APIs might
need these headers. For instance, the next commit will use these
functions in the driver for 7.2 (it needs to compute PRACH length), but
the driver itself does not depend on nor does it need the ASN.1 NR RRC
headers. Defining a new header avoids the problem.
2025-07-09 14:49:03 +02:00
Bartosz Podrygajlo 85f3e62caf Fix data race in NR UE MSG3 scheduling
Fixed a data race between DL processing of RAR and UL scheduler, which
might result in dropping MSG3.

It was possible that the UL scheduler for the UL slot which RAR
indicates as MSG3 slot was already run by the time the RAR was decoded.

Therefore when DCI for RAR is decoded, assume worst case and halt the
earliest corresponding UL scheduler call until RAR is decoded solving
the data race. This also in turn halts all later scheduling due to
sequential nature of the UL scheduler calls.
2025-06-03 14:41:06 +02:00
luis_pereira87 35d5309ef1 Fix PDSCH BWP Start and Size when PDSCH is scheduled with a DCI format 1_0 in any type of PDCCH common search space 2025-05-15 16:14:31 +01:00
rmagueta 9e787a0ba2 Bugfix for number of PRBs in PUCCH format 2 2025-04-15 14:49:19 +01:00
francescomani 04213f2981 schedule SIBs other than 1 (including fixes for SIB19) 2025-04-14 10:15:50 +02:00
francescomani ec4232814a prevent possible segfault in functions to compute csi report type bitlen
also improving formatting of the same functions
2025-03-26 13:27:07 +01:00
francescomani a7e3e8a312 harmonization of functions to get info from PRACH config tables 2025-03-12 10:11:38 +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 00ac4f0b46 functions to read BSR tables 2025-03-03 17:00:26 +01: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 4bfc0147ce ue mac changes for long prach
Fix bug in talbe 38.211 6.3.3.2-1 for FR2.
2025-02-23 16:18:01 -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
francescomani bd7d007ea8 remove global slots_per_frame, use function instead 2025-02-12 18:08:56 +01:00
francescomani ad66c75a33 frame_structure used also at UE 2025-02-12 18:01:51 +01:00
francescomani 74bcd9963d make relevant frame_structure functions common 2025-02-12 11:49:43 +01:00
rmagueta c66a625dc5 If the ul_ri of srs_feedback changes between a UL 1st transmission and a retransmission, we use the TPMI of 1st transmission 2024-12-17 14:18:16 +00:00
ndomingues 64ee6a4776 Use common function to get mu at UE for PRACH 2024-10-09 19:04:43 +02:00
Robert Schmidt c609dd8fcf Implement common nr_get_mu() in nr_mac_common
These functions look up the numerology, and code can be harmonized:

- ssb_index_from_prach()
- find_SSB_and_RO_available()
- schedule_nr_prach()

The next commits also need to look up the numerology from the
UplinkConfigCommon. This provides the common implementation to be used
in follow-up commits.
2024-10-08 14:19:57 +01:00
ndomingues abb7439b8a Compute RA 2-Step MsgB_RNTI as specified in 3GPP TS 38.321 Section 5.1.3a 2024-10-08 14:19:57 +01:00
Roberto Rosca a197c0a41a Schedule SIB19 based on scheduling info from SIB1 2024-09-18 12:17:17 +03:00
Raghavendra Dinavahi e586efb29d enable HARQ32, Changes common to gNB and UE
- MAX HARQ PROCESSES set to 32
	- for PDSCH - default setting in OAI is 16, according to 3GPP rel17 38.331 these are the possible configs
		- if no IES are defined then 8
		- if nrofHARQ-ProcessesForPDSCH is defined then these values-  {n2, n4, n6, n10, n12, n16}
		- if nrofHARQ-ProcessesForPDSCH-v1700 is defined then 32
		- for harq bits in DCI
			- DCI 1_0 - 4 bits spec 38.212, section 7.3.1.2.1
			- DCI 1_1 - 4/5 bits according to IE harq-ProcessNumberSizeDCI-1-1, spec 38.212, section 7.3.1.2.2
	- for PUSCH - default setting in OAI is 16, according to 3GPP rel17 38.331 these are possible configs
                - if no IES are defined then 16
                - if nrofHARQ-ProcessesForPUSCH-v1700 is defined then 32
                - for harq bits in DCI
                        - DCI 0_0 - 4 bits spec 38.212, section 7.3.1.1.1
                        - DCI 0_1 - 4/5 bits according to IE harq-ProcessNumberSizeDCI-0-1, spec 38.212, section 7.3.1.1.2
	- FOR HARQ32 , DCI 1_1, DCI 0_1 should be configured in UE dedicated search space. In OAI it is set.
2024-08-06 17:12:48 +02:00
Thomas Schlichter ae4cbcfb0c gNB: add config file option "disable_harq" and set pdsch_servingcellconfig->ext3->downlinkHARQ_FeedbackDisabled_r17 accordingly 2024-07-19 10:43:52 +02:00
Rúben Soares Silva d795c72990 Change compute_PDU_Length input parameter to uint32_t.
The total_length parameter in compute_PDU_Length being uint16_t causes
the passed value to be possibly truncated, which can cause the
PDU_Length to be incorrectly calculated.
This change prevents that truncation, since it now matches the size
of the values passed into the function where it is being called.
2024-07-08 15:26:00 +01:00
Rúben Soares Silva 4033606fff Increase TX_DATA.request TB buffer size to be allocated in the stack with 2MB, fix compute_PDU_Length to not truncate value and fix packing procedure to use buffer size as the upper limit instead of hardcoded value 2024-06-25 13:50:53 +01:00
francescomani 12e1045d2a fix for MAC template with CSI report config 2024-06-05 19:21:28 +02:00
francescomani 830b8a208a handling reception of CSI command for aperiodic CSI reporting 2024-06-05 19:07:31 +02:00
francescomani c626e55f67 harmonize use of function to reverse n bits 2024-05-15 17:08:47 +02:00
francescomani a0c5a3604a fix incorrect bw index evaluation for UE capabilities 2024-04-10 14:06:41 +02:00
Robert Schmidt 7364d9bde7 Move find_monitoring_periodicity_offset_common() to RA file 2024-04-04 18:54:04 +02:00
francescomani 37d3e5bb58 get SSB ARFCN at RRC UE (needed to update k_gnb key according to 33.501) 2024-03-13 17:59:11 +01:00
Nuno Domingues ff7c960b2c Harmonize computation of RA-RNTI 2024-02-16 18:04:57 +00:00
francescomani 5e18bbd55d Merge remote-tracking branch 'origin/NR_UE_dlsch_rescource_allocation_type0' into integration_2024_w04 2024-01-26 17:23:07 +01:00
Laurent THOMAS 4c7b185d92 merge two reduntant and incoherent enums for rnti_type_t, make a macro to stringify properly instead of hardcoded side strings array 2024-01-09 16:15:14 +01:00
francescomani d7c651a014 MAC procedures to handle DLSCH allocation type 0 2023-12-19 11:19:20 +01:00
francescomani 78041a2012 rework BWP UE structures including handling of need codes 2023-12-12 14:10:10 +01:00
francescomani 9b9eb6f4e4 common structure for non-BWP servingcell info 2023-12-12 14:06:37 +01:00
francescomani c6e5ead2a9 some more RRC cleanup 2023-11-21 11:07:21 +01:00
francescomani 2715c7efdd improve MAC configuration from RRC 2023-11-20 14:21:01 +01:00
francescomani 8013d5d8cc removing CellGroup dependance from MAC common functions 2023-11-20 11:36:46 +01:00
Rúben Soares da Silva bfd12e4aa0 Change PDU_Length and TLV length calculation to be inline with SCF 222.10.02
PDU Length is as per SCF 222.10.02: The total length (in bytes) of the
PDU description and  PDU data, without the padding bytes. From
TX_DATA.request we get 8 (2 bytes PDU_Length + 2 bytes PDU_Index + 4
bytes num_TLV ) and from each TLV we get 4 + value size ( 2 bytes tag +
2 bytes length + value size without pading)

Therefore, add function to compute PDU_length() value for
TX_Data.request, taking into account how many TLVs there are.
compute_PDU_length() does not rely on access to `nfapi_nr_pdu_t`.
Put it into nr_mac_common.c to avoid introducing dependencies.
2023-10-17 04:33:57 +02:00
Robert Schmidt 5d0ae84ad2 Move MIB to MAC
The MasterInformationBlock is handled at the DU and sent to the CU in
the F1 Setup Response. Hence, move it down to the MAC. Furthermore:

- Change type because MIB_PDU_t is 4G type
- Simplify schedule_nr_mib()
2023-09-22 08:22:15 +02:00
francescomani 517d351430 adding a test on max number of bits to be scheduled on pucch according to coderate 2023-08-23 17:46:18 +02:00
francescomani 75c2f9e5f8 improving handling of tdd_UL_DL_ConfigurationCommon absence when checking DL or UL slot 2023-08-04 10:01:56 +02:00