aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/libbsc
AgeCommit message (Collapse)AuthorFilesLines
2014-03-06nitb: Add ctrl command to set the TRX ARFCNHolger Hans Peter Freyther1-0/+3
2014-03-06nitb: Add ctrl command to set the TRX max_power_reductionHolger Hans Peter Freyther1-0/+24
2014-03-06nitb: Add ctrl command to set the T200 of the BTSHolger Hans Peter Freyther1-0/+97
2014-03-06nitb: Add ctrl command to add/remove the BTS neighbor listHolger Hans Peter Freyther1-0/+41
2014-03-06nitb: Add ctrl command to set the BTS neighbor modeHolger Hans Peter Freyther2-24/+32
2014-03-06nitb: Add ctrl command to set the BTS ms max powerHolger Hans Peter Freyther1-0/+3
2014-03-06nitb: Add ctrl command to set the BTS cell_identityHolger Hans Peter Freyther1-0/+3
2014-03-06nitb: Add ctrl command to set the BTS location area codeHolger Hans Peter Freyther1-0/+3
2014-03-06nitb: Add ctrl command to set the BTS site idHolger Hans Peter Freyther1-0/+3
2014-03-06nitb: Add ctrl command to set the BTS descriptionHolger Hans Peter Freyther1-0/+5
2014-03-06nitb: Add ctrl command for setting the global timersHolger Hans Peter Freyther1-0/+32
2014-03-06nitb: Add ctrl command for saving the configurationHolger Hans Peter Freyther1-0/+28
2014-03-06bts: Implement setting the T200 for the BS11 and nanoBTSHolger Hans Peter Freyther3-0/+74
Implement setting the specific parts of the T200 timer for the different kind of channels. This is implemented for the nanoBTS and the BS11. The nanoBTS values have been made default, the BS11 values are now inside the example configuration value. The order in the new t200 struct is coming from GSM 12.21 and it has been verified by setting the values to 1,2,3,4,5,6,7 and having a look in wireshark at the result. The index into the data has been found with: for (i = 0; i < ARRAY_SIZE(bs11_attr_bts); ++i) if (bs11_attr_bts[i] == NM_ATT_T200) printf("BS11 i %d\n", i); for (i = 0; i < ARRAY_SIZE(nanobts_attr_bts); ++i) if (nanobts_attr_bts[i] == NM_ATT_T200) printf("N i %d\n", i);
2014-03-04libbsc: Add command to set MNC/MCC and apply it if something changedHolger Hans Peter Freyther1-0/+59
Change the splitting of the ctrl_test_runner.py. Make sure that we get one element and all the rest.
2014-03-04libbsc: Add ctrl command to apply the configurationHolger Hans Peter Freyther1-0/+31
Right now this only works for IP based BTS like the sysmoBTS and by dropping the OML link.
2014-03-04libbsc: Add ctrl command for MNC, MCC, short-name and long-nameHolger Hans Peter Freyther2-1/+76
Add the framework for adding more setting commands.
2014-02-08bsc: rf_ctrl will always be created, remove the NULL checksHolger Hans Peter Freyther2-4/+4
2014-02-08libbsc: Create the RF interface all the timeHolger Hans Peter Freyther1-15/+23
The interface can be accessed through CTRL and a socket. But currently it is only available when the socket interface has been configured. Create the interface all the time but only listen on the socket when a path has been specified.
2014-01-27Add function to update TRAU muxer after assignment or handoverAndreas Eversberg2-2/+10
E1 based BTS use TRAU muxer to decode TRAU frames. After changing channel from one timeslot to another (due to handover or assignment), the TRAU muxer must be updated. The call reference of the call is disconnected from the old channel and connected to the new channel.
2014-01-19Fix more hidden TSC bugs for Ericsson BTSHarald Welte1-3/+3
It seems that also the Ericsson RBS2000 code was assuming that we always use the bts-global TSC, rather than the possibly different TS-specific TSC.
2014-01-19TSC: Add new gsm_ts_tsc() function to resolve TSC of TSHarald Welte3-14/+4
We don't want every caller to check for ts->tsc == -1 and then using ts->trx->bts->tsc instead. Rather, introduce a new inline function to retrieve the correct value.
2014-01-19Do not expect all BTSs support TSC != BCCHarald Welte6-1/+27
We introduce a new feature indicating if the given BTS model supports a TSC that is different from the BCC (lower 3 bits of BSIC).
2014-01-19Make gsm48_lchan2chan_desc() reflect a ts-specific TSCHarald Welte1-2/+8
If the TS has a specific, different TSC than the BTS (beacon), we should use that with preference over the TSC of the BTS.
2014-01-16si: Implement range 128, 256, 1024 encodingJacob Erlbeck1-6/+6
This commit adds the implementation of these range formats to the encoder. In addition, the work-around that tried range 512 first is removed, so that the selection is primarily based on the max distance between frequencies. Ticket: OW#1061 Sponsored-by: On-Waves ehf
2014-01-16si: Add generic range w(k) encoderJacob Erlbeck1-58/+83
Currently the encoding of the chan_list is done by a hard-coded sequence of macros that closely resembles figure 10.5.16 in 3GPP TS 04.08. This patch replaces this by an algorithmic solution that can be used for all range encodings and is based on the property W(2^i) to W(2^(i+1)-1) are on w1_len-i bits when present (see section 10.5.2.13 in TS 04.08). Ticket: OW#1061 Sponsored-by: On-Waves ehf
2014-01-16si: Fix range1024 encodingJacob Erlbeck2-26/+20
f0 is currently set to arfcns[0] in range_enc_determine_range(), while GSM 04.08 requires f0 to be ARFCN 0 in range1024 encoding. This patch modifies range_enc_determine_range() to force f0 to be 0 if this encoding is used. This way the case distinction in range_enc_filter_arfcns() is not longer necessary. Sponsored-by: On-Waves ehf
2014-01-16si: Fix range512 encodingJacob Erlbeck1-1/+1
This patch fixes a bug in the range encoder that leads to wrong encoding when 17 or more ARFCNs are encoded. Sponsored-by: On-Waves ehf
2014-01-16si: Add a config option to disable SI2ter/SI2bis/SI5ter/SI5bis messagesJacob Erlbeck2-0/+30
The iPhone5 (US) appears to have some issues with the SIs generated, or the nanoBTS is not sending them correctly. Add a configurable hack to put all bands into the SI2/SI5 message. It is enabled by the bts VTY command 'force-combined-si'. This is a quick change without much reflection and watching for side effects. I have verfied that a network with ARFCN 134 and neighbors ARFCN 130 and 512 do not get generate the SI2ter and announce everything inside the SI2. This patch is conceptually based on 'si: Add a hack to disable SI2ter/SI2bis/SI5ter/SI5bis messages' (692daaf2d2). Ticket: OW#1062 Sponsored-by: On-Waves ehf
2014-01-14Each BTS can be configured for speech support (other than GSM full rate)Andreas Eversberg1-0/+81
Speech codings which are not supported by BTS will be removed from the bearer capability information element after parsing. This way it is not required for the MNCC application to consider support of each BTS. Only GSM full rate is supported by default.
2014-01-09Add VTY option for Nokia BTS that does not send RELease CONFirm messageAndreas Eversberg2-2/+55
This option is a workarround for a bug found in Nokia InSite BTS firmware version 3.0.0. There is no RELease CONFirm message for local end release. Nokia MetroSite with firmware version 4.178.16 is not affected. TS 04.06 Chapter 5.4.4.4 "Local end release procedure" states that a confirm must be sent by layer 2 when receiving a local end release request. In order to correctly switch a channel (handover or assignment), local end release is required.
2013-12-27bsc: Reduce the RLL timeout to be smaller than TC1/max_retr+1Holger Hans Peter Freyther1-1/+1
Sylvain pointed out that the RLL and the SMC timeout is the same. This can lead to have a SMC re-transmission before the first RLL Establish Request has timed out. Reduce the RLL timeout. GSM 08.58 does not specify a timeout so right now I just reduce it to seven seconds.
2013-12-18Fix: Nokia requires VTY's "oml e1" parameters alsoAndreas Eversberg1-1/+1
When writing config file, OML configuration must be written for all E1 based BTS, which includes Nokia *Site BTS.
2013-12-12si: Make sure to not overwrite orig_arfcn_hi in the range encodingHolger Hans Peter Freyther1-1/+1
Andreas highlighted that the doubel assignment is not needed and wrong. Change the code to assign chan_list[0] before writing the base frequency to the header. Update the testcase to make the highest bit set and update the test result.
2013-12-12vty: Address coverity issue with subscr->name never being NULLHolger Hans Peter Freyther1-1/+1
Coverity points out that subscr->name is an array and never NULL. Use strlen instead in this check. Fixes: Coverity CID 1040717
2013-12-12subscriber: Address coverity warning and truncate the IMSIHolger Hans Peter Freyther1-1/+2
The IMSI can only be 15 characters in length, our define gives us a length of 17. This means we have place for two NULs. Use strncpy and make sure it is null-terminated. Fixes: Coverity CID 1040707
2013-11-22bsc: Add a VTY command to show the paging group for a BSC/IMSIHolger Hans Peter Freyther1-0/+35
2013-11-01bsc: Move gsm48_tx_mm_serv_ack/rej to gsm_04_08_utils.cJacob Erlbeck1-0/+34
These functions are currently located in libmsc/gsm_04_08.c together with other symbols that (transitively) depend on many external symbols (and thus libraries) that aren't otherwise needed by e.g. osmo-bsc. Since gsm48_tx_mm_serv_ack() will be needed by osmo-bsc, these functions are moved to avoid the dependency on gsm_04_08.o. Sponsored-by: On-Waves ehf
2013-10-30vty: Use vty_install_default() instead of bsc_install_default()Jacob Erlbeck3-6/+6
Remove ournode_exit_cmd, ournode_end_cmd, and bsc_install_default() since this functionality is provided by the current libosmocore. Replace calls to bsc_install_default() by call to vty_install_default() with the following semantic patch: @rule1@ expression N; @@ - bsc_install_default(N); + vty_install_default(N); Ticket: OW#952 Sponsored-by: On-Waves ehf
2013-10-08abis: Consistent usage of LOGP/DEBUGP for "RSL CONNECT NACK"Alexander Chemeris1-2/+2
2013-09-19bsc/mminfo: Patch timezone and DST in MM Info messagesJacob Erlbeck1-2/+35
This adds in-place patching of the time information in the MM INFORMATION message. The timezone in the 'Local time zone' and the 'Universal time and local time zone' information elements and the offset in the 'Network Daylight Saving Time' information element are optionally set. The new values are determined by the 'timezone' vty command in the config_net_bts node. That command is extended by an optional DST offset parameter. Tests are provided for the vty part and for the plain bsc_scan_msc_msg() function. Sponsored-by: On-Waves ehf Ticket: OW#978
2013-09-18bsc: Add vty command for setting Access control classes.Ivan Kluchnikov1-0/+54
2013-09-16vty: Cosmetic change to the writing of the bts->modelHolger Hans Peter Freyther1-8/+16
Based on the feedback of Peter from the mailinglist, move the writing code to a new method and return early if there is no bts->model.
2013-09-11ctrl: Remember last 'rf_locked' control commandJacob Erlbeck2-0/+5
This stores the last SET rf_locked control command along with a timestamp. The 'show network' vty command is extended to show this information. Ticket: OW#659
2013-09-11vty: Hide unconfigured BTS on 'write'Jacob Erlbeck1-4/+6
This prevents the application from crashing when there is a half configured BTS (e.g. by using the command 'bts 1' when there isn't a BTS 1) and the 'write' command is used.
2013-09-04bsc_msc: Fix possible null pointer dereferenceHolger Hans Peter Freyther1-3/+1
In case the allocation of con is failing, do not attempt to print con->name as this will be a null pointer dereference. Fixes: Coverity CID 1076318
2013-09-03bsc_msc: Stop the re-connect timer in case the msc is lostHolger Hans Peter Freyther1-0/+1
It was possible to cause a crash by enabling and disabling the MSC connection. The enabling lead to scheduling a connection and the second call was not stopping the timer.
2013-09-03bsc_msc: Add a name field to the MSC Connection to differentiate linksHolger Hans Peter Freyther1-17/+33
Assign a static name to a MSC Connection and use it. In case there are multiple connections we can now more easily identify them. This is only used for the NAT right now, the BSC could start to name the various MSC connections too.
2013-09-02vty: Use generic 'end' and 'exit' commandsJacob Erlbeck3-16/+6
Add bsc_install_default() and replace all install_default() This patch adds bsc_install_default() which calls install_default() and add 'exit' and 'end'. All other calls to install_default() are replaced by calls to bsc_install_default(). Since 'exit' and 'end' are now added automatically to each node, the explicit registrations of these commands are removed by this patch, too. The related tests succeed now without work-arounds (except for the 'config' node itself which is part of libosmocore).
2013-09-02nanobts: Fix initialization of two concurrent BTS.Holger Hans Peter Freyther1-15/+51
It was possible that the wrong NSEI information was sent to the BTS. This is because patch_nm_tables is not called before sending the data to the BTS. This will break when two BTS connect more or less at the same time. Stop using the arrays directly and instead introduce a method that will patch the table and return the data and length. This makes sure that all users patch the table before we send the data to the BTS. I bootstrapped a sysmoBTS and I can bring up rsl. The device is running with a dummy load so I couldn't do more verification.
2013-07-27expiration: Allow to disable the periodic location updating procedureHolger Hans Peter Freyther1-2/+21
Disable the periodic LU using "no periodic location update" VTY command. In that case set the expire_lu to 0 which will then be translated to a NULL in the database layer. This leads to a bit of copy and paste in the db_sync_subscriber method but I don't see how we could easily use 'datetime(%i, 'unixepoch')' and 'NULL' at the same time. Change the query to find expired queries to check for NOT NULL and the time being in the past. This means if there are still old subscribers in the database they might not be expired. One would need to execute a query like "UPATE Subscriber SET expire_lu = 0 WHERE expire_lu is null". The same applies when disabling the periodic LU. One would need to update the database by hand. Manual tests executed/passed: 1.) periodic LU enabled: * use gst LUTest.st to do a LU * UPDATE Subscriber SET expire_lu=datetime('now'); * observe the subscriber being expired (it was) 2.) periodic LU disabled: * use gst LUTest.st to do a LU * verify that the expire_lu is NULL in the database