They will be used by tests, templates and RLCMAC_EncDec.cc itself.
MCS HEader Type 1 and 2 to CPS conversion lefts as a TODO with
placeholder functions to easily implement when needed.
Change-Id: I18ff55a8067165bf081bf21473b4f88af955bf5b
RLCMAC blocks have a lot of fields and we will potentially require lots
of different templates, as well as functions to handle related structs.
Change-Id: I9c6597178168aa3848b21930f33be698dd2ce545
Delete PCU_Tests.ttcn along with the configs, since they are broken and
we are only adding new tests to PCU_Tests_RAW.ttcn. They are broken
because it's not possible to run multiple tests after another.
Some components which used to be in PCU_Tests.ttcn and which were used
by other PCU_Tests*.ttcn files have been moved to SGSN_Components.ttcn
Selftests have been moved to PCU_selftest.ttcn.
Small placeholder for module PCU_Tests is left in PCU_Tests.ttcn to
still be able to compile the binary as "PCU_Tests" and avoid changing
that part of docker setup. We'll eventually rename RAW tests soon
anyway.
Change-Id: Ie862a1525e9f4f9a3f2427ac3898810e3d044d2f
function helpers are slightly modified or added to accomodate for fields
in egprs data blocks being in different places.
Change-Id: I570fb7346519b2a161515e0ec40bd1870a89d673
* RlcmacUlBlock and RlcmacDlBlock gain a new union field "egprs_data",
which is chosen when msg contains an egprs data block. Hence one can
use same structure for both gprs/egprs data and simply check
"ischosen(block.data_egprs)" to know whether it contains egprs or gprs
data block.
* C++ code in RLCMAC_EncDec.cc takes care of encoding and decoding of
each data header type and exposes a generic ttcn3 struct
"UlMacDataHeader" and "DlMacDataHeader". Decoded header type can be
found in mac_hdr.header_type. This can be used t5ogether with CPS to
get the MCS of the message received. Similarly, the encoder will use the
same field to know how to encode the ttcn3 structure.
* In RLCMAC_EncDec.cc order of functions has been ordered to split
between encoding and decoding, and inside these split between Ul and
Dl messages.
* Only encoding of UL HeaderType3 and decoding of Dl HeaderType3 is
implemented so far in RLCMAC_EncDec.cc. However, all code is already
arranged and functions prepared (with FIXME fprintf) to easily add the
missing header types once needed.
* Actually only the decoding of DL HeaderType3 has been tested to work so far.
Encoding may still be missing to octet-align the data block after the header.
All these wil lbe fixed once a test using them exists.
Change-Id: I2bc4f877a5e17c57ffa8cf05565dc8593b45aae8
On top there's a lot of types related to data blocks. Having more
stylish section header helps orientating one self while looking through
the data blocks.
Change-Id: I87d4694031ea6874b233626818824cdc4f3505c6
Change [1] introduced a regression: PCU_Tests_RAW.TC_pcuif_suspend
fails since build #443. I have no idea why the BYTEORDER should be
set to 'first' (and not 'last'), but this is the only way I could
make TITAN's RAW encoder generate a valid MCC/MNC pair again.
[1] I481a40daef3eed4a3daa687ad87c4128a13181b4
Change-Id: I70a5b2eed3788be10d62fa421e3ba7444d66c655
Test sending MS RA capabilities through Packet Resource Request to
update GPRS multislot class.
EGPRS multislot will come in a later commit.
Change-Id: I5026d8b78a3fb82093956b65989d18fa6f6d5424
This test case initiates the packet Downlink assignment procedure
by sending a DL-UNITDATA PDU containing a random TLLI and checks
Timing Advance value indicated in the Immediate Assignment.
Currently fails due to a bug in the IUT (TA=220).
Change-Id: I410abedcc549495f30b5355d399a85648408a946
This change introduces three similar test cases:
- TC_egprs_pkt_chan_req_signalling,
- TC_egprs_pkt_chan_req_one_phase,
- TC_egprs_pkt_chan_req_two_phase,
which basically send several 11 bit RACH.ind messages to the IUT
containing different variations of EGPRS Packet Channel Request.
Depending on the establisment cause, for each RACH.ind we expect
to receive an Immediate Assignment containing an EGPRS Packet
Uplink Assignment in its Rest Octets.
All test cases make sure that Request Reference in the received
Immediate Assignment messages is set to 127 as required by 3GPP
TS 44.018 (see table 9.1.8.1, note 2b), and the Extended RA IE in
the Rest Octets matches 5 LSBs of the RA value that was sent.
Change-Id: Ib5732956ea160f93d82f06bf82bea45501f439d2
Related: OS#1548
By default, the BYTEORDER for BIT1..N sub-types is set to 'first'.
This may result in incorrect decoding of bit-fields located on the
boundary of two octets. For example:
IA Rest Octets
L... .... = First Discriminator Bit: Low
.H.. .... = Second Discriminator Bit: High
..0. .... = Discriminator bit: EGPRS Packet Uplink Assignment
...0 .... = Downlink/Uplink: EGPRS Packet Uplink Assignment
EGPRS Packet Uplink Assignment
.... 0001 1... .... = Extended_RA: 3 // <------------ (!)
.0.. .... = Access Technologies Request: Not Present
..1. .... = TFI/Multiblock: TFI Assignment Present
...0 0000 = TFI_Assignment: 0
As can be seen, the field 'Extended_RA' in this particular case
occupies 4 LSBs of the first octet and 1 MSB of the second. So
instead of '00011'B, TITAN's RAW codec decodes '10001'B.
For more details, see:
https://www.eclipse.org/forums/index.php/m/1826511/https://bugs.eclipse.org/bugs/show_bug.cgi?id=562488
Change-Id: I481a40daef3eed4a3daa687ad87c4128a13181b4
If mp_pcrf_local_ip is set to a non-empty string, the PGW testsuite
now emulates a PCRF and expects the PGW to perform the related
transactions - so far Credit-Control-Request INITIAL_REQUEST
at session creation, and TERMINATION_REQUST at session deletion.
Change-Id: I5f0c7a66d38e5c8b5f36b45717d49648a14ed7b2
During start of the test case, we must wait until the IUT has
established a DIAMETER/SCTP connection to the testsuite. Implement
this by means of a message on the DIAMETER_UNIT port and an associated
helper function.
Change-Id: I95434307efc67025ee6d373561f6d22398f959c5
So far, we hard-coded the Capabilities-Exchange-Answer for
HSS emulation. As we want to emulate other DIAMETER network
elements, let's parametrize the template as well as the respective
parameters for the emulation component.
Change-Id: Ie30ff1bac40ab3dc6058587f0586b643ff2b0cb6
Ths IMSI on the Gx interface is encoded into a different AVP than
on the S6a/S6d interfaces. Let's make sure our DIAMETER_Emulation
knows both formats.
Change-Id: I299fcc2e01e908914df32fda4fb93b1114402c77
This adds more DIAMETER types to our TTCN-3 module, specifically those
encountered on Gx between PGW and PCRF.
./AVP.sh Base_IETF_RFC3588.ddf BaseTypes_IETF_RFC3588.ddf AAAInterface_3GPP_TS29272_f10.ddf GxInterface_PCC_3GPP_TS29212_f10.ddf S6Interfaces_3GPP_TS29336_f00.ddf MobileIPv6_HA_IETF_RFC5778.ddf RxInterface_PCC_3GPP_TS29214_f20.ddf NetworkAccessServer_IETF_RFC4005.ddf CreditControl_IETF_RFC4006.ddf CxDxInterface_3GPP_TS29229_c30.ddf GiSGiInterface_3GPP_TS29061_d70.ddf
Change-Id: Ibe7321e695337ff62fdc912270f6e13e6c6d6cf2
it seems TITAN no longer supports 'ifpresent' in certain situations,
see https://www.eclipse.org/forums/index.php/m/1826175/#msg_1826175
Let's make the tests fail if we actually run in those cases, but at
least compile fine and be able to execute all the other tests.
Change-Id: Ia401c2d696979c0062872bca8da62c2ea153427b
The .cc and the .ttcn file of RTP_CodecPort_CtrlFunct is currently
copied into the mgw directory and then used. However, those files do
exist in the /library folder as well, lets just link them using
gen_links.sh
Change-Id: I14f80051f6a168b7a8155c6e523c085e974b62b5
Since build #842, both TC_paging_{i|t}msi_80percent started to fail:
"BTS_Tests.ttcn:3051 : Expected 271 pagings but have 284"
BTS_Tests.ttcn:6414 BTS_Tests control part
BTS_Tests.ttcn:3051 TC_paging_imsi_80percent testcase
"BTS_Tests.ttcn:3075 : Expected 543 pagings but have 553"
BTS_Tests.ttcn:6415 BTS_Tests control part
BTS_Tests.ttcn:3075 TC_paging_tmsi_80percent testcase
As it turns out, since If5339c7a91b4e0188194f1cd935798f153974e01
TITAN can decode PCH filling messages with no Mobile Identity.
We should not count them in as_l1_count_paging(), as they're
sent by osmo-bts itself.
Change-Id: I420f36ed000b1c2488fbe500c33a8161e27d20e3
Fixes: OS#4475
We actually need to check if a MI is present, i.e. not omit.
ispresent(omit) => false
isvalue(omit) => true
Change-Id: I0e24e2aaa1f0da7ffdbc93ea4a19491e5dfb39b4