If an SGSN in a pool is down we expect the messages to instead be sent
to a different SGSN in the pool. That SGSN will not necessarily know
what to do with those messages, but it should )implicitly) detach that
UE so that it can reattach at the new SGSN. Otherwise UEs on a failed
SGSN would simply stop working as the messages would never be forwarded
anywhere.
This test also adjusts the NS timers so the failed NSVCs are detected
faster.
Change-Id: I46a6b8082441843f428a7681566228e5de375bcb
Related: OS#4952
In libosmocore I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d we introduced
a new log subsystem; enabel it in the related configs here
Change-Id: Ie3d178e68aa81d5636c87940074cb6582ac2f131
This reflects the more realistic use cases: IP-SNS is used on the BSS
side, where osmo-gbproxy then behaves in SGSN role.
Change-Id: I90bd101096979b170c38fa2a80abb80d296c4d2e
This adds IUT fsm state instrospection via the CTRL interface.
docker-playground will need to set "mp_gbproxy_ip" in its configs.
Change-Id: I272e43b9be8ba53d8a815e8ab099c939f63413a7
Those tests predated SGSN pooling support and needed to update
their assumptions to also cover other SGSNs in the pool.
We could come up with more complex, auto-scaling mechanisms to handle
different numbers of SGSNs, but that would make the code quite
unreadable, as it means we cannot use interleave but have to dynamically
activate altsteps for counting. I went for the simpler approach
instead.
Change-Id: I8c3ec4e00b78cff40ac72bc857161fa7abc352b0
Related: OS#4968
With libosmocore commit the SNS configuration requires a ip-sns-bind vty configuration
to define the binds which should be use.
Related: SYS#5354
Depends-on: I9ab8092bf286e7d90e92f5702a5404425e959c84 (libosmocore)
Change-Id: If86fe463199bc5089db80a0dcc01f9e94e23e9b9
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 testcase TC_rim_info_pcu2pcu calls a function f_TC_rim_info_pcu2pcu()
which doesn't use the templates from Osmocom_Gb_Types.ttcn as intended.
This eventually lets the altstep in f_rim_pcu2pcu() run into a timeout
since the templates never match.
Change-Id: I281dc53bb5dd7be86edc9db185618252ff1b9a21
Related: SYS#5103
It seems only docker config files were updated, while the local ones
have been forgotten in recent changes. We have to find a proper
solution for this :/
Change-Id: I26e900617bb87983912d8440376a7449f318e737
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
The TC_rim tests do not use the RIM templates from Osmocom_Gb_Types as
intended.
Change-Id: Ie484f288aa0515ef4df4a3cf7f8a347a3f3cf587
Related: SYS#5103
If send() on AF_PACKET returns ENOBUFS, usleep for 2ms and re-try
until it succeeds.
Change-Id: Id7bdd2c690eae3bec1df7634944cd73f0bf0b29a
Closes: OS#5343
Sending a message [even over a real or simulated E1 line] should always
be less than 1s end-to-end. But just to see if increasing the timeouts
to 2s will result in less test failures, let's change from 1s to 2s.
Change-Id: Iebb43283ad7c267c6ed7f49989ec453be38956a9
With pooling enabled these tests now need to verify that the reset/block
is propagated to all SGSNs in the pool.
Change-Id: I34ed4bffce564dbaf08f9388bd5247351dd0725e
Fixes: OS#4964
As we know, many production deployments have SGSN architectures with
clear control / user plane split. In such situations, IP-SNS of the
SGSN informs us of two (classes of) IP endpoints:
some that have control_weight > 0 and data_weight 0
some that have control_weight 0 and data_weight > 0
Let's adjust the GBProxy_Tests.ttcn to use such a configuration for
each of the two simulated SGSNs.
Change-Id: If0e404bdf2c30a5e18748695608611be83f61109
Closes: OS#4953
* 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
The ConnHdlr test stores the sgsn_idx in g_pars. Use that in the paging
tests to the correct SGSN pages the MS.
This commit fixes what 4332044c missed and is required for the ptp paging
reject test to pass.
Change-Id: Id85ffa57af943ae98c0f022b261ec24d557c236d
Related: OS#4951
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
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