They all fail with current gbproxy master as it doesn't yet implement
routing of RIM messages.
Related: OS#4896
Change-Id: I0fec6fd4a5a6559f596b9006ae437323da6f05d7
The ConnHdlr test stores the sgsn_idx in g_pars. Use that in the paging
tests to the correct SGSN pages the MS.
This is required for the paging reject test to pass.
Change-Id: I34cfc047b36cd6c139a78a7f171a9a99cc974a79
Related: OS#4951
The test fail with current osmo-gbproxy master, as the related
implementation is missing.
Related: OS#4951
Change-Id: I19a36dfef8f33f278a54b938a5daccce08de6fe0
Otherwise we may run into problems where the BSSGP_Emulation still
has references to longer existing components in its ClientTable.
Change-Id: Iee54e93e6ae1b3e40f502d5ba2499e9eb03bf203
The point of global (component) variables is that we don't have to pass
them around as extra function arguments everywhere. So don't do it.
Change-Id: I0754d5db7e797a51be3a0b601b0533de80bc246d
We cannot choose a random TLLI anymore, as this will obviously end up
at a random SGSN, and not the one we're targeting.
Change-Id: I665eda9e04cbf505f55abc9bcd414d6cbd6a36dd
Move the entire body inside the loop to a separate function. This
will be useful when adding pooling support next.
Change-Id: Ia0f9d9128754c2196ab026623f1b6a254a958d2f
We change the osmo-gbproxy.cfg to use NRI 3 for SGSN-0 (NSEI 101) and
NRI 4 for SGSN-1 (NSEI 102).
We also add the capability to GBProxy_Tests to allocate P-TMSI with
a specific NRI and default to the first NRI of SGSN-0 so all tests
written still for a single-SGSN-non-pool scenario pass without any
modification.
Related: OS#4472, SYS#5002
Change-Id: I15f78dca5ac31a1c71f086d3e92a70e900eae250
The altstep was missing the "repeat" at the end, causing it to abort
early and reporting a test failure which actually didn't exist.
Change-Id: I0ec9aa06fa9ec25b2047c1e795e28eeefd6bc7d2
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
This adds the required code changes and minimal configuration to both
osmo-gbproxy.cfg and GBProxy_Tests to have osmo-gbproxy connect to two
SGSNs.
No NRI mappings are configured and hence the second SGSN isn't really
used for anything except for bringing the NS-VCs and BVCs up.
Related: OS#4472, SYS#5002
Change-Id: Ib70f7c1a29f089957f882df0e9b05ee526224611
To avoid a dynamic test case error we need to prevent messages arriving on
unconnected ports. Waiting some time before stopping components ensures that
any messages "in flight" will be delivered to the port before the component
is shutdown and disconnected.
It would be far nicer to mark a testresult "final" and ignore such
errors on shutdown, but I don't think it's possible in TTCN3.
This fixes TC_fc_bvc on my laptop which consistently failed with a DTE
before.
Change-Id: I98928f24745125642225681d13bf2e78691e9747
Related: SYS#5115, OS#4518
The port receive operation only considers the first message in the
queue. We need to drain unrelated status/reset messages, such as those
from PTP BVCs, otherwise the test never completes and times out.
Change-Id: I1f2c76ae9bdc0267bfca60536e321fe88530803c
Related: SYS#5115 OS#4518
Ensure that a suspend/resume was sent before sending the *_(N)ACK. In
reality these can only happen together and our TLLI cache removes
the entries after it sees the corresponding (N)ACK so it will not
forward the second message.
Change-Id: Ie0fd81edb748d3c638e42c4418ca514095c55861
Related: SYS#4865, OS#4472
Printing an unbound 'rx' variable when nothing was received due to
timeout is somehow not really useful. Print what we expected to
receive.
Change-Id: I4fee89baa954736ae8298b63667297dd57d8ec4f
Destroying at least most of the components in an orderly fashion avoids
at least most of the race conditions during test shutdown.
Change-Id: I2aa4ef8a70c1139893c9621f5a6b6007b221c13d
We did have a guard time in each ConnHdlr, but not in the MTC (test_CT).
However, we do have tests that don't use any ConnHdlr, and those were so
far ran without a guard timeout. Fix that.
Change-Id: Iee90fc26a151c692d3c6f3eb6ad80f528f8d939f
This way it's more obvious that it refers to the PTP BVC, like we
already use PCU_SIG and SGSN_SIG for the signaling BVCs.
Change-Id: Ie8d327b0c6fae0e7963cc5907ab0bc94e97c67f3
These functions would not set a verdict in case no message was ever
received. This patch ensures that a timeout while waiting for a paging
message actually fails the test.
Change-Id: If71db2d37d67d02c5d9550202128ee3470762964
Related: SYS#5002
With this setup we can and do now test:
* Paging a LAI on BVC0 is sent once per matching NSE
* Paging a LAI on BVC0 is sent to multiple different matching NSE
* Paging a RA ID on BVC0 is sent once per matching NSE
* Paging a RA ID on BVC0 is sent to multiple different matching NSE
Change-Id: I698a932b3dc78c776e9350283109463bcdc40e6b
Related: SYS#5226
We need to ensure that before each test the gbproxy does not have any
state. Move the vty commands into loops that run before we init either
SGSN or PCU Gb. This ensures that we don't send some spurious block or
other message at the start of the test.
Related: SYS#5002
Change-Id: Iaedfadf94f716b190495a807c28785be0078addc
We cannot specify create_cb function references from the config file,
so let's patch them into the data structure at start-up.
Change-Id: Idac9e97dde62b61d0423fdde16e3bd700d5287c0
Any NSE should be unconfigured at start up of the test case in order
to avoid any state leakage from previous test executions into the
newly-started test case.
Change-Id: I1dd491d5bce17b4602f1e26b42df003f1627714a
The NS specs state up to 1600 bytes "gross NS size" must be supported,
at least by the underlying FR layer. Let's test up to that. Let's
also speed things up by using 4-byte size increments, and print
the size of the current message.
Change-Id: I76358323e79cfc3d0e9c979c716b7a552f3b8e3b
Printing an unbound 'rx' variable when nothing was received due to
timeout is somehow not really useful. Print what we expected to
receive.
Change-Id: Idab8bed06281468164006682aa6b4c2c3e236880
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
These test cases check if gbproxy behaves as expected when it comes to
dealing with BVC-RESET on the signaling BVC. The tests are not passing
due to limitations of gbproxy. So it's not clear if the tests are 100%
correct until gbproxy is fixed.
Change-Id: Iedfe72f539ad3a0653b6ee7a050bf36ae386e88e
This notifies the user via the MGMT port about the fact that an inbound
BVC-RESET procedure just happened.
Change-Id: I54d0d5e0e06a330a90dfb1da06062d65022efe81
Test the blocking and unblocking procedure, indirectly via the BSSGP
emulation sending us the related primitives on both PCU and SGSN side.
Change-Id: Ia2fe867435678cbde44cac2addcaddd174507446
With the previous commit, we change the processing of the SUSPEND/RESUME
related PDUs and handle them now via a new per-NSE "GLOBAL" port.
Change-Id: I805372f3024a0ec2491a24422e02c0bc6dc669d2