path: root/openbsc/tests
AgeCommit message (Collapse)AuthorFilesLines
2021-02-22tests: Replace deprecated API log_set_print_filenamePau Espin Pedrol4-4/+4
Change-Id: I2bd75313daab58704625245af2dd39d88ee42872
2021-02-22tests: Explicitly drop category from logPau Espin Pedrol4-0/+7
Let's disable category here since we don't care about its formatting here. In any case, every test relying on logging output validation should always explicitly state the config to avoid issues in the future if default values change. Change-Id: I2697ec547468019a544b66daf9dbb58aa8d9772b Related: OS#5034
2020-12-10Add very clear obsolescence / unmaintained warningsHarald Welte3-3/+6
* add messages at start-up and to the VTY * users must explicitly confirm they want to run osmo-nitb Change-Id: I5d5c0ff386dbc2e7b7dd02d6c33d1f9fec70707b
2020-09-18db_test: Disable using color in log outputPau Espin Pedrol2-2/+2
It's really not used and only adds unneeded variabilities to output. Older libosmocore versions had a bug where extra color format characters were printed while newer versions have that fixed. Fixes: OS#4759 Change-Id: Idce85aa355d334929d8abdf5b99dad0622ecff58
2019-12-12osmoappdesc.py, tests, ipa.py: switch to python 3Oliver Smith3-438/+438
Make build and external tests work with python3, so we can drop the python2 dependency. This should be merged shortly after osmo-python-tests was migrated to python3, and the jenkins build slaves were (automatically) updated to have the new osmo-python-tests installed. Related: OS#2819 Depends: osmo-python-tests I3ffc3519bf6c22536a49dad7a966188ddad351a7 Change-Id: Id7d006f892198bb8a7c0d4a8a8ea00b8d0e62df4
2019-05-26mgcp: Handle CI and X-Osmux param name as case insensitivePau Espin Pedrol1-1/+1
RFC3435 states most text (except SDP) must be handled as case insensitive. Since we are no longer using strstr(msg->l2h), we need to iterate per line and call related extract/handle function for that line. Call to bsc_mgcp_osmux_confirm() is left at the end because it needs to be called too in case no matching line is found. In that case, it will release the CID. Similar stuff ocurrs for bsc_mgcp_extract_ci(). Related: OS#4001 Change-Id: Iadc004064a5a237c93009f242cb943ebc4d2d7e6
2019-05-23tests: Mute stdout during db_prepare()Keith1-1/+21
libdbi on debian unstable (at least) outputs: "no table in statement !" breaking the db_test. Redirect stdout to /dev/null and restore after the function completes. Closes OS#4016 Change-Id: I8227aa8fa44d3237019db52dd0825f827797261b
2019-05-16nat: Allocate bsc_nat_parsed on the stack instead of heapPau Espin Pedrol1-94/+70
There's no real need to allocate it using talloc. Allocating it on the stack simplifies the code, avoids mem leaks and makes it faster. Change-Id: I66c44890952339f15131081e2f629a2824b6d3ba
2019-05-03tests: Fix selection of python versionPau Espin Pedrol4-8/+8
According to documentation (and personal experience), AM_PATH_PYTHON selects the highest version of python, no matter if major version is different, which means if both python2 and 3 are available, 3 will be chosen an PYTHON will point to "/.../python" which is python3. Apparently, the macro cannot be easily used to pick highest python2 version. chosen an PYTHON will point to "/.../python" which is python3. Apparently, the macro cannot be easily used to pick highest python2 version. As {vty,ctrl}_test_runner.py require python2 and are incompatible with python3, let's instead rely on the system having a "python2" binary available, which is the case in most distros. cherry-picked from: osmo-bsc.git 7e78681f0f740bd68ed5255b506a1efa08a231b1. Change-Id: Icc147c8457116ad551d166313f3a79e1c2107a22
2019-04-23osmo-bsc_nat: Parse MGCP Connection ID as hexDaniel Willmann2-3/+3
Our ttcn3-bscnat-tests would randomly fail. After the CRCX ACK returns from the MSC the bsc-nat reports it could not find a CI it it and deletes the connection on the BSC-side. This happens because the field is parsed as a decimal value instead of hexadecimal. So a value of 00FED122 is parsed as '0' which is a reserved value in our program. This fix parses the field as hexadecimal value and also logs an error if the value happens to be 0. make check will now test if a hexadecimal CI is parsed correctly. Fixes: OS#3951 Change-Id: I49b8b61644bf706162102dce268cae2265536fc5
2019-03-28vty_test_runner: Handle MGCP message recv len dynamicallyPau Espin Pedrol1-1/+12
Change-Id: I536d78a2a1962240e5e369cda9927d8c9955ab86
2019-03-28Replace broken ipa_ccm_idtag APIs with new ipa_ccm_id onesPau Espin Pedrol1-3/+3
ipa_ccm_idtag_parse_off is broken, and can only be used with len_offset=1 on ID Request messages, otherwise won't work correctly. Modify ipa_ccm_idtag_parse to at least parse those correctly, and document the limitations. Those two functions are already deprecated and only used in openbsc by 3 callers: * ipa_ccm_idtag_parse in ussd_read_cb(): Broken, that function can only work for Requests and it's used to parse a Response. * ipa_ccm_idtag_parse_off in forward_sccp_to_msc (NAT): Broken, it can only be used to parse Requests and it's used to parse a Response. Furthermore, len_offset=2 is passed which makes no sense and most probably it fails always, or can even make the program crash. * ipa_ccm_idtag_parse_off in (answer_challenge): This one is fine and could actually be replaced with ipa_ccm_id_get_parse after libosmocore commit (see below) is merged. See libosmocore I6efc852dfc041192f554e41a58290a0f63298021 for more information. As a consequence of the fixes, osmo-bsc-nat now parses messages sent from VTY test correctly and thus it goes into processing them instead of silently dropping them. As a result, some VTY tests fail because they are sending incorrect format (missing NULL char in unit id strings) and osmo-bsc-nat closses its connection (due to bad auth). Change-Id: I3b995f8ef0b48c0a5b3375e42926641934359cd2
2018-11-27bsc-nat: Enable octet-aligned when ensuring mode setPau Espin Pedrol1-5/+5
From RFC 4867: octet-align: Permissible values are 0 and 1. If 1, octet-aligned operation SHALL be used. If 0 or if not present, bandwidth-efficient operation is employed. Change-Id: Ic4db7f6d18f650f36f3186965096771f748de5fd
2018-10-12mgcp: Log endpoint nr consistently as hexPau Espin Pedrol1-2/+2
Change-Id: I281964935312161d1da49e8035c5bf3bb7bf9c5c
2018-09-13Install sample cfg file to /etc/osmocomPau Espin Pedrol3-6/+6
Change-Id: I080ae6a4c4f92dd8df055efd25e308f8a3377d34
2018-08-20legacy_mgcp: mgcp_test: sanitize: free msgb_ctxNeels Hofmeyr1-1/+4
Ensure that all msgb were cleaned up, then free the overall msgb_ctx, in order to not leave any memory leaks the sanitizer build complains about. Backport from osmo-mgw.git Change-Id: I84e0ac7f0928f04ffddd7da18200466841589c25
2018-08-20mgcp_test: tweak test failure outputPau Espin Pedrol1-3/+6
Backport from osmo-mgw.git 020e89bce914d394352dddb8186b65a319562b20. Change-Id: Ibfc80f06b2811cc32fe38518b11efd6764b347ee
2018-03-29Migrate from OpenSSL to osmo_get_rand_id()Neels Hofmeyr2-2/+1
Drop OpenSSL/libcrypto dependency, use osmo_get_rand_id() instead. Backport osmo-msc 753c15de2f00e24f76ac9b01a20e1e2ff0f86ce2 = I71cd631704a4dc155c6c752fee2a42cd6e2fa336 " Migrate from OpenSSL to osmo_get_rand_id() This avoids potential licensing incompatibility and makes integration of Debian packaging patches easier. " Apply similar changes in bsc-nat, mm_auth_test etc. Tested manually with osmo-nitb and sysmoBTS, and verified that Authentication Requests send heterogenous RAND tokens. Related: OS#1694 Change-Id: I81ebd55c7c90a436c5f2090e6790d78b773d2c92
2018-03-22backport support for 3-digit MNC with leading zerosneels/mnc3Neels Hofmeyr2-8/+12
Backport the patches with the following change-ids: osmo-bsc.git: I5b097dbb6329f284e3b4914a744d5c3ad628f715 I8e722103344186fde118b26d8353db95a4581daa I78f30aef7aa224b2e9db54c3a844d8f520b3aee0 I38ac98a4d25159cfd4f686efbfbaf8f00625a6d8 osmo-iuh.git: I29ebcddd45fe3079f8883589a83cc7216a535475 Also apply change of ipac_bcch_info.cgi to struct osmo_cell_global_id in src/ipaccess/network_listen.c, a change that appears to not have been necessary in the new split repositories. Related: OS#3010 Change-Id: Ibf50fd7e1ca5472d0a38fcb87c68227d6de44f42
2018-03-14Make "waiting indicator" of IMMEDIATE ASSIGN REJECT dynamic.Stefan Sperling2-5/+11
The IMMEDIATE ASSIGN REJECT message contains a wait indicator which tells an MS requesting a channel to wait for a specified amount of time before trying to request a channel again, i.e. the wait indicator controls the T3122 timeout value in the MS. Previously, the wait indicator was fixed to 10 seconds. This is not sufficient if there are a lot of MS requesting channels because the MS will retry too soon. Instead of using a fixed value, maintain a dynamic wait indicator value based on average channel load. The load (used vs. available channels on a BTS) is sampled once per second, and once 8 samples have been collected we update a BTS-specific T3122 wait indicator based on the measured load. While the wait indicator could go up to 255 seconds, this initial implementation keeps it in the range from 10 to 128 seconds. Further experimentation and testing will show whether higher wait indicator values are desirable, if the sampling rate needs to change, or if the function mapping the load measurement to a wait indicator value should change (currently we map the load average linearly into the range [10, 128] inclusive). Port of osmo-bsc commit 6cee893a0f2c4e53155a2631aff12a5f615b973d Change-Id: Id9df0e790ece8108212b2ddf718cf2953f5b9bd4 Related: OS#2592
2018-02-19mgcp_protocol: Don't print osmux stats if it is offPau Espin Pedrol1-1/+3
Otherwise we get Osmux stats during a session using RTP, which is confusing. Change-Id: I814b2051edc85ad5cbd04c96b785c208f6606683
2018-01-15mgcp_transcoding_test: Add LIBOSMOABIS_CFLAGSHarald Welte1-0/+1
Currently, we see the following failure: make[3]: Entering directory '/build/openbsc/tests/mgcp' CC mgcp_transcoding_test.o CC mgcp_test.o In file included from ../../include/openbsc/gsm_data.h:176:0, from mgcp_transcoding_test.c:14: ../../include/openbsc/gsm_data_shared.h:21:35: fatal error: osmocom/abis/e1_input.h: No such file or directory #include <osmocom/abis/e1_input.h> ^ compilation terminated. as gsm_data.h includes gsm_data_shared.h, which includes the e1_input.h from libosmo-abis, we need to list libosmo-abis in the CFLAGS. Change-Id: I27c25adfc6ee2c6f07315f3bc76fa7a70202ac4d
2018-01-12libmsc: add support for both comp128v2 and comp128v3Vadim Yanitskiy1-0/+10
This change adds support for both comp128v2 and comp128v3 GSM A3/A8 algorithms. Since they already implemented in libosmocore, the corresponding it's API is used. Change-Id: Ic761be0220397d100c9e6345d4d01af4889dc7c1
2017-12-19Fix tests after rate_ctr changeMax3-67/+73
Recent change lin libosmocore disallow registering rate_ctr with the same name and indexing multiple times. To accommodate to this: * allocate network struct once and use it for all tests * free bts struct after each test This is a backport of 4ab7268a902af24fcd4870148b709fed4fbf900c from OsmoBSC. Change-Id: Ic5fab86bca617cabcd59484066975e17ab2320b6 Related: OS#2757
2017-10-26rename osmo-bsc to osmo-bsc-sccpliteHarald Welte2-8/+8
This is to avoid naming conflicts with the new osmo-bsc, which resides in its own git repository (osmo-bsc.git) and which uses libosmo-sigtran and implements (primarily) 3GPP AoIP. Change-Id: If10d1599b62d010726336134091a4e855c380d93
2017-10-26remove sgsn, gbproxy and gtphub from openbsc.gitHarald Welte34-19658/+0
The GPRS related programs osmo-sgsn, osmo-gtphub and osmo-gbproxy have been split off into the separate osmo-sgsn repository, which can be found at git://git.osmocom.org/osmo-sgsn.git http://git.osmocom.org/osmo-sgsn/ This is technically unrelated but conceptually part of the larger NITB-split activities. I did a brief log of all changes in src/gprs and couldn't find any commits that we might have applied here but which are missing from osmo-sgsn.git. Change-Id: If60e28b23f5cfb2c4eb354951363a2bb63f3e0de
2017-10-26nanobts_omlattra_test: Initialize logging before executing testsHarald Welte1-0/+3
... the library code we call could want to log something, after all. Port of osmo-bsc Change-Id Ic01e9bfb63d7b6def9432103e744c23c90f0f6b9 Change-Id: Ib4be9541771e95ca4e051b778fc3958202aab9ab
2017-10-26Fix nanobts_omlattr unit testHarald Welte1-0/+1
The test clearly fails unless bts->network is set correctly. Not sure why this hasn't shown up before? Port of osmo-bsc Change-Id I47786ed06ff610213d7a0b56d0ebf1c537cd7568 Change-Id: Id1cd4ce8f1e03b9715e1223414918bc69499e13d
2017-10-01gsm0408_test: Verify that BA-IND is 0 in SI2xxx and 1 in SI5xxxHarald Welte2-0/+70
This adds a test case to explicitly verify the BA-IND is as expected by the behaviour introduced in Change-Id I1cd0dc51026dcd0e508e63eea4e333e6b184787a Related: OS#2525 Change-Id: I3e5b260af97ce96a221e4d51f6c1b41d58817a59
2017-10-01Make sure BA-IND in all SI2xxx is '0' and in all SI5xxx is '1'Harald Welte1-89/+89
In masurement reports sent by the MS, this can then be used to correlate if a given measurement report was in response to a BCCH/neighbor list received on BCCH (SI2xxx) or on dowlink SACCH (SI5xxx). Closes: OS#2525 Change-Id: I1cd0dc51026dcd0e508e63eea4e333e6b184787a
2017-09-13fix vty tests: vty no longer goes to parent node implicitlyNeels Hofmeyr1-22/+0
Fix four instances of VTY tests working because it used to include implicit 'exit' commands to the parent node. Since libosmocore change-id Id73cba2dd34676bad8a130e9c45e67a272f19588 = commit d64b6aed235f6e4d84a2cb8e84b32c3179260254, we no longer do this implicit-exit in interactive VTY shells. *) the nitb node lacked the default command set (including 'end' and 'exit'), so it was impossible to leave the nitb node. This hit in testSubscriberCreateDelete. Add vty_install_default(NITB_NODE). *) in testPingPongConfiguration, the intention is to enter the /msc 0 node. Drop prior entry of the 'network' node, which looks like an oversight. So far the 'msc 0' caused an implicit 'exit' and thus worked, now fails. *) Two instances following comments "# Check searching for outer node's commands", which look like they are intended to check for this implicit-exit behavior. This is obsolete, drop those parts of the tests. Change-Id: I77931d6a09c42c443c6936000592f22a7fd06cab
2017-08-16sgsn_test: Fix wrong definition of wrap funcPau Espin Pedrol1-5/+5
Commit 058cd573d8 added 2 new pointer parameters to gprs_subscr_request_auth_info, but forgot to update wraps of the function in sgsn_test. I catched this today because openbsc build test sgsn_test was failing. Closed look up to the logs showed: Assert failed (auts != NULL) == (auts_rand != NULL) openbsc/openbsc/src/gprs/gprs_subscriber.c:791 Change-Id: Ie9e4af6da0339536fb20ca0b7bbcf6f485bd522c
2017-08-14Migrate from gprs_apn_to_str() to libosmocore osmo_apn_to_str()Harald Welte2-96/+2
In 2015, Jacob moved/copied related functions to libosmocore, but for some reason didn't remove the copies here. Let's follow-up on that and remove duplicated code. The libosmocore commit introducing osmo_apn_to_str() was 8114294bf29ac6e44822c0ae43d4b0819f11b022 Change-Id: I7315ffcbed8a54cca2056f313bb7783ad82d0ee9
2017-08-13libcommon: Fix log output for bts>0.Alexander Chemeris3-6/+38
Fixes regression probably introduced in c696cc28. For bts>0 logging doesn't show bts number correctly when printing lchan identification string - it will always show it as "bts=0". The reason for this is that the identification string is cached before bts->nr value is set to a proper value. This patch sets bts->nr as part of the first step of the bts structure initialization, before caching happens thus making sure the cached identification string is cached with the correct values. Change-Id: I61c18a7f021fcb1ec00d34a745f4e3ab03416c2d
2017-08-09libmsc: update database to accomodate SMS status-report fieldsPablo Neira Ayuso1-0/+1
SMPP DELIVER_SM messages with esm_class = Delivery Receipt need to send this message reference (that the mobile phone allocates) to the ESME. Thus, the ESME propagates it via SUBMIT_SM with esm_class = Delivery Acknoledgment so that the SMSC sends the GSM 03.40 status-report to the origin including this. Given this field is useful for status-reports, we need to store it in the HLR database. Moreover, we need a new field that specifies if the entry represents a SMS status-report, to do the right handling from the gsm411_send_sms() - such new handling comes in a follow up patch entitled "libmsc: handle delivery ack via SMPP SUBMIT SM / send GSM 03.40 status report". This patch includes the migration routines to the new database schema revision 5, it's quite a bit of dbi boilerplate code - copied-pasted and adapted. Change-Id: I7276d356d805a83ebeec72b02c8563b7135ea0b6
2017-06-22Enable optional static buildsMax1-1/+0
* use LT_INIT instead of AC_PROG_RANLIB * remove redundant libbsc entries The default (for both manual and .deb builds) is to use shared build (as before) - the static build is entirely optional. Based on work by Sergey Kostanbaev <sergey.kostanbaev@gmail.com> and Alexander Chemeris <Alexander.Chemeris@gmail.com>. Change-Id: Ibcd1da98302413182c85e25c4cb7d69d9e38c35a
2017-06-15Update SI data structures and generationMax2-28/+150
To support segmented SI2quater as per 3GPP TS 44.018 we'll have to support multiple SI messages (up to 16 for SI2q) for a given type in contrast to existing 1:1 mapping: * expand storage space to hold up to 16 SI messages (spec limit) * add assertions for budget calculations * generate multiple SI2q messages * adjust SI2q-related tests * use precise check for number of SIq messages instead of approximate estimation Change-Id: Ic516ec9f0b821557d9461ae9f1c0afdd786f3b05 Related: OS#1660
2017-06-15Move SI-related definesMax1-1/+1
* move SI2quater related defines to shared header * add define from OsmoBTS which checks for presence of a given SI message in gsm_bts struct. Rename it to avoid conflicts with OsmoBTS code and to match naming conventions of similar macros. Change-Id: I11432c93c772d1ead6d45a7bb0f1d13d492c82f1 Related: OS#1660
2017-06-09don't re-implement osmo_talloc_replace_string()Harald Welte1-1/+1
osmo_talloc_replace_string() was introducd into libosmocore in 2014, see commit f3c7e85d05f7b2b7bf093162b776f71b2bc6420d There's no reason for us to re-implement this as bsc_replace_string here. Change-Id: I6d2fcaabbc74730f6f491a2b2d5c784ccafc6602
2017-05-20Add missing _CFLAGS and _LIBSAlexander Huemer1-1/+2
These missing pieces go unnoticed if dependencies are not installed in distinct directories. Change-Id: If8d57b72f63d79cc0d8efba7466c6ec177207cbb
2017-05-15SI2quater: fix EARFCN inclusion checkMax2-32/+86
Previously only the existance of bts->si_common.si2quater_neigh_list was checked but not the actual number of EARFCNs in it. Fix it by using si2q_earfcn_count() and adjust tests accordingly. While at it - reformat tests to include extra information. The correctness was checked manually by inspecting GSMTAP output. Change-Id: Ic4fb2a9e870db66cac58b1e8d113587b30d64ce2 Related: RT#8792
2017-05-15Restructure SI2quater generationMax2-52/+43
In preparation for extended SI2q messages: * add SI2q-specific accessor macro * add *_offset variables to gsm_bts struct * internalize memory check while generating rest octets - introduce budget concept (number of bits available in a given message) * internalize *arfcn_size() functions as they are not needed outside of si2q_num() anymore * change rest octets generation to work with gsm_bts struct directly * do not generate rest octets if no SI2q is necessary * adjust unit tests accordingly (cosmetic changes only to avoid regressions) Requires: I92e12e91605bdab9916a3f665705287572434f74 in libosmocore Change-Id: Ib554cf7ffc949a321571e1ae2ada1160e1b35fa6 Related: RT#8792
2017-05-12fix subscriber random extension allocation rangeNeels Hofmeyr1-0/+11
The VTY config allows above 32bit range extensions, but db_subscriber_alloc_exten() was unable to generate extensions outside of 32bit. Add VTY regression test and fix the problem by using proper 64bit types. Related: OS#2253 Change-Id: I9afe6a8833004ecd2f3f936b2d5aa4de8e7dbcb0
2017-05-12fix VTY parsing: subscriber-create-on-demand randomNeels Hofmeyr1-0/+11
Fix parsing of the 'subscriber-create-on-demand random' VTY: atoi() is not enough to include the specified range of 1-9999999999. Use atoll() instead to ensure a large enough number space also on 32bit systems. (Note: for me, atoll() truncates at 32 bit when <stdlib.h> is not included.) Add a VTY regression test for this. Related: OS#2253 Change-Id: I353e04481ec567adca383d6b51ba8fb865eed73e
2017-05-08Use libosmocore for SW Description parsingMax2-101/+17
Requires libosmocore with Ib63b6b5e83b8914864fc7edd789f8958cdc993cd. Change-Id: Ib94db414e94a2a1f234ac6f1cb346dca1c7a8be3
2017-05-08Use ipa.py for ctrl testsMax1-16/+8
Remove duplicated code and make sure that python code is actively used as part of test harness Change-Id: I676390abe2f179df6004cdd33d0eaaf60e18df03
2017-04-28Prepare for extended SI2quater supportMax1-3/+2
Supporting SI2quater 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_BTS_SI helper instead of accessing buffer directly * make helper more robust by adding extra parenthesis * add similar helper for gsm_lchan * add function estimating number of SI2quater message to hold configured number of (U|E)ARFCNs * add SI2q index/count fields and pass them to rest_octets generator explicitly * internalize buffer access in generate_si* functions Change-Id: I74e4e3cb86364cec869a1472a41b4a95af0d50dd Related: RT#8792
2017-03-20python tests: allow running from separate build dirNeels Hofmeyr3-4/+9
The VTY tests assume that $top_builddir == $top_srcdir. Use the script's location from sys.path[0] to find the correct locations of example configs even when building in another directory. Change-Id: I2731f361e3b72d0980968e6cf83594ea450db7c2
2017-03-14python tests: vty and smpp: speed up >10 timesNeels Hofmeyr2-2/+0
osmo-python-tests now includes code that retries connecting the VTY socket and needs no external sleep()ing. This flies through most tests without any sleep() at all. See osmo-python-tests.git change-id Icc337f52a93d5fe31fc4ff235ccaf4e0fe75fa39 Change-Id: I42161d9716fe5bb0ef1c56e4bfb770bb99bbca7a
2017-03-08add struct bsc_subscr, separating libbsc from gsm_subscriberNeels Hofmeyr7-2/+187
In a future commit, gsm_subscriber will be replaced by vlr_subscr, and it will not make sense to use vlr_subscr in libbsc. Thus we need a dedicated BSC subscriber: struct bsc_subscr. Add rf_policy arg to bsc_grace_paging_request() because the bsc_subscr will no longer have a backpointer to gsm_network (used to be via subscr->group). Create a separate logging filter for the new BSC subscriber. The implementation of adjusting the filter context is added in libbsc to not introduce bsc_subscr_get/_put() dependencies to libcommon. During Paging Response, fetch a bsc_subscr from the mobile identity, like we do for the gsm_subscriber. It looks like a duplication now, but will make sense for the VLR as well as for future MSC split patches. Naming: it was requested to not name the new struct bsc_sub, because 'sub' is too ambiguous. At the same time it would be fine to have 'bsc_sub_' as function prefix. Instead of struct bsc_subscriber and bsc_sub_ prefix, I decided to match both up as struct bsc_subscr and bsc_subscr_ function prefix. It's fast to type, relatively short, unambiguous, and the naming is consistent. Add bsc_subscr unit test. Related: OS#1592, OS#1594 Change-Id: Ia61cc00e8bb186b976939a4fc8f7cf9ce6aa3d8e