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
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
This param is not needed anymore since new releases used in -latest don't
need to disable it.
Change-Id: I39e9c1986ea682d54dcb22b31798ca91f1677949
Related: OS#5042
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
osmo-cbc is the Osmocom cell broadcast centre. So far, there was no
TTCN-3 test suite. Let's change that.
Change-Id: I38286e8a3dd0f39bd25f631dcbb3ff4f8d4c221f
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
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
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
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
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
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
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
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
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
Fixes warning: Keyword 'now' is treated as an identifier. Activate
compiler option '-I' to use real-time testing features
Change-Id: I2b350bc93b33f36f72d35cb48d01f6c37ac1630f
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
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
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
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
This happens e.g. if FrameRelay detects a "service affecting condition",
i.e. the link is considered dead.
Change-Id: I7409079f5e2b77cc08ccc93d1b0baa72720cefb8
The TC_rim tests do not use the RIM templates from Osmocom_Gb_Types as
intended.
Change-Id: Ie484f288aa0515ef4df4a3cf7f8a347a3f3cf587
Related: SYS#5103
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
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
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
* 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
When the SGSN is sending an OVERLOAD message, we expect that to
propagate down to every BSS on the other side.
Change-Id: Ic61fabd9c633bcb3f256fe7aa5834e66cc66a4fb
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
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
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
This notifies the user via the MGMT port about the fact that an inbound
BVC-RESET procedure just happened.
Change-Id: I54d0d5e0e06a330a90dfb1da06062d65022efe81
We need to change to BLOCKED local state in order to activate
the altstep which handles the inbound BVC-RESET-ACK.
Change-Id: I32ede586f0977b7d96af9fe3ea5fae485184ea98
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
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
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