aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2016-08-30Fix ip.access style dyn PDCH, broken in 37af36e85eca546595081246aec010fa7f6fd0beNeels Hofmeyr2-16/+38
Commit "sysmo,lc15: ts_connect_as(): log error also for pchan_as == TCH/F_PDCH" introduced a check for TCH/F_PDCH intended only for TCH/F_TCH/H_PDCH. It looked correct, but TCH/F_PDCH startup was designed differently: For TCH/F_PDCH, the idea was to look it up in pchan_to_logChComb[] and obtain the TCH/F channel combination, so that TCH/F_PDCH first initialize as TCH/F. So pchan was in fact intended to be passed as TCH/F_PDCH. For Osmocom TCH/F_TCH/H_PDCH, we've in the meantime added a ts_opstart() function that makes this decision explicitly. So, instead of reverting the erratic commit, add TCH/F_PDCH to ts_opstart(), for both sysmo and lc15. In ts_opstart(), move to a switch statement to resolve the actual pchan to use for ts_connect_as(). Drop TCH/F_PDCH and TCH/F_TCH/H_PDCH from pchan_to_logChComb[] and comment. Change-Id: I376b92a06f4cbe943c1c913dea7487fac53a7d08
2016-08-30dyn TS: sysmo,lc15: ph_data_req: fix PDCH mode detectionNeels Hofmeyr2-2/+2
Though this patch theoretically makes a lot of sense, it is not entirely clear why dyn TS are working without it. Committing due to common sense, not to fix any actual breakage. Change-Id: I6136cb42a4d627ebefc963eb5321fadfe63cca4b
2016-08-30cosmetic: common ts_is_pdch()Neels Hofmeyr3-11/+17
Have one common ts_is_pdch(), placed in lchan.c, since this file is pretty empty and pretty close to ts. Publish in gsm_data.h. Remove the if-style implementation from l1sap.c, and instead implement in a switch statement. This prepares for upcoming ts_is_pdch() usage in ph_data_req() for sysmo and lc15. Change-Id: Ib78d663fdbac5a1d7053f1b9d543649b66da00e2
2016-08-30dyn TS: measurement: use correct nr of subslots, rm code dupNeels Hofmeyr1-15/+1
In measurement.c, fix the number of sublots for TCH/F_TCH/H_PDCH, by using ts_subslots() from gsm_data_shared.c. The local dup of subslots_per_pchan[] is no longer needed. (depends on recent commit to openbsc.git for ts_sublots()) Change-Id: I9d9df470c49487bffd56dde42c7bec0da2f50642
2016-08-27log: l1sap: add 0x to hex output of chan_nr, 5 timesNeels Hofmeyr1-5/+5
Change-Id: I187a74fd255dbdfb9bfb1e32786031a66f013efb
2016-08-27Change interface in osmo-bts for 11 bit RACHbhargava5-7/+22
Interface structure between osmo-bts and osmo-pcu is updated with the parameters to differentiate the type of RACH and further support 11 bit RACH. The function prototype and definitions are changed accordingly. Interface version number is increased. Change-Id: I4f4c501b2d86d77c78de32a84b1804172ffb6f4d
2016-08-21sysmo: ts_connect: log channel combination name instead of numberMax2-3/+4
Change-Id: Ife11cfdb0f83d56ed61e66286a79b7c3a000cce5
2016-08-12sysmo: fix dyn TS: Revert "Activate PTCCH UL" [in sysmobts]Neels Hofmeyr1-2/+1
This reverts commit 53d792c3b027bfb42d77804e3e687a287e122ef3. See http://osmocom.org/issues/1796 The commit caused this error for PDCH TS with SysmoBTS: DL1P <0007> l1_if.c:164 Tx L1 prim MPH-ACTIVATE.req DL1C <0006> oml.c:811 Error activating L1 SAPI PTCCH on TS 7: Invalid parameter DL1C <0006> oml.c:1089 (bts=0,trx=0,ts=7,ss=0) act failed mark broken due status: -4 Plain PDCH TS show this error but continue to function despite the SAPI activation failure. As a side effect, the SAPI activation failure breaks dynamic TS. GPRS initially works, but the broken status prevents transitions to TCH/* modes in the BSC: DRLL <0000> chan_alloc.c:355 Failed to allocate TCH_H channel DRSL <0004> abis_rsl.c:1656 BTS 0 CHAN RQD: no resources for TCH_H 0x45 Since the commit only enabled PTCCH UL in sysmobts, no other BTS models are affected. Notice that lc15 still has PTCCH UL disabled all the while, before and after this commit and its revert. Also note that PTCCH DL is and has been enabled without problems (see further above in sapi_dir_pdtch_sapis[]). This is only about PTCCH UL. Related: OS#1796 Change-Id: Ia59d95c75a8a5d3bd596f55cd1dc0906a6a95f7f
2016-08-10sysmo,lc15: ts_connect_as(): log error also for pchan_as == TCH/F_PDCHNeels Hofmeyr2-2/+4
Change-Id: I76c868a1e70af16268a6fa42dc736cf0b288ecdb
2016-08-10dyn TS: measurement.c: replace fixme with commentNeels Hofmeyr1-1/+1
Change-Id: I04668f6f01a48157a98c6326a9ee48982a09ee62
2016-08-10dyn TS: complete for TRXNeels Hofmeyr2-9/+23
Apply similar fixes as for TCH/F_PDCH also for TCH/F_TCH/H_PDCH: Detect dyn TS in PDCH mode in ts_is_pdch(). In trx_set_ts(), enhance the "if (TCH_F_PDCH)" to a switch statement including both dynamic channel types. Adjust the comment to include both kinds. Change-Id: I6669739cd08780cd9ffb9451cdae9f6b9704c4fe
2016-08-08osmo-bts-trx: log decoder bit errors as DEBUG, not NOTICEMike McTernan1-1/+1
It is not an exceptional situation if the air-interface is experiencing non-recoverable decoding errors. At bad signal conditions and/or interference, this is perfectly normal. Let's use DEBUG instead of NOTICE log level. Change-Id: Ifd39c53ec22f57cdb5299e5d76ff6ff1482d3beb
2016-08-08osmo-bts-trx: Fix PCS1900 operationMike McTernan1-2/+12
As the ARFCN numbers in DCS (1800) and PCS (1900) are not unique, we need to specify the band in the upper bits of the ARFCN value before calling gsm_arfcn2freq10(). Change-Id: I637b76bc1fc749eed8e364412d76606589991c02
2016-08-08Fill measurements data for L1SAPMax10-18/+71
Fill in values for BER, BTO, Link quality in L1SAP and send them to PCU. Note: this increases the version of BTS <-> PCU protocol. It also requires corresponding changes in libosmocore. All BTS models provide measurements data unless direct DSP access for PCU is enabled. For BTS-specific notes see below. Octphy: conversion from sSNRDb to Link Quality uses formulae which works in practice instead of what's documented for sSNRDb value. Subject to change in future revisions. TRX: C / I link quality estimator is not computed. Change-Id: Ic9693a044756fb1c7bd2ff3cfa0db042c3c4e01c Related: OS#1616
2016-08-08ci/spatch: Remove the "static" analysis handlingHolger Hans Peter Freyther2-28/+0
spatch on Debian 8.0 has already crashed twice and is likely to crash more and at the same time the value for this static checking is close to zero (nice idea but never blossomed). So let's remove it, have a more reliable build and let's coverity find those issues. Change-Id: Ic1004edf7f0bee8dda30b95554a0aaf0b116b6b8
2016-08-08Add .mailmap for mapping mail addresses in shortlogHarald Welte1-0/+12
Change-Id: I4789197e18fba6b1a376dc8645fdffa6120f6698
2016-07-28trx: Fix coverity BER calculation NULL dereferenceTom Tsou1-6/+9
Allow output of encoded bit count or error count on BER calculation without requiring both pointers to exist. Change-Id: I2c78fa6a92a3b3da4aad8f70353e5a43451b0aa5 Fixes: Coverity CID 137963 Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-28dyn PDCH: trx l1_if.c: drop fixme, add commentNeels Hofmeyr1-1/+1
Change-Id: Ib240f21f4d460524767f4273fc9077617d1ffb43
2016-07-28dyn PDCH: complete for trx: implement bts_model_ts_[dis]connect()Neels Hofmeyr1-2/+17
bts_model_ts_disconnect() has nothing to do. bts_model_ts_connect() merely sets the new pchan on the ts. Change-Id: Ieb66935d6efc26854e95d238e810c4f8b16cfa88
2016-07-28dyn PDCH: trx l1_if.c: factor out trx_set_ts_as_pchan() from trx_set_ts()Neels Hofmeyr1-3/+20
To be able to set a specific pchan type for dynamic channels, have the trx_set_ts_as_pchan() function with an explicit pchan argument instead of using ts->pchan. Keep trx_set_ts() as a thin wrapper to use ts->pchan directly. Change-Id: I9eeef05d2a6763f86a5b89ee7c3b4211f6736e4d
2016-07-28dyn TS, dyn PDCH: common/l1sap.c: properly notice PDCHNeels Hofmeyr1-3/+11
In l1sap_ph_rts_ind(), l1sap_ph_data_ind() and to_gsmtap(), the decision to handle a TS as PDCH was still missing for dynamic TS. It is not yet clear why this did not impact functionality for dynamic timeslots on other BTS models. AFAICT they should not work without this patch, but in fact they do. It would be nice to clarify this some day. Change-Id: I7b873a089a3de70d980885a7539cb91997464743
2016-07-28octphy: fix buildMax1-1/+1
The error was introduced in 61372a20de695a151611753689ee9a3018b101f6. Change-Id: I9585eec018b88c5d0548a0a55fa4130bb26aa5b6
2016-07-28Fix dsp tracing at phy configMax1-0/+17
Due to missing runtime cmd patching DSP tracing was not possible at phy level of config file. No it is possible to specify it as follows: ... phy 0 instance 0 dsp-trace-flag debug dsp-trace-flag mph_cnf ... Change-Id: Ibbbf81d2c4b5d3adbcbc1f08a844d262e603e571
2016-07-28pcu_sock: use osmo_sock_unix_init() from libosmocoreVadim Yanitskiy1-55/+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: Id5828649d44ef11e70946793696b0d689d6b35e3
2016-07-28fix comment in common/l1sap.c, function name changedNeels Hofmeyr1-1/+1
Change was in 334df9441a44de00c0dd3f66e73ac6fae28098fb "cosmetic: clarify TCH/F_PDCH related naming and comments" Change-Id: If3e353ea5796ee129bdd95e5f954e6c141cffec8
2016-07-28Activate PTCCH ULMax1-1/+2
So far PTCCH was activated for DL but not for UL. Fix it. Change-Id: I4fb5ecdfff1a6b8e8d77f561a9cf780f8e116f4d Related: OS#1545
2016-07-28trx: Enable EGPRS handling through burst lengthsTom Tsou7-93/+182
Existing interfaces are coded with the implicit expectation of using a burst sequence length of 148, which is constant with GSM and GPRS. That changes with EGPRS, where the burst length may be 444 due to the use of 8-PSK instead of GMSK modulation. Setup the interface to accept and return a length value with the burst sequence. This allows 444 length bit vectors to/from the EGPRS decoder/encoder. Length is explicitly used as a identifier for 8-PSK vs. GMSK modulated sequences. Change-Id: I90b46b46b11b6ce280e7f8232d5a2fccec2d4f18 Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-28trx: Add EGPRS coding and decoding proceduresTom Tsou2-8/+1028
Handles uplink decoding and downlink encoding procedures for MCS 1-9. Includes Type 1, 2, and 3 headers and tables from 3GPP TS 44.060 in order to independently recover coding and puncturing scheme (CPS) parameters for each coded message. Change-Id: I0f059ae34c6f36179553cbc972f8becf8179eb55 Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-27dyn TS: sysmo,lc15: chan_nr_by_sapi(): add missing assertionNeels Hofmeyr2-0/+2
Addition of GSM_PCHAN_TCH_F_TCH_H_PDCH should have added these assertions. They clarify that only 'real' pchan types are expected in this function. Change-Id: Ifd4b6820861ef716237e7eeed149b2add9e7d485
2016-07-27log typo: trx_sched_set_pchan()Neels Hofmeyr1-1/+1
Change-Id: Icdb193ec6dbb95cf0c3e441c196b309aa599efe6
2016-07-27comment typo: common/l1sap.cNeels Hofmeyr1-1/+1
Change-Id: I053766452ee01bed6136a9742551c664666a7989
2016-07-25dyn TS: implement litecell15 specificsNeels Hofmeyr2-9/+33
For chan_nr_by_sapi(), add GSM_PCHAN_TCH_F_TCH_H_PDCH to pick_pchan(). Add GSM_PCHAN_TCH_F_TCH_H_PDCH to pchan_to_logChComb[] for first pchan initialization. In ts_connect_as(), make sure that callers pass proper "real world" pchan types, i.e. reject the "meta" GSM_PCHAN_TCH_F_TCH_H_PDCH pchan constant. In ts_opstart(), connect as PCHAN_NONE since we will only know the desired pchan when the first RSL chan activ is received. Add GSM_PCHAN_TCH_F_TCH_H_PDCH to lchan_to_GsmL1_SubCh_t(), by using its current "real" pchan mode. Call cb_ts_[dis]connected() unconditionally, i.e. not only for TCH_F_PDCH when a pending flag is set. The cb_ts_[dis]connected() will be a no-op if the pchan type is not dynamic. Change-Id: Ie30323f968da25027045c42a7ae7f1e70ca711ae
2016-07-25lc15/oml.c: rename ts_connect() to ts_opstart()Neels Hofmeyr1-2/+2
ts_connect() is only called during OPSTART. Name it such because a special case for OPSTART will be added there for dyn TS. Change-Id: Iba6880d94142096a8371b08f7404035912cadbb0
2016-07-25dyn TS: implement SysmoBTS specificsNeels Hofmeyr2-9/+33
For chan_nr_by_sapi(), add GSM_PCHAN_TCH_F_TCH_H_PDCH to pick_pchan(). Add GSM_PCHAN_TCH_F_TCH_H_PDCH to pchan_to_logChComb[] for first pchan initialization. In ts_connect_as(), make sure that callers pass proper "real world" pchan types, i.e. reject the "meta" GSM_PCHAN_TCH_F_TCH_H_PDCH pchan constant. In ts_opstart(), connect as PCHAN_NONE since we will only know the desired pchan when the first RSL chan activ is received. Add GSM_PCHAN_TCH_F_TCH_H_PDCH to lchan_to_GsmL1_SubCh_t(), by using its current "real" pchan mode. Call cb_ts_[dis]connected() unconditionally, i.e. not only for TCH_F_PDCH when a pending flag is set. The cb_ts_[dis]connected() will be a no-op if the pchan type is not dynamic. Change-Id: Iaffd2fc0aa9fc6c4a2acbc534ce6384392e0635b
2016-07-25sysmo/oml.c: rename ts_connect() to ts_opstart()Neels Hofmeyr1-2/+2
ts_connect() is only called during OPSTART. Name it such because a special case for OPSTART will be added there for dyn TS. Change-Id: I09cc81e79661e8084aeebf8132435c207b2cf422
2016-07-25dyn TS: common TCH/F_TCH/H_PDCH implementationNeels Hofmeyr4-12/+235
common/l1sap: For dyn TS, the BSC will issue RSL Chan Activ requests with a non-standard chan_nr. While the rest of the code now understands that, the L1 phy will not. Translate to standard PDCH (== TCH/F). common/oml: use dyn TS' current pchan mode for lchans config. common/pcu_sock: detect desired PDCH mode of dyn TS. common/rsl: implement reconnection chain of a TS for changing its pchan: * rsl_rx_chan_activ(): ** Add dyn_pchan_from_chan_nr() to derive the requested pchan from the RSL chan_nr IE. ** Notice the need for a pchan change and invoke dyn_ts_l1_reconnect() (s.b.) ** Make Chan Mode IE presence optional, because the non-standard PDCH activation message is simpler and does not require it. ** Do PDCH activation via PCU. * Add dyn_ts_l1_reconnect(): store state and disconnect the L1 channel; then wait for cb_ts_disconnected(). * Add osmo_dyn_ts_disconnected() to cb_ts_disconnected(): verify state and connect with the new pchan type; then wait for cb_ts_connected(). * Add osmo_dyn_ts_connected() to cb_ts_connected(), which re-issues the cached chan activation message from before disconnecting the L1 channel. * Also send an rf chan rel/act ack for dyn TS upon PDCH de/act via PCU. * Add dyn_ts_pdch_release(): on channel release of a dyn TS in PDCH mode, release via the PCU. Call from rsl_rx_rd_chan_rel(). Change-Id: I463bb6b4e57674f091c3badba9257374961c52c7
2016-07-25code dup: join [rsl_]lchan_lookup() from libbsc and osmo-btsNeels Hofmeyr2-54/+12
lchan_lookup in openbsc abis_rsl.c and rsl_lchan_lookup() rsl.c are the same code, except for the log context, which is only set in abis_rsl.c. The common code was factored out to gsm_data_shared.c in openbsc.git. Use the *rc return code argument to keep the logging part in the newly introduced thin wrapper lchan_lookup() in common/rsl.c. This also removes code dup for logging The rsl_lchan_lookup() implementation is removed from osmo-bts, so a recent openbsc is needed to build this. Change-Id: Ibc469b75e31560271be8633d524366442d27e6fb
2016-07-25trx: Add EGPRS tables, sequences, and mappingsTom Tsou12-4/+2471
Includes EGPRS specific convolutional codes, interleaving tables and functions, burst mappings, training sequences, and parity checks from 3GPP TS 44.060 needed to handle MCS codings 1-9. Change-Id: Ie270398dd7a72f282ba53e646853d8de1eabee93 Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-25prepare dyn TS: split/replace conf_lchans_for_pchan()Neels Hofmeyr2-4/+13
Move the actual switch from static conf_lchans_for_pchan() into new 'public' function conf_lchans_as_pchan(), adding an explicit pchan argument. This allows passing a non-trivial pchan, for dynamic TS. conf_lchans_as_pchan() now takes a pchan argument, so distinguish the naming and drop the 'for_pchan' from conf_lchans_for_pchan(), which takes only a ts argument. Change-Id: I8e458501fff5503c243512aeb3469c12b1f2bbc4
2016-07-25dyn PDCH: code dup: use conf_lchans_as_pchan()Neels Hofmeyr1-2/+6
For ip.access dyn PDCH, call conf_lchans_as_pchan() instead of dup'ing the pchan-to-lchan switch. Change-Id: I979828e08953e83ae579a347334536f52939faf0
2016-07-25error log: rsl.c: typo x2Neels Hofmeyr0-0/+0
Change-Id: I285fdff8260f008d856b9cda811e9fbb936893eb
2016-07-25info log: l1sap.c: add '0x' to hex outputNeels Hofmeyr0-0/+0
Change-Id: If29895de238e586b8298d84b6f0b41e08bea8c91
2016-07-25fix compiler warning: msg_utils.c: fn_chk() constify argNeels Hofmeyr0-0/+0
The only caller dtx_sched_optional() passes const arrays and a warning was issued. Change-Id: I18e0788ef96489d2116a60cae57bd516fe6eae8e
2016-07-25cosmetic: pcu_sock.c: rename ts_is_pdch() to ts_should_be_pdch()Neels Hofmeyr0-0/+0
The function checks whether to switch a TS to/from PDCH, not whether it already is PDCH. Change-Id: Ib4036445d09792636bb2f1a8a665b6b28f32e1a0
2016-07-25cosmetic: clarify TCH/F_PDCH related naming and commentsNeels Hofmeyr6-29/+45
We're about to introduce a new kind of dynamic channel, which will also use parts of the ip.access mode dyn PDCH code paths. Make sure the general parts have general names and mark ip.access specific parts as such. Rename dyn_pdch_ts_[dis]connected() to cb_ts_[dis]connected(). Rename dyn_pdch_complete to ipacc_dyn_pdch_complete(). From cb_ts_[dis]connected(), factor out the current code into static functions ipacc_dyn_pdch_[dis]connected() -- this will make sense once the new dynamic kind is added to cb_ts_[dis]connected(). Change-Id: I7da5b7cb7b48572671f50e0dec97d9eec3083df1
2016-07-25cosmetic: pcu_sock.c: rename ts_is_pdch() to ts_should_be_pdch()Neels Hofmeyr1-2/+2
The function checks whether to switch a TS to/from PDCH, not whether it already is PDCH. Change-Id: Ib4036445d09792636bb2f1a8a665b6b28f32e1a0
2016-07-25fix compiler warning: msg_utils.c: fn_chk() constify argNeels Hofmeyr1-1/+1
The only caller dtx_sched_optional() passes const arrays and a warning was issued. Change-Id: I18e0788ef96489d2116a60cae57bd516fe6eae8e
2016-07-25info log: l1sap.c: add '0x' to hex outputNeels Hofmeyr1-2/+2
Change-Id: If29895de238e586b8298d84b6f0b41e08bea8c91
2016-07-25error log: rsl.c: typo x2Neels Hofmeyr1-2/+2
Change-Id: I285fdff8260f008d856b9cda811e9fbb936893eb
2016-07-25doc: move dyn_pdch.msc to osmo-gsm-manuals.gitNeels Hofmeyr4-44/+2
Also remove related cruft: .gitignore, msc-README and adjust an in-code comment that referenced dyn_pdch.msc. Change-Id: Ie41a453bb5070c1f18793f646dc053a978f43fba