diff options
author | Alexander Couzens <lynxis@fe80.eu> | 2019-04-11 19:18:35 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2019-04-12 15:10:24 +0000 |
commit | c7dddbd7d03c06af8c6879771305226e1d92d84b (patch) | |
tree | a067f4a09cd78d2a8970a72ca76a4eb34e85c338 | |
parent | 1623774b6860a51c43cb977261fe96dfac76a724 (diff) |
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
-rw-r--r-- | library/L3_Common.ttcn | 4 | ||||
-rw-r--r-- | library/Osmocom_Gb_Types.ttcn | 2 | ||||
-rw-r--r-- | 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 57db6b31..01f0a34b 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 95d30287..55a2816f 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 8b639e65..74cdece3 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; } |