libosmocore/src
Sylvain Munaut 71fd42fede gsm/gsm48_ie: Fix Range 256 format decoding
From the mail:

---
appended is another patch for fixing a bug in the calculation of the
frequency lists. This time the patch is for the "Range 256 format".
The problem is that the operand for the "smod" operation might be
negative, in this case the simplified version won't work as expected.

In the patch I introduced a separate function for "smod" which takes
care of the sign. I have not yet checked if the other formats are also
affected, this would be the case if the "smod" operand can be negative.

There might be other solutions to fix the problem without the need
for a separate function, however I have not thought further about it.

A test vector is the following frequency list ("Range 256 format",
first byte is the length):

 09 8b 1c 83 8c 15 ef 02 2d 30

The correct ARFCNs are

 569 571 576 578 586 608 712 715 719

The uncorrected version would instead return:

 444 457 460 464 569 576 578 586 608

This means four ARFCNs are wrong which will cause problems if for
example the frequency list contains the ARFCNs for hopping.
----

Written-by: Dieter Spaar <spaar@mirider.augusta.de>
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-09-01 22:05:29 +02:00
..
codec libosmocore: bump library interface version to '1' for new osmo_ names 2011-05-08 14:35:40 +02:00
gsm gsm/gsm48_ie: Fix Range 256 format decoding 2011-09-01 22:05:29 +02:00
vty doxygen: Add main page for all three libraries 2011-08-30 11:32:56 +02:00
Makefile.am merge process.[ch] with application.[ch] 2011-06-26 14:14:05 +02:00
application.c doxygen: Add main page for all three libraries 2011-08-30 11:32:56 +02:00
backtrace.c some more doxygen work (include the notion of modules) 2011-08-17 17:14:11 +02:00
bits.c add functions for bit-reversal 2011-09-01 14:47:31 +02:00
bitvec.c some more doxygen work (include the notion of modules) 2011-08-17 17:14:11 +02:00
conv.c some more doxygen work (include the notion of modules) 2011-08-17 17:14:11 +02:00
crc16.c crc: use namespace prefix osmo_* 2011-05-07 13:00:51 +02:00
gsmtap_util.c doxygen: Add documentation for gsmtap_util.[ch] 2011-08-17 17:14:12 +02:00
logging.c logging: add osmo_vlogp() as vararg / va_list compatible function 2011-08-31 19:40:03 +02:00
logging_syslog.c doxygen documentation for logging framework 2011-08-17 17:14:12 +02:00
msgb.c some more doxygen work (include the notion of modules) 2011-08-17 17:14:11 +02:00
msgfile.c msgfile: use namespace prefix osmo_* and use more descriptive names 2011-05-07 13:14:41 +02:00
panic.c doxygen: document panic.[ch] 2011-08-17 17:14:12 +02:00
plugin.c plugin: use namespace prefix osmo_* 2011-05-07 13:00:52 +02:00
rate_ctr.c doxygen: Add docs for rate_ctr 2011-08-17 17:14:12 +02:00
select.c some more doxygen work (include the notion of modules) 2011-08-17 17:14:11 +02:00
signal.c doxygen: Add documentation to signal.[ch] 2011-08-17 17:14:12 +02:00
socket.c some more doxygen work (include the notion of modules) 2011-08-17 17:14:11 +02:00
statistics.c statistics: use namespace prefix osmo_counter* 2011-05-07 13:00:51 +02:00
talloc.c misc: Remove the sys/types.h include from various files 2011-04-18 16:57:04 +02:00
timer.c some more doxygen work (include the notion of modules) 2011-08-17 17:14:11 +02:00
utils.c doxygen: add doxygen module 'utils' 2011-08-17 17:14:12 +02:00
write_queue.c doxygen: Add 'write_queue' module 2011-08-17 17:14:12 +02:00