aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/vty.c
AgeCommit message (Collapse)AuthorFilesLines
2020-03-08rsl: make IP DSCP configurableOliver Smith1-0/+16
Related: OS#4438 Depends: libosmo-abis I41603db8c1286660ad57ac1c78a8fb393a2b080b Change-Id: Icdef5d40243fefdeae23f3bcf9c6702e8487928a
2020-02-27vty: fix left shift by 31 cannot be represented in type 'int'Vadim Yanitskiy1-1/+1
Change-Id: I3e5940e8f360bf6563f4c1b5ebd09579f9108c81
2020-01-11common/vty.c: get rid of generic exit / end commandsVadim Yanitskiy1-42/+0
Those commands are now handled by libosmovty itself. Change-Id: I425f9058ae15de929e2ba0283d4057bdf767aeeb
2019-12-31osmo-bts-trx/vty: ensure backwards compatibility with older config filesVadim Yanitskiy1-2/+11
osmo-bts-trx used to have its own (low-level) MS Power Control loop, but recently it has been ripped out. Since [1], the process fails to start if the configuration file still contains 'ms-power-control dsp'. Let's be more tolerant: override 'dsp' by 'osmo' and print a warning. [1] I49706926b1e962b18791174627bc3cc0cd0cd9d5 Change-Id: I4facd21bca3d8cb80d21e83ea267bc013e474533
2019-11-26common/vty.c: fix: properly assert() the result of get_string_value()Vadim Yanitskiy1-2/+2
Change-Id: I6ecd46371e601ad0fb629f9756b36c9c4758a958 Fixes: CID#205067, CID#205068
2019-11-14Introduce BTS feature BTS_FEAT_MS_PWR_CTRL_DSPPau Espin Pedrol1-1/+7
It indicates whether BTS model supports managing an MS Power Control Loop over HW/DSP instead of using the software based osmocom algorithm present in osmo-bts. osmo-bts-trx own loop implementation is considered to be a "DSP/HW" one since it acts on lower layers and interferes with osmocom algorithm since it controls the same end variable "lchan->ms_power_ctrl.current", this way we make sure both aren't enabled at the same time. Old behavior in kept: if common upper-layer algo is not enabled explicitly in VTY (ms-power-control osmo) and bts-trx specific lower layer algo is neither enabled (osmotrx ms-power-loop <xyz>), then no power control is done at all. Related: OS#1851 Change-Id: I49706926b1e962b18791174627bc3cc0cd0cd9d5
2019-11-14Move and rename gsm_lchan.ms_power fieldPau Espin Pedrol1-1/+1
Make it clear that it contains the maximum MS power level (TS 05.05) and not the one to be used. The one aimed at is in ms_power_ctrl.current. Since it's used in related code, move it inside the ms_power_ctrl struct too. Related: OS#1851 Change-Id: Ib264ec7dac87355cef6415461ed74bd8e9c8ca52
2019-11-14Change gsm_bts_trx field to bool and rename itPau Espin Pedrol1-2/+2
Thies field is used to store and retrieve whether MS power needs to be calculated and updated by osmo-bts software or autonomously by lower layers. Previous name was not clear and may have been understood as indicating whether MS Power Control loop is done or not in general, and the responsible for that is located under lchan's ms_power_ctrl.fixed. Related: OS#1851 Change-Id: Ic690ab69866a7377f1597e24aa7b0214831c1cbe
2019-10-21vty.c: avoid coverity BAD_SHIFT issuesOliver Smith1-0/+2
Make it obvious for compilers and for coverity, that the sapi value used to shift a bit for the sapi_mask is always <= 31. The sapi value is an index of the value string l1sap_common_sapi_names, which has 24 entries. Fixes: CID#205067, CID#205068 Change-Id: Id8be0ab67479b1f76a4f624bd3a5242e4fe59f4b
2019-10-21vty.c: don't ignore get_string_value() errorsOliver Smith1-4/+4
Change uint8_t sapi to int, so we can properly assert on errors from get_string_value(). Fixes: CID#205066, CID#205069 Change-Id: I4d30afacfab93051868ae8f462cee9ad3dbc7fd0
2019-10-17vty: add "logging filter l1-sapi"Oliver Smith1-0/+56
Add VTY commands to filter by L1 SAPI. Allow to filter by multiple SAPIs by running the filter command multiple times: OsmoBTS> logging filter l1-sapi agch OsmoBTS> logging filter l1-sapi pch Related: OS#2356 Change-Id: I32d86d3d34757135b4cce59919c2fc2b67f0a889
2019-08-05Remove undefined param passed to {logging,osmo_stats}_vty_add_cmdsPau Espin Pedrol1-2/+2
Since March 15th 2017, libosmocore API logging_vty_add_cmds() had its parameter removed (c65c5b4ea075ef6cef11fff9442ae0b15c1d6af7). However, definition in C file doesn't contain "(void)", which means number of parameters is undefined and thus compiler doesn't complain. Let's remove parameters from all callers before enforcing "(void)" on it. API osmo_stats_vty_add_cmds never had a param list but has seem problem (no "void"), so some users decided to pass a parameter to it. Change-Id: Ia4d1a7914308d1481fe31fe0986265ead339e61e Related: OS#4138
2019-07-21Clarify and refactor link quality (C/I) handlingVadim Yanitskiy1-8/+8
The radio link quality is defined by C/I (Carrier-to-Interference ratio), which is computed from the training sequence of each received burst, by comparing the "ideal" training sequence with the actual (received) one. Link quality measurements are used by L1SAP to filter out "ghost" Access Bursts, and by the link quality adaptation algorithms. One can define minimum link quality values using the VTY interface. On the VTY interface we expect integer C/I values in centiBels (cB, 10e-2 B), while the internal structures are using float values in deciBels (dB, 10e-1 B). Some PHYs (sysmo, octphy, oc2g, and litecell15) expose C/I measurements in deciBels, while on the L1SAP interface we finally send then in centiBels. Let's avoid this confusion and stick to a single format, that will be used by the internal logic of OsmoBTS - integer values (int16_t) in centiBels. This will give us the range of: -32768 .. 32767 centiBels, or -3276.8 .. 3276.7 deciBels, which is certainly sufficient. Change-Id: If624d6fdc0270e6813af8700d95f1345903c8a01
2019-06-13l1sap: Compute statistics on FN advance in PH-RTS.indHarald Welte1-0/+2
Let's keep some statistics about the min/max/average frame number advance that we're observing above L1SAP when comparing the time in the PH-RTS.ind and the frame number we observe in PH-DATA.ind of data that was received on the uplink. The statistics are currently only shown in the VTY, but this is a precursor to using them to correctly advance the LAPDm timers in a follow-up patch. Change-Id: I8f739fdb808a614f080afbc4654641ec3df19eb2 Related: OS#2294 Related: OS#3906
2019-05-23cbch: Add counters; queue length limits and CBCH LOAD reportingHarald Welte1-0/+35
This adds the final missing part to full CBCH support: * keep a tab on the current queue length for basic + extended CBCH * keep rate counters about the number of sent / transmitted SMSCB * send CBCH LOAD information via RSL to the BSC Change-Id: I7068c7937a60a900c40439115bb84dc3ee0d061f
2019-05-21cbch: Keep SMSCB queue length counterHarald Welte1-14/+3
This avoids having to iterate the list to count the number of elements. Change-Id: I72c47affeb87c9b898bc2290dc7ed113945f1805
2019-05-21cbch: Support Extended CBCHHarald Welte1-2/+4
The logic for Extended CBCH are the same as for the Basic CBCH, we just need to * duplicate our related state * parse the optional RSL_IE_SMSCB_CHAN_INDICATOR IE * start to send data on the Extended CBCH (TB=4..7) Change-Id: If2c6dc7da1e2185ab75fc957f8d305ad8db22429 Closes: OS#3535
2019-02-18Enable statsd supportMax1-0/+2
Change-Id: I9112d9fd527cdc29d89868df40c6845a751c4865
2019-01-27common/vty.c: fix 'cfg_phy_no_inst_cmd' command descriptionVadim Yanitskiy1-2/+2
A comma is needed to separate a command definition from its description, not the parts of description. Let's fix this. Before this patch: OsmoBTS# configure terminal OsmoBTS(config)# phy 0 OsmoBTS(phy)# no? no PHY Instance number OsmoBTS(phy)# no ? instance osmotrx OsmoTRX Transceiver configuration After this patch: OsmoBTS# configure terminal OsmoBTS(config)# phy 0 OsmoBTS(phy)# no? no Negate a command or set its defaults OsmoBTS(phy)# no ? instance Select a PHY instance to remove osmotrx OsmoTRX Transceiver configuration Change-Id: If10d85abc6506118ba08c37e8101f423d6f838ea
2018-11-22common/vty.c: fix deprecated osmo_str2lower() usageVadim Yanitskiy1-5/+5
Change-Id: I4f78bc13908c2d9dfbe24195ae6e35fae8575c59
2018-11-21bts: Fix TRX0 param initializationPau Espin Pedrol1-1/+4
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-18bts: Allocate TRX for BTS dynamically, deprecate -tPau Espin Pedrol1-5/+15
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-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-05-25rtp: make port range configurable, assign correct port numbersPhilipp Maier1-0/+40
The current implementation does not allow the user to specify a port range in which the BTS is allowed to allocate a local RTP port. Also the ports the BTS picks do not match the policy described in RFC3550. An RTP Port must be at an even port number and the matching RTCP port must be at the following (odd) port number. The BTS currently picks random port numbers for both. - Add a VTY command to specify a port range in which the BTS may assign local ports. - Pick ports as described in RFC3550. Change-Id: Id75f1dfaf898ed8750d28b1c4840e188f4cfdc87 Related: OS#2825 OS#2635
2018-03-17Get rid of 'struct gsm_bts_role_bts'Harald Welte1-65/+48
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-17cosmetic: Move agch_queue to sub-structure of gsm_bts_role_btsHarald Welte1-15/+15
Rathert han have 11 direct members of gsm_bts_role_bts, group them into a sub-struct as ew do for other parts like interference, laod, ... Change-Id: Iefecf4b70c1b11c650913f2ae3783718ffb8a36c
2018-03-06common/vty.c: remove unused variablesVadim Yanitskiy1-2/+0
Change-Id: I289dda64228e81ca4c608121e50146a71e19f1e2
2018-03-02pcu_if: move definition PCU_SOCK_DEFAULT into pcuif_proto.hAlexander Couzens1-1/+1
PCU_SOCK_DEFAULT is defined in the pcu counterpart of the file pcuif_proto.h To be consistent with the pcu move the definition pcuif_proto.h The pcuif_proto.h will be exact the same in the pcu repo and bts repo. Change-Id: I67f8ec036e219994cc296d0ed5409da7f3ec681e
2018-02-27Add high-accuracy ToA value to Uplink Measurement ReportsHarald Welte1-0/+28
Normal Abis RSL MEasurement Results contain only the "MS Timing Offset IE" in units of full symbols. In some use cases it is important to have higher-accuracy timing information exposed to the BSC. We do this by adding the average timing offset value during the last measurement interval in 1/256th symbol accuracy to the "Supplementary MEasuremen Information" part of the TS 48.058 9.3.25 Uplink Measurements IE. In order to avoid any compatibility issues, this feature is only enabled if the new vty config command "supp-meas-info toa256" at the bts node is enabled. Change-Id: Ie85e53b47d4041cc4e6d7b78406ae8b79b2d9397
2018-02-27RACH decoding: Use BER threshold for RACH ghost detectionHarald Welte1-0/+16
When decoding RACH bursts, we should use a BER threshold in order to help distinguish 'ghost' RACH bursts from real RACH bursts. The theoretical ideal threshold according to some papers is 7 out of 41 bits qhich aquals to Eb/N0 of 0 dB = 0.1707 (17.07%) We add a new 'ber10k' parameter to the RACH indication l1sap primitive (needs separate change for libosmocore), and then fill this value from osmo-bts-{sysmo,lc15,trx,octphy}. The common part above L1SAP then applies the threshold, which can be changed from vty using the "max-ber10k-rach <0-10000>" command available at the BTS node. The unit is BER in 1/10000, i.e. a value of 100 equals 1% bit error rate. Change-Id: Ic41c11f6312a36baa2738547e8dcec80829457f8
2018-02-24BTS: add rate_ctr about CCCH (paging, agch, pch)Harald Welte1-0/+1
Change-Id: Id6c833746150a3c2e32b00ea6604669f16b84bc4
2018-02-22vty: display bts features in vty command show btsPhilipp Maier1-0/+20
The VTY command show bts does not display the bts specific features yet. - Also display the feature list in snow-bts Change-Id: I509f2a7bbfa96c70bdfea4ff2488ee371e914620
2018-02-14osmo-bts: Add talloc context introspection via VTYHarald Welte1-0/+1
This requires libosmocore with Change-Id I43fc42880b22294d83c565ae600ac65e4f38b30d or later. Change-Id: Ieed87b8109e0095a3d99c30f0b042aa3ee4b6384
2018-02-05vty: don't print "Bound IP / Port" if it isn't bound [yet]Harald Welte1-5/+7
Change-Id: I28705b56582d334d568d98a371daa6bb9ef1f625
2018-02-05Print much more information during 'show lchan'Harald Welte1-0/+31
This adds printing of remote RTP IP/Port, LAPDm SAPI information, MS Timing offset, propagation delay, encryption algorithm+state, loopback status and radio link failure counter to the "show lchan" command. It also adds TODO comments fro those bits that are not yet printed but which would make sense to print. Change-Id: Ic4bc47638b7b402aee9344dc912745a9929c37f4
2018-02-05Add 'show (bts|trx|ts|lchan)' commandsHarald Welte1-1/+402
This is more or less a 1:1 import from the BSC side commands. Having the commands on the BTS side will allow us to expose information that's not visible to the BSC [in upcoming, separate patches]. Change-Id: I2a596938849a9c84fe6fedcac5d7f71ee97af575
2018-02-05vty.c: Remove warning messagePau Espin Pedrol1-1/+0
This warning was included in commit 6d7b78bde165f39dcd9033f0c5386f5699801233 from 2011, and nowadays I only see this command used in osmo-bts, so I think we most probably drop it as it doesn't make sense anymore. Change-Id: Ie277dce00292c8f403b9a2b405efe4429e6af86a
2017-11-01vty: skip installing cmds now always installed by defaultNeels Hofmeyr1-4/+0
vty_install_default() and install_default() will soon be deprecated. Depends: I5021c64a787b63314e0f2f1cba0b8fc7bff4f09b Change-Id: I5e8e9d7989ee20fe722bdd3109965d5bce9519fb
2017-10-23vty: Print string for Administrative statePau Espin Pedrol1-2/+3
Change-Id: Ie41479958d6a57708e4b50705fd85c65f02e4527
2017-09-27vty: print version and description for each phyMax1-0/+12
When printing BTS via 'show bts ..' let's also print each TRX, which phy number and version it uses and its description. It's helpful in troubleshooting low-level issues as it allows vendor-specific code to easily expose firmware version. Related: SYS#3884 Change-Id: Iabcc862566b40a9314f3e1d17fda61d8ab24a3cd
2017-09-27Replace dead codeMax1-18/+5
* remove leftover from copy-paste of corresponding OpenBSC code * print OML link state * print paging load Change-Id: Ia5e3dc10efe2b5ab212cab1518a10d36b20b8bb2
2017-05-29vty: Remove command for manual channel activation/deactivationHarald Welte1-60/+0
OsmoBTS won't run without being connected to a BSC. The BTS wouldn't start to transmit if the BSC doesn't properly initialize it. So if we want to activate some channels manually for testing, we should do so from the BSC, and not inside the BTS code. Doing this in the BTS means that the BSC is not aware of it and might want to use that channel for something else meanwhile. Osmo{BSC,NITB} has gained ability to manually activate a channel from the VTY in Change-Id I44fc3904678eb48bd3ab1a3da8c0c265fa082e0d as can be seen at https://gerrit.osmocom.org/2759 So let's remove the old/obsoleted code here. Change-Id: I7ba0301b55cc283aa6a441899f84357e28a97321
2017-04-13octphy: display hint in case of wrongly configured transceiver numberPhilipp Maier1-0/+2
Making use of the multi-trx feature requires to tell osmo-bts that more than one transceiver are available. Otherwise it will complain that not enough transceivers are available. This can be quite confusing, even a correct config file will fail to parse if it specifies more transcrivers than available. This patch adds a hint to the error message so that the user knows that he should check the -t commandline option Change-Id: Ifbeacd9d43f7c6cd74a1e1b33288e66828fe843f
2017-04-10Handle TXT indication from OsmoPCUMax1-0/+3
* handle OML message * handle OsmoPCU version message * show stored PCU version in 'show bts ..' vty command Requires OpenBSc with I6710d53115f34634a7b70969cc05fd5c72ff8ab2. Change-Id: I16e73198501487a5b1076bf83390b85538d5af73 Related: OS#1614, 1615
2017-03-23vty: reduce code duplicationMax1-32/+6
Use libosmocore's osmo_str2lower() instead of local equivalent. Change-Id: I7faced2eaf0f6f87f06081235eea9d4c3ba71a7e
2017-02-10all models: fix vty write: bts_model_config_write_phyNeels Hofmeyr1-0/+1
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
2016-12-16Optionally use adaptive RTP jitter bufferingMax1-6/+19
* add vty option to manually enable adaptive RTP jitter buffering (disabled by default) on per-bts level * use this setting on per-lchan level when setting jitter parameters via vty at runtime * check and log result of osmo_rtp_socket_set_param() * note: older libosmo-abis will ignore this setting which will be properly detected via return value * if jitter buffer is disabled by configuring "rtp jitter-buffer 0" than adaptive buffering is disabled as well but it will be used if jitter buffer is set to different value for a givel lchan via vty Change-Id: I489f3c419039f40b57c2ef0641c176478b8d3566
2016-12-01cosmetic: vty prompts: add space after '#'Neels Hofmeyr1-4/+4
Typically, our VTY prompts have space after the '#', but some of the osmo-bts VTY prompts don't: OsmoBTS# configure terminal OsmoBTS(config)# bts 0 OsmoBTS(bts)#gsmtap-sapi ccch Add spaces after the '#' to yield e.g. OsmoBTS(bts)# gsmtap-sapi ccch Change-Id: If0591a359e77f01abb76c4113181af7a7733ddd4
2016-11-25vty: Ensure to not use negative (error) sapi valueHarald Welte1-0/+2
Change-Id: I282311de8514c1cc0a1b716e97e90ddf48863bb4 Fixes: Coverity CID 57617 Fixes: Coverity CID 57618
2016-11-16vty: Add commands to manually activate/deactivate a channel.Alexander Chemeris1-0/+60
This is the easiest way I found to make BTS level loopback to work. Another way to implement this is to have BSC/NITB to send the OML command, but it's a longer path with no clear benefits. Note, that the current code hardcodes the channel to be TCH/F with v1 speech, which is what we need for the basic BER testing. We may want to extend this later to support more channel types. Change-Id: Ia2734afeff023e5b3d6b934c7e8b1ed95a071b72