aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2016-08-27libbsc/libmsc: convert old osmo counter into rate_ctrgsAlexander Couzens11-140/+152
rate counters support the export to statsd and can have a delta value. Change-Id: Ie749cebd53a0bb618d0e23d375885712078bf8dd
2016-08-27sgsn: add statistics counter for LLC packetsAlexander Couzens3-0/+15
new counters are: llc.dl_bytes llc.ul_bytes llc.dl_packets llc.ul_packets The ip payload bytes are waiting for payload compression because those data are known then. Change-Id: I068376d35e84283cb98523cd3097a12c55cdb709
2016-08-27move ts_sublots() to gsm_data_shared.c, it will be used by osmo-btsNeels Hofmeyr4-27/+27
Change-Id: I8ba06d7dd6e0ceab3d8d18bb565354d6ed461f7e
2016-08-27chan_alloc.c: use ts_subslots() instead of subslots_per_pchan[]Neels Hofmeyr1-2/+2
The array will move to gsm_data_shared.c; to prepare, use the function instead. Change-Id: Icbea7dbd78abf6144e5291f531a97f96507d8cbf
2016-08-27dyn TS: bts_chan_load: use correct nr of subslots for dyn tsNeels Hofmeyr1-1/+3
For TCH/F_TCH/H_PDCH dynamic timeslots, the ts->pchan does not lead to a meaningful value from the subslots_per_pchan[] array. Use the ts_subslots() function instead, which checks for dyn pchan. Change-Id: I659acebca82dfb3e305433471be64e9d27439af8
2016-08-22comment: gsm48_gmm_sendmsg(): add spec reference on encryptableNeels Hofmeyr1-1/+3
Change-Id: I54a3bc518bc38e38b78f6e9ea3705e4fbd5ffb98
2016-08-15ci: Attempt to disable doxygen warnings of dependenciesHolger Hans Peter Freyther1-2/+3
We do not want to see doxygen warnings when building the libosmocore dependency. Change-Id: I4640cb5b91d54641e8e5b2f096c3bca49bfff60e
2016-08-11Add web proxy for control interfaceMax1-0/+147
Add web application exposing Control Interface over web. All of SET, GET and TRAP are fully supported. Notice: TRAP is converted into 'Server-sent events' according to RFC 6202, see also https://www.w3.org/TR/eventsource/ - this requires corresponding client. Due to use of special prefix modified version of python eventsource-client is necessary ATM. Change-Id: I87d40c80061f8b3d02d656ab8cadabbfb871b461 Related: OS#1646
2016-08-11Add python functions to get/set ctrl variablesMax1-4/+27
Add get_var and set_var functions which handle requested variable while checking for proper response and id. Split header handling into separate function. Change-Id: I08705963c277bd93a011193dd7451a626d606c21 Related: OS#1646
2016-08-11Use random operation idMax1-8/+10
According to documentation for Control Interface Protocol <id> is "A numeric identifier, uniquely identifying this particular operation", hence it's best to be illustrated with random integer - use it as default. Fix override of id with previously used python-specific objects' id. Change-Id: I32236c067360526f4e7ee4bbdba64c5137de696d Related: OS#1646
2016-08-10gsm_pchan2chan_nr(): fix uninitialized cbitsNeels Hofmeyr1-6/+5
Commit ec1b5a0e9e2b6549e0ede48e803095e569997355 introduced an unset cbits value for the 'special hack for BCCH', where I break out of the switch without setting cbits. Fix that. Also remove the comment part that says 'return 0', because I don't return 0. Change-Id: I54129d921807971eeafc23f80c57666c67b71377
2016-08-10gsm_pchan2chan_nr: disable a chan_nr assert in BTS, to not break octphyNeels Hofmeyr1-0/+10
In https://gerrit.osmocom.org/589 , msuraev reports an assertion on octphy. So disable this recently added assertion until we clarify the invocation in question. Change-Id: Ia0f7ae5b114e179ab56b98adbae9810e81b4b88f
2016-08-08add .mailmap file for mapping git author name/mail in shortlogHarald Welte1-0/+12
Change-Id: I7ed97fb897895935f942e3eb4fd87a8c138417be
2016-08-08add example config for sysmobtsHarald Welte1-0/+77
Many years ago, there was no difference between the libbsc support for nanobts and sysmobts. However, this is not the case for a long time anymore, and there are some specifics in OsmoNITB when it comes to sysmobts. Let's have an example config file Change-Id: I94ae57c9a3cb497ca39d56270fa15ed65d7f147e
2016-07-29Improve code re-useMax1-58/+59
Introduce explicit __main__ function to facilitate re-use of defined python functions for ctrl interface. Change-Id: I9bad8f0dd1d69bd28816bf047d85840e3411bb9c Related: OS#1646
2016-07-28dyn TS: OS#1778 workaround: disable TCH/F on dyn TS for nitbNeels Hofmeyr4-1/+21
To avoid two phones picking mismatching TCH pchans, never pick TCH/F on dynamic TS in osmo-nitb. Add gsm_network flag dyn_ts_allow_tch_f, set to true by default in gsm_network_init(). Set this flag to false in osmo-nitb's main(). See http://osmocom.org/issues/1778 Reasoning about ways to solve this: * a compile time switch doesn't work because libbsc is first compiled and then linked to both osmo-nitb and osmo-bsc. * we could test net->bsc_api == msc_bsc_api(), but I have the so-called MSC split waiting on branch sysmocom/cscn, which will result in msc_bsc_api() not being linked in the osmo-bsc binary. * have a function am_i_nitb() with different implementations in osmo-nitb and osmo-bsc, but then we'd need to add implementations to all tests and other binaries linking lchan_alloc(). * have a flag in struct bsc_api, but so far there are only function pointers there. Having a "global" flag in gsm_network allows to add a VTY command in case we decide to keep this feature (#1781), has no linking implications and is nicely explicit. Tested that osmo-bsc still picks TCH/F on dyn TS indirectly, since I have no standalone MSC available: when compiling osmo-nitb with the line that sets dyn_ts_allow_tch_f = false commented out, TCH/F is picked as described in OS#1778; and by printf-verifying that dyn_ts_allow_tch_f == true in osmo-bsc main(), only osmo-nitb should have TCH/F disabled. Related: OS#1778, OS#1781 Change-Id: If7e4797a72815fc6e2bbef27756ea5df69f4bde7
2016-07-28dyn TS: Rename bsc_dyn_pdch.c to bsc_dyn_ts.cNeels Hofmeyr2-1/+1
It's no longer just for IPAC style TCH/F_PDCH, but also contains code for TCH/F_TCH/H_PDCH, so pick a more general name. Change-Id: Ic19db81eca03fd72738839ee3686b6b4c8b6b437
2016-07-28dyn TS: split dyn_pdch_init() for new dyn type and renameNeels Hofmeyr4-14/+41
Init both TCH/F_PDCH and TCH/F_TCH/H_PDCH via dyn_ts_init(), which refactors dyn_pdch_init(). Make dyn_ts_switchover_start from abis_rsl.c public in abis_rsl.h, so we can start the initial switchover to PDCH from dyn_ts_init(); in abis_rsl.h include gsm_utils.h for enum gsm_phys_chan_config. Change-Id: I5c0b257ba8ff0e9c9a2268681a84b0681a778368
2016-07-28dyn TS: implement pchan switchover logicNeels Hofmeyr4-1/+351
In struct gsm_lchan, add dyn.rqd_ref and dyn.rqd_ta. These save the Channel Requested details across the PDCH deactivation dance. abis_rsl.c: add static functions: * dyn_ts_switchover*() for the various stages of switchover between pchans. * pchan_for_lchant() to derive the desired pchan from the lchan type that was set during lchan_alloc(). * rsl_chan_activate_lchan_as_pdch() to compose the simpler RSL CHAN ACT message without introducing numerous special cases to the normal RSL CHAN ACT code. In rsl_chan_activate_lchan(), detect and initiate required pchan switchovers if requested pchan on a dyn TS differs. In rsl_rx_rf_chan_rel_ack(), initiate or continue pchan switchovers after a channel was released. In rsl_rx_chan_act_ack(), notice that a switchover is complete. In chan_alloc.c, add ts_subslots(): abis_rsl.c will need to know the number of subslots per pchan, to verify that all lchans are free before dyn TS switchover. The subslots_per_pchan[] array is static to lchan_alloc.c, and since we need a non-trivial check for dyn TS anyway, add public ts_subslots() to lchan_alloc.c, which also checks the current dyn pchan type. Change-Id: I5c6bce13092a10204113d84678c587c65e35e4fd
2016-07-28dyn TS: chan act: set chan_nr according to dyn pchan typeNeels Hofmeyr1-2/+6
Change-Id: Ica5ef2197b3e97d5e895f3e3221295d5d0ef8908
2016-07-28dyn TS: enhance channel allocator for dynamic TSNeels Hofmeyr1-7/+120
Change _lc_find_bts() to _lc_dyn_find_bts() with added dyn_as_pchan arg to pass exactly as which pchan we'd like to allocate on a dynamic TS. Add _lc_find_bts() as wrapper so non-dynamic-TS callers remain unchanged. Also add dyn_as_pchan arg to _lc_find_trx() (not renaming to dyn and wrapping because there is only one caller). Implement dynamic allocator logic in _lc_find_trx() and lchan_alloc(). A returned dynamic channel still needs to be switched to the proper mode, which will follow in another commit. Replace a fixme comment with a normal comment in subslots_per_pchan[], because handling of dynamic TS is now defined. Change-Id: I18da7679300c43220d9baa6a304e8df74d366249
2016-07-28dyn TS: rsl_lchan_lookup(): add dyn PCHANNeels Hofmeyr1-2/+12
Accept GSM_PCHAN_TCH_F_TCH_H_PDCH for TCH/F and TCH/H if in matching pchan mode or switching to matching pchan. Accept RSL_CHAN_OSMO_PDCH chan_nr cbits for GSM_PCHAN_TCH_F_TCH_H_PDCH pchan. Change-Id: If8f7c118f69e5a9f370bfe25f82f3d5a8de75b51
2016-07-28dyn TS: verify_chan_comb(): handle new dyn TS NM_CHANC_*Neels Hofmeyr1-0/+3
Change-Id: I7ce754a48c7f492e921a4450745383bb8dd7225c
2016-07-28dyn TS: rsl *2chan_nr(): handle TCH/F_TCH/H_PDCHNeels Hofmeyr1-0/+7
In gsm_lchan2chan_nr() use the current pchan type. In gsm_lchan_as_pchan2chan_nr(), add the special case of non-standard cbits for activating PDCH on a TCH/F_TCH/H_PDCH dyn TS. This way, gsm_pchan2chan_nr() conforms to the standard and does not need access to a ts struct. Change-Id: If248b9073b9f397110a2003d8e1a04afdc1c0e20
2016-07-28dyn TS: gsm_lchan2chan_nr(): decouple from ts->pchanNeels Hofmeyr3-6/+16
For upcoming dynamic TS, the pchan choice for RSL De-/Activation is not trivial. So in order to pass the desired pchan to generate the RSL chan_nr, introduce gsm_lchan_as_pchan2chan_nr(). To avoid code dup, this requires decoupling the gsm_ts2chan_nr() pchan from the actual ts struct, so refactor gsm_ts2chan_nr() to gsm_pchan2chan_nr() with explicit pchan, ts_nr and lchan_nr arguments. Change-Id: I1a40e8452fe8120d350a27973e56be0b8c8c517f
2016-07-28dyn TS: rename lchan->dyn_pdch to lchan->dynNeels Hofmeyr2-5/+5
This will also be used by the new dynamic TS type, so make the name more general. Change-Id: I2451b10519dff3e5cdf503b430574c0984d19000
2016-07-28prepare dyn TS: act lchan: fetch the channel mode a bit laterNeels Hofmeyr1-8/+8
Dyn TS will add a new type of chan activation, which does not need a Channel Mode IE. Incidentally, the dyn PDCH also doesn't need this IE if it opts for sending a PDCH ACT instead. So it makes sense to compose the Channel Mode IE only after the dynamic decisions are done. Change-Id: I66d88ad6a4ae7bee1e552960fd4e92aff953125c
2016-07-28error log: rsl_chan_activate_lchan: log channel mode errorNeels Hofmeyr1-1/+5
Change-Id: I0f403b13ff9897770c0b855bf57a9440717b46e8
2016-07-28cosmetic: dyn_pdch_init(): debug log: use new gsm_ts_and_pchan_name()Neels Hofmeyr1-4/+4
Change-Id: I396c2696bdbedb41a1f1fe2183f8eada57dc3413
2016-07-28gsm_ts2chan_nr(): add assertions for lchan_nrNeels Hofmeyr1-0/+14
Change-Id: Ibfdef347c85d4a145645a7325cd193ea1b475a54
2016-07-28Modify SI 13 field to support 11 bit RACHbhargava5-1/+43
System Information 13 field EGPRS PACKET CHANNEL REQUEST is modified to support 11 bit RACH. Further VTY configuration is added to enable/disable 11 bit RACH support in EGPRS. By default 11 bit RACH support is disabled. Change-Id: I51357bec936c28a26ab9ff5d59e0e30ca3363297
2016-07-28debug log: fix line endings for abis_rsl_rx_rll loggingNeels Hofmeyr1-0/+3
This function outputs a debug log without line ending, which should be completed by a subsequent DEBUGPC(), so complete the started log line where missing in three of the switch cases. The three cases do print another log message, but since these don't start on a new line when RLL is in debug level, the log output for these is hard(er) to read without this patch. Change-Id: I355647e77e1b2d8e75ae1a167fe87a507a38d82d
2016-07-27Fix default subscriber regexpMax1-1/+1
Incorrect regular expression used by default to authorize all subscribers to implement authorization policy 'accept-all' prevented MS from camping on the open network. Change-Id: I20284b3d40ecf4ca1e67d8cd25afb8d5e4ae3025
2016-07-25log lchan_alloc() resultNeels Hofmeyr1-0/+8
It is particularly interesting to see whether a given lchan type is allocated on a dynamic timeslot. Change-Id: I8a0bca6d9cd583a0988e5ee8f4e6f74f218f4185
2016-07-25error log: abis_rsl.c: log errors in channel_mode_from_lchan()Neels Hofmeyr1-0/+12
Change-Id: Ifa416eab76e6c26dc83e979d815ae778d0d7133b
2016-07-25code dup: join [rsl_]lchan_lookup() from libbsc and osmo-btsNeels Hofmeyr3-42/+61
lchan_lookup in abis_rsl.c and rsl_lchan_lookup() from osmo-bts rsl.c are the same code, except for the log context, which is only set in abis_rsl.c. Factor out the common code to rsl_lchan_lookup() in gsm_data_shared.c. Openbsc and osmo-bts each define their own DRSL log constant, so add an int *rc return code argument and keep the logging part in abis_rsl.c's thin lchan_lookup() wrapper. Incidentally, this also removes code dup for logging. To avoid duplicate symbols, the rsl_lchan_lookup() implementation needs to be removed from osmo-bts, so older osmo-bts git revisions will not build with this. Change-Id: Ie89bc5bb9110a0e539d37991dedac6f913211b48
2016-07-25gsm_data_shared: add gsm_ts_and_pchan_name() for dyn ts loggingNeels Hofmeyr2-0/+50
Change-Id: I9b6be77c9e5fb9dffa2021a2da72293af15a03a0
2016-07-25dyn TS: add ts->dyn stateNeels Hofmeyr2-0/+8
Add state fields osmo_bts_trx_ts->dyn.* to record dynamic timeslot state. Initialize in gsm_bts_trx_alloc(). Change-Id: I0a4049df8500b4f7c864f1355c4e9238932d1b8f
2016-07-25cosmetic: rsl_rx_chan_act_ack(): use local lchan var in 14 instancesNeels Hofmeyr1-14/+15
In preparation for an upcoming change. Change-Id: I9ce71fd7dde42ad7d20f806ac70c150d11450efa
2016-07-25cosmetic: act lchan type: use constant instead of 0x00Neels Hofmeyr1-1/+1
Change-Id: Idc8afc4e52e189f474077899eef896381ce238f7
2016-07-25cosmetic: rsl_rx_rf_chan_rel_ack(): use local ts var for brevityNeels Hofmeyr1-5/+5
In preparation for an upcoming change. Change-Id: I11bd59492fa8d5b9392d9f2b511c8fa9585afe6c
2016-07-25comments: clarify some dynamic TS commentsNeels Hofmeyr2-6/+9
A new type of dynamic channel will be introduced soon, so prepare some comments to name the dynamic TS kind more specifically. Change-Id: I51fa8c2ebba507299e55a5cb7e67e48a6c8471f7
2016-07-25fix: create_pdp_conf(): unset reject_cause after unknown ran_typeNeels Hofmeyr1-0/+4
f9f4387686584d4575b326ac7414138d8ba0c641 introduced a check for ran_type, which potentially leaves reject_cause unset. Fix that. Change-Id: I0220841ff796f949d00a1415d46b54a3eacc9493
2016-07-25remove old copy of documentation that now is in osmo-gsm-manuals.gitHarald Welte3-739/+0
We keep some random snippets of documentation here, but manuals are now generally kept in osmo-gsm-manuals.git. Particularly the GSUP, OAP and control interface are documented more extensively there. To avoid having two sets of (diverging) documentation, let's remove it from the openbsc.git repository. Change-Id: I4a4c918587e236a7aa00cf2bb6aa05b090f7229b
2016-07-25sgsn: add statistics counter for GPRS and PDP packetsAlexander Couzens6-3/+82
Changing the test to allow still allocated block from the rate counters. Change-Id: Ie30e4c3084ee3a138d6b39bb5000234ac814e65f
2016-07-25bs11_config: add brackets to fix warning in argument parsingAlexander Couzens1-1/+2
Change-Id: I2f02e09a21ca622b03fd966445f533263a499c8d
2016-07-24fix ctrl test: dyn TS: use new GSM_PCHAN_TCH_F_TCH_H_PDCHNeels Hofmeyr3-5/+10
Add GSM_PCHAN_TCH_F_TCH_H_PDCH in gsm_pchant_names and gsm_pchant_descs: the VTY and CTRL can now handle the new pchan type. Adjust the CTRL iface test to expect the new PCHAN type in the output. Fixes make check with --enable-external-tests after libosmocore commit fd80f5a04239c2ab7b561401476dd89f2861748b that adds GSM_PCHAN_TCH_F_TCH_H_PDCH. Change-Id: I4ad9c972d7f76f7e20cf74d6fc3d1928b644a4f8
2016-07-23mncc_sock: use osmo_sock_unix_init() from libosmocoreVadim Yanitskiy1-52/+5
Since the osmo_unixsock_listen() was moved to libosmocore it would be better to use the library's implementation instead of reinventing the wheel again. Change-Id: Iacfc39b6214c24084438f8fe04d03952cdc9ebc2
2016-07-23gprs_gmm: remove duplicated start of T3395Alexander Couzens1-2/+1
The timer is already scheduled by gsm48_tx_gsm_deact_pdp_req(). Change-Id: I8203b939d2196f87b11c0f3b2b0ff481e572835c
2016-07-17SGSN: fix FCS calculation for encrypted framesDieter Spaar1-4/+10
Change-Id: I352bc9db0c17fff773788831c4389ec0a5a30af8 Related: OS#1582