aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2018-11-27abis/oml.doc: remove duplicate sentence partNeels Hofmeyr1-4/+3
2018-11-27Add OsmoBTS control interface descriptionMax2-0/+26
2018-11-27fix various typos across all manualsJonathan Brielmaier5-10/+10
2018-11-27OsmoBTS: explain IEs marked 'ignored' *and* 'Received'Neels Hofmeyr1-2/+9
2018-11-27OsmoBTS: s/content of this attribute/this attribute/Neels Hofmeyr1-12/+12
2018-11-27OsmoBTS: fix typos, streamline language styleNeels Hofmeyr3-65/+64
2018-11-27OsmoBTS: typo x2 ('Objects Classes' -> 'Object Classes')Neels Hofmeyr1-2/+2
2018-11-27OsmoBTS: Fix the author name and mail addressHolger Hans Peter Freyther1-2/+2
2018-11-27Add link to Asciidoc source code of manualHarald Welte1-0/+6
2018-11-27initial checkin of manuals to public repoHarald Welte26-0/+3279
The manuals existed in different form for several years in an internal sysmocom repository. However, since they had just recently been converted from docboox-xml to asciidoc and all files have been re-shuffled for enabling the public release, there's not much point in keeping the history with git-filter-branch.
2018-11-27Importing history from osmo-gsm-manualsNeels Hofmeyr0-0/+0
Change-Id: I99bf0fcac4059d3eb8274ff5ee79b490efbdda59
2018-11-26bts_model: Allow TS connect to be processed asynchronouslyPau Espin Pedrol13-39/+63
This commit doesn't change internal logic of any model, only the API to be able to return result of connect TS asyncrhonously since some models (like osmo-bts-trx) require some time to process the result. This way PDCH ACT/DEACT (N)ACK can be sent once the result of this long process is known. For instance, nowadays in osmo-bts-trx we PDCH (DE)ACT ACK before getting the result from SETSLOT on the TRX iface. With this new API, bts_model_ts_connect doesn't return any value synchronously. Instead, it is expected to always end up calling cb_ts_connected with the return code from the TS activation process. 0 is considered a successs, while any other value is considered an error. Change-Id: Ie073a4397dd2f1a691968d12b15b8b42f1e1b0cf
2018-11-26cosmetic: fix whitespacePau Espin Pedrol4-4/+3
Change-Id: Iaa4552844db33fe69da5ed7028dbfa0100c33900
2018-11-23bts-trx: early return on POWERON successPau Espin Pedrol1-0/+1
Later on it's expected to add more rsp parsing, so let's return here and not depend on generic return further down. Change-Id: I8ddee46374ab329c47dc68e720e236f13d393f66
2018-11-23rsl: Avoid sending ipa PDCH DEACT NACK followed by ACKPau Espin Pedrol1-2/+1
It was spotted during osmo-gsm-tester test dynts:trx-sysmocell5000+mod-bts0-dynts67-ipa+cfg-codec-fr-any that osmo-bts-trx was answering to PDCH DEACT from BSC first with a NACK followed immediatelly after by an ACK. That happens after the test does a GPRS pdp ctx act successfuly and then deactivates the ctx and the 2 MS try to place a call between them (and thus channels need to be moved to TCH/F). Most probably the if condition where the lines for this commit are modified need to be fine-grained. Patch before this one should help to understand the steates/situation in this scenario, and then a follow-up patch can be created to improve the logic. Change-Id: I91c65da6b6b7094f32187d3b083153a87c3219fd
2018-11-23rsl: Log lchan state during dynts PDCH->TCHPau Espin Pedrol1-2/+3
Change-Id: Iee5ac0550afda71fce67b0340749c111b364bb4f
2018-11-22Drop unused functionMax2-27/+0
Change-Id: Ib1ecc6dcb243da27976ca0e90a83aefa18a65b76
2018-11-22Fix type mismatchMax1-1/+1
llist_count() return unsigned value, let's use it for counter as well. Change-Id: I81097a64ef694bec046afcc23cf995dc539a706b
2018-11-22Fix deprecated gsm_arfcn2band(), use gsm_arfcn2band_rc()Vadim Yanitskiy5-11/+26
Change-Id: I45aae70f4bc3f4f85d267dafb757debdef1bb7d7
2018-11-22common/vty.c: fix deprecated osmo_str2lower() usageVadim Yanitskiy1-5/+5
Change-Id: I4f78bc13908c2d9dfbe24195ae6e35fae8575c59
2018-11-21bts: Fix TRX0 param initializationPau Espin Pedrol3-2/+7
TRX0 is allocated in a different place than other TRX. Commit that introduced the bug added an initialization step (bts_trx_init) applied in VTY cmd "trx <0-254>", where TRX are allocated since same commit, but doesn't initialize TRX0 for reasons explained in first paragraph. As a result, some parameters were not applied to TRX0, like power ramping increment step, which prevented MS from finding the network in osmo-gsm-tester tests. Fixes: eebb6a4216f136132400831ca35ed70e7502e92a ("bts: Allocate TRX for BTS dynamically, deprecate -t") Change-Id: I5afd66548634ff53e2af24dc7055d408ca8ca4e3
2018-11-20bts-trx: Allow re-try without exit if POWERON fails in osmo-trxPau Espin Pedrol1-10/+44
If POWERON fails, announce to BSC that the TRX is not available, and announce it as available as soon as POWERON success is received. Related: OS#3692 Change-Id: Iaa8f497381038fd7f9f779a8211ebc6453837c65
2018-11-20common: Implement OML for trx_set_available(1)Pau Espin Pedrol1-6/+4
Related: OS#3692 Change-Id: I1ba32c162a8a98ed0fdd4190227de66270679e5a
2018-11-20bts-trx: setup timer once at creation timePau Espin Pedrol5-6/+17
The setup is only needed once, so no need to set it every time we want to schedule it. Furthermore, it will ease new code introduced in follow-up patches, which will schedule this timer under some circumstances without need to send a message at the same time (because re-try of a cmd after a delay is wanted). This commit adds an alloc function and an init function to keep different parts of the code decoupled and avoid exposing more implementation details between them (like exposing the trx_if timer). Change-Id: I3b6461d0130d25284e673c5efce0b3832c48bbb5
2018-11-19add missing check of osmo_wqueue_enqueue() return valueStefan Sperling1-1/+5
The return value of osmo_wqueue_enqueue() isn't checked. This can result in a memory leak if the message cannot be enqueued. Log an error an free the message upon failure, as done elsewhere. Change-Id: I5671ca364f31d98f2b28d028e7bf1797386de2ec Related: CID#57662
2018-11-19properly initialize si3 in test_is_ccch_for_agch_setup()Stefan Sperling1-1/+1
Prevent potential use of uninitialized memory in paging test. Change-Id: Ie8f8fc3c4a9e4cc18fc85b6822110de79da4246b Related: CID#188828
2018-11-19bts-trx: trx_if: Use struct to store CTRL msg parsed responsesPau Espin Pedrol1-22/+28
Change-Id: Icb84bce0621042afa4301678ba1cc58d8e3662bb
2018-11-19osmo-bts-trx: print TRX socket addresses in 'show transceiver'Max1-1/+4
Change-Id: I081305d730cbdb14b5ce1dbfee18673328225b66
2018-11-18bts: Allocate TRX for BTS dynamically, deprecate -tPau Espin Pedrol16-59/+117
No need to pass -t num_trx anymore to specify number of TRX to use. It is calculated based on dynamic allocation from VTY config. Using parameter -t is flagged as deprecated and is transformed into a NOOP por backward compatibility. As a result, TRX now are allocated after the BTS is allocated and initial config (pre-VTY) is applied. A new function bts_trx_init() is added, to set default config on each TRX during allocation and before setting VTY config on it. A new per BTS model function bts_model_trx_init() is added, to allow per model specific default configuration of each TRX. Change-Id: Iab1a754ab12a626759f9f90aa66f87bdce65ac9c
2018-11-06prevent potential NULL dereference in virtbts's tx_tchh_fnStefan Sperling1-1/+1
If chan_state->ongoing_facch is set, this code's logic suggests that both msg_facch and msg_tch could be NULL. Don't dereference msg_tch unconditionally. Change-Id: Icf5584396c5b925d55ca9380dd4f869ae5d72da3 Related: CID#172047
2018-10-29{oc2g,sysmo}-mgr-calib: Fix build against gpsd >= 3.18Pau Espin Pedrol2-3/+22
Change-Id: I1f9176432b3a01bd5e8c179dc269e391df2d446f
2018-10-27Add OC-2G BTS sourcesOmar Ramadan57-1/+13546
Change-Id: I327384fe5ac944dc3996a3f00932d6f1a10d5a35
2018-10-25common/scheduler.c: track TDMA frame loss per logical channelsVadim Yanitskiy2-68/+145
This change modifies the logic of TDMA frame loss tracking. To be more precise, the tracking logic was moved from per timeslot level to per logical channel level, what makes OsmoBTS more accurate in its measurements. But before getting into details, it's important to clarify some things about the Uplink burst processing in transceiver (OsmoTRX). If an Uplink burst is detected, OsmoTRX demodulates it and sends to OsmoBTS. If nothing is detected on a particular timeslot, OsmoTRX will do nothing. In other words, it will not notify OsmoBTS about this. Meanwhile, there are usually a few logical channels mapped to a single TDMA timeslot. Let's use SDCCH8 channel configuration as an example (simplified layout): /* SDCCH/8 (ss=0), subscriber A (active) */ { TRXC_SDCCH8_0, bid=0 }, { TRXC_SDCCH8_0, bid=1 }, { TRXC_SDCCH8_0, bid=2 }, { TRXC_SDCCH8_0, bid=3 }, // <-- last_fn=X /* SDCCH/8 (ss=1), subscriber B (inactive) */ { TRXC_SDCCH8_1, bid=0 }, { TRXC_SDCCH8_1, bid=1 }, { TRXC_SDCCH8_1, bid=2 }, { TRXC_SDCCH8_1, bid=3 }, /* SDCCH/8 (ss=2), subscriber C (active) */ { TRXC_SDCCH8_2, bid=0 }, // <-- current_fn=X+5 { TRXC_SDCCH8_2, bid=1 }, { TRXC_SDCCH8_2, bid=2 }, { TRXC_SDCCH8_2, bid=3 }, SDCCH8 has 8 sub-slots, so up to 8 subscribers can use a single timeslot. Let's imagine there are three subscribers: A, B, and C. Both A and C are active subscribers, i.e. they are continuously transmitting UL bursts, while B is not using ss=1 anymore. The original way of TDMA frame loss tracking was the following: - when an UL burst is received, store it's frame number in the timeslot state structure (last_fn); - when the next UL burst is received on same timeslot, compute how many frames elapsed since the last_fn; - if elapsed = (current_fn - last_fn) is lower than 10, then iterate from (last_fn + 1) until the current_fn and send dummy zero-filled bursts to the higher layers; - otherwise (elapsed > 10), process the current burst, and do nothing :/ According to our example, subscriber A is sending 4 bursts, then nobody is sending anything, and then subscriber C is sending 4 bursts. So, there is a 4 frames long gap between the both transmissions, which is being substituted by dummy bursts. But, as the logical channel on ss=1 is not active, they are dropped. This is not that scary, but the current algorithm produces lots of false-positives, and moreover is not able to track real frame drops in longer periods (i.e. >10). So, tracking the frame loss per individual logical channels makes much more sense. Let's finally drop this hackish 'while (42) { ... }', and track the amount of lost / received TDMA frames (bursts) individually per logical channels. Let's also use the multiframe period as the loss detection period, instead of hardcoded 10. And finally, let's print more informative debug messages. Also, it makes sense to use the amount of lost / received bursts during the calculation of the measurement reports, instead of sending dummy bursts, but let's do this separately. Change-Id: I70d05b67a35ddcbdd1b6394dbd7198404a440e76 Related: OS#3428
2018-10-22Convert lchan CCCH_LCHAN to chan_nr BCCH and viceversaPau Espin Pedrol2-4/+8
Before this patch it was being coded as SDCCH4 TS0 SS 0, and as a result the state LCHAN_REL_ACT_OML applied in opstart_compl in abused SDCCH4 TS0 SS 4 was not being checked when deciding whether to send a Chan Act ACK in rsl_tx_chan_act_acknack. Fixes: OS#3513 Change-Id: I1641960c9ffbb3ed0de74ab5b53e24e5b4ff3397
2018-10-22gsm_pchan2chan_nr: Fix conversion of CCCH_LCHANPau Espin Pedrol1-1/+1
Previous implementation made no sense, since chan_nr is never read before being set below from lchan_nr. Furthemore, if lcahn_nr=CCH_LCHAN=4, then: cbits = 0x4 + lchan_nr = 0x8 = b1000 which then becomes SDCCH8 according to GSM 08.58 9.3.1, so it's totally wrong: SDCCH/8 + ACCH 0 1 T T T Change-Id: Id1dee716991e6faa406f02c029e998af5780162a
2018-10-21scheduler_trx.c: Switch to osmo_timerfd() of libosmocore >= 0.12.0Harald Welte2-72/+10
Change-Id: I721d493659fde57eca1543b2e63171df1be1279d Fixes: Coverity CID#178646
2018-10-10rsl_rx_chan-activ: Improve logging informationPau Espin Pedrol1-2/+3
Change-Id: I9b9a666e195ea729503ecd707e1582268c190e09
2018-10-10l1sap: Log name of chan_nr instead of hex valuePau Espin Pedrol1-25/+27
Change-Id: If98e130d17f1d153a13ba28f48a0a563731fde41
2018-10-10lchan_meas_check_compute: Log value during incorrect num of SUB ↵Pau Espin Pedrol1-1/+2
measurementes detected Change-Id: I5dacbed5517b2aa2a6bbc66ec125f0bdfd1f5b2b
2018-10-07common/pcu_sock.c: cosmetic: explicitly address lchanVadim Yanitskiy1-2/+2
In the most cases a PDCH time-slot has only one logical channel allocated. In case of both osmo-bts-trx and osmo-bts-virtual, there are two kinds of logical channels: PDTCH and PTCCH, but since they share the same chan_nr value, deactivating one of them would trigger deactivation of another one. Let's explicitly address the first logical channel in array. Change-Id: I8edcb46e887c4db63a425eba89cec4374165763e Closes: OS#3023
2018-10-03abis: inp_s_cbfn: Improve logging signal related informationPau Espin Pedrol1-1/+3
Change-Id: Ia63b69882c74155bcae2e027a21ea7e319647256
2018-09-30sysmo, virtual: properly handle BS-AG-BLKS-RES as received from BSCHarald Welte2-2/+3
Change-Id: Ifd9a3be6189b3288526e12260d68a982b089404e
2018-09-30Fix computing CCCH block number from frame numberHarald Welte5-6/+41
The existing implementation used a simplistic macro, which was wrong in many ways: 1) it returned a negative value for "fn % 51 < 5" conditions without raising any error message or asserting 2) it returned a wrong block number for many different input frame numbers, as it didn't account properly for the FCCH/SCH gaps between the blocks Let's replace the simplistic macro with a proper lookup table based on TS 05.02, and let's OSMO_ASSERT() if this is ever called with non-CCCH frame numbers. Change-Id: I11fd6cc558bb61c40c2019e46f56c1fe78ef39f5 Closes: OS#3024
2018-09-30paging_test: Fix AGCH/PCH split test for second half of 102 multiframeHarald Welte2-13/+13
* we have to use modulo 51, not 50 * the check for FACCH/SCH has to be applied to to the fn % 51 result Change-Id: I540a7eeef3ea3ed7347f0f1b5a5a6fe7ce0ec8bb
2018-09-30contrib/jenkins_*.sh: drop rudimentary '--with-osmo-pcu'Vadim Yanitskiy2-2/+0
The '--with-osmo-pcu' flag dates back to a time where the 'pcu_interface' header was not copied in both repositories and you had to point one to the other. Change-Id: I79e494484cb099cc9ca8c27c38b785c5ea8c3bc6 Closes OS#3514
2018-09-26vty: mark 'rtp bind-ip' deprecated, not hiddenNeels Hofmeyr1-1/+1
The command implementation says "deprecated", so then the vty command attribute should also be DEPRECATED. It will be hidden from online docs and vty reference. Change-Id: I23e620f1b947e129989fe69c6380c91b9abf7021
2018-09-25lc15bts_mgr_vty: Ensure writing well-formed config filesHarald Welte1-5/+5
Every new node level should only add one additional space, not two! Change-Id: Ic890429a6ff1e0c89fe1c6a159c6ee6ecbcf9a5a
2018-09-25ensure all config file examples are well-formedHarald Welte10-193/+193
We used to permit multiple spaces to enter a new node in the config, but modern osmo* code writes config files well-formed where every node equals exactly one indent level. Change-Id: I3da56b34e87503c46e6bf3c7505b83ec5e6aaa20
2018-09-21lc15: led_sleep_cb: pass correct ptr to llist_move_tailPau Espin Pedrol1-1/+1
Fix compilation warning. At runtime it's not a big issue because the "list" field is the first field of the led_list (struct lc15bts_led_timer_list) variable. Hence, the address passed is the same. Change-Id: Ib8bf07990800d74bfb3ad7a55eccfc65e40cd480
2018-09-19common/rsl.c: tweak log message in lapdm_rll_tx_cb()Vadim Yanitskiy1-2/+3
During the investigation of OS#3559, it was discovered that the log message, which warns that an RSL message was dropped due to inactive logical channel, has incorrect log level - LOGL_INFO. This is not informative kind of message, so let's increase the log level, and additionally let's print the hexdump of message and it's length. Change-Id: I26eac5e4466c493ffe08dbb89de20f5e1c2bb85d