1. 30 Jan, 2025 16 commits
    • Guido Casati's avatar
      Refactor capture_pdu_session_establishment_accept_msg · 384659ed
      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
      384659ed
    • Guido Casati's avatar
      Add NAS 5GS header decoding functions · 2e651ed2
      Guido Casati authored
      2e651ed2
    • Guido Casati's avatar
      Refactor generateServiceRequest · b07ddb1e
      Guido Casati authored
      * simplified code, reduced conditional statements, reduced number of pointers
      b07ddb1e
    • Guido Casati's avatar
      2c5309f0
    • Guido Casati's avatar
      Refactor NAS 5GMM messages structs definitions · 63d7f26c
      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
      63d7f26c
    • Guido Casati's avatar
      9719f5e5
    • Guido Casati's avatar
      Refactor generateRegistrationComplete · 08e3f2f0
      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
      08e3f2f0
    • Guido Casati's avatar
      Add equality check and error macro to NAS · 78105165
      Guido Casati authored
      78105165
    • Guido Casati's avatar
      Fix typo and rename NAS identity response · 8a844efa
      Guido Casati authored
      8a844efa
    • Guido Casati's avatar
      Initial separation of enc/dec functions from handlers/callbacks · 2d755988
      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
      2d755988
    • Guido Casati's avatar
      Limit scope of NAS functions (static) · f73579ea
      Guido Casati authored
      f73579ea
    • Guido Casati's avatar
      Refactor includes in nr_nas_msg (.c/.h) · ddad26ef
      Guido Casati authored
      ddad26ef
    • Guido Casati's avatar
      Refactor NAS 5GS message type definitions · 27ed2373
      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
      27ed2373
    • Guido Casati's avatar
      Remove NAS/COMMON/nr_common.c and move servingNetworkName to nr_nas_msg.c · fb85ba7d
      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
      fb85ba7d
    • Guido Casati's avatar
      Refactor NAS 5GS (5GMM & 5GSM) structs definitions and their use · 03a4d8ef
      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
      03a4d8ef
    • Guido Casati's avatar
      Migrated NAS 5GS (5GMM & 5GSM) to NR folders and refactor CMakeLists.txt files · c0583be2
      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
      c0583be2
  2. 08 Jan, 2025 7 commits
  3. 10 Dec, 2024 4 commits
  4. 09 Dec, 2024 1 commit
  5. 08 Dec, 2024 1 commit
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/fhi-f-release' into integration_2024_w49 (!3147) · 0b3d0986
      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
      0b3d0986
  6. 06 Dec, 2024 5 commits
  7. 05 Dec, 2024 6 commits
    • Teodora's avatar
      2b007b5d
    • Teodora's avatar
      Update FHI README regarding F release support · 825543f4
      Teodora authored
      825543f4
    • Teodora's avatar
      Fronthaul xran library F release support · 574b3eb3
      Teodora authored
      Major improvements:
        1) bbu_offload - enable packet handling on BBU cores
        2) dlCpProcBurst - DL CP processing on one or more symbols
        3) SRS CP processing - depends on the RU capabilities that can be
          retreived via M-plane (if RU is CAT B)
        4) nSecDesc - the number of section descriptors per symbol; it was hardcoded to 0 in E release;
          depends on the RU capabilities that can be retreived via M-plane
        5) RunSlotPrbMapBySymbolEnable - enable PRB mapping by symbol with multisection;
          depends on the RU capabilities that can be retreived via M-plane
        6) DSS (Dynamic Spectrum Sharing) support - depends on the RU capabilities that can be retreived via M-plane
      
      Minor fixes in F that exist in E:
        1) prach_config->nPrachFilterIdx - explained in commit ID f3045396
        2) T1a_min_cp_dl - explained in the commit under title "Clarification on DU delay profile"
        3) fh_config->nULRBs - explained in commit under title "Further clarification on xran E release parameters"
      
      Removed const for prb_conf argument in oran_allocate_cplane_buffers()
      function, as F release requires the not const struct for
      xran_init_PrbMap_by_symbol_from_cfg() and xran_init_PrbMap_from_cfg()
      even though the struct is not modified inside of these functions.
      574b3eb3
    • Teodora's avatar
      Correction on PRACH offset in FHI README · 197db6a6
      Teodora authored
        - this should have been done in the commit ID b334feb9
      197db6a6
    • Teodora's avatar
      Further clarification on xran E release parameters · 698245c7
      Teodora authored
        - remove xran parameter io_cfg->port logging => this parameter
          is filled within xran library in both E and F releases
        - PRACH offset explanation; not limited to >= max(Ntx, Nrx);
          workaround done in xran to support PRACH eAxC IDs same as PUSCH eAxC IDs
        - DL PRB not used in xran; UL PRB used in xran F release, therefore
          removed from the patch
        - these fixes should have been done in the commit ID f3045396
      698245c7
    • Teodora's avatar
      Clarification on One-Way Delay Measurements · dd4ffe34
      Teodora authored
      dd4ffe34