aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include/openbsc/gsm_data.h
AgeCommit message (Collapse)AuthorFilesLines
2009-12-22Merge commit 'origin/master' into on-waves/bsc-masterHolger Hans Peter Freyther1-4/+138
Conflicts: openbsc/include/openbsc/Makefile.am openbsc/include/openbsc/gsm_data.h openbsc/src/Makefile.am openbsc/src/abis_rsl.c openbsc/src/chan_alloc.c openbsc/src/gsm_04_08.c openbsc/src/gsm_data.c openbsc/src/vty_interface.c The biggest problem is the moving of the RTP code into the RSL layer. This may break quite some things...
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-20remove hand full of 'extern ipacc_rtp_direct' definitionsHarald Welte1-0/+1
and instead declare it in gsm_data.h
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 Welte1-1/+4
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-16ip.access: Keep OML/RSL up/down state per-bts for multi-BTS setupsHarald Welte1-0/+1
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-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-14Add VTY setting for whether or not to sending MM INFOHarald 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.
2009-12-06location updating reject cause now specified on VTY rather than command line ↵Harald Welte1-0/+1
argument
2009-12-06move RTP socket information from timeslot to lchanHarald Welte1-7/+8
With ip.access, in case of TCH/H, we have one RTP stream for each half-slot (lchan), not just one per on-air timeslot. This is quite different from a classic BTS where the TRAU frames of the two TCH/H channels would be part of the same 16k sub-slot in a E1 timeslot.
2009-12-06Assign default values for T3101 and T3113Harald Welte1-0/+3
Without those default values, old config files will no longer work after commit 23975e718fd456ff8be7effbb915903f1bc173be
2009-12-02move RTP socket information from timeslot to lchanHarald Welte1-7/+8
With ip.access, in case of TCH/H, we have one RTP stream for each half-slot (lchan), not just one per on-air timeslot. This is quite different from a classic BTS where the TRAU frames of the two TCH/H channels would be part of the same 16k sub-slot in a E1 timeslot.
2009-12-01Replace template-based SYSTEM INFORMATION with real implementationHarald Welte1-2/+9
Before this commit, OpenBSC used templates for the SYSTEM INFO 1, 2, 3, 4, 5 and 6 messages. Those templates were patched in various places to reflect the network config like ARFCN. Now, we actually generate those SI messages ourselves, using values from the configuration file, and even calculating neighbor cell lists. All bts'es that you have configured in OpenBSC will end up in the neighbor cell list - which should be more than sufficient for the current small-single-site networks.
2009-12-01Assign default values for T3101 and T3113Harald Welte1-0/+3
Without those default values, old config files will no longer work after commit 23975e718fd456ff8be7effbb915903f1bc173be
2009-11-24Merge branch 'master' into on-waves/bsc-masterHolger Hans Peter Freyther1-1/+13
Conflicts: openbsc/src/abis_nm.c openbsc/src/bsc_init.c openbsc/src/vty_interface.c
2009-11-24[vty] Add option to disable RF on a given TRX.Holger Hans Peter Freyther1-0/+5
- Make sure that on runtime the Radio Carrier can be locked and unlocked. The vty code calls into the Abis NM to lock/unlock the channel and the state is stored there. - Make sure that on start the Radio Carries remains offline and we are not starting it. On start the radio carrier is either locked or unlocked. This means the RSL will not connect until the RF is unlocked. It will connect then. To see RSL bringup failures one needs to parse the RSL nack message. - When the TRX is locked on startup the RSL link will only be established after it will be unlocked.
2009-11-22[network] Make use of T3113 for pagingHolger Hans Peter Freyther1-1/+0
Add it to the configuration files and make use of it in the the paging.c.
2009-11-22[network] Add config option for the remaining network timersHolger Hans Peter Freyther1-0/+10
There are all set to 0 and not used within the code yet but should be used in the future.
2009-11-22[network] Make T3101 configurable and use it in abis_rslHolger Hans Peter Freyther1-0/+3
2009-11-20[vty] Add option to disable RF on a given TRX.Holger Hans Peter Freyther1-0/+5
- Make sure that on runtime the Radio Carrier can be locked and unlocked. The vty code calls into the Abis NM to lock/unlock the channel and the state is stored there. - Make sure that on start the Radio Carries remains offline and we are not starting it. On start the radio carrier is either locked or unlocked. This means the RSL will not connect until the RF is unlocked. It will connect then. To see RSL bringup failures one needs to parse the RSL nack message.
2009-11-20[lchan] Release the channel ones its' usecount drops to zeroHolger Hans Peter Freyther1-23/+0
Remove the timer handling from the LCHAN and release the channel ones the use count is dropping to zero. Change code that was sending/using the lchan after the release and change the send data method to warn in case the lchan is used after it has been freed.
2009-11-20[bsc] Add a rtp base port to the BSC config tooHolger Hans Peter Freyther1-0/+1
Stop having a global variable... keep it in the gsm network or the mgcp
2009-11-20[ipacc] Add a way to override the rtp payload for MDCXHolger Hans Peter Freyther1-0/+1
2009-11-20[bsc] Send the SCCP IT message in a given intervalHolger Hans Peter Freyther1-0/+3
Send the message every 60 seconds on every SCCP connection. The 60 seconds were taken from a protocol trace obtained on the network.
2009-11-20[vty] Add configuration for the preferred speech versionHolger Hans Peter Freyther1-0/+11
Add network configuration option to specify which audio codecs are supported by the BTS. This allows the BSC to pick the audio codec in the GSM0808 Assignment Request.
2009-11-20[bssap] First go at implementing channel assignment...Holger Hans Peter Freyther1-1/+0
2009-11-20[bssap] First go at implementing ASSIGNMENT REQUESTHolger Hans Peter Freyther1-0/+10
2009-11-20[bssap] Start to queue messages to the BTS and to the MSCHolger Hans Peter Freyther1-0/+7
For the MSC we need to queue GSM04.08 messages until the SCCP connection is confirmed to be open and then can send the stored messages. The queue is limited to 10 messages at which point new ones will be dropped. Currently the only messages we get are measurement indication messages but it is better to be safe than sorry. The SCCP messages are sent as soon as the connection is considered established and then no queueing happens any more. While replacing sccp_connection_write calls various memory leaks has been fixed. For the MS we might have received a DTAP and need to do an operation that requires a roundtrip and want to send wait until this has happened. The two scenerios are sending a SMS to the phone that requires to do something special for the different SAPI. Currently it is assumed that only one SAPI=0 -> SAPI=3 change happen during the connection. For the first SAPI != 0 we will send the rll_ request and then wait for the timeout or confirmation. In case of timeout a SAPI "n" reject is sent and in case of success the queue is getting emptied.
2009-11-20[bsc_msc_ip] This is a BSC that connects to real MSC via IPHolger Hans Peter Freyther1-0/+20
This is a BSC to be used by on-waves.com to connect to a real MSC using SCCP over IP. The following messages and features are currently implemented: - IPA identity ack's - COMPLETE LAYER3 INFORMATION - DTAP - PAGING COMMAND - CLEAR COMPLETE/CLEAR REQUEST - CIPHER MODE COMMAND/ REJECT /COMPLETE It comes with a tool to create the enum's from the spec and a very simple test server to do the handshaking.
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-17[si] Make it possible to set the NECI value...Holger Hans Peter Freyther1-0/+1
Allow to configure the NECI value... and change code that is relying on the NECI value.
2009-11-12move 'struct value_string' and 'get_value_string()' to gsm_dataHarald Welte1-0/+7
2009-11-07change some identifiers from u_int64_t to unsigned long longHarald Welte1-1/+1
makes printf much easier on 64bit platforms...
2009-10-29[lchan] Keep track which SAPIs has been established with the BTSHolger Hans Peter Freyther1-0/+8
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: Make bitfields unsigned int...Holger Hans Peter Freyther1-2/+2
There is no use to have a signed bit in bitfields..
2009-10-24[GPRS] introudce PDCH and PDCH/TCH physical channelsHarald Welte1-0/+2
GPRS needs PDCH (Packet Data Channels), and we need support in our data model as well as OML and RSL for it
2009-10-24[GPRS] add data structures for OML of NSE,CELL,NSVCEHarald Welte1-0/+17
Supporting GPRS means we have a number of additional OML objects to deal with. We need to extend our gsm_bts structure to at least include the nm_state for each of those objects.
2009-10-05[ipaccess] Add nanoBTS 1900 supportMike Haben1-4/+2
Add support for 1900 nanoBTS by using unified bts_type GSM_BTS_TYPE_NANOBTS for 900, 1800 and 1900 versions. Reduce the nanoBTS enum values to one and derive the version from the user supplied band. In the future we might want to do auto band detection. The configuration file needs to be changed to refer to nanobts instead of nanobts900/nanobts1800. Signed-off-by: Mike Haben <michael.haben@btinternet.com> Signed-off-by: Holger Hans Peter Freyther <zecke@selfish.org>
2009-09-30[lac] The lac must be 16 bit. Change it in gsm_bts and vty parsingHolger Hans Peter Freyther1-1/+1
The LAC can be 16bit of size. the generation of the LAI, struct gsm_subsriber and the BSC<->MSC was already using it as a 16bit (short) value. Change struct gsm_bts to parse 16bit and change the vty configuration parsing code to deal with a short too.
2009-09-28[bsc] Store the cell_identity in gsm_bts and set it on the SI3 and SI6Holger Hans Peter Freyther1-0/+2
Transfering the cell_identity from BSC to MSC is required for the on-waves.com support. Allow to set the cell_identity in the cfg file and patch the system information tables to set it.
2009-08-30add VTY/configfile command for setting encryption (A5) levelHarald Welte1-0/+1
This is just configuring the gsm_network property, nobody uses it yet
2009-08-30A5 support for RSL and 04.08 (not used yet)Harald Welte1-0/+9
This just adds the 04.08 and RSL bits for A5, but not the logic for performing authentication. The caller would first set lchan->encr and then call gsm48_send_rr_ciph_mode(lchan), which encapsulates the 04.08 CIPHERING MODE COMMAND into a RSL ENCRYPTION COMMAND and sends it to the BTS for execution + forwarding.
2009-08-13add 'ms max power' vty command to set the maximum MS power in dBmHarald Welte (local)1-0/+2