aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src
AgeCommit message (Collapse)AuthorFilesLines
2016-10-13Log use of incompatible BS-AG-BLKS-RES valueMax1-2/+7
There's "channel-descrption bs-ag-blks-res" vty command which sets BS-AG-BLKS-RES which might be too high if CCCH is combined with SDCCHs. Previously proper value was silently enforced. Log this situation explicitly and add spec reference to the comment. Change-Id: I53e2b881fc28472d6709f063fb265a4e6a0fffcd
2016-10-10gsm_trx_name(): don't break if trx is NULLNeels Hofmeyr1-2/+5
Just as a general precaution deemed to fit such a convenience function that lives in libcommon, no actual failure observed. Change-Id: I8e77fe1abc402469fd037e2fde2f46e2c8114f59
2016-10-10abis_rsl_rx_dchan(): guard against lchan_lookup() returning NULLNeels Hofmeyr1-0/+2
Found this by coincidence, no actual failure case was observed. lchan_lookup() does have a return NULL code path, so we should not blindly use its returned pointer. Change-Id: I34ce126d36420b8194c88c0faa865294334a6658
2016-10-10Revert "bsc: count the usage of codec by setting the lchan active"Neels Hofmeyr1-35/+0
This reverts commit 38e9ea3f7f385c6660c5958970af5c71adc1682b. Introduced a reproducable segfault, because msg->trx is not actually set/used in the openbsc code paths. Program received signal SIGSEGV, Segmentation fault. count_codecs (lchan=0x1, bts=<optimized out>) at ../../../src/libbsc/abis_rsl.c:104 104 rate_ctr_inc(&bts->network->bsc_ctrs->ctr[BSC_CTR_CODEC_V1_FR]); (gdb) bt #0 count_codecs (lchan=0x1, bts=<optimized out>) at ../../../src/libbsc/abis_rsl.c:104 #1 0x0000000000425661 in abis_rsl_rx_dchan (msg=<optimized out>) at ../../../src/libbsc/abis_rsl.c:1516 #2 abis_rsl_rcvmsg (msg=0x8143f0) at ../../../src/libbsc/abis_rsl.c:2611 #3 0x00007ffff71420d0 in handle_ts1_read (bfd=<optimized out>) at ../../src/input/ipaccess.c:271 #4 ipaccess_fd_cb (bfd=0x815af8, what=1) at ../../src/input/ipaccess.c:386 #5 0x00007ffff7779b62 in osmo_fd_disp_fds (_eset=0x7fffffffe590, _wset=0x7fffffffe510, _rset=0x7fffffffe490) at ../../src/select.c:149 #6 osmo_select_main (polling=polling@entry=0) at ../../src/select.c:189 #7 0x0000000000406fac in main (argc=<optimized out>, argv=0x7fffffffe738) at ../../../src/osmo-nitb/bsc_hack.c:385
2016-10-04gprs/gprs_llc: count UI frames over SAPI in the statisticsAlexander Couzens1-0/+3
Change-Id: I5f38d70e046ce9ca1342e6f862329dc3cded8995
2016-10-04msc: add counters to track call attempts/active/success/failedAlexander Couzens2-0/+35
active_calls describe all calls in active state. call.complete Call got terminated by disconnect requested either by MS or MSC. call.incomplete Call got terminated by any other reason. call.active Calls reached active state. Change-Id: I49b93af2e6a0ba16c2fb00b7b83974e8a6a16df3
2016-10-04bsc: count the usage of codec by setting the lchan activeAlexander Couzens1-0/+35
we count the codec when the channel was successful setted up Change-Id: Ifc8a406a11dce16b9e7f3310841e470545550a2c
2016-09-30log CTRL bind only onceNeels Hofmeyr4-8/+0
After libosmocore 38d232ee5d2ceb045d9ad6d3a23afcb4972523f7 which outputs 'CTRL at <ip> <port>' from ctrl_interface_setup_dynip(), there's no need to log the CTRL bind here anymore. Change-Id: I1a874efe365a1ecf8ec37b058215b95b9a635ec2
2016-09-29fix: send SNDCP XID only on GERAN Gb contextsNeels Hofmeyr1-5/+7
Add a condition for GERAN Gb. SNDCP and IuPS were developed on separate branches, and the merge results in code trying to use an llme on a UTRAN Iu context where the llme is NULL, leading to stack corruption upon PDP ctx act. Change-Id: Ibb20d738c1b64d36630ce8eceb54c33ba4f1b003
2016-09-28COSMETIC: 'if' is not a function, so there is space before '('Harald Welte5-7/+7
Change-Id: Ic22623dffce998d70a3c67aa6e445de98f558ed7
2016-09-28cosmetic: bs11: also use ts_is_tch()Neels Hofmeyr1-7/+1
Use the recently added ts_is_tch() function instead of an explicit switch to determine TCH pchan types. This is a cosmetic change since the bs11 does not support dynamic channels (which was the main motivator behind ts_is_tch()). Change-Id: Idf8ce51c76a83210fe3d70e18c51bbaffebb8ad5
2016-09-28dyn TS: fix: e1_config.c: switch(pchan) for dyn TSNeels Hofmeyr2-6/+17
Add ts_is_tch() in gsm_data_shared.h/.c and use it to replace a switch on the pchan in e1_config.c. This patch is not due to an actual observed failure. A general grep for switch on pchan turned up this instance that doesn't handle dyn TS properly. Hence this patch is not actually tested with real equipment. Change-Id: Ide4f156034bab77140d2d9a8c462d68ae6f0d6a6
2016-09-28dyn TS: fix: abis_om2000: also handle dyn TS as TCHNeels Hofmeyr1-2/+16
Add ts2comb() to switch on dyn TS so that dyn TS in TCH mode are also treated like normal TCH/H or TCH/F pchans. Use ts2comb() instead of pchan2comb(). Change-Id: Iddc51a4409488d91db59228ca66aaab73ce3f1df
2016-09-28dyn TS: fix: ts_subslots() for TCH/F_PDCH in PDCH modeNeels Hofmeyr1-6/+20
In gsm_data_shared.c, add ts_pchan() to determine actual pchan type for dynamic and non-dynamic TS. Use in ts_subslots() to fix the value returned for TCH/F_PDCH in PDCH mode. Adjust the assertion in channel_test.c accordingly. Drop GSM_PCHAN_TCH_F_PDCH, which is now handled in ts_pchan(). Explicitly add GSM_PCHAN_PDCH as zero in subslots_per_pchan[] (cosmetic). Adjust the comment in subslots_per_pchan[]. The fix for the number of subslots affects only one caller: bts_chan_load() in chan_alloc.c. Before this, it would always include a TCH/F_PDCH in the load_counter->total, now it is skipped when in PDCH mode. Whether this is the way bts_chan_load() should handle dynamic TS is a separate discussion, so far I'm only making sure that the two dyn TS kinds act in the same way: TCH/F_TCH/H_PDCH is only counted when in TCH mode, and TCH/F_PDCH should match. Change-Id: Icd6668667ad2be7ad20866ffd185bf3b8711ccd6
2016-09-28Revert "bts: extend bts_chan_load to allow counting tch only"Neels Hofmeyr4-29/+6
This reverts commit 308cb0719dca3ba8eed1eff2a2124d44f34d9a28. Problems in this commit: openbsc/src/libbsc/chan_alloc.c:523: case GSM_PCHAN_TCH_F_PDCH: This is actually wrong, GSM_PCHAN_TCH_F_PDCH use ts->flags, not ts->dyn below (due to historical reasons and could be unified). 560: if (only_count_tch && !chan_is_tch(ts)) This has exactly one effect: it excludes GSM_PCHAN_TCH_F_PDCH when in PDCH mode, because for all other PDCH (plain PDCH and TCH/F_TCH/H_PDCH in PDCH mode) below ts_subslots() returns 0 and skips the for() loop. I consider this a bug in TCH/F_PDCH, to be fixed in an upcoming commit. I don't see why we need the only_count_tch argument, because this should normally only count TCH, weren't it for the TCH/F_PDCH bug. If dyn TS should be counted differently, we should do this in a different way. Change-Id: I34dbbaf53a800115e3d03bd44028cad675f3b525
2016-09-27cosmetic: comment typo on e1_config.cNeels Hofmeyr1-1/+1
Change-Id: I894adf562670abf26665a1eb09592682ab8b31b5
2016-09-27log VTY telnet bind only onceNeels Hofmeyr6-12/+0
After libosmocore 55dc2edc89c1a85187ef8aafc09f7d922383231f which outputs 'telnet at <ip> <port>' from telnet_init_dynif(), there's no need to log the telnet VTY bind here anymore. Change-Id: I97a730b28759df1d549a5049f47a3da1c16a3447
2016-09-26mscsplit: directly access gsm_network backpointer from gsm_subscriber_connectionNeels Hofmeyr5-60/+53
The previous commit added a network backpointer to gsm_subscriber_connection. Use it wherever it makes sense, to skip the step through the bts structure. In some places, remove local variables that become unused. Change-Id: I34537025986713291e14c8212a81539b497befd4
2016-09-26mscsplit: add gsm_network backpointer to gsm_subscriber_connectionNeels Hofmeyr1-0/+1
We want to be able to use a network backpointer without having to go through a gsm_bts struct. This commit adds the network pointer, the subsequent commit applies direct access to the network structure from gsm_subscriber_connection. Change-Id: If8870972f1b3e333c2a4cce97cdc95bdee0382a1
2016-09-26mscsplit: abis vty: decouple from global bsc_gsmnet variableNeels Hofmeyr2-4/+4
Publish gsmnet_from_vty() in openbsc/vty.h and use in the abis VTY functions. Change-Id: Ib65a18db06b8bc4fc7d56bf56dd64a52cc1cd253
2016-09-26mscsplit: bsc_vty_init(): decouple from global bsc_gsmnetNeels Hofmeyr4-4/+4
Add an explicit gsm_network pointer instead of using the bsc_gsmnet global. This allows passing a gsm_network struct from the main() scope, which helps to decouple libmsc from libbsc. Change-Id: I9e2c0d9c18d4cebb5efb71565ad84df2bc2e0251
2016-09-26mscsplit: talloc_ctx_init(): decouple from global tall_bsc_ctxNeels Hofmeyr2-20/+17
Decouple the talloc context allocations from global tall_bsc_ctx pointer. It appears that talloc_ctx_init() was intended for general use, since it is located in libcommon. It is currently used only by osmo-nitb; but the upcoming osmo-cscn will use it as well. Instead of defining in osmo-nitb main file, add definition in gsm_data.h. Change-Id: I168106599b788f586be0ff0af4699b9746c1b103
2016-09-26mscsplit: gsm_network_init(): add explicit root talloc ctxNeels Hofmeyr4-5/+7
Decouple the root talloc context from libbsc's global talloc_bsc_ctx. This allows to define the root talloc ctx from a main() scope, which in turn helps decouple libmsc from libbsc. Change-Id: I92f6b47b1eeea2e8f3fba66f25d7e708e5659f8a
2016-09-26mscsplit: move subscriber conns list into struct gsm_networkNeels Hofmeyr3-8/+5
Replace the global sub_connections llist with gsm_network.subscr_conns. Initialize and apply where applicable. Remove bsc_api_sub_connections(), callers now access gsm_network->subscr_conns directly. This allows using the subscr_conns from libmsc without having to link libbsc. Change-Id: Ice2a7ca04910bcfaaff22539abe68a6349e8631c
2016-09-26mscsplit: bsc_init: don't pass telnet dummy connNeels Hofmeyr1-4/+1
We want to create the telnet for VTY only after reading the config file, and the dummy_conn was a workaround to be able to do so, but is not needed: gsmnet_from_vty() used to expect vty->priv to point to a gsm_network struct, but that is not actually the case anymore. It is using a static pointer to store the gsm_network struct instead. Change-Id: I51e7224c5a4cd5baf564bee871cf2fa6e885cda7
2016-09-24SNDCP: add V.42bis data compression functionalityPhilipp6-18/+521
- Add compression control for V.42bis Add code to handle compression (gprs_sndcp_dcomp.c/h) - Add Adjustments in SNDCP - Add VTY commands Change-Id: I6d36cbdf2f5c5f83ca9ba57c70452f02b8582e7e
2016-09-24V.42bis: integration and unit testPhilipp2-13/+17
- Edit previously committed V.42bis implementation to function outside IAXmodem. - Add unit test to verify the correct function of V.42bis Change-Id: I689413f2541b6def0625ce6bd96f1f488f05f99d
2016-09-24V.42bis: add sourcecode from IAXmodem (SPANDSP)Philipp1-0/+764
V.42bis is a data compression method found in modems. It has also been specified for GPRS as data compression algorithm. The implementation has been taken from IAXmodem: https://sourceforge.net/p/iaxmodem/code/HEAD/tree/ svn checkout svn://svn.code.sf.net/p/iaxmodem/code/ iaxmodem-code Revision: r36 Change-Id: Iabedece9f97ca944a1e3f747bb073e532c4e9dca
2016-09-24SNDCP: add RFC1144 header compression functionalityPhilipp7-31/+1300
- Add module to handle compression entities - Add module to control header compression - Introduce VTY commands for heade compression configuration - Add changes in sndcp and llc to integrate header compression Change-Id: Ia00260dc09978844c2865957b4d43000b78b5e43
2016-09-24RFC1144: integration and unit-testPhilipp3-88/+163
The previously pushed slhc implementation has been modified to compile and function outside of the kernel. Also debug log messages were added and datatypes ware matched. The implementation is now ready to be used Change-Id: I7a638e88a43b3eb9d006751a03ef2570e36613f0
2016-09-24RFC1144: add slhc code from linux kernelPhilipp1-0/+744
SLHC is an Implementation of RFC1144 TCP/IP header compression. We will need RFC1144 compression to compress GPRS TCP/IP traffic. The implementation pushed with this commit was taken from: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git commit 29b4817d4018df78086157ea3a55c1d9424a7cfc Change-Id: Ied69c143678dc4a64cecc671f5c4dfebe19d8519
2016-09-24SNDCP: add SNDCP-XID encoder/decoder and unit testPhilipp2-0/+1805
The SNDCP-XID (or layer-3 xid) is used to exchange layer-3 parameters such as compression. The encoder encodes a bytestream that is then sent as regular XID field from LLC. We will need the SNDCP-XID to negotiate the parameters for our upcomming GPRS data and header compression features Change-Id: If2d63fe2550864cafef3156b1dc0629037c49c1e
2016-09-23bts: extend bts_chan_load to allow counting tch onlyAlexander Couzens4-6/+29
Change-Id: I86f1d502649747b6b9aefcb39081b14110e8f494
2016-09-22cosmetic fixes in libcommon/talloc_ctx.cNeels Hofmeyr1-1/+20
Add copyright notice, remove obsolete include, remove unneeded line break. Change-Id: I4d06a0323aee5a003b06edd179fc61e1936acae5
2016-09-18debug log for sms: fix/addNeels Hofmeyr3-2/+14
One logged the wrong function name. Add others. Change-Id: Ied5d8e84d5d192c826bc131be8907eaa55190479
2016-09-18Sanity fixes for gsm0408_dispatch(): rc, assertionsNeels Hofmeyr1-0/+5
gsm0408_dispatch() is the main entry point for receiving data from the BSC/RNC level, so make sure callers pass valid pointers before using them all the way down the code path (related to CID#93769, a fix before this was refactored). For unknown/unimplemented packet discriminators, make sure to return error codes. Change-Id: Ieec39c74a53ef4dfa971dd935c8c9aa60fef58c1
2016-09-18cosmetic: various comment, whitespace tweaksNeels Hofmeyr2-3/+2
Change-Id: I131939cfba4d67d7e2c935341deeb14d09523fee
2016-09-18utils/Makefile.am: remove unused LIBOSMOVTY_CFLAGSNeels Hofmeyr1-1/+0
Change-Id: Id1152b105bb7364a06d9720829d39f587242b707
2016-09-18vty l3 help: fix typo 'comamnds'; fix english s/his//Neels Hofmeyr1-5/+5
Change-Id: I6be52bbb69de8aa0a6d57a3a320661ad85fc2cc4
2016-09-18remove unused bsc_copyright from bsc_vty.cNeels Hofmeyr1-1/+0
Change-Id: I281791c0f57ca75ffe14431a3030811b2d224f0b
2016-09-17Modify SI 13 field for control_ack_typeMax4-2/+45
Add vty function to explicitly set use of 4xRACH type of ack message for PACKET CONTROL ACKNOWLEDGMENT. Previous hardcoded value (use RLC/MAC control block) is used as a default. This is handy for debugging issues related to Timing Advance in context of GPRS. Change-Id: Ie869ac0a82055110f1e3b875e246750c4e113336 Related: OS#1526
2016-09-17log causing rx event for lchan_lookup errorsNeels Hofmeyr1-8/+14
Add log_name to lchan_lookup() and pass such from the various RSL rx events that call it to validate the RSL chan_nr. Change-Id: Id81e7b8b9c27831923f050a78dfc7d650e687033
2016-09-17log: abis_rsl: don't log 'error' when there is no errorNeels Hofmeyr1-1/+5
The message 'RF Channel Release due error 0' keeps catching my eye because it says 'error' even though the error code is zero, i.e. no error. This shall end now. Change-Id: Ie0b9d62e8ce85a096c963931e0ae5527b8dc490a
2016-09-17sms: change rp err cause of smpp_try_deliver errorsAlexander Couzens1-4/+13
smpp_try_deliver could fail with rc < 0. In such cases don't send the MS the rp error sms rejected (cause 21). A rejected message should not be sent again. The spec 04 11 recommends sending cause 41 Temporary failure in unknown cases. Add also a log message and rate counter for such cases. Tweaked-By: Neels Hofmeyr <nhofmeyr@sysmocom.de> Change-Id: Ia03e50ce2bd9a7d1054cc5a6000fd73bd3497c03
2016-09-15Build fixesAlexander Huemer1-1/+3
Some fixes for build environments where dependencies are installed in distinct directories. Change-Id: I38808fd2911747b266ee6fde91187a88dd7ae355
2016-09-15Consistenly format variables in */Makefile.am filesAlexander Huemer15-228/+742
Change-Id: Ifa21513c007072314097b7bec188579972dc1694
2016-09-05gprs/gprs_llc: fix null pointer deref in gprs_llc_rcvmsgAlexander Couzens1-2/+1
Change-Id: I1f7e1d524042134c93a4f3de599c54d442447512
2016-09-05gprs/gsm0408_gprs_force_reattach_oldmsg: check llme before useAlexander Couzens1-1/+2
Change-Id: I9385655872c4dcf46aa1d18bcc47b84aba2f34f7
2016-09-02IuPS: Change GTP-U endpoint to SGSN in PMM_IDLE and page UE when data arrivesDaniel Willmann2-1/+31
Change-Id: I47b73a40cbdda6b7c31fb2767f74f9f93d84056b
2016-09-02IuPS: Introduce function to change PMM stateDaniel Willmann1-6/+29
This is where IuPS will redirect GTP-U endpoints in a subsequent commit. Also add comprehensive logging of pmm_state transitions. Change-Id: I7c2cd1abc1805659b01dffffff31c49fe5161086