aboutsummaryrefslogtreecommitdiffstats
path: root/tests
AgeCommit message (Collapse)AuthorFilesLines
2024-01-24Add vty commands "no gprs nsvc ..."Andreas Eversberg1-7/+4
A switch (bool) is used to enable or disable NSVC 0 or 1. It is enabled via any "gprs nsvc 0|1" command and disabled via "no gprs nsvc 0|1" command. If it is disabled, it is treated as unconfigured, similar when no remote IP or port has been defined. Related: OS#6006 Change-Id: Ia112e86aa35f6a245d98ef1b3720c18835faeda6
2024-01-10vty: disallow combination of early-IA and frequency hoppingNeels Hofmeyr1-0/+24
Related: osmo-bts Id9a930e5c67122812b229dc27ea2bfe246b67611 Related: SYS#6655 Change-Id: I8d375e5155be7b53034d5c0be5566d2f33af5db0
2023-11-27recover BORKEN lchans for missing ACK scenariosOliver Smith1-0/+2
We already recover broken lchans where an ACTIV ACK or REL ACK arrives late. Now add a recovery path for lchans that are broken because no ACTIV ACK or REL ACK arrives at all. Add a timeout of X28 = 30s to the lchan BORKEN state. On timeout, attempt both a Channel Activation and a Channel Release. If any of them is ACKed, we have successfully synced BTS and BSC's state. After successful recovery, place the lchan back in the UNUSED state, available for servicing subscribers. If recovery is unsuccessful, just continue to attempt recovery every further X28 seconds. Patch-by: osmith, nhofmeyr Related: osmo-ttcn3-hacks I9b4ddfc4a337808d9d5ec538c25fd390b1b2530f Related: OS#5106 Related: SYS#6655 Change-Id: Ic4728b3efe843ea63e2a0b54b1ea8a925347484a
2023-09-28vty: make NCC Permitted (SI2) configurableOliver Smith1-0/+31
Related: SYS#6579 Change-Id: I71bb855c35378f8f0598bc11a42bd274b7232a5e
2023-09-23oml: ipacc: fix sending hard-coded GPRS Cell attributesVadim Yanitskiy2-3/+3
Change-Id: I7d90ca3d6a660af8e953e890c7919194f5d297d2 Related: OS#4505
2023-09-23oml: ipacc: send GPRS Cell attributes based on IPA Object VersionVadim Yanitskiy2-3/+5
Change-Id: Ie0fb3eaf76e1f70e5a19bb088e1674b7e553d32a Related: OS#4505
2023-07-21ASCI: Add selection reason for VGCS/VBS channelsAndreas Eversberg1-0/+5
"enum lchan_select_reason" gets a new selection reason: "SELECT_FOR_VGCS" The selection "direction" can also be changed via VTY. Change-Id: I6b96d0a1df68efa5858b98297ebe0944b1473aaf Related: OS#4852
2023-06-01tests/{ctrl,vty}_test_runner.py: raise an exception if proc's rc != 0Vadim Yanitskiy2-2/+6
Change-Id: I5fa3477979d41aef7b22464a925941ed0f115193 Depends: osmo-python-tests.git I1e11fcb6c5a587c27fc00920b6e157862d972fd9 Related: OS#5665
2023-05-08test case fixup: Add missing (void) empty argument list specificationHarald Welte4-6/+6
Change-Id: Idf7b044424f59f3069adda90ed336d01dac0118b
2023-04-05si2quater: bts_earfcn_add(): do not add duplicate EARFCNsVadim Yanitskiy2-67/+62
We don't want to have duplicate EARFCNs in the config file. The desired behavior is modifying existing EARFCNs. Change-Id: Ia2fd8bd86d9f093967c1b0b0135151d2d5386dc1 Related: SYS#6401
2023-04-05si2quater: bts_uarfcn_add(): modify existsing UARFCNsVadim Yanitskiy1-3/+8
Do not print an error, modify the existsing UARFCNs instead. Change-Id: Iadc884aa8968e2dc01adf26ba68ba9597fa05d94 Related: SYS#6401
2023-03-31tests: add more tests for GPRS NSVC parametersVadim Yanitskiy1-0/+68
Change-Id: I13d6ac887ddb1c9bc5d1e4122f20405a28f135d4 Related: OS#5979
2023-03-31tests: rename and extend gprs_{bvci_default->params}.vtyVadim Yanitskiy2-13/+48
Match default values for all GPRS related params, not only the BVCI. Change-Id: Ia02e9a97137eb7724f22526fc3768331b35ac55d Related: OS#5979
2023-03-31tests: demonstrate the problems of 'si2quater neighbor-list'Vadim Yanitskiy1-0/+39
* osmo-bsc currently does not support adding multile EARFCNs with different thresh/prio/qrxlv parameter values; * adding an EARFCN which already exists creates a duplicate; * adding an UARFCN which already exists fails; * adding UARFCN=0 fails. Change-Id: Iece6b9058f4eb06f8f2c19311de4f2eea01cfe82 Related: SYS#6401
2023-03-31tests: add VTY transcript tests for 'si2quater neighbor-list'Vadim Yanitskiy1-0/+128
Change-Id: I1209cca6a4ba0b9658a98f1782a9575c01263832 Related: SYS#6401
2023-03-31tests: $(BUILT_SOURCES) is not defined, depend on osmo-bscVadim Yanitskiy1-3/+3
Change-Id: I640dd2cd599707ad6bc661e7bea08372d85b47df
2023-03-21gsm_bts_check_ny1: Prevent possible division by zeroarehbein1-2/+2
Do this by setting the minimal value for T3105 to 1 in its timer definition. Fixes: Coverity scan CID#307389 Change-Id: I1fd0b92ab507a58fed6e9649eaa4770f1ad1cbad
2023-03-18fix coverity (false) warning in codec-list vtyNeels Hofmeyr1-9/+9
Since there were complaints about this old parsing code during recent code review in Ifdc9e04bf1d623da65bfb8a2fddea765601f6d9b, and now also coverity finds something odd in it, just rewrite this. Related: CID#310912 Change-Id: I96cd5d88ec6808a2915c6bccd0c0140216f328f2
2023-03-18vty: codec-list: fix error messageNeels Hofmeyr1-1/+1
Change-Id: I89460229f894bfa67c6939dc3825f1865378d918
2023-03-17Fix Lb/A SCCP conn lookup after recent regression in optimization patchPau Espin Pedrol1-1/+1
In osmo-bsc, there's currently 0..1 Lb links and 0..N A links, where N is the number of MSC, but links can be shared in the underlaying stack (struct osmo_sccp_instance), hence range 0..N of different osmo_sccp_instance (identified by PC). Even more, the Lb and A link can share the same underlaying stack, so osmo-bsc can end up with only 1 struct osmo_sccp_instance shared by all the above mentioned links in case all are configured under the same PC. Total range A+Lb is 0..(1+N). A struct gsm_subscriber_conn stores 2 struct sccp_instance*, one for Lb (conn->lcs.lb.*)and one for A (conn->sccp.*). They can actually point to the same sccp_instance or to different ones, as explained above, depending on the configured setup. In any case, a gsm_subscriber_conn needs 2 rb_nodes since it can hold any of the 2 conn_ids independently (A or Lb). The previous patch forgot to add that 2nd rb_node as well as some initialization and release code for the Lb conn. This patch addresses that. When the 2nd rb_node, a problem when iterating the rbtree appears: how to find out the "conn" pointer from the rb_node pointer, since the rb_node pointer can be any of the 2 rb_nodes inside the struct at a different offsets. In order to solve that problem, a new struct bscp_sccp_conn_node is added, which holds all the relevant information used by the rbtree lookup code in a generic way (rb_node and conn_id), plus a backpointer to the struct bsc_gsm_subcriber it relates too. Fixes: 85062ccad31e9fb73e0256a5ee556c6ae0a16449 Change-Id: If42d93adee71d646766929a09bc01ae92b734ef3
2023-03-15bsc_subscriber: Optimize lookup of bsub by TMSIPau Espin Pedrol1-1/+1
It was found that on a busy osmo-bsc process (>1000 concurrent calls spead over different BTSs), a good amount of time is spent iterating the subscribers list trying to find a subscriber based on a TMSI (1.60% of total CPU time used by osmo-bsc). This patch introduces a new rbtree under struct bsc_subscr_store which allows storing all the busbs ordered by TMSI. This way, lookup time changes O(N) -> O(log(N)), at the expense of increased insert/deletion time O(1) -> O(log(N)). Related: SYS#6200 Change-Id: If27429e715ef4b327177e427249e68321a6e83cc
2023-03-15bsc_subscriber: Introduce bsc_subscriber_store objectPau Espin Pedrol2-20/+19
This allows keeping the bsc_subscriber storage internals outside of main gsm_network code, while easily allowing making the internal implementation more complex (in order to optimize it in a follow-up commit). It is also nice since we get rid of uncommon procedures being used in this code, like allocating an llist directly as a talloc context, etc. Change-Id: I616e8872af4ac63a6985f8900909e324ba889192
2023-03-11tests: use -no-install libtool flag to avoid ./lt-* scriptsVadim Yanitskiy9-2/+13
This option should be used for any executables which are used only for testing, or for generating other files and are consequently never installed. By specifying this option, we are telling Libtool that the executable it links will only ever be executed from where it is built in the build tree. Libtool is usually able to considerably speed up the link process for such executables. Change-Id: I37f078bdc17e128298b956f493ff5c03ef476f98
2023-03-06tests/handover: wrap functions from gsm_08_08.cOliver Smith2-6/+23
Prepare to include gsm_08_08.h in more files in the following patch, without wrapping these functions it won't build anymore. Remove the unused stub for bsc_assign_compl() while at it. Related: OS#4393 Change-Id: I6cb84f493204e393fd719148f54b8bbc173588a4
2023-03-04tweak gsm_pchan_ids[]: DYNAMIC/{OSMOCOM,IPACCESS}Neels Hofmeyr1-6/+6
This patch affects *only* on osmo_fsm instance IDs, which are visible on the CTRL and VTY interfaces to identify FSM instances, and in the log. Why bother: An upcoming patch wants to replace gsm_pchan_ids[] with osmo_fsm_inst_update_id_f_sanitize(gsm_pchan_name(x)), this is an explicit step to match gsm_pchan_names[]. Change-Id: I4a540744cced466f0ca4fc605db4d0ec14ee8e87
2023-03-04bsc_test.c: test FSM IDs that contain pchan namesNeels Hofmeyr2-0/+113
Show the timeslot_fsm, lchan_fsm, assignment_fsm fi->id strings. The IDs include the current pchan configuration. I want to tweak the composition of these in an upcoming patch, so the test should show whether any FSM IDs change from that. Change-Id: If369f23fa140b9d7792f5a511815cbbd14b371e9
2023-03-04VTY,CTRL: add pchan dynamic/{osmocom,ipaccess}Neels Hofmeyr2-6/+8
We already use "OSMO_DYN" as C name for "fully dynamic" timeslot config, when working with osmo-bsc.cfg I dearly miss this short name, it is a pain / has become ridiculous to write 'tch/f_tch/h_sdcch8_pdch'. Introduce 'dynamic/osmocom' and 'dynamic/ipaccess' as default names for our dynamic timeslots on VTY and CTRL. The old 'tch/f_tch/h_sdcch8_pdch' and 'tch/f_pdch' are still supported. Change-Id: I37719edd867c777d1ce944b8e2f1efffac38f00e
2023-03-04vty: msc / codec-list: forbid invalid codec versionsNeels Hofmeyr1-10/+10
Change-Id: I421c306aa22dfdad0f30c6ba8b482e1eff188a8e
2023-03-04vty: msc / codec-list: forbid duplicate entriesNeels Hofmeyr1-2/+2
Change-Id: Ifdc9e04bf1d623da65bfb8a2fddea765601f6d9b
2023-03-04simplify storage of bsc_msc_data->audio_supportNeels Hofmeyr2-90/+46
Make it a plain array, no dynamic allocation needed. Change-Id: I625cedc4bb040d649fd6e1794ba468f4c6ad6adc
2023-03-02bsc_test: add 'update_exp'Neels Hofmeyr1-0/+4
Change-Id: I0e758e264f0bba76a78839931a72245d98936b8f
2023-03-02implicitly register osmo_fsm definitionsNeels Hofmeyr1-5/+0
I'm going to add a regression test that probes lchan_fsm. I noticed that I have to call lchan_fsm_init() for osmo_fsm_register(). Let's make this implicit as we usually do now, to not have to register FSMs in tests. Change-Id: I58760e743c78a370aedc9720f265c0f8da5c2045
2023-03-02add timeslot.vtyNeels Hofmeyr1-0/+71
Prepare some basic tests for 'timeslot' / 'phys_chan_config', because an upcoming patch will add the 'osmodyn' alias, and this test shall show the changes on the VTY. Change-Id: I2c4aab90bcbc9019ca004fb1d4945476edbb7363
2023-03-02vty: msc / codec-list: tweak error msgNeels Hofmeyr1-8/+0
Change-Id: I7ba508cceccb8a25db0936f756f3e4a28ec1333f
2023-03-02vty: improve doc for 'codec-list'Neels Hofmeyr1-2/+2
Change-Id: I33e6568997bcb1a9466e1e0c1b00718b703e2904
2023-03-02add msc.vty to test 'msc' / 'codec-list' cfgNeels Hofmeyr1-0/+124
Show various weird things we allow in codec-list. Change-Id: I04ce02dff7cadab826611bd6a0df5596a40578b5
2023-03-02pick up all *.vty in EXTRA_DISTNeels Hofmeyr1-11/+1
*.vty tests are picked up by the Makefile.am by means of a wildcard -- they are run when they are there. So when you forget to add it to EXTRA_DIST, it will be run in your local build tree, but it will be silently omitted from a distribution tar, and nothing will complain about it gone missing. Instead, also use a *.vty wildcard in EXTRA_DIST. So any *.vty test added to the git source will both be run *and* included in distribution tars implicitly. Change-Id: I47c9011b5e0e2886d221e34e6aa281d1dd0495c7
2023-02-04HO: use defined constant instead of magic numberMax1-1/+1
Change-Id: Iabedc3a704ccc766f4490e3e621e7be83995a9c6
2023-02-01bsc_ctrl_commands: Add GET for bts neighbor-list (local bts numbers)arehbein2-0/+75
Related: SYS#6287 Change-Id: I79aeffd93089086f57c66787fe20b439a4d8b6b4
2023-01-23vty: Add support for Ny1 configurationarehbein3-12/+34
Related: OS#5475 Change-Id: I6318cceb4ebdce50005e39e2e9323c1c8433250a
2023-01-03bts: ipa/osmo-bts/sysmobts: MO: add support for the second NSVCAlexander Couzens1-1/+1
The second NSVC MO has been explicit skipped and never been interacted with. osmo-bts is already supporting it for a long time as well the PCU is supporting it at least since the NS2 code migration. Fixes the ttcn3 test case BTS_Tests.TC_pcu_socket_two_nsvc. Closes: OS#5835 Change-Id: I3486a7cc9a424602b73f8adc2fefce169213e46b
2022-11-30paging: Replace reqs waiting for retransmission with new incoming inital req ↵Pau Espin Pedrol1-2/+2
if queue is full If queue size (in transmit delay of requests) is too long (above threshold) when a new initial incoming request arrives, instead of directly discarding it, see if we can drop a pending retransmission and insert the new one instead, in order to avoid losing initial requests. This is done under the assumption that it is more important to transmit intial requests than to retransmit already transmitted ones. The rationale is that there's lower chances that an MS which didn't answer lately will answer now (aka being reachable at the cell), so it's better to allocate resources for new requests (new MS) which may be available in the cell. Change-Id: Idfd93254ae456b1ee08416e05479488299dd063d Related: OS#5552
2022-11-30paging: Split paging queue into 2 queues: initial and retransPau Espin Pedrol2-132/+303
Initial requests: paging requests which haven't been yet transmitted Retrans requests: paging requests which have already been transmitted at least once. Until now one queue was used (llist) to store both. The initial requests were stored at the start of the queue in FIFO order. After the last initial requests, the retrans requests followed also in FIFO. This ordering was used in order to prioritze scheduling of initial paging requests over retransmit paging requests. In the end, having both types in the same list only make code handling the list more complex. Hence, this patch splits the shared llist into 2 llists. Related: SYS#6200 Change-Id: Ib68f2169e3790aea4ac77ec20ad79f242b7c2747
2022-11-28paging: Introduce VTY configurable X3113 (Maximum Paging Request Transmit ↵Pau Espin Pedrol1-0/+2
Delay Threshold) This allows configuring the maximum delay of paging requests to be queued according to other parameters, such as MSC paging request timeouts, etc. Related: OS#5552 Change-Id: Ia556ef4e474e6a2d0d1618bab680a3330a3c062b
2022-11-23Cosmetic: fix spaces around timersOliver Smith1-3/+3
Use spaces around equals signs inside structs, as expected from the kernel coding style we mostly follow. Neels wrote: > IIUC "T=123" without spaces is my personal favorite that goes against > the accepted linter standard, i guess rather than everyone else > adapting to my weird style, i should start adding spaces in my > patches. Change-Id: I01ce986a1b0cdd74d945a04ae62a07f2850d366f
2022-11-15Add BTS setup ramping to prevent BSC overloadingAlexander Couzens1-0/+1
Prevent BSC overloading in the event of too many BTS try to connect. E.g. a network outage between the BSC and BTS. The BSC will accept incoming OML connection, but will delay sending any BSC originated messages. Change-Id: Id56dde6d58f3d0d20352f6c306598d2cccc6345d
2022-10-27gsm48_parse_meas_rep: fix parsing multi-band listOliver Smith1-7/+3
When looking up "BCCH-FREQ-NCELL i" from the measurement report, don't treat the BCCH channel list as one list sorted by ascending ARFCN. Instead, treat it as two sub lists, one for the same band, and one for channels in different bands, as described in 3GPP TS 04.08 § 10.5.2.20. This fixes getting the wrong ARFCN from measurement reports in multi-band BSS, which leads to failing handovers. Fixes: OS#5717 Related: osmo-ttcn3-hacks I4fe6bb9e4b5a69ea6204585ebdf1f157a68a8286 Change-Id: Ic5e4f0531e08685460948b102367825588d839ba
2022-10-27tests: add test_meas_rep_multi_band.ho_vtyOliver Smith3-0/+108
Add a test that shows that the ARFCN of neighbors from the measurement report is not parsed correctly for multi-band BSS. A follow-up patch fixes it. Related: OS#5717 Change-Id: Ie18e341f236bab5cf60d3a342c15c96cc848a7c2
2022-10-19Use new mgcp-client VTY commands under mgw nodePau Espin Pedrol1-3/+3
New VTY commands have been added recently to the "mgw" node which drop the redundant "mgw" prefix on each fo them. Depends: osmo-mgw.git Change-Id: Id55af13d2ecde49d968b9dca6a2f8108a17ec484 Related: SYS#5987 Change-Id: I71e49cb4d6c2fe54a895aab0b0ba5acc4e57c253
2022-10-19Update examples to use mgw pooling VTY commandsPau Espin Pedrol1-4/+4
Let's avoid guiding users towards the old deprecated VTY interface. Line "mgw endpoint-range" is removed since it's nowadays deprected and implemented as a NOOP. Related: SYS#5987 Change-Id: Iff74a9efca2a0a2c38d5ac39df704b2b211fd906