pespin submitted this change.

View Change

Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified
smf: 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, 65 insertions(+), 4 deletions(-)

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..e7e8f62 100644
--- a/smf/SMF_Session_CT_5G.ttcn
+++ b/smf/SMF_Session_CT_5G.ttcn
@@ -240,6 +240,8 @@
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 template (value) HTTP2_Msg http2_tx;
var octetstring body_enc;

@@ -247,14 +249,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);

To view, visit change 43664. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I41a3625c0cebf3e3631b2dfe8c677783157857b4
Gerrit-Change-Number: 43664
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>