pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43664?usp=email )
Change subject: smd: Decode received NG-NAS PDU Session Establish Accept ......................................................................
smd: Decode received NG-NAS PDU Session Establish Accept
Change-Id: I41a3625c0cebf3e3631b2dfe8c677783157857b4 --- M library/NG_NAS_Osmo_Templates.ttcn M smf/SMF_Session_CT_5G.ttcn 2 files changed, 66 insertions(+), 4 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/64/43664/1
diff --git a/library/NG_NAS_Osmo_Templates.ttcn b/library/NG_NAS_Osmo_Templates.ttcn index 92e59c7..798fcfb 100644 --- a/library/NG_NAS_Osmo_Templates.ttcn +++ b/library/NG_NAS_Osmo_Templates.ttcn @@ -794,6 +794,62 @@ } }
+/* 24.501 cl. 8.3.2 */ +template (present) NG_NAS_DL_SM_Message_Type +cr_NG_PDU_SESSION_ESTABLISHMENT_ACCEPT(template (present) NG_PDU_SessionId p_PDU_SessionId := ?, + template (present) ProcedureTransactionIdentifier p_PTI := ?, + template (present) SSC_Mode p_SSC_Mode := ?, + template (present) PDU_SessionType p_PDU_SessionType := ?, + template (present) QoS_Rules p_QoS_Rules := ?, + template (present) Session_AMBR p_Session_AMBR := ?, + template GMM_GSM_Cause p_Cause := *, + template PDU_Address p_PDU_Address := *, + template GPRS_Timer p_RQTimer := *, + template S_NSSAI_Type p_S_NSSAI := *, + template AlwaysOnPDUSessionInd p_AlwaysOnPDUSessionInd := *, + template MappedEPSBearerContexts p_MappedEPSBearerContexts := *, + template EAP_Message p_EAP := *, + template QoSFlowDescr p_QoSFlowDescr := *, + template ExtdProtocolConfigOptions p_ExtdPCO := *, + template DNN p_DNN := *, + template NGSM_NetworkFeatureSupport p_NGSM_NtwkFeatSupport := *, + template ServingPLMNRateControl p_ServingPLMNRateCtrl := *, + template ATSSSContainer p_ATSSSContainer := *, + template ControlPlaneInd p_ControlPlaneInd := *, + template IPHeaderCompressionConfig p_IPHeaderCompConfig := *, + template EthernetHeaderCompressConfig p_EthernetHeaderCompConfig := *, + template ServiceLvlAAContainer p_ServiceLvlAA := *, + template ReceivedMBSContainer p_ReceivedMBS := *) := { + pdu_Session_Establishment_Accept := { + protocolDiscriminator := tsc_EPD_GSM, /* cl. 9.2 M V 1 */ + pduSessionId := p_PDU_SessionId, /* cl. 9.4 M V 1 */ + procedureTransactionIdentifier := p_PTI, /* cl. 9.6 M V 1 */ + messageType := tsc_MT_NG_PDUSessionEstablishmentAccept, /* cl. 9.7 M V 1 */ + sscMode := p_SSC_Mode, /* cl. 9.11.4.16 M V 1/2 */ + pduSessionType := p_PDU_SessionType, /* cl. 9.11.4.11 M V 1/2 */ + authorizedQoSRules := p_QoS_Rules, /* cl. 9.11.4.13 M LV-E 7-65538 */ + sessionAMBR := p_Session_AMBR, /* cl. 9.11.4.14 M LV ? */ + gsmCause := p_Cause, /* cl. 9.11.4.2 O TV 2 IEI=59 */ + pduAddress := p_PDU_Address, /* cl. 9.11.4.10 O TLV 7-15 IEI=29 */ + rqTimerValue := p_RQTimer, /* cl. 9.11.2.3 O TLV 2 IEI=56 */ + s_NSSAI := p_S_NSSAI, /* cl. 9.11.2.6 O TLV 3-10 IEI=22 */ + alwaysOnPDUSessionInd := p_AlwaysOnPDUSessionInd, /* c. 9.11.4.3 O TV 1 IEI=8 */ + mappedEPSContexts := p_MappedEPSBearerContexts, /* cl. 9.11.4.9 O TLV-E 7-65538 IEI=7F */ + eapMessage := p_EAP, /* cl. 9.11.2.2 O TLV-E 7-1503 IEI=78 */ + authorizedQoSFlowDescr := p_QoSFlowDescr, /* cl. 9.11.4.12 O TLV-E 6-65538 IEI=79 */ + extdProtocolConfigurationOptions := p_ExtdPCO, /* cl. 9.11.4.6 O TLV-E 4-65538 IEI=0x7B */ + dnn := p_DNN, /* cl. 9.11.2.1A O TLV 3-102 IEI=25 */ + ngs_NetworkFeatureSupport := p_NGSM_NtwkFeatSupport, /* cl. 9.11.4.18 O TLV 3-15 IEI=17 Sep20 @sic R5s201387 Baseline Moving sic@ */ + servingPLMNRateControl := p_ServingPLMNRateCtrl, /* cl. 9.11.4.20 O TLV 4 IEI=18 Sep20 @sic R5s201387 Baseline Moving sic@ */ + atsssContainer := p_ATSSSContainer, /* cl. 9.11.4.22 O TLV-E 3-65538 IEI=77 Sep20 @sic R5s201387 Baseline Moving sic@ */ + controlPlaneOnlyIndication := p_ControlPlaneInd, /* cl. 9.11.4.23 O TV 1 IEI=C Sep20 @sic R5s201387 Baseline Moving sic@ */ + ipHeaderCompressionConfig := p_IPHeaderCompConfig, /* cl. 9.11.4.24 O TLV 5-257 IEI=66 Sep20 @sic R5s201387 Baseline Moving sic@ */ + ethernetHeaderCompressConfig := p_EthernetHeaderCompConfig, /* cl. 9.11.4.28 O TLV 3 IEI=1F Sep20 @sic R5s201387 Baseline Moving sic@ */ + serviceLvlAA := p_ServiceLvlAA, /* cl. 9.11.2.10 O TLV-E 6-n IEI=72 Sep22 @sic R5s221179 Baseline Moving sic@ */ + receivedMBS := p_ReceivedMBS /* cl. 9.11.4.30 O TLV-E 8-65538 IEI=71 Sep22 @sic R5s221179 Baseline Moving sic@ */ + } +} + template (value) NG_NAS_UL_Message_Type cs_NG_PDU_SESSION_MODIFICATION_REQUEST(template (value) NG_PDU_SessionId p_PDU_SessionId, template (value) ProcedureTransactionIdentifier p_PTI, diff --git a/smf/SMF_Session_CT_5G.ttcn b/smf/SMF_Session_CT_5G.ttcn index 425675e..22dc5e5 100644 --- a/smf/SMF_Session_CT_5G.ttcn +++ b/smf/SMF_Session_CT_5G.ttcn @@ -240,6 +240,9 @@ var N1N2MessageTransferReqData n1n2msg_req; var NGAP_IEs.PDUSessionResourceSetupRequestTransfer setup_req_transf; var template (value) N1N2MessageTransferRspData n1n2msg_rsp; + var template (present) NG_NAS_DL_SM_Message_Type exp_rx_nas; + var NG_NAS_DL_SM_Message_Type dl_nas; + var NG_NAS_DL_SM_Message_Type rx_nas; var template (value) HTTP2_Msg http2_tx; var octetstring body_enc;
@@ -247,14 +250,17 @@ var charstring content_type_val := valueof(f_HTTP2_header_list_find_header(http2_rx.hb.headers, c_HTTP2_HDR_content_type)); var charstring boundary := f_HTTP2_header_content_type_multipart_val_get_boundary(content_type_val) var HTTP2_multipart_part_list parts := f_HTTP2_multipart_msg_parse(http2_rx.body.data, boundary); - log("PESPIN: rx http2 multipart! ", parts);
/* Decode 1st part: SBI json: */ f_dec_N1N2MessageTransferReqData(parts[0].data, n1n2msg_req); // TODO: check returned integer. - log("PESPIN: N1N2MessageTransferReqData:", n1n2msg_req);
- /* TODO: Decode 2nd part: 5GNAS: */ - log("TODO: Decode 2nd part (5GNAS): ", parts[1].data); + /* Decode 2nd part: NG-NAS: */ + dl_nas := dec_NG_NAS_DL_SM_Message_Type(parts[1].data); + exp_rx_nas := cr_NG_PDU_SESSION_ESTABLISHMENT_ACCEPT(); + if (not match(dl_nas, exp_rx_nas)) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Rx unexpected DL NG-NAS: ", dl_nas, " vs exp ", exp_rx_nas)); + }
/* Decode 3rd part: NGAP: */ setup_req_transf := dec_NGAP_PDUSessionResourceSetupRequestTransfer(parts[2].data);