Loading ttcn/Ats_NG_NAS/NG_NAS_TCFunctions.ttcn +75 −6 Original line number Diff line number Diff line Loading @@ -21,11 +21,13 @@ module NG_NAS_TCFunctions { import from Lib_NG_NAS_Interface all; import from Lib_NG_NAS_Templates all; import from LIB_NG_NAS_Functions all; import from NAS_CommonTemplates all; // NG_NAS import from NG_NAS_TypeDefs all; import from NG_NAS_TestSystem all; import from NAS_CommonTypeDefs all; import from NG_NAS_Templates all; // Lib3GPP import from NG_NAS_MsgContainers all; Loading @@ -43,8 +45,9 @@ module NG_NAS_TCFunctions { import from LibHelpers_Functions all; // NGAP_Ats //import from NGAP_TestSystem all; import from NGAP_Pixits all; import from NGAP_Steps all; import from Lib_NG_NAS_Pixits all; // interface at AMF group TP_AMF_NGAP { Loading Loading @@ -438,12 +441,12 @@ module NG_NAS_TCFunctions { f_NGAP_gnb_init(); f_send_NGSetupRequest_await_NGSetupRespone(); f_await_NasAuthorizationRequest_send_NasAuthorizationResponse(); f_await_NasSecurityModeCommand_send_SecurityModeComplete(); f_await_NasSecurityModeCommand_send_NasSecurityModeComplete(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body // Await next next command (InitialContextSetupRequest) with NAS encrypted payload // Await next command (InitialContextSetupRequest) with NAS encrypted payload f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_InitialContextSetupRequest_withPDUSessionList( Loading Loading @@ -525,11 +528,48 @@ module NG_NAS_TCFunctions { // Preamble f_NGAP_gnb_init(); f_send_NGSetupRequest_await_NGSetupRespone(); f_await_NasAuthorizationRequest_send_NasAuthorizationResponse(); f_await_NasSecurityModeCommand_send_NasSecurityModeComplete(); f_await_NGInitialContextSetupRequest_send_NGInitialContextSetupRespone(); f_send_NGUERadioCApabilityInfoIndication(); f_await_registration_accept(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body // TODO vt_NgNasUl_Msg := m_NG_PDU_SESSION_ESTABLISHMENT_REQUEST( cs_NG_PDU_SessionId, tsc_PTI_1 ); vc_sendNAS_PDU := bit2oct(encvalue(valueof(vt_NgNasUl_Msg))); f_send_NGAP_PDU( m_ngap_initMsg( m_n2_UplinkNASTransport( PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID, vc_sendNAS_PDU, m_uPTransportLayerInformation_userLocationInformationNR( m_userLocationInformationNR( m_nR_CGI, m_tAI ))))); // Await PDU SESSION ESTABLISHMENT ACCEPT with NAS encrypted payload f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_DownlinkNASTransport( PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID, ? // PDU SESSION ESTABLISHMENT ACCEPT ))); f_NASPDU_Get(vc_recvNGAP_PDU); if (f_Check_5GAKA_NAS_DL_Message( vc_recvNAS_PDU, mw_NG_PDU_SESSION_ESTABLISHMENT_ACCEPT ) == false) { setverdict(fail); return; } f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); Loading @@ -554,12 +594,41 @@ module NG_NAS_TCFunctions { // Preamble f_NGAP_gnb_init(); f_send_NGSetupRequest_await_NGSetupRespone(); f_await_NasAuthorizationRequest_send_NasAuthorizationResponse(); f_await_NasSecurityModeCommand_send_NasSecurityModeComplete(); f_send_NGUERadioCApabilityInfoIndication(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body // TODO // 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); if (f_Check_5GAKA_NAS_DL_Message( vc_recvNAS_PDU, mw_NG_REGISTRATION_ACCEPT( -, ?, mw_PLMN_List( -, -, { *, PX_PLMN, * } ), -,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-, ? )) == false) { setverdict(fail); } f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); Loading ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +37 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,9 @@ module LibNGAP_Templates { import from LibCommon_BasicTypesAndValues all; import from LibCommon_DataStrings all; // Lib3GPP/NAS import from NAS_CommonTypeDefs all; // LibNGAP import from NGAP_Constants language "ASN.1:2002" all; import from NGAP_CommonDataTypes language "ASN.1:2002" all; Loading Loading @@ -1486,6 +1489,30 @@ module LibNGAP_Templates { } } // End of template m_n2_InitialContextSetupResponse template (value) SuccessfulOutcome m_n2_InitialContextSetupResponse_noPDUSessionResourceSetupListSURes( in template (value) AMF_UE_NGAP_ID p_amfUeNgapID := PX_AMF_UE_NGAP_ID, in template (value) RAN_UE_NGAP_ID p_ranUeNgapID := PX_RAN_UE_NGAP_ID ) := { procedureCode := id_InitialContextSetup, criticality := reject, value_ := { PDUSessionResourceSetupResponse := { protocolIEs := { { id := id_AMF_UE_NGAP_ID, criticality := ignore, value_ := { AMF_UE_NGAP_ID := p_amfUeNgapID } }, { id := id_RAN_UE_NGAP_ID, criticality := ignore, value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } } } } } } // End of template m_n2_InitialContextSetupResponse_noPDUSessionResourceSetupListSURes } // End of group Send group Receive { Loading Loading @@ -24400,6 +24427,16 @@ module LibNGAP_Templates { iE_Extensions := p_iE_Extensions } // End of template mw_xnTNLConfigurationInfo template (present) PLMN_List mw_PLMN_List( template (present) IEI8_Type p_iei := '4A'O, template (present) Type4Length_Type p_iel := ?, template (present) NAS_PlmnIdList_Type p_plmnList ) := { iei := p_iei, iel := p_iel, plmnList := p_plmnList } // End of template mw_PLMN_List } // End of group receive } // End of group Information_elements ttcn/Lib_NG_NAS/LIB_NG_NAS_Functions.ttcn +56 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,9 @@ module LIB_NG_NAS_Functions { import from LibNGAP_Interface all; import from LibNGAP_Steps all; import from Lib_NG_NAS_Pixits all; /******************************************************************************** * * FIXME Use or enhance check functions from 3GPP library such as NG_NASTemplateFunctions.f_Check_NG_SecurityModeCompleteMsg Loading Loading @@ -76,6 +79,27 @@ module LIB_NG_NAS_Functions { ))); } function f_await_NGInitialContextSetupRequest_send_NGInitialContextSetupRespone() runs on NGNASComponent { f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_InitialContextSetupRequest_withPDUSessionList( // FIXME FSCOM How to deal with it? ))); f_send_NGAP_PDU( m_ngap_succMsg( m_n2_InitialContextSetupResponse_noPDUSessionResourceSetupListSURes )); } function f_send_NGUERadioCApabilityInfoIndication() runs on NGNASComponent { f_send_NGAP_PDU( m_ngap_initMsg( m_n2_UERadioCapabilityInfoIndication( -, -, ''O // FIXME FSCOM How to deal with UERadioCapability ))); } function f_send_NasRegistrationRequest() runs on NGNASComponent { vt_NgNasUl_Msg := m_NG_REGISTRATION_REQUEST( {'1'B,'001'B},//in template (value) RegistrationType p_RegistrationType, Loading Loading @@ -104,6 +128,37 @@ module LIB_NG_NAS_Functions { ))))); } function f_await_registration_accept() runs on NGNASComponent { // 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); if (f_Check_5GAKA_NAS_DL_Message( vc_recvNAS_PDU, mw_NG_REGISTRATION_ACCEPT( -, ?, mw_PLMN_List( -, -, { *, PX_PLMN, * } ), -,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-, ? )) == false) { setverdict(fail); return; } } function f_await_NasAuthorizationRequest_send_NasAuthorizationResponse() runs on NGNASComponent { // Await request for authorization f_recv_NGAP_PDU( Loading Loading @@ -163,7 +218,7 @@ module LIB_NG_NAS_Functions { } } function f_await_NasSecurityModeCommand_send_SecurityModeComplete() runs on NGNASComponent { function f_await_NasSecurityModeCommand_send_NasSecurityModeComplete() runs on NGNASComponent { // Await SecurityModeCommand f_recv_NGAP_PDU( mw_ngap_initMsg( Loading ttcn/Lib_NG_NAS/module.mk +3 −1 Original line number Diff line number Diff line sources := \ Lib_NG_NAS_Interface.ttcn \ Lib_NG_NAS_Templates.ttcn \ LIB_NG_NAS_Functions.ttcn LIB_NG_NAS_Functions.ttcn \ Lib_NG_NAS_Pixits.ttcn \ #../Lib3GPP/NG_NAS_EncdecDeclarations.ttcn #modules := \ Loading Loading
ttcn/Ats_NG_NAS/NG_NAS_TCFunctions.ttcn +75 −6 Original line number Diff line number Diff line Loading @@ -21,11 +21,13 @@ module NG_NAS_TCFunctions { import from Lib_NG_NAS_Interface all; import from Lib_NG_NAS_Templates all; import from LIB_NG_NAS_Functions all; import from NAS_CommonTemplates all; // NG_NAS import from NG_NAS_TypeDefs all; import from NG_NAS_TestSystem all; import from NAS_CommonTypeDefs all; import from NG_NAS_Templates all; // Lib3GPP import from NG_NAS_MsgContainers all; Loading @@ -43,8 +45,9 @@ module NG_NAS_TCFunctions { import from LibHelpers_Functions all; // NGAP_Ats //import from NGAP_TestSystem all; import from NGAP_Pixits all; import from NGAP_Steps all; import from Lib_NG_NAS_Pixits all; // interface at AMF group TP_AMF_NGAP { Loading Loading @@ -438,12 +441,12 @@ module NG_NAS_TCFunctions { f_NGAP_gnb_init(); f_send_NGSetupRequest_await_NGSetupRespone(); f_await_NasAuthorizationRequest_send_NasAuthorizationResponse(); f_await_NasSecurityModeCommand_send_SecurityModeComplete(); f_await_NasSecurityModeCommand_send_NasSecurityModeComplete(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body // Await next next command (InitialContextSetupRequest) with NAS encrypted payload // Await next command (InitialContextSetupRequest) with NAS encrypted payload f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_InitialContextSetupRequest_withPDUSessionList( Loading Loading @@ -525,11 +528,48 @@ module NG_NAS_TCFunctions { // Preamble f_NGAP_gnb_init(); f_send_NGSetupRequest_await_NGSetupRespone(); f_await_NasAuthorizationRequest_send_NasAuthorizationResponse(); f_await_NasSecurityModeCommand_send_NasSecurityModeComplete(); f_await_NGInitialContextSetupRequest_send_NGInitialContextSetupRespone(); f_send_NGUERadioCApabilityInfoIndication(); f_await_registration_accept(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body // TODO vt_NgNasUl_Msg := m_NG_PDU_SESSION_ESTABLISHMENT_REQUEST( cs_NG_PDU_SessionId, tsc_PTI_1 ); vc_sendNAS_PDU := bit2oct(encvalue(valueof(vt_NgNasUl_Msg))); f_send_NGAP_PDU( m_ngap_initMsg( m_n2_UplinkNASTransport( PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID, vc_sendNAS_PDU, m_uPTransportLayerInformation_userLocationInformationNR( m_userLocationInformationNR( m_nR_CGI, m_tAI ))))); // Await PDU SESSION ESTABLISHMENT ACCEPT with NAS encrypted payload f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_DownlinkNASTransport( PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID, ? // PDU SESSION ESTABLISHMENT ACCEPT ))); f_NASPDU_Get(vc_recvNGAP_PDU); if (f_Check_5GAKA_NAS_DL_Message( vc_recvNAS_PDU, mw_NG_PDU_SESSION_ESTABLISHMENT_ACCEPT ) == false) { setverdict(fail); return; } f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); Loading @@ -554,12 +594,41 @@ module NG_NAS_TCFunctions { // Preamble f_NGAP_gnb_init(); f_send_NGSetupRequest_await_NGSetupRespone(); f_await_NasAuthorizationRequest_send_NasAuthorizationResponse(); f_await_NasSecurityModeCommand_send_NasSecurityModeComplete(); f_send_NGUERadioCApabilityInfoIndication(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body // TODO // 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); if (f_Check_5GAKA_NAS_DL_Message( vc_recvNAS_PDU, mw_NG_REGISTRATION_ACCEPT( -, ?, mw_PLMN_List( -, -, { *, PX_PLMN, * } ), -,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-, ? )) == false) { setverdict(fail); } f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); Loading
ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +37 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,9 @@ module LibNGAP_Templates { import from LibCommon_BasicTypesAndValues all; import from LibCommon_DataStrings all; // Lib3GPP/NAS import from NAS_CommonTypeDefs all; // LibNGAP import from NGAP_Constants language "ASN.1:2002" all; import from NGAP_CommonDataTypes language "ASN.1:2002" all; Loading Loading @@ -1486,6 +1489,30 @@ module LibNGAP_Templates { } } // End of template m_n2_InitialContextSetupResponse template (value) SuccessfulOutcome m_n2_InitialContextSetupResponse_noPDUSessionResourceSetupListSURes( in template (value) AMF_UE_NGAP_ID p_amfUeNgapID := PX_AMF_UE_NGAP_ID, in template (value) RAN_UE_NGAP_ID p_ranUeNgapID := PX_RAN_UE_NGAP_ID ) := { procedureCode := id_InitialContextSetup, criticality := reject, value_ := { PDUSessionResourceSetupResponse := { protocolIEs := { { id := id_AMF_UE_NGAP_ID, criticality := ignore, value_ := { AMF_UE_NGAP_ID := p_amfUeNgapID } }, { id := id_RAN_UE_NGAP_ID, criticality := ignore, value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } } } } } } // End of template m_n2_InitialContextSetupResponse_noPDUSessionResourceSetupListSURes } // End of group Send group Receive { Loading Loading @@ -24400,6 +24427,16 @@ module LibNGAP_Templates { iE_Extensions := p_iE_Extensions } // End of template mw_xnTNLConfigurationInfo template (present) PLMN_List mw_PLMN_List( template (present) IEI8_Type p_iei := '4A'O, template (present) Type4Length_Type p_iel := ?, template (present) NAS_PlmnIdList_Type p_plmnList ) := { iei := p_iei, iel := p_iel, plmnList := p_plmnList } // End of template mw_PLMN_List } // End of group receive } // End of group Information_elements
ttcn/Lib_NG_NAS/LIB_NG_NAS_Functions.ttcn +56 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,9 @@ module LIB_NG_NAS_Functions { import from LibNGAP_Interface all; import from LibNGAP_Steps all; import from Lib_NG_NAS_Pixits all; /******************************************************************************** * * FIXME Use or enhance check functions from 3GPP library such as NG_NASTemplateFunctions.f_Check_NG_SecurityModeCompleteMsg Loading Loading @@ -76,6 +79,27 @@ module LIB_NG_NAS_Functions { ))); } function f_await_NGInitialContextSetupRequest_send_NGInitialContextSetupRespone() runs on NGNASComponent { f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_InitialContextSetupRequest_withPDUSessionList( // FIXME FSCOM How to deal with it? ))); f_send_NGAP_PDU( m_ngap_succMsg( m_n2_InitialContextSetupResponse_noPDUSessionResourceSetupListSURes )); } function f_send_NGUERadioCApabilityInfoIndication() runs on NGNASComponent { f_send_NGAP_PDU( m_ngap_initMsg( m_n2_UERadioCapabilityInfoIndication( -, -, ''O // FIXME FSCOM How to deal with UERadioCapability ))); } function f_send_NasRegistrationRequest() runs on NGNASComponent { vt_NgNasUl_Msg := m_NG_REGISTRATION_REQUEST( {'1'B,'001'B},//in template (value) RegistrationType p_RegistrationType, Loading Loading @@ -104,6 +128,37 @@ module LIB_NG_NAS_Functions { ))))); } function f_await_registration_accept() runs on NGNASComponent { // 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); if (f_Check_5GAKA_NAS_DL_Message( vc_recvNAS_PDU, mw_NG_REGISTRATION_ACCEPT( -, ?, mw_PLMN_List( -, -, { *, PX_PLMN, * } ), -,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-, ? )) == false) { setverdict(fail); return; } } function f_await_NasAuthorizationRequest_send_NasAuthorizationResponse() runs on NGNASComponent { // Await request for authorization f_recv_NGAP_PDU( Loading Loading @@ -163,7 +218,7 @@ module LIB_NG_NAS_Functions { } } function f_await_NasSecurityModeCommand_send_SecurityModeComplete() runs on NGNASComponent { function f_await_NasSecurityModeCommand_send_NasSecurityModeComplete() runs on NGNASComponent { // Await SecurityModeCommand f_recv_NGAP_PDU( mw_ngap_initMsg( Loading
ttcn/Lib_NG_NAS/module.mk +3 −1 Original line number Diff line number Diff line sources := \ Lib_NG_NAS_Interface.ttcn \ Lib_NG_NAS_Templates.ttcn \ LIB_NG_NAS_Functions.ttcn LIB_NG_NAS_Functions.ttcn \ Lib_NG_NAS_Pixits.ttcn \ #../Lib3GPP/NG_NAS_EncdecDeclarations.ttcn #modules := \ Loading