aboutsummaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2024-02-05 21:05:17 +0100
committerpespin <pespin@sysmocom.de>2024-02-07 16:36:35 +0000
commit14abac530210b5fb28fc17f704e19214a1b73ae2 (patch)
treecf75971d902ccbfdbb47696c29449bd7269f579d /library
parentcbe6eba2696183472a30450082beedbe0695039f (diff)
epdg: Introduce test TC_ho_lte_to_wifi
This test emulates a UE doing handover to ePDG, when it may create extra dedicated bearers. Change-Id: Ibdfeda1fa5d7016b1952d64b306cd501cb33f61b
Diffstat (limited to 'library')
-rw-r--r--library/GTPv2_Templates.ttcn87
1 files changed, 66 insertions, 21 deletions
diff --git a/library/GTPv2_Templates.ttcn b/library/GTPv2_Templates.ttcn
index afe01384..9f242eec 100644
--- a/library/GTPv2_Templates.ttcn
+++ b/library/GTPv2_Templates.ttcn
@@ -671,6 +671,13 @@ ts_GTP2C_ProcTransId(template (value) integer pti) := {
pTI_Value := pti,
additionalOctets := omit
}
+private function f_ts_GTP2C_ProcTransId_omit(template (omit) integer pti)
+return template (omit) ProcedureTransactionID {
+ if (istemplatekind(pti, "omit")) {
+ return omit;
+ }
+ return ts_GTP2C_ProcTransId(pti);
+}
template (present) ProcedureTransactionID
tr_GTP2C_ProcTransId(template (present) integer pti) := {
elementIdentifier := '64'O,
@@ -725,7 +732,35 @@ tr_GTP2C_SelectionMode(template (present) integer mode) := {
additionalOctets := *
}
-
+/* 8.62 Fully qualified PDN Connection Set Identifier (FQ-CSID) */
+template (value) NodeID ts_GTP2C_FQCSID_NodeID_IPv4(template (value) OCT4 addr) := {
+ globalUnicastIPv4 := addr
+}
+template (value) FullyQualifiedPDN_ConnectionSetID
+ts_GTP2C_FQCSID(template (value) integer nRofCSIDs,
+ template (value) integer nodeIDType,
+ template (value) NodeID nodeID,
+ template (value) PDN_CSID_List pDN_CSID_List,
+ template (value) uint4_t instance := 0) := {
+ elementIdentifier := '84'O,
+ lengthIndicator := 0, /* overwritten */
+ instance := int2bit(valueof(instance), 4),
+ spare := '0000'B,
+ nRofCSIDs := nRofCSIDs,
+ nodeIDType := nodeIDType,
+ nodeID := nodeID,
+ pDN_CSID_List := pDN_CSID_List,
+ additionalOctets := omit
+}
+template (value) FullyQualifiedPDN_ConnectionSetID
+ts_GTP2C_FQCSID_IPv4(template (value) OCT4 addr,
+ template (value) OCT2 csid,
+ template (value) uint4_t instance := 0) :=
+ts_GTP2C_FQCSID(nRofCSIDs := 1,
+ nodeIDType := 0,
+ nodeID := ts_GTP2C_FQCSID_NodeID_IPv4(addr),
+ pDN_CSID_List := {csid},
+ instance := instance);
template (value) PDU_GTPCv2 ts_PDU_GTP2C(template (omit) OCT4 teid, template (value) OCT3 seq,
@@ -1068,33 +1103,19 @@ tr_PDU_GTP2C(d_teid, seq, {
template (value) PDU_GTPCv2
ts_GTP2C_CreateBearerReq(template (value) OCT4 d_teid,
- template (value) integer proc_trans_id,
+ template (omit) integer proc_trans_id,
template (value) uint4_t linked_id,
template (value) uint4_t bearer_id,
- template (omit) FullyQualifiedTEID_List teid_list,
+ template (value) BearerContextGrouped_List bearer_ctx_list,
+ template (omit) FullyQualifiedPDN_ConnectionSetID_List csid := omit,
template (value) Bearer_QoS qos := ts_GTP2C_BearerQos('09'O, 0,0,0,0)) :=
ts_PDU_GTP2C(d_teid, '000000'O, '5F'O, {
createBearerRequest := {
- procedureTransactionID := ts_GTP2C_ProcTransId(proc_trans_id),
+ procedureTransactionID := f_ts_GTP2C_ProcTransId_omit(proc_trans_id),
linkedEPS_BearerID := ts_GTP2C_EpsBearerId(linked_id),
protocolConfigOptions := omit,
- bearerContextGrouped := {
- ts_GTP2C_BcGrouped({
- ePS_Bearer_ID := ts_GTP2C_EpsBearerId(bearer_id),
- cause := omit,
- ePS_Bearer_TFT := omit,
- fullyQualifiedTEID := teid_list,
- bearerLevel_QoS := qos,
- chargingID := omit,
- bearerFlags := omit,
- transactionIdentifier := omit,
- protocolConfigOptions := omit,
- rAN_NASCause := omit,
- additionalProtocolConfigOptions := omit,
- extendedProtocolConfigOptions := omit
- })
- },
- csid := omit,
+ bearerContextGrouped := bearer_ctx_list,
+ csid := csid,
changeReportingAction := omit,
cSG_InformationReportingAction := omit,
heNBInformationReporting := omit,
@@ -1105,6 +1126,30 @@ ts_PDU_GTP2C(d_teid, '000000'O, '5F'O, {
nBIFOMContainer := omit,
privateExtension := omit
}});
+template (present) PDU_GTPCv2
+tr_GTP2C_CreateBearerResp(template (present) OCT4 d_teid,
+ template (present) OCT3 seq := ?,
+ template (present) GTP2C_Cause cause := ?
+ ) :=
+tr_PDU_GTP2C(d_teid, seq, {
+ createBearerResponse := {
+ cause := tr_GTP2C_Cause(cause),
+ bearerContextGrouped := *,
+ recovery := *,
+ csid := *,
+ protocolConfigOptions := *,
+ uE_TimeZone := *,
+ uLI := *,
+ trustedWLANAccessNetworkIdentifier := *,
+ overloadControlInformationGrouped := *,
+ presenceReportingAreaInformation := *,
+ iP_Addr := *,
+ wLANLocationTimestamp := *,
+ portNumber := *,
+ nBIFOMContainer := *,
+ extendedProtocolConfigOptions := *,
+ privateExtension:= *
+ }});
template (present) PDU_GTPCv2
tr_GTP2C_ModifyBearerReq(template (present) OCT4 d_teid := ?,