Commit Graph

1127 Commits

Author SHA1 Message Date
Alexander Couzens d5ac510648 ns: SNS: add bss change weight testcase
Do a normal SNS configuration. Afterwards the BSS will change
the weights of the endpoints

Change-Id: I691b9d26bf3eb8fa65aa02eba3efd0fd3869fc2a
2021-03-20 16:41:01 +01:00
Pau Espin 873686f029 pcu: transmit PCUIF DATA.ind with len=0 when no UL data to transmit
PCUIF will be updated to always send DATA.ind for each expected block FN
on any activated PDCH slot, irrespective of whether valid data was
received or not, similarly to what's done already for TRXDv1 NOPE.ind in
TRXD and TCH channels in OsmoBTS. The aim at this change is to be able to
track TDMA clock in an accurate way without hops, and hence be able to
detect on time whether expected UL blocks (SF, RRBP poll) didn't arrive.

Older osmo-pcu versions can cope well with this change, they will simply
print an error upon ach data_len=0 messages received and submit a GSMTAP
block, then discard it, so tests still pass.
Nevertheless, a new module parameter is added to disable this new
behavior in order to avoid logs and pcap files ending up clogged with
uneeded information until a new osmo-pcu release appears.

Related: OS#5020
Change-Id: Ib4f97a9bcfa68230945effeb6412218faa64ec78
2021-03-12 11:44:42 +00:00
Pau Espin 76de166a56 PCUIF: Fix naming of counters in InfoInd
Change-Id: Ieb26020e0f18169f19322963e23358b6ca254545
2021-03-01 17:42:45 +01:00
Pau Espin eef4607203 BSSGP+pcu: Get rid of mp_tolerate_bvc_reset_cellid
Since we have new releases in -latest, we don't need this param since
it's never set to true.

Related: OS~5042
Change-Id: Ic496407fd2139b3a5221c30f1798797320cdee24
2021-02-26 13:39:45 +01:00
Pau Espin f0b7d4f309 RSL_Emulation: Get rid of module param mp_rslem_patch_ipa_cid
This param is not needed anymore since new releases used in -latest don't
need to disable it.

Change-Id: I39e9c1986ea682d54dcb22b31798ca91f1677949
Related: OS#5042
2021-02-26 13:10:16 +01:00
Pau Espin 4858184bd4 StatsD_Checker: Enable by default
It was previously disabled by default in order to avoid test breakage
with older versions of osmocom projects not supporting them. Since we
just did a new release, all -latest contian now master which should work
fine.

Don't remove the moduleparam yet in order to avoid breakage with some
cfg files in docker-playground.git still setting it to true.

Related: OS#5042
Change-Id: I4e2049c109986906d3c985ca2282174b1abff581
2021-02-26 12:42:35 +01:00
Harald Welte 08332307ea cbc: Initial set of CBC tess for osmo-cbc
osmo-cbc is the Osmocom cell broadcast centre.  So far, there was no
TTCN-3 test suite.  Let's change that.

Change-Id: I38286e8a3dd0f39bd25f631dcbb3ff4f8d4c221f
2021-02-22 10:41:29 +00:00
Harald Welte 205b537f6f HTTP_Adapter: split into f_http_tx_request() / f_http_rx_response()
There are some use cases in which we don't want a blocking wait for the
full HTTP request to complete.  Let's split it up in two parts, and
make the existing f_http_transact() a wrapper around them.

Also, enable the generation of the Connect_result primitive to detect
connection failures.

Change-Id: I5c7575c0b58c3606d25d8f8cfccd47cfb7a8c400
2021-02-22 10:41:29 +00:00
Harald Welte ad9d8366f8 HTTP_Adapter: Make timeout configurable
Change-Id: Icdcba367dc12c0f20a733572da250d7db22c03ee
2021-02-22 10:41:29 +00:00
Harald Welte 55e879c647 remsim: factor-out HTTP_Adapter.ttcn
There are other test suites (like osmo-cbc) which can reuse some of
the HTTP utility code that was developed within the remsim test suite

Change-Id: I87a728272d47649e4faa628fad44d6f8673c8169
2021-02-22 10:41:29 +00:00
Pau Espin Pedrol 28652d8724 Implement SystemInformation13 Rest Octets types
Related: SYS#5358
Change-Id: Id8845ebe28a9a6ed79d2d408dc7c1ad8a275b809
2021-02-17 17:08:28 +01:00
Harald Welte 37202770e5 NS_Provider_FR: Fix typos in log lines
Change-Id: I5661ba61dc0de78bc480c49d4aba6436a8694706
2021-02-16 19:03:21 +00:00
Harald Welte c56800066d NS_Emulation: Work around "alive" race condition in IP-SNS
We need to modify the state of each NS-VC within a NS-VCG/NSE once
we receive the final SNS-CONFIG-ACK PDU.  However, sometimes the
IUT sends its first NS-PDU _before_ we even have communicated the
state-change locally to all our NS-VCs.

In order to avoid the problem, let's mark the NS-VCs as alive before
sending the the SNS-CONFIG.  This means we have one RTT more time
to locally propagate the state change to all NS-VCs.

Change-Id: Idac522a81f01553df52dc012cbab15e1c73c0862
Closes: OS#5023
2021-02-13 16:49:25 +01:00
Harald Welte 516c5c7250 NS_Emulation: factor-out as_ns_common_status() altstep
This is a new altstep which groups all handling of NsStatusInd.
Right now it's only used from one place, but upcoming patches
will re-use it elsewhere.

Change-Id: I4e8e7d19c764cc977beb84a6859c9ce73518b653
2021-02-13 16:49:25 +01:00
Harald Welte 3bd182f3b3 NS_Emulation: Factor-out function to broadcast to all NS_VCs
Change-Id: I8cd16031dbbd244dcff74fc8a1cd69e9f8a06dbf
2021-02-13 16:49:25 +01:00
Daniel Willmann 325458ddf7 gbproxy: Fix TC_dl_unitdata test failure introduced by 6ee0126971
This commit used a send template (ts) to match a received BSSGP PDU which
doesn't work due to some differences in the length field.
Use tr_BSSGP_IMSI again and change the template restrictions so it
compiles.

Fixes: 6ee0126971
Change-Id: I85676e96f8d32a9d2c7deadc1d66707b6b8697d0
2021-02-11 15:16:57 +01:00
Harald Welte 24f921baea sccp: Add Tests for SCMG SST procedure
The SST procedure can be used by any SCCP node to test the availability
of a remote SSN.  If the specified remote SSN is available at the
specified PC, a SCMG SSA is returned.  If not, there's a timeout.

Test for SSN=1 (SCMG), another non-SCMG SSN that exists, and for one
SSN that doesn't exist.

Change-Id: If3f5f3144c0ed83d0bda5953522a9d73287c8ba2
2021-02-11 12:00:29 +00:00
Harald Welte e92cc66c62 SCCP_Templates: Make tr_SCCP_UDT work for unspecific templates
Change-Id: Ic77f52f7ec6dc8e17d9cd0789ba790296a25bc50
2021-02-11 12:00:29 +00:00
Alexander Couzens 98ee6f6507 pcu: move generic RAW_NS_CT function to library/RAW_NS
Allow the NS tests to use the SNS functions.

Change-Id: I6c404475f39dd00023eb11e98da93ee423604039
2021-02-09 15:49:15 +01:00
Pau Espin Pedrol 3bc82b494a VTY: Fix warning: control reaches end of non-void function
Change-Id: Ie9415afecbcaf12e210fd4f481fcbb1f5ba52c77
2021-02-08 18:43:17 +01:00
Pau Espin Pedrol fa64e2885b Fix tons of warnings in RLCMAC and pcu
Change-Id: Ia3b7c5f9fdf571f99859027dbab8731ea1a8e830
2021-02-08 18:35:38 +01:00
Harald Welte 42bcc44153 stp: Ignore M3UA SSNM messages in tests
The tests were written without considering the arrival of such messages;
however, it is well within the M3UA spec that such messages appear at
any time indicating remote point code availability etc.

In libosmo-sccp.git Id92be4691b0fd77598a6edb642c028bbd8c5b623 we start
generating those messages in osmo-stp.

Let's ignore them in the tests to avoid unexpected failures.

Later on, we likely will introduce / adapt tests to actually expect
those messages whenever appropriate.

Change-Id: I85ce8fd4f26db184833cf348293f0255bb5eaac3
Related: OS#2623
2021-02-08 17:15:15 +00:00
Pau Espin Pedrol fb14690c81 StatsD_Checker: Check f_IPL4_listen result
Change-Id: Ief4e30ae92b8567dd9618064220f9f50df2d0de0
2021-02-08 12:36:42 +01:00
Pau Espin Pedrol 6ee0126971 Osmocom_Gb_Types: Fix tons of template restriction warnings
Change-Id: I3da153ce5e83b231501e74b958fcac9f10c00849
2021-02-08 12:32:07 +01:00
Pau Espin Pedrol 7e88ce91d4 Osmocom_Gb_Types: Fix warning: control reaches end of non-void function
Change-Id: Ic2b8d0215c378ec2fd1a44775dc4e43616ca9f3c
2021-02-08 12:32:07 +01:00
Pau Espin Pedrol 3855462672 GSM_Types: Fix warning: control reaches end of non-void function
Change-Id: I749fe3a2ca85ae96fa74a78f15180cfaa02ffe84
2021-02-08 12:32:07 +01:00
Pau Espin Pedrol 810b1df0d8 Osmocom_Gb_Types: Fix warning: inadequate restriction on the referenced function
Fixes warning:
Osmocom_Gb_Types.ttcn:1377.13-32: warning: Inadequate restriction on the
referenced function `f_oct_or_wc(bmax, 2)', this may cause a dynamic test
case error at runtime

Change-Id: Icb8698c7f2ca697a3638d5a4e4e38f20e14fd34c
2021-02-08 12:32:07 +01:00
Pau Espin Pedrol dbc71270df pcu: Fix inadequate restriction on the referenced template parameter
Fixes:
warning: Inadequate restriction on the referenced template parameter
`tfi', this may cause a dynamic test case error at runtime

Same for other parameters.

Change-Id: If2cadbc7087ac0f99537b9916ef0c23363c9242c
2021-02-08 12:32:07 +01:00
Pau Espin Pedrol 40a0295382 CTRL: Avoid using keyword 'now' as var
Fixes warning: Keyword 'now' is treated as an identifier. Activate
compiler option '-I' to use real-time testing features

Change-Id: I2b350bc93b33f36f72d35cb48d01f6c37ac1630f
2021-02-08 12:32:07 +01:00
Pau Espin Pedrol 847a1651cd BSSGP_Emulation: Fix indentation whitespace
Change-Id: Iade336832e7045cd29bae52c7907c6a1c57813cd
2021-02-08 12:32:07 +01:00
Pau Espin Pedrol 011e32f8fc BSSGP_Emulation: Fix warning: control reaches end of non-void function
Change-Id: I9a44afc81b5b6b35a32a12efcf2dd1cb15e73e12
2021-02-08 12:31:14 +01:00
Harald Welte 49f3ea818b NS_Provider_FR: Drop received messages until limk+pvc are up
Related: OS#4974
Change-Id: I69f9cf485b0a9eaf9294236f50ffcf4af20f1d20
2021-02-05 21:05:14 +01:00
Pau Espin cf5c33e0cd PCUIF: Allow receiving decoded RR/RLCMAC blocks in DATA REQ
This way tests can match directly on specific RLCMAC blocks, giving the
opportunity to handle different types using altsteps.
Before this, a user of the port could only receive a pcu_msg DATA_REQ
with a octetstring containing the rlcmac block, then decode it in a
second step when already in the alt step.

Related: OS#4927

Change-Id: Id8628e327d16c3a57e680e5a1ba0a2a8874f3a23
2021-02-05 12:01:14 +01:00
Pau Espin 4f9a48fc23 RLCMAC: Fix unbound spb value in decoded egprs data blocks
That field is only present in Header Type 3 blocks.

Change-Id: Ie05576d7d7c18933dd9abcdc055cbfe1e4e54756
2021-02-05 10:14:48 +00:00
Pau Espin ff7c5baaa2 RLCMAC: Fix decoding of dl data block with no llc block header byte
The value was marked as unbound while it should be marked as omitted:

"""
dl_block := { data := { cs := CS_1 (0), mac_hdr := { mac_hdr := { payload_type := MAC_PT_RLC_DATA (0), rrbp := RRBP_Nplus13_mod_2715648 (0), rrbp_valid := false, usf := 7 }, hdr_ext := { pr := PWR_RED_0_to_3dB (0), spare := '0'B, tfi := 0, fbi := false, bsn := 0, e := true } }, blocks := { { hdr := <unbound>, payload := '0D0C8653110FFEF072972C5A790C0317299753B5'O } } } } }
"""

Change-Id: If00338729ee1b2c8a4e100495e7cfa0599a4cb8b
2021-02-05 10:14:48 +00:00
Vadim Yanitskiy 559f5dc6e1 library/L3_Templates: fix: ensure 'no extension' in {ts,tr}_Called
Our definitions contain the minimum for 'CalledPartyBCD_Number',
optional extensions are not supported.  Thus do not indicate their
presence, use '1'B (inverted logic) in both templates.

Change-Id: I448a1f7b71ed7d63d397da2b7d04942b501deaa5
Related: SYS#5340
2021-02-05 09:44:04 +00:00
Vadim Yanitskiy c833465143 library/MGCP_Emulation: fix a copy-pasted comment
Change-Id: If068b653811c836f8e937a6f77d79d0c150c8e63
2021-02-05 09:44:04 +00:00
Harald Welte daf89681c4 NS_Emulation: Avoid g_unblocked_nsvcs_* overflowing
Sometimes we run into situations where the g_unblocked_nsvcs_* is
exceeding the number of NSVCs we have in g_nsvcs.  This can only happen
as we blindly append integers to the ro_integer fields, rather than
checking if they are already contained.

Let's factor out the add_unique and del functions (in Osmocom_Types)
and use them from NS_Emulation.

Change-Id: Ib3273d6ce9b80f700c964d578fdb0f268eac6a14
2021-02-04 17:11:30 +01:00
Harald Welte aaa0dfdd3f Move "ro_integer" to Osmocom_Types
We don't need several re-definitions of a "record of integer" type,
plus associated helper functions.  Let's move that to the shared
Osmocom_Types.ttcn

Change-Id: I6a68ab8180a40b93c540db9cb80941c39c2fb549
2021-02-04 17:11:30 +01:00
Harald Welte 4998a09917 NS_Emulation: Don't respond to NS-STATUS with NS-STATUS
Change-Id: Id9544ed1a7686fe113c4f6671e482bffc84bd2cc
2021-02-04 14:58:22 +01:00
Harald Welte 633805b1c8 BSSGP_Emulation: Support up to 64 BVCs with 64 users each
Increase this from the previous limit of 16 BVC with 16 users each

Change-Id: I8abca1c020d0ba4b89a6045e99d3a9eb7bcc4648
2021-02-03 19:28:00 +01:00
Harald Welte c0c67ff14f NS_Emulation: Handle NS_PROV_LINK_STATUS_DOWN
This happens e.g. if FrameRelay detects a "service affecting condition",
i.e. the link is considered dead.

Change-Id: I7409079f5e2b77cc08ccc93d1b0baa72720cefb8
2021-02-03 19:28:00 +01:00
Philipp Maier 14d3a8e7c3 GBProxy_Tests: fix TC_rim_* tests
The TC_rim tests do not use the RIM templates from Osmocom_Gb_Types as
intended.

Change-Id: Ie484f288aa0515ef4df4a3cf7f8a347a3f3cf587
Related: SYS#5103
2021-01-30 19:18:36 +00:00
Pau Espin 77783caf84 CTRL_Adapter: Keep server alive after first client disconnects
It can be expected from CTRL clients to connect and disconnect several
times as several commands are sent, so let's by default enable it (only
user of this CTRL servcer in PCU_Tests needs it).

Change-Id: Idddc27671d1b823dfbc62bcf7be673e51b574d63
2021-01-30 19:18:18 +00:00
Pau Espin 2dc137ccd1 IPA_Emulation: Support keeping server alive after first client disconnects
Change-Id: I4c133a889df0a5a060b5c52a1ca40fa9b8695c2e
2021-01-30 19:18:18 +00:00
Pau Espin a948d14d4d CTRL_Adapter: Add function f_ipa_ctrl_wait_link_down
Change-Id: Ia9f08dae76774925de8a08c7e313965280cb51b0
2021-01-30 19:18:18 +00:00
Pau Espin 0637ba0728 pcu: Introduce test TC_nacc_outbound_success
Related: SYS#4909
Change-Id: I951db4af731e5a7c207f0f407dd78d166e2d3d26
2021-01-30 19:17:49 +00:00
Vadim Yanitskiy bc1e66a3f1 library/Osmocom_VTY_Functions: make VTY prompt timeout configurable
Change-Id: Iadec95446b98d9767d08a841fa1c28f8c71c5eea
2021-01-30 14:23:10 +01:00
Vadim Yanitskiy 26e30aa4e0 library/Osmocom_VTY_Functions: cosmetic: coding style changes
Change-Id: Idccdf6fcbda2d020d2263ea1440ea1c5d9ea0e45
2021-01-30 14:23:10 +01:00
Philipp Maier e00776c5db Osmocom_Gb_types: add minimum requred tr_ templates for RAN INF
When testing the serving BSS part of the RIM application in osmo-pcu, we
will need receiving templates that allow us to verify the response (RAN
INFORMATION) rim container.

Change-Id: I964d7504f3c4aeaa4ce537316b3140e8b893003d
Related: SYS#5103
2021-01-29 21:18:18 +00:00
Pau Espin 9df362a94f rlcmac: introduce initial support for NACC related messages
Change-Id: I4d2f123479c34e6afffe0bc8d91409e6b0529a62
2021-01-29 21:16:25 +00:00
Alexander Couzens 20cd41ec89 Introduce NS test cases
Related: SYS#5208
Change-Id: Ic619a374b88879d3116f8f28afb14401c3e3192b
2021-01-25 14:14:47 +01:00
Harald Welte 3f82089977 NS_Emulation: Add CTRL port to administratively disable a NS-VC
This feature is useful in simulating intermittent or permanent transport network
outage by simply halting processing of all rx+tx in the specified NS-VC
until it is administratively re-enabled.

Change-Id: I742ecf01de15e3edbf0719371f0217a5739b7c8e
RelateD: OS#4521
2021-01-25 12:48:38 +00:00
Harald Welte be7afce974 NS_Emulation: Respect data_weight==0 or signalling_weight==0
* allow configuration of signalling + data weight for each NS-VC
* advertise per-NSVC signalling/data weight in SNS-CONFIG
* keep track of unblocked NS-VCS separately for data / signalling
* transmit BVCI=0 traffic only over signalling NS-VC
* transmit BVCI>0 traffic only over data NS-VC
* accept incoming BVCI=0 traffic only if signalling_weight > 0
* accept incoming BVCI>0 traffic only if data_weight > 0

Related: OS#4953
Change-Id: I9798e639b4bc8658482945970775b012b5840779
2021-01-20 15:56:31 +01:00
Harald Welte 1308dbbd8f NS_Emulation: Move SNS handling from NS-VC to NS-VCG
We need to move the IP-SNS handling up one layer, as only the NS-VCG
knows all the other NS-VCs, and after the SNS-CONFIG-ACK, we must
mark all of our NS-VCs as alive and start the alive procedure.

Related: OS#4953
Change-Id: Ie0f4342a0346952d7c50ac36900148e311d4c782
2021-01-18 19:55:03 +01:00
Harald Welte 0b38da55c7 NS_Emulation: Dynamically compute list of v4/v6 endpoints in SNS-CONFIG
Don't hard-code the assumption that we only have a single IP[v4] endpoint.

Related: OS#4953
Change-Id: I43fe5810b95ebbc9f848856803ac2c71f80d74f3
2021-01-18 19:55:03 +01:00
Harald Welte 3f10c62331 Osmocom_Types: fix formatting of log line (missing ", ")
Change-Id: If4555cd2902e056b32e835daa741ee84b346b922
2021-01-18 19:55:03 +01:00
Harald Welte 04358655bf gbproxy: Add test cases for STATUS handling
We expect the uplink BSSGP status to be routed based in the
inner/contained downlink PDU - and vice-versa.

Change-Id: If2ddd158346a3da340f1c673354196f3872c4f67
Related: OS#4951
2021-01-17 18:16:04 +01:00
Harald Welte f536524b07 BSGSP_Emulation: Route STATUS to GLOBAL port for both SIG and PTP
Change-Id: I6573562c0e7638f153798ee178c7c69d07c26756
Related: OS#4951
2021-01-17 18:15:32 +01:00
Harald Welte 112bc1469a Osmocom_Gb_Types: Extend RADIO-STATUS templates
RADIO-STATUS can occur with TLLI, but also with P-TMSI or IMSI.
Update our templates accordingly while keeping backwards compatibility.

Related: OS#4951
Change-Id: I1119e50e457b02d52e7c2c26a8b8039bf2118296
2021-01-17 17:39:29 +01:00
Harald Welte 650bd72849 BSSGP_Emulation: f_bssgp_get_tlli(): TLLI is optional in RADIO-STATUS
We must not dereference the TLLI IE unconditionally

Related: OS#4951
Change-Id: I463b25f5395127d155727d785eb7795ac0165fac
2021-01-17 17:39:29 +01:00
Alexander Couzens c796da8711 remove unused NS_CodecPort.ttcn/NS_CodecPort_CtrlFunct
Change-Id: If885353ec8947309fc7d3ad780448cfc7402e1a4
2021-01-17 15:59:26 +00:00
Alexander Couzens c316572db1 RAW_NS: rework NS connection to use NS_Provider
Previous RAW_NS only supported NS over UDP because
it handled the UDP connection on it's own.
Because of this there was no cleanup function for the tests
because no virtual component were started.
Using the new NS_Provider allows to use the same tests over
UDP and FR with no changes.

Change-Id: I8a3b6c72798a75f434f54229fdbfc802cd13967e
2021-01-17 15:59:26 +00:00
Harald Welte be9bf1e74d Osmocom_Gb_Types: Add templates for various BSSGP PDU types
Related: OS#4951
Change-Id: I89044bf8e736cc1997dff1a550b3e194f8ac1b9d
2021-01-16 22:54:29 +01:00
Harald Welte 14ac346b5d Osmocom_Gb_Types: Add 3GPP spec chapters; unify formatting
Change-Id: I9c3e5458ba7637a1e85f7bb3b32e16a90fad7bc5
2021-01-16 22:54:29 +01:00
Harald Welte dbd5e677ce gbproxy: Move away from random TLLI
We used to generate a random TLLI for each ConnHldr.  Instead, use a
deterministic function to generate the P-TMSI (just like we do for the
IMSI) and derive a local TLLI from that P-TMSI.

Related: OS#4472, SYS#5002
Change-Id: Ic1eaa1d298fe998ca97432769953bfc5a5333ae4
2021-01-16 22:50:21 +01:00
Harald Welte bf3976185a Add f_gen_tmsi() to generate a TMSI similar to f_gen_{imsi,imei}()
... and start to use it from BSC_Tests.ttcn

Related: OS#4472, SYS#5002
Change-Id: Iacba62bb740374c28cbcf50d54ba1814c5b4e1c2
2021-01-16 22:50:21 +01:00
Pau Espin 92c19081c7 rlcmac: Add template to match receival of Dl Ctrl message
Change-Id: Ifd16e8129b4440542b82a47749df1547a061ae88
2021-01-11 13:54:30 +00:00
Pau Espin 8bd54cf77a library: Add templates to initialize CellId, RAI, LAI
Change-Id: Ie9d86e1b651dff279e7d50a4282bf14fbed5bb76
2021-01-11 13:54:30 +00:00
Alexander Couzens 0c96ff6dba NS_Emulation: remove unused variable res
Change-Id: I5cc25ccb8e0d169b6f85e597fda47fdd2130aa70
2021-01-11 13:42:45 +00:00
Alexander Couzens 6da7aaf6f1 NS_Provider_IPL4: fix typo in comment
Change-Id: Ieed010a15675b105807bc8c55bb0977fcb6aa7f3
2021-01-11 13:42:45 +00:00
Pau Espin 9a5b8ffc5b CTRL: Introduce support to run osmocom CTRL server
Change-Id: I37db9962f51baf2c63bd58ec47ec89f773d7a255
2021-01-07 15:06:39 +01:00
Pau Espin ec2ee466b7 CTRL: Fix tr_CtrlMsgGet containing invalid value in val field
"val" field is not used in GET commands and is hence set to omit by
TTCN3 decoder.

Change-Id: If1a273a2be71040eaea2189a0aeaf737adf848e5
2021-01-07 13:35:15 +01:00
Philipp Maier b76a279edf Osmocom_Gb_types: add RIM templates
The template set we use for testing the GB (BSSGB) interface on
osmo-sgsn and osmo-pcu lacks templates to generate RIM (ran information
management) messages. The records and unions are already specified in
BSSGP_Types.ttcn, we just need to form templates in order to be able to
use them.

Change-Id: Ic495e0bb6ceb2b65cbc7c3da7ee519a013aede55
Related: SYS#5103
2021-01-05 16:28:20 +01:00
Alexander Couzens d533890fa7 NS_Emulation.ttcnpp: complete SGSN emulation with SNS
The emulation of an SGSN with SNS was incomplete. The SNS
procedure was completed. However the NSVCs didn't moved
into an unblocked state.
Also sending a NS_ALIVE at the beginning is wrong.

Change-Id: I54c2d9d5b34d791be354298171d04180a9b263c3
2020-12-21 18:41:31 +01:00
Alexander Couzens 195c9e70c2 PCU_Tests_SNS: improve SGSN originated BVC-RESETs
The BVC-RESETs are a little bit more complicated. The PCU will send
a BVC-RESET after the NSE become available.
Ensure the RESET is received and ignored so there is no race condition
if both sides send a BVC-RESET at the same time.

The test case TC_sns_1c1u_so_bvc_reset is still failing because the PCU can't
handle BVC-RESETs properly (both PTP and signalling).

Change-Id: Id681749d75073c1d50a4b0a2e86f0a2dd0955b45
2020-12-16 22:27:36 +01:00
Harald Welte 9b461a94a3 sgsn+pcu: Port suspend/resume cases to new BSSGP_CT:GLOBAL port
For 12+ days, suspend/resume related SGSN + PCU TTCN3 tets have been failing.

It was the introduction of the BSSGP_CT:GLOBAL test port in
I40d973d80709f5d56f59247e8647b52754f09bc8 +
I805372f3024a0ec2491a24422e02c0bc6dc669d2 which caused the related PDUs
now to no longer show up where they used to.

Change-Id: I1977302fef4868dc1c330bc6f48f6a6608949393
Closes: OS#4902
2020-12-10 23:42:03 +01:00
Harald Welte cc3894b612 gbproxy: Add test for FLOW-CONTROL-MS procedure (TC_fc_ms)
Change-Id: Ie087ee8e8adfb963d21f35c60628214d4297250d
Closes: SYS#5210
2020-12-10 22:13:25 +01:00
Harald Welte 71449b0a13 bssgp: Introduce "GLOBAL" port for PTP BVC
There are some messages/procedures on a PTP BVC which are not related
to one specific TLLI, but affect the whole PTP BVC.  First and foremost
that is the FLOW-CONTROL-BVC. Let's check if the user is interested in
handling those internally (by connecting to the GLOBAL port).  If not,
fall back to acknowledging all incoing FC-BVC and ignoring all ACKs.

Related: OS#4891
Change-Id: Ib80a6a522dbcb33fd0e7bd31a73ef28fdc636f57
2020-12-09 15:31:30 +01:00
Harald Welte 27a70cc453 bssgp: rename tr_GLOBAL to tr_GLOBAL_SIG
... to indicate this is about the signaling BVC only.

Change-Id: I646db452c89842465902b5167c9c86de51df1241
2020-12-09 15:30:52 +01:00
Harald Welte 86bdcaa79d Osmocom_Gb_Types: Fix t_BVC_FC_BVC_ACK() TAG IE length
Change-Id: Ib9a09fea85110a4f0966c07d911e37234aa06391
2020-12-09 15:30:52 +01:00
Harald Welte 0083ea6b69 BSSGP_Emulation: Add RIM port to BSSGP_CT
This port is used for sending/receiving RIM related BSSGP messages. It
exists once per BSSGP_CT Component (i.e. once per NSE), as RIM is global
for the entire NSE.

Change-Id: I04511df5dffbfe19faabf22014acc72b7673b7d6
2020-12-08 08:30:20 +01:00
Harald Welte da9d9387f6 NS_Emulation: Tolerate late NS-BLOCK-ACK / NS-UNBLOCK-ACK
Particularly in case both sides initiate a BLOCK or UNBLOCK procedure
at almost the same time, it can happen thet we're already in BLOCKED
state and receive a late BLOCK-ACK or in UNBLOCKED state and receive a
late UNBLOCK-ACK.

Let's just silently discard them instaed of generating NS-STATUS which
may confuse the peer.

Change-Id: I2e5b934e1cf6c6cf982d5ab1dbb32e8920b91071
2020-12-07 15:55:20 +01:00
Neels Hofmeyr 2a5670be4f add f_vty_cfg_bts(), f_vty_cfg_msc()
These allow passing N vty configurations on the bts / msc node without
requiring subsequent 'exit'.

As an example, use f_vty_cfg_msc() in BSC_Tests.ttcn AMR config.

Change-Id: I9f3e485f692acb3d2a7620e9b454b372651be78e
2020-11-30 15:59:14 +00:00
Neels Hofmeyr 1a1f854ed2 add f_vty_config3(), to run N commands on a sub-node
f_vty_config2() makes it convenient to enter a specific vty node without
needing to send 'exit'/'end' explicitly. However, to pass multiple
commands on the same node, the VTY would enter and exit the node for
each call of f_vty_config2(). The new f_vty_config3() also allows
multiple commands to be run on that same node without intermediate
exiting.

Change-Id: If969ac645aa82e5a36245d974de2a251633de111
2020-11-30 15:59:14 +00:00
Harald Welte f20af41003 gbproxy: Introduce TC_overload
When the SGSN is sending an OVERLOAD message, we expect that to
propagate down to every BSS on the other side.

Change-Id: Ic61fabd9c633bcb3f256fe7aa5834e66cc66a4fb
2020-11-28 16:14:59 +01:00
Harald Welte c0351d1015 gbproxy: Introduce TC_llc_discarded
This tests the LLC-DISCARDED message, which relates to a BVCI but
is itself sent on BVCI=0.  We expect it transparently passes from BSS
to SGSN.

Change-Id: I98d02d6fa68bddf15b732d06dab00e91e72995d1
2020-11-28 16:12:27 +01:00
Harald Welte f8e5c5dfc7 gbproxy: Test for SGSN-INVOKE-TRACE
Change-Id: I1e46e5c403712eb7972c57e6b6f6eb0850b96ae3
2020-11-28 16:12:27 +01:00
Harald Welte e588792562 BSSGP_Emulation: reo-rder altsteps of per-NSE component
the existing ordering of altsteps unfortunately caused some
receive clauses never to be hit, as they are only in the default
altstep, while more generic receive clauses are already in the
state-specific altsteps.

Let's introduce an as_allstate_pre() and an as_allstate_post() to
solve this ordering problem.

Change-Id: Icc4da95833557931d6685826fb30bdc60bf460c1
2020-11-27 19:18:28 +01:00
Harald Welte bdf96d8412 BSSGP_Emulation: Add MGMT port to per-NSE (BVCI=0) component
We recently introduced a MGMT port in the per-BVC component for the
PTP BVC.  Let's add this also to the signaling BVC.

Change-Id: I24df4cb290c9f9dc1a7398994af101711f12d42e
2020-11-27 19:18:28 +01:00
Harald Welte 3c90515272 BSSGP_Emulation: Send BssgpResetIndication when PTP BVC are being reset
This notifies the user via the MGMT port about the fact that an inbound
BVC-RESET procedure just happened.

Change-Id: I54d0d5e0e06a330a90dfb1da06062d65022efe81
2020-11-27 19:16:58 +01:00
Harald Welte 52cecbb340 BSSGP_Emulation: Fix handling of BsgpResetRequest
We need to change to BLOCKED local state in order to activate
the altstep which handles the inbound BVC-RESET-ACK.

Change-Id: I32ede586f0977b7d96af9fe3ea5fae485184ea98
2020-11-27 19:16:43 +01:00
Harald Welte ab50cc295b BSSGP_Emulation: Fix inbound BVC-RESET
We cannot handle this in as_ptp_allstate(), as the respective clauses
are never hit:  In as_ptp_unblocked() we broadcast all BSSGP messages
without a TLLI, "hiding" the BVC-RESET handling.

Change-Id: Ie3e7a997554e6af42ae7e7294829b6f8d2447d60
2020-11-26 20:57:54 +01:00
Harald Welte ddfc6676d5 BSSGP_Emulation: Implement handling of BVC-UNBLOCK in SGSN role
Change-Id: I7c9cda916f6583613fbf3cdf31f3f08ceadf58d4
2020-11-26 20:57:54 +01:00
Neels Hofmeyr 9ebabc8b0e vty: log failed vty command
Add a log label argument to f_vty_wait_for_prompt(), and feed the sent
command from f_vty_transceive*(), so that the failure verdict already
lists the vty command that caused the failure.

A common error is to issue insufficient 'exit' commands, so that I often
think the newly added VTY command failed, even though it is a subsequent
command causing the failure. I want to shorten the "time-to-aha" there.

Change-Id: Icfd739db150d86e9256a224f12dc979dcd77879f
2020-11-26 01:04:57 +00:00
Harald Welte fba7afdd89 BSSGP_Emulation: Include NSEI in BsgpStatusIndication for PTP BVC
Change-Id: I0d8f18d0e6438a98c75ff24e2a9c8136d8b417d2
2020-11-25 17:14:25 +01:00
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
Daniel Willmann 00c0bbf272 Add templates for LLC_DISCARDED
Change-Id: I587ec89471083e339065f6371ffe6253d49007bf
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