aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2016-10-31hack a delay into TCH/H act ack for testingneels/delay_tch_h_act_ackNeels Hofmeyr1-0/+28
Change-Id: I6636c2fe46bafd9543de84ec8fb9ced24bee0dcd
2016-10-28DTX DL: split ONSET state handlingMax7-35/+120
Handle ONSET cause by Voice and FACCH separately. In case of Voice we have RTP payload which we have to cache and send later on in next response to L1 RTS. FACCH have higher priority so it preempts both voice and silence alike - hence we can send ONSET immediately but still have to track previous state in order to get back to it gracefully. This affects lc15 and sysmo hw as there's no FSM-based DTX implementation for other models yet. Note: this requires patch for OpenBSC which adds FACCH buffer to tch.dtx struct. Change-Id: Idba14dcd0cb12cd7aee86391fcc152c49fcd7052 Related: OS#1802
2016-10-2711bit RACH support for osmo-bts-litecell15bhargava1-3/+40
Based on the indication from L1, number of bits in RACH and burst type is determined. Appropriate parameters are filled in osmo-bts-litecell15. These parameters are sent to osmo-pcu for processing of the RACH. Change-Id: Ie5207a15424fb287febf74e830297531232accde
2016-10-26Add tools to check DTX operationMax2-0/+176
* superfemto.sh can parse superfemto-compatible DSP log output to properly sort records into MT/MO and DL/UL parts * dtx_check.gawk can process output of superfemto.sh and check for common scheduling errors This allows to check lc15 and sysmo for errors in DTX DL scheduling. As dtx_check.gawk is generic it can be used with any other BTS hw (or virtual BTS) as long as raw logs from this hw can be converted to simple input format 'FN EVENT' per-line. Change-Id: Ib1c70c4543b24c2a05a7df8eec5ce3f4eda2c02e Related: OS#1801
2016-10-24Fix DTX DL AMR SIDscheduling logicMax1-9/+14
Previously SID UPDATE was sometimes scheduled incorrectly. Fix this by: * avoid rounding error when computing scheduling time difference from FN * properly saving and updating cached SID type and FN Change-Id: I7acffae4792e7bddc2ae19a2f04ee921dc194c36 Related: OS#1801
2016-10-24DTX HR - fix array size calculationMax1-1/+2
Use ARRAY_SIZE macro for each pointer separately. Fix suggested by Neels Hofmeyr <nhofmeyr@sysmocom.de>. Change-Id: I68ec1be33fb743977121d654187d85d6b8451e2b Fixes: Coverity CID 150132
2016-10-21Extend RTP RX callback parametersMax2-2/+4
Adopt to change in libosmo-abis to accept additional parameters in RTP RX callback function. Change-Id: Icf41e568f041e87b38e6192af0be90c42362bfee
2016-10-18jenkins-oct.sh: fix build: typo in deps pathNeels Hofmeyr1-1/+1
Change-Id: I05014e25ffc829fa2fc3973471baa28f7f5a62c9
2016-10-18Fix lc15 buildMax1-1/+1
The error seems to be introduced in 21142f789812553b56f493d79184f5a31ab7b1cd Change-Id: I620ac6774fb47479d74bc4470ccc6edd379600ba
2016-10-18Replace magic number with defineMax7-12/+18
SDCCH occupy lchan 0..3 in combined configuration so for CCCH we've always used lchan[4] - replace it with CCCH_LCHAN define and add comment. Change-Id: Ic5d742c292d638f119c6b4672120c1950adeb7f0
2016-10-17DTX AMR - fix buffer length checkMax1-1/+2
Consider AMR-specific prefix in computing max length to avoid triggering coverity check. Change-Id: I2fbc468caedf08f26893457db7c7fbacef5b860c Fixes: Coverity CID 150133
2016-10-14msgb ctx: use new msgb_talloc_ctx_init() in various main()sNeels Hofmeyr7-24/+7
Change-Id: I31d62d5e1f0b272985fdef5013270d385c4b988a
2016-10-13DTX: fix array size calculationMax1-4/+5
Compute array size in-place and pass it to function. Change-Id: I4cd480ceb20efc69df1b00e3c7359fcbd14c19cd Fixes: coverity CID 1357844.
2016-10-13TRX: fix building with latest DTX changesMax1-2/+2
Bring up-to-speed with latest changes in OpenBSC. Change-Id: I16b24b2cd09600e215de163e7b5baae329887c9e
2016-10-13DTX DL: use FSM for AMRMax14-138/+675
Use dedicated FSM to handle all DTX DL related events: - add explicit checks if DTX DL is enabled (fixes regression for non-DTX setup introduced in 654175f33bd412671e3ef8cdd65c0689d10f278c) - fix handling of AMR CMI for SPEECH frames - add FSM for DTX DL - sync with corresponding changes in OpenBSC's - handle FACCH-related DTX ONSET events This affects both lc15 and sysmobts and requires corresponding change in OpenBSC (Change-Id: Idac8609faf9b5ced818fde899ccfc6ed0c42e8fd). Change-Id: I74a0b42cb34d525b8a70d264135e82994ca70d31
2016-10-12jenkins.sh: use osmo-build-dep.sh, log test failuresNeels Hofmeyr2-52/+63
Like in libosmo-abis' and other jenkins.sh Change-Id: I6ad88bce18677b148af63ae8f6e0ab7e3b38b5a2
2016-10-12rsl: improving the log outputPhilipp1-7/+20
to show more details about the payload type and the connection Change-Id: Ifaa253e5baed5ca364dfbc046a7cb559f106bfbd
2016-10-12octphy: prevent mismatch between dsp-firmware and octphy headersPhilipp1-6/+20
in its current statue l1_oml.c does not check if the version number in the header files (octvc1_main_version.h) matches up the version that is reported from the DSP during startip. This patch ads a check to make sure that the currently loaded firmware and the headers used during compile time match. If a mismatch is detected, osmo-bts exits immediately. Change-Id: Icba5756517d632d53b129c5ce1a1dab4936dab91
2016-10-12Move copy-pasted array into shared headerMax4-18/+8
Change-Id: I377ece2845830e3defab2d515f44b629ce5aed8e
2016-10-11DTX: fix conversion from fn to msMax1-2/+4
Previously FN was converted to millisecondss incorrectly due to wrong conversion between FN and a number of voice samples. The conversion should be based on following: * there are 12/13 useful frames for audio in TCH * there is 1 RTP packet per 4 frame * there are 160 samples per RTP packet Fixes: OS#1801 Change-Id: I9cc70cacabde98621aa892cee74f4ac461645093
2016-10-11DTX: fix 1st RTP packet dropYves Godin3-1/+4
Use "impossible" dummy value to initialize last_fn to prevent dropping of 1st RTP frame due to timestamp jump. Fixes: OS#1803 Change-Id: I485af21f6761048d12dc7f5552fcdd46daf786ed
2016-10-06octopy: fixing renamed constantPhilipp2-0/+15
The constant cOCTVC1_HW_CLOCK_SYNC_MGR_STATE_ENUM_UNUSED in header file octvc1/hw/octvc1_hw_api.h has been renamed to cOCTVC1_HW_CLOCK_SYNC_MGR_STATE_ENUM_IDLE. This commit adds an ifdef decision in to code to ensure that older header files will still work. Change-Id: I4c0b976d29689ace06741c5943434fc33ee2df14
2016-10-06octphy: reintroducing multi-trx supportPhilipp3-1/+25
The multi-trx had to be removed because of build conflicts with octphy header that lack the struct members for needed to support multi-trx. For details see the following revert-commits: ed6b48e4a5fba07c3ecccf689991799ae13a2aaa c9a1f284acf518cb4e62c3898e20398ed53807c3 This commit reintroduces multi trx support and ads an ifdef decision to ensure that header files without multi-trx support still work. Change-Id: I7f9b2906cc149c817183745b4c96bcc7f9ebdad0
2016-10-02configure: check for pkg-config presenceNeels Hofmeyr1-0/+7
Change-Id: Ifee0434dfa275f9faa517c740fd8577930f37188
2016-10-02build: be robust against install-sh files above the root dirNeels Hofmeyr1-0/+3
Explicitly set AC_CONFIG_AUX_DIR. To reproduce the error avoided by this patch: rm install-sh # in case it was already generated. touch ../install-sh # yes, outside this source tree autoreconf -fi This will produce an error like ... configure.ac:16: error: required file '../ltmain.sh' not found configure.ac:5: installing '../missing' src/Makefile.am: installing '../depcomp' autoreconf: automake failed with exit status: 1 See also automake (vim `which automake`) and look for 'sub locate_aux_dir'. Change-Id: I02153ad52faf1465e9f7821378e04118f17352d2
2016-09-30DTX: send AMR voice alongside with ONSETMax6-20/+32
When ONSET event happens (either via Marker bit or due to unmarked talkspurt) we should first send Onset event to L1 and than send voice data in response to the same PH-RTS.ind. Change-Id: I2a7b89430ca49eee4a350c5f980bd6bcbc386347
2016-09-30DTX: move ONSET detection into separate functionMax4-74/+96
Move code from tch.c (lc15, sysmo) into generic function which: - check if talkspurt is happening - cache SID if necessary or invalidate cache - fill in CMR & CMI prefix This also fixes the problem when SID FIRST was cached without sending just like SID UPDATE instead of being sent right away. Change-Id: I6c7016a54749abadeef4fd4f5b6f750b256fb916
2016-09-30DTX: further AMR SID cache fixes (lc15, sysmo)Max6-173/+133
* consolidate AMR CMR and CMI handling in common/amr.c * use it in save_last_sid() * remove dead code * properly compute RTP payload length for AMR * use save_last_sid() for FR & HR as well * invalidate cached SID if SPEECH frame is received Fixes: OS #1800, #1801 Change-Id: I5a1c1ad0b0a295a50e67775a4db85f1d331755ed
2016-09-30DTX: move scheduling check inside repeat_last_sidMax7-79/+61
Note: this also require changes to properly link against libosmocodec - see 2bb65be159dfdabf664fec569b343320301701b0 in libosmocore. Change-Id: I96594cf3aa1013d505bd20069d5bf261d9a2aefb
2016-09-30LC15: Clarify msgb ownership / fix memory leaksMax1-22/+31
This is similar to 21b020b33633683d7c785af15c773aab0f79d0de which changes the way msgb is allocated/freed in sysmobts. Change-Id: I393828a7b1fb5927453ee25f54d605a5d3ea7087
2016-09-26DTX: remove misleading commentMax2-2/+2
There's no SID stored in UL direction so there's nothing to remove. Change-Id: I3f587a66406bc6a02b859e826f4903641fcc5a15
2016-09-24DTX: check Marker bit to send ONSET to L1Max9-24/+83
If Marker bit is set than it's a talkspurt which we have to explicitly indicate to L1 by first sending ONSET message and than actual voice data in a separate message. This change affect sysmobts and LC15 hw. Change-Id: I88c41568bcb0d82699f617adc4ad192603dd1bb6 Related: OS#1750
2016-09-24sysmobts_mgr, lc15bts_mgr: fix tall context for telnet vtyNeels Hofmeyr2-2/+2
Instead of passing the msgb ctx to telnet_init(), pass the *mgr* ctx. Change-Id: I213fe52648a1937d8f8c1730ce787e42f0add75f
2016-09-24octphy: Fixing band selection for ARFCN 0Philipp1-1/+3
There is now an exception for ARFCN 0 in osmocom_to_octphy_band to distingush ARFCN 0 (E-GSM) and 1-124 (P-GSM). Change-Id: If012f31121e9d0d45b36459807c5f290aa17374f
2016-09-24octphy: Fixing missing payload type in ph. chan. activationPhilipp1-0/+1
in l1_oml.c:ts_connect() the payload type (ulPayloadType) was not configured to full-rate for PDTCHF PACCHF and PTCCHF. Older octasic firmwares (below octsdr-2g-02.06.00-B964-alpha) will tolerate this, newer versions will crash during channel initalitation. Change-Id: Id2f6a439ceb063b10efc7b9d1d70bb5b29a01033
2016-09-23lc15, sysmo: Use SID_FIRST_P1 to initiate DTXMax2-4/+2
Some phone seems to not send SID_FIRST_P2 message which seems like a different understanding of the DTX spec. L1 accommodates for that by using P1 to supply data for SID. Hence we should use it to initiate DTX and ignore P2 message in case of AMR HR. Change-Id: Iaf993b89caa0ad49b97d1c745dcaf039f867f018
2016-09-23DTX: fix SID logicMax6-18/+38
Previously receiving SID via RTP always caused it's transmission to L1 regardless of the time which might have resulted in excess traffic. Fix this by only saving SID data and transmitting it later on as necessary according to 3GPP TS 26.093 A.5.1.1. Change-Id: Ifcdc5c60d0238b704a94f6778d4e00f2b087b090 Fixes: OS#1801
2016-09-23DTX: fix SID repeat schedulingMax4-116/+66
Previously SID retransmission was scheduled incorrectly based on GSM frames instead of voice frames. Fix this by using GSM Fn only as elapsed time estimation: * move saved SID retransmission into generic function from lc15 and sysmo specific code * split retransmission time check into separate generic function * compute estimation for elapsed time since last retransmission using GSM Fn Change-Id: Ib054b458a7345d9ba40dba53754ca59ab099c8e8 Fixes: OS#1799
2016-09-23DTX: fix last SID savingMax6-26/+14
Previously SID was saved explicitly by each BTS model (lc15, sysmo) instead of relying on generic function. Fix it by using generic function and propagating necessary parameters for it. Change-Id: Ie545212cce5ed2b3ea3228597f18a473f5e1deb4 Fixes: OS#1800
2016-09-22heed VTY 'line vty'/'bind' commandNeels Hofmeyr1-1/+2
Like most other osmo-* programs, bind the telnet VTY to the address specified by the 'line vty'/'bind' command. This is added by vty_init(), so until now the BTS offered this config but ignored it. Change-Id: Ic4ab32aee08d8a779adeb9943892de0c828c7b3d
2016-09-19log causing rx event for lchan_lookup errorsNeels Hofmeyr1-8/+10
Add log_name to lchan_lookup() and pass such from the various RSL rx events that call it to validate the RSL chan_nr. Change-Id: I0d9923f47ac655b204169eec302d607412d5754d
2016-09-17log: sysmo,lc15: tweak log about sapi_cmds queueNeels Hofmeyr2-6/+12
The osmo-bts log used to say this a lot: DL1C <0006> oml.c:758 (bts=0,trx=0,ts=0,ss=1) End of queue encountered. Now empty? 1 - Move this to DEBUG level instead of NOTICE. - Tweak wording and logic so it says one of: [...] End of SAPI cmd queue encountered. Queue is now empty. [...] End of SAPI cmd queue encountered. More pending. Change-Id: I5a46c90d016cee9b50f32db2af568765d3cb74cc
2016-09-14Update parameters in osmo-bts-sysmo for 11bit RACHbhargava1-6/+36
Based on the indication from L1, number of bits in RACH and burst type is determined. Appropriate parameters are filled in osmo-bts-sysmo These parameters are sent to osmo-pcu for processing of the RACH. Change-Id: I93831ddfb3f31b637e6a576f23a9bb4557758582
2016-09-09dyn TS: if PCU is not connected, allow operation as TCHNeels Hofmeyr1-11/+34
Before this patch, Osmocom style TCH/F_TCH/H_PDCH dyn TS were paralyzed if no PCU was running. The state of the dyn TS would lock up in the PDCH activation phase since the PCU never completed the process. Make more robust, i.e. don't concern the BSC with PDCH activation failures. This matches the way plain PDCH TS work: besides declaring the TS as PDCH, the BSC is not involved and is not told about errors. During PDCH deactivation, still wait for the PCU to tear down the PDTCH SAPIs, but in case no PCU is connected, send a rel ack right away. Thus, the BSC will happily switch Osmocom style dynamic timeslots to and from PDCH mode, using the dyn TS as voice channels as needed, and not caring about possible PDCH failures. GPRS starts working right away as soon as a PCU connects, regardless of dyn TS having been used for voice any number of times, and without another switchover needed. In detail: In rsl_rx_chan_activ(), upon receiving a PDCH activation, send an RSL chan act ack right away, unconditionally (with an explaining comment). Do not concern the Abis link with PDCH activation failures. Since we're acking right away now, drop the chan act ack that would follow after the PCU activation: as before dyn TS, only send acks and nacks for rel_act_kind == LCHAN_REL_ACT_RSL (PDCH runs as LCHAN_REL_ACT_PCU). In dyn_ts_pdch_release, indicate that the PCU is not connected by means of returning 1. In rsl_rx_rf_chan_rel(), use this indicator to send a rel ack right away if the PCU is not connected. Change-Id: I2a0b9730197786b99ff3bc1f08c75f7d279cb1f7
2016-09-06octphy: fix build with OCTSDR-OPENBSC-02.07.00-B708: name changedNeels Hofmeyr2-2/+2
There was an apparent change of name from cOCTVC1_HW_CLOCK_SYNC_MGR_STATE_ENUM_IDLE to cOCTVC1_HW_CLOCK_SYNC_MGR_STATE_ENUM_UNUSED in: git://git.osmocom.org/octphy-2g-headers commit 953a258aadf18c05e8128a339f15b1c5bb377cfd "Import headers from OCTSDR-OPENBSC-02.07.00-B708.tgz" In order to build octphy with these headers, apply the same rename in osmo-bts-octphy/*. Change-Id: Ic07055860035a7c1b83ab923817423eeb39f33d3
2016-09-06octphy: fix build: Revert "octphy: add support for multiple trx ids"Neels Hofmeyr1-3/+2
This reverts commit c4fc00d8515ddc9990dfaf700c501cb8fe490cab, except: we keep the part that sets the trx_id in bts_model_phy_instance_set_defaults(). Theoretically, this patch makes a lot of sense, but in order to be able to build osmo-bts-octphy until the headers version is clarified, revert use of usCentreArfcn: Above commit uses an usCentreArfcn member that is never defined in the history of our octphy-2g-headers.git. This usCentreArfcn does exist in a code snapshot OCTSDR-2G-02.05.00-B780-DEBUG, which is not (yet?) publicly available. Also, the current headers version is apparently 02.07, though the octasic version numbers have been known to cause confusion among osmocom folks. This along with one other revert fixes this build problem: make[3]: Entering directory '/n/s/octphy/git/osmo-bts/src/osmo-bts-octphy' CC l1_oml.o l1_oml.c: In function ‘l1if_trx_open’: l1_oml.c:1350:13: error: ‘tOCTVC1_GSM_TRX_CONFIG’ has no member named ‘usCentreArfcn’ oc->Config.usCentreArfcn = plink->u.octphy.center_arfcn; ^ l1_oml.c:1352:13: error: ‘tOCTVC1_GSM_TRX_CONFIG’ has no member named ‘usCentreArfcn’ oc->Config.usCentreArfcn = trx->arfcn; ^ In file included from ../../include/osmo-bts/logging.h:5:0, from l1_oml.c:33: l1_oml.c:1365:13: error: ‘tOCTVC1_GSM_TRX_CONFIG’ has no member named ‘usCentreArfcn’ oc->Config.usCentreArfcn, oc->Config.usTsc, oc->RfConfig.ulRxGainDb, ^ Change-Id: Ic643709e8fb3df2d66337190ed1f07fd230d7dca
2016-09-06octphy: fix build: Revert "octphy: fix for multiple trx with more than 1 dsp"Neels Hofmeyr2-10/+2
This reverts commit 06968beab90806cba94c8b331276e4dc209c152b. Theoretically, this patch makes a lot of sense, but in order to be able to build osmo-bts-octphy until the headers version is clarified, revert use of usCentreArfcn: Above commit uses an usCentreArfcn member that is never defined in the history of our octphy-2g-headers.git. This usCentreArfcn does exist in a code snapshot OCTSDR-2G-02.05.00-B780-DEBUG, which is not (yet?) publicly available. Also, the current headers version is apparently 02.07, though the octasic version numbers have been known to cause confusion among osmocom folks. This along with one other revert fixes this build problem: make[3]: Entering directory '/n/s/octphy/git/osmo-bts/src/osmo-bts-octphy' CC l1_oml.o l1_oml.c: In function ‘l1if_trx_open’: l1_oml.c:1350:13: error: ‘tOCTVC1_GSM_TRX_CONFIG’ has no member named ‘usCentreArfcn’ oc->Config.usCentreArfcn = plink->u.octphy.center_arfcn; ^ l1_oml.c:1352:13: error: ‘tOCTVC1_GSM_TRX_CONFIG’ has no member named ‘usCentreArfcn’ oc->Config.usCentreArfcn = trx->arfcn; ^ In file included from ../../include/osmo-bts/logging.h:5:0, from l1_oml.c:33: l1_oml.c:1365:13: error: ‘tOCTVC1_GSM_TRX_CONFIG’ has no member named ‘usCentreArfcn’ oc->Config.usCentreArfcn, oc->Config.usTsc, oc->RfConfig.ulRxGainDb, ^ Change-Id: I222766f6961f5f35aa3651e2907e3e908fe9a66e
2016-09-06oct: Attempt to enable the Octphy for the osmo-bts-oct buildHolger Hans Peter Freyther1-2/+2
Change-Id: Ib41dfe35af1ed2ef270a436a8086a3120fe4d7d6
2016-09-02common/rsl: move decision whether to chan act ack/nack to common functionNeels Hofmeyr3-34/+32
Prepare for a dyn TS patch that needs to call rsl_tx_chan_act_ack() directly without the rel_act_kind decision. Add function rsl_tx_chan_act_acknack() to wrap rsl_tx_chan_act_ack() and rsl_tx_chan_act_nack(). Move the decision whether to drop the ack/nack, based on lchan->rel_act_kind, to the new function, losing some code dup. Change all callers to use the new function; drop the two older ones from rsl.h and make them static. Note: for nack, the exception for dyn TS in PDCH mode was missing (rsl_tx_chan_act_nack() had only the rel_act_kind != LCHAN_REL_ACT_RSL condition, but should also have had the dyn TS exception as in rsl_tx_chan_act_ack()). I already know that this exception will again be removed in an upcoming commit, but for patch readability it logically makes sense to add it here. To easily include the nack case, drop the check for which pchan the dyn TS is operating as, because a rel_act_kind == LCHAN_REL_ACT_PCU implies that it is either already in or trying to become PDCH mode. Change-Id: I57ba60c670730c6d7877a6a9b96ece0a7679a0bb
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