Commit d848b373 authored by Yann Garcia's avatar Yann Garcia
Browse files

Rework TC_NGAP_AMF_PDU_01

parent 402ccc55
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ Lib_NG_NAS_Pixits.PX_SUPI_FORMAT := '0000'B # IMSI format
Lib_NG_NAS_Pixits.PX_TYPE_OF_ID                      := '001'B # SUCI type
Lib_NG_NAS_Pixits.PX_SUPI_DIGITS                     := '00f110214300014444330302'O
Lib_NG_NAS_Pixits.PX_MSIN                            := '0000000010'O;
Lib_NG_NAS_Pixits.PX_NETWORK_NAME                    := "Open5GS"

# OP
Lib_NG_NAS_Pixits.PX_OPERATOR_KEY                    := '00000000000000000000000000000000'O
Original line number Diff line number Diff line
Subproject commit c668fdde6b04942cb7ce43b5fd379105174c1828
Subproject commit b7ef8f8a661c237a8c79b1a58fa16e99cca17175
+10 −2
Original line number Diff line number Diff line
@@ -268,7 +268,7 @@ module NGAP_Steps {
        function f_NGAP_amf_UE_PDU_SessionEstablishmentRequest() runs on aMFNGAPComponent {
            log(">>> f_NGAP_amf_UE_PDU_SessionEstablishmentRequest");
            if (PICS_OFFLINE_MODE) {
                f_await_session_establishment_request();
                f_await_pdu_session_establishment_request();
            } else {
                f_send_pdu_session_establishment_request();
            }
@@ -282,6 +282,14 @@ module NGAP_Steps {
            f_await_session_establishment_accept();
        } // End of function f_NGAP_amf_UE_PDU_SessionEstablishmentAccept

        /**
         * @desc
         */
        function f_NGAP_amf_ConfigurationUpdateCommand() runs on aMFNGAPComponent {
            log(">>> f_NGAP_amf_ConfigurationUpdateCommand");
            f_await_configuration_update_command();
        } // End of function f_NGAP_amf_ConfigurationUpdateCommand

        /**
         * @desc
         */
@@ -522,7 +530,7 @@ module NGAP_Steps {
         */
        function f_NGAP_gnb_UE_PDU_SessionEstablishmentRequest() runs on gNBNGAPComponent {
            log(">>> f_NGAP_gnb_UE_PDU_SessionEstablishmentRequest");
            f_await_session_establishment_request();
            f_await_pdu_session_establishment_request();
        } // End of function f_NGAP_gnb_UE_PDU_SessionEstablishmentRequest

        /**
+2 −1
Original line number Diff line number Diff line
@@ -4043,7 +4043,8 @@ module NGAP_TCFunctions {

                  // Body
                  //action("Trigger PDU session resource SETUP!");
                  f_NGAP_amf_UE_PDU_SessionEstablishmentRequest();
                  f_NGAP_amf_UE_PDU_SessionEstablishmentRequest(); // f_send_pdu_session_establishment_request
                  f_NGAP_amf_ConfigurationUpdateCommand(); // f_await_configuration_update_command

                  f_recv_NGAP_PDU(
                                  mw_ngap_initMsg(
+80 −21
Original line number Diff line number Diff line
@@ -99,8 +99,8 @@ module LibNGAP_Functions {
                                                                            {
                                                                                m_sliceSupportItem(
                                                                                        m_s_NSSAI(
                                                                                                  PX_SST,
                                                                                                  PX_SD
                                                                                                  PX_SST/*,
                                                                                                  PX_SD*/
                                                                                        ),
                                                                                        -//in template (omit) SliceSupportItem.iE_Extensions p_iE_Extensions := omit
                                                                                    )
@@ -872,15 +872,15 @@ module LibNGAP_Functions {
        log("vc_sendNAS_PDU: ", vc_sendNAS_PDU);
        f_send_NGAP_PDU(
                        m_ngap_initMsg(
                                       m_n2_initialUeMessage(
                                                             -,
                                       m_n2_UplinkNASTransport(
                                                               vc_AMF_UE_ID,
                                                               vc_RAN_UE_ID,
                                                               vc_sendNAS_PDU,
                                                               m_uPTransportLayerInformation_userLocationInformationNR(
                                                                                                                       m_userLocationInformationNR(
                                                                                                                                                   m_nR_CGI,
                                                                                                                                                   m_tAI
                                                                                                                     ))
                        )));
                        )))));
    }

    /**
@@ -892,8 +892,10 @@ module LibNGAP_Functions {
        // Await request for REGISTRATION_COMPLETE
        f_recv_NGAP_PDU(
                        mw_ngap_initMsg(
                                        mw_n2_initialUeMessage
                        ));
                                        mw_n2_UplinkNASTransport(
                                                                 vc_AMF_UE_ID,
                                                                 vc_RAN_UE_ID
                        )));
        f_NASPDU_Get(vc_recvNGAP_PDU)
        if (match(vc_recvNgNasUl_Msg, mw_NG_REGISTRATION_COMPLETE)) {
            log("Received NG_REGISTRATION_COMPLETE NAS message");
@@ -915,8 +917,15 @@ module LibNGAP_Functions {
                                                                                                                            crs_SSC_Mode('9'H, '001'B),
                                                                                                                            m_ng_ue_sm_cap,
                                                                                                                            -,
                                                                                                                            m_integrity_prot_max_data_rate
                                                                                     ));
                                                                                                                            m_integrity_prot_max_data_rate,
                                                                                                                            -, -,
                                                                                                                            f_NAS_ExtdProtocolConfigOptionsTX(
                                                                                                                                                              {
                                                                                                                                                               cs_ProtocolContainer_Common('000a'O), 
                                                                                                                                                               cs_ProtocolContainer_Common('000d'O)
                                                                                                                                                              }
                                                                                                                                       
                                                                                     )));
        v_ng_pdu_session_establishment_request.pdu_Session_Establishment_Request.protocolDiscriminator := tsc_EPD_GSM;
        // 2. Prepare UL NAS Transport message
        log("v_ng_pdu_session_establishment_request: ", v_ng_pdu_session_establishment_request);
@@ -970,8 +979,8 @@ module LibNGAP_Functions {
                        )))));
    }

    function f_await_session_establishment_request() runs on NGNASComponent {
        log(">>> f_await_session_establishment_request");
    function f_await_pdu_session_establishment_request() runs on NGNASComponent {
        log(">>> f_await_pdu_session_establishment_request");

        // Await PDUSessionEstablishmentRequest
        f_recv_NGAP_PDU(
@@ -1233,6 +1242,45 @@ module LibNGAP_Functions {
    //                     )));
    // }

    function f_await_configuration_update_command() runs on NGNASComponent {
        log(">>> f_await_configuration_update_command");

        // Await ConfigurationUpdateCommand
        f_recv_NGAP_PDU(
                        mw_ngap_initMsg(
                                        mw_n2_DownlinkNASTransport(
                                                                   vc_AMF_UE_ID,
                                                                   vc_RAN_UE_ID
                        )));
        f_NASPDU_Get(vc_recvNGAP_PDU);
        var NG_NAS_DL_Message_Type v_message;
        if (f_Check_5GAKA_NAS_DL_Message(
                                         vc_recvNAS_PDU, 
                                         mw_NG_CONFIGURATION_UPDATE_COMMAND(
                                                                            -, -, -, -, -, 
                                                                            mw_network_name(
                                                                                            -, -, -, -, -,
                                                                                            -//unichar2oct(oct2unichar(char2oct(PX_NETWORK_NAME)))
                                                                                            ),
                                                                            -,
                                                                            cs_TimeZone('40'O),
                                                                            ?, // TimeZoneAndTime
                                                                            ?  // DaylightSavingTime
                                                                            ),
                                         vc_ng_nas_security_params_type, 
                                         vc_previous_nas_count_dl, v_message
                                         ) == false) {
            log("*** " & __SCOPE__ & ": FAIL: NG_CONFIGURATION_UPDATE_COMMAND mismatch. ***");
            setverdict(fail);
        } else {
            log("*** " & __SCOPE__ & ": PASS: Expected NG_CONFIGURATION_UPDATE_COMMAND ***");
            setverdict(pass);
        }
        log("v_message: ", v_message);

        log("<<< f_await_configuration_update_command");
    }
    
    function f_await_initial_context_setup_failure() runs on NGNASComponent {
        log(">>> f_send_initial_context_setup_failure");

@@ -1517,6 +1565,17 @@ module LibNGAP_Functions {
                                                      p_nas_count,
                                                      p_bearerId);
        }
        if (
            (p_ng_nas_security_params_type.NAS_Ciphering.Algorithm == tsc_SHT_IntegrityProtected_Ciphered) or
            (p_ng_nas_security_params_type.NAS_Ciphering.Algorithm == tsc_SHT_IntegrityProtected_Ciphered_NewSecurityContext)
            ) {
                log("f_EncodeAndCipher_NG_NasPdu_v: Apply ciphering");
                v_EncodedNasPdu := fx_NG_NasCiphering(p_nAS_PDU,
                                                      p_ng_nas_security_params_type.NAS_Ciphering.Algorithm,
                                                      p_ng_nas_security_params_type.NAS_Ciphering.K_NAS,
                                                      p_nas_count,
                                                      p_bearerId);
        }

        // Apply integrity protection
        log("f_EncodeAndCipher_NG_NasPdu_v: Apply integrity protection");
Loading