Commit Graph
28710 Commits
Author SHA1 Message Date
francescomani 67cf66c65c remove mac_extern at UE 2025-03-03 17:00:26 +01:00
francescomani f265729e68 functions for 7-3-1-1-2 tables 2025-03-03 17:00:26 +01:00
francescomani 9aafec3e57 include header for mac_rlc_data_ind 2025-03-03 17:00:26 +01:00
francescomani ab11e1a58c function for precoding information parameters 2025-03-03 17:00:26 +01:00
francescomani 0565b99900 function for backoff indicator table 2025-03-03 17:00:26 +01:00
francescomani 9c16a323fe function to handle antenna port tables 2025-03-03 17:00:26 +01:00
francescomani cf9b19a855 remove unused tables from UE mac_extern.h 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 2f6b80b444 remove unnecessary Type0-PDCCH externs 2025-03-03 17:00:26 +01:00
Robert Schmidt f0fce7c167 Merge branch 'integration_2025_w08' into 'develop'
Integration: `2025.w08`

Closes #772

See merge request oai/openairinterface5g!3273

* !3263 Free ITTI message after receiving it at MAC from RRC
* !3268 Upgrade SIMDe commit
* !3269 chore(ci): change image rentention from 4weeks to 3weeks
* !3227 fix(nrLDPC_coding): timers in DL encoding, fix(ldpctest): Confusion in sizes
* !3270 Update of gNB-N300-Timing-Phytest threshold
* !3272 Fix: write NSSAI info of F1AP Cell Info struct
* !3259 UE DCI no candidates
* !3264 Fix "Received Nack" log for Msg4/MsgB and minor improvement in RA logs
* !3228 Add option to use global noise power for all RX channels in RFSimulator
* !2725 Use 5G-S-TMSI as UE identity in RRCSetupRequest
2025-02-25 22:58:21 +00:00
Jaroslava Fiedlerova e03c15e85b Merge remote-tracking branch 'origin/nr-ue-nas-5g-s-tmsi' into integration_2025_w08 (!2725)
Use 5G-S-TMSI as UE identity in RRCSetupRequest

This MR includes the following implementation:

- Handle 5G-S-TMSI in RRCSetup:
  - Set the ue-Identity to ng-5G-S-TMSI-Part1 in RRCSetupRequest and
  - If RRCSetup is received in response to an RRCSetupRequest: set the
    ng-5G-S-TMSI-Value to ng-5G-S-TMSI-Part2 in do_RRCSetupComplete

TS 38.331 5.3.3.3 Actions related to transmission of RRCSetupRequest message:

The UE shall set the contents of RRCSetupRequest message as follows:
1> set the ue-Identity as follows:
2> if upper layers provide a 5G-S-TMSI:
3> set the ue-Identity to ng-5G-S-TMSI-Part1;

- Pass 5G-S-TMSI to RRC when NAS receives GUTI in Registration Accept
  - NAS extracts GUTI from Registration Accept
  - send ITTI indication from NAS to RRC when GUTI is available and store
    5G-S-TMSI in RRC instance
- Rework of Initial UE message handling in RRCSetupComplete: simplify code and memory management
- Fix for integrity failure after UE comes back from RRC IDLE
- Other NAS fixes

Note:
- Initial implementation of Initial NAS Message: Service Request -> moved to !3065 (merged)
- Rework of Registration Request added to !3176 (merged)

Closes #772
2025-02-25 11:35:13 +01:00
Jaroslava Fiedlerova b35c58daae Merge remote-tracking branch 'origin/rfsim-global-noise' into integration_2025_w08 (!3228)
Add option to use global noise power for all RX channels in RFSimulator

Added new command line option to rfsimulator: noise_power_dBFS. This options
allows the user to configure noise power in dBFS added instead of the
per-channel value.

This makes it so noise is not accumulated per channel reaching higher than
expected values.

The dBFS unit allows easy configuration. The gNB by default uses -36 dBFS
setting. e.g. to reach 3dB SNR one should set the noise_power_dBFS value to -39.
2025-02-25 10:23:46 +01:00
Jaroslava Fiedlerova 09a793eea5 Merge remote-tracking branch 'origin/Improve-RA-logs' into integration_2025_w08 (!3264)
Fix "Received Nack" log for Msg4/MsgB and minor improvement in RA logs

Fix "Received Nack" log for Msg4/MsgB, in 4-Step RA. When there is a Msg4 NACK,
we have this log:

[NR_MAC]   (UE 91db) Received Nack in MsgB, preparing retransmission!

This MR fixes the message and now works correctly both in 4-Step RA and 2-Step RA.
Other additional but minor improvement in RA logs.
2025-02-21 14:53:25 +01:00
Jaroslava Fiedlerova fcd7e76143 Merge remote-tracking branch 'origin/issue903' into integration_2025_w08 (!3259)
UE DCI no candidates

Do not schedule DCI in MAC UE if there are no candidates
2025-02-21 14:52:43 +01:00
Jaroslava Fiedlerova 855f8c715b Merge remote-tracking branch 'origin/fix-f1ap-cell-info-slice' into integration_2025_w08 (!3272)
Fix: write NSSAI info of F1AP Cell Info struct

During refactoring, the previously implemented NSSAI field of the cell
info structure was not written to F1AP ASN.1 structures anymore;
eq_f1ap_cell_info() also conveniently omitted the corresponding equality
check. Add this back so the CU can correctly receive the NSSAI in case
of F1 split operation.

Fixes: f278b008 ("Add encoding/decoding library for F1AP Setup
Request (Interface Management) ")
2025-02-21 14:27:56 +01:00
Jaroslava Fiedlerova b7c5e13e20 Merge remote-tracking branch 'origin/update_timing_phytest' into integration_2025_w08 (!3270)
Update of gNB-N300-Timing-Phytest threshold

Current results are in some cases well below the current thresholds. We should
periodically adapt them to actual values so that the test is meaningful.
2025-02-21 14:26:19 +01:00
Jaroslava Fiedlerova 01431a0e3f Merge remote-tracking branch 'origin/nrLDPC_coding_improvements_3' into integration_2025_w08 (!3227)
fix(nrLDPC_coding): timers in DL encoding, fix(ldpctest): Confusion in sizes

Main improvements:

1. fix(ldpctest): Confusion in sizes
   IMPORTANT: This fix makes that ldpctest now works with BG2 and K' != K!
   (Worth double checking with more cases than I did check with though)
   The variable block_length had an ambiguous role and was used as both K and
   Kprime. This was leading to arrays with wrong sizes and functions with wrong
   arguments. Now there is not anymore block_length but K and Kprime.
   Kprime can be set with the command line argument -l.
   There was also some problems with array allocation for segments with length
   not divisible by 8. A proper sizing with ((size_in_bits + 7) & ~7) / 8 was
   used.
   A proper masking of the last byte containing payload bits was also added to
   keep filler bits to 0 after random initialization.

2. fix(nrLDPC_coding): timers in DL encoding
   While timers were available for rate matching and interleaving in the new
   interface, these timers were not merged to rate matching and interleaving
   timers in nr_dlsch_coding.
2025-02-21 14:23:24 +01:00
Jaroslava Fiedlerova 76eb5c1732 Merge remote-tracking branch 'origin/image-retention' into integration_2025_w08 (!3269)
chore(ci): change image rentention from 4weeks to 3weeks

The cluster image registry is getting full. At the moment we have limited
storage so we should reduce the retention period.
2025-02-21 14:05:31 +01:00
Jaroslava Fiedlerova 5817a35dd3 Merge remote-tracking branch 'origin/Upgrade_SIMDe' into integration_2025_w08 (!3268)
Upgrade SIMDe commit

Upgrade SIMDe commit to the latest: c7f26b73ba8e874b95c2cec2b497826ad2188f68
2025-02-21 14:04:42 +01:00
Jaroslava Fiedlerova 35d28312d1 Merge remote-tracking branch 'origin/ITTI_msg_leak' into integration_2025_w08 (!3263)
Free ITTI message after receiving it at MAC from RRC

Sanitize reporting the following leaks. This small commit seems to fix them.

```
Direct leak of 9888 byte(s) in 103 object(s) allocated from:
    #0 0x7fea59b60a06 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:153
    #1 0x556dd89473e7 in itti_malloc /home/francesco/openairinterface5g/common/utils/ocp_itti/intertask_interface.cpp:64
    #2 0x556dd8947b76 in itti_alloc_new_message /home/francesco/openairinterface5g/common/utils/ocp_itti/intertask_interface.cpp:93
    #3 0x556dd87100a1 in nr_rrc_ue_decode_NR_BCCH_BCH_Message /home/francesco/openairinterface5g/openair2/RRC/NR_UE/rrc_UE.c:858
    #4 0x556dd87100a1 in rrc_nrue /home/francesco/openairinterface5g/openair2/RRC/NR_UE/rrc_UE.c:2013
    #5 0x556dd871392e in rrc_nrue_task /home/francesco/openairinterface5g/openair2/RRC/NR_UE/rrc_UE.c:1943
    #6 0x7fea59a16608 in start_thread /build/glibc-FcRMwW/glibc-2.31/nptl/pthread_create.c:477

Direct leak of 96 byte(s) in 1 object(s) allocated from:
    #0 0x7fea59b60a06 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:153
    #1 0x556dd89473e7 in itti_malloc /home/francesco/openairinterface5g/common/utils/ocp_itti/intertask_interface.cpp:64
    #2 0x556dd8947b76 in itti_alloc_new_message /home/francesco/openairinterface5g/common/utils/ocp_itti/intertask_interface.cpp:93
    #3 0x556dd86d707c in nr_rrc_ue_process_masterCellGroup /home/francesco/openairinterface5g/openair2/RRC/NR_UE/rrc_UE.c:1094
    #4 0x556dd86faed9 in nr_rrc_process_rrcsetup /home/francesco/openairinterface5g/openair2/RRC/NR_UE/rrc_UE.c:1138
    #5 0x556dd86faed9 in nr_rrc_ue_decode_ccch /home/francesco/openairinterface5g/openair2/RRC/NR_UE/rrc_UE.c:1200
    #6 0x556dd870a518 in rrc_nrue /home/francesco/openairinterface5g/openair2/RRC/NR_UE/rrc_UE.c:2028
    #7 0x556dd871392e in rrc_nrue_task /home/francesco/openairinterface5g/openair2/RRC/NR_UE/rrc_UE.c:1943
    #8 0x7fea59a16608 in start_thread /build/glibc-FcRMwW/glibc-2.31/nptl/pthread_create.c:477

Direct leak of 88 byte(s) in 1 object(s) allocated from:
    #0 0x7fea59b60a06 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:153
    #1 0x556dd89473e7 in itti_malloc /home/francesco/openairinterface5g/common/utils/ocp_itti/intertask_interface.cpp:64
    #2 0x556dd8947b76 in itti_alloc_new_message /home/francesco/openairinterface5g/common/utils/ocp_itti/intertask_interface.cpp:93
    #3 0x556dd86be183 in nr_rrc_process_sib1 /home/francesco/openairinterface5g/openair2/RRC/NR_UE/rrc_UE.c:337
    #4 0x556dd870c3b3 in nr_rrc_ue_decode_NR_BCCH_DL_SCH_Message /home/francesco/openairinterface5g/openair2/RRC/NR_UE/rrc_UE.c:954
    #5 0x556dd870c3b3 in rrc_nrue /home/francesco/openairinterface5g/openair2/RRC/NR_UE/rrc_UE.c:2015
    #6 0x556dd871392e in rrc_nrue_task /home/francesco/openairinterface5g/openair2/RRC/NR_UE/rrc_UE.c:1943
    #7 0x7fea59a16608 in start_thread /build/glibc-FcRMwW/glibc-2.31/nptl/pthread_create.c:477
```
2025-02-21 14:02:37 +01:00
Robert Schmidt 2cc3f3bcac Fix: write NSSAI info of F1AP Cell Info struct
During refactoring, the previously implemented NSSAI field of the cell
info structure was not written to F1AP ASN.1 structures anymore;
eq_f1ap_cell_info() also conveniently omitted the corresponding equality
check. Add this back so the CU can correctly receive the NSSAI in case
of F1 split operation.

Fixes: f278b00837 ("Add encoding/decoding library for F1AP Setup
  Request (Interface Management) ")
2025-02-21 07:42:48 +01:00
Sagar Arora 5f2f907d53 chore(ci): change image rentention from 4weeks to 3weeks
Signed-off-by: Sagar Arora <sagar.arora@openairinterface.org>
2025-02-20 08:31:50 +01:00
francescomani 66d8cf0f13 update of timing test thresholds to reflect current values 2025-02-19 18:28:04 +01:00
Bartosz Podrygajlo c6ed26fca3 Add a metric for rfsimulator channel emulator performance
Add a print and method to calculate rfsimulators channel emulation performance.
The counter unit is Megasample/second (Msps).
2025-02-19 16:18:16 +01:00
Bartosz Podrygajlo 2fb541a68e Add option to use global noise power for all RX channels in RFSimulator
Added new command line option to channelmod: noise_power_dBFS. This options
allows the user to configure noise power in dBFS added instead of the per-channel
value.

This makes it so noise is not accumulated per channel reaching higher than expected
values.

The dBFS unit allows easy configuration. The gNB by default uses -36 dBFS setting.
To reach 3dB SNR one should set the noise_power_dBFS value to -39.

To configure using command line use --channelmod.noise_power_dBFS -50. Using this
setting the gNB and nrUE connect without issue.
2025-02-19 16:05:38 +01:00
Bartosz Podrygajlo 82fbb6bb04 Remove unused noise_power_dB field in rfsimulator_state_t 2025-02-19 16:05:29 +01:00
Guido Casati 89ca89ea4b Address integrity failure after UE reconnects from RRC IDLE
After a new connection from RRC IDLE, an integrity failure occurs. This
commit is addressing this issue to pass the integrity check.

* Reset ciphering and integrity algorithms when going into RRC IDLE

* Use uplink NAS COUNT in Registration Request for initial KgNB derivation
  * Temporarily deriving UP protection keys in Registration Request
  * Note: AS SMC handling should be done according to 33.501 §6.8.1.1.2.2
2025-02-19 15:07:08 +01:00
Guido Casati 48a307e172 Use 5G-S-TMSI in RRC connection setup procedures
* Use the 5G-S-TMSI stored in RRC to be used as UE identity
* Use 5G-S-TMSI part 1 in RRCSetupRequest encoding (TS 38.331 clause 5.3.3.3)
* Set the ng-5G-S-TMSI-Value in RRCSetupComplete to ng-5G-S-TMSI-Part2 (5.3.3.4 of 3GPP TS 38.331)
* current and only scenario: RRCSetup is received in response to an RRCSetupRequest
2025-02-19 15:02:11 +01:00
luis_pereira87 e1d4ff1126 Upgrade SIMDe commit 2025-02-19 10:32:00 +00:00
francescomani cb72bd26f4 do not send to L1 DCI PDU if there are no candidates 2025-02-19 10:31:42 +01:00
francescomani 1ce6167c45 free message after receiving it at MAC from RRC 2025-02-18 18:07:44 +01:00
ndomingues 27dccb8bce Fix "Received Nack" log for Msg4/MsgB and minor improvement in RA logs 2025-02-18 14:23:36 +00:00
Guido Casati c6cc00633f Rework handling of initial NAS message in RRCSetupComplete generation
* use initialNasMsg to store nas messages buffer and length
* buffer is dynamically allocated in generateRegistrationRequest, so do the
  same in NSA and free dynamic allocated data afterwards
2025-02-18 12:47:13 +01:00
Guido Casati 36a39b25a1 Set 5GMM Mode to IDLE when receiving NR_NAS_CONN_RELEASE_IND
> In N1 mode, upon indication from lower layers that the access stratum
  connection has been released, the UE shall enter 5GMM-IDLE mode and
  consider the N1 NAS signalling connection released (3GPP TS 24.501)
2025-02-18 12:47:13 +01:00
Guido Casati fb318e8e3f Cleanup commented out code in nas_nrue 2025-02-18 12:47:13 +01:00
Guido Casati ca869d8fd3 Pass to RRC the 5G-S-TMSI extracted from NAS Registration Accept
* NAS -> RRC: RRC receives an ITTI message with NAS 5GMM indication message
  containing the 5G-S-TMSI derived from NAS GUTI
* 5G-S-TMSI is stored in the RRC instance and to be later encoded in the RRCSetup
2025-02-18 12:47:13 +01:00
Guido Casati 4736f97055 Indicate to NAS that the RRC connection has been established with a Connection Establishment Indication
* ITTI from RRC to NAS
* according to 5.3.1.3 of 3GPP TS 24.501
* set 5GMM mode to CONNECTED
2025-02-18 12:47:13 +01:00
Robert Schmidt 6d9c2c35b8 Merge branch 'integration_2025_w07' into 'develop'
Integration: `2025.w07`

Closes #812, #901, #904, #881, and #819

See merge request oai/openairinterface5g!3258

* !3055 Dynamic PDCCH aggregation level
* !3176 Refactor and extend NAS Registration Request
* !3256 Add check on force_local in custom_command CI handling
* !3257 Bugfix in gNB modulated DCI buffer size
* !3249 Improvements in TDD configuration
* !3194 fix NTN LEO scenarios
* !3200 FHI72: remove polling, fix memory leak
* !3127 Optimizations of PDSCH Resource Mapping in nr_dlsch.c/nr_modulation.c
* !3252 \[E2 agent\] Multi RC REPORT service styles support
2025-02-18 11:37:07 +00:00
Francesco Mani 87c83f72cb Fix to receive SIB1 in re-establishment
During re-establishment we still have a valid SIB1 so we don't decode it
again. Then the UE never moves out of UE_RECEIVING_SIB, making
re-establishment impossible. This fixes addresses this.

Fixes: 11b87d8744 ("NR UE: RRC layer now explicitly tells MAC layer
when the RA procedure can be started)"
2025-02-18 10:27:34 +01:00
Robert Schmidt 1114ee3a2d Merge remote-tracking branch 'origin/rc-report-service-fix' into integration_2025_w07 (!3252)
[E2 agent] Multi RC REPORT service styles support

Issue: unforeseen capability of having the same RAN Parameter ID across
different REPORT service styles.

Solution: keep only RAN Parameter IDs from REPORT styles that are
supported by OAI. Implement sequence array where each element is
combination of RIC request ID (unique per RIC SUBSCRIPTION) and Event
Trigger Definition. This way we can properly check further conditions
for a certain RAN Parameter ID. (e.g. if xApp is subscribed to RRC
Connected and/or other modes, for "RRC State Changed To" RAN Parameter
ID)

Next steps: for new RAN Parameter ID, add new sequence array.
2025-02-17 22:10:35 +01:00
Robert Schmidt 651ef3daee Merge remote-tracking branch 'origin/resource_mapping_optim' into integration_2025_w07 (!3127)
Optimizations of PDSCH Resource Mapping in nr_dlsch.c/nr_modulation.c

These changes add SIMD optimizations for Neon/AVX2/AVX512 in the PDSCH
transmit path. The timing improvements are listed here based on the

    nr_dlsim -e25 -R273 -b273 -s30 -x "layers" -y 4 -z 4 -P

benchmark with "layers" 2,3,4 and comparing "PHY proc tx":

273 PRBS, mcs25, 64QAM

peafowl (gcc11,AMD EPYC 9374F)

    2-layer, 4 TX : 431 us (develop 565 us)
    3-layer, 4 TX : 692 us (develop 849 us)
    4-layer, 4 TX : 963 us (develop 1172 us)

stupix (gcc10, Xeon Gold 6354)

    2-layer, 4 TX : 568 us (develop 652 us)
    3-layer, 4 TX : 901 us (develop 1030 us)
    4-layer, 4 TX : 1250 us (develop 1396 us)

matix (gcc14, Ryzen 9 PRO 7945)

    2-layer, 4 TX : 317 us (develop 505 us)
    3-layer, 4 TX : 538 us (develop 779 us)
    4-layer, 4 TX : 767 us (develop 1233 us)
2025-02-17 22:09:26 +01:00
Laurent THOMAS 8a63b01387 merge 2 functions that do the same in one and set better naming 2025-02-17 18:51:21 +01:00
9e2c889dba Multi RC REPORT service styles support
Issue: unforeseen capability of having the same RAN Parameter ID across different
REPORT service styles.

Solution: keep only RAN Parameter IDs from REPORT styles that are supported by OAI.
Implement sequence array where each element is combination of RIC request ID (unique per RIC SUBSCRIPTION)
and Event Trigger Definition. This way we can properly check further conditions for a certain RAN Parameter ID.
(e.g. if xApp is subscribed to RRC Connected and/or other modes, for "RRC State Changed To" RAN Parameter ID)

Next steps: for new RAN Parameter ID, add new sequence array.

Co-authored-by: Bischoff <tano.bischoff@hhi.fraunhofer.de>
Co-authored-by: Shrinish Donde <shrinish.donde@hhi.fraunhofer.de>
Co-authored-by: Khanh Toan Pham <khanh.toan.pham@hhi.fraunhofer.de>
2025-02-17 16:33:03 +01:00
Robert Schmidt f0d6d42aec Merge remote-tracking branch 'origin/fhi72-no-polling' into integration_2025_w07 (!3200)
FHI72: remove polling, fix memory leak

- FHI72 used polling to track the next slot. This is not necessary, a
  simple queue does the job and allows to save one core that was
  previously at 100%
- Remove a workaround to avoid a memory leak (fixes #812); allows to
  also run RFsim/USRP/otehr radios when compiling for FHI72
2025-02-17 15:10:01 +01:00
Robert Schmidt 7d574ffcfb Merge remote-tracking branch 'origin/fix_ntn_leo' into integration_2025_w07 (!3194)
fix NTN LEO scenarios

- gNB: add support for NTN parameter ta-CommonDrift-r17
- NR UE: fix application of NTN TA information
- NR UE: add command line parameter ntn-initial-time-drift to compensate
  time drift during initial sync
- NR UE: fix writeTimestamp inconsistencies
- NR UE: add MAC state UE_RECEIVING_SIB ensuring to start RA only after
  successfully receiving SIBs
- rfsimulator: update earth radius for LEO simulation to match UE
  position in ue.conf file
- update conf files for NTN LEO scenario
- update description how to run NTN scenarios in RUNMODEM.md
- fix: ta-Common is a round-trip-time, not a one-way delay
- NR UE: simplify calculation of next_tx_slot_and_frame by moving up
  assignment of duration_rx_to_tx
- cellbarredNTN indicates notbarred in SIB1 if NTN access is available
- Removed b66 NTN and enabled B254 NTN conf file in CI
- NR UE: RRC layer now explicitly tells MAC layer when the RA procedure
  can be started
- move NTN LEO config to band 254 and update doc/RUNMODEM.md

Closes #901
2025-02-17 15:09:24 +01:00
Laurent THOMAS ce7bdf71e9 fix simde lacking refix 2025-02-17 11:06:08 +01:00
Jaroslava Fiedlerova 34970d38ef fix in nr_dlsch.c, dmrs_case2b 2025-02-17 10:22:17 +01:00
Raymond Knopp fa38798521 bugfix in nr_dlsch.c 2025-02-16 23:26:51 +01:00