path: root/openbsc/src/chan_alloc.c
AgeCommit message (Collapse)AuthorFilesLines
2009-12-28print full lchan name when recycling it26c3Harald Welte (local)1-1/+1
2009-12-28export the 'trx_is_usable() function and use it from pagingHarald Welte (local)1-1/+1
this ensures we don't send paging requests to currently inactive transceivers.
2009-12-27Introduce new ACT_REQ state to prevent race condition during channel allocationHarald Welte (local)1-1/+2
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-24channel allocator: don't allocate channels of unavalable TRXsHarald Welte1-0/+38
In case we have multiple TRX configured, but not all of them are actually active/operational, we should not try to allocate channels from such transceivers.
2009-12-22Display current channel usage load in 'show bts' and 'show network'Harald Welte1-0/+49
This is just the load at one given instant. We definitely also want to see some averages and record the measurements in a database later.
2009-12-21[handover] Real handover algorithmHarald Welte1-0/+2
This implements the handover algorithm (and associated parameters) as described in Chapter 8 of the book "Performance Enhancements in a Frequency |Hopping GSM Network" by Thomas Toftegard Nielsen and Jeroen Wigard. The parameters such as averaging windows are configured in struct gsm_network. We keep some state to trakc up to 10 neighbors as they are being reported from the MS. This has so far only been tested in a network with two BTS that have each other as neighbor. Networks with morge neighbors might encounter bugs.
2009-12-21chan_alloc: Delete T3101 on lchan_free as wellSylvain Munaut1-0/+1
If a RF channel is assigned but no response is ever heard from the phone, we will receive a CONNECTION FAIL from the BTS, triggering a RF release freeing the channel. Then sometime later, T3101 will expire as well and free the channel again ... Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2009-12-17logging: introduce log levels at caller siteHarald Welte1-4/+4
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-15introduce cache of 6 last recently received measurement reports for each lchanHarald Welte1-0/+9
2009-12-12make speech calls with NECI=1 workHarald Welte1-1/+3
Fix minor bug with speech calls in case of NECI=1
2009-12-12If we're trying to allocate TCH/H but don't have it, fallback to TCH/FHarald Welte1-0/+3
The rationale is as following: If we have NECI=1, then the phone will request a channel with CHREQ "0100xxxx Originating speech call from dual-rate mobile station when TCH/H is sufficient and supported by the MS for speech calls", then we will try to allocate a TCH/H [as it is sufficient]. However, if there are no free TCH/H slots on the BTS, we abandon and can't handle the MO call at all :(
2009-11-19[lchan] RSL and RR need the multirate config, place it in the lchanHolger Hans Peter Freyther1-0/+3
Both GSM 04.08 RR and GSM 08.58 RSL need the multirate config in the channel modify. Place the config in the lchan, change the gsm48 methods to not take the argument, change the RSL implementation to make use of it with the right IE. The other code should use the t(l)v_put routines as well but were left untouched for now.
2009-11-19[lchan] Fix the SAPI reset in the chan allocation...Holger Hans Peter Freyther1-1/+1
Reset the whole array instead of just the first element.
2009-10-29[lchan] Keep track which SAPIs has been established with the BTSHolger Hans Peter Freyther1-0/+3
Keep track of which SAPIs have been established either by the BTS (from the MS) or by us. This can be used by the on-waves BSC code to figure out if a new request should be made.
2009-10-27misc: Use NULL instead of integer value for a NULL pointerHolger Hans Peter Freyther1-2/+2
2009-08-10when channel allocator operates in reverse order, prefer SDCCH/8 over SDCCH/4Harald Welte1-2/+11
2009-08-10introduce bts->chan_alloc_reverse flagHarald Welte1-17/+38
The channel allocator can be set in ascending or descending order. Ascnending means we first try to allocate channels on TRX0, then TRX1, etc. Descending means we first try to allocate cahnnels on TRXn, then n-1 down to 0.
2009-08-10use list iteration macros to iterate over list of TRXHarald Welte1-6/+7
2009-08-10move chcomb4pchan to public abis_nm_chcomb4pchan() functionHarald Welte1-10/+1
2009-08-09chane TRX0/TS0 channel combination to not include a CBCHHarald Welte1-5/+5
We don't support CBCH anyway, and using CBCH will reduce the number of uesable SDCCH/4 channels to 3 on TS0
2009-08-09move search for existing lchan for subscriber to new functionHarald Welte1-0/+15
There's now a new function called 'lchan_for_subscr()' which can be used to determine if there is any existing lchan for this subscriber.
2009-08-08start using the RLL RELEASE proceduresHarald Welte1-1/+1
So far, we immediately disable the RF channel without following a proper RLL RELEASE procedure. This patch changes this. If we locally terminate the connection, the channel allocator now triggers a RLL RELEASE REQuest, which is responsed by the MS with a RLL RELEASE CONFirm, based on which we send the RF CHANnel RELease to the BTS. If the MS terminates the connection, we receive a RLL RELEASE INDication, based on which we trigger RF CHANnel RELease to the BTS.
2009-07-29make channel allocator policy multi-TRX awareHarald Welte1-14/+28
For now, we assume that TRX1 (and higher) all have a TCH/F configuration on all of their timeslots
2009-06-26Merge branch 'master' into tallocHarald Welte1-1/+1
2009-06-26fix typosHarald Welte1-1/+1
2009-06-21switch to dynamically allocated BTS and TRX data structuresHarald Welte1-6/+7
This makes it much easier to do run-time configuration using the vty interface.
2009-06-10reworked MNCC codebaseHarald Welte1-2/+2
This is Harald's reworked MNCC base, slowly heading towards integration into master. The key changes are: * provide much more structure to the data in gsm_mncc * encode_* and decode_* functions now take a structure rather than tons of individual arguments (whose order nobody can remember) * make sure we don't have copies of the same code everywhere by introducing mncc_set_cause() and mncc_release_ind() * save horizontal screen space if possible * make sure we break lines > 80 characters
2009-06-10move openbsc into its own subdirectoryHarald Welte1-0/+256