aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include
AgeCommit message (Collapse)AuthorFilesLines
2010-01-03gsm_data: Move auth related structure earlierSylvain Munaut1-20/+22
This is gonna be needed by the next commit ... Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-01-03encryption: Import a GPL comp128 implementationSylvain Munaut1-0/+22
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-01-03gsm_04_08: Specify key_seq when calling gsm48_tx_mm_auth_reqSylvain Munaut1-1/+1
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-01-03db: Add methods to set auth{info,tuple} for a subscriberSylvain Munaut1-0/+4
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-01-03db: Add declaration for get_auth{info,tuple_for_subscriberSylvain Munaut1-0/+6
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-01-03gsm_data: Fix sres to be 4 bytesSylvain Munaut1-1/+1
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-01-03db: Add issued/use_count/key_seq fields to AuthTuplesSylvain Munaut1-0/+2
Theses will be useful to know if we can reuse the tuples or if we should renew. The 'issued' is currently purely informative. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-01-03abis_nm: Introduce & use a nm_is_running function to test gsm_nm_stateSylvain Munaut1-0/+1
This returns true if the gsm_nm_state can be considered 'running'. Note that we also accept availability==0xff (which is a code for no value) because according to 12.21 it is perfectly valid. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-01-03silent_call: Add option to choose channel typeSylvain Munaut1-1/+2
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-01-01introduce and implement silent_call_reroute() and silent_call_rx()Harald Welte1-0/+2
Thise two functions are interfacing with the 04.08 layer 3 to determine if a particular message should be handled inside the OpenBSC layer 3, or if it should be handled in the silent call handler.
2010-01-01keep 'silent call' state in struct lchanHarald Welte1-0/+2
This enables us to reliably detect if a lchan is part of a silent call or not.
2009-12-31[misc] Utilize rf_locking by setting the nm_state.administrativeHolger Hans Peter Freyther1-3/+0
* On start the vty code will call the abis_nm method and this will set the administrative state to unlock/lock * During startup the BTS will report its state as well and would possible overwrite the set administrative. We are only going to update the administrative if it was 0 before. This appears to work on all of my tests. In case this will not be the case for others we will have to split the administrative into two sets one for the BTS and one for the BSC.
2009-12-30[abis] Dispatch a IPAC restart ACK/NACK signalHolger Hans Peter Freyther2-0/+3
* Add the NACK version to the list * Dispatch the signal when we receive the message * Handle it in ipaccess-config by exiting the application
2009-12-30[ipaccess] Restart only after setting the OML IP, software loadHolger Hans Peter Freyther1-0/+5
* Do not issue the restart right aways if we have OML IP or software load in the queue (hint, we need a real queue of operations to carry out... with one big state machine) * Change the signal_data of ipacc ACK/NACK to contain the msg type and the bts pointer. * Issue a restart for software load and OML and use the BTS pointer we got out of the new signal data.
2009-12-30[ipaccess] Change the name to be slightly better..Holger Hans Peter Freyther1-1/+1
2009-12-30[ipaccess] Expose the sub header list as well..Holger Hans Peter Freyther1-1/+24
2009-12-30[ipaccess] Turn firmware parsing into a routine so it can be usedHolger Hans Peter Freyther1-0/+28
* text3 seems to be a version as the text content starts with a 'v' * move the sdp_firmware into the ipaccess.h and declare the function. The headers are returned through a list.
2009-12-30[abis] Add ACK signal and send it on SET NVATTR ACKHolger Hans Peter Freyther1-0/+1
* Add the signal definition to signal.h * Dispatch the signal from abis_nm.c * Handle it in ipaccess-config.c and say we are done with work
2009-12-29rsl: add new 'gsm_trx_name()' function and use itHarald Welte (local)1-0/+1
2009-12-29export the 'trx_is_usable() function and use it from pagingHarald Welte (local)1-0/+2
this ensures we don't send paging requests to currently inactive transceivers.
2009-12-29Introduce gsm_lchans_name() for human readable lchan state nameHarald Welte1-0/+1
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-0/+1
This state will help us to differentiate between channels where we have requested the release, and channels that are actually released.
2009-12-28vty: replace'logging level' numeric value with human readable stringHarald Welte (local)1-0/+2
2009-12-28set the TRX nominal power by default and/or VTYHarald Welte (local)1-0/+1
2009-12-28Introduce 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-28Introduce 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-28rename 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-26[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.