• 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
nr_common.c 2.75 KB