Commit Graph

2588 Commits

Author SHA1 Message Date
Harald Welte 57de220cdb BSSGP_Emulation: Introduce a GLOBAL port in the BSSGP_CT
The per-NSE BSSGP_CT gets a new GLOBAL port which is used for procedures
that are not specific to one BVC, such as the SUSPEND/RESUME related
PDUs, which all are on the signalling BVC without any BVCI in the BSSGP.

Change-Id: I40d973d80709f5d56f59247e8647b52754f09bc8
2020-11-25 17:14:25 +01:00
Harald Welte 7462a59ed9 gbproxy: Add paging for all situations of unknown identity
CS-PAGING and PS-PAGING for unknown RAC, LAC and BVCI on either PTP or SIG BVC.

Change-Id: I9874d54939daa28201b82139c9d8e3022432e621
2020-11-25 17:14:24 +01:00
Daniel Willmann 00c0bbf272 Add templates for LLC_DISCARDED
Change-Id: I587ec89471083e339065f6371ffe6253d49007bf
Related: SYS#5210
2020-11-25 16:10:23 +00:00
Daniel Willmann 91a8e25b57 gbproxy: Add test for FLUSH_LL
Change-Id: I05667295e7fe945de6ed03716ff5ac930d54ac77
Related: SYS#5210
2020-11-25 16:10:23 +00:00
Daniel Willmann 4798fd7d65 Support signalling BVC to send/receive messages
Change-Id: Icbe9f918d16efd01ede4e060f8af53a5e2c9253f
Related: SYS#5210
2020-11-25 16:10:23 +00:00
Daniel Willmann 7f1d78e164 Add templates for FLUSH_LL_ACK
Change-Id: I57ef98b9a3022ed5915381504aa129979799bee8
Related: SYS#5210
2020-11-25 16:10:23 +00:00
Daniel Willmann 379fc250de Add templates for FLUSH_LL
Change-Id: Id432022fdd7f96bc014f0fd81658fa4aa796a688
Related: SYS#5210
2020-11-25 16:10:23 +00:00
Vadim Yanitskiy 3191d73f6c BTS_Tests: make Training Sequence Code configurable
Change-Id: Ifc09d4192584048d39ebfa22824eda69320fa2c5
2020-11-24 12:05:27 +01:00
Vadim Yanitskiy 7e70709689 BTS_Tests: generate g_AllChannels from module parameters
Change-Id: I600aa49768328b89707b4da13d61f6a8089ac351
2020-11-24 11:58:49 +01:00
Vadim Yanitskiy 42d8bd5012 BTS_Tests: re-organize configuration of TRX/TS params
Change-Id: I9b225249d135399f63d3c7e4c567121dfea63f75
2020-11-24 11:58:49 +01:00
Vadim Yanitskiy 802508e696 library/RSL_Types: add 'bs_power_params' to 'RSL_IE_Body'
The value part of this IE is defined as vendor-specific.

Change-Id: I48703c45d26cd88c1d9b5fda1a9df42616cb7cc0
2020-11-24 11:58:49 +01:00
Vadim Yanitskiy bc8ebce10e library/GSM_RR_Types: make ts_MEAS_REP more user-friendly
Change-Id: Ica1ea41ebba5c518d515a211e77ca6651c4173d6
2020-11-24 11:58:49 +01:00
Vadim Yanitskiy 05a236a2fc library/GSM_Types: add the Uplink flag to GsmBandArfcn
Change-Id: Ib9bd7268b8a0fd8ed64064871c09fab35e15a761
2020-11-24 11:58:49 +01:00
Vadim Yanitskiy 1acc7bb184 library: move Osmocom_Types.Arfcn to GSM_Types.GsmBandArfcn
In some cases GsmArfcn itself is not enough.  It case of L1CTL
and GSMTAP, it needs to be equipped with a band discriminator:

  - DCS / PCS (as the numbers may overlap),
  - Downlink / Uplink (not yet there).

Let's rename this record and move it to GSM_Types.  Also, add
send / receive tamplates, so we can add new fields later.

Change-Id: I7a63f03bbd15a06caafb786122dc12991d115771
2020-11-24 11:58:49 +01:00
Harald Welte 0e18824f3b gpborxy: Implement variety of paging tests for PS-PAGING and CS-PAGING
Change-Id: Ida44b62dfdb9c4ce2755de63d51a9907d34f247f
2020-11-23 14:51:38 +01:00
Harald Welte f8ef028c9f gbproxy: Add test for load sharing function in SGSN->PCU direction
Related: SYS#5209
Change-Id: Ide733d7659ff7f341bedc61fc90947f74d7c4ac3
2020-11-21 22:52:55 +01:00
Harald Welte 80a249aa07 NS_Emulation: Include NS-VCI in NsUnitdataIndication
The primitive normally only contains NSE + BVCI, but in a tester
we actually want to verify which NS-VC a given message has arrived on,
and hence it makes sense to add the NSVCI, too.

Change-Id: I9402bf0be47e5b93c9cfb081eb8f9fa6734c9227
2020-11-21 22:52:51 +01:00
Daniel Willmann 670bbc0c4e Osmocom_Gb_Types: Fix indentation
Change-Id: I4ca156b53dfe9daa190d52a7de46be56cf74099a
2020-11-20 15:09:00 +00:00
Daniel Willmann 087a33d5d4 gbproxy: Add test for BSSGP resume procedure
Change-Id: I7e724b97ebfde4ed5824515065fbedca8bcf4c64
Related: SYS#5210
2020-11-20 15:08:35 +00:00
Daniel Willmann fa67f49798 gbproxy: Add test for the suspend procedure
Change-Id: Ib64c1711f7983940aa41e1b570c90015fe236e5b
Related: SYS#5210
2020-11-20 15:08:35 +00:00
Daniel Willmann 54833f2481 gbproxy: Use a different IMSI suffix per TC
Change-Id: I9a234cd6e61cfed8c9502708314c478f9a561d58
2020-11-20 15:08:35 +00:00
Daniel Willmann 165d6617b4 gbproxy: Add test for Radio Status procedure
This message is only passed through by gbproxy

Change-Id: I277ba3dace936400a78670925c7c8bdf401f90f6
Related: SYS#5210
2020-11-20 15:08:35 +00:00
Pau Espin 599d56bbc4 pcu: Fix counter expectancies in TC_bssgp_dl_unitdata_with_valid_imsi
Since sending with the network-requested UL CS/MCS was implemented, CS-2
is being used in the test (since it's requested by the network during UL
Imm Ass). We used to send UL blocks with CS-1 prior to that, which means
we are sending a different amount of data, and hence the test
expectancies need to be updated.

Change-Id: Ie7112a96f5f2ca9c5bbd224b6270f55a338d101a
2020-11-20 15:06:35 +00:00
Daniel Willmann 05d4638b9b Add templates for BSSGP Radio Status procedure
Change-Id: I6d49eb4907c4568d88da5d6fd7962e388a3607fb
Related: SYS#5210
2020-11-20 15:53:55 +01:00
Daniel Willmann 443fc57fc7 gbproxy: Reset nsvc to SGSN before each test
Change-Id: Ibf9c75b4066b1aad5fbbe2f35087a3f9f1a39743
Related: SYS#5002
Depends: I83b9cd7381c25da0e8aa847038a2d422c8dd63cf (libosmocore)
2020-11-19 14:29:59 +01:00
Harald Welte a71a410cb3 deps/Makefile: Require v0.1 of AF_PACKET TestPort
Change-Id: I435d0c09e051e0a3082e8c87807b72ce92117007
2020-11-18 15:21:32 +01:00
Pau Espin e8db673d22 pcu: Implement ACKing EGPRS Dl TBF blocks
Change-Id: I9f1b621a8365e69d2e1a33d59cb8c7a59639ad94
2020-11-18 11:51:14 +00:00
Harald Welte 0c45da1f2d gbproxy: /bin/sh cannot do "FILES+=", use /bin/bash
This fixes an ugly copile failure depending on which shell
provides /bin/sh on the given system:

AF_PACKET_PortType.so: undefined reference to `typeinfo for AF__PACKET__PortType::AF__PACKET__PT_PROVIDER'
AF_PACKET_PortType.so: undefined reference to `AF__PACKET__PortType::AF__PACKET__PT_PROVIDER::AF__PACKET__PT_PROVIDER(char const*)'
AF_PACKET_PortType.so: undefined  [0m [91mreference to `AF__PACKET__PortType::AF__PACKET__PT_PROVIDER::set_parameter(char const*, char const [0m [91m*)'
AF_PACKET_PortType.so: undefined reference to `AF__PACKET__PortType::AF__PACKET__PT_PROVIDER::outgoing_send(AF__PACKET__PortTypes::AF__PACKET__Unitdata const&)' [0m [91m
AF_PACKET_PortType.so: undefined reference to `AF__PACKET__PortType::AF__PACKET__PT_PROVIDER::user_map(char [0m [91m const*, Map_Params& [0m [91m)' [0m [91m
AF_PACKET_PortType.so:  [0m [91mundefined reference to [0m [91m `AF__PACKET__PortType:: [0m [91mAF__PACKET__PT_PROVIDER::user_unmap(char const*, Map_Params&)'
AF_PACKET_PortType.so: undefined reference to ` [0m [91mAF__PACKET__PortType::AF__PACKET__PT_PROVIDER:: [0m [91m~AF__PACKET__PT_PROVIDER()' [0m [91m
AF_PACKET_PortType.so [0m [91m: undefined reference  [0m [91mto ` [0m [91mAF__PACKET__PortType::AF__PACKET__PT_PROVIDER::Handle_Fd_Event(int, bool, bool, bool) [0m [91m'
AF_PACKET_PortType.so:  [0m [91mundefined  [0m [91mreference to [0m [91m `AF__PACKET__PortType: [0m [91m:AF__PACKET__PT_PROVIDER::user_start()'

Change-Id: I71352f5fa538c3ba599b11c2bb1fec2952ddbf80
2020-11-18 12:36:42 +01:00
Pau Espin 6d3a8fc4f7 pcu: Set acceptable logging verbosity for ConsoleMask
With prior situation it's impossible to follow stdout due to the huge
amount of noise.

Change-Id: I1f49eb26af0d6144f7632320097f2c78d47f3a22
2020-11-17 21:48:55 +00:00
Harald Welte d280127e0e gbproxy: Wait longer for BVC unblocking at start-up
When using NS_Provider_FR, the FR links need some more seconds to come
up than the NS_Provider_IP.

Change-Id: Idf80cf6119b67393fe5cbc0c93f5715daddcae0a
2020-11-17 20:14:15 +01:00
Harald Welte 3dd21b3307 gbproxy: Allow dynamic connect/disconnect of ConnHdlr at runtime
We want to move a virtual subscriber between BVC with one NSE,
but also to other NSE/PCU at runtime.  The number of BVC and NSE
may be large in a given test config, and we really don't need
hundreds of test ports per component;  Instead, reconnect the
test ports to whichever BVC we want at runtime.

Change-Id: I56b088b582f2d070547ee24f2d7a175d84fb5861
2020-11-17 20:13:20 +01:00
Harald Welte 5cb8016707 gbproxy: call f_client_register() only on connected ports
Change-Id: I845d566172918e1948db0579fa846e0972e532c3
2020-11-17 20:13:18 +01:00
Harald Welte 67dc8c2bd3 gbproxy: Remove NUM_BVC_PER_NSE constant and constant-sized array
Let's use a 'record of' with indefinite length in order to be able to
dynamically adjust the number of BSSGP_BVC_CT references based on how
many BVCs we have configured.

Change-Id: Id4aa20ff0b553cb8a1f5a67faa1e7b237fb254b8
2020-11-17 18:35:53 +01:00
Harald Welte 16357a970a gbproxy: Remove array of three cell IDs
The hard-coded array of three cell identifiers in the ConnHdlr
configuration doesn't really reflect situations with a different
number of PCUs than three, and a different count of BVCs than one
per NSE.

Let's pass the entire PCU configuration as parameter into every
ConnHdlr.  This way, the ConnHdlr can learn whatever cell identities
there mgiht be in whatever number of BVCs of each NSE.

Change-Id: I0bb22be612b8aa256c9ee115ee44ea849c4225e1
2020-11-17 18:35:53 +01:00
Harald Welte ea1ba59134 gbproxy: Fix SGSN side initialization for more than one SGSN
Change-Id: I4c64bf02a805a959626f6915d9dd72aa7622b24a
2020-11-17 18:35:53 +01:00
Harald Welte 2f282527c2 gbproxy: Include support for NS over Frame Relay
Change-Id: I5ba84b9eebf7c330f7ff55f5e99c6fd5972c7123
2020-11-17 17:42:23 +01:00
Harald Welte e15299ab20 NS_Emulation: Fail if an unsupported NS provider is chosen
This took me quite some time: Tried to use NS_PROVIDER_FR, but the
code was compiled without support for it.  It just failed silently
without printing any error or ever sending any message on the FR link.

Change-Id: I96475127a2079830b3456a8e288adf4c6c908887
2020-11-17 17:42:23 +01:00
Daniel Willmann ace3ece7be gbproxy: Add test for RA Capability Update procedure
Change-Id: I023b3d24a31d117f05c7327b08e9f8f930720944
Related: SYS#5210
2020-11-16 20:32:20 +01:00
Harald Welte d6de98418c FR/FRNET: Introduce simplistic simulation of UEs
Let's start a number of per-UE/TLLI component on each BVC, and generate
some uplink traffic with random-payload 512-byte LLC frames.  The
FRNET(SGSN) side simply ignores all of those by means of a
CreateCallback.

Change-Id: I1b25b4a650d831bb07e9623b76e6c3dcdd71ac88
2020-11-16 20:32:20 +01:00
Harald Welte 22ef5d92d9 gbproxy: Generalize pcu2sgsn / sgsn2pcu transmission
This reduces code duplication between ConnHdlr test functions

Change-Id: Ic13fa745178ffddf8e35fc5203ad8d824e8f338c
2020-11-16 20:32:20 +01:00
Harald Welte 6dc2ac471b gbproxy: Test for RA Capability procedure
Change-Id: If7e5a5cab1e445e0b4ef0466990e352143c31245
2020-11-16 20:32:20 +01:00
Harald Welte 78d8db98b7 gbproxy: Add test for DL-UNITDATA
Change-Id: I96d57cef29dd5e724e66767cc23320a5468a3ea3
2020-11-16 20:32:19 +01:00
Harald Welte 9268601b27 gbproxy: Add test for Uplink-Unitdata
Change-Id: I912ba5a83c852e6ad9524e06a8e76e9f16a517d8
2020-11-16 19:16:27 +00:00
Harald Welte fbae83ffba gbproxy: Use BSSGP MGMT port to determine when all BVC are unblocked
Change-Id: I9c94aa4b4891e8a79bca62f4fd713e4ad50f9424
2020-11-16 19:14:49 +00:00
Harald Welte 1e834f3230 gbproxy: Register IMSI + TLLI with BSSGP_Emulation
If we don't do that, the BSSGP code will not know what to route to us
and what not.

Change-Id: Ife8b8918f0eb69c6dc502d67d2566e78975c9f91
2020-11-16 19:14:24 +00:00
Harald Welte b419d0e614 gbproxy: Less redundant component naming
before this patch:
	GbProxy_Test-SGSN0-NS(SGSN)0-NSVCI101
after:
	GbProxy_Test-NS(SGSN[0])-NSVCI101

Change-Id: I8fc6b7526707206c147aa3c269c0204495e9f15a
2020-11-16 19:13:26 +00:00
Harald Welte 6d63f74bf5 gbproxy: Set configuration in a more dynamic way
Let's generalize the data types a bit, and move the gb (bssgp) config
into a module parameter.  That parameter then is used for both the PCUs
as well as (concatenated) for the SGSN side.

This allows the configuration file to have more control over the number
of BVC within each NSE.

Change-Id: I43a3a8e133cf0f0e377b64d1b385e88285246957
2020-11-16 19:13:26 +00:00
Harald Welte 2436fb5bcc BSSGP: parametrize tr_BSSGP_DL_UD
Change-Id: Ib4a1d64da634813b49474c13ae080d729bbabcf1
2020-11-16 19:13:26 +00:00
Harald Welte 199f386e89 BSSGP_Emulation: Introduce MGMT port to per-BVC component
This port can (optionally) be connected to, and it will receive
state change notifications as well as permit the user to block/unblock
and reset the specific PTP BVC.

Change-Id: I1f0289c8805168e3daace4a7d76764b45cead3d0
2020-11-16 19:13:26 +00:00
Harald Welte 4d112c926c BSSGP_Emulation: Allow a "CreateCb" to handle unknown inbound TLLI
The existing BSSGP Code assumed that the TLLIs were always known "a
priori" by the test case.  With the newly-introduced create_cb,
the user can provide a function to handle any incoming messages for an
unknown TLLL.  The default handler behaves like before: fail +
terminate.

Change-Id: Ice0e145f5a6518ff79547dd851042b7965f38e00
2020-11-16 19:13:26 +00:00