aboutsummaryrefslogtreecommitdiffstats
path: root/tests
AgeCommit message (Collapse)AuthorFilesLines
2018-09-13measurement: fix unit-test test_lchan_meas_process_measurementPhilipp Maier1-2/+5
The unit test that tests lchan_meas_process_measurement() only inputs test data to lchan_meas_process_measurement() but it is not checked if the interval end could be detected or not. - Add a return code to lchan_meas_process_measurement() - Ensure that the return code is checked in the unit-test Change-Id: I9e00ce683e8c44528804f65181dbfed9e85e3aed Related: OS#2975
2018-09-13measurement: remove missed interval end detectionPhilipp Maier2-587/+0
The function is_meas_overdue() was introduced to allow lchan_meas_process_measurement() to detect when the end of a measurement interval has been missed. Interval ends may be missed when the SACCH block of the related measurement interval gets lost. This is due to the fact that the SACCH block is used as a trigger to start the measurement result computation. The idea behind is_meas_overdue() was to check the frame number of the current measurement against the frame number of the previous measurement in order to see if there was a measurement for SACCH in between or not. Unfortunately SACCH and TCH Voice data is not necessarly processed in order by each phy. Depending on the phy there may be a jitter between the timing of SACCH and TCH Voice. Depending on the phy this jitter may be enough to mess up the timing so that we see a SACCH block earlier than expected. So we can not use the current frame number of TCH Voice measurements to check for missed SACCH blocks. Change-Id: Idfdbf64c1f965f35c12559b3995e2b746c74ee9e Related: OS#3502 Related: OS#2975
2018-08-31paging: add unit-test to check different bs_ag_blks_res settingsPhilipp Maier2-0/+76
The parameter bs_ag_blks_res, which is loaded into the BTS via the SI3 setting, defines how many of the CCCH blocks shall be used for AGCH. The remaining CCCH blocks will then be available as PCH for paging. Unfortunately there is no unit-test yet that verifies that all of the 8 different settings for bs_ag_blks_res. - Separate the the decision logic that checks if a given fn is part of an AGCH into a function to have it available in the unit-test. - Add a test that checks all possible bs_ag_blks_res settings. Change-Id: Ib9652f4013a4da3766852f8f03ce9ec5590f6989 Related: OS#1575
2018-08-30measurement: add SUB measurements in test_lchan_meas_process_measurementPhilipp Maier2-417/+66
The unit-test function test_lchan_meas_process_measurement() does not tag measurements as SUB. Lets make the test function more realistic by setting the is_sub flag at the correct positions. - Add SUB-Measurements in the correct position - Print log lines when adding measurements for sub, also fix minor bugs in the log printing. Change-Id: I25c361b21a406c0017ee586f0492c38f2e737e57 Related: OS#3502 Related: OS#2975
2018-08-30measurement: substitue missing measurementsPhilipp Maier3-56/+633
At the moment the measurement calculation of osmo-bts works by collecting the measurement reports the phy emits during a measurement interval. Normally one would expect a well defind fixed number here, but some phys will not emit a measurement report for lost blocks. Also blocks and their reports may get lost because of cpu overload etc. The computation that is executed at the end of the measurement interval computes over all received measurement. This evenutally means that missing measurements will not taken into account and the result will look better than it is in reality. To fix this, the interval must be of a defined size and in cases where less measurements as expected were collected, the algorithm must assume they have been received with a 100%BER and take that into account. However, all RSSI and TA/TOA related computations should continue to rely on actual measurement data. - make sure the algorithm works over a fixed interval - replace missing measurements with 100%BER - fix and extend unit-tests Change-Id: Idd30fc07603ad7d042c1fb416e247c3bf7d35c8b Related: OS#2987
2018-08-29cosmetic: test_is_meas_overdue() does not test is_meas_complete()Philipp Maier2-2/+2
The function is_meas_overdue() does not use is_meas_complete() anymore and therefore the related log output is wrong. Lets correct this. Change-Id: I9b7aa2f7a7c75bc3eed0c94b6ef9d17e7e36ce96 Related: OS#2975
2018-08-29measurement: fix is_meas_overdue() and increase testcoveragePhilipp Maier1-0/+216
The tests TC_meas_res_sign_sdcch4 and TC_meas_res_sign_sdcch8 are failing mainly because lchan->ts->nr is confused with lchan->nr. There is also a small problem with one of the formulas that compute fn_missed_end. - Add explainatory comment to the lookup tables on what the index is refering to - use lchan-nr instead of lchan->ts->nr when dealing with SDCCH/4/8 - simplfy and fix the formula - increase the testcoverage of the unit tests, give SDCCH/4/8 also a thorough check. Change-Id: I5d555a21003943bf720c53f3a611029ba45339a9 Related: OS#2975
2018-08-29measurement: add unit tests for ts45008_83_is_sub()Philipp Maier2-0/+158
The function ts45008_83_is_sub() is an integral part of the measurement calculation as it automatically tags incoming measurements as SUB measurements. This is important in the context of DTX. Unfortunately there is no unit test for this function yet. - Add unit test for ts45008_83_is_sub() Change-Id: Ia26774859f4bf31baee075896905079368bddd42 Related: OS#3502
2018-08-29measurement: add unit tests for is_meas_complete()Philipp Maier2-0/+181
We do not test is_meas_complete() individually yet, but it is an integral part of the measurement processings since this function decides where a measurement interval ends. - Add unit tests that test TCH/F, TCH/H, SDCCH/4 and STDCH/8 Change-Id: I8f89d9e7092cd65ba4d5c5649140692dcc20bdd6 Related: OS#2987
2018-08-28cosmetic: remove wrong commentPhilipp Maier1-3/+0
is_meas_overdue() does not use is_meas_complete() anymore. Change-Id: I5925fad161843c06e76543d9098c598fe9e72d68 Related: OS#2975
2018-08-28cosmetic: fix sourcecode formattingPhilipp Maier1-12/+12
Change-Id: Ia112af0b63478bdcf3cfab2537dc1ba08e03dfb1 Related: OS#2975
2018-08-20measurement: make sure measurement interval end is detectedPhilipp Maier2-0/+918
the measurement interval end is detected by using the measurement indication that is related to the SACCH block as a trigger to start the computation. If the measurement indication for the SACCH gets lost because the block could not be received then the processing is not executed. This may cause wrong results or when it happens condecutively an overflow of the measurement sample buffer. - Store the frame number of the last received measurement indication - Use the stored frame number to check if an interval was crossed when the next measurement indication is received. If we detect that we missed the interval, catch up by running the computation and start the next interval. Change-Id: I3a86cd8185cc6b94258373fe929f0c2f1cf27cfa Related: OS#2975
2018-08-16cosmetic: separate measurement testcase definitionsPhilipp Maier3-156/+153
the testcase definitions in meas_test.c that define different test situations for uplink measurement are quite large. Lets have them in a separate file so that the code meas_test.c is easier to maintain. - Move all mtc* and ulm* structs as well as the struct definitions to meas_testcase.h. Change-Id: I90139ec535056d2cea6de10e77f435d807ce496e Related: OS#2987
2018-07-02Remove unneeded direct libortp dependencyPau Espin Pedrol5-10/+10
All code in osmo-bts goes through APIs in libosmotrau (osmo_ortp.h), hence direct dependency is not needed. Fixes OBS warnings: dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/osmo-bts-trx/usr/bin/osmo-bts-trx was not linked against libortp.so.9 (it uses none of the library's symbols) dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/osmo-bts-virtual/usr/bin/osmo-bts-omldummy debian/osmo-bts-virtual/usr/bin/osmo-bts-virtual were not linked against libortp.so.9 (they use none of the library's symbols) Change-Id: I96a9b5f0678331dcf66c007928866a124d8700de
2018-06-29Add min/max/std-dev measurement reporting for TOA256Harald Welte2-0/+249
This patch adds extended processing of the high-resolution TOA256 measurement values. It adds reporting of the following values for each RSL MEAS REP for uplink measurements: * minimum TOA256 value during reporting period * maximum TOA256 value during reporting period * standard deviation of TOA256 value during reporting period Change-Id: Iea4a4781481f77c6163d82dcd71a844a5be87bf2
2018-06-08compact AGCH queue: Drop too msg diff than IMM_ASS_REJPau Espin Pedrol1-1/+1
We saw in a recent prod setup a BSC with saturated channels. Further investigation lead to a AGCH queue of 1000 (previous hard_limit) messages, most of them being regular IMM ASSIGN (non REJ). Hence, we also want to get rid of other messages in the AGCH queue (like regular IMM ASSIGN). Furthermore, In this scenario, sending IMM ASS REJ is as important as other messages given than nowadays we support dynamic wait indicatior (calculated based on chan load), which means if we reach the MS, we can tell it to wait for a long time to reach us again, which is desirable. Change-Id: I022b8948da8be13fb8f4bc36e7c9dab11c35fddb
2018-06-08bts_agch_enqueue: Decrease queue len hard_limit from 1000 to 100Pau Espin Pedrol1-2/+2
In a prod setup, complete channel saturation at the bsc was detected, and Immediate Assignments were not being answered by the MS once sent by the BTS. Further investigation showed that the BTS was all the time printing messages like this: "bts.c:540 AGCH: too many messages in queue, refusing message type 0x3f, length = 1001/10" So it seems the AGCH queue was becoming incredibly full (1000, hard limit triggered the log), while acgch_queue.max_length was set to 10. As a result, most probably the Immediate Assignments being sent to the MS are super old in time, and the MS doesn't known about them anymore once they are receivied, so no answer is sent back. Let's try to avoid that by decreasing the hard limit so we never reach that big queue_len scenario. The number 100 is selected from data gatherered in agch_test.c which prints a table of max_length values based on different setups. Some values can reach around 80 messages, so let's use a slightly bigger hard limit. Related: SYS#2695 Change-Id: I272798c959abec123776d2fa8dad5685ec512fbd
2018-04-17Include missing headers for osmo_init_logging2Pau Espin Pedrol3-0/+3
Fixes implicit declaration warning messages at compile time. Change-Id: I753ed49cdcbd1301ba7ea38dcea9113d99fecb06
2018-04-04use osmo_init_logging2() with proper talloc ctxNeels Hofmeyr7-8/+13
Completely drop bts_log_init(), call osmo_init_logging2() directly instead: all callers of bts_log_init() passed NULL as category string, so all it ever did was call osmo_init_logging(). The bts_log_info is already declared in the .h. Here and there also define a proper talloc root context instead of using NULL. Change-Id: Ic049f77bef74123b95350bcae182a468e0086b9c
2018-03-17Get rid of 'struct gsm_bts_role_bts'Harald Welte6-59/+44
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-12/+12
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-02-22bts: use feature list instead of speech codec tablePhilipp Maier1-15/+15
osmo-bts has a table of pchan/channel mode combinations for every bts. This table models the codec capabilitys of the BTS hardware. However, having the speech codec apabilities modeled inside the BTS feature list would be much more comfortable and since the feature list is communicated back to the BSC we would get the codec capabilities inside the BSC domain as well. - remove the pchan/channel mode tables - set speech codec variants for each BTS type - fix bts_supports_cm so that it queries the feature list Change-Id: I977dc729ba856631245aedf76afd48eac92166f7
2018-02-19rsl: do not allow MODE MODIFY request with unsupp. codec/ratePhilipp Maier1-0/+26
When the BSC sends a MODE MODIFY request with an unsupported codec, the BTS must respond with a negative acknowledge. Currently the codec parameter is not checked at all, which may lead into malfunction or crash of the BTS. - Introduce a mechanism to check the codec/rate against a table that is set up in the phy specific code. - Add tables with supported codec/rate combinations for octphy, sysmobts, and trx. Change-Id: Id9b222b7ab19ece90591718bc562b3a8c5e02023 Related: SYS#3212
2018-01-25various Makefile.am: add missing CFLAGSAlexander Huemer3-3/+3
Change-Id: I0717aaaf062a7c3c8b35520fa837b51fd6aed47f
2018-01-25cosmetic: Makefile.am whitespaceAlexander Huemer3-3/+3
Change-Id: I480fbf85912de2ea3518a906b9edf23b1485e936
2018-01-21Move -I inside *INCDIR variableMax1-1/+1
Previouslywe could end-up passing empty '-I' to compilerif corresponding _INCDIR variable was not defined during the ./configure step. This is apparently tolerated by gcc but still seems like a wrong thingto do. Let's fix this by moving -I inside of *_INCDIR. Change-Id: I80915e5756d1bf64d789cfd5341fdd417ca8eed9
2018-01-19fix build: tests/sysmobts: add missing -I$(SYSMOBTS_INCDIR)Neels Hofmeyr1-1/+1
Change-Id: I5427d614c6301b897ad32adbecd98ce5ebec6f66
2018-01-19fix build: tests/misc: missing libosmo-abis and -trau flagsMax1-3/+5
Add missing LIBOSMOABIS_CFLAGS and LIBOSMOTRAU_CFLAGS. Pair the _LIBS below the _CFLAGS in LDADD above (cosmetic). Fixes the stow-enabled jenkins builds are currently failing like below: In file included from ../../include/osmo-bts/gsm_data.h:136:0, from ../../include/osmo-bts/bts.h:4, from misc_test.c:23: ../../include/osmo-bts/gsm_data_shared.h:21:35: fatal error: osmocom/abis/e1_input.h: No such file or directory #include <osmocom/abis/e1_input.h> Change-Id: I94ea8bad8b410550f72ee6a0408f42f6bd8b6cac
2018-01-10meas_test: fix header file referencesPhilipp Maier1-26/+1
The unittest module meas_test.c contains a lot of unused header files as the result of a cut and paste error made earlier. Also the reference to stdio.h is missing. remove all header file references that are not needed. add missing header reference to stdio.h Change-Id: I167be096ed25a86b1114de1ada955822a0b42856
2017-12-11cosmetic: tests/agch: remove unused var "static_ilv"Philipp Maier1-4/+0
remove unused const variable "static_ilv" from unit test "agch" Change-Id: Ie724e2e5875020aa835b4cd57ab96966aee283e1
2017-12-11cosmetic: tests/power: remove unused var "ret"Philipp Maier1-1/+0
remove unused variable "ret" in unit test "power" Change-Id: Ied484e3e2d3006eb0f03516ceaed3e0e802d51e4
2017-12-10cosmetic: tests/Makefile.am: remove excess whitespacePhilipp Maier1-5/+5
Change-Id: I7090d46ae72183014e6c74d6ddb240af8d66e0b4
2017-12-07cosmetic: meas_test: fix section commentPhilipp Maier2-2/+2
Change-Id: Id228620ccf5a40c8089ae1914d59b19e808ea151
2017-10-24Make power test more verboseMax2-16/+20
Power control loop test outputs next to nothing which is not very helpful. Make it more verbose. While at it, also move duplicated code into static function to make test cases less cluttered. Change-Id: I0a5e65e23e62442ef8758ecbcf8e7820b4f15d7b Related: OS#2223
2017-10-23Move power loop to generic testsMax7-63/+112
There's nothing sysmobts specific in this test so let's move it into separate directory and run unconditionally. The test itself is unaltered except for intro text. Change-Id: I0d1957cd9cf5497826be095c7a42b7bb4fa10397 Related: OS#2223
2017-10-08Remove build dependency on legacy OpenBSCMax8-8/+8
* copy-paste gsm_data_shared.* from OpenBSC master * remove corresponding configure check and option * remove .deb dependency Actual refactoring with removal of unnecessary structures/parts, moving common OpenBSC/OsmoBSC parts into libraries etc. are left for further patches. Current patch will make coexistence with *BSC easier and will simplify our build infrastructure. Change-Id: I9f004fb5c4c1db29d4792dfd281d388c7063da13 Related: OS#1923
2017-08-14Fix build after recent gsm_bts_alloc() changeHarald Welte6-6/+6
In openbsc.git Change-Id I61c18a7f021fcb1ec00d34a745f4e3ab03416c2d we changed the gsm_bts_alloc() function signature to include a second argument (the BTS number). This broke omso-bts, and this commit is intended to make it build again. Change-Id: I7ef7654d48c1cfc7e4ecb0b771553ec0740ce2bf
2017-07-10measurement: fix measurment reportPhilipp Maier6-1/+3381
The end of the measurement reporting period is not aligned with the SACCH block where the results are reported. The tables that are used to detect the end of the measurement period are therefore wrong. The frame number of the SACCH block must be used and not the TDMA frame number (modulo 104) of the measurement reporing interval. The tables are oriented to the frame number of the first SACCH block, at the beginning of an interval. However, when a SACCH block is received it will always contain the result of the recently passed measurement reporting period. To match the tables, introduce another lookup table to remap each SACCH block that ends to the matching beginning block number. Change-Id: I1eef894e6f15b4449fc8926bebb118624efc7924
2017-05-22Remove redundant testMax5-533/+1
After switching to libosmocoding there's no need in low-level bursts test which is part of libosmocoding anyway. Change-Id: Icb8caf62ac653a39a7a82f2225e8edeab7f5afb5
2017-05-22osmo-bts-trx: use libosmocodingMax2-24/+17
Remove built-in functions and use libosmocoding instead. Change-Id: I1b41bb1a8de655639107ec1f3b75afc240fd316f
2017-05-09Prepare for extended SI2quater supportMax1-1/+1
SI2quater support as per 3GPP TS 44.018 will require chnages to the way System Information is stored because it uses 1:n instead of 1:1 mapping between SI type and generated SI content. This should not affect other SI types though. To facilitate this transition: * convert the code to always use GSM_LCHAN_SI helper instead of accessing buffer directly * move duplicated code to inline function * add logging for buffer truncation and corresponding length values Requires I74e4e3cb86364cec869a1472a41b4a95af0d50dd in OpenBSC. Change-Id: Ie97be6ead6ce6d2d425fbfac8429bb90afb95acc Related: RT#8792
2017-04-06sysmobts: Don't start with 0dBm TRX output power before rampingHarald Welte1-0/+8
In case a system has a high-gain external PA (like a 40dB PA) connected externally, we cannot simply switch the transceiver to 0 dBm in trx_init() only to then start the ramping at much lower levels once the PHJ completes in trx_init_compl_cb(). The result would be a short 0 + 40 dBm spike followed by later ramping. We want to avoid that spike, particularly its associated inrush current, so let's bring up the board with smething very conservative like -50 dBm, and then ramp from there. Change-Id: I0ad91fce64f65e0213c9fcfde3390ace519055db Fixes: SYS#3259
2017-03-14Check for suitable lchan type when detecting HOMax1-0/+2
Log error when handover RACH is detected on wrong channel: according to 3GPP TS 44.018 it can only be seen on SACCH and DCCH. Change-Id: Iacbcc8441d6cfbb8f808948a8baddde1ebca488a Related: OS#1898
2017-02-10Fix typo in TCH/H interleaving tableMax1-1/+1
According to Table 4 in 3GPP TS 45.003 j=11, b=3 case corresponds to k=91 and not j=12 as was previously used. Change-Id: Iad3cf545b2f7e16276466cc37dd7a1e7858467e5
2017-02-07Add new unit-test for transmit power computation codeHarald Welte6-1/+316
This tests the computations of the tx_power.c code using sysmoBTS 1002, 1020, 1100 and 2050 values, as well as the power ramping code. Change-Id: I1cc88d4c6edff326e2e67d4f869aa02c9b2b1ac5
2016-12-02bursts test: test_pdtch: pre-init result memNeels Hofmeyr1-0/+2
Fixes: CID#57943 Change-Id: I4547f47c4150759d5c4ab790e34e91b784b03b39
2016-12-01Remove duplicated codeMax2-0/+4
Remove lchan deactivation related code duplication to facilitate future use for dynamic CCCH re-activation. Change-Id: Id0d3b19dbfaa16d1734321a07a6eb0355bfd77c9
2016-11-08Fix tests linking with libosmocodecMax3-6/+6
Change-Id: I051302f867d70dfbc39bd52d75101eb262f87459
2016-10-14msgb ctx: use new msgb_talloc_ctx_init() in various main()sNeels Hofmeyr4-15/+4
Change-Id: I31d62d5e1f0b272985fdef5013270d385c4b988a
2016-09-30DTX: move scheduling check inside repeat_last_sidMax1-2/+2
Note: this also require changes to properly link against libosmocodec - see 2bb65be159dfdabf664fec569b343320301701b0 in libosmocore. Change-Id: I96594cf3aa1013d505bd20069d5bf261d9a2aefb