diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2024-02-05 21:05:17 +0100 |
---|---|---|
committer | pespin <pespin@sysmocom.de> | 2024-02-07 16:36:35 +0000 |
commit | 14abac530210b5fb28fc17f704e19214a1b73ae2 (patch) | |
tree | cf75971d902ccbfdbb47696c29449bd7269f579d /library | |
parent | cbe6eba2696183472a30450082beedbe0695039f (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.ttcn | 87 |
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 := ?, |