Bug in range 512 encoding

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/.

Andreas Eversberg andreas at eversberg.eu
Sun Dec 8 18:57:44 UTC 2013


Holger Hans Peter Freyther wrote:
> What about the below snippet. Does it work for you? It matches what the
> other (not implemented) routines do. Which ARFCN list did you encode? In
> our tests we probably never had orig_arfcn_hi:1 set.
>
> diff --git a/openbsc/src/libbsc/arfcn_range_encode.c b/openbsc/src/libbsc/arfcn_range_encode.c
> index 02a75a5..5a2345e 100644
> --- a/openbsc/src/libbsc/arfcn_range_encode.c
> +++ b/openbsc/src/libbsc/arfcn_range_encode.c
> @@ -210,10 +210,11 @@ 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] = 0x44;
>          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);
"range512->form_id" points to the upper 7 bits of chan_list[0]. when you 
do that, you would write 0x44 to chan_list[0] instead of the required 
0x88. use "chan_list[0] = 0x88" instead.




More information about the OpenBSC mailing list