From c7dddbd7d03c06af8c6879771305226e1d92d84b Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Thu, 11 Apr 2019 19:18:35 +0200 Subject: [PATCH] Ensure BcdMccMnc is encoded as 24.008 10.5.5.15 PCU is using BcdMccMnc as it's encoded as 24.008. But SGSN code is using it as it would be byte by byte sorted. Fixes: OS#3878 Change-Id: Ie8f67f16f18e4c5090bc5a4c46a866a7e7e00206 --- library/L3_Common.ttcn | 4 ++-- library/Osmocom_Gb_Types.ttcn | 2 +- sgsn/SGSN_Tests.ttcn | 10 ++++++---- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/library/L3_Common.ttcn b/library/L3_Common.ttcn index 57db6b316..01f0a34bb 100644 --- a/library/L3_Common.ttcn +++ b/library/L3_Common.ttcn @@ -106,9 +106,9 @@ function f_RAI_to_plmn_hexstr(RoutingAreaIdentificationV rai) return hexstring { rai.mccDigit1 & rai.mccDigit2 & rai.mccDigit3 + & rai.mncDigit3 & rai.mncDigit1 - & rai.mncDigit2 - & rai.mncDigit3; + & rai.mncDigit2; return plmn; } diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 95d302877..55a2816f7 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -868,8 +868,8 @@ octetstring sdu) := { ret.mccDigit2 := cid.ra_id.lai.mcc_mnc[1]; ret.mccDigit3 := cid.ra_id.lai.mcc_mnc[2]; ret.mncDigit3 := cid.ra_id.lai.mcc_mnc[3]; - ret.mncDigit2 := cid.ra_id.lai.mcc_mnc[5]; ret.mncDigit1 := cid.ra_id.lai.mcc_mnc[4]; + ret.mncDigit2 := cid.ra_id.lai.mcc_mnc[5]; } if (isvalue(cid.ra_id.lai.lac)) { ret.lac := f_oct_or_wc(cid.ra_id.lai.lac, 2); diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 8b639e65b..74cdece38 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -137,15 +137,16 @@ type record BSSGP_ConnHdlrPars { }; private function f_cellid_to_RAI(in BssgpCellId cell_id) return RoutingAreaIdentificationV { + /* mcc_mnc is encoded as of 24.008 10.5.5.15 */ var BcdMccMnc mcc_mnc := cell_id.ra_id.lai.mcc_mnc; var RoutingAreaIdentificationV ret := { mccDigit1 := mcc_mnc[0], mccDigit2 := mcc_mnc[1], mccDigit3 := mcc_mnc[2], - mncDigit3 := mcc_mnc[5], - mncDigit1 := mcc_mnc[3], - mncDigit2 := mcc_mnc[4], + mncDigit3 := mcc_mnc[3], + mncDigit1 := mcc_mnc[4], + mncDigit2 := mcc_mnc[5], lac := int2oct(cell_id.ra_id.lai.lac, 16), rac := int2oct(cell_id.ra_id.rac, 8) } @@ -225,7 +226,8 @@ private function f_vty_enable_echo_interval(boolean enable) runs on test_CT { } -function f_init(BcdMccMnc mcc_mnc := '26242F'H) runs on test_CT { +/* mcc_mnc is 24.008 10.5.5.15 encoded. 262 42 */ +function f_init(BcdMccMnc mcc_mnc := '262F42'H) runs on test_CT { if (g_initialized == true) { return; }