Age | Commit message (Collapse) | Author | Files | Lines |
|
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
|
|
Change-Id: I06db72deb78cbab588de2103657b0722b67887a0
|
|
If we do not enqueue a TRXC message, we should release memory.
Change-Id: Ie2cdf547befbc0fafdb82b10b45ad85a9b188b88
|
|
Change-Id: I0cb1d915db8787050cdec1802894f66e885a9bf3
|
|
Change-Id: Ie9d8f8ca86195be4408db717cd3194a7d2ddc918
|
|
Change-Id: I4633dd81d0b4cc104ca9e0803993ba766cb23790
|
|
Change-Id: Idd37ca9ebf0d483cbea6f0e992211b9c3e2af993
|
|
Change-Id: I3c2fa21baae64e6537a2c74b97f1108b84099064
|
|
Change-Id: I0991910e0ffa6140f20c49bd2f0ad9b42cf231ba
|
|
- 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
|
|
Change-Id: I80ceba60e4b48d5bc68de71a2b2a2036b1e78f57
|
|
Change-Id: I997ab5e9801af50708ce6dc35004da5e11cb926b
|
|
Change-Id: I75ffc5c0c1f683adf0632bfe71ac51d1adfd97bd
|
|
Change-Id: I93c6bebbf715076c774248596089c77511733acc
|
|
Change-Id: I9a680d4a60dbdd82dc31fbd06c6ecd2240945c68
|
|
Change-Id: I18cdaa26a674bd9279a4ea1946aefc6969404139
|
|
Change-Id: I9aeb1780b6a64f7bec80ecb243bd01b47cf4ef24
|
|
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
|
|
Change-Id: I712988a289c446c76dc4d9de0189fe448ae08e4d
Related: OS#4570
|
|
Change-Id: Iff2e3c47ed12f02f75589e7bd0cccb5dab32d040
|
|
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
|
|
define contains strings about dB vs mdB, not dB vs dBm.
Change-Id: Ib2f1f9429d7d5ead585fb93195a890abd568e65c
|
|
Related change in libosmocore will let gsmtap_makemsg return NULL if the
channel type is unknown: Ib4147a33a75c3cf425c30da8b0678c7fba8a371d
Related: SYS#4822
Change-Id: Ic22ab71e520ab44429a93724250d349d16250801
|
|
Change-Id: Idd40433fee22aeb1e86708c132929bb69e626334
|
|
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
|
|
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
|
|
Change-Id: I58eedd611ecd31cc36017545de2cf29acf49f521
Signed-off-by: Vadim Yanitskiy <axilirator@gmail.com>
|
|
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
|
|
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
|
|
== 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
|
|
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
|
|
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
|
|
Similar to what's done for lc15 in
Id80d5a52cbccce54456205dec230a0b546b8b310.
Change-Id: I06747d5992d09a506d26089391ef130418506333
|
|
Similar to what's done in I7a944c0636933c0389db9aabd8b5e6c173052f12 for
lc15.
Change-Id: I6f5e976969af994011bc9282ede115606f0f0d20
|
|
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
|
|
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
|
|
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
|
|
Change-Id: Ib527a9fe02c49f6129c376424480aa1004f9ee8f
|
|
/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
|
|
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
|
|
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
|
|
Change-Id: Ib70313d8f837ebac39ed8caaa80b01ffafe879d5
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
Related: OS#4438
Depends: libosmo-abis I41603db8c1286660ad57ac1c78a8fb393a2b080b
Change-Id: Icdef5d40243fefdeae23f3bcf9c6702e8487928a
|