This seems to be a bug in TITAN 6.1.0: isbound() on a bound-value
still returns false. isvalue() however returns true if the variable
is bound, while still returning false if it is not.
Change-Id: If6e9ea970a90470a98a33e50ea5cff0fd1781719
While in TS 24.007 there is a separate L3 SAPI for GMM and SM,
this only applies to messages sent over LAPDm, and not LLC.
In LLC, both GMM and SM are sent via the same LLGMM LLC-SAPI.
Change-Id: I7814c952cd7f6032222b190d396aaa0570571bfc
It seems not all encoder paths properly set typeOfIdentity, so
let's make sure we set it correctly.
Change-Id: Ie35dcf7fec901b786eb2127c1a23f5c161c5778c
Those can be very handy to convert boolean values and templates
to the BIT1 type that is used a lot in Ericsson code.
Change-Id: I137595edabd2bbf5e6cf8bf9bdb73b3589c94c64
Based on the exsting NS/BSSGP emulation as well as the VTY, GSUP and
CTRL implementations, we are now building a test framework skeleton
for osmo-sgsn.
Change-Id: Icce90f9d8a680c7a523163e2c0bc03d12ff857e2
When we started out, Ericsson hadn't released yet their NS and BSSGP
modules. Let's port our logic over to their encoder/decoders, as they
are more complete (but less regular / more difficult to use).
Change-Id: Icbc4f5d24f3419f99c9a4805f836bddd2849f492
It's a quite frequent requirement in encoding IMSI/BCD numbers, so
let's move it to the more generic GSM_Types module.
Change-Id: I6fb8d9a6f37c990f6901fb48b15312a157954fda
We don't have a good way to make the BSSMAP code wait for the lower
SIGTRAN layers to be up and running. To avoid the RESET being
sent before the lower layers are up, introduce a sleep of 1s.
This is ugly, but appears to work for now. A more proper solution
is more than welcome.
Change-Id: I7a43b3e381405f3af30b3ffe04bc50e64ec66f57
We introduce a procedure by which any DchanHandler can globally
disable all receiving/processing of DChan related messages. This is
required in upcoming handover code, as we need to block handling
of messages such as RSL IPAC CRCX on the new Dchan before we have
processed the RR HANDOVER CMD and raised an associated expect here in
the RSL emulation code.
Change-Id: Ibef65f87d0d481accbc0e019874dd43b3f9a5dbc
Also, extend RSLEM_{register,unregister}() with an optional third
argiment, so the RSL_DchanHdlr can register 'expect' also for
that secondary BTS/port during hand-over
Change-Id: Ic22778f17dc4b93ef54837cf400ddd7d1732ae7e
The existing code generating L3 sequence numbers in MO direction
made the assumption that the L3 message inside ComplL3 would always
be MM/CM, and increment the sequence number.
However, in case of a paging response, it is actually RR, which
does *not* have L3 sequence counters. So we must make the sequence
counter increment dependant on the L3 protocol discriminator.
Change-Id: I25a5dd0c180c9acfa870984c6b122ac0c46383b3
The MNCC Unix Domain Socket encoding uses an int here, which is
a bit odd, given that it's an ASCII / IA5 char value on the actual
GSM L3. Let's convert from/to something useful.
Change-Id: Id17ac502ca33f4962214a3d5938d0dc29ca6ec1b
We now test all of the cell identification types specified in BSSMAP,
and also lists with a length != 1 entry.
Change-Id: I261f948d6054d0c90078c1dd0b2785a967b0a49b
MGCP permits for the CallAgent to send a wildcarded endpoint name,
at which point the MGW itself must allocate an endpoint name and
return it as SpecificEndpointId parameter in the CRCX response.
Change-Id: I704bbe4e11b27e83a6ae6a71aa6a715dc8301f34
A given MGCP_ConnHdlr is handling multiple connections on one Endpoint
anyway, and the variable is not set or used anywhere.
Change-Id: If9eea3f665289a52915f114f0a69234aad28f322
During assignment or hand-over, a given TTCN-3 component may be
interested in registering more than one channel number. Add an explicit
procedure port with associated registration procedure, similar to what
we already do in GSUP, MNCC and others.
Change-Id: Iba37bf9541c779b79e179f995cdfa677633fadeb
There are quite a number of non-transparent RLL messages, such as
RLL_RELEASE_REQ. Make sure we match those as intended.
Change-Id: I30260a57fc01613450e6ac66e0af97c29041b4fa
For some reason TITAN 6.1.0 requires the table to be explicitly
initialized, while 6.3.0 is happy without it.
Change-Id: I4f9ac98fb60ad16b98acd627efd617bfb4f6abcb
This seems not to be required on TITAN 6.3.0 on my laptop, but the
older 6.1.0 on Debian 9 seems to need it.
Change-Id: I574d8b79ac43e0fceddb3f9815666aef0ed66a3f
We start the call from the MNCC side, match on the paging and then
pick it up from there.
It currently fails as the MNCC_Emulation cannot yet handle "ConnHdlr
originated" MNCC calls yet.
Change-Id: I28c465187fd8b1dcfd687180b373a47bb9ac6734
OsmoMSC seems to have broken encoding of MSISDN which is not in-line
with the spec. Let's adapt to it.
Change-Id: I4892df63f1a135573dcac977f5eb0a79cbaffad3
Related: OS#2883
If we're emulating BSC/BTS/MS, then we must be able to dispatch
incoming paging requests based on their IMSI or TMSI to the right
ConnHdlr component. This introduces a new table to facilitate that
dispatch.
Change-Id: I85c1ea3bcf8fb4a100f20cffdc991826b58e290b
All relevant parameters are passed in in form of a CallParameters
record, and the bulk of the work has been moved to
BSC_ConnectionHandler.
Change-Id: I932c6c9f7a48b6a1f1ec399e8bba6a413c8bc69e
In the end, we will often see two connections that relate to one
endpoint, so let's dispatch based on the endpoint name and not based
on the connection identifier.
In the BSC case, we have
* two MGCP connections on one EP in case of RTP/IP based Abis
* one MGCP connectio on one EP in case of E1/T1 based Abis
In the MSC case, we have
* two MGCP connections on one EP: BSS and MSS/MNCC side
Change-Id: I8cd7395ee7b076a9a9ef513cc1b71f2db5009845
* re-introduce connection table
* introduce unitdata_cb for connectionless MGCP messages (like AUEP)
* rename MGCP_Emulation_CT members to avoid clashes with other similar
component names when using "multiple inheritance"
* Use HostName/PortNumber types on MGCP_conn_parameters
* allow "bind to local UDP port only, permit any UDP source port" behavior
* implement expect matching criteria + expect matching only on CRCX
* add helper function f_create_mgcp_expect() like in other Emulations
Change-Id: I953a91e663648715fa4fe98acacca393c8747001
We actually need to add the filler digit 'F' if the number of digits
is even. It is absent when the number of digits is odd.
Change-Id: Ic1353f4ea09bba3151636b94a99c8559e0289ffd
We want to use this code also for OsmoMSC testing, so let's make the
prefix configurable as module parameter.
Change-Id: Iec846227e88b3dc0d3be9474b8b926719161c9ee