Commit Graph
28663 Commits
Author SHA1 Message Date
Guido Casati b9dc68b5ce Add RRC Inactive Indication and Timer T3512 to NAS struct definition 2025-02-10 10:05:00 +01:00
Guido Casati 4633eb8888 Refactor 5GS registration type encoding (9.11.3.7 of 3GPP TS 24.501) 2025-02-10 09:51:52 +01:00
Guido Casati 212fe8d2f3 Add common enc/dec E1AP libs to e1ap_lib_common.c
* these functions are used in both interface management
  and bearer context management libraries
2025-02-09 22:48:54 +01:00
Robert Schmidt 609969f46d nFAPI/PNF: Correctly set message length when segmenting
Make the same change as in parent commit, i.e., write the full 32-bit
segment size.

I could not test this, as we do not reach these rx_data.indication
length. It's based on the fix in the parent commit, and to avoid future
bad surprises.
2025-02-08 12:29:25 +01:00
Robert Schmidt 2067831e7a nFAPI/VNF: Correctly set message length when segmenting
The 5G nFAPI message length is 32bits. In particular tx_data.requests
can be longer than 64kB. When segmenting, we should correctly write the
message of the current segment (across all 32bits), because the
length would interpreted wrongly otherwise.

This fixes a bug in which tx_data.requests were discarded for 4-layer DL
MIMO on 100 MHz with this message:

    P7 unpack message length is greater than the message buffer

Further, increase the type of various (segment-related) variables to 32
bits. Currently, the maximum segment size is sxt to 65000 bytes (and in
will likely remain, because the maximum UDP size is 65536);
nevertheless, increase it in case we will ever go beyond this.

See also commit dee68e6319 ("nFAPI: increase maximum segment size to
65000")
2025-02-08 12:25:44 +01:00
Robert Schmidt 976f210132 Merge remote-tracking branch 'origin/error-simd-intrinsic-name' into integration_2025_w06 (!3239)
Remove inexistant SIMD instruction

develop branch doesn't compile with AVX2 only. For instance,
mm_loadi_epi32() doesn't exist in SSE, only in the AVX512 family,
despite it being a 128 bit vector size instruction.

See also:
https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#_mm_loadi_epi32()

This was masked by using SIMDE.
2025-02-07 17:33:08 +01:00
Robert Schmidt 8c39825688 Merge remote-tracking branch 'origin/tun_if_refactor' into integration_2025_w06 (!3238)
Refactor tun_if.h

Use a common function for generating interface name. Use full interface
name in tun_if.h functions.
2025-02-07 17:32: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
Robert Schmidt 6ed05c5334 Merge remote-tracking branch 'origin/period_based_phytest_bitmap' into integration_2025_w06 (!3242)
Period based phytest bitmap

phy-test slot bitmap tdd period based to minimize the chance to need it
larger than 64 slots
2025-02-07 15:24:48 +01:00
Robert Schmidt e3c56a2b4e Merge remote-tracking branch 'beraoud/beraoud-develop-patch-76226' into integration_2025_w06 (!3240)
Fix typos in NR_SA_Tutorial_OAI_multi_UE.md
2025-02-07 15:24:02 +01:00
Robert Schmidt 296bf289cb Merge remote-tracking branch 'origin/remove_segment_coding' into integration_2025_w06 (!3202)
Simplify usage of the old segment decoding libraries with the slot coding interface

This MR transforms the segment coding libraries into slot coding
libraries by statically linking the adaptation layer and the segment
coding libraries.

Therefore they can be used directly in ldpctest which uses the segment
coding interface as well as in all the other PHY simulators and the NR
softmodem which use the slot coding interface.

It is not anymore needed to use the

   --nrLDPC_coding_segment.segment_shlibversion

flag.  Instead a segment coding library can be directly chosen with

    --loader.ldpc.shlibversion

since it implements the slot coding interface.
2025-02-07 15:22:30 +01:00
Robert Schmidt bad4a6eb64 nFAPI: msg length/offset is 32bit
5G nFAPI headers specify 32 bits for the length field, so use it here as
well.
2025-02-07 14:35:31 +01:00
Bartosz Podrygajlo e61bf5132d Refactor tun_if.h
Use a common function for generating interface name. Use full interface
name in tun_if.h functions.
2025-02-07 12:25:35 +01:00
Raghavendra Dinavahi 3e27175ac2 Added Support of 35Mhz,45Mhz,70Mhz Bandwidth for SCS 30Khz
Also added support for 35Mhz, 45Mhz bw for 15Khz Subcarrierspacing
Referred Spec TS 38.101 v18.6.0 section 5.3.2, table 5.3.2-1
2025-02-06 16:44:45 +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 fabaae3327 removing initial sync option from dlsim 2025-02-05 14:07:59 +01:00
Romain Beurdouche 6138e33f42 fix(nrLDPC_coding): Documentation 2025-02-05 11:22:54 +00:00
Romain Beurdouche 2d4d313b62 feat(nrLDPC_coding): Transform segment coding libraries into slot coding libraries by statically linking the adaptation layer and the segment coding libraries 2025-02-05 11:22:46 +00:00
Guido Casati 9dd1929ec0 Add fgsnasmessagecontainer member to NAS Registration Request struct 2025-02-04 15:32:04 +01:00
Guido Casati 54755b57aa Add NAS Registration Request with type Mobility Registration Updating
* ref TS 24.501
2025-02-04 15:31:24 +01:00
Guido Casati e3eb663085 Add 5GMM Modes in NAS
* added fgs_mm_mode_t enum
* added struct member to NAS
* modes: FGS_IDLE, FGS_CONNECTED
* according to 5GS mobility management (5GMM) modes 5.1.3.2.1.1 of TS 24.501
2025-02-04 15:30:04 +01:00
Guido Casati 98d922e568 Introduced 5GMM state machine
* according to 5.1.3.2.1 of 3GPP TS 24.501
2025-02-04 15:30:03 +01:00
Abdelkhalek Beraoud d5467aceb0 Fix typos in NR_SA_Tutorial_OAI_multi_UE.md 2025-02-04 13:44:50 +00:00
Laurent THOMAS 43b981247e error-simd-intrinsic-name 2025-02-04 13:21:43 +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
francescomani 92fc1639e8 add FR2 ulsim test case 2025-02-04 08:38:51 +01:00
francescomani a772f91053 add option to select slot in dlsim 2025-02-04 08:38:51 +01:00
francescomani 65cbcec57a fixes to allow FR2 dlsim test 2025-02-04 08:38:51 +01:00
francescomani 3bfb952989 rate matching formatting 2025-02-04 08:21:11 +01:00
francescomani fc52fb8d24 compute_tbs_common formatting 2025-02-04 08:21:11 +01:00
francescomani d791d03e05 fix to have correct maxMIMO_layers in dlsim computing tbslbrm 2025-02-04 08:21:11 +01:00
Thomas Schlichter 6b8a59cb68 gNB: add support for NTN parameter ta-CommonDrift-r17 2025-02-03 16:04:09 +00:00
Robert Schmidt 0053a3d0f4 Merge branch 'integration_2025_w05' into 'develop'
Integration: `2025.w05`

Closes #885

See merge request oai/openairinterface5g!3233

* !3102 Dockerized development environment
* !3185 Add IQ file recording and IQ file viewer to ImScope
* !3218 more layer1 cleaning
* !3224 Ensure execution of processSlotTX in order in NR UE
* !3231 Bugfix in frame and slot setting for ULSCH beam allocation
* !3229 Verify the integrity protection of the RRCReestablishment message
* !3230 FHI72: fix for single distributed antenna array for xran F release
* !2984 NAS 5GS refactor
* !3235 Parametrized JenkinsNode and JenkinsResource
* !2799 Changes to support multiple TDD patterns
* !3208 Downgrade gNB power limit LOG from "warning" to "debug"
2025-02-03 15:46:43 +00: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
Robert Schmidt 1e3e695f52 Merge remote-tracking branch 'origin/nu-ci-colosseum-jenkins-update' into integration_2025_w05 (!3235)
Parametrized JenkinsNode and JenkinsResource

Parametrized variables in Jenkinsfile for automated tests on Colosseum
after update of OAI Jenkins server.
2025-01-31 22:32:04 +01:00
Robert Schmidt e0865421b9 Merge remote-tracking branch 'origin/nr-ue-nas-improvements' into integration_2025_w05 (!2984)
NAS 5GS refactor

The goal of this MR is to reorganize the NR NAS code into:

- enc/dec library functions (5GS, 5GMM, 5GSM, NR_NAS_defs.h,
  nr_fgs_nas_lib.c)
- handlers and callbacks (nr_nas_msg.c)

The following changes are introduced:

1. migrate 5GS enc/dec lib (5GMM and 5GSM) to a dedicated folder
2. add a nested CMakeLists structure
3. refactor NR NAS enc/dec functions
4. refactor NR NAS messages struct definitions
5. remove most of dependency from NAS LTE
6. further refactor of PDU Session Establishment Accept processing to
   separate enc/dec from handling
7. made naming of 5GS definitions consistent whenever necessary
8. cleanup unused code
9. remove redundant struct definitions

Also:

1. fix decoding of AMF Set ID in 5G-S-TMSI UE identity
2. replace Byte_t directly with uint8_t
2025-01-31 22:29:31 +01:00
Robert Schmidt 70e70f6feb Merge remote-tracking branch 'origin/fhi72-f-release-fix-distributed-arr' into integration_2025_w05 (!3230)
FHI72: fix for a distributed antenna array for xran F release

in the Rx callback I reset the number of section descriptions/number of
fragments to 0, but for each antenna up to max number of antennas per
RU, instead of up to max number of distributed antenna array
2025-01-31 17:07:08 +01:00
Guido Casati fcea7d9fbf Add pattern2 to TEST-SA-FR1-SC-FDMA-B200 CI test 2025-01-31 16:56:13 +01:00
vijay chadachanandRobert Schmidt fc6e205c89 Add documentation on TDD configuration
Co-authored-by: Robert Schmidt <robert.schmidt@openairinterface.org>
2025-01-31 16:56:13 +01:00
vijay chadachanandGuido Casati ca72b56c2c Add gNB configuration file pattern2 TDD configuration
Co-authored-by: Guido Casati <guido.casati@firecell.io>
2025-01-31 16:56:13 +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
Guido Casati 529b142d75 Refactor servingNetworkName 2025-01-31 16:05:54 +01:00
Bartosz Podrygajlo d44279a9a3 Fix PHR PH value to power headroom conversion. 2025-01-31 16:05:13 +01:00
Leonardo Bonati 474c004ff4 Parametrized JenkinsNode and JenkinsResource 2025-01-31 10:03:55 -05:00
Guido Casati d6e2bf1651 Refactor registration accept decoding
previously we had decodeRegistrationAccept acting as a handler and calling
decode_registration_accept to do the decoding. However the logic was mixed
between the two functions, the naming was confusing and the code was hard
understand. The goal of this commit is to simplify the code, improve
readability and maintainability, while adapting the relevant function
to the new OAI NAS libs structure.

To this purpose:

* move enc/dec logic to NAS lib openair3/NAS/NR_UE/5GS/5GMM/MSG/RegistrationAccept.c -
  the logic of parse_allowed_nssai, get_allowed_nssai has been moved to
  decode_registration_accept and decode_nssai_ie
* add decode_nssai_ie and use it for both Allowed/Configured NSSAIs list (IE handling was added)
* do processing in the handler handle_registration_accept
* simplify the code by removing nested calls
* improve handling of PDU length

Currently only Registration Result, 5GS Mobile Identity, Allowed/Configured NSSAI
are decoded. The other optional IEIs are skipped (only the length is processed).
2025-01-31 16:02:04 +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
Bartosz Podrygajlo fd20068f26 Deadlock avoidance in rfsimulator 2025-01-31 15:47:41 +01:00
Teodora 04bfabcbb1 F release: fix for a distributed antenna array
- in the Rx callback I reset the number of section descriptions/number of fragments to 0,
    but for each antenna up to max number of antennas per RU, instead of up to max number of a distributed antenna array
2025-01-31 12:12:06 +01:00
Robert Schmidt 85edbc8ec7 Merge remote-tracking branch 'origin/RRCReestablishment_integrity' into integration_2025_w05 (!3229)
Verify the integrity protection of the RRCReestablishment message
2025-01-31 08:07:26 +01:00