aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/abis_rsl.c
AgeCommit message (Collapse)AuthorFilesLines
2011-01-14[RSL] Move RF CHAN REL ACK into its own functionHarald Welte1-10/+19
... rather than handling it in the main switch() statement
2011-01-13[RSL] add missing hunk from commit 18b590de4acec1536d5fc44ae60cf2ff7250ffe6Harald Welte1-0/+19
2011-01-06rtp: Move the RTP Proxy code out of RSL into the BSC/MSC domainHolger Hans Peter Freyther1-30/+0
Instead of creating the sockets in the RSL code we will do this in the CRCX_ACK, MDCX_ACK, DLCX_IND signal handler of gsm_04_08. Introduce a handover signal so we can repatch the RTP sockets in the gsm_04_08 as well.
2011-01-01License change: We are now AGPLv3+ instead of GPLv2+Harald Welte1-6/+5
The reason for this is quite simple: We want to make sure anyone running a customized version of OpenBSC to operate a network will have to release all custom modifiations to the source code.
2010-12-27lchan: Every SS_LCHAN signal now sends a struct lchan_sig_dataHolger Hans Peter Freyther1-4/+13
The SS_LCHAN signals now always include the lchan_sig_data. For the measurement report it will optionally include the measurement report as well. Attempt to update all handlers of this signal as well
2010-12-24RSL: Make "waiting for SAPI=%d to be released" LOGL_DEBUGHarald Welte1-1/+1
2010-12-23Use 04.08 IMM ASS REJECT in case we run out of channelsHarald Welte1-1/+42
If the user has a non-zero 'timer t3122' in the config file, we will send an IMM ASS REJECT in case we run out of resources.
2010-12-23Dynamic PDCH: rsl_ipacc_pdch_activate() operates on a timeslotHarald Welte1-9/+13
... not on the lchan.
2010-12-22rsl: Remove unimplemented/unused rsl_paging_cmd_subscrHolger Hans Peter Freyther1-12/+0
RSL should not know the details of a GSM Subscriber anyway.
2010-11-15rsl: Allow to hardcode the RTP PayloadHolger Hans Peter Freyther1-0/+6
In case of a inflexible network it is better to hardcode the rtp payload to a given type. E.g. when using AMR5.9 on a TCH/F and TCH/H having the same payload is helpful. For now this will be only used by the osmo-bsc.
2010-09-06chan: Store the to be assigned channel type in the GSM Network.Holger 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-09-06bsc_init: Allow DTXu and enable DTXd on RSL (experimental)Holger 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 and still considered as experimental.
2010-09-06[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-07-31chan_alloc: Change Channel Release to release SAPIs, then the channelHolger Hans Peter Freyther1-3/+15
Currently every SAPI release indication will trigger the channel. It was possible that we had SAPI=3 and SAPI=0 allocated and we tried to release the channel by sending a RF Channel Release, the BTS answered with a RF Channel Release ACK but also sent the SAPI Release Indication which triggered a channel release here. So it was possible that we would have released a newly allocated channel because of the SAPI release of the old connection. This code now works by releasing all SAPIs from highest to lowest, then sending a SACH Deactivate and finally releasing the channel. This approach is in use on the on-waves/bsc-master.
2010-07-31abis_rsl: Reduce level from notice to debug for measurement reportsHolger Hans Peter Freyther1-1/+1
It can happen that OpenBSC decides to close the lchan but we still receive some measurement reports until the BTS has decided to close the channel.
2010-07-23rsl: Add method to send a SMSCB inside a SMS BROADCAST COMMANDHolger Hans Peter Freyther1-0/+22
* Untested code for sending the SMS BROADCAST COMMAND.
2010-06-30abis_rsl: Add full MA again until we are confident to remove itHolger Hans Peter Freyther1-1/+6
The spec seems to say we do not need to include the full MA, even for Phase1 phones but that is not so clear...
2010-06-30abis_rsl: Change code to generate Channel IdentificationHolger Hans Peter Freyther1-19/+16
1.) memset the gsm48_chan_desc to avoid sending dummy data 2.) According to the GSM08.58 9.3.5 the Mobile Allocation shall be included but the empty (by setting the length to zero). 3.) use msgb_tlv_put and calculate the length via the l3h msgb_l3len and assign it.
2010-06-29[BSC] RSL: CHAN ACT: Only include MA if TS is hoppingHarald Welte1-5/+13
2010-06-28[BSC] fix off-by-one error in computing l2 pseudo-length in IMM ASSHarald Welte1-1/+2
@fingerprint: This caused Motorole EZX phones (Neptune LTE chipset) to discard all immediate assigns and thus be unable to perform location updating.
2010-06-28bsc_api: Allocate the subscriber_connection dynamicallyHolger Hans Peter Freyther1-1/+2
This is a big change to the way we use the subscriber connection. From now on it is is dynamically allocated and we will slowly move from a 1:1 lchan to conn to having more than one lchan per connection. This is the first commit, the subscr_con* methods will move to gsm_data once the use_count is removed from the connection, the freeing of the connection will also change.
2010-06-28Revert "bsc_api: Move debug context for subscriber into the bsc_api.c"Holger Hans Peter Freyther1-0/+1
This is breaking the filtering for the Measurement Report case, revert the patch for now. This reverts commit 69e8f8285bf080ad2050fbc20f861bc8621e5c75.
2010-06-22abis_rsl: Send the IMMEDIATE Assignment after the Channel Ack.Holger Hans Peter Freyther1-13/+40
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.
2010-06-21[RSL] hopping: Set correct L2 pseudo-length during IMMediate ASSignlaforge1-1/+4
Thanks to Sylvain for the hint that lead to this fix.
2010-06-21bsc_api: Move debug context for subscriber into the bsc_api.cHolger Hans Peter Freyther1-1/+0
2010-06-20[BSC] RSL: Fix Channel Identification IE in RSL CHAN ACTlaforge1-10/+15
We now not only include the 04.08 channel description but also the 04.08 Mobile Allocation nested IEs
2010-06-20[BSC] RSL: properly include MA in IMM ASS CMDlaforge1-15/+14
When we build an IMMediate ASSign CoManD for a hopping channel, we need to include the length of the MA in the total length of the 04.08 message
2010-06-20[BSC] Hopping: Add MA IE to ASS CMD, IMM ASS CMD and HO CMDHarald Welte1-1/+4
Also, make sure the bit ordering in the pre-computed MA is correct, as well as the cell channel description of the target cell being present in the HO CMD.
2010-06-20[BSC] Implement per-timeslot ARFCN lists for frequency hoppingHarald Welte1-6/+7
We now compute the Cell Channel Description for SI 1 by bit-wise OR of the ARFCN bitmask of each timeslot on all the TRX of the BTS. Also, support generating a GSM 04.08 Channel Description IE for the hopping case (with HSN/MAIO instead of ARFCN). What's still missing now: Sending the 04.08 Mobile Allocation IE
2010-06-08abis_rsl: Allow to specify the release mode for a given channel.Holger Hans Peter Freyther1-2/+3
This can be used by handover, early assignment to indicate the close of the old channel...
2010-06-08abis_rsl: Fixup direct assignment and go through the method.Holger Hans Peter Freyther1-2/+2
2010-05-31[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-05-31[rsl] Implement the T3111 timer to delay the RF Channel releaseHolger Hans Peter Freyther1-4/+15
2010-05-31[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-05-31[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-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.