aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bts-trx
AgeCommit message (Collapse)AuthorFilesLines
2017-08-25osmo-bts-trx: Relax validation to allow TRX data bursts without paddingPau Espin Pedrol1-1/+2
Original OpenBTS transcievers add 2 bytes of padding to the end of data bursts, having in total 158 bytes. As those two extra bytes are being ignored after the initial validation, let's relax this validation a bit in order to accept transcievers that decide no to send these two extra bytes. Change-Id: I94c3cb160bfed0ba9c41ed7ef5f8d8a65b81ad07
2017-08-24osmo-bts-trx: remove global variables from loopsMax4-41/+44
* move TA related globals into phy_link * move power loop related globals into phy_link * prefix corresponding vty vars with osmotrx Change-Id: I01d7c1abad67e51b886a4ecf2de072929d67da27 Related: OS#1848
2017-08-24osmo-bts-trx: fix 'osmotrx legacy-setbsic'Max1-3/+3
It was introduced in fe6c75d24a1751341bcee91cb45c7ac7f5d07da3: * fix typo in config write * add missing vty help string Change-Id: Id42359dfbb8ad02f34dd2540db66f3ed69ad5181
2017-08-20Fix static build of osmo-bts-trx and osmo-bts-virtual.Alexander Chemeris1-1/+1
New libosmocore has some plugin system which requires dlopen(). So we need to make sure we always link with libdl, even when building statically. Note that this doesn't fix static build of tests - they are still failing with some errors. Change-Id: I8315d6e032e34528def268a49fd88d07bc06ab2e
2017-08-20osmo-bts-trx: Increase a maximum allowed MS power reduction step from 2dB to ↵Alexander Chemeris1-1/+1
4dB. We tend to start MS with high power to make sure distant phones get good QoS, but this also means that we need to reduce their power rather quickly. OTOH we can't make this step too high because this may lead to power output oscillation. From my (manual, limited) testing 4dB looks like a reasonable compromise. Change-Id: I58785513e5739474b881ed7f2a312ecc690e7e60
2017-08-19osmo-bts-trx: Remove an unused variable. Resolves a compiler warning.Alexander Chemeris1-4/+0
Change-Id: I2464e872f81021cbc3ccbc4e2e32c394d6afcf70
2017-08-19osmo-bts-trx: Fix MS power control loop.Alexander Chemeris2-12/+12
The following two commits from 2014-12-06 introduced a new variable to control MS power - ms_power_ctrl, but kept the old ms_power variable in place. They have also changed the meaning of the ms_power variable - it now keeps original RSL configured value. So when much later osmo-trx-bts code was merged to master the code was compiling fine and this change in the meaning was overlooked. In osmo-bts: 579651bf300de002731dfd3bd39985c9fd15616c power/sysmobts: Add a manual ms power level control In OpenBSC: f6f86b0eec18da165db136b14bf2db87fde4b4ac osmo-bts: Introduce new struct for a power loop in the BTS code Change-Id: I713e39b882db32a0d17aa04790d16fa79afa1fb1
2017-08-15osmo-bts-trx: Enable osmotrx tx-attenuation oml by defaultPau Espin Pedrol1-0/+2
There are currently two ways to specify power reductions to be sent to osmo-trx from osmo-bts-trx: * osmotrx tx-attenuation oml * osmotrx tx-attenuation <0-50> None of them is enabled by default, which means if none of them is specified in the config file of osmo-bts-trx, SETPOWER cmd won't be sent to osmo-trx, which in turn won't turn on the transciever. Let's enable osmo tx-attenuation oml by default and leave it up to the bsc to decide which power reduction to use. If the user wants to configure a specific tx-attentuation, it can still do so in exactly the same way he used to do it. Change-Id: Ia8640751630ee37e5f5d1f470bad892a08e80654
2017-08-09TRX: Remove global variables, move SETBSIC/SETTSC handling into phy_linkHarald Welte3-66/+37
Whether or not we are talking to an OpenBTS (SETBSIC) or OsmoTRX (SETTSC) transceiver is a property of the phy_link, and not a property of the BTS. Also, we *really, really* should never use global variables. I'm very happy this is being cleaned up, finally. Change-Id: I51aeb17661dfd63ff347f7b2c0d7ffa383ec814c
2017-08-09TRX: Remove bogus extern global variable declarationsHarald Welte1-2/+0
Those global variable declarations for non-existing variables were introduced in 8a8d73a691c709403be4adbe8f2a7150b4d5998a, let's remove them again. The source / destination IP address is a parameter of the phy_link, and not a global variable. Related: OS#1848 Change-Id: I94b5f934fc3bd00b0467d90029d3053b16594186
2017-07-30TRX / VIRT-PHY: Make check for BCCH/CCCH more specificHarald Welte1-2/+2
In bts_model_l1sap_down() we want to identify BCCH/CCCH channel numbers, but our check is a bit non-specific. Let's make the check more specific to only cover the BCCH, Uplink CCCH and Downlink CCCH C-bits as defined n 3GPP TS 08.58 Section 9.3.1 Change-Id: Ia20ab09b96c87c0dfbfaf98e5b2a8d36423fac67
2017-07-24cosmetic: Move error goto path to the end of the functionPau Espin Pedrol1-8/+9
Change-Id: I3ad15a9edbfe74de3deb7298441d54fd9d0178ad
2017-07-24cosmetic: scheduler_trx.c: Add function to get rid of ugly goto pathPau Espin Pedrol1-15/+22
Change-Id: I9c2e166e6f182f703ccf49aa883c223e377c8421
2017-07-24cosmetic: scheduler_trx: Remove trailing whitespacePau Espin Pedrol1-8/+8
Change-Id: Ib057b5e5219ad2acfaee2dcc9ade098daa9ac985
2017-07-02TRX: permit transmission of all-zero loopback framesHarald Welte1-30/+5
For some reason, osmo-bts-trx attempted to interpret/validate the contents of the downlink TCH block that it was about to transmit. If such checks are made, they should clearly be in the common part above L1SAP, and not in the bts-model specific part. Also, having the checks in place didn't allow us to send an all-zero downlink block, as is required for detection of uplink FER in a loopback testing setup, e.g. with CMU-300. Change-Id: I6388de98e4a7e20843a1be88a58bba8d2c9aa0d5
2017-07-01TRX: don't free l1h in trx_phy_inst_close()Harald Welte1-1/+0
l1h is allocated in bts_model_phy_instance_set_defaults() and not in trx_phy_inst_open(). Hence, trx_phy_inst_close() should not free() it! Change-Id: I0ac4e57a882e5a31143499c1662d8d8e52320938
2017-07-01TRX: merge/simplify l1_if and trx_if codeHarald Welte4-103/+92
Related code / function structure still dates back to the pre-phy_link days. Let's clean this up to make things less convoluted and reduce the number of non-static symbols needed between code split over two files. Change-Id: I1f30ae1f547a5c01c516d4a05032193294c25f2d
2017-07-01TRX: Rename trx_if_data() -> trx_if_send_burst()Harald Welte3-3/+3
The new name makes it clear what the function actually does: Send burst data via the trx interface. Change-Id: I5031541d4ae4244a62a18acf71139db2874927fa
2017-07-01trx_if: Improve error handlingHarald Welte1-3/+8
There ware some error conditions that the previous code didn't catch and/or report, such as unparseable TRX control strings, non-terminated buffers, ... Change-Id: I354d0c121880553ce1bd59b7394d52b104b7d6da
2017-07-01TRX: trx_if: Improve code description / commentsHarald Welte1-13/+54
Change-Id: I4e19d68782a12e52ba1d3ba2665060275d04866c
2017-06-29osmo-bts-trx: fix missing frame number in MEAS INDPhilipp Maier2-3/+4
The layer 1 interface (l1_if.c) for osmo-bts-trx 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-Id: Ife3c791ff50e8a866a97b9783ac7ef3ef2402a70
2017-06-28TRX: Use timerfd and CLOCK_MONOTONIC for GSM frame timerHarald Welte2-87/+246
using gettimeofday() is not suitable for the GSM frame timer, as it relies on the normal 'wall clock' system time, which may be adjusted by ntp, gps or other means at runtime. Switching to a different clock source means we cannot use osmo_timer_list anymore, but timerfd integrates just fine with our libosmocore select() loop handling. Change-Id: I51b19adde14ebb7ef3bb863d45e06243c323e22e Closes: #2325
2017-06-15scheduler_trx.c: strip unused variableVadim Yanitskiy1-2/+0
Change-Id: I870dad2a00f68cca1c31a719221fc30a07b30c20
2017-06-15cosmetic: fix some typosVadim Yanitskiy1-2/+2
Change-Id: Ib9172735bc7a05d9d7425a0e66dd90ff2569ee05
2017-06-15Set and report BTS featuresMax1-0/+3
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-06-06trx: Save osmotrx base-port vty propertiesPau Espin Pedrol1-0/+7
Change-Id: I0898a8c4eb3899fc1c0f6b17da33b8c7851b90d6
2017-06-06trx: Allow BTS and TRX to be on different IPsPau Espin Pedrol4-42/+45
Depends on libosmocore I3c655a4af64fb80497a5aaa811cce8005dba9cd9 Change-Id: I0bd34b7b02c1a9b0c6f6f89f327b486e5620c8d5
2017-05-29osmo-bts-trx: Remove duplicate parsing of NM_ATT_CONN_FAIL_CRITHarald Welte1-5/+0
For some reason, osmo-bts-trx did another take at parsing NM_ATT_CONN_FAIL_CRIT and storing the second octet in btsb->radio_link_timeout, just like the generic code already does in oml_rx_set_bts_attr(), but without proper checking and any error message. Let's remove it. Change-Id: Idb0179e1443c0b5a97e59919dba684a001e90192
2017-05-29Consistently check for minimum attribute/TLV length in RSL and OMLHarald Welte1-1/+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-27rx_tchh_fn(): Avoid copy+pasting formula to determine odd-ness of fnHarald Welte1-4/+7
Change-Id: Ic2a0bdaa70cc28c1ce8237351b0a0c6b998cf0a3
2017-05-27scheduler_trx: Avoid copy+pasting determining CMR from FNHarald Welte1-8/+12
instead, let's introduce a specific function for that. Also, as this can be easily determined from the frame number, skip one argument to tx_tch_common(). Change-Id: Ibbb9b685cf0b6a45339b0874438a500dd6254bc2
2017-05-27scheduler_trx.c: Avoid code duplication for BER10k computationHarald Welte1-8/+16
Use an (inline) function rather than code copy+pasting Change-Id: I42e76a4707968e428cbd2e43d5df71ef445efece
2017-05-27scheduler_trx.c: Fix typos, improve comments, cosmeticsHarald Welte1-25/+35
Change-Id: I5e2ce70aea8d62657ce3a7d6c16e5a7f8b76c22f
2017-05-27Remove unusued left-over gsm0503_conv.cHarald Welte2-1169/+0
gsm0503_conv.c should have been removed as part of efbef50efc170caccf6354360638cda762dd7fc3 but somehow was left here. It's not referenced/compiled by the Makefile anymore, and the gsm053_conv.c in libosmogsm has superseded it anyway. Change-Id: Icdcca1bc55a83c76ec47918dc4dd301155210091
2017-05-22osmo-bts-trx: use libosmocodingMax12-5607/+24
Remove built-in functions and use libosmocoding instead. Change-Id: I1b41bb1a8de655639107ec1f3b75afc240fd316f
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-05-09osmo-bts-trx/l1_if.c: cosmetic: drop double checkVadim Yanitskiy1-3/+3
Change-Id: I25a8f85ee65e1c0dd54049ffacc039702ca36c8f
2017-03-23osmo-bts-trx/l1_if.c: use channel combination III for TCH/HVadim Yanitskiy1-1/+1
Currently the channel combination II is used for TCH/H, which allows only one lchan to be allocated. The reason is that it saves a bit of CPU by disabling UL burst detection on lchan 1. There is also the channel combination III, which allows to increase channel capacity, providing two lchans on a single TCH/H timeslot. Ideally we should implement some dynamic II <-> III switching depending on the network load level. But for now this change replaces the channel combination of TCH/H by III, until dynamic switching is implemented. Fixes issue: https://osmocom.org/issues/1795 Change-Id: I8fd4abb42c153fcd26bcfe22a2554b5c2d02d810
2017-03-23osmo-bts-trx: fix scheduling of broken framesMax1-2/+4
* DTXu: don't set marker for broken frames * do not attempt to send 0-length bursts to avoid flood of errors after bts startup Change-Id: Icb536f951386b9abe34c0dacbb203f3db1e41bb3
2017-02-19osmo-trx-bts: Fix incorrect bts shutdown procedure in case of clock loss ↵Ivan Klyuchnikov1-13/+1
from osmo-trx This issue occurs in case of osmo-trx restart which leads to losing clock from osmo-trx. Function bts_shutdown from common/bts.c should be used in this case for proper bts shutdown. Change-Id: Ie65cf2e8f98cb8bf3314a00048aa53c1f8cd4c25
2017-02-14osmo-trx-bts: Fix incorrect bts shutdown procedure in case of abis ↵Ivan Klyuchnikov1-4/+1
connection closure This issue occurs in case of osmo-nitb restart which leads to abis connection closure. Function bts_shutdown from common/bts.c should be used in this case for proper bts shutdown. Change-Id: Id025e703dd5c91896d450d200e88e46552f178f0
2017-02-10Fix typo in TCH/H interleaving tableMax1-1/+1
According to Table 4 in 3GPP TS 45.003 j=11, b=3 case corresponds to k=91 and not j=12 as was previously used. Change-Id: Iad3cf545b2f7e16276466cc37dd7a1e7858467e5
2017-02-10osmo-trx-bts: Fix osmo-bts-trx crash on startup during reading phy instance ↵Ivan Klyuchnikov2-2/+5
parameters from config file pinst->u.osmotrx.hdl should be allocated before reading phy_instance parameters from config file and applying them. So allocation of pinst->u.osmotrx.hdl should be moved from l1if_open function to bts_model_phy_instance_set_defaults function, which is proper place for this allocation according to start-up procedure of osmo-bts. Change-Id: I6e23f92644400acb268818c9373a8fb10c003da1
2017-02-10osmo-trx-bts: Fix incorrect setting of RXGAIN and POWER parameters on second ↵Ivan Klyuchnikov4-74/+83
channel (TRX1) of osmo-trx Move rxgain and tx-attenuation (power) parameters from phy_link layer to phy_inst layer. Rxgain and tx-attenuation parameters should be set for each phy_inst and send for each osmo-trx channel accordingly via control commands. Change-Id: I4861a59d10d1ef91954e0c6ea265e66dec08844f
2016-12-12osmo-bts-trx: fix lchan deactivationMax1-2/+4
Use chan_nr for deactivating lchan instead of lchan->nr: chan_nr is the RSL Channel Number IE value, a bitfield aggregation of lchan type bits (cbits) and lchan number (lowest three bits). The error was introduced in 36153239bfd0b633c4d259a9de0a759f41197a2b. Change-Id: I6dd7060422ab9d18743c1ff2ab419e3e7299d74d
2016-12-05TRX: prevent segfault upon phy initMax1-7/+10
Previously if multiply phy instances were configured but not used osmo-bts-trx would segfault. Terminate with clear error message instead so user can correct configuration. Example configuration which caused problem: ... phy 0 instance 0 instance 1 ... trx 0 phy 0 instance 0 Note the 2nd instance of phy 0 which is not used in trx later on. Change-Id: Id979506731ea92401458f1060e87aeb690901539
2016-12-01Remove duplicated codeMax1-5/+19
Remove lchan deactivation related code duplication to facilitate future use for dynamic CCCH re-activation. Change-Id: Id0d3b19dbfaa16d1734321a07a6eb0355bfd77c9
2016-12-01trx: Add "maxdlynb" VTY command to control max TA for Normal Bursts.Alexander Chemeris5-1/+68
Originally `maxdly` command in osmo-trx was contrlling max TA for Normal Bursts. This was not a proper behaviour, because it was used to "control maximum distance a handset can attach from" which is controlled by Access Bursts max TA. Osmo-trx was corrected to apply `maxdly` to Access Bursts and a new command was introduced to contrl max TA for Normal Bursts - `maxdlynb`. This patch adds support for this configuration command into osmo-bts-trx. If you wonder why would you need that - some test equipment (namely R&S CMD57) has really bad timing sync and can generate signal a few symbols off. That prevents osmo-trx from properly receiving otherwise perfectly good bursts generated by CMD57. This configuration is a solution for this. Change-Id: Ib5d255299668ac1ef9f0ce95e016f55ba3c82277
2016-11-29osmo-bts-trx: remove obsolete include of netif/rtp.hNeels Hofmeyr1-2/+0
Change-Id: Idf364fd7d69446a7a996062f71d701d9c6cca84c
2016-11-11Replace link_id constant with defineMax1-4/+4
Instead of using constant for link_id directly, use shared define value. Change-Id: Ibf3d439d8893bd994ba089796175b6c635db2cf8