aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bts-litecell15
AgeCommit message (Collapse)AuthorFilesLines
2018-04-04use osmo_init_logging2() with proper talloc ctxNeels Hofmeyr1-7/+1
Completely drop bts_log_init(), call osmo_init_logging2() directly instead: all callers of bts_log_init() passed NULL as category string, so all it ever did was call osmo_init_logging(). The bts_log_info is already declared in the .h. Here and there also define a proper talloc root context instead of using NULL. Change-Id: Ic049f77bef74123b95350bcae182a468e0086b9c
2018-03-17Get rid of 'struct gsm_bts_role_bts'Harald Welte4-9/+4
gsm_bts_role_bts was introduced at a time when we still shared gsm_data_shared.[ch] between BSC and BTS, and where we then subsequently needed a BTS-private structure. Since that sharing was abandoned quite some time ago, we can merge gsm_bts_role_bts into gsm_bts and do away with the bts/btsb dualism in a lot of the code. Change-Id: I4fdd601ea873d9697f89a748cc77bcf7c978fa3e
2018-03-08fix handover: handle_ph_ra_ind(): evaluate ra_ind before msgb_trim()Neels Hofmeyr1-38/+45
Commit c2b4c668f3510b7b0baace749c5a310959010e90 I3b989580cb38082e3fd8fc50a11fedda13991092 introduces evaluation of ra_ind members below the msgb_trim() call that actually invalidates ra_ind. A symptom is that it breaks detection of Handover RACH, wich always ends up with lchan == NULL and interpreting all RACH as chan_nr == 0x88. Fix: do all evaluation of ra_ind before the msgb_trim(), for osmo-bts-sysmo, litecell-15 and octphy. To guard against similar mistakes in the future, set ra_ind = NULL before the msgb_trim() call. Related: OS#3045 Change-Id: I203021ee57f49cb963679ba8bec5943e2abb67fb
2018-02-27L1SAP: Increase resolution of reported burst timingHarald Welte1-2/+2
Before this patch we had: * osmo-bts-trx internally using 1/256th bit/symbol period * osmo-bts-sysmo internally using 1/4 bit/smbol period * PCU interface using 1/4 * L1SAP interface using 1/4 * measurement processing code on top of L1SAP using 1/256 So for sysmo/lc15/octphy we are not loosing resolution, but for osmo-bts-trx we're arbitrarily reducing the resolution via L1SAP only then to compute with higher resolution again. Let's change L1SAP to use 1/256 bits and hence not loose any resolution. This requires a corresponding change in libosmocore for l1sap.h, which is found in Change-Id Ibb58113c2819fe2d6d23ecbcfb8b3fce4055025d Change-Id: If9b0f617845ba6c4aa47969f521734388197c9a7
2018-02-27Move rach_busy counting above L1SAPHarald Welte1-10/+6
In the past, rach_busy counting was performed below L1SAP, while reporting was handled above. This lead to subtle differences between the BTS models, such as osmo-bts-trx missing to increment rach_busy. Let's move the rach_busy counting above L1SAP to share more code. This means we need libosmocore Change-Id I9439810c3a3ad89ea0302753617b850749af887c for the additional required parameters in ph_rach_ind_param, as well as libosmocore Change-id I2b1926a37bde860dcfeb0d613eb55a71271928c5 for osmo-bts-trx to determine the RACH bit error rate. Change-Id: I3b989580cb38082e3fd8fc50a11fedda13991092 Closes: OS#3003
2018-02-26{sysmo,lc15}: Fix RACH reporting in combined CBCH caseHarald Welte1-1/+2
Combined CCCH with CBCH is a separate PCHAN type and hence we must accept it in the list of RACH-carrying pchan types in order to correctly report the RACH chan_nr when handing RACH requests up to L1SAP. The bug this fixes likely might have rendered cells with combined CBCH impossible to use. Change-Id: I9537463e5eedd2b8b30f298e0d3b308367c5b1fb
2018-02-26{sysmo,lc15}: Correctly report BER to L1SAP in INFO_MEAS_INDHarald Welte1-1/+1
L1SAP uses 'ber10k' values, i.e. BER in 1/10000 units, where 10000 is all errors are bit-errors (= 100%). The PHY on osmo-bts-sysmo and osmo-bts-lc15 is reporting a float fBer value scaled to 1, i.e. 1.00 = 100% and hence must be 10000 as ber10k. Before this patch, BER values reported on those BTS models were too low by a factor of 100, resulting in way too optimistic RxQual values reported to the BSC. Closes: OS#3005 Change-Id: I17e2f8fe8055f613da1e554cd36ed13289f56fb3
2018-02-22Introduce + use LOG/DEBUGP with frame number prefixing/printingHarald Welte2-29/+23
Let's make sure whenever we do have a frame number, we print it as context in the related log line Change-Id: I751d5ddb3322fce489bc241459738cbcc55c890b
2018-02-22octphy: ensure all BTS models set featuresPhilipp Maier1-0/+6
Most of the BTS models do not or do register not all of thier features to the the feature list. - Update/extend the feature lists for all BTS-Models Change-Id: I26765a64153368016921c2ac115b1c4aec9bc5e4
2018-02-19sysmo+lc15: Add missign include for readv/writevHarald Welte1-0/+1
This avoids compiler warnings like this: ../../src/osmo-bts-sysmo/l1_transp_hw.c:130:13: warning: implicit declaration of function ‘writev’; did you mean ‘write’? [-Wimplicit-function-declaration] written = writev(fd->fd, iov, count); Change-Id: Ic67d369a3ca33bfa636ace9f272f1c7257de86e1
2018-01-21Move -I inside *INCDIR variableMax1-1/+1
Previouslywe could end-up passing empty '-I' to compilerif corresponding _INCDIR variable was not defined during the ./configure step. This is apparently tolerated by gcc but still seems like a wrong thingto do. Let's fix this by moving -I inside of *_INCDIR. Change-Id: I80915e5756d1bf64d789cfd5341fdd417ca8eed9
2017-11-01vty: skip installing cmds now always installed by defaultNeels Hofmeyr1-20/+0
vty_install_default() and install_default() will soon be deprecated. Depends: I5021c64a787b63314e0f2f1cba0b8fc7bff4f09b Change-Id: I5e8e9d7989ee20fe722bdd3109965d5bce9519fb
2017-10-08Remove build dependency on legacy OpenBSCMax1-1/+1
* copy-paste gsm_data_shared.* from OpenBSC master * remove corresponding configure check and option * remove .deb dependency Actual refactoring with removal of unnecessary structures/parts, moving common OpenBSC/OsmoBSC parts into libraries etc. are left for further patches. Current patch will make coexistence with *BSC easier and will simplify our build infrastructure. Change-Id: I9f004fb5c4c1db29d4792dfd281d388c7063da13 Related: OS#1923
2017-09-19vty: mgr: sysmobts, lc15: install default commands for ACT_NORM_NODENeels Hofmeyr1-0/+1
Change-Id: Ia1b3d5e010c5b6ea8e655b79d9b36b08cd1ef4c4
2017-09-08Check readv() return value to prevent crashMax1-2/+8
Previously result of readv() was used unconditionally so when it failed and returned negative value it was treated like very large positive which lead to memory corruption. Fix this and add proper error log. Change-Id: I956c8d551f45c9dd43b5e9de11dfe20dd8783647 Related: SYS#3865
2017-08-20Treat SIGTERM just like SIGINT in our programsHarald Welte1-0/+2
When somebody kills the process, it's best to handle the signal and to use the opportunity for some cleanup. We always did this in the BTS on SIGINT, but never on SIGTERM. Let's change it. Change-Id: I10009c08b7178988f646e2b6035197b9640ac9b5
2017-08-09L1SAP: Use RSL_CHAN_OSMO_PDCH across L1SAPHarald Welte1-2/+2
So far, L1SAP code is hiding RSL_CHAN_OSMO_PDCH from the bts specific code below L1SAP. This is some kind of a hack/workaround, making code and debug output / logs more difficult to understand. So let's teach the lower layer how to treat RSL_CHAN_OSMO_PDCH and remove the "hiding" code from the common l1sap.c code. Change-Id: Iaaa833febe45b82166d3901f10cc5466a7591c19
2017-08-01lc-15, sysmo: l1_if: print name on PH-DATA.ind unknwon sapiPau Espin Pedrol1-2/+2
Change-Id: I007e5f0ce9709026331817e55148749e21d8b015
2017-07-25cosmetic: lc15bts_mgr_vty.c: Fix typos in commentsPau Espin Pedrol1-2/+2
Change-Id: I46b1cc6e5502829e0c1dc84a184cd2002fbd2b18
2017-07-25litecell15: Register in vty limits for paX_pwrPau Espin Pedrol1-0/+2
Otherwise it fails to read the default config file. Change-Id: I316a8ea73091c7e76a175314b890e4d86e9c3010
2017-07-25cosmetics: Fix typos and whitespace in lc15bts_mgr_vty.cPau Espin Pedrol1-4/+4
Change-Id: I6e35fb9c1a6391e5185a62e9efd2f8ffba13cf0d
2017-07-22lc15: port lc15bts-mgr dependency changesMax7-85/+326
That's mostly changes related to lc15bts-mgr from https://gitlab.com/nrw_noa/osmo-bts branch nrw/litecell15 based on eb5b7f80510b603579f7af6d7d5ead296c2fa260 commit: * adjust comments to simplify further diffs * add libsystemd dependency to lc15bts-mgr * add software watchdog which uses it * ocxo calibration and gps related code Change-Id: I475a330af771891ba3c897294ce0dd57ec2ba8db Related: SYS#3732
2017-07-19lc15: port lc15bts-mgr changesMax19-375/+1988
That's mostly changes related to lc15bts-mgr from https://gitlab.com/nrw_noa/osmo-bts branch nrw/litecell15 based on eb5b7f80510b603579f7af6d7d5ead296c2fa260 commit. I wanted to incorporate vty and hardcoded paths changes so we can use it from this point without major backward-incompatible changes as a base for future ports. Change-Id: Iabbaedc84aaaa594150a4e5445c16dd1f6f89858 Related: SYS#3679
2017-07-18lc15: fix BTS revision and hw optionsMax2-7/+15
* remove typo in logging * add missing return statement * fix compilation warnings * add detailed logging for supported GSM band and related errors Change-Id: I73bccd81ec56845ba11b939937b295eb0f51b4a8 Related: SYS#3728
2017-07-18lc15-mgr: update parameter read/writeMax2-1/+4
Better match upstream lc15 code: * fsync on parameter write * use permanent storage directly for parameters Change-Id: Iac150bf2ebffc5fa9544b0f3b19cd647996fc8b6 Related: SYS#3728
2017-07-18lc15: cleanup board parameters readingMax1-22/+25
* move common code into separate function * print error similar to parameter reading code Change-Id: Icf3285d7bb921d212cb8945e835be2c81189fb87 Related: SYS#3728
2017-07-10Use osmo_dump_gsmtime to log fn across different layersPau Espin Pedrol1-2/+5
This commit also fixes a missing end of line in the log output of handle_ph_data_ind Change-Id: I049f58d51333d3590361db5c0105e6899a862af6
2017-07-10Allow passing low link quality buffers to upper layersPau Espin Pedrol2-12/+9
We want to always call l1if_tch_rx and l1sap_up in order to avoid losing triggering events on the upper layer. With this change, the upper layer will increase correctly seq + ts for RTP. It will then send an RTP packet with only the header and no payload, which is not correct but at least we avoid drifting the RTP clock. Upcoming patch in the series solves this issue. This patch assumes that we are not lossing data events from the physical layer and that we receive an event every 20ms, even if the MS is not transmitting due to DTX. Depends on libosmocore If4ae20c22b881e94585dad710f17b9e37f77bf82 Change-Id: If5df8940fab833eb4e3ed851880b66987d356031
2017-07-04sysmo, litecell15: Make sure all TCH events are triggeredPau Espin Pedrol1-0/+5
Change-Id: Ie674c7ec40838af36308c6998f227fa452ace4b4
2017-07-04Fix annoying trailing whitespacePau Espin Pedrol3-13/+12
This whitespace keeps being automatically fixed by editor, polluting my patches. Change-Id: If0ba1321ed326c1498e3f60b611bd962f2a9484a
2017-07-04Use L1P instead of L1C for TCH logging and allocationPau Espin Pedrol1-12/+12
L1C is for L1-Control primitives, while TCH channels are L1 Data channels. Change-Id: I07ea3a7326bfcb62271d58deb0743311f6d97c8b
2017-06-30litecell15/tch.c: Clean up use of empty bufferPau Espin Pedrol1-3/+4
Make code easier to read and avoid reading first byte of the buffer if size is 0. Change-Id: Ib9ee967c0f42098b3a0569e9d84f23832eb4f2d5
2017-06-29osmo-bts-litecell15: Fix missing frame number in MEAS INDPhilipp Maier1-2/+3
The layer 1 interface (l1_if.c) for osmo-bts-litecell15 does not include the frame number into the measurement indications it forwards to higher layers. The frame number is required to properly detect the end of a measurement period. change process_meas_res() to properly include the frame number into the l1sap primitive (struct osmo_phsap_prim *l1sap) Change-Id: Iee9c8f88b05cd5dba9920bb08e079a643e713237
2017-06-24LC15: properly handle BS-AG-BLKS-RES as received from BSCMinh-Quang Nguyen1-1/+1
Closes: OS#2014 Change-Id: Icf437e621d1991f6185e31a0953773309e2bf5ac
2017-06-19Move parameter file opening into separate functionMax5-61/+52
* use talloc for file path allocation * print detailed error on failures This simplifies troubleshooting of lc15bts-mgr failures. Change-Id: I86c93a2a4f080e8ac1517be93f58f6ffd00d248c Related: SYS#3686
2017-06-15Set and report BTS featuresMax1-0/+4
Set (possibly incomplete) list of BTS model-specific features and report them in response to attribute request via OML. Change-Id: I5f8a6681c3562ec261441e84dde6e085b516d92f Related: OS#1614
2017-05-29Consistently check for minimum attribute/TLV length in RSL and OMLHarald Welte1-2/+1
Make more use of TLVP_PRES_LEN() instead of plain TLVP_PRESENT() and implicitly assuming a certain length of the information element. What this obviously doesn't introduce is some kind of error generation/reporting in case the minimum length is not fulfilled. An IE that's too small is silently ignored by TLVP_PRES_LEN() and treated as if the IE wouldn't exist in the first place. Change-Id: If5c4eee65711c49bc8ba4675221b1d5fd16198e9
2017-05-10Set BTS variant while initializing BTS modelMax1-0/+1
This will allow proper BTS attribute reporting via OML in follow-up patches. Change-Id: I1c49d6c39fb4dac7a46ee25ceacf4c6ef0f0b736 Related: OS#1614
2017-02-10all models: fix vty write: bts_model_config_write_phyNeels Hofmeyr1-9/+5
The vty write for phy/inst is broken, leading to a written-out config being unparsable; fix all of these: - in common/vty.c, actually call bts_model_config_write_phy_inst(). - in sysmo and lc15 write the phy instance elements in bts_model_config_write_phy_inst() and not in bts_model_config_write_phy(), which lead to writing the members above their parent 'instance'. - sysmo, lc15 and oct omit the bts_model_config_write_phy_inst() implementation. This did not cause a compilation problem because it was in fact never called. - sysmo writes 'clock-source None' when clk_src is zero, leading to unparsable config (related: OS#1944). Instead omit the 'clock-source' when zero. - osmo-bts-trx seems to be the only part that lacks nothing, yet it also didn't work properly because bts_model_config_write_phy_inst() was never called. This problem existed since commit d784e50747b8cf0ce505489e1451f75be5ccbd4b "Introduce new phy_link and phy_instance abstraction" Change-Id: Icc54fa70045c8fa58e78cf9f788c21a437edfbd4
2017-02-01Fix AMR HR DTX FSM logic.Jean-Francois Dionne2-6/+15
Fix SID_FIRST_INH detection during speech and when SID_FIRST is interrupted by FACCH. Fix SID_UPDATE_INH detection during silence and when SID_UPDATE is interrupted by FACCH. Add a delay for SID_FIRST to appear at the right time after FACCH. Fix extra byte sent in downlink for SID_FIRST and SID_UPDATE. Change-Id: Ia811305e15541f2376005df736bd610e8b0d2f69
2017-02-01DTX: fix "unexpected burst" errorJean-Francois Dionne1-0/+1
Fix error during FACCH interruption of DTX for AMR HR. Max's note: added fix for sysmobts. Change-Id: Ib064952331b4f89676ee68a3d8078b1d9debe570 Related: OS#1801
2017-01-31sysmo,lc15: fix memory leak at each call placedJean-Francois Dionne1-1/+3
Max's note: added same fix for default case and ported it to sysmobts. Change-Id: Ife1293e3238cfda16eac9c28e7e81ffe5595e031
2017-01-12lc15,sysmobts l1_if: fix memleak in handle_mph_time_ind()Jean-Francois Dionne1-0/+1
Change-Id: I3061060235a488b114b636b3af9a2253a94de1e8
2017-01-10DTX: fix SID-FIRST detectionJean-Francois Dionne1-1/+1
Max's note: made similar modification to osmo-bts-sysmo/tch.c Change-Id: I76e62783b73803dfc0d32693a68020a9d89878b8 Related: OS#1801
2017-01-04DTX AMR HR: fix inhibitionMax2-1/+6
* Unlike in AMR FR, in AMR HR incoming ONSET have to be treated differently depending on whether we've recently sent SID UPDATE or EMPTY frame. Split ST_SID_U FSM state into 2 states to accommodate for that and make sure that additional states specific to AMR HR are not used for AMR FR. * Avoid sending E_VOICE and E_SID_U in corresponding states as those do not initiate FSM state transitions anyway. This decrease extra load from FSM signalling which otherwise would be triggered on per-frame basis. * Introduce separate signal for SID First P1 -> P2 transition to avoid confusion with E_COMPL and E_SID_U initiated transitions from P1 state. * Don't init DTX FSM for SDCCH channels. Change-Id: I229ba39a38a223fada4881fc9aca35d3639371f8 Related: OS#1801
2016-12-01Fix AGCH/PCH proportional allocationMax2-18/+7
Do not assume that 1 == BS_AG_BLKS_RES but take that information from SI3. Note: due to current implementation quirks we activate channels before SI3 obtained, than we deactivate channels upon receiving SI3 and activate them again. This might not be necessary once we migrate to proper OML state machines. This affects lc15 and sysmo hw. Change-Id: I11377b12680ac3b2f77f80e742b6f0af63fc9c1e Related: OS#1575
2016-12-01Remove duplicated codeMax2-6/+4
Remove lchan deactivation related code duplication to facilitate future use for dynamic CCCH re-activation. Change-Id: Id0d3b19dbfaa16d1734321a07a6eb0355bfd77c9
2016-12-01DTX DL AMR: rewrite FSM recursionMax2-32/+32
Add explicit state for recursion (sending the different payload data in response to the RTS request for same FN) and corresponding transition. Remove ST_FACCH_V as with new explicit recursion handling it becomes unreacheable. This makes it easier to maintain preemption (interruption of current procedure due to FACCH or Inhibition). This also reduces the number of possible transitions out of each state thus reducing graph's cyclomatic complexity. Change-Id: If39b68083d23a4a35f468a5d75f54eb733ebfd14
2016-11-11Replace link_id constant with defineMax1-3/+3
Instead of using constant for link_id directly, use shared define value. Change-Id: Ibf3d439d8893bd994ba089796175b6c635db2cf8
2016-11-08DTX DL: tighten check for enabled operationMax2-4/+4
Introduce dtx_dl_amr_enabled() function which checks that DTX is enabled and FSM is allocated and use it for all corresponding checks. Change-Id: Ifa68b641265ed14f242765c85e40da2d1021a541