aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include
AgeCommit message (Collapse)AuthorFilesLines
2009-12-27Introduce and use gsm_lchan_name() in addition to gsm_ts_name()Harald Welte (local)1-0/+1
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-27Introduce new ACT_REQ state to prevent race condition during channel allocationHarald Welte (local)1-0/+1
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-27rename gsm_lchan_name() to gsm_lchant_name()Harald Welte (local)1-1/+1
2009-12-26add 'get_string_value()' as inverse function of 'get_value_string()'Harald Welte (local)1-0/+1
2009-12-25[meas_rep] Add raw neighbor index into per-cell parsed meas repHarald Welte1-0/+1
2009-12-24add (and use) new subscr_name() function to get name or IMSIHarald Welte1-0/+2
2009-12-24[debug] Introduce DREF debug category for reference countingHarald Welte2-2/+3
2009-12-24Converrt the database later to use DEBUGP/LOGP instead of stderrHarald Welte1-0/+1
2009-12-24vty: sub-divide talloc contexts and include them in talloc reportHarald Welte2-0/+4
The VTY code makes so many allocations that a full report is simply too long to provide any useful information. So we sub-divide it in multiple contexts, and report only one level deep at SIGURS1. We also introduce SIGUSR2 for the full detailed VTY report.
2009-12-24db: Fix compile warning, declare db_sms_get_unsent_by_subscrSylvain Munaut1-0/+1
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2009-12-24use enum for operational stateHarald Welte1-0/+6
2009-12-24Merge remote branch 'origin/master'Harald Welte1-0/+19
2009-12-24[authentication] Code for retrieving authentication data from SQL DBHarald Welte1-0/+19
This is the first step towards supporting actual A3/A8 authentication.
2009-12-23introduce #defines for ip.access RSL and OML UDP portsHarald Welte1-0/+3
2009-12-23[statistics] Do the syncing to db from within the bsc_hackHolger Hans Peter Freyther1-0/+2
Change the counters_store_db function to be a generic for_each function taking a function pointer and data. Use that in bsc_hack to store it to the DB. This is removing the DB requirement and will allow to handle the counter values in different ways without making the counter list public. I verified that the syncing is still taking place.
2009-12-23[statistics] Make counter_db_store internalHolger Hans Peter Freyther1-1/+0
Do not expose DB functionality on this level
2009-12-22Import the new logging architectureHolger Hans Peter Freyther2-31/+101
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 Welte4-26/+61
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-22bts: Allow config of RACH control parameters tx-integer & max retransSylvain Munaut1-0/+7
Tweaking theses can be useful especially tx-integer that influence both the spread of rach attemps and the delay between two attemps. Looking up GSM 04.08 3.3.1.1.2 & 10.5.2.29 can help determine good values. The default are choosed with a wide spacing between attemps (tx integer = 9 -> T=12 & S=217 (non-combined CCCH/SDCCH) or 115 (for combined CCCH/SDCCH)). This alleviates the problem of responding to several RACH attempts by a same MS, allocating several RF channels when only 1 is needed. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2009-12-22Display current channel usage load in 'show bts' and 'show network'Harald Welte1-0/+12
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-22keep some internal statistics inside OpenBSCHarald Welte1-0/+45
the statistics will give us some idea about the network load and performance.
2009-12-21remove duplicate flag for cell barringHarald Welte1-1/+0
it's sufficient if we keep the state of cell barring in one place
2009-12-21[handover] Real handover algorithmHarald Welte1-0/+30
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-21RSL: keep track if a channel is active or notHarald Welte1-0/+9
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-21meas_rep: utility function for processing of measurement reportsHarald Welte1-0/+27
This provides two functions: get_meas_rep_avg() to obtain the sliding window average of one particular field, and meas_rep_n_out_of_m_be() to check if at least N out of M measurments are >= BE.
2009-12-20rename ipacc_connect_proxy_bind() to rsl_ipacc_mdcx_to_rtpsock()Harald Welte1-0/+1
Our RTP sockets are no longer just for the proxy mode, so having "proxy" in the function name is really misleading.
2009-12-20remove hand full of 'extern ipacc_rtp_direct' definitionsHarald Welte1-0/+1
and instead declare it in gsm_data.h
2009-12-20RTP Proxy: Fix RTP sequence number and timestamp in case of dropped framesHarald Welte1-0/+1
During handover, we will not send RTP frames for quite some time. However, the way the rtp_send code is structured, it will increment the timestamp with a fixed amount every time we send a frame, independent how much wallclock time has actually passed. This code is a hack to update the sequence number and timestamp in case it seems to be wrong. It makes handover much more reliable.
2009-12-19Add RTP support for EFRHarald Welte1-0/+1
This is just the minimal support to receive and send EFR codec RTP frames. We are missing the code to convert TRAU frames in EFR format!
2009-12-19RTP-enable MNCC API for LCR + ip.accessHarald Welte4-4/+21
Instead of passing TRAU frames down the MNCC API to the call control application like MNCC, we now decode the TRAU frame into the actual codec frame. We do the same with the RTP packets in case of ip.access and thus have a unified format of passing codec data from the BTS to an application, independent of the BTS type. This is only implemented for V1 full-rate at the moment, and needs to be fixed.
2009-12-19[handover] add VTY parameter to enable/disable handoverHarald Welte1-0/+3
2009-12-19ip.access: Keep a full copy of local and remote IP/PORT in lchanHarald Welte4-3/+7
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-18remove call_handling.h, a reminescent of old daysHarald Welte1-64/+0
2009-12-17add handover.h file to Makefile.am to make distcheck happyHarald Welte1-1/+1
2009-12-17logging: introduce log levels at caller siteHarald Welte1-0/+11
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-17introduce trans_lchan_change() to update transaction about lchan changeHarald Welte1-0/+5
2009-12-17[handover] first functional handover implementationHarald Welte3-1/+11
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-17make handover reference a function call argumentHarald Welte1-2/+2
2009-12-16ip.access: Keep OML/RSL up/down state per-bts for multi-BTS setupsHarald Welte1-0/+1
2009-12-15mroe comments on meas_rep data structuresHarald Welte1-0/+5
2009-12-15introduce cache of 6 last recently received measurement reports for each lchanHarald Welte1-0/+6
2009-12-15add BSIC parameter to gsm_bts_neighbor()Harald Welte1-1/+2
When looking for the gsm_bts of a neighbor cell, use BSIC and ARFCN tuple rather than just ARFCN for better identification purpose.
2009-12-14Implement gsm_bts_neighbor() function to determine neighbor BTSHarald Welte1-0/+4
We will need this for the actual handover algorithm implementation, as we will only know the current BTS and the BCCH ARFCN of the strongest cell in the measurement reports. Using this new function, we can resolve the matching gsm_bts.
2009-12-1404.08 MEAS REP: Convert relative cell number to ARFCNHarald Welte1-1/+1
Since we are keeping a bitvec of the neighbor cells, we can now use bitvec_get_nth_set_bit() to determine the ARFCN for each reported cell in the 04.08 MEASUREMENT REPORT.
2009-12-14bitvec: Introduce bitvec_get_nth_set_bit() functionHarald Welte1-0/+3
This is particularly important for determining the ARFCN for cells reported in 04.08 MEAS REP.
2009-12-14system_information: use bitvec to generate frequency listsHarald Welte1-0/+8
We use a 1024-bit-sized bitvec to generate the BA and neighbor frequency list. This bitvec is still generated from the list of all BTS's inside the BSC, but this patch is the first step to generalize this, i.e. generate arbitrary neighbor lists.
2009-12-14bitvec updates and code simplificationHarald Welte1-0/+3
* introduce a new bitvec_get_bit_pos() function to determine the bit value at a given position inside a bit vector * make sure bitvec_{get,set}_bit_pos() share code as possible
2009-12-14Add VTY setting for whether or not to sending MM INFOHarald Welte1-0/+1
2009-12-13introduce new signal every time we get a mobile identityHarald Welte1-0/+1
2009-12-13[RRLP] make RRLP mode configurable from config fileHarald Welte1-0/+15
We now support different RRLP modes (including "none" to disable RRLP), you can configure it via "rrlp mode" in the "network" section of openbsc.cfg.