pespin has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40895?usp=email )
Change subject: WIP: PDU Sess Modification Request
......................................................................
WIP: PDU Sess Modification Request
Change-Id: Id9ac0f0e431c4a82dfab8675c93bf3c3f05442a7
---
M 5gc/C5G_Tests.ttcn
M 5gc/ConnHdlr.ttcn
M library/NG_NAS_Osmo_Templates.ttcn
3 files changed, 93 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/95/40895/1
diff --git a/5gc/C5G_Tests.ttcn b/5gc/C5G_Tests.ttcn
index ae8260c..768201c 100644
--- a/5gc/C5G_Tests.ttcn
+++ b/5gc/C5G_Tests.ttcn
@@ -361,6 +361,24 @@
vc_conn.done;
}
+private function f_TC_pdu_sess_modification() runs on ConnHdlr {
+ f_register();
+ f_pdu_sess_establish(false);
+ f_sleep(1.0);
+ f_pdu_sess_modify();
+ f_pdu_sess_release();
+ f_deregister();
+}
+testcase TC_pdu_sess_modification() runs on MTC_CT {
+ f_init();
+ f_ngap_setup(0);
+
+ var ConnHdlrPars pars := f_init_pars(ue_idx := 0);
+ var ConnHdlr vc_conn;
+ vc_conn := f_start_handler_with_pars(refers(f_TC_pdu_sess_modification), pars);
+ vc_conn.done;
+}
+
private function f_TC_register_ping4() runs on ConnHdlr {
f_register();
f_pdu_sess_establish();
@@ -404,9 +422,22 @@
execute( TC_periodic_registration_updating() );
execute( TC_ue_context_release_no_pdu_session() );
execute( TC_ue_context_release_with_pdu_session() );
+ execute( TC_pdu_sess_modification() );
execute( TC_ng_register_ping4() );
execute( TC_ng_register_ping4_256() );
}
+/* TODO:
+ * - UE requested PDU Session Modification, 3GPP TS 23.502 4.3.3.2
+ * - Emergency call (PDU Sess Establish "Request Type"="Emergency
Request")
+ * - Handover from/to EPS vs 5GC
+ * - Handover from/to 3GPP vs non-3GPP (PDU Sess Establish "Request
Type"="Existing PDU Session" and RAT Type change)
+ * - PDU Session Type IPv6
+ * - PDU Session Type IPv4v6
+ * - VoLTE:
+ * -- " If the UE requested P-CSCF discovery then the message shall also include the
P-CSCF IP address(es) as determined by the SMF and as described in clause 5.16.3.4 of TS
23.50"
+ * - Fill in PCO during PDU Sess Establish Req.
+ * - "If the PDU Session being established was requested to be an always-on PDU
Session, the SMF shall indicate whether the request is accepted by including an Always-on
PDU Session Granted indication in the PDU Session Establishment Accept message"
+ */
}
diff --git a/5gc/ConnHdlr.ttcn b/5gc/ConnHdlr.ttcn
index ebac2ae..ebd446e 100644
--- a/5gc/ConnHdlr.ttcn
+++ b/5gc/ConnHdlr.ttcn
@@ -386,6 +386,29 @@
}
}
+/* 3GPP TS 24.501 8.3.7 PDU session modification request,
+ * 3GPP TS 23.502 4.3.3.2 UE requested PDU Session Modification */
+function f_pdu_sess_modify() runs on ConnHdlr {
+ var template (value) NG_NAS_UL_Message_Type nas_ul_msg;
+ var NAS_PDU nas_pdu;
+ var NG_NAS_DL_Message_Type rx_nas, inner_nas;
+ var ProcedureTransactionIdentifier pti := f_next_pti();
+ var OCT1 pdu_sess_id := int2oct(g_pars.ue_pars.sess_pars.id, 1);
+
+ /* 3GPP TS 24.501 Table 8.3.7.1. */
+ nas_ul_msg := cs_NG_PDU_SESSION_MODIFICATION_REQUEST(cs_NG_PDU_SessionIdV(pdu_sess_id),
pti,
+ p_IntegrityProtMaxDataRate := cs_IntegrityProtMaxDataRateV('FF'O,
'FF'O));
+ nas_pdu := enc_NG_NAS_UL_Message_Type(valueof(nas_ul_msg));
+ nas_ul_msg :=
cs_NG_UL_NAS_TRANSPORT(cs_PayloadContainerType(tsc_PayloadContainerESMMsg),
+ cs_PayloadContainerLV(nas_pdu),
+ p_PDU_SessionId := cs_NG_PDU_SessionIdTV(pdu_sess_id),
+ p_RequestType := cs_NG_Request_TypeTV('001'B),
+ p_DNN := cs_DNN_TLV(f_enc_dns_hostname(g_pars.ue_pars.apn)));
+ NGAP.send(nas_ul_msg);
+ f_sleep(5.0);
+ /* TODO: handle response */
+}
+
function f_register() runs on ConnHdlr {
var template (value) NGAP_PDU tx_pdu;
var template (value) NG_NAS_UL_Message_Type nas_ul_msg;
diff --git a/library/NG_NAS_Osmo_Templates.ttcn b/library/NG_NAS_Osmo_Templates.ttcn
index 4f8e8cc..d6660cb 100644
--- a/library/NG_NAS_Osmo_Templates.ttcn
+++ b/library/NG_NAS_Osmo_Templates.ttcn
@@ -656,6 +656,45 @@
}
}
+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,
+ template (omit) NG_UE_SM_Cap p_NG_UE_SM_Cap := omit,
+ template (omit) GMM_GSM_Cause p_Cause := omit,
+ template (omit) MaxNumPacketFilters p_MaxNumPacketFilters := omit,
+ template (omit) AlwaysOnPDUSessionReq p_AlwaysOnPDUSessionReq := omit,
+ template (omit) IntegrityProtMaxDataRate p_IntegrityProtMaxDataRate := omit,
+ template (omit) QoS_Rules p_QoS_Rules := omit,
+ template (omit) QoSFlowDescr p_QoSFlowDescr := omit,
+ template (omit) MappedEPSBearerContexts p_MappedEPSBearerContexts := omit,
+ template (omit) ExtdProtocolConfigOptions p_ExtdPCO := omit,
+ template (omit) PortManagementInfoContainer p_PortManagementInfoContainer :=
omit,
+ template (omit) IPHeaderCompressionConfig p_IPHeaderCompConfig := omit,
+ template (omit) EthernetHeaderCompressConfig p_EthernetHeaderCompConfig :=
omit,
+ template (omit) RequestedMBSContainer p_RequestedMBS := omit,
+ template (omit) ServiceLvlAAContainer p_ServiceLvlAA := omit) := {
+ pdu_Session_Modification_Request := {
+ 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_PDUSessionModificationRequest, /* cl. 9.7
M V 1 */
+ smCapability := p_NG_UE_SM_Cap, /* cl. 9.11.4.1 O
TLV 3-15 IEI=28 */
+ gsmCause := p_Cause, /* cl. 9.11.4.2 O
TV 2 IEI=59 */
+ maxNumPacketFilters := p_MaxNumPacketFilters, /* c. 9.11.4.9 O
TV 3 IEI=55 */
+ alwaysOnPDUSessionReq := p_AlwaysOnPDUSessionReq, /* c. 9.11.4.4 O
TV 1 IEI=B */
+ integrityProtMaxDataRate := p_IntegrityProtMaxDataRate, /* c. 9.11.4.7 O
TV 2 IEI=13 */
+ requestedQoSRules := p_QoS_Rules, /* cl. 9.11.4.13 O
TLV-E 7-65538 IEI=7A */
+ requestedQoSFlowDescr := p_QoSFlowDescr, /* cl. 9.11.4.12 O
TLV-E 5-65538 IEI=79 */
+ mappedEPSbearerContexts := p_MappedEPSBearerContexts, /* cl. 9.11.4.8 O
TLV-E 7-65538 IEI=7F Dec18 */
+ extdProtocolConfigurationOptions := p_ExtdPCO, /* cl. 9.11.4.6 O
TLV-E 4-65538 IEI=0x7B */
+ portManagementInfoContainer := p_PortManagementInfoContainer, /* cl. 9.11.4.27 O
TLV-E 8-65538 IEI=7C 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@ */
+ requestedMBS := p_RequestedMBS, /* cl. 9.11.4.30 O
TLV-E 8-65538 IEI=70 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@ */
+ }
+} // End of template m_NG_PDU_SESSION_MODIFICATION_REQUEST
+
/* 24.501 cl. 8.3.12 */
template (value) NG_NAS_UL_Message_Type
cs_NG_PDU_SESSION_RELEASE_REQUEST(template (value) NG_PDU_SessionId p_PDU_SessionId,
--
To view, visit
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40895?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Id9ac0f0e431c4a82dfab8675c93bf3c3f05442a7
Gerrit-Change-Number: 40895
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>