- 31 Jan, 2025 12 commits
-
-
Robert Schmidt authored
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
-
Robert Schmidt authored
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
-
Guido Casati authored
-
Guido Casati authored
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).
-
Teodora authored
- 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
-
Robert Schmidt authored
Merge remote-tracking branch 'origin/RRCReestablishment_integrity' into integration_2025_w05 (!3229) Verify the integrity protection of the RRCReestablishment message
-
Robert Schmidt authored
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
-
Robert Schmidt authored
Ensure execution of processSlotTX in order in NR UE Make sure that processSlotTX is executed in slot order. There is a bug that causes decoding error when processSlotTX is executed out of order. The root cause is not known at this point, but this change avoids the bug altogether.
-
Robert Schmidt authored
More Layer1 cleaning Cleanup, see commits for info
-
Robert Schmidt authored
Add IQ file recording and IQ file viewer to ImScope This changeset introduces the following changes to ImScope: - Added the ability to record IQ data using the same mechanism as ImScope. - Added a new executable target imscope_iq_file_viewer for viewing IQ files. - Introduced a command line argument --imscope-record that enables data recording mode. - Refactored a lot of the scope code Usage: - To record IQ data, run a modem with --imscope-record flag. The recording happens whenever a modem calls dumpScopeData, which currently is done only in gNB on PUSCH DTX and PUSCH CRC NOK. There is a limit of ~1GB of files written by the thread in a signle run to avoid accidentally exhausting disk space. If a directory imscope-dump is available the data will be recorded there in .imscope files. Otherwise files are written to the directory the modem was run. This is done so that the directory can be mapped in a docker container. - To view recorded IQ files, use the new executable imscope_iq_file_viewer. This can be done by running: ./imscope_iq_file_viewer <path_to_iq_file> Replace <path_to_iq_file> with the path to the IQ file you want to view.
-
Robert Schmidt authored
Dockerized development environment This commit introduces a fully dockerized dev env you can start on any machine that has docker without installing any direct OAI dependencies on host. This allows to migrate development environments between machines easily. Several complementary scripts were added to enable smooth transition between your docker environment and host environment. Your user and sudo should work inside the environment. In its current state, the environment can be used to compile nr-softmodem with 7.2 FHI but it cannot run it due to missing dependencies.
-
Bartosz Podrygajlo authored
This commit introduces a fully dockerized dev env you can start on any machine that has docker without installing any direct OAI dependencies on host. This allows to migrate development environments between machines easily. Several complementary scripts were added to enable smooth transition between your docker environment and host environment. Your user and sudo should work inside the environment.
-
- 30 Jan, 2025 28 commits
-
-
francescomani authored
-
Laurent THOMAS authored
-
Laurent THOMAS authored
-
Laurent THOMAS authored
-
Laurent THOMAS authored
-
Laurent THOMAS authored
-
Guido Casati authored
-
Guido Casati authored
-
Guido Casati authored
* the last 6 bits of the GUTI represent the AMF Pointer * the AMF Set ID is 10 bits long * the Registration Accept message received from the network contains the GUTI which, when properly decoded, will be used in any possible following Registration Request
-
Guido Casati authored
-
Guido Casati authored
-
Guido Casati authored
-
Guido Casati authored
* use defines whenever possible * introduce a switch to handle security type. Currently only integrity protected and ciphered is handled, however the idea of the switch is to make the code ready for the future when different security types will be handled and different actions should be taken based on that. * define NAS_INTEGRITY_SIZE
-
Guido Casati authored
* also, add security type NAS_SECURITY_NEW_SECURITY_CONTEXT
-
Guido Casati authored
* the goal of this commit is to refactor capture_pdu_session_establishment_accept_msg into a decoding function * PduSessionEstablishmentAccept.c is in the 5GSM library and shall only do encoding operations * handling of PDU Session Establishment accept message is done in nr_nas_msg.c * adopted new NAS decoding functions in the process * improved QoS rules decoding * convert getShort into a macro and add to NAS utils
-
Guido Casati authored
-
Guido Casati authored
* simplified code, reduced conditional statements, reduced number of pointers
-
Guido Casati authored
-
Guido Casati authored
as per legacy code, the NAS functions in nr_nas_msg.c were encoding the header in the plain header contained in MM_msg (e.g. plain -> mm_msg -> header in fgs_nas_message_t). The same header was encoded in the mobility management message contained in the same struct (e.g. plain -> mm_msg -> registration_request -> protocoldiscriminator). As this was more complicated than necessary, the goal of this commit is to simplify the code and improve readability. Namely: * Refactor MM_msg into fgmm_nas_message_plain_t to contain (1) 5GMM Header (2) 5GMM Payload union * Use fgmm_nas_message_plain_t and fgmm_nas_msg_security_protected_t in the 5GMM NAS procedures * Remove NAS header IEs from 5GMM messages structs and use the header in fgs_nas_message_plain_t. This reduce also the repetitions of header members in each of the 5GMM messages structs. * Rename struct to distinguish between 5GMM and 5GSM * Remove fgs_nas_message_t and nas_msg_header_t, use directly basic 5GS struct definitions, simplify the code * The callbacks in nr_nas_msg.c are now doing (1) encode header with the common NAS lib (2) encode contents with the 5GMM libs * improve code readibility in the process
-
Guido Casati authored
-
Guido Casati authored
* replace encoding code with proper functions from the lib * remove unnecessary header members in struct definition this commit removes last enc/dec code in nr_nas_msg.c
-
Guido Casati authored
-
Guido Casati authored
-
Guido Casati authored
* move enc/dec definitions to NR_NAS_defs.h and add new lib file nr_fgs_nas_lib.c both used by nr_nas_msg.c * move utility macros to fgs_nas_utils.h: this can be used in all the 5GMM, 5GSM lib files * use nr_nas_msg.c for handlers/callbacks only, it should call the enc/dec functions in nr_fgs_nas_lib and in the 5GMM, 5GSM libs * 5GMM, 5GSM libs should only do the enc/dec of the NAS message contents
-
Guido Casati authored
-
Guido Casati authored
-
Guido Casati authored
* move defines to openair3/NAS/NR_UE/nr_nas_msg.h as they are only used in nr_nas_msg.c * made naming of all message types consistent, using the same prefix for all
-
Guido Casati authored
* the only function used from nr_common.c is servingNetworkName which is used in nr_nas_msg.c, so it was moved to the latter file and its scope was reduced
-