Loading ttcn/Ats_NG_NAS/NG_NAS_TCFunctions.ttcn +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 Loading @@ -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; Loading Loading @@ -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. ***"); Loading Loading @@ -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( Loading Loading @@ -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( Loading @@ -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( -, -, { Loading @@ -1587,7 +1656,6 @@ module NG_NAS_TCFunctions { log("*** " & __SCOPE__ & ": PASS: NG_REGISTRATION_ACCEPT match. ***"); setverdict(pass); } } f_send_registration_complete(); Loading Loading
ttcn/Ats_NG_NAS/NG_NAS_TCFunctions.ttcn +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 Loading @@ -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; Loading Loading @@ -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. ***"); Loading Loading @@ -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( Loading Loading @@ -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( Loading @@ -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( -, -, { Loading @@ -1587,7 +1656,6 @@ module NG_NAS_TCFunctions { log("*** " & __SCOPE__ & ": PASS: NG_REGISTRATION_ACCEPT match. ***"); setverdict(pass); } } f_send_registration_complete(); Loading