aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
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
2016-07-16sysmobts: dump PRACH and PTCCH parametersMax1-1/+6
Change-Id: I6b833b21d2bbbd45dfed6a094a674359762d02b7 Related: OS#1545
2016-07-14osmo-bts-trx: init OML only once by sending AVSTATE_OK with OPSTATE_ENABLEDNeels Hofmeyr1-11/+1
When receiving an OPSTART for the BTS object, also set the availability state to OK. Before, the availability would remain at NM_AVSTATE_DEPENDENCY, which caused an unfortunate chain reaction resulting in osmo-bts-trx going through the initialization sequence twice: BTS BSC |<-----| SITE_MANAGER OPSTART n |----->| BTS state change: OPSTATE_DISABLED, AVSTATE_DEPENDENCY o | | This signals to nm_statechg_event() in bts_ipaccess_nanobts.c r | | to (a) Set BTS Attributes and (b) send BTS OPSTART m |<-----| Set BTS Attributes (a) a | | When osmo-bts-trx receives a Set BTS Attributes, it sends l |----->| CHANNEL state change: OPSTATE_DISABLED x8 | | This signals the BSC to Set CHANNEL Attributes and OPSTART i |<-----| Set CHANNEL Attributes x8 n |<-----| CHANNEL OPSTART x8 i |----->| CHANNEL state change: OPSTATE_ENABLED, AVSTATE_OK x8 t | | |<-----| BTS OPSTART (b) | | osmo-bts-trx immediately replies with: |----->| BTS state change: OPSTATE_ENABLED, AVSTATE_DEPENDENCY | | Unfortunately, availability is left at DEPENDENCY, | | and the NM_OC_BTS case in nm_statechg_event() only | | checks for availability, not for the opstate. | | Hence nm_statechg_event() again feels inclined to | | to (a) Set BTS Attributes and (b) send BTS OPSTART, | | --+------+----- This is where the second round starts | | s |<-----| Set BTS Attributes (a) e | | When osmo-bts-trx receives a Set BTS Attributes, it sends c |----->| CHANNEL state change: OPSTATE_DISABLED x8 o | | All channels are disabled again, and then re-launched: n |<-----| Set CHANNEL Attributes x8 d |<-----| CHANNEL OPSTART x8 |----->| CHANNEL state change: OPSTATE_ENABLED, AVSTATE_OK x8 | | i |<-----| BTS OPSTART (b) n | | osmo-bts-trx again sets the OPSTATE_ENABLED, but since i | | this time it was already enabled, no further state change t | | is sent back to the BSC. This nightmare pivots on two hinges: 1. osmo-bts-trx fails to set BTS availability to AVSTATE_OK. 2. nm_statechg_event() fails to heed the OPSTATE_ENABLED of the BTS state change. Note, the configured channels from the first round were not actually taken down, only the OML OPSTATE_DISABLED were sent. In this commit, fix the osmo-bts-trx side: send AVSTATE_OK for the BTS object upon sending OPSTATE_ENABLED, so that only the part marked "normal init" above is run. This change applies the same fix to other OML objects, which should make sense in the same manner, within the current hackish OML implementation: * NM_OC_BTS * NM_OC_SITE_MANAGER * NM_OC_BASEB_TRANSC * NM_OC_GPRS_NSE * NM_OC_GPRS_CELL * NM_OC_GPRS_NSVC This means that the NM_OC_CHANNEL case just above is identical, and thus collapse NM_OC_CHANNEL onto the other cases. Drop the comments from NM_OC_CHANNEL since they merely rephrase the commands themselves. See OS#1770 for BTS and NITB logs. Fixes: OS#1770 Change-Id: I08aa861f6100568c79750f4fbc9a32e1557b9304
2016-07-09log: osmo-bts-trx: change PDTCH block logs to DEBUG levelNeels Hofmeyr1-2/+2
Many erratic PDTCH blocks are expected. To not bloat the log, notifications for this should be on debug level. See http://lists.osmocom.org/pipermail/openbsc/2016-June/009457.html (Thu, 30 Jun 2016 01:49:33 +0300 / Alexander Chemeris <alexander.chemeris@gmail.com> / Re: GPRS on osmo-trx not working) Change-Id: Ie318248aa2b8de455174e72a63c602c7aeae312c
2016-07-09log: osmo-bts-trx: change access burst logs to DEBUG levelNeels Hofmeyr1-2/+2
Many erratic bursts are expected. To not bloat the log, notifications for this should be on debug level. See http://lists.osmocom.org/pipermail/openbsc/2016-July/009482.html (Tue, 5 Jul 2016 15:38:27 -0700 / Tom Tsou <tom@tsou.cc> / Re: osmo-bts-trx error logs -- was: GPRS on osmo-trx not working) Change-Id: If591c087ba8fd48564139e32930050ee8ab07001
2016-07-09cosmetic: osmo-bts-trx: add comment, fix comment typoNeels Hofmeyr2-2/+3
Change-Id: Iea62bd98954d0219ba597613cea6db63f7a6b396
2016-07-07sysmobts: Fix eeprom padding before gpg keyHolger Hans Peter Freyther2-1/+7
Correct the too short padding I introduced in the commit a55b166c6c7af79cbefe8e65fe77b2d61c634d2d. The result needs to be 121 and not 120. Add static asserts to make sure it does not happen again. Change-Id: I3da7f3b8d3c8e12deb8b805cd15ff52a103d4e56
2016-07-05Mark array as static constMax1-3/+3
Change-Id: Ia70519c8f10d55084b53acb68e57debc70549246
2016-06-27sysmobts: screnrc/systemd-service: Use osmo-bts-sysmo instead of sysmobtsHarald Welte2-2/+2
Back in January in commit 634c3e46484a0932f8a04b894be215b9288eecff we changed the executable name from 'sysmobts' to 'osmo-bts-sysmo', which is a change that has not been propagated to the contributed screenrc and systemd init files. Change-Id: I875a0ce4f470226e1b06ed1b7c74ca9471ebb574
2016-06-27TRX: add Uplink DTX support for FR/HRMax1-3/+13
* detect SID and set RTP Marker accordingly (emulate ONSET events) * set proper FN in TCH_IND * detect speech pause and do not send dummy 'bad' frames during that time Change-Id: Id518e5c667df7773c281effb9e75b66bf898f6fc Related: OS#1750
2016-06-24Remove duplicated nibble shift codeMax3-117/+0
Those functions are now part of libosmocore. Change-Id: Iab3206e3b41caff23f656a727605032df9798953
2016-06-23DTXu: move copy-pasted code to common partMax4-36/+20
Abstract code for checking/setting lchan's UL SID flag and RTP Marker into generic function and use it for LC15 and sysmoBTS. Change-Id: Ica5392e92bab29164711163e7b01adb174272883 Related: OS#1750
2016-06-23Make get_lchan_by_chan_nr globally availableMax6-42/+21
* Remove static qualifier * Remove duplicated code - use generic function instead Change-Id: I37a312648771f58d3087471083cfcebbd97ccf1d
2016-06-23fix compiler warning: remove unused variable 'i' in calib_verify()Neels Hofmeyr1-1/+1
Change-Id: Iea6bc47182d021523285aea8d3f6a93ee4eec0eb
2016-06-23fix compiler warning: remove useless 'static' storage class for struct declNeels Hofmeyr1-1/+1
Change-Id: I4d5d11dd89449e4c9315f963576265bccad7e68c
2016-06-23fix compiler warnings: include bts_model.h in phy_link.cNeels Hofmeyr1-0/+1
The file calls bts_model_* API which was yet undeclared. Change-Id: Ib6b30d125906c3abae518fb76da3a158885e3354
2016-06-22vty: install orphaned trx nominal power commandNeels Hofmeyr1-0/+2
The cfg_trx_nominal_power_cmd added 12 days ago in 58e4e18206501c3bffa65f0b876bbc5ebe175d6e was floating. Actually add it to the TRX_NODE. Change-Id: I89d638b2e2bb1fb9baeabe566035ff171f4bfad0
2016-06-22dyn PDCH: safeguard: exit if nothing pending in dyn_pdch_ts_disconnected()Neels Hofmeyr1-1/+3
The function would currently only be called in cases where one of the if branches catches on, but for safety's and clarity's sake, don't ts_connect using as_pchan if no reconnect is pending. Change-Id: I52c34065254e902bb80662fc04540901b36cb4c3
2016-06-22dyn PDCH: lc15: complete for litecell15-bts: implement bts_model_ts_*()Neels Hofmeyr1-2/+49
Analogous to 63b296bdd9a25134ee61ce6f269750e796a8bfca on osmo-bts-sysmo. Implement bts_model_ts_disconnect() by sending an MphDisconnect message to L1. Pass a disconnect callback to invoke dyn_pdch_ts_disconnected() in common/rsl.c. Implement bts_model_ts_connect() by calling ts_connect_as(). Pass a connect cb to invoke dyn_pdch_connected() in common/rsl.c. Change-Id: I8c8c3244c726fd6055cedb22ee11706994ff9cd4
2016-06-22dyn PDCH: lc15: handle TCH/F_PDCH init like TCH/FNeels Hofmeyr1-1/+2
Analogous to 57fc1124e1649fa2b08ef143697689aca4677625 on osmo-bts-sysmo. Change-Id: If65c5a86cbc1b5556b71de8a6744d92113fbbcba
2016-06-22dyn PDCH: lc15: add ts_connect_as(), absorbing ts_connect() gutsNeels Hofmeyr1-3/+10
Analogous to 294fbe104b9fb12f06f7cebe68a4b7a6ed28d5ef on osmo-bts-sysmo. For upcoming dyn PDCH switching, I want to be able to set the pchan dynamically upon ts_connect() and not continue with OPSTART ACK, but with the dyn PDCH. Thus recoin ts_connect(ts) to ts_connect_as(ts, pchan, cb) and leave ts_connect() as a thin wrapper to leave init code unchanged. Change-Id: I7a27193168f83e8c40b6e54d1842f4502d0475e5
2016-06-22dyn PDCH: lc15: chan_nr_by_sapi(): handle TCH/F_PDCH according to ts->flagsNeels Hofmeyr1-3/+15
Analogous to 0d10f0e482cdd50acc916e75a8b3ba1beb94227c on osmo-bts-sysmo. According to the PDCH Active flag, handle a TS as TCH/F or PDCH. Change-Id: I0c97b360136f76bdae8d70d06af9a31fdf75c1ba
2016-06-22lc15: add L3 handle to l1prim messagesNeels Hofmeyr2-11/+127
Analogous to 7158c2ed082eaca6063a501e490e8d3c3b181560 in osmo-bts-sysmo. Place a layer 3 handle into GSM L1 messages to better match up confirmations to respective requests. This handle is a uint32_t transparently returned in the confirmation messages, so a match-up is easy to add. So far, a GSM L1 confirmation message received for a preceding L1 Request was matched only by the prim_id. That meant that only one instance of the same primitive could be waiting for a confirmation at any given time, or the responses would get mixed up: the struct wait_l1_conf instances entered into the fl1h->wlc_list queue would be returned to a possibly mismatching confirmation handler. (Seen during testing of dyn pdch switching.) Send the hLayer3 handle out via prim_init(), using new static functions to produce handles on different scopes: * l1p_handle_for_trx() * l1p_handle_for_ts() * l1p_handle_for_lchan() (These could possibly move to a more general .h/.c file later.) Remember the hLayer3 handle in * struct wait_l1_conf. Match the incoming confirmations' and stored hLayer3 handles up in, and remove a now obsolete comment from: * is_prim_compat() Since the hLayer3 members are at different byte offsets in GsmL1_Prim_t.u.*, use large switch statements to set/get the value: * In prim_init(), extend existing switch statement to set in GsmL1_Prim_t. * Add l1p_get_hLayer3() to retrieve from GsmL1_Prim_t (could possibly move to a more general .h/.c file later). Note that some messages are already using the hLayer3 handle, and will overwrite it after calling prim_init(), so those are not affected. Change-Id: I17f95ba744c3e944a2241809106506f8dd1b24f0
2016-06-22fix lc15 build: put src/common/libbts.a left of -losmogsmNeels Hofmeyr1-1/+1
When switching to the gsm_chan_t_names string list from libosmogsm, libosmogsm actually became a dependency of the local libbts.a. The breaking change is in openbsc.git 29048b2a80b5865ffc41fa4401113c5826227e23 and came in here because gsm_data_shared.h is included from openbsc. Change-Id: I70e5735fc2a212305182d46a7e8485d0199ade7b
2016-06-22Clarify logging messageMax1-1/+1
Change-Id: I3c7be592f4cbdd553f07c4a7084478706a7bd644 Related: OS#1648
2016-06-21Use error values instead of number for RSL errorMax1-2/+2
Change-Id: I0aa695c42a4399828fb8e9c08c905870175b7149
2016-06-21Use libosmocodec functions for AMRMax4-107/+21
Switch to using libosmocodec functions as a preparation step for DTX support as they expose necessary bits. Change-Id: Ie7423032fd06779d78876182ee63538d98906328 Related: OS#1750
2016-06-18Move copy-pasted code into common partMax10-165/+94
Related: OS#1750 Change-Id: Ic4342eaf7e32a0e9a5f2b16dd196a1f5f03152a9
2016-06-18DTX: add support for AMR/HRMax2-2/+70
Change-Id: Id744b67904011eb328b24c46a645b3eb53525c04 Fixes: OS#1562
2016-06-17debug log: log TS pchan type on connectNeels Hofmeyr1-1/+5
A whitespace error is fixed along the way. Change-Id: Iff373ba934937435a175ed3a5d9cfb6f2514735d
2016-06-17debug log: log lchan state transitionsNeels Hofmeyr1-0/+6
Change-Id: Id20f61ef535f4ea049da6579e41eb98f31238d23
2016-06-17error log: two minor clarificationsNeels Hofmeyr2-3/+5
Change-Id: I95e4331f51f650d5077eb3a8f897f754d5d2b779
2016-06-17dyn PDCH: complete for sysmo-bts: implement bts_model_ts_*()Neels Hofmeyr1-2/+49
Implement bts_model_ts_disconnect() by sending an MphDisconnect message to L1. Pass a disconnect callback to invoke dyn_pdch_ts_disconnected() in common/rsl.c. Implement bts_model_ts_connect() by calling ts_connect_as(). Pass a connect cb to invoke dyn_pdch_connected() in common/rsl.c. Change-Id: I61709fdf6b093689a6d3a046f67db6d02f1296ae
2016-06-17dyn PDCH: sysmo: handle TCH/F_PDCH init like TCH/FNeels Hofmeyr1-1/+2
Change-Id: Ic62921e17c55aeb26235b70a8325d6fea1716cef
2016-06-17dyn PDCH: sysmo-bts/oml.c: add ts_connect_as(), absorbing ts_connect() gutsNeels Hofmeyr1-3/+10
For upcoming dyn PDCH switching, I want to be able to set the pchan dynamically upon ts_connect() and not continue with OPSTART ACK, but with the dyn PDCH. Thus recoin ts_connect(ts) to ts_connect_as(ts, pchan, cb) and leave ts_connect() as a thin wrapper to leave init code unchanged. Change-Id: I09cc794cb424e17411e608c65f2b68e2f2544e07
2016-06-17dyn PDCH: implement main dyn PDCH logic in common/Neels Hofmeyr3-0/+284
React on IPAC PDCH ACT and DEACT messages and invoke the PCU and bts_model_ts_* APIs to effect switchover. The dyn PDCH interaction is described in the comment to rsl_rx_dyn_pdch(), the main entry point for PDCH switchover. In case the bts_model_ts_* are not implemented (or return other errors), reply with an IPAC PDCH ACT/DEACT NACK. Add callbacks that mark steps in the PDCH switchover process, dyn_pdch_ts_disconnected(), dyn_pdch_ts_connected() and dyn_pdch_complete(). Add hooks in l1sap.c on channel activation and release confirmation, to call dyn PDCH callbacks. BTS dyn PDCH implementations should invoke dyn_pdch_ts_disconnected() and dyn_pdch_ts_connected() when bts_model_ts_disconnect() or bts_model_ts_connect() are called, respectively. (upcoming for sysmoBTS) Change-Id: Id2f5f77121a65d6c14eac127b3d4fb50e97a77ab
2016-06-17dyn PDCH: chan_nr_by_sapi(): handle TCH/F_PDCH according to ts->flagsNeels Hofmeyr1-3/+15
According to the PDCH Active flag, handle a TS as TCH/F or PDCH. Change-Id: I06ca26a99f052c6a2ae953fe355fd1196f66e501
2016-06-17dyn PDCH: pcu_tx_info_ind(): handle TCH/F_PDCH in PDCH modeNeels Hofmeyr1-1/+19
Introduce a static function to encapsulate the decision whether a TS is used for PDCH. Depending on the ts->flags, handle a TCH/F_PDCH TS exactly like a standard PDCH TS. Change-Id: Ic72fd06ecc99609823efa3edcf773007cc514b5b
2016-06-17dyn PDCH: conf_lchans_for_pchan(): handle TCH/F_PDCHNeels Hofmeyr1-3/+8
Depending on the PDCH active flag, handle a TCH/F_PDCH like TCH/F or PDCH. Change-Id: Ifc5561f8e2db172bb692ba26bdeae2fd675d6ec5
2016-06-17dyn PDCH: add bts_model_ts_connect() and _disconnect() stubsNeels Hofmeyr7-0/+56
Enhance bts_model_ API in preparation of dyn PDCH switching. These will be used to re-connect a TCH/F_PDCH TS in a different mode: either as TCH/F or as PDCH. All implementations so far return -ENOTSUP, and thus will cause a IPAC PDCH ACT or DEACT *NACK* to be sent to the BSC as soon as these messages are handled. Also add stubs in tests. Change-Id: I21e60c028a1333431c3ed000f788b654d1170b0d
2016-06-17fix two compiler warnings: add two opaque struct declarationsNeels Hofmeyr1-0/+3
Change-Id: Ie12eeff753e399b28a816893ac4d23e1cd391025
2016-06-17fix compiler warning: add missing case (PHY_LINK_CONNECTING)Neels Hofmeyr1-0/+3
Change-Id: I7979e10551023c1f52f04b4e93ea1706cf0bef39
2016-06-17fix compiler warning: printf format for sizeof()Neels Hofmeyr1-1/+1
Change-Id: Id600c5a34ab261736f7595ab2e36e3a30d434175
2016-06-17Add .gitreviewMax1-0/+3
Similar to other projects, add helper file for "git review" command. More information: https://www.mediawiki.org/wiki/Gerrit/git-review Change-Id: If3406fafa5778e94ab53e858ddda4a4d55651879
2016-06-17TRX: add configuration exampleMax1-0/+34
Related: OS#1648 Change-Id: Icc7d15eceee8ee667fd6a29e758a38668c4946ef
2016-06-17add missing DSUM entry to bts_log_info_catNeels Hofmeyr1-0/+6
This allows setting the 'sum' log level to debug in osmo-bts.cfg. Change-Id: I1fe1a483f07f0384815f01877f86ffc192052f72
2016-06-17doc: add ladder diagram on dynamic PDCH, add msc-READMENeels Hofmeyr3-0/+43
Adjust .gitignore for dyn_pdch.svg and .png. Change-Id: I532f896b1b528c4d1764bb5042a7f42c3c60f617
2016-06-17dyn PDCH: cosmetic: lchan_to_GsmL1_SubCh_t(): add case for TCH_F_PDCHNeels Hofmeyr1-0/+1
It is cosmetic since the 'default:' case already caught TCH_F_PDCH, but it's good to mention all expected pchans explicitly. Change-Id: I5aef84209e46c9288f6adf0730178fe08f26764f
2016-06-17dyn PDCH: rsl rx dchan: also log ip.access message namesNeels Hofmeyr1-2/+2
Before, only standard ABIS RSL message names were logged, add ip.access specific ones. The IPAC_PDCH_ACT and _DEACT msgs are received with an ABIS_RSL_MDISC_DED_CHAN discriminator, and not with _MDISC_IPACCESS like the others. Thus rsl_rx_dchan() should be able to log ip.access message types properly. Change-Id: I9db6826b515bf565fc7ae24fc0760b60928cc89f
2016-06-17oml, Set Chan Attr: treat unknown PCHAN types as errorNeels Hofmeyr1-3/+9
Change-Id: Id79585993df15362ba0e1271d03302597182ceff