Commit 50c20133 authored by Iztok Juvancic's avatar Iztok Juvancic
Browse files

added TPs 5GNAS_AMF_REG_ACC_06*

parent 5a45280a
Loading
Loading
Loading
Loading
+184 −0
Changes for ttcn/Ats_NG_NAS/NG_NAS_TCFunctions.ttcn: 184 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -1369,6 +1369,7 @@ module NG_NAS_TCFunctions {
                            ))
                    ))
                );
                
                // Await request for REGISTRATION_ACCEPT
                f_recv_NGAP_PDU(
                                mw_ngap_initMsg(
@@ -1416,6 +1417,189 @@ module NG_NAS_TCFunctions {
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            } // End of function f_TC_5GNAS_AMF_REG_ACC_05

            /**
             * @desc Testcase function for TC_5GNAS_AMF_REG_ACC_06
             */
            function f_TC_5GNAS_AMF_REG_ACC_06() runs on aMF_NGNAS_NGAPComponent {
                // Local variables
                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_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                // Test Body
                // Send REGISTRATION_REQUEST
                //use of SUCI identity PX_ params!
                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"
                log("f_TC_5GNAS_AMF_REG_ACC_06: v_other_digits: ", v_other_digits);
                
                vt_NgNasUl_Msg := 
                    m_NG_REGISTRATION_REQUEST(
                        {'0'B,'001'B/*FirstRegistration*/},//in template (value) RegistrationType p_RegistrationType,
                        '111'B,//in template (value) NAS_KsiValue p_KeySetId,
                        '0'B,//in template (value) B1_Type p_Tsc,
                        /*m_NG_MobileIdentitySUCI(PX_SUPI_FORMAT, v_other_digits, PX_TYPE_OF_ID)//in template (value) NG_MobileIdentity p_MobileId,  // 24.501 cl. 9.11.3.4*/
                        m_NG_MobileIdentitySUCI('0000'B/*IMSI*/, v_other_digits, '001'B/*SUCI*/)//in template (value) NG_MobileIdentity p_MobileId,  // 24.501 cl. 9.11.3.4
                        
                        /* in template (omit) NAS_KeySetIdentifier p_NonCurrentKSI := omit,
                        in template (omit) NG_GMM_Cap p_GMM_Cap := omit,
                        in template (omit) NG_UE_SecurityCapability p_UESecurityCap := omit,
                        in template (omit) NSSAI p_ReqNSSAI := omit,
                        in template (omit) NG_TrackingAreaId p_TAI := omit,
                        in template (omit) UE_NetworkCap p_UE_NetworkCap := omit,
                        in template (omit) ULDataStatus p_ULDataStatus := omit,
                        in template (omit) PDU_SessionStatus p_PDU_SessionStatus := omit,
                        in template (omit) MICO_Ind p_MICO_Ind := omit,
                        in template (omit) UE_Status p_UE_Status := omit,
                        in template (omit) NG_MobileIdentity p_AddGUTI := omit,
                        in template (omit) AllowedPDU_SessionStatus p_AllowedPDU_SessionStatus := omit,
                        in template (omit) UE_UsageSetting p_UE_UsageSetting := omit,
                        in template (omit) NG_DRXparameter p_DRXparam := omit,
                        in template (omit) EPS_MessageContainer p_EPSMsg := omit,
                        in template (omit) LADN_Ind p_LADN_Ind := omit,
                        in template (omit) PayloadContainerType p_ContainerType := omit, // @sic R5w190113 sic@
                        in template (omit) PayloadContainer p_Payload := omit,
                        in template (omit) NetworkSlicingInd p_NetworkSlicingInd := omit,
                        in template (omit) NG_UpdateType p_NG_UpdateType := omit,
                        in template (omit) MS_Clsmk2 p_MS_Clsmk2 := omit,
                        in template (omit) CodecList p_SupportedCodecs := omit,
                        in template (omit) EPS_BearerContextStatus p_EPS_BearerContextStatus := omit, // @sic R5s190543 sic@
                        in template (omit) NASMessageContainer p_Msg := omit,
                        in template (omit) ExtdDRXParams p_ExtdDRXParams := omit,
                        in template (omit) GPRS_Timer3 p_T3324 := omit,
                        in template (omit) UERadioCapId p_UERadioCapId := omit,
                        in template (omit) MappedNSSAI p_MappedNSSAI := omit,
                        in template (omit) AddInfoRequest p_AddInfoRequest := omit,
                        in template (omit) WUSAssistInfo p_WUSAssistInfo := omit,
                        in template (omit) N5GCInd p_N5GCInd := omit,
                        in template (omit) NB_N1ModeDRXParams p_NB_N1ModeDRXParams := omit,
                        in template (omit) UE_RequestType p_UeRequestType := omit,
                        in template (omit) NG_PagingRestriction p_PagingRestrict := omit,
                        in template (omit) ServiceLvlAAContainer p_ServiceLvlAA := omit,
                        in template (omit) NID p_NId := omit,
                        in template (omit) PLMN_IdIE p_MSPLMNwDisasterCondition := omit,
                        in template (omit) PEIPS_AssistInfo p_RequestedPEIPS_AssistInfo := omit,
                        in template (omit) GPRS_Timer3 p_T3512 := omit */
                    )

                vc_sendNAS_PDU := bit2oct(encvalue( vt_NgNasUl_Msg ));
                f_send_NGAP_PDU(
                    m_ngap_initMsg(
                        m_n2_initialUeMessage(
                            -,
                            vc_sendNAS_PDU,
                            m_uPTransportLayerInformation_userLocationInformationNR(
                                m_userLocationInformationNR(
                                    m_nR_CGI,
                                    m_tAI
                            ))
                    )
                    //UEContextRequest set to "requested" by default in template
                    )
                );
                // // Await request for REGISTRATION_ACCEPT
                // f_recv_NGAP_PDU(
                //                 mw_ngap_initMsg(
                //                                 mw_n2_DownlinkNASTransport(
                //                                                         ?,//PX_AMF_UE_NGAP_ID,
                //                                                         PX_RAN_UE_NGAP_ID,
                //                                                         ? // 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_PLMN_List(
                //                                                                         -, -, 
                //                                                                         {
                //                                                                          *,
                //                                                                          fl_NasNN_MCC2PlmnId(PX_NAS_MCC, PX_NAS_MNC),
                //                                                                          *
                //                                                                         }
                //                                                            ),
                //                                                            -,?/*AllowedNSSAI*/,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,
                //                                                            ?
                //                                                            ),
                //                                  vc_ng_nas_security_params_type,
                //                                  vc_previous_nas_count_dl,
                //                                  v_message,
                //                                  vc_inner_message
                //                                  ) == false) {
                //     log("*** " & __SCOPE__ & ": FAIL: NG_REGISTRATION_ACCEPT mismatch. ***");
                //     setverdict(fail);
                // } else {
                //     log("*** " & __SCOPE__ & ": PASS: NG_REGISTRATION_ACCEPT match. ***");
                //     setverdict(pass);
                // }

                f_await_security_mode_command_send_security_mode_complete();
                
                if (not (PICS_NGAP_A4_5_2_1)) { //REG_ACCEPT in NAS in InitialContextSetupReq
                    f_recv_NGAP_PDU(
                                mw_ngap_initMsg(
                                                mw_n2_InitialContextSetupRequest_base_nas
                                ));
                    f_NASPDU_Get(vc_recvNGAP_PDU);
                }
                else {
                    f_recv_NGAP_PDU(
                                mw_ngap_initMsg(
                                                mw_n2_DownlinkNASTransport(
                                                                        ?,//PX_AMF_UE_NGAP_ID,
                                                                        PX_RAN_UE_NGAP_ID,
                                                                        ? // 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_PLMN_List(
                                                                                            -, -, 
                                                                                            {
                                                                                            *,
                                                                                            fl_NasNN_MCC2PlmnId(PX_NAS_MCC, PX_NAS_MNC),
                                                                                            *
                                                                                            }
                                                                            ),
                                                                            -,?/*AllowedNSSAI*/,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,
                                                                            ?
                                                                            ),
                                                    vc_ng_nas_security_params_type,
                                                    vc_previous_nas_count_dl,
                                                    v_message,
                                                    vc_inner_message
                                                    ) == false) {
                        log("*** " & __SCOPE__ & ": FAIL: NG_REGISTRATION_ACCEPT mismatch. ***");
                        setverdict(fail);
                    } else {
                        log("*** " & __SCOPE__ & ": PASS: NG_REGISTRATION_ACCEPT match. ***");
                        setverdict(pass);
                    }
                }

                f_send_registration_complete();

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                log("*** " & __SCOPE__ & ": INFO: Testbody done. ***");

                // Postamble
                //TODO: f_postamble_NGAP_gNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
            } // End of function f_TC_5GNAS_AMF_REG_ACC_06

            /**
             * @desc Testcase function for TP_5GNAS_AMF_REG_REJ_01
             */