Commit 06a3b1f2 authored by Iztok Juvancic's avatar Iztok Juvancic
Browse files

added TPs 5GNAS_AMF_REG_ACC_06*

parent cb7d622f
Loading
Loading
Loading
Loading
+76 −8
Changes for ttcn/Ats_NG_NAS/NG_NAS_TCFunctions.ttcn: 76 added lines, 8 removed lines.
Original line number Diff line number Diff line
@@ -24,6 +24,8 @@ module NG_NAS_TCFunctions {
    import from Lib_NG_NAS_Pixits all;

    // Lib3GPP
    import from Parameters all;
    import from CommonDefs all;
    import from NAS_CommonTypeDefs all;
    import from NAS_CommonTemplates all;
    import from NG_NAS_TypeDefs all;
@@ -1425,10 +1427,10 @@ module NG_NAS_TCFunctions {
                var boolean PICS_NGAP_A4_5_2_1 := true; //TODO move to PICS of NGAP

                // Preamble
                f_NG_NAS_amf_UE_Register();
                f_NG_NAS_amf_UE_Authentication();
                f_NG_NAS_amf_UE_SecurityMode();
                // FIXME Optional f_send_NGUERadioCApabilityInfoIndication();
                //f_NG_NAS_amf_UE_Register();
                //f_NG_NAS_amf_UE_Authentication();
                //f_NG_NAS_amf_UE_SecurityMode();
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

@@ -1502,6 +1504,7 @@ module NG_NAS_TCFunctions {
                    //UEContextRequest set to "requested" by default in template
                    )
                );
                //NOT IN TP
                // // Await request for REGISTRATION_ACCEPT
                // f_recv_NGAP_PDU(
                //                 mw_ngap_initMsg(
@@ -1540,7 +1543,73 @@ module NG_NAS_TCFunctions {
                //     setverdict(pass);
                // }

                f_await_security_mode_command_send_security_mode_complete();
                //f_await_security_mode_command_send_security_mode_complete();
                f_await_security_mode_command();
                // Prepare response for SECURITY_MODE_COMPLETE
                // 1. Registration Request message with no 
                //var octetstring v_other_digits := f_get_suci_other_digits(); // ETSI TS 124 501 Figure 9.11.3.4.3: 5GS mobile identity information element for type of identity "SUCI" and SUPI format "IMSI"
                var NG_NAS_UL_Message_Type ng_registration_Request := valueof(
                                                                            m_NG_REGISTRATION_REQUEST(
                                                                                                        cs_RegistrationType(tsc_NG_RegistrationInitial, '1'B),
                                                                                                        tsc_NasKsi_NoKey,
                                                                                                        '0'B, // TSC,
                                                                                                        m_NG_MobileIdentitySUCI('0000'B/*IMSI*/, v_other_digits, '001'B /*SUCI*/),
                                                                                                        -, 
                                                                                                        m_ng_gmm_cap,
                                                                                                        m_ng_ue_security_capability, // Cleartext IE: the value of the initial REGISTRATION REQUEST (f_send_registration_request)
                                                                                                        cs_NSSAI_Def('2f'O, { f_NGAP_ue_s_nssai() }), // Requested NSSAI
                                                                                                        -, -, -, -, -, -, -, -,
                                                                                                        -, //m_ue_usagesetting,
                                                                                                        -, -, -, -, -, -,
                                                                                                        m_ng_update_type
                                                                            ));
                // 2. Add security if any
                // TODO
                log("ng_registration_Request: ", ng_registration_Request);
                var octetstring v_msg := bit2oct(encvalue(ng_registration_Request.registration_Request));
                log("bit2oct(encvalue(ng_registration_Request.registration_Request))", v_msg);

                // 3. NAS 5GS message
                log("px_IMEISV_Def: ", px_IMEISV_Def);
                log("f_NG_Imeisv2MobileIdentity_v(px_IMEISV_Def): ", f_NG_Imeisv2MobileIdentity_v(px_IMEISV_Def));
                var NG_NAS_UL_Message_Type ng_security_mode_complete := valueof(
                                                                                m_NG_SECURITY_MODE_COMPLETE_no_NonIMEISV_PEI(
                                                                                                                            f_NG_Imeisv2MobileIdentity_v(px_IMEISV_Def), //in template (value) NG_MobileIdentity p_IMEISV,
                                                                                                                            { iei := '71'O, iel := int2oct(lengthof(v_msg), 2), replayedNASMsgContainerValue := v_msg }
                                                                                ));
                ng_security_mode_complete.security_Mode_Complete.nasMsg := { iei := '71'O, iel := int2oct(lengthof(v_msg), 2), replayedNASMsgContainerValue := v_msg };
                log("ng_security_mode_complete: ", ng_security_mode_complete);

                // 4. Add security if any
                v_msg := bit2oct(encvalue(ng_security_mode_complete.security_Mode_Complete));
                log("bit2oct(encvalue(ng_security_mode_complete.security_Mode_Complete))", v_msg);
                var NG_SECURITY_PROTECTED_NAS_MESSAGE v_security_Protected_Nas_Message;
                vc_sendNAS_PDU := f_EncodeAndCipher_NG_NasPdu_v(
                                                                tsc_SHT_IntegrityProtected_Ciphered_NewSecurityContext,
                                                                v_msg, 
                                                                tsc_DirectionUL,
                                                                PX_BEARER_ID,
                                                                vc_previous_nas_count_ul,
                                                                vc_ng_nas_security_params_type,
                                                                v_security_Protected_Nas_Message
                                                                );
                log("vc_previous_nas_count_ul: ", vc_previous_nas_count_ul);
                vt_NgNasUl_Msg.security_Protected_Nas_Message := v_security_Protected_Nas_Message;
                log("vc_sendNAS_PDU: ", vc_sendNAS_PDU);
                f_send_NGAP_PDU(
                                m_ngap_initMsg(
                                                m_n2_UplinkNASTransport(
                                                                        vc_AMF_UE_ID,
                                                                        vc_RAN_UE_ID,
                                                                        vc_sendNAS_PDU,
                                                                        m_uPTransportLayerInformation_userLocationInformationNR(
                                                                                                                                m_userLocationInformationNR(
                                                                                                                                                            m_nR_CGI,
                                                                                                                                                            m_tAI
                                )))));




                if (not (PICS_NGAP_A4_5_2_1)) { //REG_ACCEPT in NAS in InitialContextSetupReq
                    f_recv_NGAP_PDU(
@@ -1558,13 +1627,13 @@ module NG_NAS_TCFunctions {
                                                                        ? // AuthorizationRequest
                    )));
                    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_REGISTRATION_ACCEPT(
                                                                            -,
                                                                            ?,
                                                                            mw_NG_MobileIdentityGuti,
                                                                            mw_PLMN_List(
                                                                                            -, -, 
                                                                                            {
@@ -1587,7 +1656,6 @@ module NG_NAS_TCFunctions {
                        log("*** " & __SCOPE__ & ": PASS: NG_REGISTRATION_ACCEPT match. ***");
                        setverdict(pass);
                    }
                }

                f_send_registration_complete();