pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/35932?usp=email )
Change subject: epdg: Fix UsernMame being NAI instead of IMSI in S6b AAR ......................................................................
epdg: Fix UsernMame being NAI instead of IMSI in S6b AAR
Change-Id: Ifa5b262db40b649c6dfe7b5ac43098208b3e8300 --- M epdg/EPDG_Tests.ttcn M library/DIAMETER_ts29_273_Templates.ttcn 2 files changed, 18 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/32/35932/1
diff --git a/epdg/EPDG_Tests.ttcn b/epdg/EPDG_Tests.ttcn index a7c9509..e104cdc 100644 --- a/epdg/EPDG_Tests.ttcn +++ b/epdg/EPDG_Tests.ttcn @@ -37,6 +37,8 @@ integer mp_s6b_local_port := 3869; charstring mp_s6b_remote_ip := "127.0.0.1"; integer mp_s6b_remote_port := 3869; + /* 3GPP TS 23.003 clause 19: "nai.epc.mnc<MNC>.mcc<MCC>.3gppnetwork.org" */ + charstring mp_s6b_nai_realm := "nai.epc.mnc001.mcc01.3gppnetwork.org";
/* our emulated PGW (GTPv2C S2b) */ charstring mp_s2b_local_ip := "127.0.0.100"; @@ -332,6 +334,10 @@ return vc_conn; }
+private function f_nai() runs on EPDG_ConnHdlr return charstring { + return hex2str(g_pars.imsi) & "@" & mp_s6b_nai_realm; +} + /* Diameter SWx MAR + MAA. */ private altstep as_DIA_SWx_MA_success() runs on EPDG_ConnHdlr { var PDU_DIAMETER rx_dia; @@ -390,7 +396,7 @@ */ f_epdg_connhldr_S6b_expect_eteid(ete_id);
- S6b.send(ts_DIA_S6b_AAR(g_pars.imsi, + S6b.send(ts_DIA_S6b_AAR(f_nai(), int2oct(DIA_TS29_373_MIP6_Feature_Vector_GTPv2_SUPPORTED, 8), g_pars.apn, hbh_id := hbh_id, ete_id := ete_id));
diff --git a/library/DIAMETER_ts29_273_Templates.ttcn b/library/DIAMETER_ts29_273_Templates.ttcn index 71f6cfc..e3a6c2f 100644 --- a/library/DIAMETER_ts29_273_Templates.ttcn +++ b/library/DIAMETER_ts29_273_Templates.ttcn @@ -205,7 +205,7 @@
/* TS 29.273 9.2.2.5.1 AA-Request (AAR) */ template (value) PDU_DIAMETER -ts_DIA_S6b_AAR(template (value) hexstring imsi, +ts_DIA_S6b_AAR(template (value) charstring username_nai, template (value) MIPv6_NONE_MIP6_Feature_Vector mip6_feat_vec, template (value) charstring apn, template (value) octetstring sess_id := c_def_sess_id, @@ -227,7 +227,7 @@ ts_AVP_OriginRealm(orig_realm), ts_AVP_DestinationRealm(dest_realm), ts_AVP_AuthRequestType(AUTHORIZE_ONLY), - ts_AVP_UserNameImsi(valueof(imsi)), + ts_AVP_UserName(char2oct(valueof(username_nai))), ts_AVP_MIP6FeatureVector(mip6_feat_vec), ts_AVP_ServiceSelection(valueof(apn)) /* TODO: Lots other optional */