aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/libbsc/system_information.c
AgeCommit message (Collapse)AuthorFilesLines
2016-05-31Make si2q scheduling optionalMax1-1/+9
Previously si2quater SI messages were always scheduled. Check for neighbor configuration and only schedule si2q when necessary. Add corresponding unit test. Change-Id: Ibe997803ffb894133fd4d838410fe735791d414f Fixes: OS#1727 Reviewed-on: https://gerrit.osmocom.org/81 Tested-by: Jenkins Builder Reviewed-by: Holger Freyther <holger@freyther.de>
2016-05-30bsc: Create minimal SI6 rest octetsHolger Hans Peter Freyther1-1/+3
In GSM R99 SI6 has mandatory SI6 rest octets and so far we did not include them. Add minimal support to generate the right band indicator. Target a slightly older version of the SI6 rest octets as we neither support MBMS nor Random bit stream but should include the band indicator. Change-Id: I417a40eb91f42a3416b4e07bb9fb4d7a01aaa36b Fixes: OS#1698 Related: OS#1725 Reviewed-on: https://gerrit.osmocom.org/71 Tested-by: Jenkins Builder Reviewed-by: Max <msuraev@sysmocom.de> Reviewed-by: Holger Freyther <holger@freyther.de>
2016-05-23Fix copy-paste error in SI6Max1-1/+1
Fix error which prevented enabling DTX for half-rate channels. Change-Id: I7d41df0068783c8fb33ddeeab1d1dcf63c2c259f Reviewed-on: https://gerrit.osmocom.org/101 Tested-by: Jenkins Builder Reviewed-by: Holger Freyther <holger@freyther.de>
2016-05-17Move DTX settings to BTSMax1-0/+5
* Add per-BTS DTX settings * Configure Uplink and Downlink DTX separately * Deprecate global DTX option (it was never tested/used anyway) * Use libosmocore function for DTX indicator in System Information (previously it was incorrectly assigned for half-rate channels) Related: OS#22 Change-Id: I3d55168475ad47044b6238b55846ea22bdd518a4 Reviewed-on: https://gerrit.osmocom.org/40 Tested-by: Jenkins Builder Reviewed-by: Holger Freyther <holger@freyther.de>
2016-04-29Fix comment typoMax1-1/+1
2016-04-22Add vty check for max si2quater sizeMax1-1/+20
Explicitly check if added (U|E)ARFCN will fit into available si2quater message.
2016-04-22Add basic UARFCN supportMax1-2/+137
* add data structures, generation functions * vty interface for neightbor UARFCNs specific to SI2quater * vty test * unit test Fixes: OS#1666
2016-04-16Add basic SI2quater supportMax1-0/+23
* support for sending arbitrary static SI2quater. * vty interface for neightbor EARFCNs specific to SI2quater. * dynamic generation of SI2quater messages. * unit test for SI2quater messages. Fixes: OS#1630
2016-04-16Refactor SI-related codeMax1-18/+19
Move define to header file. Use inline functions where appropriate. Change int variables which are used as boolean into actual bool to make code easier to follow.
2016-04-16Add SI2quater support to SI3Max1-1/+7
Advertise SI2 quater presence and location (if available) using SI3 according to 3GPP TS 44.018 § 10.5.2.34
2015-09-04system_information.c: Distinguish two previously identical log msgsHarald Welte1-2/+2
2015-09-04Fix neighbor channel list generation for 1900 MHz PCS bandHarald Welte1-3/+3
In the 1900 MHz PCS band, we always generated neighbor cell lists consisting of only a single neighbor cell, rather than al the configured BTSs.
2015-01-01smscb: Prepare to fill in the info for CBCH in SI4Holger Hans Peter Freyther1-1/+1
Pass the number of bytes the rest octet for si4 should fill.
2014-12-30libbsc/system_information.c: Fix off-by-one error in si4 generation with ↵Daniel Willmann1-3/+3
CBCH enabled ==25637==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7fff3f587c43 at pc 0x5bf591 bp 0x7fff3f587630 sp 0x7fff3f587628 READ of size 4 at 0x7fff3f587c43 thread T0 #0 0x5bf590 in tv_fixed_put /home/alphaone/local/osmo-asan/include/osmocom/gsm/tlv.h:237 #1 0x5b7e14 in generate_si4 /home/alphaone/scm/osmo/openbsc/openbsc/src/libbsc/system_information.c:607 #2 0x5b488b in gsm_generate_si /home/alphaone/scm/osmo/openbsc/openbsc/src/libbsc/system_information.c:882 #3 0x4cb247 in gsm_bts_trx_set_system_infos /home/alphaone/scm/osmo/openbsc/openbsc/src/libbsc/bsc_init.c:166 #4 0x4d3c26 in bootstrap_rsl /home/alphaone/scm/osmo/openbsc/openbsc/src/libbsc/bsc_init.c:272 #5 0x4ced44 in inp_sig_cb /home/alphaone/scm/osmo/openbsc/openbsc/src/libbsc/bsc_init.c:316 #6 0x7f4f15b563d7 in osmo_signal_dispatch /home/alphaone/scm/osmo/libosmocore/src/signal.c:105 #7 0x7f4f156c0e3f in e1inp_int_snd_event (/home/alphaone/local/osmo-asan/lib/libosmoabis.so.4+0x17e3f) #8 0x7f4f156be7e5 in e1inp_event (/home/alphaone/local/osmo-asan/lib/libosmoabis.so.4+0x157e5) #9 0x583a6a in ipaccess_sign_link /home/alphaone/scm/osmo/openbsc/openbsc/src/libbsc/bts_ipaccess_nanobts.c:675 #10 0x7f4f156e63b0 in handle_ts1_read (/home/alphaone/local/osmo-asan/lib/libosmoabis.so.4+0x3d3b0) #11 0x7f4f156e4f4e in ipaccess_fd_cb (/home/alphaone/local/osmo-asan/lib/libosmoabis.so.4+0x3bf4e) #12 0x7f4f15b540b6 in osmo_select_main /home/alphaone/scm/osmo/libosmocore/src/select.c:160 #13 0x43c656 in main /home/alphaone/scm/osmo/openbsc/openbsc/src/osmo-nitb/bsc_hack.c:355 #14 0x7f4f1462e4bc (/lib64/libc.so.6+0x224bc) #15 0x43b6cc (/home/alphaone/local/osmo-asan/bin/osmo-nitb+0x43b6cc) Address 0x7fff3f587c43 is located in stack of thread T0 at offset 483 in frame #0 0x5b712f in generate_si4 /home/alphaone/scm/osmo/openbsc/openbsc/src/libbsc/system_information.c:580 This frame has 8 object(s): [32, 40) '' [96, 104) '' [160, 164) 'rc' [224, 232) 'si4' [288, 296) 'cbch_lchan' [352, 360) 'restoct' [416, 420) 'l2_plen' [480, 483) 'cd' HINT: this may be a false positive if your program uses some custom stack unwind mechanism or swapcontext (longjmp and C++ exceptions *are* supported) SUMMARY: AddressSanitizer: stack-buffer-overflow /home/alphaone/local/osmo-asan/include/osmocom/gsm/tlv.h:237 tv_fixed_put
2014-12-30move gsm_bts_get_cbch() to gsm_data_shared() as its needed in osmo-btsHarald Welte1-22/+1
2014-12-30Add basic support for CBCH / SMS-CB (Cell Brroadcast)Harald Welte1-2/+35
We can now configure the pyisical channel types for CBCH either in the CCCH+SDCCH4 or in the SDCCH8 chanel combination. Depending on whether a CBCH exists on the BTS, we also generate the SI4 with matching CBCH channel description to notify the phones of the existance of the CBCH. There is now a VTY command how a SMS-CB message can be sent to a given BTS. We do not yet have any logic at all for actual scheduling of multiple CBCH RSL messages towards one or multiple BTSs yet, though.
2014-11-21bts: Store the bcch_change_mark in the bts structureHolger Hans Peter Freyther1-0/+3
Store the BCCH change mark inside the BTS structure. This will allow us increment the number and re-generate the SIs. Related: SYS#739
2014-01-16si: Fix range1024 encodingJacob Erlbeck1-1/+1
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: Add a config option to disable SI2ter/SI2bis/SI5ter/SI5bis messagesJacob Erlbeck1-0/+3
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
2013-07-03hsl: Remove the support for the HSL bts from OpenBSCHolger Hans Peter Freyther1-4/+0
The support has been implemented for an old model, we were told that newer versions would be made incompatible with OpenBSC. Ther are various warnings in the code and coverity has found some new ones. Just remove the code as we don't know of anyone using this code.
2013-03-17Add VTY option to set GPRS network-control-order to enable MS measurementsAndreas Eversberg1-0/+1
In order to enable GPRS downlink measurements at mobile, the network-control-order must be set to nc1.
2013-03-10si: Another round of PCS related fixesHolger Hans Peter Freyther1-2/+14
Inside the SI1 rest_octets we will need to indicate if the ARFCN is band 1800 or 1900. If the BTS is either 850 or 1900 we assume we are running a PCS network, otherwise it is a DCS network. The band indicator is not documented in GSM 04.08 but it is in the GSM 05.14 version 6.1.0 Release 1997.
2013-01-17si: Deal with DCS1800 and PCS1900 have overlapping ARFCN rangesHolger Hans Peter Freyther1-3/+23
For PCS1900 the SI1 does not contain the ARFCN of the serving cell. This is because the arfcn2band method will return GSM_BAND_1800 and not GSM_BAND_1900. The academic fix would be to set the ARFCN_PCS bit but this would require increasing the bitvector sizes from 1024/8 to (0x8000 + 1024) / 8. This would increase the storage size for each bitvector by three. It is not possible to have DCS1800 and PCS1900 in one network so we can avoid increasing the memory usage and check if the ARFCN resolved to 1800 and then check if the BTS is a 1900 BTS and then claim that this is compatible.
2013-01-17si: Share the ARFCN selection condition between the two statementsHolger Hans Peter Freyther1-30/+37
This makes reading the condition more easy and allows me to fix it for GSM1900 more easily and I can remove one level of indention.
2012-10-22si: Partially implement the range encoding for the SI.Holger Hans Peter Freyther1-25/+111
I saw the old copy of the "Appendix J" code too late and I have discovered some quirks and I am more familar with my implementation. Most noticable 'w' only needs to be as big as the input arfcn but requires the 'w' to be initialized. The power_of_2 implementation differs as well (mine matches the output of wirehsark). The f0 could be chosen in a better way but right now picking the lower bound is the easiest. It is not clear if to use modulo if the range is chosen in the middle. This can be improved in the future. Right now I have no bit fiddling for range128, 256 and 1024 as I was running out of time.
2012-10-08SI13: Set alpha value to a safer default of 0 instead of 10Harald Welte1-1/+1
alpha=0 (the new value) doesn't reduce MS transmission power during GPRS as much as we did with alpha=10. This is to optimize for coverage and to keep GPRS working at all cost, and not care about MS battery life time or uplink interference in surrounding cells. FIXME: This should be made configurable via the VTY and the normal default (unless configured otherwise by vty/config file) should be '6'.
2012-09-29Fix: T3192 and T3193 must be similarAndreas Eversberg1-1/+1
In order to keep mobile at PACCH as long as possible the timer T3192 is set to 1500ms. This reduces the probablity of long lasting assignment process on CCCH for subsequent downlink TBFs.
2012-07-02BSC: introduce new "sysmobts" BTS modelHarald Welte1-0/+4
so far, osmo-bts/sysmobts used to be entered as "sysmobts" type in the configuration file. However, there are some differences in the protocol/behaviour and we should reflect that by a new BTS plugin (with lots of code reuse from the nanobts driver).
2012-03-01Improved generation of SYSTEM INFORMATIONs 2* and 5* for neighbour bandsAndreas Eversberg1-21/+222
In addition to SI 2 and SI 5, the SI 2ter and 2bis is generated, if neighbour cells in other bands exist. Also it is indicated in the rest octets of SI3, that SI 2ter is used. If no neighbour cell in a different band exists, the SI 2ter and SI 5ter is omitted. A special case is P-GSM range (channels 1-124). To be compatible with older phones, SI 2bis and SI 5bis is used. If the BCCH lays inside the P-GSM band, only neighbour cells of the P-GSM range are included in SI 2 and SI 5. If neighbour cells exist in the same band (900), but lay outside the P-GSM range, the SI 2bis and SI 5bis is used to extend the list of neighbour cells. The extension is also indicated in SI 2 and SI 5. If the BCCH lays inside the P-GSM range, but no neighbour cell exists in the same band outside the P-GSM range, the SI 2bis ans SI 5bis are omitted.
2012-02-17fix generation of frequency list (E-GSM vs. P-GSM 900)Harald Welte1-2/+3
2011-10-17libbsc: Don't include ext_info in SI13 if not in EGPRS modeSylvain Munaut1-1/+1
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-08-10Initial version of Support for Nokia *Site BTSDieter Spaar1-1/+1
This includes the MetroSite, but also other Nokia BTS models.
2011-05-24Move system information related defines and code to libosmocoreHarald Welte1-104/+5
This brings openbsc in sync with the following libosmocore commit: b5503136fa234690d5493b19a8aee3a4ef74190d
2011-05-07src: use namespace prefix osmo_* for misc utilsPablo Neira Ayuso1-9/+9
Summary of changes: s/bcd2char/osmo_bcd2char/g s/char2bcd/osmo_char2bcd/g s/hexparse/osmo_hexparse/g s/hexdump/osmo_hexdump/g s/hexdump_nospc/osmo_hexdump_nospc/g s/ubit_dump/osmo_ubit_dump/g s/static_assert/osmo_static_assert/g
2011-04-18misc: Remove sys/types.h includes from the filesHolger Hans Peter Freyther1-1/+0
These are not needed any more. We used them for u_int types but we now use uint which comes from stdint.h
2011-04-18misc: Move from u_int to uint types of stdint.hHolger Hans Peter Freyther1-12/+12
This was done with sed on the files.
2011-03-23src: use new library libosmogsm and new path to headers in libosmocorePablo Neira Ayuso1-2/+2
libosmogsm is a new library that is distributed in the libosmocore. Now, openbsc depends on it. This patch gets openbsc with this change. This patch also rewrites all include path to the new osmocom/[gsm|core] Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
2011-03-04[HSL] initial support for the HSL 2.75G FemtocellHarald Welte1-2/+12
The HSL Femtocell seems to be a poor man implementation of the ip.access Abis/IP protocol, but cutting corners wherever possible. We try to workaround those corners wherever possible...
2011-03-04prefix sub-directories containing libraries with 'lib'Harald Welte1-0/+606
... and make sure tests work again after restructuring