This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.
Jacob Erlbeck jerlbeck at sysmocom.deThis patch fixes a bug in the range encoder that leads to wrong encoding when 17 or more ARFCNs are encoded. Sponsored-by: On-Waves ehf --- openbsc/src/libbsc/arfcn_range_encode.c | 2 +- openbsc/tests/gsm0408/gsm0408_test.ok | 11 ++--------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/openbsc/src/libbsc/arfcn_range_encode.c b/openbsc/src/libbsc/arfcn_range_encode.c index c52743e..9177546 100644 --- a/openbsc/src/libbsc/arfcn_range_encode.c +++ b/openbsc/src/libbsc/arfcn_range_encode.c @@ -256,7 +256,7 @@ int range_enc_range512(uint8_t *chan_list, int f0, int *w) range512->w15 = HIGH_BITS(w, 15, 6, 6); /* W(16) */ range512->w16_hi = HIGH_BITS(w, 16, 5, 2); - range512->w16_lo = HIGH_BITS(w, 16, 5, 3); + range512->w16_lo = LOW_BITS(w, 16, 5, 3); /* W(17) */ range512->w17 = HIGH_BITS(w, 17, 5, 5); diff --git a/openbsc/tests/gsm0408/gsm0408_test.ok b/openbsc/tests/gsm0408/gsm0408_test.ok index 5458669..dab495d 100644 --- a/openbsc/tests/gsm0408/gsm0408_test.ok +++ b/openbsc/tests/gsm0408/gsm0408_test.ok @@ -35,10 +35,9 @@ chan_list = 88 00 82 7f 01 7f 7e 04 0b ff ff fc 10 41 07 ff Decoded freqs 18 (expected 18) Decoded: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Range test 3: range 511, num ARFCNs 18 -chan_list = 88 00 94 3a 44 32 d7 2a 43 2a 13 94 e5 38 39 76 +chan_list = 88 00 94 3a 44 32 d7 2a 43 2a 13 94 e5 38 39 f6 Decoded freqs 18 (expected 18) -Decoded: 1 17 31 45 58 79 81 97 113 127 213 277 287 311 331 391 417 507 (!= 511) -Decoding error, got wrong freqs +Decoded: 1 17 31 45 58 79 81 97 113 127 213 277 287 311 331 391 417 511 Range test 4: range 511, num ARFCNs 6 chan_list = 88 00 8b 3c 88 b9 6b 00 00 00 00 00 00 00 00 00 Decoded freqs 6 (expected 6) @@ -60,12 +59,6 @@ Cannot encode range, rc = -1 Failed on test 0, range 255, num ARFCNs 1 Cannot encode range, rc = -1 Random range test: range 511, max num ARFCNs 18 -Decoding error, got wrong freqs -Failed on test 0, range 511, num ARFCNs 17 -chan_list = 88 21 55 fc da d7 76 03 31 2f ed 45 dc 93 d6 80 -Decoded freqs 17 (expected 17) -Decoded: 66 81 161 250 314 343 383 (!= 380) 395 396 397 409 429 505 506 516 518 545 -Decoding error, got wrong freqs Random range test: range 1023, max num ARFCNs 16 Cannot encode range, rc = -1 Failed on test 0, range 1023, num ARFCNs 1 -- 1.7.9.5