aboutsummaryrefslogtreecommitdiffstats
path: root/tests
AgeCommit message (Collapse)AuthorFilesLines
2021-09-06MS Power Control Loop: Support set up of C/I parameters for osmo-btsPau Espin Pedrol1-0/+24
This commit extends existing VTY and RSL infrastructure to configure and manage MS Power Parameters used in MS Power Control loop, by adding support to set up Carrier-to-Interference (CI) parameters. Using C/I instead of existing RxQual is preferred due to extended granularity of C/I (bigger range than RxQual's 0-7). Furthermore, existing literature (such as "GSM/EDGE: Evolution and Performance" Table 10.3) provides detailed information about expected target values, even different values for different channel types. Hence, it was decided to support setting different MS Power Parameters for different channel types. These MS Power Parameters are Osmocom specific, ie. supported only by newish versions of osmo-bts. Older versions of osmo-bts should ignore the new IEs added just fine. The new IEs containing the MS POwer Parameters are not send for non osmo-bts BTSs, hence this commit is secure with regards to running osmo-bsc against an ip.access BTS such as nanoBTS. Related: SYS#4917 Depends: libosmocore.git Change-Id Iffef0611430ad6c90606149c398d80158633bbca Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f
2021-09-03osmo_bsc_main: integrate MGW pooling into osmo-bscPhilipp Maier1-0/+7
Since the libosmo-mgcp-client now supports MGW pooling, lets use this feature in osmo-bsc. Large RAN installations may benefit from distributing the RTP voice stream load on multiple media gateways. Depends: osmo-mgw Icaaba0e470e916eefddfee750b83f5f65291a6b0 Change-Id: I8f33ab2cea04b545c403a6fe479aa963a0fc0d0d Related: SYS#5091
2021-08-30vty: add "msc N bssmap reset" commandNeels Hofmeyr1-3/+0
Allow resetting the BSSMAP link from VTY, for BSC_Tests.ttcn. In the field, detecting that an MSC is lost is done by getting three connection failures in a row. For the BSC_Tests, it is easier to just provide a VTY command to reset an MSC's link status. I want to add tests that verify the stat items reflecting the MSC connection status. To be able to run a test expecting fewer connected MSC after a test that launched more MSCs requires the links to be reset. Related: SYS#5542 Related: Ice3056dc46c94f9399f8379db7aeb7193782f2f2 (osmo-ttcn3-hacks) Change-Id: I1975941b790d2b30d0904d41e456220cba26ecff
2021-08-16early IMM ASS 3/n: implement 'pre-ts-ack'Neels Hofmeyr1-0/+8
Add experimental 'pre-ts-ack' to the 'immediate-assignment' options: send the IMM ASS even before a dynamic timeslot is switched. This possibly saves an Abis roundtrip, but may be racy. When pre-ts-ack is chosen, already do the IMM ASS before the dyn TS pchan switch is ACKed. In Immediate Assignment, in case the dyn TS is not ready yet, get the pchan kind from lchan->type, which already reflects the target type, and not from ts->pchan_is, which still reflects the previous pchan type. Related test is in I2ae28cd92910d4bc341a88571599347a64a18fe5 Related: SYS#5559 Change-Id: I19e6a3d614aa5ae24d64eed96caf53e6f0e8bb74
2021-08-16early IMM ASS 1/n: add vty config optionNeels Hofmeyr1-0/+18
This patch adds only the VTY config option without any effect, to ease patch review. The implementation follows in I56c25cde152040fb66bdba44399bd37671ae3df2 The new config option is written so that further variants of Immediate Assignment sequencing may be added easily. See also I19e6a3d614aa5ae24d64eed96caf53e6f0e8bb74. Related: SYS#5559 Change-Id: I710343d1728153faf3db9758ff5a1ef26bb8d3d4
2021-07-24vty: lchan deact: allow omitting the lchan type argNeels Hofmeyr1-1/+2
In the command bts <0-255> trx <0-255> timeslot <0-7> sub-slot <0-7> deactivate fr the final argument indicating the channel type does not make sense and is not actually used. Define a separate vty command for 'deactivate', so that it doesn't require arguments only used for 'activate'. Change-Id: Ibdeca3b1d75b9f6092f566544e9d5f4da67fffce
2021-07-23Introduce VTY option to forbid use of TCH for non-voicecall signallingPau Espin Pedrol1-3/+22
Usual allocation mechansim, when some signalling channel is needed, first tries to reserve an SDCCH, and if all of them are exhausted, then attempts to reserve a TCH as a last resort. This, however, may cause TCH starvation under certain situations, for instance if there high load on other services (LU, SMS, etc.). Hence, it may be desirable for the operator to forbid reservation of TCH slots once SDCCH become exhausted. This commit is thus adding a VTY command which allows forbidding it. The default behavior (allow using TCH timeslots when SDCCHs are exhausted) is kept as before. The above mentioned prohibition is applied only to non-voicecall related signalling services. That's because voicecall services will end up requiring a TCH anyway, and forbidding reservation of TCH straighaway when SDCCHs are exhausted would mean no voice calls could be initiated while still TCHs would be available. Related: SYS#5548 Change-Id: Ib08027125145df26602069bfb51847063b0ccc0c
2021-07-23Introduce libbsc to avoid linking long lists of .o filesPau Espin Pedrol8-168/+8
Every time a new file is added in osmo-bsc, it ends up being a pain because its .o file has to be included to other tests/util binaries, or stubs need to be added. Let's instead bundle all .o files together in an .la file and pass that around. Change-Id: If91dc589ea1e476da105b58846d1c3e720a439e1
2021-07-23Split bts_vty.c creating bts_trx_vty.cPau Espin Pedrol1-0/+1
Change-Id: I15ec8f71a5d31915162cb3ad75ea77e934fa4887
2021-07-22Split bsc_vty.c creating bts_vty.cPau Espin Pedrol1-0/+1
Change-Id: I347e7da328fed0733af2eec10a3ca6e02a148308
2021-07-19handover_ctrl: add control interface for handover settingsPhilipp Maier1-0/+1
The VTY handover_vtc.c offers a large number of handover specific settings. Those settings are (with one exception) auto generated using macros. Lets add an equivalent for the control interface that uses the same auto generation mechanisms. Change-Id: I12f143906818fd6b16e8783157cbb1eb51e49ffc Depends: libosmocore I53fc207677f52b1dc748b01d58424839cdba807c Related: SYS#5369
2021-07-16extend test_dyn_ts_favor_half_used_tch_h_as_target.ho_vtyNeels Hofmeyr1-0/+5
Clarify that filling half-used TCH/H first only happens on dynamic timeslots, not static ones. Related: SYS#5313 Change-Id: I5213459fb7fb201361ce0d6198fc0c2c745deee1
2021-07-16add test_dyn_ts_favor_static_ts_as_target.ho_vtyNeels Hofmeyr2-0/+39
In a discussion about the effect of interference levels, I noticed that there is not sufficient clarity about how strongly the preference of static timeslots is ranked. This test helps to show what we have. Related: SYS#5313 Change-Id: I0911cd74613045d9fbe29d04eaef036d32049b92
2021-07-16vty 'interference-meas level-bounds': explain duality in orderingNeels Hofmeyr1-1/+1
Related: SYS#5313 Change-Id: If71e20e95d29e7f03739ee04e1ef429bf8bd51ed
2021-07-16separate 'interference-meas level-bounds' cfg and usedNeels Hofmeyr1-0/+3
The VTY defun already indicates BSC_VTY_ATTR_RESTART_ABIS_OML_LINK correctly, but so far we would immediately start using the new values internally, and wrongly interpret interference levels. Fix that. Have bts->interf_meas_params twice: interf_meas_params_cfg for the VTY configured values, and interf_meas_params_used for the values that the BTS actually knows about, after they were sent via OML. In a running BSC, when changing the interference level boundaries on the telnet VTY, the BTS is not immediately told about the change. That would require a BTS restart. Hence store the cfg values separately in interf_meas_params_cfg. For comparing/printing interference levels in a running BTS, only employ the values that were actually sent via OML and placed in interf_meas_params_used. Related: SYS#5313 Change-Id: Iad8cf4151ff7f86dc0549158ed5d91d788d40b1f
2021-07-15hodec2: add low-rxqual-assignment penalty timer (2/2)Neels Hofmeyr2-12/+20
Hold off re-assignment after an intra-cell re-assignment due to low rxqual. Adjust test_amr_tch_h_to_f_rxqual.ho_vty to show the changed behaviour. Related: SYS#5198 Change-Id: Id00a07313fe04eec509b336c0637b59c707760e0
2021-07-15hodec2: add low-rxqual-assignment penalty timer (1/2)Neels Hofmeyr1-0/+26
First add a handover test script that shows the behavior without the low-rxqual-assignment penalty timer implemented. When implemented, the changes to this test script will show the change in behavior. Related: SYS#5198 Change-Id: I799fce709c86401546ccfe41b9f57fd579bcd987
2021-07-15handover tests: test passing of penalty timeoutNeels Hofmeyr2-0/+30
With recent addition of fake time in handover_test ('wait cmd'), show how a penalty timeout in handover decision 2 passes and allows a handover again after due time. Related: SYS#5198 Change-Id: I65e59cc7309778cf9d71612669ce84d101c8135e
2021-07-15test_penalty_timer.ho_vty: show lchan recoveryNeels Hofmeyr1-0/+14
Use recently added fake-time 'wait' command to show how the lchan in LCHAN_ST_WAIT_AFTER_ERROR recovers as soon as timer X3111 has passed. This prepares for also waiting for the penalty timeout to pass. Related: SYS#5198 Change-Id: I8f7668b6d08a0dac9e90d2358955f9d5099d39fa
2021-07-15handover_test: add fake-time 'wait'Neels Hofmeyr1-0/+56
Add a 'wait' cmd that lets (fake) time pass. An ucoming patch will show the first use of this: "test_penalty_timer.ho_vty: show lchan recovery" I8f7668b6d08a0dac9e90d2358955f9d5099d39fa My actual original reason to add this follows in patches - "handover tests: test passing of penalty timeout" I65e59cc7309778cf9d71612669ce84d101c8135e - "hodec2: add low-rxqual-assignment penalty timer (2/2)" Id00a07313fe04eec509b336c0637b59c707760e0 Related: SYS#5198 Change-Id: Ia6b5696adef7e7bf649473b4d79b96acf3aa59e3
2021-07-15handover_test: also show when an lchan is busyNeels Hofmeyr2-13/+33
In expect-ts-use, indicate a busy lchan with letter '!'. The code is a bit complex because of the choice made earlier to show two TCH/H subslots as "TCH/HH", "TCH/H-" or "TCH/-H" depending on the subslot states: - show "-" as a shorthand for "all subslots UNUSED" - show a "TCH/" prefix only when there is any "H" or "F" following, i.e. when any subslot is actually established - if a subslot is busy (any other state besides ESTABLISHED and UNUSED), indicate the subslot as '!'. The spectrum of reported state strings for TCH/F is: TCH/F ! - For TCH/H: TCH/HH TCH/H- TCH/-H TCH/H! TCH/!H !- -! - The only current test affected is test_penalty_timer.ho_vty, where a failed handover leaves an lchan in LCHAN_ST_WAIT_AFTER_ERROR. Adjust that test. Rationale: I will soon add tests to verify the accurate timeout of a handover2 penalty timer. While implementing, I noticed that immediate retry of the handover ends up in timeslot 2, because timeslot 1 is still in WAIT_AFTER_ERROR. Instead of working around that, I would like to explicitly show the error state in the test -- it is an important aspect. Related: SYS#5198 Change-Id: I735ce7e2c3e0e450d3f76047d7e47691fe889cad
2021-07-12handover_test: fix ts_str may be uninitializedosmith/build-fixOliver Smith1-2/+2
Fix for: handover_test.c: In function 'res_ind': handover_test.c:1094:30: error: 'ts_str' may be used uninitialized in this function [-Werror=maybe-uninitialized] char subslot_val = ts_str[lchan->nr]; Fixes: f76424 ("RES IND: add test_resource_indication.ho_vty") Change-Id: I398ba24b945bad96896eeb5ddbaff9c48bacf8ab
2021-07-11RES IND: pick lchan with least interferenceNeels Hofmeyr1-18/+9
In lchan_select, do not return on the first available lchan, but iterate through all available lchans. Among those that would match, pick the one with the lowest interference level as indicated by earlier RES IND. Lchans that have no interference ratings are picked last. This feature is off by default, enable per BTS with network bts N channel allocator avoid-interference 1 osmo-bsc still does the same ascending/descending lchan allocation as before this patch with the default setting of: channel allocator avoid-interference 0 Related: SYS#5313 Change-Id: I844494092193811dfd9fa4d52983cbaed0fc9248
2021-07-11RES IND: add test_resource_indication.ho_vtyNeels Hofmeyr3-0/+165
Show that osmo-bsc does not yet take Resource Indication's reported interference levels into account. (An upcoming patch will change that.) This test is not actually doing any handover, but it is using the handover/*.ho_vty scripting that was intended for handover testing. (Like test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty does.) Related: SYS#5313 Change-Id: I56ec61196a1e103f0b4caf18d25d8222bb82cf87
2021-07-11RES IND: add VTY: bts / channel allocator avoid-interference (0|1)Neels Hofmeyr1-0/+37
Store the config option whether the channel allocator should try to avoid lchans with higher interference levels reported in RES IND. The actual implementation of avoiding interference follows in I844494092193811dfd9fa4d52983cbaed0fc9248 Related: SYS#5313 Change-Id: I8b62d0b41ad9e908b27713db9219e3dbc1ebaab7
2021-07-09hodec2: [2/2] implement automatic choice between FULL and SUBSET measurementsNeels Hofmeyr2-1/+4
Add TDMA_MEAS_SET_AUTO to indicate automatic choice between FULL and SUBSET measurements depending on DTX. So far use only in hodec2. TDMA_MEAS_SET_AUTO looks at each individual measurement report's DTX flag and for each report chooses FULL if DTX is not used, or SUB if DTX is used. The default setting for 'handover2 tdma-measurement' is still 'subset'. To use the automatic choice, users need configure handover2 tdma-measurement auto Change-Id: I67dce55ccf892c8679272ee5dfedc25620f0f725
2021-07-06Rename osmo dyn ts enums to contain SDCCH8Pau Espin Pedrol2-7/+7
They will gain support to be activated as SDCCH/8 soon too. Related: OS#5309 Depends: libosmocore.git I56dcfe4d17899630b17f80145c3ced72f1e91e68 Change-Id: Id5b89fe589a52ff88486435ac43809edb4b80f98
2021-07-05power_control: implement BCCH carrier power reduction operationVadim Yanitskiy1-0/+4
The BCCH carrier (sometimes called C0) of a BTS shall maintain discontinuous Downlink transmission at full power in order to stay 'visible' to the mobile stations. Because of that, early versions of 3GPP TS 45.008 prohibited BS power reduction on C0. However, starting from version 13.0.0 (2015-11) there is a feature called 'BCCH carrier power reduction operation'. This is a special mode of operation, where the variation of RF level for some timeslots is relaxed for the purpose of energy saving. In BCCH carrier power reduction operation, for timeslots on the C0 carrier, except timeslots carrying BCCH/CCCH, the output power may be lower than the output power used for timeslots carrying BCCH/CCCH. In this case the maximum allowed difference in output power actually transmitted by the BTS is 6 dB. Introduce a VTY command to turn on and off the BCCH carrier power reduction operation. Also introduce a CTRL command. On the A-bis/RSL, abuse the BS POWER CONTROL message by setting the Channel Number IE to 0x80 (RSL_CHAN_BCCH). Currently, only osmo-bts-trx is supported. A value greater than zero makes it reduce the power on *inactive* timeslots of the BCCH carrier. Sending zero disables the BCCH power reduction mode completely. For more details, see 3GPP TS 45.008, section 7.1, and 3GPP TR 45.926. Change-Id: I047fce33d4d3e4c569dd006ba17858467a2f4783 Related: SYS#4919
2021-07-03vty: add vty doc test for 'nri null' commandsNeels Hofmeyr1-0/+19
Change-Id: I2782dc547ce9751e5f1039aab9a2d36cf1be3fde
2021-07-03vty: fix doc: default value for 'nri bitlen'Neels Hofmeyr1-0/+13
The constant is called OSMO_NRI_BITLEN_DEFAULT, NRI_BITLEN_DEFAULT does not exist and got rendered as "NRI_BITLEN_DEFAULT" in the vty doc. Add missing vty test for 'nri bitlen'. Change-Id: I8af840a4589f47eaca6bf10e37e0859f9ae53dfa
2021-06-30Support proto IPAC_PROTO_EXT_PCU BSC<->PCUPau Espin Pedrol6-0/+6
Related: SYS#5303 Change-Id: I4b3919f3098b9468e5e024db1e45427af24c1ad4
2021-06-29hodec2: fix low rxqual tch/h<->tch/f oscillationNeels Hofmeyr1-10/+1
Related: SYS#5198 Change-Id: I96cd5a494e661ba3bb0b6d22d25a9968d2a6813c
2021-06-29hodec2: fix low rxlev tch/h<->tch/f oscillationNeels Hofmeyr1-10/+1
Related: SYS#5365 Change-Id: Ibc3ac7ce6190b4e854fa42d5376a7038ddfbd6e5
2021-06-29hodec2: add test case showing low rxqual tch/h<->tch/f oscillationNeels Hofmeyr2-0/+30
Related: SYS#5198 Change-Id: I43726c5563c9c31389600ef0ff6855add5af3a03
2021-06-29hodec2: add test case showing low rxlev tch/h<->tch/f oscillationNeels Hofmeyr2-0/+30
Related: SYS#5365 Change-Id: Iee2d4b9eaf902ba7fb546a9bb261324b2f7d1fc7
2021-06-18hodec2: don't apply AFS bias to same-cell lchansNeels Hofmeyr1-6/+1
The AFS bias actually should not apply to local cell lchans, because it makes no sense for intra-cell considerations: - same-cell lchans obviously have identical rxlev; - any nonzero AFS bias thus always raises the TCH/F above the TCH/H; - for intra-cell reassignment, the power budget hysteresis is, naturally, not applied. So, before this patch, setting AFS bias even to only 1 would unconditionally move all (AMR) TCH/H lchans over to free TCH/F lchans in the same cell. Recent patch Id40d1cf8b58410c7d4eb87407fe8b8106e352438 implements explicit upgrade from TCH/H to TCH/F *if* the TCH/H is experiencing low rxqual or low rxlev, as a proper replacement for intra-cell AFS bias. Related: SYS#5198 SYS#5365 Change-Id: I315f24123ae016887ab91666870ce252e096f90f
2021-06-13hodec2: implement upgrade TCH/H -> TCH/F (without AFS bias)Neels Hofmeyr4-48/+24
Pass flag into find_alternative_lchan() indicating that a TCH/H channel has low ratings (rxqual or rxlev, doesn't matter). Heed this flag in the last round, the requirement A check, and allow candidates that have equal rxlev, if they result in an upgrade from TCH/H to TCH/F. This allows intra-cell upgrades to TCH/F. An important point is that this patch allows upgrade to TCH/F *without* the AFS bias setting. See also I315f24123ae016887ab91666870ce252e096f90f. Related: SYS#5198 SYS#5365 Change-Id: Id40d1cf8b58410c7d4eb87407fe8b8106e352438
2021-06-10VTY: add lchan re-assignment commandNeels Hofmeyr1-0/+38
Add VTY command to trigger an intra-cell re-assignment, also allowing to re-assign to a secondary VAMOS lchan. Related: SYS#5315 OS#4940 Change-Id: If006f5caaf83b07675f57e5665cfa79328da55e6
2021-06-10VTY: add 'vamos-subslot' to activate a secondary lchanNeels Hofmeyr1-3/+4
Related: SYS#5315 OS#4940 Change-Id: If44b6bdb78046502eb0b66529ae190a955d9978c
2021-06-10RSL: rx and tx VAMOS Channel Number cbits for VAMOS lchansNeels Hofmeyr1-6/+6
Add the Osmocom-specific extension to indicate VAMOS shadow lchans in RSL, in lchan lookup and RSL message transmission. Note that RR messages containing cbits (Assignment Command, Handover Command, ...) must *not* send Osmocom specific cbits to the MS. Only the RSL messages directed to the BTS send Osmocom specific bits. Related: SYS#5315 OS#4940 Depends: If33c1695922d110c0d2c60d5c0136caf2587194e (libosmocore) Change-Id: I957eff0d2c33ec795eda75a4bff21965b0179f73
2021-06-10RSL chan_nr: replace OSMO_ASSERT with error handlingNeels Hofmeyr1-1/+2
It's bad to abort the program for an incompatible chan_nr. Instead of OSMO_ASSERT(), make sure that error handling happens all they way to the original callers of gsm_lchan2chan_nr etc. This is also preparation to add further error causes: Osmocom specific cbits needed for a non-Osmo BTS. Related: SYS#5315 OS#4940 Change-Id: I71ed6437c403a3f9336e17a94b4948fca295d853
2021-06-10implement CHANnel ACTIVate to VAMOS modeNeels Hofmeyr1-13/+15
Related: SYS#5315 OS#4940 Change-Id: If3ac584e4223ef7656c7fedc3bf11df87e4309ec
2021-06-10vty-test: osmo-bsc.vty: test doc of lchan activate cmdNeels Hofmeyr1-0/+56
A subsequent patch will add to this VTY command, so let's first test the current status as a baseline. Change-Id: I6379e306fb8fa6ec227125c6cf14893d674e7596
2021-06-10vty: add lchan modify '(vamos|non-vamos)' commandNeels Hofmeyr1-0/+29
Change-Id: If44c3483d4d3d86f5822c5ad882aaeeaff27e3af
2021-06-08hodec2: add handover_test cases for upgrade of TCH/H -> TCH/FNeels Hofmeyr6-0/+210
Add test_amr_tch_h_and_afs_bias.ho_vty test_amr_tch_h_to_f_rxlev.ho_vty test_amr_tch_h_to_f_rxlev_congested.ho_vty test_amr_tch_h_to_f_rxqual.ho_vty test_amr_tch_h_to_f_rxqual_congested.ho_vty Related: SYS#5198 SYS#5365 Change-Id: Ib88f7e00d8bd77e2b02a7242a0fab4dd79333037
2021-06-05handover: apply meas report BS Power to RXLEV, fix ho oscillationNeels Hofmeyr1-8/+3
This fixes handover oscillation in the presence of power reduction on the downlink: apply the reduced power to the cell's RXLEV in order to not rate the current cell as weaker than it actually is. Related: SYS#5339 Change-Id: Ifcf59964b5e2d550d79e4ba14d90962808f79dae
2021-06-04Make interference measurement parameters configurableVadim Yanitskiy2-0/+43
According to 3GPP TS 45.008, the BSS shall monitor the levels of interference on its IDLE traffic channels. The actual measurements are performed in the BTS and then reported to the BSC over the A-bis/RSL link(s) in RF RESource INDication messages. 3GPP TS 45.008 defines the following measurement parameters: * Intave: Interference Averaging period (see table A.1), * Interference level Boundaries (see table A.1). Both parameters are sent to the BTS over the A-bis/OML, and can now be configured via the VTY interface. Only those BTS models which 'speak' the OML protocol defined in 3GPP TS 52.021 will actually get the configured parameters, others will keep using the hard-coded parameters. Change-Id: I99ebf57aac1f3ca7e0497c3b4f6b0738c6ed7e47 Related: SYS#5313, OS#1866
2021-06-01Drop duplicated arfcn_range_encode.c available in libosmocoreNeels Hofmeyr5-397/+0
This code is available in libosmocore since ~3 years ago (fdf8b7b1beeb0cda262c5fb060a933aa7edb5e9a). Let's use it instead of maintaining duplicated code which diverges over time. Depends: osmo-bsc.git Iae058c35506bc25c9f4790889b89ac46aea664b6 (contains cherry-pick of bug fixed in osmo-bsc.git). Change-Id: I53ad3067623077b6a8737c2a0aecc8b46bf71a15
2021-05-31replace ts_*_for_each_lchan() with ts_for_n_lchans()Neels Hofmeyr1-1/+2
So far we have a couple of macros iterating a specific number of lchans, depending on dynamic timeslot state etc. With addition of VAMOS lchans, this would become more complex and bloated. Instead of separate iteration macros for each situation, only have one that takes a number of lchans as argument. That allows to more clearly pick the number of lchans, especially for non-trivial VAMOS scenarios. Related: SYS#5315 OS#4940 Change-Id: Ib2c6baf73a81ba371143ba5adc912aef6f79238d
2021-05-31add fields to reflect nr of lchans in ts structNeels Hofmeyr1-4/+4
So far the number of usable lchans is determined on-the-fly by the physical channel config. With VAMOS, this becomes more complex, namely determining whether the BTS is vamos capable. Instead of calling a function to determine the number of lchans for every use, rather place the number of valid lchans in int members of the timeslot struct, and initialize those during timeslot setup. Actual use of these new fields will follow in a subsequent patch, which introduces the ts_for_n_lchans() macro to replace current lchan iteration macros. Related: SYS#5315 OS#4940 Change-Id: I08027d79db71a23e874b729c4e6173b0f269ee4f