diff --git a/ttcn/Lib3GPP/NG_NAS/NG_NAS_Common.ttcn b/ttcn/Lib3GPP/NG_NAS/NG_NAS_Common.ttcn index e2e974cea37a4114a014159d6ca33e65dc36e729..5b9b8cb8db50b0a69a605d804eacc577286acc73 100644 --- a/ttcn/Lib3GPP/NG_NAS/NG_NAS_Common.ttcn +++ b/ttcn/Lib3GPP/NG_NAS/NG_NAS_Common.ttcn @@ -174,16 +174,13 @@ module NG_NAS_Common { B32_Type NG_TMSI }; - template (value) NG_PacketFilterList cs_PacketFilterList_RemoteAddress (B4_Type p_Id, octetstring p_Component) := + template (value) NG_PacketFilter_Type2 cs_PacketFilter_RemoteAddress (B4_Type p_Id, octetstring p_Component) := { /* @status APPROVED (ENDC, IMS, NR5GC, NR5GC_IRAT, POS) */ - new := {{ spare := tsc_Spare2, direction := '11'B, // bi-directional packetFilterId := p_Id, len := int2oct(lengthof(p_Component), 1), contents := p_Component - - }} }; template (value) QoS_Rule cs_QoS_RuleRemoteAccess (O1_Type p_Id, @@ -196,14 +193,18 @@ module NG_NAS_Common { { /* @status APPROVED (ENDC, IMS, NR5GC, NR5GC_IRAT, POS) */ identifier := p_Id, iel := p_Length, - ruleOperationCode := '001'B, - dqrBit := p_DQR, - numOfPacketFilters := '0001'B, - packetFilterList := cs_PacketFilterList_RemoteAddress (p_FilterId, p_Component), - precedence := p_Precedence, - spare := tsc_Spare1, - segregation := tsc_Spare1, - flowIdentifier := p_FlowId + u := { + creat := { + ruleOperationCode := '001'B, + dqrBit := p_DQR, + numOfPacketFilters := '0001'B, + packetFilterList := { cs_PacketFilter_RemoteAddress (p_FilterId, p_Component) }, + precedence := p_Precedence, + spare := tsc_Spare1, + segregation := tsc_Spare1, + flowIdentifier := p_FlowId + } + } }; template (value) NG_NAS_GutiParameters_Type cs_NG_NAS_GutiParameters(B8_Type p_AMF_RegionId, @@ -238,6 +239,17 @@ module NG_NAS_Common { otherDigits := p_Guti }; + template (value) NG_MobileIdentity cs_NG_MobileIdentitySUCI(template (value) B4_Type p_SUPIFormat, + template (value) octetstring p_OtherDigits) := + { /* @status APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */ + iei := omit, + iel := int2oct(1+lengthof(p_OtherDigits), 2), // @sic R5s190719 sic@ + idDigit1 := p_SUPIFormat, // 4 bits + oddEvenInd := '0'B, // 1 bit + typeOfId := tsc_IdType_NG_SUCI, // 3 bits + otherDigits := p_OtherDigits + }; + template (present) NG_MobileIdentity cr_NG_MobileIdentity_TypeOfId(template (present) B4_Type p_FirstDigit, template (present) B1_Type p_OddEvenInd, template (present) octetstring p_OtherDigits, diff --git a/ttcn/Lib3GPP/NG_NAS/NG_NAS_MsgContainers.ttcn b/ttcn/Lib3GPP/NG_NAS/NG_NAS_MsgContainers.ttcn index 1444d4020cee593e9384a4e6a94982019238c02a..9cbb3aecf5438827ba389617176b97a3f38b8066 100644 --- a/ttcn/Lib3GPP/NG_NAS/NG_NAS_MsgContainers.ttcn +++ b/ttcn/Lib3GPP/NG_NAS/NG_NAS_MsgContainers.ttcn @@ -51,7 +51,7 @@ module NG_NAS_MsgContainers CLOSE_UE_TEST_LOOP_COMPLETE close_Ue_Test_Loop_Complete, OPEN_UE_TEST_LOOP_COMPLETE open_Ue_Test_Loop_Complete, - + NSSAI_DELETE_RESPONSE nssai_Delete_Response, SET_UAI_RESPONSE set_UAI_Response, SET_UL_MESSAGE_RESPONSE set_UL_Message_Response, @@ -67,7 +67,7 @@ module NG_NAS_MsgContainers configuration_Update_Complete, messageType = '01010101'B; cp_Service_Request, messageType = '01001111'B; deregistration_Accept, messageType = '01000110'B; - deregistration_RequestMO, messageType = '01001000'B; + deregistration_RequestMO, messageType = '01000101'B; gmm_Status, messageType = '01100100'B; gsm_Status, messageType = '11010110'B; network_Slice_Specific_Authentication_Complete, messageType = '01010001'B; @@ -87,7 +87,7 @@ module NG_NAS_MsgContainers service_Request, messageType = '01001100'B; ul_Nas_Transport, messageType = '01100111'B; )" - + } type union NG_NAS_DL_Message_Type { /* NAS message with direction 'network to UE' or 'both' */ @@ -118,9 +118,9 @@ module NG_NAS_MsgContainers NG_SECURITY_MODE_COMMAND security_Mode_Command, NG_SERVICE_ACCEPT service_Accept, NG_SERVICE_REJECT service_Reject, - + RESETUEPOSITIONINGSTOREDINFORMATION reset_UE_Positioning_Stored_Information, // For AGNSS - + ACTIVATE_TEST_MODE activate_Test_Mode, DEACTIVATE_TEST_MODE deactivate_Test_Mode, @@ -167,7 +167,7 @@ module NG_NAS_MsgContainers service_Accept, messageType = '01001110'B; service_Reject, messageType = '01001101'B; )" - } + } //**************************************************************************** // NAS SECURITY PROTECTION diff --git a/ttcn/Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn b/ttcn/Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn index 6707134423bdc8c632d928191545b3f434fb1064..b6995818c236194e572f63fa19050b7eb04de1d6 100644 --- a/ttcn/Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn +++ b/ttcn/Lib3GPP/NG_NAS/NG_NAS_Templates.ttcn @@ -270,6 +270,101 @@ module NG_NAS_Templates { } }; + template (omit) NG_NAS_UL_Message_Type cs_NG_REGISTRATION_REQUEST(template (value) RegistrationType p_RegistrationType, + template (value) NAS_KsiValue p_KeySetId, + template (value) B1_Type p_Tsc, + template (value) NG_MobileIdentity p_MobileId, + template (omit) NAS_KeySetIdentifier p_NonCurrentKSI := omit, + template (omit) NG_GMM_Cap p_GMM_Cap := omit, + template (omit) NG_UE_SecurityCapability p_UESecurityCap := omit, + template (omit) NSSAI p_ReqNSSAI := omit, + template (omit) NG_TrackingAreaId p_TAI := omit, + template (omit) UE_NetworkCap p_UE_NetworkCap := omit, + template (omit) ULDataStatus p_ULDataStatus := omit, + template (omit) PDU_SessionStatus p_PDU_SessionStatus := omit, + template (omit) MICO_Ind p_MICO_Ind := omit, + template (omit) UE_Status p_UE_Status := omit, + template (omit) NG_MobileIdentity p_AddGUTI := omit, + template (omit) AllowedPDU_SessionStatus p_AllowedPDU_SessionStatus := omit, + template (omit) UE_UsageSetting p_UE_UsageSetting := omit, + template (omit) NG_DRXparameter p_DRXparam := omit, + template (omit) EPS_MessageContainer p_EPSMsg := omit, + template (omit) LADN_Ind p_LADN_Ind := omit, + template (omit) PayloadContainerType p_ContainerType := omit, // @sic R5w190113 sic@ + template (omit) PayloadContainer p_Payload := omit, + template (omit) NetworkSlicingInd p_NetworkSlicingInd := omit, + template (omit) NG_UpdateType p_NG_UpdateType := omit, + template (omit) MS_Clsmk2 p_MS_Clsmk2 := omit, + template (omit) CodecList p_SupportedCodecs := omit, + template (omit) EPS_BearerContextStatus p_EPS_BearerContextStatus := omit, // @sic R5s190543 sic@ + template (omit) NASMessageContainer p_Msg := omit, + template (omit) ExtdDRXParams p_ExtdDRXParams := omit, + template (omit) GPRS_Timer3 p_T3324 := omit, + template (omit) UERadioCapId p_UERadioCapId := omit, + template (omit) MappedNSSAI p_MappedNSSAI := omit, + template (omit) AddInfoRequest p_AddInfoRequest := omit, + template (omit) WUSAssistInfo p_WUSAssistInfo := omit, + template (omit) N5GCInd p_N5GCInd := omit, + template (omit) NB_N1ModeDRXParams p_NB_N1ModeDRXParams := omit, + template (omit) UE_RequestType p_UeRequestType := omit, + template (omit) NG_PagingRestriction p_PagingRestrict := omit, + template (omit) ServiceLvlAAContainer p_ServiceLvlAA := omit, + template (omit) NID p_NId := omit, + template (omit) PLMN_IdIE p_MSPLMNwDisasterCondition := omit, + template (omit) PEIPS_AssistInfo p_RequestedPEIPS_AssistInfo := omit, + template (omit) GPRS_Timer3 p_T3512 := omit + ) := { /* 24.501 cl. 8.2.6 */ + /* @status APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */ + registration_Request := { + protocolDiscriminator := tsc_EPD_GMM, /* cl. 9.2 M V 1 */ + spareHalfOctet := tsc_SpareHalfOctet, /* cl. 9.3 M V 1/2 */ + securityHeaderType := tsc_SHT_NoSecurityProtection, + messageType := tsc_MT_NG_RegistrationRequest, /* cl. 9.7 M V 1 */ + ngNasKSI := cs_NAS_KeySetIdentifier_lv(valueof(p_KeySetId), valueof(p_Tsc)), /* cl. 9.11.3.32 M V 1/2 */ + registrationType := p_RegistrationType, /* cl. 9.11.3.7 M LV 2 */ + ngMobileId := p_MobileId, /* cl. 9.11.3.4 M LV 5-? */ + nonCurrentNativeKSI := p_NonCurrentKSI, /* cl. 9.11.3.32 O TV 1 IEI=C- */ + gmmCapability := p_GMM_Cap, /* cl. 9.11.3.1 O TLV 3-15 IEI=10 */ + ueSecurityCapability := p_UESecurityCap, /* cl. 9.11.3.54 O TLV 4-10 IEI=2E */ + requestedNSSAI := p_ReqNSSAI, /* cl. 9.11.3.37 O TLV 4-74 IEI=2F */ + lastVisitedRegisteredTai := p_TAI, /* cl. 9.11.3.8 O TV 7 IEI=52 */ + s1_UE_Capability := p_UE_NetworkCap, /* cl. 9.11.3.48 O LV 4-15 IEI=65 */ + ulDataStatus := p_ULDataStatus, /* cl. 9.11.3.57 O TLV 4-34 IEI=40 */ + pduSessionStatus := p_PDU_SessionStatus, /* cl. 9.11.3.44 O TLV 4-34 IEI=50 */ + micoInd := p_MICO_Ind, /* cl. 9.11.3.31 O TLV 1 IEI=B */ + ueStatus := p_UE_Status, /* cl. 9.11.3.56 O TLV 3 IEI=2B */ + additionalGUTI := p_AddGUTI, /* cl. 9.11.3.4 O TLV 5-? IEI=2C */ + allowedPDUSessionStatus := p_AllowedPDU_SessionStatus, /* cl. 9.11.3.13 O TLV 4-34 IEI=25 */ + ueUsageSetting := p_UE_UsageSetting, /* cl. 9.11.3.55 O TLV 3 IEI=60 */ + reqDRXParams := p_DRXparam, /* cl. 9.11.3.22 O TLV ? IEI=51 */ + epsMessage := p_EPSMsg, /* cl. 9.11.3.24 O TLV-E ? IEI=7C */ + ladnInd := p_LADN_Ind, /* cl. 9.11.3.29 O TLV-E 3-811 IEI=7E */ + payloadContainerType := p_ContainerType, /* cl. 9.11.3.40 O TV 1 IEI=8 Mar 19 @sic R5w190113 sic@*/ + payload := p_Payload, /* cl. 9.11.3.39 O TLV-E 4-65538 IEI=7B */ + networkSlicingInd := p_NetworkSlicingInd, /* cl. 9.11.3.36 O TV 1 IEI=9 Dec18 */ + updateType := p_NG_UpdateType, /* cl. 9.11.3.9A O TLV 3 IEI=53 Dec18 */ + msClassmark2 := p_MS_Clsmk2, /* cl. 9.11.3.31C O TLV 5 IEI=41 Sep20 @sic R5s201387 Baseline Moving sic@ */ + supportedCodecs := p_SupportedCodecs, /* cl. 9.11.3.51A O TLV 5-n IEI=42 Sep20 @sic R5s201387 Baseline Moving sic@ */ + nasMsg := p_Msg, /* cl. 9.11.3.33 O TLV-E 4-n IEI=71 Dec18 */ + epsBearerContextStatus := p_EPS_BearerContextStatus, /* cl. 9.11.3.23A O TLV 4 IEI=60 Jun19 @sic R5s190543 sic@ */ + requestedExtdDRXParams := p_ExtdDRXParams, /* cl. 9.11.3.26A O TLV 3 IEI=6E Sep20 @sic R5s201387 Baseline Moving sic@ */ + t3324Value := p_T3324, /* cl. 9.11.2.5 O TLV 3 IEI=6A Sep20 @sic R5s201387 Baseline Moving sic@ */ + ueRadioCapabilityId := p_UERadioCapId, /* cl. 9.11.3.68 O TLV 3-n IEI=67 Sep20 @sic R5s201387 Baseline Moving sic@ */ + requestedMappedNSSAI := p_MappedNSSAI, /* cl. 9.11.3.31B O TLV 3-42 IEI=35 Sep20 @sic R5s201387 Baseline Moving sic@ */ + additionalInfoReq := p_AddInfoRequest, /* cl. 9.11.3.12A O TLV 3 IEI=48 Sep20 @sic R5s201387 Baseline Moving sic@ */ + requestedWUSAssistanceInfo := p_WUSAssistInfo, /* cl. 9.11.3.71 O TLV 3-n IEI=1A Sep20 @sic R5s201387 Baseline Moving sic@ */ + n5GCInd := p_N5GCInd, /* cl. 9.11.3.72 O T 1 IEI=A Sep20 @sic R5s201387 Baseline Moving sic@ */ + requestedNB_N1DRXParams := p_NB_N1ModeDRXParams, /* cl. 9.11.3.73 O TLV 3 IEI=30 Sep20 @sic R5s201387 Baseline Moving sic@ */ + ueRequestType := p_UeRequestType, /* cl. 9.11.3.76 O TLV 3 IEI=29 Sep22 @sic R5s221179 Baseline Moving sic@ */ + pagingRestrict := p_PagingRestrict, /* cl. 9.11.3.77 O TLV 3-35 IEI=28 Sep22 @sic R5s221179 Baseline Moving sic@ */ + serviceLvlAA := p_ServiceLvlAA, /* cl. 9.11.2.10 O TLV-E 6-n IEI=72 Sep22 @sic R5s221179 Baseline Moving sic@ */ + nId := p_NId, /* cl. 9.11.3.79 O TLV 8 IEI=32 Sep22 @sic R5s221179 Baseline Moving sic@ */ + msPLMNwDisasterCondition := p_MSPLMNwDisasterCondition, /* cl. 9.11.3.85 O TLV 5 IEI=16 Sep22 @sic R5s221179 Baseline Moving sic@ */ + requestedPEIPS_AssistInfo := p_RequestedPEIPS_AssistInfo, /* cl. 9.11.3.80 O TLV 3-n IEI=2A Sep22 @sic R5s221179 Baseline Moving sic@ */ + t3512Value := p_T3512 /* cl. 9.11.2.5 O TLV 3 IEI=3B Jun23 @sic R5s230533 sic@ */ + } + } // End of template m_NG_REGISTRATION_REQUEST + template (present) NG_UpdateType cr_NG_Update (template (present) B1_Type p_NgRAN_RCU := ?, template (present) B1_Type p_SmsRequested := ?, template (present) B2_Type p_EPS_PNB_CIoT := ?, @@ -1426,6 +1521,14 @@ module NG_NAS_Templates { registrationType := p_Type }; + template (value) RegistrationType cs_RegistrationType (template (value) B3_Type p_Type, + template (value) B1_Type p_FOR) := + { /* 24.501 cl. 9.11.3.7 */ + /* @status APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */ + fOR := p_FOR, + registrationType := p_Type + }; + template (value) CAGInfoList cs_EmptyCAGInfoList := { /* @status APPROVED (NR5GC) */ /* 24.501 cl. 9.11.3.18A */ @@ -2367,37 +2470,29 @@ module NG_NAS_Templates { template (value) QoSFlowDescr cs_QoSFlowDescr1 := cs_QoSFlowDescr ({cs_QoS_Flow1}); /* @status */ template (value) QoSFlowDescr cs_QoSFlowDescr2 := cs_QoSFlowDescr ({cs_QoS_Flow2}); /* @status */ - template (value) NG_PacketFilterList cs_PacketFilterList_1MatchAll := + template (value) NG_PacketFilter_Type2 cs_PacketFilter_1MatchAll := { /* @status APPROVED (ENDC, IMS, NR5GC, NR5GC_IRAT, POS) */ - new := { - { - spare := tsc_Spare2, - direction := '11'B, // bi-directional - packetFilterId := '0001'B, // @sic R5-216158 sic@ - len := '01'O, - contents := '01'O // match-all - } - } + spare := tsc_Spare2, + direction := '11'B, // bi-directional + packetFilterId := '0001'B, // @sic R5-216158 sic@ + len := '01'O, + contents := '01'O // match-all }; - template (value) NG_PacketFilterList cs_PacketFilterList_MediaUDP (B4_Type p_Id, integer p_Port) := - { /* @status APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */ - new := { + template (value) NG_PacketFilter_Type2 cs_PacketFilter_MediaUDP (B4_Type p_Id, integer p_Port) := cs_NG_PacketFilter_Type2 ('11'B, // bi-directional p_Id, - fl_BuildRemotePortRange(p_Port) & fl_BuildProtocolIdNextHeaderUDP()) // @sic R5s220046 sic@ // Protocol id / Next Header UDP - } - }; + fl_BuildRemotePortRange(p_Port) & fl_BuildProtocolIdNextHeaderUDP()); template (value) NG_PacketFilter_Type2 cs_NG_PacketFilter_Type2 (B2_Type p_Dir, B4_Type p_Id, octetstring p_Contents) := { /* @status APPROVED (IMS, NR5GC, NR5GC_IRAT, POS) */ - spare := tsc_Spare2, - direction := p_Dir, - packetFilterId := p_Id, - len := int2oct(lengthof(p_Contents), 1), - contents := p_Contents + spare := tsc_Spare2, + direction := p_Dir, + packetFilterId := p_Id, + len := int2oct(lengthof(p_Contents), 1), + contents := p_Contents }; /* @@ -2429,24 +2524,91 @@ module NG_NAS_Templates { return v_PacketFilter; } - - template (value) QoS_Rule cs_QoS_Rule (O1_Type p_Id, - B6_Type p_QFI, - O1_Type p_Precedence, - B3_Type p_OperationCode := '001'B, - template (value) NG_PacketFilterList p_FilterList := cs_PacketFilterList_1MatchAll, - B1_Type p_DQR := '1'B) := + template (value) QoS_Rule cs_QoS_Rule (template (value) O1_Type p_Id, + template (value) QoS_RuleU qos_rule_u) := { /* @status APPROVED (ENDC, IMS, NR5GC, NR5GC_IRAT, POS) */ identifier := p_Id, - iel := fl_NR5GC_QoSRuleLength(p_FilterList), // @sic R5s210074 sic@ - ruleOperationCode := p_OperationCode, // @sic R5s190987 sic@ - dqrBit := p_DQR, - numOfPacketFilters := '0001'B, - packetFilterList := p_FilterList, - precedence := p_Precedence, - spare := tsc_Spare1, - segregation := tsc_Spare1, - flowIdentifier := p_QFI + iel := fl_NR5GC_QoSRuleLength(valueof(qos_rule_u)), // @sic R5s210074 sic@ + u := qos_rule_u + }; + + + template (value) QoS_RuleU cs_QoS_RuleU_Create( + template (value) B6_Type p_QFI, + template (value) O1_Type p_Precedence, + template (omit) NG_PacketFilterList_Type2 p_FilterList := {cs_PacketFilter_1MatchAll}, + template (value) B1_Type p_DQR := '1'B, + template (value) B1_Type spare := tsc_Spare1, + template (value) B1_Type segregation := tsc_Spare1) := + { /* @status APPROVED (ENDC, IMS, NR5GC, NR5GC_IRAT, POS) */ + creat := { + ruleOperationCode := '001'B, + dqrBit := p_DQR, + numOfPacketFilters := fl_NR5GC_numOfPacketFilters(p_FilterList), + packetFilterList := p_FilterList, + precedence := p_Precedence, + spare := spare, + segregation := segregation, + flowIdentifier := p_QFI + } + }; + + template (value) QoS_RuleU cs_QoS_RuleU_Modify_and_add_PF( + template (omit) B6_Type p_QFI := omit, + template (omit) O1_Type p_Precedence := omit, + template (value) NG_PacketFilterList_Type2 p_FilterList := {cs_PacketFilter_1MatchAll}, + template (value) B1_Type p_DQR := '1'B, + template (omit) B1_Type spare := tsc_Spare1, + template (omit) B1_Type segregation := tsc_Spare1) := + { /* @status APPROVED (ENDC, IMS, NR5GC, NR5GC_IRAT, POS) */ + modify_and_add_pf := { + ruleOperationCode := '011'B, + dqrBit := p_DQR, + numOfPacketFilters := fl_NR5GC_numOfPacketFilters(p_FilterList), + packetFilterList := p_FilterList, + precedence := p_Precedence, + spare := spare, + segregation := segregation, + flowIdentifier := p_QFI + } + }; + + template (value) QoS_RuleU cs_QoS_RuleU_Modify_and_replace_PF( + template (omit) B6_Type p_QFI := omit, + template (omit) O1_Type p_Precedence := omit, + template (omit) NG_PacketFilterList_Type2 p_FilterList := {cs_PacketFilter_1MatchAll}, + template (value) B1_Type p_DQR := '1'B, + template (omit) B1_Type spare := tsc_Spare1, + template (omit) B1_Type segregation := tsc_Spare1) := + { /* @status APPROVED (ENDC, IMS, NR5GC, NR5GC_IRAT, POS) */ + modify_and_replace_pf := { + ruleOperationCode := '100'B, + dqrBit := p_DQR, + numOfPacketFilters := fl_NR5GC_numOfPacketFilters(p_FilterList), + packetFilterList := p_FilterList, + precedence := p_Precedence, + spare := spare, + segregation := segregation, + flowIdentifier := p_QFI + } + }; + + template (value) QoS_RuleU cs_QoS_RuleU_Modify_no_PF( + template (omit) B6_Type p_QFI := omit, + template (omit) O1_Type p_Precedence := omit, + template (value) B1_Type p_DQR := '1'B, + template (omit) B1_Type spare := tsc_Spare1, + template (omit) B1_Type segregation := tsc_Spare1) := + { /* @status APPROVED (ENDC, IMS, NR5GC, NR5GC_IRAT, POS) */ + modify_no_pf := { + ruleOperationCode := '110'B, + dqrBit := p_DQR, + numOfPacketFilters := '0000'B, + precedence := p_Precedence, + spare := spare, + segregation := segregation, + flowIdentifier := p_QFI + } }; /* @@ -2463,14 +2625,27 @@ module NG_NAS_Templates { template (omit) IEI8_Type p_IEI := omit) return template (value) QoS_Rules { var template (value) QoS_Rules v_QoS_Rules; - var template (value) QoS_Rule v_VoiceQoS := cs_QoS_Rule('03'O, int2bit(7, 6), '01'O, -, cs_PacketFilterList_MediaUDP('0110'B, tsc_IMS_MediaPort_M1), '0'B); // @sic R5-210627, R5s220046 sic@; + var template (value) QoS_Rule v_VoiceQoS; + var template (value) QoS_Rule v_VoiceQoS2; + + v_VoiceQoS := cs_QoS_Rule('03'O, + cs_QoS_RuleU_Create(int2bit(7, 6), + '01'O, + { cs_PacketFilter_MediaUDP('0110'B, tsc_IMS_MediaPort_M1) }, + '0'B)); // @sic R5-210627, R5s220046 sic@; + v_VoiceQoS2 := cs_QoS_Rule('04'O, + cs_QoS_RuleU_Create(int2bit(8, 6), + '02'O, + { cs_PacketFilter_MediaUDP('0111'B, tsc_IMS_MediaPort_M2) }, + '0'B)); + if (p_RuleNum == "7_Voice") { v_QoS_Rules := cs_QoS_Rules ({v_VoiceQoS}, p_IEI) // @sic R5-213440 sic@ } else if (p_RuleNum == "7_Video") { - v_QoS_Rules := cs_QoS_Rules ({cs_QoS_Rule('04'O, int2bit(8, 6), '02'O, -, cs_PacketFilterList_MediaUDP('0111'B, tsc_IMS_MediaPort_M2), '0'B)}, p_IEI) // @sic R5-217796, R5s220046, R5s220336 sic@ + v_QoS_Rules := cs_QoS_Rules ({v_VoiceQoS2}, p_IEI) // @sic R5-217796, R5s220046, R5s220336 sic@ } else if (p_RuleNum == "7_VoiceVideo") { - v_QoS_Rules := cs_QoS_Rules ({v_VoiceQoS, cs_QoS_Rule('04'O, int2bit(8, 6), '02'O, -, cs_PacketFilterList_MediaUDP('0111'B, tsc_IMS_MediaPort_M2), '0'B)}, p_IEI) // @sic R5-210627, R5-216161, R5s220046 sic@ + v_QoS_Rules := cs_QoS_Rules ({v_VoiceQoS, v_VoiceQoS2}, p_IEI) // @sic R5-210627, R5-216161, R5s220046 sic@ } else { v_QoS_Rules := cs_QoS_Rules ({f_BuildDefaultQoSRule(p_RuleNum)}, p_IEI); } @@ -2490,43 +2665,68 @@ module NG_NAS_Templates { select (p_RuleNum) { case ("1") { - v_QoS_Rule := cs_QoS_Rule('01'O, int2bit(1, 6), 'FF'O); // @sic R5-202585 sic@ + v_QoS_Rule := cs_QoS_Rule('01'O, + cs_QoS_RuleU_Create(int2bit(1, 6), + 'FF'O)); // @sic R5-202585 sic@ } case ("2") { - v_QoS_Rule := cs_QoS_Rule('02'O, int2bit(2, 6), 'FF'O); // @sic R5-202585 sic@ + v_QoS_Rule := cs_QoS_Rule('02'O, + cs_QoS_RuleU_Create(int2bit(2, 6), + 'FF'O)); // @sic R5-202585 sic@ } case ("3", "4", "4a", "5", "6") { v_QoS_Rule := f_BuildQoSRuleRemoteAccess (p_RuleNum); } case ("8") { - v_QoS_Rule := cs_QoS_Rule('07'O, int2bit(9, 6), 'FF'O); // @sic R5-211499 sic@ + v_QoS_Rule := cs_QoS_Rule('07'O, + cs_QoS_RuleU_Create(int2bit(9, 6), + 'FF'O)); // @sic R5-211499 sic@ } } return v_QoS_Rule; } + /* + * @desc Returns "number of packet filters" for a given input NG_PacketFilterList + * @param p_FilterList + * @return B4_Type + */ + function fl_NR5GC_numOfPacketFilters (template (omit) NG_PacketFilterList_Type2 p_FilterList) return B4_Type + { + if (isvalue(p_FilterList)) { + return int2bit(lengthof(valueof(p_FilterList)), 4); + } + return '0000'B; + } + + /* * @desc Returns length of QoS Rule for a given input * @param p_FilterList * @return Type6Length_Type * @status APPROVED (ENDC, IMS, NR5GC, NR5GC_IRAT, POS) */ - function fl_NR5GC_QoSRuleLength (template (value) NG_PacketFilterList p_FilterList) return Type6Length_Type + function fl_NR5GC_QoSRuleLength (QoS_RuleU u) return Type6Length_Type { - var integer i; - var integer v_Length:=0; - - if (ischosen(p_FilterList.modify)) { - v_Length := 1; + if (ischosen(u.creat)) { + return int2oct(lengthof(bit2oct(encvalue(u.creat))), 2); } - if (ischosen(p_FilterList.new)) { - for (i:= 0; i < lengthof(p_FilterList.new); i:= i+1) { - v_Length := v_Length + oct2int(valueof(p_FilterList.new[i].len)); - v_Length := v_Length + 2; // 1 octet of header + length - } + if (ischosen(u.delete)) { + return int2oct(lengthof(bit2oct(encvalue(u.delete))), 2); } - v_Length := v_Length + 3; // 1 octet of header + precedence + 1 octet of footer - return int2oct(v_Length, 2); + if (ischosen(u.modify_and_add_pf)) { + return int2oct(lengthof(bit2oct(encvalue(u.modify_and_add_pf))), 2); + } + if (ischosen(u.modify_and_replace_pf)) { + return int2oct(lengthof(bit2oct(encvalue(u.modify_and_replace_pf))), 2); + } + if (ischosen(u.modify_and_delete_pf)) { + return int2oct(lengthof(bit2oct(encvalue(u.modify_and_delete_pf))), 2); + } + if (ischosen(u.modify_no_pf)) { + return int2oct(lengthof(bit2oct(encvalue(u.modify_no_pf))), 2); + } + return int2oct(0, 2); } /* diff --git a/ttcn/Lib3GPP/NG_NAS/NG_NAS_TypeDefs.ttcn b/ttcn/Lib3GPP/NG_NAS/NG_NAS_TypeDefs.ttcn index f8249d2d15dc4135dbd76301559821f69ef07c37..2f8f20680795e6feac6cd42c4ab3c3c022e013ac 100644 --- a/ttcn/Lib3GPP/NG_NAS/NG_NAS_TypeDefs.ttcn +++ b/ttcn/Lib3GPP/NG_NAS/NG_NAS_TypeDefs.ttcn @@ -2495,14 +2495,13 @@ module NG_NAS_TypeDefs { B4_Type spare, B1_Type si16LLA, // @sic R5s201526 sic@ B3_Type typeValue, - octetstring adressInfo length(4..12), - octetstring ipv6Address length(1..16) optional /* Sep20 @sic R5s201387 Baseline Moving sic@ */ + octetstring adressInfo length(4..12) optional, + octetstring ipv6Address length(16) optional /* Sep20 @sic R5s201387 Baseline Moving sic@ */ } with { variant "FIELDORDER(msb)"; variant (iel) "LENGTHTO (spare, si16LLA, typeValue, adressInfo, ipv6Address)"; variant (iel) "BYTEORDER(last)"; - variant (adressInfo) "BYTEORDER(last)"; - variant (ipv6Address) "BYTEORDER(last)"; + variant (ipv6Address) "PRESENCE(si16LLA = '1'B)" }; type record PDU_SessionType { /* 24.501 cl. 9.11.4.11 */ @@ -2539,25 +2538,116 @@ module NG_NAS_TypeDefs { type record QoS_Rule { IEI8_Type identifier, Type6Length_Type iel, - B3_Type ruleOperationCode, + QoS_RuleU u + } with { + variant "FIELDORDER(msb)"; + variant (iel) "LENGTHTO (u)"; + variant (iel) "BYTEORDER(last)"; + }; + + type union QoS_RuleU { + QoS_Rule_Create creat, + QoS_Rule_Delete delete, + QoS_Rule_Modify_and_add_PF modify_and_add_pf, + QoS_Rule_Modify_and_replace_PF modify_and_replace_pf, + QoS_Rule_Modify_and_delete_PF modify_and_delete_pf, + QoS_Rule_Modify_no_PF modify_no_pf + } with { + variant "TAG(creat, ruleOperationCode = '001'B; + delete, ruleOperationCode = '010'B; + modify_and_add_pf, ruleOperationCode = '011'B; + modify_and_replace_pf, ruleOperationCode = '100'B; + modify_and_delete_pf, ruleOperationCode = '101'B; + modify_no_pf, ruleOperationCode = '110'B)" + }; + + type record QoS_Rule_Create { + B3_Type ruleOperationCode ('001'B), B1_Type dqrBit, - B4_Type numOfPacketFilters, - NG_PacketFilterList packetFilterList optional, + B4_Type numOfPacketFilters, /* >= 0 */ + NG_PacketFilterList_Type2 packetFilterList optional, + /* For the "create new QoS rule" operation, the QoS rule precedence value field shall be included */ + O1_Type precedence, + /* For the "create new QoS rule" operation, the QoS flow identifier value field shall be included. */ + B1_Type spare, + B1_Type segregation, /* Dec18 */ + B6_Type flowIdentifier + } with { + variant "FIELDORDER(msb)"; + variant (numOfPacketFilters) "LENGTHTO(packetFilterList)"; + variant (numOfPacketFilters) "UNIT(elements)" + }; + + type record QoS_Rule_Delete { + B3_Type ruleOperationCode ('010'B), + B1_Type dqrBit, + /* For the "delete existing QoS rule" operation the number of packet filters shall be coded as 0. */ + B4_Type numOfPacketFilters ('0000'B) + /* For the "delete existing QoS rule" operation, the QoS rule precedence + * value field shall not be included */ + /* For the "delete existing QoS rule" operation, the QoS flow identifier + * value field shall not be included. */ + } with { + variant "FIELDORDER(msb)"; + }; + + type record QoS_Rule_Modify_and_add_PF { + B3_Type ruleOperationCode ('011'B), + B1_Type dqrBit, + B4_Type numOfPacketFilters, /* > 0 */ + NG_PacketFilterList_Type2 packetFilterList, O1_Type precedence optional, B1_Type spare optional, B1_Type segregation optional, /* Dec18 */ B6_Type flowIdentifier optional } with { variant "FIELDORDER(msb)"; - variant (iel) "LENGTHTO (ruleOperationCode, dqrBit, numOfPacketFilters, packetFilterList, precedence, spare, segregation, flowIdentifier)"; - variant (iel) "BYTEORDER(last)"; + variant (numOfPacketFilters) "LENGTHTO(packetFilterList)"; + variant (numOfPacketFilters) "UNIT(elements)" }; - type union NG_PacketFilterList { - NG_PacketFilterList_Type1 modify, - NG_PacketFilterList_Type2 new + type record QoS_Rule_Modify_and_replace_PF { + B3_Type ruleOperationCode ('100'B), + B1_Type dqrBit, + B4_Type numOfPacketFilters, /* >= 0 */ + NG_PacketFilterList_Type2 packetFilterList optional, + O1_Type precedence optional, + B1_Type spare optional, + B1_Type segregation optional, /* Dec18 */ + B6_Type flowIdentifier optional } with { - variant ""; + variant "FIELDORDER(msb)"; + variant (numOfPacketFilters) "LENGTHTO(packetFilterList)"; + variant (numOfPacketFilters) "UNIT(elements)" + }; + + type record QoS_Rule_Modify_and_delete_PF { + B3_Type ruleOperationCode ('101'B), + B1_Type dqrBit, + B4_Type numOfPacketFilters, /* > 0 */ + NG_PacketFilterList_Type1 packetFilterList, + O1_Type precedence optional, + B1_Type spare optional, + B1_Type segregation optional, /* Dec18 */ + B6_Type flowIdentifier optional + } with { + variant "FIELDORDER(msb)"; + variant (numOfPacketFilters) "LENGTHTO(packetFilterList)"; + variant (numOfPacketFilters) "UNIT(elements)" + }; + + type record QoS_Rule_Modify_no_PF { + B3_Type ruleOperationCode ('110'B), + B1_Type dqrBit, +/* For the "modify existing QoS rule without modifying packet filters" + * operation, the number of packet filters shall be coded as 0. */ + B4_Type numOfPacketFilters ('0000'B), + O1_Type precedence optional, + B1_Type spare optional, + B1_Type segregation optional, /* Dec18 */ + B6_Type flowIdentifier optional + } with { + variant "FIELDORDER(msb)"; }; type record of NG_PacketFilter_Type1 NG_PacketFilterList_Type1; @@ -2575,8 +2665,8 @@ module NG_NAS_TypeDefs { B2_Type spare, B2_Type direction, B4_Type packetFilterId, - Type4Length_Type len optional, - octetstring contents length (1..255) optional // @sic R5w190307 sic@ + Type4Length_Type len, + octetstring contents length (0..255) // @sic R5w190307 sic@ } with { variant "FIELDORDER(msb)"; variant (len) "LENGTHTO (contents)"; diff --git a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn index 014925b9e81f7b6df6d1444489e1cfbf01103556..ef2e9a92d21b92c3f2506b253b2a39f39ef11209 100644 --- a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +++ b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn @@ -560,7 +560,7 @@ module LibNGAP_Templates { value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } }, { - id := id_PDUSessionResourceModifyListModReq, + id := id_PDUSessionResourceModifyListModRes, criticality := reject, value_ := { PDUSessionResourceModifyListModRes := p_pDUSessionResourceModifyListModRes } @@ -1121,7 +1121,7 @@ module LibNGAP_Templates { id := id_RAN_UE_NGAP_ID, criticality := reject, value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } - }, + }, { id := id_GUAMI, criticality := reject, @@ -1156,7 +1156,7 @@ module LibNGAP_Templates { } } } // End of template m_n2_InitialContextSetupRequest_optional_TraceActivation - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.1 INITIAL CONTEXT SETUP REQUEST */ @@ -1184,7 +1184,7 @@ module LibNGAP_Templates { id := id_RAN_UE_NGAP_ID, criticality := reject, value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } - }, + }, { id := id_GUAMI, criticality := reject, @@ -1219,7 +1219,7 @@ module LibNGAP_Templates { } } } // End of template m_n2_InitialContextSetupRequest_optional_MobilityRestriction - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.1 INITIAL CONTEXT SETUP REQUEST */ @@ -1232,21 +1232,21 @@ module LibNGAP_Templates { in template (value) UESecurityCapabilities p_uESecurityCapabilities, in template (value) SecurityKey p_nextHopNH := PX_NEXT_HOP_NH, in template (value) UERadioCapability p_uERadioCapability, - in template (value) IndexToRFSP p_indexToRFSP := PX_Index_to_RAT_Frequency_Selection_Priority, - in template (value) MaskedIMEISV p_maskedIMEISV := PX_MaskedIMEISV, - in template (value) NAS_PDU p_nasPdu, - in template (value) EmergencyFallbackIndicator p_emergencyFallbackIndicator, - in template (value) RRCInactiveTransitionReportRequest p_rRCInactiveTransitionReportRequest, + in template (value) IndexToRFSP p_indexToRFSP := PX_Index_to_RAT_Frequency_Selection_Priority, + in template (value) MaskedIMEISV p_maskedIMEISV := PX_MaskedIMEISV, + in template (value) NAS_PDU p_nasPdu, + in template (value) EmergencyFallbackIndicator p_emergencyFallbackIndicator, + in template (value) RRCInactiveTransitionReportRequest p_rRCInactiveTransitionReportRequest, in template (value) RedirectionVoiceFallback p_redirectionVoiceFallback, in template (value) LocationReportingRequestType p_locationReportingRequestType, - in template (value) SRVCCOperationPossible p_sRVCCOperationPossible, - in template (value) IAB_Authorized p_iAB_Authorized, + in template (value) SRVCCOperationPossible p_sRVCCOperationPossible, + in template (value) IAB_Authorized p_iAB_Authorized, in template (value) Enhanced_CoverageRestriction p_enhanced_CoverageRestriction, - in template (value) Extended_ConnectedTime p_extended_ConnectedTime := PX_EXTENDED_CONNECTED_TIME, - in template (value) UE_DifferentiationInfo p_uE_DifferentiationInfo, - in template (value) NRUESidelinkAggregateMaximumBitrate p_nRUESidelinkAggregateMaximumBitrate, - in template (value) LTEUESidelinkAggregateMaximumBitrate p_lTEUESidelinkAggregateMaximumBitrate, - in template (value) UERadioCapabilityID p_uERadioCapabilityID + in template (value) Extended_ConnectedTime p_extended_ConnectedTime := PX_EXTENDED_CONNECTED_TIME, + in template (value) UE_DifferentiationInfo p_uE_DifferentiationInfo, + in template (value) NRUESidelinkAggregateMaximumBitrate p_nRUESidelinkAggregateMaximumBitrate, + in template (value) LTEUESidelinkAggregateMaximumBitrate p_lTEUESidelinkAggregateMaximumBitrate, + in template (value) UERadioCapabilityID p_uERadioCapabilityID ) := { procedureCode := id_InitialContextSetup, criticality := reject, @@ -1262,7 +1262,7 @@ module LibNGAP_Templates { id := id_RAN_UE_NGAP_ID, criticality := reject, value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } - }, + }, { id := id_GUAMI, criticality := reject, @@ -1272,7 +1272,7 @@ module LibNGAP_Templates { id := id_PDUSessionResourceSetupListCxtReq, criticality := reject, value_ := { PDUSessionResourceSetupListCxtReq := p_pDUSessionResourceSetupListCxtReq } - }, + }, { id := id_AllowedNSSAI, criticality := reject, @@ -1287,7 +1287,7 @@ module LibNGAP_Templates { id := id_SecurityKey, criticality := reject, value_ := { SecurityKey := p_nextHopNH } - }, + }, { id := id_UERadioCapability, criticality := ignore, @@ -1302,32 +1302,32 @@ module LibNGAP_Templates { id := id_MaskedIMEISV, criticality := ignore, value_ := { MaskedIMEISV := p_maskedIMEISV } - }, + }, { id := id_NAS_PDU, criticality := ignore, value_ := { NAS_PDU := p_nasPdu } - }, + }, { id := id_EmergencyFallbackIndicator, criticality := reject, value_ := { EmergencyFallbackIndicator := p_emergencyFallbackIndicator} - }, + }, { id := id_RRCInactiveTransitionReportRequest, criticality := ignore, value_ := { RRCInactiveTransitionReportRequest := p_rRCInactiveTransitionReportRequest} - }, + }, { id := id_RedirectionVoiceFallback, criticality := ignore, value_ := { RedirectionVoiceFallback := p_redirectionVoiceFallback } - } , + } , { id := id_LocationReportingRequestType, criticality := ignore, value_ := { LocationReportingRequestType := p_locationReportingRequestType } - }, + }, { id := id_SRVCCOperationPossible, criticality := ignore, @@ -1337,22 +1337,22 @@ module LibNGAP_Templates { id := id_IAB_Authorized, criticality := ignore, value_ := { IAB_Authorized := p_iAB_Authorized } - }, + }, { id := id_Enhanced_CoverageRestriction, criticality := ignore, value_ := { Enhanced_CoverageRestriction := p_enhanced_CoverageRestriction } - }, + }, { id := id_Extended_ConnectedTime, criticality := ignore, value_ := { Extended_ConnectedTime := p_extended_ConnectedTime } - }, + }, { id := id_UE_DifferentiationInfo, criticality := ignore, value_ := { UE_DifferentiationInfo := p_uE_DifferentiationInfo } - }, + }, { id := id_NRUESidelinkAggregateMaximumBitrate, criticality := ignore, @@ -1362,19 +1362,19 @@ module LibNGAP_Templates { id := id_LTEUESidelinkAggregateMaximumBitrate, criticality := ignore, value_ := { LTEUESidelinkAggregateMaximumBitrate := p_lTEUESidelinkAggregateMaximumBitrate } - }, + }, { id := id_UERadioCapabilityID, criticality := reject, value_ := { UERadioCapabilityID := p_uERadioCapabilityID } - } - - + } + + } } } } // End of template m_n2_InitialContextSetupRequest_differentOptionals - + } // End of group Send group Receive { @@ -1390,8 +1390,8 @@ module LibNGAP_Templates { template (present) AllowedNSSAI p_allowedNSSAI := ?, template (present) UESecurityCapabilities p_uESecurityCapabilities := ?, template (present) SecurityKey p_nextHopNH := ?, - template (present) MaskedIMEISV p_maskedIMEISV := ?, - template (present) NAS_PDU p_nasPdu := ? + template (present) MaskedIMEISV p_maskedIMEISV := ?, + template (present) NAS_PDU p_nasPdu := ? ) := { procedureCode := id_InitialContextSetup, criticality := reject, @@ -1437,7 +1437,7 @@ module LibNGAP_Templates { id := id_MaskedIMEISV, criticality := ignore, value_ := { MaskedIMEISV := p_maskedIMEISV } - }, + }, { id := id_NAS_PDU, criticality := ignore, @@ -1549,7 +1549,7 @@ module LibNGAP_Templates { } } } // End of template mw_n2_PDUInitialContextSetupResponse - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.2 INITIAL CONTEXT SETUP RESPONSE */ @@ -1953,8 +1953,8 @@ module LibNGAP_Templates { } } } // End of template m_n2_UEContextModificationRequest - - + + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.7 UE CONTEXT MODIFICATION REQUEST */ @@ -1993,7 +1993,7 @@ module LibNGAP_Templates { } } } // End of template m_n2_UEContextModificationRequest_optional1 - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.7 UE CONTEXT MODIFICATION REQUEST */ @@ -2001,14 +2001,14 @@ module LibNGAP_Templates { 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, in template (value) RANPagingPriority p_rANPagingPriority := 1, // RAN_Paging_Priority // TODO: do we need PIXIT here? - in template (value) IndexToRFSP p_indexToRFSP := PX_Index_to_RAT_Frequency_Selection_Priority, + in template (value) IndexToRFSP p_indexToRFSP := PX_Index_to_RAT_Frequency_Selection_Priority, in template (value) UEAggregateMaximumBitRate p_uEAggregateMaximumBitRate, // UE_Aggregate_Maximum_Bit_Rate containing in template (value) UESecurityCapabilities p_uESecurityCapabilities, // UE_Security_Capabilities containing in template (value) EmergencyFallbackIndicator p_emergencyFallbackIndicator, // Emergency_Fallback_Indicator, in template (value) GUAMI p_gUAMI, // New_GUAMI containing in template (value) IAB_Authorized p_iAB_Authorized, // IAB_Authorized, - in template (value) PC5QoSParameters p_pC5QoSParameters, // PC5_QoS_Parameters containing - in template (value) UERadioCapabilityID p_uERadioCapabilityID := PX_U_E_RADIO_CAPABILITY_ID, // UE_Radio_Capability_ID, + in template (value) PC5QoSParameters p_pC5QoSParameters, // PC5_QoS_Parameters containing + in template (value) UERadioCapabilityID p_uERadioCapabilityID := PX_U_E_RADIO_CAPABILITY_ID, // UE_Radio_Capability_ID, in template (value) RGLevelWirelineAccessCharacteristics p_rGLevelWirelineAccessCharacteristics := '00'O // RG_Level_Wireline_Access_Characteristics // TODO: do we need a PIXIT here? ) := { procedureCode := id_UEContextModification, @@ -2068,18 +2068,18 @@ module LibNGAP_Templates { criticality := ignore, value_ := { IAB_Authorized := p_iAB_Authorized } }, - // in template (value) PC5QoSParameters p_pC5QoSParameters, // PC5_QoS_Parameters containing + // in template (value) PC5QoSParameters p_pC5QoSParameters, // PC5_QoS_Parameters containing { id := id_PC5QoSParameters, criticality := ignore, value_ := { PC5QoSParameters := p_pC5QoSParameters } - }, - // in template (value) UERadioCapabilityID p_uERadioCapabilityID := PX_U_E_RADIO_CAPABILITY_ID, // UE_Radio_Capability_ID, + }, + // in template (value) UERadioCapabilityID p_uERadioCapabilityID := PX_U_E_RADIO_CAPABILITY_ID, // UE_Radio_Capability_ID, { id := id_UERadioCapabilityID, criticality := reject, value_ := { UERadioCapabilityID := p_uERadioCapabilityID } - }, + }, // in template (value) RGLevelWirelineAccessCharacteristics p_rGLevelWirelineAccessCharacteristics // RG_Level_Wireline_Access_Characteristics { id := id_RGLevelWirelineAccessCharacteristics, @@ -2775,7 +2775,7 @@ module LibNGAP_Templates { } } } // End of template mw_n2_UEContextSuspendRequest - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.16 UE CONTEXT SUSPEND REQUEST */ @@ -5470,7 +5470,7 @@ module LibNGAP_Templates { } } } // End of template mw_n2_UplinkNASTransport_base_nas - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.5.2 DOWNLINK NAS TRANSPORT */ @@ -5825,7 +5825,7 @@ module LibNGAP_Templates { */ template (present) InitiatingMessage mw_n2_NGSetupRequest_base := { procedureCode := id_NGSetup, criticality := ?, value_ := {NGSetupRequest := {protocolIEs := {*}}} - } // End of template mw_n2_NGSetupRequest_base + } // End of template mw_n2_NGSetupRequest_base template (present) InitiatingMessage mw_n2_NGSetupRequest( template (present) GlobalRANNodeID p_globalRANNodeID := ?, @@ -6127,7 +6127,7 @@ module LibNGAP_Templates { criticality := reject, value_ := { RANConfigurationUpdate := { - protocolIEs := { + protocolIEs := { { id := id_SupportedTAList, criticality := reject, @@ -6173,7 +6173,7 @@ module LibNGAP_Templates { criticality := reject, value_ := { RANConfigurationUpdate := { - protocolIEs := { + protocolIEs := { { id := id_SupportedTAList, criticality := reject, @@ -6306,10 +6306,10 @@ module LibNGAP_Templates { } // End of template m_n2_AMFConfigurationUpdate template (value) InitiatingMessage m_n2_AMFConfigurationUpdate_tnl( - //in template (value) AMFName p_AMFName, - in template (value) ServedGUAMIList p_servedGUAMIList, + //in template (value) AMFName p_AMFName, + in template (value) ServedGUAMIList p_servedGUAMIList, //in template (value) RelativeAMFCapacity p_relativeAMFCapacity, - in template (value) PLMNSupportList p_pLMNSupportList, + in template (value) PLMNSupportList p_pLMNSupportList, in template (value) AMF_TNLAssociationToAddList p_aMF_TNLAssociationToAddList, //in template (value) AMF_TNLAssociationToRemoveList p_aMF_TNLAssociationToRemoveList, in template (value) AMF_TNLAssociationToUpdateList p_aMF_TNLAssociationToUpdateList//, @@ -6329,7 +6329,7 @@ module LibNGAP_Templates { id := id_ServedGUAMIList, criticality := reject, value_ := { ServedGUAMIList := p_servedGUAMIList } - }, + }, //{ id := id_RelativeAMFCapacity, // criticality := ignore, // value_ := { RelativeAMFCapacity := p_relativeAMFCapacity} @@ -6387,14 +6387,14 @@ module LibNGAP_Templates { } } } // End of template mw_n2_AMFConfigurationUpdate - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.6.7 AMF CONFIGURATION UPDATE */ template (present) InitiatingMessage mw_n2_AMFConfigurationUpdate_options( template (present) AMFName p_aMFName := ?, - template ServedGUAMIList p_servedGUAMIList := *, - template PLMNSupportList p_pLMNSupportList := * + template ServedGUAMIList p_servedGUAMIList := *, + template PLMNSupportList p_pLMNSupportList := * ) := { procedureCode := id_AMFConfigurationUpdate, criticality := reject, @@ -6410,7 +6410,7 @@ module LibNGAP_Templates { id := id_ServedGUAMIList, criticality := reject, value_ := { ServedGUAMIList := p_servedGUAMIList } - }, + }, { id := id_PLMNSupportList, criticality := ignore, @@ -6859,7 +6859,7 @@ module LibNGAP_Templates { criticality := reject, value_ := { OverloadStart := { - protocolIEs := { + protocolIEs := { { id := id_OverloadStartNSSAIList, criticality := ignore, @@ -7534,7 +7534,7 @@ module LibNGAP_Templates { } } } // End of template mw_n2_DownlinkUEAssociatedNRPPaTransport - + } } //9.2.9.2 @@ -7621,7 +7621,7 @@ module LibNGAP_Templates { } } } // End of template mw_n2_UplinkUEAssociatedNRPPaTransport - + } } //9.2.9.3 @@ -7684,7 +7684,7 @@ module LibNGAP_Templates { } } } // End of template mw_n2_DownlinkNonUEAssociatedNRPPaTransport - + } } //9.2.9.4 @@ -7747,7 +7747,7 @@ module LibNGAP_Templates { } } } // End of template mw_n2_UplinkNonUEAssociatedNRPPaTransport - + } } } // End of group NRPPa_Transport_Messages @@ -8220,7 +8220,7 @@ module LibNGAP_Templates { //9.2.11.1 group LOCATION_REPORTING_CONTROL{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.1 LOCATION REPORTING CONTROL */ @@ -8253,10 +8253,10 @@ module LibNGAP_Templates { } } } // End of template m_n2_LocationReportingControl - + } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.1 LOCATION REPORTING CONTROL */ @@ -8289,13 +8289,13 @@ module LibNGAP_Templates { } } } // End of template mw_n2_LocationReportingControl - + } } //9.2.11.2 group LOCATION_REPORTING_FAILURE_INDICATION{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.2 LOCATION REPORTING FAILURE INDICATION */ @@ -8328,10 +8328,10 @@ module LibNGAP_Templates { } } } // End of template m_n2_LocationReportingFailureIndication - + } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.2 LOCATION REPORTING FAILURE INDICATION */ @@ -8364,13 +8364,13 @@ module LibNGAP_Templates { } } } // End of template mw_n2_LocationReportingFailureIndication - + } } //9.2.11.3 group LOCATION_REPORT{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.3 LOCATION REPORT */ @@ -8399,7 +8399,7 @@ module LibNGAP_Templates { id := id_UserLocationInformation, criticality := ignore, value_ := { UserLocationInformation := p_userLocationInformation } - }, + }, { id := id_LocationReportingRequestType, criticality := ignore, @@ -8409,7 +8409,7 @@ module LibNGAP_Templates { } } } // End of template m_n2_LocationReport - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.3 LOCATION REPORT */ @@ -8444,7 +8444,7 @@ module LibNGAP_Templates { id := id_UEPresenceInAreaOfInterestList, criticality := ignore, value_ := { UEPresenceInAreaOfInterestList := p_uEPresenceInAreaOfInterestList } - }, + }, { id := id_LocationReportingRequestType, criticality := ignore, @@ -8457,7 +8457,7 @@ module LibNGAP_Templates { } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.3 LOCATION REPORT */ @@ -8486,7 +8486,7 @@ module LibNGAP_Templates { id := id_UserLocationInformation, criticality := ignore, value_ := { UserLocationInformation := p_userLocationInformation } - }, + }, { id := id_LocationReportingRequestType, criticality := ignore, @@ -8496,7 +8496,7 @@ module LibNGAP_Templates { } } } // End of template mw_n2_LocationReport - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.3 LOCATION REPORT */ @@ -8531,7 +8531,7 @@ module LibNGAP_Templates { id := id_UEPresenceInAreaOfInterestList, criticality := ignore, value_ := { UEPresenceInAreaOfInterestList := p_uEPresenceInAreaOfInterestList } - }, + }, { id := id_LocationReportingRequestType, criticality := ignore, @@ -8551,7 +8551,7 @@ module LibNGAP_Templates { //9.2.12.1 group UE_TNLA_BINDING_RELEASE_REQUEST{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.12.1 UE TNLA BINDING RELEASE REQUEST */ @@ -8578,10 +8578,10 @@ module LibNGAP_Templates { } } } // End of template m_n2_UETNLABindingReleaseRequest - + } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.12.1 UE TNLA BINDING RELEASE REQUEST */ @@ -8608,8 +8608,8 @@ module LibNGAP_Templates { } } } // End of template mw_n2_UETNLABindingReleaseRequest - - + + } } } // End of group UE_TNLA_Binding_Messages @@ -8619,7 +8619,7 @@ module LibNGAP_Templates { //9.2.13.1 group UE_RADIO_CAPABILITY_INFO_INDICATION{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.1 UE RADIO CAPABILITY INFO INDICATION */ @@ -8652,7 +8652,7 @@ module LibNGAP_Templates { } } } // End of template m_n2_UERadioCapabilityInfoIndication - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.1 UE RADIO CAPABILITY INFO INDICATION */ @@ -8697,10 +8697,10 @@ module LibNGAP_Templates { } } } // End of template m_n2_UERadioCapabilityInfoIndication_options - + } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.1 UE RADIO CAPABILITY INFO INDICATION */ @@ -8733,7 +8733,7 @@ module LibNGAP_Templates { } } } // End of template mw_n2_UERadioCapabilityInfoIndication - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.1 UE RADIO CAPABILITY INFO INDICATION */ @@ -8784,7 +8784,7 @@ module LibNGAP_Templates { //9.2.13.2 group UE_RADIO_CAPABILITY_CHECK_REQUEST{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.2 UE RADIO CAPABILITY CHECK REQUEST */ @@ -8811,7 +8811,7 @@ module LibNGAP_Templates { } } } // End of template m_n2_UERadioCapabilityCheckRequest - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.2 UE RADIO CAPABILITY CHECK REQUEST */ @@ -8850,10 +8850,10 @@ module LibNGAP_Templates { } } } // End of template m_n2_UERadioCapabilityCheckRequest_options - + } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.2 UE RADIO CAPABILITY CHECK REQUEST */ @@ -8880,7 +8880,7 @@ module LibNGAP_Templates { } } } // End of template mw_n2_UERadioCapabilityCheckRequest - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.2 UE RADIO CAPABILITY CHECK REQUEST */ @@ -8919,13 +8919,13 @@ module LibNGAP_Templates { } } } // End of template mw_n2_UERadioCapabilityCheckRequest_options - + } } //9.2.13.3 group UE_RADIO_CAPABILITY_CHECK_RESPONSE{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.3 UE RADIO CAPABILITY CHECK RESPONSE */ @@ -9000,7 +9000,7 @@ module LibNGAP_Templates { } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.3 UE RADIO CAPABILITY CHECK RESPONSE */ @@ -9078,7 +9078,7 @@ module LibNGAP_Templates { //9.2.13.4 group UE_RADIO_CAPABILITY_ID_MAPPING_REQUEST{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.3 UE RADIO CAPABILITY CHECK RESPONSE */ @@ -9102,7 +9102,7 @@ module LibNGAP_Templates { } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.3 UE RADIO CAPABILITY CHECK RESPONSE */ @@ -9129,7 +9129,7 @@ module LibNGAP_Templates { //9.2.13.5 group UE_RADIO_CAPABILITY_ID_MAPPING_RESPONSE{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.3 UE RADIO CAPABILITY CHECK RESPONSE */ @@ -9192,7 +9192,7 @@ module LibNGAP_Templates { } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.3 UE RADIO CAPABILITY CHECK RESPONSE */ @@ -9262,7 +9262,7 @@ module LibNGAP_Templates { //9.2.14.1 group SECONDARY_RAT_DATA_USAGE_REPORT{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.14.1 SECONDARY RAT DATA USAGE REPORT */ @@ -9343,7 +9343,7 @@ module LibNGAP_Templates { } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.14.1 SECONDARY RAT DATA USAGE REPORT */ @@ -9431,7 +9431,7 @@ module LibNGAP_Templates { //9.2.15.1 group UPLINK_RIM_INFORMATION_TRANSFER{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.15.1 UPLINK RIM INFORMATION TRANSFER */ @@ -9455,7 +9455,7 @@ module LibNGAP_Templates { } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.15.1 UPLINK RIM INFORMATION TRANSFER */ @@ -9482,7 +9482,7 @@ module LibNGAP_Templates { //9.2.15.2 group DOWNLINK_RIM_INFORMATION_TRANSFER{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.15.1 DownLINK RIM INFORMATION TRANSFER */ @@ -9506,7 +9506,7 @@ module LibNGAP_Templates { } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.15.1 DownLINK RIM INFORMATION TRANSFER */