aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2024-02-07 17:51:55 +0100
committerPau Espin Pedrol <pespin@sysmocom.de>2024-02-07 17:53:24 +0100
commitc2cfd550dbcac8ff5a8b0109ef96c659aa32e44c (patch)
tree9274e69e03a3ada283ec47315f07bf40d1a51d6e
parent14abac530210b5fb28fc17f704e19214a1b73ae2 (diff)
epdg: Add PDP-Info IE to GSUP Auth Info Req
Strongswan already has this information during first IKE_AUTH message, see 3GPP TS 24.302 7.2.2.1. Change-Id: I42e4dc4bbcef969aae5867dbb103f8a5db157c89
-rw-r--r--epdg/EPDG_Tests.ttcn19
-rwxr-xr-xepdg/gen_links.sh1
-rw-r--r--library/GSUP_Templates.ttcn6
3 files changed, 19 insertions, 7 deletions
diff --git a/epdg/EPDG_Tests.ttcn b/epdg/EPDG_Tests.ttcn
index 14bb0604..aceedd48 100644
--- a/epdg/EPDG_Tests.ttcn
+++ b/epdg/EPDG_Tests.ttcn
@@ -5,6 +5,7 @@ import from General_Types all;
import from Native_Functions all;
import from Osmocom_Types all;
import from L3_Common all;
+import from DNS_Helpers all;
import from IPA_Emulation all;
import from GSUP_Types all;
@@ -552,13 +553,17 @@ private function f_GTP2C_DeleteBearer_success() runs on EPDG_ConnHdlr {
/* GSUP AuthInfo Req + Resp, triggers SWx MAR + MAA. */
private function f_GSUP_AI_success() runs on EPDG_ConnHdlr {
var GSUP_PDU rx_gsup;
- var template (present) GSUP_IE auth_tuple_ie := tr_GSUP_IE_AuthTuple3G(g_pars.vec.rand,
- g_pars.vec.ik,
- g_pars.vec.ck,
- g_pars.vec.autn,
- g_pars.vec.rand & g_pars.vec.auts);
-
- GSUP.send(ts_GSUP_SAI_REQ(g_pars.imsi));
+ var template (present) GSUP_IE auth_tuple_ie;
+ var template (value) GSUP_IEs pdp_info;
+ auth_tuple_ie := tr_GSUP_IE_AuthTuple3G(g_pars.vec.rand,
+ g_pars.vec.ik,
+ g_pars.vec.ck,
+ g_pars.vec.autn,
+ g_pars.vec.rand & g_pars.vec.auts);
+ pdp_info := { ts_GSUP_IE_PDP_CONTEXT_ID('00'O),
+ ts_GSUP_IE_PDP_ADDRESS(ts_EuaIPv4Dyn),
+ ts_GSUP_IE_APN(f_enc_dns_hostname(g_pars.apn)) };
+ GSUP.send(ts_GSUP_SAI_REQ_PDP_INFO(g_pars.imsi, pdp_info));
as_DIA_SWx_MA_success();
/* Expect a positive response back to the translator; expect AIA */
alt {
diff --git a/epdg/gen_links.sh b/epdg/gen_links.sh
index 82a0785a..c8eadc89 100755
--- a/epdg/gen_links.sh
+++ b/epdg/gen_links.sh
@@ -41,6 +41,7 @@ DIR=../library
FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn Osmocom_Types.ttcn Native_Functions.ttcn Native_FunctionDefs.cc "
FILES+="Osmocom_CTRL_Types.ttcn "
FILES+="L3_Common.ttcn "
+FILES+="DNS_Helpers.ttcn "
FILES+="DIAMETER_Types.ttcn DIAMETER_CodecPort.ttcn DIAMETER_CodecPort_CtrlFunct.ttcn DIAMETER_CodecPort_CtrlFunctDef.cc DIAMETER_Emulation.ttcn "
FILES+="DIAMETER_Templates.ttcn DIAMETER_rfc5447_Templates.ttcn DIAMETER_ts29_273_Templates.ttcn "
FILES+="IPA_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc
diff --git a/library/GSUP_Templates.ttcn b/library/GSUP_Templates.ttcn
index 3a616a6b..05b8295a 100644
--- a/library/GSUP_Templates.ttcn
+++ b/library/GSUP_Templates.ttcn
@@ -324,6 +324,12 @@ template (value) GSUP_PDU ts_GSUP_SAI_REQ_NUM_AUTH(hexstring imsi, OCT1 num_auth
valueof(ts_GSUP_IE_NUM_VECTORS_REQ(num_auth_vectors))
});
+template (value) GSUP_PDU ts_GSUP_SAI_REQ_PDP_INFO(hexstring imsi, template (value) GSUP_IEs pdp_info) :=
+ ts_GSUP(OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST, {
+ valueof(ts_GSUP_IE_IMSI(imsi)),
+ valueof(ts_GSUP_IE_PdpInfo_ie(pdp_info))
+ });
+
template GSUP_PDU tr_GSUP_SAI_REQ(template hexstring imsi) :=
tr_GSUP_IMSI(OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST, imsi);