aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/abis_rsl.c
AgeCommit message (Collapse)AuthorFilesLines
2010-06-28bsc_init: Allow DTXu and enable DTXd on RSLHolger Hans Peter Freyther1-1/+4
Allow the MS to use uplink discontinous transmission by setting the right bit in the SystemInformation and set DTXd/DTXu on the RSL channel commands. This is configurable via dtx-used (0|1) on the network level..
2010-06-22abis_rsl: Send the IMMEDIATE Assignment after the Channel Ack.Holger Hans Peter Freyther1-12/+42
The Channel Activate might be sent to a different TRX than the Immediate Assignment. So we need to make sure that the channel is activated before we send the immediate assignment for the RACH. Another reason for that is according to GSM 08.58 we should take the frame number from the activate and use it for the starting time inside the immediate assignment message. We obviously do not do this yet. The code assumes that the BTS will either respond with a CHAN ACK or a CHAN NACK if not the lchan will remain in the request state. Conflicts: openbsc/include/openbsc/gsm_data.h openbsc/src/abis_rsl.c openbsc/src/chan_alloc.c
2010-06-13abis_rsl: Reduce logging to LOGL_DEBUG as it is quite nosiyHolger Hans Peter Freyther1-1/+1
The nanoBTS will send us at least one measurement report after we have decided to close the channel... degrade that output to a debug message.
2010-04-20Revert "ipaccess: Send RTP Payload IE for CRCX & MDCX"Holger Hans Peter Freyther1-49/+5
This is causing a regression with AMR audio. The nanoBTS is sending a MDCX NACK with Cause 0x52. Reverting this commit makes it work again. This reverts commit b54dda4cefe89665d98074cf3767858fa6ecdb6e.
2010-04-19Merge remote branch 'origin/master' into on-waves/bsc-masterHolger Hans Peter Freyther1-5/+53
Conflicts: openbsc/include/openbsc/abis_rsl.h openbsc/include/openbsc/mgcp.h openbsc/src/abis_rsl.c openbsc/src/chan_alloc.c openbsc/src/handover_logic.c openbsc/src/mgcp/mgcp_network.c openbsc/src/vty/command.c openbsc/src/vty_interface.c
2010-04-19RSL: inmplement ip.access paging load indication 'below threshold'Harald Welte1-0/+4
This is an ip.access specific 08.58 oddity. It reports 0xffff available paging buffers if the paging load is below the 12.21 CCCH LOAD INDICATION THRESHOLD. We use 50, since that is what it reports if the threshold == 0.
2010-04-19[alloc] Assign a TCH for LU when all SDCCHs are occupied.Holger Hans Peter Freyther1-1/+8
When the cell becomes visible we will be bombed with location updating requests and to reduce the load on the network we should assign as many channels for it as possible. During load peek it is even more important than to have a spare voice channel and in general the LU procedure is pretty fast.
2010-04-17[statistics] Keep track of rf failures and rll release failuresHolger Hans Peter Freyther1-1/+4
Add two new counters to count the RF Failures and the RLL Release failure and make them available via the vty interface.
2010-04-13[statistics] Keep track of rf failures and rll release failuresHolger Hans Peter Freyther1-1/+4
Add two new counters to count the RF Failures and the RLL Release failure and make them available via the vty interface.
2010-04-12ipaccess: Send RTP Payload IE for CRCX & MDCXSylvain Munaut1-5/+49
For GSM V1 FR, the payload type is fixed to 3 in the RFC. But for the other codecs, the payload type is dynamically assigned between 96 and 127. Here, we use a static mapping internal to OpenBSC. This patch is needed to make a rather old 139 unit (with sw version 120a002_v149b42d0) work with something else than FR codec. I also tested this patch on a newer 139 (with sw version 120a352_v267b22d0) to make sure it didn't add a regression. More testing with newer EDGE units should be done by whoever has some of theses. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-04-10[rsl] Set the release state from within the lchan classHolger Hans Peter Freyther1-1/+0
Currently our GSM04.11 code is closing the link for SAPI=3 and this would mean that the whole channel would be scheduled for close... where we only want to close everything when freeing the lchan or handling an error.
2010-04-10[rsl] Introduce a method to set the state of the lchanHolger Hans Peter Freyther1-6/+12
Setting the state through a dedicated method allows us to track the state transitions and check if they are done in a proper way.
2010-04-09[rsl] Rework the lchan channel release procedureHolger Hans Peter Freyther1-3/+15
1.) free every SAPI from 1-7 and wait for the confirmation and then continue until all of them are freed. If the SAPI is not torn down we will receive a timeout and then we force the RF Channel Release... 2.) once SAPI is down we send the RR Release, SACCH Deact 3.) the abis_rsl will see that all SAPIs are down and then will release channel...
2010-04-09[rsl] Set the release state from within the lchan classHolger Hans Peter Freyther1-1/+0
Currently our GSM04.11 code is closing the link for SAPI=3 and this would mean that the whole channel would be scheduled for close... where we only want to close everything when freeing the lchan or handling an error.
2010-04-09[rsl] Introduce a method to set the state of the lchanHolger Hans Peter Freyther1-8/+14
Setting the state through a dedicated method allows us to track the state transitions and check if they are done in a proper way.
2010-04-09[rsl] Introduce an error state for the lchan and set it on releaseHolger Hans Peter Freyther1-9/+45
When we issue a RF Channel Release in case of a failure we receive RLL release indications after the channel was tearn down and we issue another RF Channel Release as a result. The channel allocator might have already allocated this channel and we release the channel again with another MS on it. Make rsl_rf_chan_release take an error argument and make it set a new state in case of an error and change the RF Channel Release ack to not set the state back to none in case of an error but wait for a timeout that is a bit higher than T3111. I tested this with removing the battery during a phonecall and waiting for the channel failure. With this test we only send the release once.
2010-04-09[rsl] Implement the T3111 timer to delay the RF Channel releaseHolger Hans Peter Freyther1-4/+15
2010-04-09[rsl] Check the assumption that RF Channel Release is sent during releaseHolger Hans Peter Freyther1-0/+6
We assume that the lchan_free will initiate the release and that when we handle the RLL release indication or the release request as part of the shutdown sequence.
2010-04-08[rsl] Move rf channel release scheduling to a new methodHolger Hans Peter Freyther1-8/+10
The current channel release has a couple of issues we will need to fix in a set of upcoming commits. The issues include: 1.) sending release twice 2.) reassigning the channel inbetween the relase..
2010-04-07[rsl] Speculative crash fix in the RSL rcv messageHolger Hans Peter Freyther1-1/+13
The theory is that the BTS is almost dead and sends out a incomplete message and we crash with that. I have not been able to completely verify that.
2010-04-06Merge remote branch 'origin/master' into on-waves/bsc-masterHolger Hans Peter Freyther1-14/+23
* Move to the new log code and update binaries * Catch up with lchan changes from master Conflicts: openbsc/include/openbsc/Makefile.am openbsc/include/openbsc/gsm_data.h openbsc/src/Makefile.am openbsc/src/bsc_rll.c openbsc/src/chan_alloc.c openbsc/src/debug.c openbsc/src/gsm_04_08.c openbsc/src/gsm_04_11.c openbsc/src/gsm_subscriber_base.c openbsc/src/handover_logic.c openbsc/src/silent_call.c openbsc/src/transaction.c openbsc/src/vty_interface.c openbsc/src/vty_interface_cmds.c
2010-03-29[misc] Remove whitespace from the end of the line.Holger Hans Peter Freyther1-9/+9
2010-03-28RSL: keep track of ip.access dynamic TCH/PDCH activationHarald Welte1-3/+12
We use the (currently unusued) flags member of the bts_trx_ts structure to track if a dynamic TCH/PDCH is currently on PDCH mode or not.
2010-03-26move log/debug codebase to libosmocoreHarald Welte1-2/+2
The logging/debugging code is generic enough to move it into libosmocore while keeping OpenBSC specific definitions in openbsc itself. This commit uses the logging support present in libosmocore-0.1.2, you will have to update your library to this version.
2010-03-26Merge branch 'on-waves/sccp' into on-waves/bsc-masterHolger Hans Peter Freyther1-1/+1
2010-03-25lchan: Create a structure for MSC data of the lchanHolger Hans Peter Freyther1-1/+1
Prepare to split the BSC and the MSC part by putting the MSC data for a connection into a "gsm_subscriber_connection" struct and renaming the macros.
2010-03-25convert openbsc to use libosmocore-0.1.1 APIHarald Welte1-1/+1
the 0.1.1 API is cleaned up and removes all exported global static arrays (like rlm_cause_strs). There are now proper accessor functions.
2010-03-25channel request: Store the to be assigned channel type in the GSM NetworkHolger Hans Peter Freyther1-2/+2
Store the mapping from request to channel type in the GSM Network struct as there is some policy involved with handling the request. E.g. in a half rate network we don't want emergy calls to be getting a TCH/F, or we want to have a different policy for early/late assignment of phone calls. Update the table when creating the network and when the neci is changed.
2010-03-24Specify a release reason for the lchanHolger Hans Peter Freyther1-2/+3
In case the put_lchan is making the refcount drop to zero use the release reason specified in the put_lchan call. This is used by the BSC MSC IP implementation for the assignment handling where the old channel is getting closed with a local end release (1).
2010-03-24Merge remote branch 'origin/master' into on-waves/bsc-masterHolger Hans Peter Freyther1-308/+109
* Move to libosmocore * Move to new debugging architecture * Register the BTS types * Has only been compile tested Conflicts: openbsc/include/openbsc/Makefile.am openbsc/include/openbsc/gsm_data.h openbsc/include/openbsc/ipaccess.h openbsc/include/openbsc/mgcp.h openbsc/include/openbsc/msgb.h openbsc/include/openbsc/tlv.h openbsc/src/Makefile.am openbsc/src/abis_rsl.c openbsc/src/bsc_init.c openbsc/src/bsc_mgcp.c openbsc/src/chan_alloc.c openbsc/src/debug.c openbsc/src/gsm_subscriber_base.c openbsc/src/msgb.c openbsc/src/rest_octets.c openbsc/src/sccp/sccp.c openbsc/src/vty/command.c openbsc/src/vty_interface.c openbsc/tests/Makefile.am
2010-03-04rsl: use the rsl_rll_push_l3() and rsl_rll_simple() functions of libosmocoreHarald Welte1-28/+10
2010-03-01value_string functions and some RSL related stuff has moved to libosmocoreHarald Welte1-224/+5
2010-02-20split 'libosmocore' from openbsc codebaseHarald Welte1-2/+2
This library is intended to collect all generic/common funcitionality of all Osmocom.org projects, including OpenBSC but also OsmocomBB The library currently includes the following modules: bitvec, comp128, gsm_utils, msgb, select, signal, statistics, talloc, timer, tlv_parse, linuxlist msgb allocation error debugging had to be temporarily disabled as it depends on 'debug.c' functionality which at the moment remains in OpenBSC
2010-01-28[rsl] Send the MultiRateConfig in the RSL Channel Activate msgHolger Hans Peter Freyther1-0/+4
If the lchan has AMR as speech codec we also need to send the multirate config IE in the channel activation. This is already done for the RSL Channel Modify message.
2010-01-28[rsl] Send the MultiRateConfig in the RSL Channel Activate msgHolger Hans Peter Freyther1-0/+4
If the lchan has AMR as speech codec we also need to send the multirate config IE in the channel activation. This is already done for the RSL Channel Modify message.
2010-01-06[rsl] Partial revert of the GSM speech mode for the nanoBTSHolger Hans Peter Freyther1-23/+3
This is partially reverting 0603c9d9e58b5d29105361a89ab8cb295da29366, it is true that the ip.access Wireshark dissectors differentiate TCH/H from TCH/F but in my test I'm unable to send RTP on to the BTS. It might be that the RTP payload provided in the MDCX is not the one it will accept with the 0x05 mode. More work needs to be done to understand this, that is the reason it is comitted to the on-waves's branch instead of master.
2009-12-29rsl: add new 'gsm_trx_name()' function and use itHarald Welte (local)1-6/+6
2009-12-29Introduce gsm_lchans_name() for human readable lchan state nameHarald Welte1-5/+8
Also, use this new function to dump lchan state on VTY and to improve readability of RSL log messages.
2009-12-29RSL: Introduce LCHAN_S_REL_REQ stateHarald Welte1-1/+16
This state will help us to differentiate between channels where we have requested the release, and channels that are actually released.
2009-12-28Introduce and use gsm_lchan_name() in addition to gsm_ts_name()Harald Welte (local)1-14/+14
In many cases we actually want a name / unique ID for the lchan, not just for the on-air timeslot... especially in SDCCH/8 case, where 8 SDCCHs share one timeslot...
2009-12-28RLL: print human-readable value of RLM CAUSE in ERROR INDHarald Welte (local)1-3/+22
2009-12-28Introduce new ACT_REQ state to prevent race condition during channel allocationHarald Welte (local)1-5/+10
When we allocate a channel, we send the RSL CHAN ACT REQ and wait until we get a CHAN ACT ACK. Only the ACK will change the state, so there is a race where we allocate that same channel to a different channel request before we get the ACT ACK. Introducing a new ACT_REQ state resolves this issue.
2009-12-28rename gsm_lchan_name() to gsm_lchant_name()Harald Welte (local)1-2/+2
2009-12-28fix segfault in CHAN RQD log messageHarald Welte (local)1-2/+2
2009-12-28correctly print chan act nack errorHarald Welte (local)1-1/+5
2009-12-28print TS name when out of resources during CHAN RQDHarald Welte (local)1-2/+2
2009-12-28include BTS and TRX number in TRX overload message reportHarald Welte (local)1-1/+2
2009-12-26print TS name in RLL ERR INDHarald Welte (local)1-1/+2
2009-12-26[rsl] correctly print handover detect and connection failHarald Welte (local)1-5/+4
2009-12-26fix missing space in log messageHarald Welte (local)1-1/+1