diff options
author | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2013-12-12 17:00:57 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2013-12-12 17:00:57 +0100 |
commit | 27a788ddb95b6bf4e2f343eed1070f6116515e99 (patch) | |
tree | d713195306611a4fc591d2d6af455580e60ed0a8 | |
parent | e18209c975a3f5efcf40178845d1865f0afc67fe (diff) |
si: Make sure to not overwrite orig_arfcn_hi in the range encoding
Andreas highlighted that the doubel assignment is not needed and
wrong. Change the code to assign chan_list[0] before writing the
base frequency to the header. Update the testcase to make the highest
bit set and update the test result.
-rw-r--r-- | openbsc/src/libbsc/arfcn_range_encode.c | 2 | ||||
-rw-r--r-- | openbsc/tests/si/si_test.c | 2 | ||||
-rw-r--r-- | openbsc/tests/si/si_test.ok | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/openbsc/src/libbsc/arfcn_range_encode.c b/openbsc/src/libbsc/arfcn_range_encode.c index 02a75a53c..c52743e0d 100644 --- a/openbsc/src/libbsc/arfcn_range_encode.c +++ b/openbsc/src/libbsc/arfcn_range_encode.c @@ -210,10 +210,10 @@ int range_enc_range256(uint8_t *chan_list, int f0, int *w) int range_enc_range512(uint8_t *chan_list, int f0, int *w) { struct gsm48_range_512 *range512; + chan_list[0] = 0x88; write_orig_arfcn(chan_list, f0); range512 = (struct gsm48_range_512 *) &chan_list[0]; - range512->form_id = chan_list[0] = 0x44; /* W(1) */ range512->w1_hi = HIGH_BITS(w, 1, 9, 7); diff --git a/openbsc/tests/si/si_test.c b/openbsc/tests/si/si_test.c index 16f6ea39d..fd840f301 100644 --- a/openbsc/tests/si/si_test.c +++ b/openbsc/tests/si/si_test.c @@ -103,7 +103,7 @@ static void test_print_encoding() break; } - rc = range_enc_range512(chan_list, 0x96, w); + rc = range_enc_range512(chan_list, (1 << 9) | 0x96, w); VERIFY(rc, ==, 0); printf("Range512: %s\n", osmo_hexdump(chan_list, ARRAY_SIZE(chan_list))); diff --git a/openbsc/tests/si/si_test.ok b/openbsc/tests/si/si_test.ok index 6c4b028b0..6a3ee513c 100644 --- a/openbsc/tests/si/si_test.ok +++ b/openbsc/tests/si/si_test.ok @@ -17,4 +17,4 @@ w[12]=54 w[13]=64 w[14]=70 w[15]=9 -Range512: 88 4b 2a 95 65 95 55 2c a9 55 aa 55 6a 95 59 55 +Range512: 89 4b 2a 95 65 95 55 2c a9 55 aa 55 6a 95 59 55 |