- 31 Jan, 2025 1 commit
-
-
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).
-
- 30 Jan, 2025 24 commits
-
-
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
-
Guido Casati authored
Every NAS 5GS message can have 3 different headers: (1) security protected (2) 5GMM plain (3) 5GS plain; According to 3GPP TS 24.501: > 4.2 Coordination between the protocols for 5GS mobility management and 5GS session management > A 5GS session management (5GSM) message is piggybacked in specific 5GS mobility management (5GMM) transport > messages. To this purpose, the 5GSM messages can be transmitted in an information element in the 5GMM transport > messages. A PDU Session Establishment accept is a 5GSM message and as such it is contained in a 5GMM transport message. The code in capture_pdu_session_establishment_accept_msg is reflecting this. The message is thus expected to have: (1) Security protected 5GMM header (2) Plain 5GMM message (3) 5GSM Payload Container (4) Plain 5GSM message. 5.4.5 of 3GPP TS 24.501: also says: > The type of the payload is identified by the Payload container type IE and includes one of the following: a) a single 5GSM message; Thus, a 5GSM is not the only possible payload of a NAS transport message. This commit is focusing on the refactoring of the structs definitions and adaptation of the CMakeLists. Based on the above: * Move NR_NAS_defs.h to 5GS subfolder in NR_UE * Move NAS FGS structs and definitions to NR_NAS_defs.h * Rename mm_msg_header_t to fgmm_msg_header_t * Remove duplicated NAS struct definitions (1) kept fgs_nas_message_security_header_t over security_protected_nas_5gs_msg_t (2) Kept fgsm_msg_header_t over fgs_sm_nas_msg_header_t * Remove unused definitions, structs, functions in the process
-
Guido Casati authored
This commit is introducing the following macro changes: (1) Migrate NAS 5GS lib files to a new 5GS subfolder in NR_UE and organize NAS 5GS lib messages into 5GMM and 5GSM subfolders. A nested CMake structure was implemented and CMakeLists.txt were added whenever necessary. This is effectively separating 5GS libraries from LTE libraries. (2) In order to simplify the separation of 5GS libs from LTE libs, remaining dependencies from NAS LTE (e.g. nas_ue_task.c, ue-idx-standalone) were removed in the process (3) ExtendedProtocolDiscriminator.c/.h and SpareHalfOctet.c/.h were deleted and affected types were replaced with simple integer types (4) Cleanup: unused definitions and libs (e.g. LIB_5GNAS_GNB) were removed (5) Update doc/Doxyfile (6) clang-formatted the migrated files in the process (7) Update includes of headers in affected files
-
- 08 Jan, 2025 7 commits
-
-
Guido Casati authored
-
Guido Casati authored
* size of fgs_nas_message_security_header_t is platform-depending while protocol_discriminator must be 1 byte * fgs_protocol_discriminator_t stays as enum type
-
Guido Casati authored
* replace multiple log lines with one
-
Guido Casati authored
* use NAS macro to define enums and text description
-
Guido Casati authored
-
Guido Casati authored
-
Guido Casati authored
* the goal is to simplify the code
-
- 10 Dec, 2024 4 commits
-
-
Guido Casati authored
-
Guido Casati authored
-
Robert Schmidt authored
Integration: `2024.w49` See merge request oai/openairinterface5g!3148 * !3065 NAS Service Request enc/dec implementation * !3129 Refactor UL MAC PDU decoding * !3136 Use ninja -k option in CI * !3137 T tracer: add macpdu traces for the NR UE * !2392 Documentation: add multi-UE deployment with RFsimulator * !3145 a lib has been added but missed dependancies * !3050 doc: Add instructions for 5G NR gNB frequency configuration * !3141 CI: Allow restart of the container if deployment fails * !3138 Align YAML config getlist with libconfig implementation * !3140 remove un-necessary global variables * !3146 Updates to match more fapi-compliant tx_data.request * !3025 New threadpool, fixed in NR UE * CI: Remove USRP mgmt_addr from LTE-2x2 conf files * !3147 Fronthaul xran library update to F release (2. and final step towards M-plane integration) * !3142 Add CI test to trigger RLF with high pathloss in channelmod
-
Robert Schmidt authored
Add CI test to trigger RLF with high pathloss in channelmod
-
- 09 Dec, 2024 1 commit
-
-
Guido Casati authored
Upon restoration to ploss, set to 20; when setting to 0, the UE is not able to sync to the cell anymore. Co-authored-by:
Robert Schmidt <robert.schmidt@openairinterface.org>
-
- 08 Dec, 2024 1 commit
-
-
Robert Schmidt authored
Fronthaul xran library update to F release (2. and final step towards M-plane integration) - xran library support -> both E and F releases - RU delay profile removed -> not used in neither of the releases - DU delay profile updated - one-way delay measurements support is improved/fixed in the F release. However, not implemented here as it depends on the RU capabilities
-
- 06 Dec, 2024 2 commits
-
-
Jaroslava Fiedlerova authored
The "mgmt_addr" parameter is not required for USRP N310 initialization. The critical parameter for successful operation is the "addr", which specifies the IP address of the SFP port used for data transfer. Including both "mgmt_addr" and "addr" can lead to initialization failures if one of the specified addresses is unavailable. Since the "mgmt_addr" is unnecessary for this context, it has been removed to avoid potential conflicts and simplify the configuration.
-
Jaroslava Fiedlerova authored
New threadpool, fixed in NR UE This merge request is an attempt to fix the new thread pool implementation for use in NR UE and gNB (as well as eNB).
-