Commit Graph

533 Commits

Author SHA1 Message Date
Holger Hans Peter Freyther 9b037a6a7a lapd: Remove the double NULL check idiom with msgb_free
if (ptr)
  msgb_free(ptr)

extends to:

if (ptr)
  talloc_free(ptr)

And according to the talloc documentation a talloc_free(NULL)
will not crash: "... Likewise, if "ptr" is NULL, then the function
will make no modifications and returns -1."
2013-08-09 17:48:24 +02:00
Holger Hans Peter Freyther f136013f0d gsm: The LAPDm prim/structs changed, increment current version 2013-08-09 17:41:34 +02:00
Andreas Eversberg 9597555a36 Add special 7-bit encoding and decoding functions for USSD coding
Handling 7-bit coding is a little different for USSD, as TS 03.38
states:

To avoid the situation where the receiving entity confuses 7 binary
zero pad bits as the @ character, the carriage return or <CR>
character shall be used for padding in this situation [...].

If <CR> is intended to be the last character and the message
(including the wanted <CR>) ends on an octet boundary, then another
<CR> must be added together with a padding bit 0. The receiving entity
will perform the carriage return function twice, but this will not
result in misoperation as the definition of <CR> [...] is identical to
the definition of <CR><CR>.

The receiving entity shall remove the final <CR> character where the
message ends on an octet boundary with <CR> as the last character.

Jacob has verified the fix with fakeBTS and the wireshark dissector.

Fixes: OW#947
Reviewed-by: Jacob Erlbeck <jerlbeck@sysmocom.de>
2013-08-08 14:27:13 +02:00
Holger Hans Peter Freyther 6bfa7445fc encoding: Provide an overload for the gsm_7bit_encode and a simple test
This is required for encoding the SMS header using the alpha numeric
rules.

Reviewed-by: Jacob Erlbeck <jerlbeck@sysmocom.de>
2013-08-08 14:25:09 +02:00
Jacob Erlbeck cd195fa267 vty: Support multi-char separators and end strings
In vty_cmd_string_from_valstr() include the real string lengths of
the sep and end arguments into the buffer size calculation.
2013-08-06 14:56:35 +02:00
Jacob Erlbeck ae15a2cac1 vty: Fix misusage of snprintf in vty/utils.c
Compiled with ubuntu 1204 (precise), where -Wformat-security is enabled by
-Wall.

Test yields ok, but the current implementation doesn't properly support
multi-character separators and end strings. So the test output is truncated.

Addresses:
utils.c: In function 'vty_cmd_string_from_valstr':
utils.c:84:2: warning: format not a string literal and no format arguments [-Wformat-security]
utils.c:84:2: warning: format not a string literal and no format arguments [-Wformat-security]
utils.c:108:2: warning: format not a string literal and no format arguments [-Wformat-security]
utils.c:108:2: warning: format not a string literal and no format arguments [-Wformat-security]
2013-08-06 14:56:30 +02:00
Holger Hans Peter Freyther 6a75d16c6d vty: Fix logically dead code in the description handling
The code most likely wanted to check the result of argv_concat.
To do this we need to dereference the dptr.

Logically dead code (DEADCODE)
dead_error_line: Execution cannot reach this statement "return 1;

Fixes: Coverity CID 1040675
2013-07-14 09:14:37 +02:00
Dmitri Soloviev 2909942a9f gsm0808.c: Add TLV definition for LAYER3_HEADER_INFORMATION
This is required for osmo-bsc to parse Alcatel S-12 CIPHER MODE COMMAND
in osmo-bsc.
2013-07-11 09:25:37 +02:00
Andreas Eversberg cad54b8fb7 LAPD: Free resume/re-establishment msgb if it carries no content
lapdm.c takes the re-establishment message and forwards it to lapd_core.c,
so we can assume that msgb is set at primitive. In case there is data in
the re-establishment msg, it is moved into send_buffer. In case of no
data (0 length), it must be freed.

Fixes an issue spotted by Coverity Scan.
2013-07-10 20:30:56 +02:00
Holger Hans Peter Freyther 47aa482bb0 gsm: Revert the gsm_7bit_encode changes as they are wrong
This reverts commit f996b05dbd
and 2b0cac4ef8. A detailed
explanation can be found here:

  http://lists.osmocom.org/pipermail/openbsc/2013-July/004737.html

The short description is that:

1.) The API should return (as out parameter) the number of
    octets used.
2.) The handling for the <CR> encoding only applies to USSD
    and it is incomplete. On top of that it broke the SMS test.
2013-07-07 13:59:16 +02:00
Andreas Eversberg 2b0cac4ef8 Fix: Handle returned length by gsm_7bit_encode correctly 2013-07-06 23:36:16 +02:00
Andreas Eversberg f996b05dbd Fix encoding of last character at 7bit encoding function
To avoid the situation where the receiving entity confuses 7 binary zero pad
bits as the @ character, the carriage return or <CR> character shall be used
for padding in this situation.
2013-07-06 23:36:16 +02:00
Holger Hans Peter Freyther c62a1bf4d5 libosmogb: Add function to close NS instance without destroying it 2013-07-06 23:36:16 +02:00
Andreas Eversberg 5977db0faf LAPDm: Allow sending unit data on DCCH
It is used to transfer PHYSICAL INFORMATION message to the MS.
2013-07-06 23:36:16 +02:00
Andreas Eversberg ccc463355d LAPDm: Fix re-establishment of datalink
If the datalink fails or if handover or assignment to a new channel fails,
it is re-establised by sending SABM again. The length of establish message
is 0 in this case. The length is used to differentiate between
re-establishment and contention resolution, which has to be handled
differently.

See TS 04.06 Chapter 5.4.2.1
2013-07-06 23:36:15 +02:00
Holger Hans Peter Freyther 8d50600d7d get_value_string: Null terminate after the call to snprintf
It is impossible that the snprintf will fill the entire namebuf
but just follow the idiom to make sure it is null terminated.

Related: Coverity CID 1040676
2013-07-04 20:14:10 +02:00
Holger Hans Peter Freyther 047213b01e vty: Attempt to fix various meam leaks in the VTY lookup code
These routines were not freeing vectors used for the lookup. On
review it is fixing another path not detected by coverity.

The danger is a double free in tab completion now. It is difficult
to test this.

Fixes: Coverity CID 23037, CID 23038
2013-07-03 10:00:06 +02:00
Holger Hans Peter Freyther cd252e3565 gsm0408: Avoid unaligned memory access in gsm48_generate_mid_from_tmsi
The &buf[3] is unlikely to be aligned properly. Use memcpy instead
of an assignment. Add a small testcase that verifies that I didn't
mess up the conversion.

Alignment trap: osmo-nitb (3293) PC=0x492b7094 Instr=0xe5803003 Address=0xbeb259db FSR 0x801
2013-07-03 10:00:06 +02:00
Holger Hans Peter Freyther 476cf3337d strrb: Remove a tautology from the code
This already came up during review but now that Coverity complains
about it as well, let us just remove it. The variable is unsigned
so it can never be < 0.

Fixes: Coverity CID 1040669.
2013-07-03 09:30:02 +02:00
Harald Welte 27b2bb7e92 BSSGP: prevent divide-by-zero in flow control
If the BTS tells us to not send any data at all anymore (bucket leak
rate of 0 bits per second), then we should respect this and not run into
a divide-by-zero.  However, as this indicates complete overload, we
print a log message to that regard.
2013-06-29 10:53:33 +02:00
Harald Welte a62fe31d69 introduce gsm0808_create_reset_ack() 2013-06-29 10:53:33 +02:00
Harald Welte 087116aca7 lapd_core: msgb_trim() the L2 padding from ESTABLISH.ind
When a SABM(E) frame arrives, we have to trim the L2 padding (0x2b for
gsm) before handing the data off to L3, just like we do with I frames.

Also, we should use mggb_trim() or even msgb_l3trim() instead of
manually fiddling with msgb->length and ->tail pointers.
2013-06-18 21:41:34 +02:00
Holger Hans Peter Freyther 9ac453759c misc: Fix the spelling of frame in the RLM cause strings 2013-06-11 17:55:55 +02:00
Bhaskar 6b30f925e2 gsm_utils: refer to ETSI TS 05.08 instead of TS 08.05 2013-05-23 07:53:57 +02:00
Holger Hans Peter Freyther f5a079f739 lapd: Set the tx_hist to NULL after freeing it
Make detecting use after free of the tx_hist easy and set the
variable to NULL after talloc_free has been freed.
2013-05-08 18:46:55 +02:00
Andreas Eversberg b36ad2debe Fix of potential memory leaks at lapdm.c 2013-04-06 23:24:10 +02:00
Andreas Eversberg 6e182087f4 Fix: LAPDm contention resoltion must acknowledge subsequent SABM
After reception of SABM, the network responds with UA and enters the
establised multiframe state. If UA is not received by mobile, the SABM
is transmitted again, and the network must respond with UA again, unless
it is from a different mobile.

Add LAPDm collision test (contention resolution on network side).
2013-04-06 23:23:52 +02:00
Holger Hans Peter Freyther 2c3393d9e3 gprs_ns: Allow to set the DSCP for the UDP socket.
Allow to tag the NS service with a custom DSCP.
2013-03-25 12:06:36 +01:00
Harald Welte 1a02cfc24d logging_vty: Fix segfault un unused entries in log_info_cat array of app 2013-03-19 10:37:39 +01:00
Harald Welte 54c5ed1518 Revert "Follow up fix for the log level "everything""
This reverts commit a6428d2376.
2013-03-19 09:55:42 +01:00
Harald Welte 9b1867093f Revert "Fix log level "everything" and make it equal to "debug""
This reverts commit cd6ed82d1f.
2013-03-19 09:55:28 +01:00
Harald Welte 8e878738d1 application: don't ignore SIGHUP but do config file reopen. 2013-03-18 19:06:13 +01:00
Harald Welte 4de854dcf0 logging: add new log_targets_reopen() function
This function will re-open all existing log files in the application,
praticularly useful for SIGHUP handlers in case of logrotate
2013-03-18 19:05:46 +01:00
Harald Welte ca69388be8 gsm_septets2octets(): Input parameter should be const 2013-03-13 15:16:47 +01:00
Harald Welte 6d2d4d688e logging_vty: Print 'log filter all' info in 'show logging vty'
When we print information about the current logging configuration,
it makes sense to also print information about the log filters.
2013-03-13 15:16:47 +01:00
Holger Hans Peter Freyther 45cdaa095a cygwin: Link many libraries with -no-undefined to create a dll
Only the Gb library relies on having undefined references to a
symbol that needs to be provided by the host application. For
all other libraries we can link with -no-undefined.
2013-03-03 10:10:07 +01:00
Sylvain Munaut ed8170ac67 codec: Fix the GSM 06.20 ordering tables
Seems the script I used to parse those had a bug where range of
bits in the 'decreasing' direction ( like 6..0 ) were not processed
properly.

Thanks to Andreas for noticing this !

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2013-03-01 16:35:46 +01:00
Holger Hans Peter Freyther a6428d2376 Follow up fix for the log level "everything"
Commit cd6ed82d1f made "EVERYTHING"
map to LOGL_DEBUG but when writing out the configuration the following
would be written:

  logging level all unknown 0x0

This happend because no string was found for the value 0. Address it
by adding a legacy check for 0 and write out the str from the index
0. Currently this is "EVERYTHING".
2013-02-27 15:32:51 +01:00
Katerina Barone-Adesi 3309a43ef5 Added a ring buffer log target to store the last N log messages.
The log target can be used via log alarms and show alarms.
Why? This feature was proposed/requested at
http://openbsc.osmocom.org/trac/wiki/Tasks/ErrorLogTarget
All messages use the same amount of space, prioritizing simplicity.
2013-02-27 15:13:45 +01:00
Holger Hans Peter Freyther efd2bd691f Revert "Added a ring buffer log target to store the last N log messages."
I noticed some more issues and it is the easiest to revert and include
the fixed version.

This reverts commit 73377229bb.
2013-02-27 14:51:33 +01:00
Katerina Barone-Adesi 73377229bb Added a ring buffer log target to store the last N log messages.
The log target can be used via log alarms and show alarms.
Why? This feature was proposed/requested at
http://openbsc.osmocom.org/trac/wiki/Tasks/ErrorLogTarget
All messages use the same amount of space, prioritizing simplicity.
2013-02-27 14:45:48 +01:00
Harald Welte cd6ed82d1f Fix log level "everything" and make it equal to "debug"
As Holger points out "logging level XXX everything" wasn't working, as
it sets category->loglevel to 0, which is checked in osmo_vlogp() and
will never get logged.
2013-02-19 11:57:14 +01:00
Katerina Barone-Adesi c28c6a02d2 misc: Doxygen tweaks: fixed some typos and minor errors
Doxygen generates quite a lot of warnings on libosmocore. Some of them
are obvious typos - this patch aims to fix such low-hanging fruit.
2013-02-15 13:27:59 +01:00
Harald Welte d17aa59c3e VTY: don't show HIDDEN or DEPRECATED vty commands in ? completion
This hides HIDDEN or DEPRECATED commands from showing up when the
full list of commands is inquired with '?' at any given point in the
command tree.  Only if the hidden/deprecated command is already typed
in partially, then it will still tab-complete.
2013-02-12 11:11:34 +01:00
Harald Welte 80d30fe803 vty/command.c: Cosmetic cleanup
this is just changing some of the code to reduce the way too high level
of indentation and thus improve readability.
2013-02-12 11:08:57 +01:00
Harald Welte 868a5c4782 turn abis_nm_debugp_foh() into a macro
this will avoid printing 'abis_nm.c' as the filename in the log, which
is pretty useless during debugging.  We want to know where
abis_nm_debugp_foh() is being used from, not where it is implemented.
2013-02-10 09:30:28 +01:00
Sylvain Munaut 9adfda2ca3 core/crc: Fix the 64 bits implementation
We used 1ULL at one place and not the other ... at the same time,
we now use (uintXX_t) so that the proper type is used each time.

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2013-02-01 20:37:03 +01:00
Pablo Neira Ayuso e04a14d9a2 socket: fix osmo_sock_init with SOCK_RAW and IPPROTO_RAW
getaddrinfo returns EAI_SERVICE (-8) if that combination is used.

More information available in here:

http://sourceware.org/bugzilla/show_bug.cgi?id=15015

Reported by Holger Hans Peter Freyther.

While at it, this patch also removes hints.ai_flags = 0 as memset
to zero already happened just a bit before that.
2013-01-15 20:06:39 +01:00
Evgeny Zverev 06ddf8bd24 Fix build on Cygwin 2013-01-12 15:10:58 +01:00
Harald Welte de6e4983e7 add some missing doxygen annotation for libosmocore functions 2013-01-11 09:43:32 +01:00
Sylvain Munaut 4d8eea48f2 vty: Do better filtering of arguments, optional args particularly
This is essentially http://patchwork.diac24.net/patch/271/ forward
ported to libosmovty

Original-by: Paul Jakma <paul@quagga.net>
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2013-01-03 22:34:26 +01:00
Sylvain Munaut 01e0604637 core/bits: Prevent osmo_revbytebits_buf stack trashing
The second loop in osmo_revbytebits_buf() in src/bits.c grabs
4 bytes each iteration, which can easily go past the supplied
input in some cases.

Compiled with -fstack-protector , I get a "stack smashing detected"
in the bits test.

From: Nils O. Selåsdal <noselasd@fiane.dyndns.org>
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2013-01-03 09:37:16 +01:00
Daniel Willmann e523392c2c lapd: Check in rslms_rx_rll() if lapdm context was initialized earlier
This was found while implementing handover on a sysmobts. When we
receive a channel release request for a channel that was never really
activated (set_lapdm_context() was not called) we segfault in
lapd_recv_dlsap().

We now return early with -EINVAL in rslms_rx_rll() if we receive a
message that assumes set_lapdm_context() was already called.

These are:
* RSL_MT_UNIT_DATA_REQ
* RSL_MT_DATA_REQ
* RSL_MT_SUSP_REQ
* RSL_MT_REL_REQ

A test case was added to trigger the issue.
2012-12-26 10:48:01 +01:00
Sylvain Munaut 31659f72cb core: Fix missing include in msgfile.c for getline
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2012-12-12 00:00:43 +01:00
Sylvain Munaut 5689a3b744 build: Don't use the deprecated INCLUDES in the various Makefile.am
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2012-12-11 23:59:31 +01:00
Sylvain Munaut 5572031749 gsm: Add method to find ARFCN based on frequency
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2012-12-11 23:44:41 +01:00
Holger Hans Peter Freyther 68f9447744 sms: Print 'network' or 'mobile' when creating the SMC/SMR 2012-12-06 11:58:33 +01:00
Sylvain Munaut c1e9be95c2 gsm/a5: Return -ENOTSUP if the selected cipher is not supported
Extracted from a patch by Max Suraev Max.Suraev@fairwaves.ru>

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2012-12-06 08:23:02 +01:00
Holger Hans Peter Freyther 8c01231681 lapd: Use LOGL_ERROR for messgaes that are wrong in the given context
Log message that are either too big or have the C/R bit set as error.
2012-11-26 16:52:23 +01:00
Holger Hans Peter Freyther 579fb09eac misc: Use static const struct for LAPD and Abis 2012-11-22 10:54:23 +01:00
Holger Hans Peter Freyther 9473c5d75d sms: Mark the state dispatch table as static const
GCC 4.7.2 was already smart enough to see that the table is const
so there is no change in the generated assembly code. For some reason
the dispatch is still going through one relocation.
2012-11-22 10:50:52 +01:00
Holger Hans Peter Freyther 1c4c373b9f sms: Fix typos in the comments and log messages. 2012-11-22 00:41:50 +01:00
Holger Hans Peter Freyther bcf125c524 smr: Introduce an id and prefix all log messages with SMR(ID)
When OpenBSC is handling more than one message at a time it is difficult
to see which log message belongs to which SMR instance. Introduce a
uint64_t id that can be set to the row_id/message_id and prefix all
log messages with SMR(ID).

This change is ABI and API incompatible with previous versions of
libosmogsm.
2012-11-22 00:41:50 +01:00
Holger Hans Peter Freyther 33e8a87cd7 smc: Introduce an id and prefix all log messages with SMC(ID)
When OpenBSC is handling more than one message at a time it is difficult
to see which log message belongs to which SMC. Introduce a uint64_t id
that can be set to the row_id/message_id and prefix all log messages
with SMC(ID).

This change is ABI and API incompatible with previous versions of
libosmogsm.

Example:
SMC(100) instance created
SMC(100) message MNSMS-EST-REQ received in state IDLE
2012-11-22 00:41:49 +01:00
Holger Hans Peter Freyther 866fc919ac smc: Fix a typo in the smc code 2012-11-14 17:20:33 +01:00
Holger Hans Peter Freyther 09161595bd smc: Print the current state of the SMS
When the connection may not released print the name of the current
state to ease with debugging and verification that this is not a
valid state transition.
2012-11-11 10:35:33 +01:00
Holger Hans Peter Freyther e2a7c93da3 sms: Remove the commented out code that was the default in OpenBSC
This code got copied from OpenBSC and we used the network specific
and private numbering plan. Remove it as it can be easily set.
2012-11-11 09:45:40 +01:00
Holger Hans Peter Freyther 7ae3ac8b42 sms: Reduce the logging level to debug
<001c> gsm0411_smr.c:175 TX: MNSMS-REL-REQ adds little value so
I am reducing it to a debug statement.
2012-11-11 09:35:23 +01:00
Andreas Eversberg d430ef443a GSM48: Avoid unaligned access in gsm48_construct_ra
This avoids an unaligned access on platforms that don't support them,
such as ARMv4/ARMv5.
2012-11-05 12:30:09 +01:00
Tobias Engel 597460fd97 Do not use --version-script linker flag on OSX
Add a check to not use --version-script linker flag if compiled on OSX
since it doesn't exist there
2012-10-27 10:03:12 +02:00
Tobias Engel 2db368ee8d Define struct iphdr for OSX
Use FreeBSD struct iphdr definition for OSX also. From the commentary in
the source file:
On BSD the IPv4 struct is called struct ip and instead of iXX
the members are called ip_XX. One could change this code to use
struct ip but that would require to define _BSD_SOURCE and that
might have other complications. Instead make sure struct iphdr
is present on FreeBSD.
2012-10-27 10:03:11 +02:00
Harald Welte 8ec7f901bb logging: Make sure to install standard "end" command in VTY node
When you are in the config-log VTY node, you expect "end" to work
like in any other sub-node of config.
2012-10-22 19:43:26 +02:00
Harald Welte 2da47f1d6b logging: Don't forget to save "logging filter all 1"
Prior to this fix, a persistent file or syslog log configuration
didn't work across an application re-start, as the
"logging filter all 1" was never saved and thus no messages were
logged.
2012-10-22 19:31:54 +02:00
Andreas Eversberg b8d18f32a1 Doc: Adding new parameter descriptions in gprs_bssgp_bss.c 2012-09-30 16:59:33 +02:00
Andreas Eversberg f44ed8cf92 Fix: Correcting bssgp_tx_fc_bvc, bssgp_tx_fc_ms, bssgp_tx_ul_ud 2012-09-30 14:38:20 +02:00
Andreas Eversberg aaccdac55d Fix: gprs_ns_destroy() now frees all NSVCs and its timers
Freeing memory of registered timers and file descriptors cause corrupt
lists.
2012-09-29 20:36:31 +02:00
Nico Golde 0262d3ff9f logging.c: Do not crash on empty category name
log_parse_category_mask(), skip log category name right away if
name is NULL to prevent passing a NULL ptr to strlen.
2012-09-27 13:45:03 +02:00
Nico Golde 5b67a04a34 gsm_utils.c: in 7bit decoding, first check if the last character was an extension character before doing anything else 2012-09-21 09:25:08 +02:00
Harald Welte be55a8b814 gsm_utils: Fix up coding style in previous patch
'if' is not a function, so we have space before parenthesis.
2012-09-20 10:00:25 +02:00
Nico Golde c56a56dc0a gsm_utils.c: cleanup + do not use dynamic memory when decoding 7bit messages 2012-09-20 09:58:39 +02:00
Holger Hans Peter Freyther db1533651f logging: Introduce a print_filename flag for the logtarget
Introduce a print_filename attribute for each logtarget. Initialize it
with 1 to be backward compatible with earlier versions. The bit is taken
from an existint bitfield. There were at least six bits left of the byte.
2012-09-11 11:24:51 +02:00
Holger Hans Peter Freyther 314c010733 vty: Address compiler warning about the const qualifier
vty.c: In function 'vty_out_newline':
vty.c:294:12: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
2012-09-11 10:40:07 +02:00
Holger Hans Peter Freyther b321b93286 vty: Address compiler warning about tolower
Include ctype.h to have a declaration of tolower.

utils.c: In function 'vty_cmd_string_from_valstr':
utils.c:95:6: warning: implicit declaration of function 'tolower' [-Wimplicit-function-declaration]
2012-09-11 10:39:29 +02:00
Holger Hans Peter Freyther cc7d9ec20e gsm: Address compiler warning about unused variable 'z'
The comment explains why we don't care about the content of z,
stop storing it.

gsm_utils.c: In function 'gsm_7bit_encode':
gsm_utils.c:253:13: warning: variable 'z' set but not used [-Wunused-but-set-variable]
2012-09-11 10:38:43 +02:00
Holger Hans Peter Freyther 06f645542c logging: Mark the log_info_cat pointer as consts
Applications should keep the log area in a static const area. Mark
the pointer as const to address compiler warnings in OpenBSC, cast
the const away for the osmo_log_info as it is not declared as const.
2012-09-11 10:31:29 +02:00
Harald Welte e92866bbb1 Gb: Add functions for sending flow control messages from BSS side 2012-09-10 08:56:04 +02:00
Harald Welte 30fabdf61d Gb: Add header file for BSS-side BSSGP functions
.. not sure how we could have missed that so far.
2012-09-10 08:54:35 +02:00
Harald Welte e3a10b66a4 libosmogb: make build conditional, disable in embedded build
when we build for osmocom-bb cross-compilation, we don't have
sockets nor netinet/in.h and thus NS/BSSGP make no sense...
2012-09-08 22:18:43 +02:00
Harald Welte aef917593a backtrace: don't use fprintf, but printf (for osmocom-bb) 2012-09-08 22:00:13 +02:00
Harald Welte 0823e1e42a BSSGP: print per-bvc flow control parameters on vty 2012-09-07 12:13:09 +02:00
Harald Welte d8b476988d BSSGP: make bvc_ctx->fc a dynamic talloc allocation
this ensures that we can talloc the flow-control queue entries
as siblings off the bvc_ctx.
2012-09-07 12:07:54 +02:00
Harald Welte bb8262275f BSSGP flow-control: various fixes
* add more comments on units of struct members
* make sure to parsre FC-BVC message correctly
* add error message in case user passes PDU larger than bucket size
* add new function to initialize flow control struct
2012-09-07 12:07:54 +02:00
Harald Welte d11c059502 libosmogb: Port BSSGP flow control from openbsc/laforge/bssgp_fc branch
This code is supposed to implement the BSSGP flow control algorithm,
both for the per-BSS and for the per-MS flow control.

The code currently has no test cases, they will come in a separate
commit.
2012-09-07 12:07:54 +02:00
Harald Welte 5b3bffb74c BSSGP: fix unused variable compiler warnings 2012-09-07 12:03:40 +02:00
Harald Welte ca0af8a3a8 libosmogb: build without strict aliasing rules
This allows us to reliably do the trick with casting structures like
libgb_msgb_cb to the msgb->cb[] array.  Shamelessly stolen from the
Linux kernel.
2012-09-07 12:01:28 +02:00
Harald Welte 7c8e2cc7ac libosmogsm: Back-port SMS related fixes from openbsc
This was fixed in 9c3dc90d16a40789081c84e46620f4d66689fec1 of
openbsc.git, after the sms code had been migrated here:
    introduce HAVE_TM_GMTOFF_IN_TM

    Not all architectures have the tm.tm_gmtoff member.  This fixes cygwin builds.
2012-08-29 16:47:30 +02:00
Harald Welte c8a0b93939 GSM 04.08: Add support for parsing CSD related bearer capabilities
Also adds a test case for both encoder and decoder of this IE
2012-08-24 21:37:59 +02:00
Harald Welte 7ccd3181c5 gsm48_ie: annotate functions with chapter numbers from 04.08 spec 2012-08-24 17:06:08 +02:00
Harald Welte fab0ae9b43 import vty_cmd_string_from_valstr() from osmo-bts
This function is able to generate a VTY help string based on an
array of 'struct value_string'.
2012-08-20 18:43:09 +02:00
Harald Welte 335aedabf2 increaes libosmocgsm LIBVERSIN due to gsm_decode_lai() change 2012-08-03 10:51:10 +02:00