aboutsummaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2020-06-07Ensure we include lchan name in all LAPDm log linesHarald Welte1-1/+2
This makes use of the newly-introduced lapdm_channel_init3() API, which provides the user (BTS in this case) to provide a human-readable string identifier for each LAPDm channel. This identifier is subsequently used in all related log lines to provide context. This means we will now get context information about which specific SAPI in which sub-channel (ACCH/DCCH) on which lchan/ts/trx/bts a given message originated from. Example: DLLAPD <0011> lapd_core.c:829 ((bts=0,trx=0,ts=0,ss=0)[DCCH][0]) SABM(E) received in state LAPD_STATE_IDLE Change-Id: I17e3d4797ec71e31d0775330ae36d2e1fd70423f Depends: libosmocore.git Ie6742843fff809edffcac24c4dce4edf66bc71be Related: OS#1938
2020-06-07osmo-bts-trx/trx_if: cosmetic: s/ocommand/command/Vadim Yanitskiy1-1/+1
Change-Id: I06db72deb78cbab588de2103657b0722b67887a0
2020-06-07osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb()Vadim Yanitskiy1-11/+12
If we do not enqueue a TRXC message, we should release memory. Change-Id: Ie2cdf547befbc0fafdb82b10b45ad85a9b188b88
2020-06-06common/scheduler: use boolean for channel activation stateVadim Yanitskiy3-13/+10
Change-Id: I0cb1d915db8787050cdec1802894f66e885a9bf3
2020-06-06common/scheduler: fix unreachable code in trx_sched_set_lchan()Vadim Yanitskiy1-4/+5
Change-Id: Ie9d8f8ca86195be4408db717cd3194a7d2ddc918
2020-06-05bts-trx: phy_link: Improve logging fmt in phy_link_state_set()Pau Espin Pedrol1-9/+14
Change-Id: I4633dd81d0b4cc104ca9e0803993ba766cb23790
2020-06-06osmo-bts-virtual: cosmetic: use LID_{SACCH,DEDIC} macrosVadim Yanitskiy1-2/+2
Change-Id: Idd37ca9ebf0d483cbea6f0e992211b9c3e2af993
2020-06-06osmo-bts-trx: fix: use noinst_HEADERS instead of EXTRA_DISTVadim Yanitskiy1-2/+1
Change-Id: I3c2fa21baae64e6537a2c74b97f1108b84099064
2020-06-06osmo-bts-trx: prettify Makefile.am: make it git friendlyVadim Yanitskiy1-6/+48
Change-Id: I0991910e0ffa6140f20c49bd2f0ad9b42cf231ba
2020-06-05rsl: refactor handling of RSL_IE_MR_CONFIGVadim Yanitskiy2-18/+20
- get rid of gsm_lchan::mr_bts_lv, it's never used anyway, - check IE length in amr_parse_mr_conf() before parsing, - check return code of amr_parse_mr_conf(). Change-Id: Ibfd5845ea429945b352dd14421e86562998d65ca
2020-06-05vty: fix bts_dump_vty(): properly print OML stream ID (TEI)Vadim Yanitskiy1-1/+2
Change-Id: I80ceba60e4b48d5bc68de71a2b2a2036b1e78f57
2020-06-05gsm_data_shared: drop force_combined_si & bcch_change_markVadim Yanitskiy1-3/+0
Change-Id: I997ab5e9801af50708ce6dc35004da5e11cb926b
2020-06-05gsm_data_shared: drop unused rach_b_thresh & rach_ldavg_slotsVadim Yanitskiy1-2/+0
Change-Id: I75ffc5c0c1f683adf0632bfe71ac51d1adfd97bd
2020-06-05gsm_data_shared: drop unused sacch_deact from struct gsm_lchanVadim Yanitskiy1-3/+0
Change-Id: I93c6bebbf715076c774248596089c77511733acc
2020-06-05gsm_data_shared: drop unused channel request reason definitionsVadim Yanitskiy1-24/+0
Change-Id: I9a680d4a60dbdd82dc31fbd06c6ecd2240945c68
2020-06-05vty: use gsm48_chan_mode_name() from libosmocoreVadim Yanitskiy1-14/+1
Change-Id: I18cdaa26a674bd9279a4ea1946aefc6969404139
2020-06-05vty: cosmetic: make an error message more informativeVadim Yanitskiy1-2/+4
Change-Id: I9aeb1780b6a64f7bec80ecb243bd01b47cf4ef24
2020-06-03bts-trx: vty: Add 'nominal-tx-power' cmdPau Espin Pedrol3-2/+45
This value will be soon acquired automatically by osmo-bts-trx by asking over TRXC to new versions of osmo-trx which is the nominal tx power for a given trx. However, to still be able to work correctly against older versions of osmo-trx or other TRX implementation (older or current) not supporting this new TRX comamnd, let's allow the user to force a given value through VTY for Tx power to work correctly. Change-Id: Ib1b6f80d3b54afc42db9d358a79582cc619c6ce4
2020-06-02osmo-bts-omldummy: make number of transceivers configurableVadim Yanitskiy1-2/+3
Change-Id: I712988a289c446c76dc4d9de0189fe448ae08e4d Related: OS#4570
2020-06-02osmo-bts-omldummy: print a brief usage statement if argc < 3Vadim Yanitskiy1-0/+5
Change-Id: Iff2e3c47ed12f02f75589e7bd0cccb5dab32d040
2020-05-31fix typo in osmo_bts_variant_names: s/omso/osmo/gVadim Yanitskiy1-3/+3
Accidentally noticed this typo while working on osmo-bsc: DNM ERROR abis_nm.c:525 BTS0 reported unknown variant 'omso-bts-trx' (expected 'osmo-bts-trx') Change-Id: I45b0fb7b940ee4267e6ee315d18e5b95c9231894
2020-05-28vty: Fix misleading define namePau Espin Pedrol1-4/+4
define contains strings about dB vs mdB, not dB vs dBm. Change-Id: Ib2f1f9429d7d5ead585fb93195a890abd568e65c
2020-05-20virtual/scheduler: log unknown GSMTAP chanHarald Welte1-0/+4
Related change in libosmocore will let gsmtap_makemsg return NULL if the channel type is unknown: Ib4147a33a75c3cf425c30da8b0678c7fba8a371d Related: SYS#4822 Change-Id: Ic22ab71e520ab44429a93724250d349d16250801
2020-05-19l1_utils.h: Avoid redefinition of global vars defined in l1_utils.cPau Espin Pedrol1-5/+5
Change-Id: Idd40433fee22aeb1e86708c132929bb69e626334
2020-05-16measurement: expect at least 1 SUB frame for AMRPhilipp Maier1-19/+48
The amount of SUB frames that may occur in AMR is not fixed, nor can it be determined by some formular or lookup table. The reason for this is that the DTX period may negotiated dynamicly. This means that the lower layers must make the decision if an AMR sub frame is a SUB frame early and tag the repective measurement / frame they hand up to the upper layers accordingly. However, regardles of the occurrence of DTX periods the amount of SUB frames in AMR must be always 1 or more because SACCH frames always count as SUB frames as well. Lets make sure that this is respected in the debug log as well as in the logic that tries to substitue missing SUB frame measuremnets. Change-Id: I1fd91b576ff7274caa6d4356bcd7a4fa4311219d Related: OS#4465
2020-05-16oml: fix oml_mo_tx_sw_act_rep(): do not allocate FOM header twiceVadim Yanitskiy1-1/+0
This redundant call to msgb_put() appends five '00'O octets to the "Software Activated Report" message, so they look like an unknown attribute(s). I accidentally noticed this in Wireshark. Change-Id: I7377575135f4a154572891d1b5b39ff814b97f38
2020-05-12osmo-bts-trx/scheduler: remove a left-over from UL TCH handlersVadim Yanitskiy1-4/+0
Change-Id: I58eedd611ecd31cc36017545de2cf29acf49f521 Signed-off-by: Vadim Yanitskiy <axilirator@gmail.com>
2020-05-09Use OSMO_FD_* instead of deprecated BSC_FD_*Pau Espin Pedrol15-49/+49
New define is available since libosmocore 1.1.0, and we already require 1.3.0, so no need to update dependenices. Let's change it to avoid people re-using old BSC_FD_READ symbol when copy-pasting somewhere else. Change-Id: Id51ccb2c273c5f0fa4986f28bbd69a72d2dbaa0e
2020-05-06measurement: make measurements more debugablePhilipp Maier1-2/+4
A debug line is printed whenever a measurement is added and it also displays if the added measurement is a sub frame or not, lets display all the other properties too, especially inv_rssi would help a lot as it shows us the rssi values which are reported by the lower layers Related: OS#2978 Change-Id: I0299b75e99661e8dd22ad6604a897db4533c3b2b
2020-04-26osmo-bts-{sysmo,oc2g,lc15}: fix segfault on 'dsp-trace-flag'Vadim Yanitskiy3-6/+6
== How to reproduce? phy 0 instance 0 dsp-trace-flag error dsp-trace-flag debug == What happens? Program received signal SIGSEGV, Segmentation fault. 0x432dbe64 in strcasecmp () from /lib/libc.so.6 (gdb) (gdb) bt #00x432dbe64 in strcasecmp () from /lib/libc.so.6 #10xb6ed69ec in get_string_value () from /usr/lib/libosmocore.so.12 #20x0001bcf0 in cfg_phy_dsp_trace_f () #30xb6fc1080 in ?? () from /usr/lib/libosmovty.so.4 Backtrace stopped: previous frame identical to this frame (corrupt stack?) Change-Id: I23137930f81bfa8adbb62828f341470c11202b5e
2020-04-25measurement: remove unecessary is_amr_sid_update parameterPhilipp Maier1-6/+2
The function ts45008_83_is_sub rougly decides if a frame is a SUB frame or not. This works by checking the frame number against against lookup tables. This works fine for codecs where the occurrence of SUB frames is fixed. However for AMR this is not the case as the DTX periods are dynamic. Here it is the responsibility of the lower layers (phy, frame decoding) to tag SUB frames early since making the decision later based on the frame number is not possible. The parameter is_amr_sid_update was probably added as a placeholder. It is set to falls by the callers of the function. Lets remove this parameter as a late decision if an AMR frame is a SUB frame will never work. Change-Id: I125d5ff592218a9e98130a6a7b6bbc6378ce4132 Related: OS#2978
2020-04-25dtx: add detection of AMR DTX frames for osmo-bts-trxPhilipp Maier2-12/+104
Currently we do not detect any of the DTX frames (SID_FIRST, SID_UPDATE etc.) Detecting and tagging those frames as is_sub is important for measurement processing. Also the RTP marker bit must be set on each ONSET frame. - Add detection of DTX frames - Tag DTX frames as is_sub and set frame type to AMR_SID - Set RTP marker bit when ONSET frames are received Change-Id: I5afe730fff2fa3199a5913b0de4f5c7b23a39f31 Depends: libosmocore I2bbdb39ea20461ca08b2e6f1a33532cb55cd5195 Related: OS#2978
2020-04-25oc2g: Fix mismatching signature in callback providedPau Espin Pedrol1-1/+2
Similar to what's done for lc15 in Id80d5a52cbccce54456205dec230a0b546b8b310. Change-Id: I06747d5992d09a506d26089391ef130418506333
2020-04-25oc2g: Fix returning values on void functionPau Espin Pedrol1-6/+5
Similar to what's done in I7a944c0636933c0389db9aabd8b5e6c173052f12 for lc15. Change-Id: I6f5e976969af994011bc9282ede115606f0f0d20
2020-04-25lc15: Fix mismatching signature in callback providedPau Espin Pedrol1-1/+2
Fixes following compilation warning: /osmo-bts/src/osmo-bts-litecell15/l1_if.c: In function ‘dsp_alive_timer_cb’: /osmo-bts/src/osmo-bts-litecell15/l1_if.c:1643:33: warning: passing argument 3 of ‘l1if_req_compl’ from incompatible pointer type [-Wincompatible-pointer-types] 1643 | rc = l1if_req_compl(fl1h, msg, dsp_alive_compl_cb, NULL); | ^~~~~~~~~~~~~~~~~~ | | | void (*)(struct gsm_bts_trx *, struct msgb *, void *) /osmo-bts/src/osmo-bts-litecell15/l1_if.c:220:21: note: expected ‘int (*)(struct gsm_bts_trx *, struct msgb *, void *)’ but argument is of type ‘void (*)(struct gsm_bts_trx *, struct msgb *, void *)’ 220 | l1if_compl_cb *cb, void *data) | ~~~~~~~~~~~~~~~^~ Change-Id: Id80d5a52cbccce54456205dec230a0b546b8b310
2020-04-25lc15: Fix returning values on void functionPau Espin Pedrol1-5/+4
Fixes following warnings: /osmo-bts/src/osmo-bts-litecell15/l1_if.c:1722:36: warning: assignment to ‘void (*)(void *)’ from incompatible pointer type ‘int (*)(void *)’ [-Wincompatible-pointer-types] 1722 | fl1h->hw_alive.dsp_alive_timer.cb = dsp_alive_timer_cb; | ^ Change-Id: I7a944c0636933c0389db9aabd8b5e6c173052f12
2020-04-25osmo-bts-litecell15: Implement missing features.Rafael Diniz7-13/+568
Many hardware parameters of the LC 1.5 were not exposed to the user. This change introduces most of the features, being very similar to osmo-bts-oc2g code. Mostly based on commit 653e974fec00414ba85baf258ccc46ea778a53bd from NuRAN's osmo-bts fork at: https://gitlab.com/nrw_noa/osmo-bts Change-Id: Ib16e7d423fc7030573acd86fbd356ae96697ed5d
2020-04-21osmo-bts-virtual: Avoid rejecting AMR in uplinkHarald Welte1-41/+2
Change-Id: Ib527a9fe02c49f6129c376424480aa1004f9ee8f
2020-04-20fix compilation with gcc-10Harald Welte3-36/+36
/usr/bin/ld: /home/laforge/projects/git/osmo-bts/tests/sysmobts/../../src/osmo-bts-sysmo/tch.c:584: undefined reference to `femtobts_tch_pl_names' /usr/bin/ld: l1_transp_hw.o:/home/laforge/projects/git/osmo-bts/src/osmo-bts-sysmo/femtobts.h:108: multiple definition of `pdch_msu_size'; main.o:/home/laforge/projects/git/osmo-bts/src/osmo-bts-sysmo/femtobts.h:108: first defined here /usr/bin/ld: l1_transp_hw.o:/home/laforge/projects/git/osmo-bts/src/osmo-bts-sysmo/femtobts.h:71: multiple definition of `femtobts_l1prim_type'; main.o:/home/laforge/projects/git/osmo-bts/src/osmo-bts-sysmo/femtobts.h:71: first defined here see also: https://alioth-lists.debian.net/pipermail/debian-mobcom-maintainers/Week-of-Mon-20200413/000651.html Change-Id: I4a9896153876fcda496365776883827746205f00
2020-04-14logging: use only LOGL_NOTICE as defualt loglevelPhilipp Maier4-20/+20
some of the log categories in logging.c are set to LOGL_INFO or even to LOGL_DEBUG. This is too verbose. Lets set those categories to LOGL_NOTICE. Also the BTS manager programs (...bts_mgr.c) use LOGL_INFO by default. This should be set to LOGL_NOTICE as well Related: OS#2577 Change-Id: I6e7a635f9b4a93529661dafc591d512d7b7e8c75
2020-04-04scheduler: always call Uplink burst handler on NOPE.indPhilipp Maier1-34/+11
When a NOPE indication is received from the TRX normally a separate handler (.nope_fn) is called. It turned out that calling the Uplink handler (.ul_fn) on NOPE indications is the usual case, so let's remove the .nope_fn member and call the Uplink handler directly. Since a NOPE.ind comes without burst bits, the Uplink handlers must check bi->burst_len to avoid uninitialized memory access. For some logical channels (in particular RACH, PDTCH/U, and PTCCH/U) it does not make sense to call the Uplink handler, so we ignore them. Change-Id: Ice45d5986610d9bcef2a7e41f0a395ec779e3928 Related: OS#4461
2020-04-03cosmetic: remove dead code from logging.cHarald Welte1-17/+0
Change-Id: Ib70313d8f837ebac39ed8caaa80b01ffafe879d5
2020-04-01l1sap: fix gsmtap_ph_rach(): properly pack 8-bit and 11-bit RAVadim Yanitskiy1-2/+12
According to 3GPP TS 44.004, section 7.4a, two alternative RACH block formats are specified: 8 bit (1 octet) and 11 bit. The bit order is little-endian (right to left). In L1SAP PH-RACH.ind structure (see ph_rach_ind_param) we use a field of type uint16_t to store RA values regardles of the block format. Thus when packing it to bytes, we cannot just cast uint16_t* to uint8_t*, we need to do some bit shifting. Change-Id: I0e91d825bb2e1897647dd5403c311d833a89ff2e
2020-03-24VTY: add "test send-failure-event-report"Oliver Smith1-0/+20
Send test failure event report OML message to the BSC. I found this useful while manually testing related handling code in OsmoBSC. Related: OS#1605 Change-Id: I0c4eba1636d8faf5012db26643bdf1d9fb6bfa1e
2020-03-22trx: Use NOPE indications on SDCCHHarld Welte1-0/+12
Without using the NOPE indication it might happen that we get into the following situation: * bursts 0,1,2 of a given block are received * burst 3 is lost on the radio interface, OsmoTRX sends NOPE * osmo-bts-trx doesn't pass the NOPE the the rx_tch*_fn() * we never detect the end of the block, never perform decoding and even if the burst could be fully decoded, we loose the block Related: OS#4661 Related: OS#2975 Change-Id: Idfc5c9a23db808c5f87ef5646c7e1d1cd3127371
2020-03-22trx: Use NOPE indications from OsmoTRX for TCH/F and TCH/HHarld Welte2-4/+13
Without using the NOPE indication it might happen that we get into the following situation: * bursts 0,1,2 of a given block are received * burst 3 is lost on the radio interface, OsmoTRX sends NOPE * osmo-bts-trx doesn't pass the NOPE the the rx_tch*_fn() * we never detect the end of the block, never perform decoding and even if the burst could be fully decoded, we loose the block For voice, it can lead to lost RTP frames in uplink, which is also problematic. Let's deal with burst_len=0 in rx_tch*_fn() and use it as nope_fn. Closes: OS#4661 Related: OS#2975 Change-Id: I0fbf4617daf24bd8aecfd9cfe1efd66cf73a277a
2020-03-22trx: Fix reported BER for TCH/HHarld Welte1-2/+3
This fixes a regression introduced in I710d0b7cf193afa8515807836ee69b8b7db84a84 We (obviously!) cannot compute the BER before performing convolutional decoding. Change-Id: I4e57f45d49cb513e4843e56f50c8de6980958fdc Related: OS#2977 Related: OS#4667
2020-03-10osmo-bts-virtual: Fix "virtual-um net-device NETDEV"Harald Welte3-6/+21
The VTY option to bind the virtual Um multicast to a specific network interface has existed ever since osmo-bts-virtual was first merged to the repo. However, embarrassingly, until today it never did anything, i.e. the code to actually perform the bind was missing. Depends: libosmocore.git Ib52d22710020b56965aefcef09bde8247ace4a9c Change-Id: I303f2e616d2d32b5a8005c3dcf0f5fad19ad3445 Related: OS#2966
2020-03-10osmo-bts-virtual: Add "virtual-um ttl <0-255>" VTY optionHarald Welte5-3/+38
This can be used to determine the multicast TTL packet and hence how far the packet will propagate in the network. If you want to operate the virtual Um only on your own machine, a TTL of 0 would prevent the packets from ever being transmitted on your local ethernet segment. Change-Id: I18a9f93b764aee4e1dc68a1c6ac4d078e52ca61d Related: OS#2966
2020-03-08rsl: make IP DSCP configurableOliver Smith3-2/+26
Related: OS#4438 Depends: libosmo-abis I41603db8c1286660ad57ac1c78a8fb393a2b080b Change-Id: Icdef5d40243fefdeae23f3bcf9c6702e8487928a