aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/handover_logic.c
AgeCommit message (Collapse)AuthorFilesLines
2010-09-06[alloc] Assign a TCH for LU when all SDCCHs are occupied.Holger Hans Peter Freyther1-1/+1
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-06-30handover: lchan_free will only free the local resources.Holger Hans Peter Freyther1-1/+3
lchan_free only free's the local resource of the BSC but does not release the channel at the BTS. Use lchan_release to properly release the channel. This code assumes that the timeout happens after a CHAN ACT ACK/NACK otherwise we have some problems. The comment indicates that this is the case.
2010-06-30handover: Call bsc_handover_clear from gsm0808_clearHolger Hans Peter Freyther1-0/+24
The bsc_handover_clear will release an in-progress handover and free the lchana and the data associated with this handover
2010-06-30handover: Attempt to use the same gsm_subscriber_conn for new/old channelHolger Hans Peter Freyther1-5/+25
The transaction should not know on which lchan we are operating as this can change due handover. Add untested code to share the subscriber connection of the new and old lchan and move the pointer in case of success/failure. Also on a clear command we will free any resources allocated... This code is not tested and needs to be debugged, but it should have the right structure. I am going to fix a potential memleak in the next commit.
2010-06-28bsc_msc: Remove use_count from the subscriber connectionHolger Hans Peter Freyther1-2/+1
A channel will be released in case of * Errors via the clear_request callback... * no more transactions and operations are going on. This means that if we do something without a transaction the channel might be closed down right away. The bug fix will be to create a transaction/operation.
2010-06-28bsc_api: Allocate the subscriber_connection dynamicallyHolger Hans Peter Freyther1-4/+4
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-04-10[rsl] Set the right state when asking for the activation.Holger Hans Peter Freyther1-0/+1
Set the state to activation to avoid a warning about the getting a CHAN ACK without waiting for it. We set it in the code to make sure it is set after all error checking to avoid inconsistent state as the state is only set back to NONE/ACT due replies from the BTS.
2010-04-10[rsl] Introduce a method to set the state of the lchanHolger Hans Peter Freyther1-1/+1
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-03-25lchan: Change transaction to work on the GSM Subscriber ConnectionHolger Hans Peter Freyther1-1/+1
Change the MSC transaction code to operate on a GSM Subscriber Connection instead of the lchan. This will help us to separate the two commands properly.
2010-03-25lchan: Create a structure for MSC data of the lchanHolger Hans Peter Freyther1-3/+5
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-02-20split 'libosmocore' from openbsc codebaseHarald Welte1-3/+3
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
2009-12-26[handover] print INFO message when doing handoverHarald Welte1-0/+5
2009-12-24[handover] CRCX ACK without HO reference is normal, not an errorHarald Welte1-2/+2
2009-12-22statistics: Introduce 'struct counter' instead of using unsigned longHarald Welte1-5/+8
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/+8
the statistics will give us some idea about the network load and performance.
2009-12-21handover: set old channel to INACTIVE stateHarald Welte1-1/+4
After receiving the HANDOVER COMPLETE on the new channel, we mark the old channel as INACTIVE and try to release it ASAP.
2009-12-20[handover] implement TCH RTP stream handoverHarald Welte1-1/+69
This patch takes care of handling the RTP streams / sockets during an in-call handover from one BTS to another BTS. It only works in combination with rtp_proxy mode.
2009-12-20handover: don't create negative lchan use countsHarald Welte1-3/+0
trans_lchan_change() takes care of use counts for us.
2009-12-18[handover]: make sure the new lchan keeps the subscriber pointer of the old ↵Harald Welte1-5/+6
lchan also, ensure that we don't print debug messages about handover in non-handover channel activation cases.
2009-12-18handover: use correct handover lookup functionHarald Welte1-1/+1
2009-12-18fix segfault in case of handover timer expirationHarald Welte1-0/+1
2009-12-17logging: introduce log levels at caller siteHarald Welte1-9/+19
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-17don't try multiple concurrent handovers for 1 channelHarald Welte1-0/+5
2009-12-17call trans_lchan_change() from ho_gsm48_ho_compl()Harald Welte1-0/+3
2009-12-17[handover] first functional handover implementationHarald Welte1-3/+24
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-11-29[handover] Implement handover control logicHarald Welte1-0/+251
Code to implement handover control logic. A yet-to-be-implemented handover algorithm will call bsc_handover_start(old_lchan, new_bts) to start the handover process.