aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/abis_rsl.c
AgeCommit message (Collapse)AuthorFilesLines
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-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-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-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-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-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-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.
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
2009-12-26[meas rep] print the neighbor index when debugp'ing a neigh cell measHarald Welte1-2/+2
2009-12-24rsl: fix "CONNECTION FAIL: RELEASING" messageHarald Welte1-1/+2
2009-12-24[logging] differentiate DEBUG, NOTICE and ERROR log levels in NM and RSLHarald Welte1-54/+46
2009-12-22Import the new logging architectureHolger Hans Peter Freyther1-0/+2
This is the new logging architecture, including * support for multiuple logging targets like stderr and vty * log levels in addition to categories/subsystems * filtering based on imsi, i.e. only see events for one subscriber * dynamically change log level for each category for each vty
2009-12-22statistics: Introduce 'struct counter' instead of using unsigned longHarald Welte1-2/+2
This has the advantage that counters can be added all over the code very easily, while having only one routine that stores all of the current counter values to the database. The counters are synced every 60 seconds, providing relatively fine grained statistics about the network usage as time passes by.
2009-12-22keep some internal statistics inside OpenBSCHarald Welte1-0/+3
the statistics will give us some idea about the network load and performance.
2009-12-21RSL: keep track if a channel is active or notHarald Welte1-0/+10
This allows us to block packets that we have received after the channel is no longer being used. This is visible during handover, where we still receive a measurement report after the MS has switched to the new channel. This leftover measurement report then attempts to trigger another handover, which si bogus and will fail - and thus only consumes resources. With the new LCHAN_S_ACTIVE state, we can check for this when processing the measurement report.
2009-12-20rename ipacc_connect_proxy_bind() to rsl_ipacc_mdcx_to_rtpsock()Harald Welte1-0/+14
Our RTP sockets are no longer just for the proxy mode, so having "proxy" in the function name is really misleading.
2009-12-20Move RTP socket handling out of signal handlers into abis_rslHarald Welte1-0/+33
This is not really nice, but we will soon have multiple users of the CRCX / MDCX / DLCX signals, and we cannot guarantee the ordering of them. So as a workaround, we move the RTP socket creation and deletion into the core abis_rsl codebase.
2009-12-19don't print measurement reports that have no cellsHarald Welte1-0/+2
2009-12-19ip.access: Keep a full copy of local and remote IP/PORT in lchanHarald Welte1-48/+89
Keeping all parameters for each RTP connection in the abis_ip member of lchan will help us with actual TCH handover later on.
2009-12-17logging: introduce log levels at caller siteHarald Welte1-29/+29
This introduces a new LOGP() macro together with LOGL_* definition to support multiple log levels (severities) throughout the codebase. Please note that the actual logging system does not use them yet, in this patch we simply introduce the new macros at the caller site.
2009-12-17[handover] first functional handover implementationHarald Welte1-3/+12
With this commit, we can successfully hand over a channel from one cell to another cell. We implement asynchronous intra-BSC (but inter-BTS) handover. Changes: * introduce new DHO log category * extend rsl_chan_activate_lchan() with argument for HO reference * introduce actual minimal handover decision making in handover_decision.c * various fixes to bsc_handover_start() in handover_logic.c
2009-12-16assign measurement report lchan member after memset'ing itHarald Welte1-0/+1
2009-12-16print measurement reports more verboselyHarald Welte1-3/+11
2009-12-15introduce cache of 6 last recently received measurement reports for each lchanHarald Welte1-19/+17
2009-12-12[RSL] print human-readable channel type during channel allocation failureHarald Welte1-2/+2
2009-12-09mark lchan2chan_nr() using a 'const' parameterHarald Welte1-1/+1
which fixes some compile warnings at some callers.
2009-12-02ip.access speech mode for TCH/H channelsHarald Welte1-9/+30
2009-12-02move RTP socket information from timeslot to lchanHarald Welte1-6/+6
With ip.access, in case of TCH/H, we have one RTP stream for each half-slot (lchan), not just one per on-air timeslot. This is quite different from a classic BTS where the TRAU frames of the two TCH/H channels would be part of the same 16k sub-slot in a E1 timeslot.
2009-12-01Replace template-based SYSTEM INFORMATION with real implementationHarald Welte1-5/+5
Before this commit, OpenBSC used templates for the SYSTEM INFO 1, 2, 3, 4, 5 and 6 messages. Those templates were patched in various places to reflect the network config like ARFCN. Now, we actually generate those SI messages ourselves, using values from the configuration file, and even calculating neighbor cell lists. All bts'es that you have configured in OpenBSC will end up in the neighbor cell list - which should be more than sufficient for the current small-single-site networks.