diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-03-23 01:47:37 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-03-23 12:47:05 +0000 |
commit | 8b8cd938173b2c1ef1f836a613691bd9e6789b76 (patch) | |
tree | 486bbce79b9c15b690862504bc5893d0e2524e1d | |
parent | c44fc23feecc58ef3041f317dee0e5297e3c4571 (diff) |
fix gsm0808_enc_cell_id_list2 for leading-zero MNC
Use non-deprecated API to decode encode in gsm0808_enc_cell_id_list2().
Adjust gsm0808_test.c to now expect the correct results instead of previous
failure.
Change-Id: I1ce78883995e0d484368046b69db5afb2b4adc97
-rw-r--r-- | src/gsm/gsm0808_utils.c | 4 | ||||
-rw-r--r-- | tests/gsm0808/gsm0808_test.c | 5 |
2 files changed, 3 insertions, 6 deletions
diff --git a/src/gsm/gsm0808_utils.c b/src/gsm/gsm0808_utils.c index 776f091d..e4872b87 100644 --- a/src/gsm/gsm0808_utils.c +++ b/src/gsm/gsm0808_utils.c @@ -595,7 +595,7 @@ uint8_t gsm0808_enc_cell_id_list2(struct msgb *msg, for (i = 0; i < cil->id_list_len; i++) { const struct osmo_cell_global_id *id = &cil->id_list[i].global; struct gsm48_loc_area_id lai; - gsm48_generate_lai(&lai, id->lai.plmn.mcc, id->lai.plmn.mnc, id->lai.lac); + gsm48_generate_lai2(&lai, &id->lai); memcpy(msgb_put(msg, sizeof(lai)), &lai, sizeof(lai)); msgb_put_u16(msg, id->cell_identity); } @@ -615,7 +615,7 @@ uint8_t gsm0808_enc_cell_id_list2(struct msgb *msg, for (i = 0; i < cil->id_list_len; i++) { const struct osmo_location_area_id *id = &cil->id_list[i].lai_and_lac; struct gsm48_loc_area_id lai; - gsm48_generate_lai(&lai, id->plmn.mcc, id->plmn.mnc, id->lac); + gsm48_generate_lai2(&lai, id); memcpy(msgb_put(msg, sizeof(lai)), &lai, sizeof(lai)); } break; diff --git a/tests/gsm0808/gsm0808_test.c b/tests/gsm0808/gsm0808_test.c index f6a7bc43..4bf61e78 100644 --- a/tests/gsm0808/gsm0808_test.c +++ b/tests/gsm0808/gsm0808_test.c @@ -1003,8 +1003,7 @@ static void test_gsm0808_enc_dec_cell_id_list_multi_global() uint8_t cil_enc_expected[] = { GSM0808_IE_CELL_IDENTIFIER_LIST, 0x16, 0x00, 0x21, 0x63, 0x54, 0x23, 0x42, 0x00, 0x1, 0x21, 0xf4, 0x75, 0x24, 0x43, 0x00, 0x2, - 0x21, 0xf5, 0x70, 0x25, 0x44, 0x00, 0x77 - /* ERROR! This ^^^^^^^^ should be 0x75, 0x00, i.e. a 3-digit MNC with leading zeros! */ + 0x21, 0x75, 0x00, 0x25, 0x44, 0x00, 0x77 }; uint8_t rc_enc; int rc_dec, i; @@ -1057,9 +1056,7 @@ static void test_gsm0808_enc_dec_cell_id_list_multi_global() struct osmo_cell_global_id *dec_id; enc_id = &enc_cil.id_list[i].global; dec_id = &dec_cil.id_list[i].global; - /* ERROR: the decoded PLMN will mismatch, because the leading zero was not preserved: OSMO_ASSERT(osmo_plmn_cmp(&enc_id->lai.plmn, &dec_id->lai.plmn) == 0); - */ OSMO_ASSERT(enc_id->lai.lac == dec_id->lai.lac); OSMO_ASSERT(enc_id->cell_identity == dec_id->cell_identity); } |