aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2019-10-07MGCP_Test: Relax expected number of packets in TC_one_crcx_receive_only_rtpPhilipp Maier1-2/+9
The testcase TC_one_crcx_receive_only_rtp performs a short RTP transmission that lasts about 1 second. Then it conuts out the number of packets that are transmitted and checks against a fixed value. The compare values are determined using experimentation and reflect the number of bytes/packets that one could expect under normal conditions on an average machine. However, there may be load sitations on the test host that may cause that a too little number of packets is transmitted and the test will fail. Lets reduce the number a bit as the only thing we want to make sure with this is that there are at least some (more than one or two) packets transmitted Change-Id: Ie63445d61268d178940ce8d9cfa984519c42041a
2019-10-07MGCP_Test: Make RTP bwe/oa format conversation tests more robustPhilipp Maier1-5/+19
The following testcases are carried out using two bidirectional connections on one MGW endpoint. MGCP_Test.TC_amr_oa_bwe_rtp_conversion MGCP_Test.TC_amr_oa_oa_rtp_conversion MGCP_Test.TC_amr_bwe_bwe_rtp_conversion The test is programmed in a way that the TTCN3 side of the RTP emulation also works in bidirectional mode. This is prone to run into a race condition when the RX side is activated but the TX side is already transmitting. However, in order to test if the RTP format conversion works we do not need to test both directions at the same time. Its perfectly fine to do the one direction first and then do the other afterwards. Lets also add some guard time while switching the RTP flows. Change-Id: Idf257cfc1ab45a7f0fb6e1a2f6426f1b3145879b
2019-10-07pcu: TC_t3169: Check ul block reaches SGSN before timer expirationPau Espin Pedrol1-0/+10
Change-Id: Ic6fd82dc5037d08278d36aed9b6e72e80da5c42f
2019-10-07pcu: Introduce test TC_t3169Pau Espin Pedrol2-0/+93
Related: OS#3928 Change-Id: I587413a7de7956daee3423057530e4052a55ba88
2019-10-07pcu: Introduce func helper f_imm_ass_verify_ul_tbf_ass()Pau Espin Pedrol1-16/+28
Change-Id: I5b8a7ca5a4d0f905bf68949978811b139568c237
2019-10-07pcu: Allow tests to overwrite pcuif INFO_IND paramsPau Espin Pedrol2-99/+47
Change-Id: I75c746b822184fdcc966d77a7c6a0a6918c236e6
2019-10-07pcu: Introduce some function helpersPau Espin Pedrol1-18/+49
Change-Id: I8608fac4375153d5020df5d05026513a7fe931d6
2019-10-04MSC_Tests.ttcn: fix race condition in f_tc_proc_ss_paging_fail()Vadim Yanitskiy1-2/+3
Sometimes in TC_proc_ss_paging_fail we hit a race condition. The problem is that the paging expiration timer in OsmoMSC is set to 10 seconds by default (see MSC_PAGING_RESPONSE_TIMER_DEFAULT), and in f_tc_proc_ss_paging_fail() we also wait 10.0 seconds. Let's increase our timer value to 20.0 seconds, so there will be more 10 seconds of leeway. Change-Id: I6983e8c0cc8e1d7d1619f127e80063d71a4759d2 Related: Jenkins ttcn3-msc-test build #677
2019-10-04Create dummy gsmtap sink with netcatPau Espin Pedrol2-18/+39
otherwise ICMP messages appear in pcap files and some messages are lost since they seem to be dropped by the kernel. Change-Id: Id69d98db63f8260067ad6bc1525fb05c936912f2
2019-10-04PCU_Tests_RAW.ttcn: add a test case for continuous Timing Advance controlVadim Yanitskiy2-0/+194
Unlike the circuit-switched domain, Uplink transmissions on PDCH time-slots are not continuous and there can be long time gaps between them. This happens due to a bursty nature of packet data. The actual Timing Advance of a MS may significantly change between such rare Uplink transmissions, so GPRS introduces additional mechanisms to control Timing Advance, and thus reduce interference between neighboring TDMA time-slots. At the moment of Uplink TBF establishment, initial Timing Advance is measured from ToA (Timing of Arrival) of an Access Burst. This is covered by another test case - TC_ta_rach_imm_ass. In response to that Access Burst the network sends Immediate Assignment on AGCH, which _may_ contain Timing Advance Index among with the initial Timing Advance value. And here PTCCH comes to play. PTCCH is a unidirectional channel on which the network can instruct a sub-set of 16 MS (whether TBFs are active or not) to adjust their Timing Advance continuously. To ensure continuous measurements of the signal propagation delay, the MSs shall transmit Access Bursts on Uplink (PTCCH/U) on sub-slots defined by an assigned Timing Advance Index (see 3GPP TS 45.002). The purpose of this test case is to verify the assignment of Timing Advance Index, and the process of Timing Advance notification on PTCCH/D. The MTC first establishes several Uplink TBFs, but does not transmit any Uplink blocks on them. During 4 TDMA multi-frame periods the MTC is sending RACH indications to the PCU, checking the correctness of two received PTCCH/D messages (period of PTCCH/D is two multi-frames). At the moment of writing, PTCCH handling is not implemented in OsmoPCU (neither PTCCH/D messages are correct, nor PTCCH/U bursts are handled). Additionally, this change introduces a new message type, which is used for sending commands to the RAW components - RAW_PCU_Command. Commands can be used to (re)configure components at run-time. Change-Id: I868f78e3e95a95f8f2e55e237eea700d7d4726a3 Related: SYS#4606
2019-10-04library/PCUIF_Types.ttcn: add optional parameter for RACH SAPIVadim Yanitskiy1-4/+6
Do not hard-code PCU_IF_SAPI_RACH for RACH.ind templates. We need to be able to specify other SAPIs (PCU_IF_SAPI_PTCCH) in the upcoming test cases for Timing Advance control. Change-Id: I7e2ebcbba5e47cf44f064e429c0517ef3acb15af
2019-10-01PCU_Tests_RAW.ttcn: introduce a test case for PTCCH/D codingVadim Yanitskiy1-0/+40
Change-Id: I887c8922446d0c1a959e6f2678f50e5754f55e83 Related: SYS#4606
2019-10-01library/RLCMAC_Types.ttcn: implement PTCCH/D message codingVadim Yanitskiy1-0/+56
Change-Id: I0e3dc3f4853799f1467a5f6726dac0d43c2eb93d Related: SYS#4606
2019-09-30library/RLCMAC_CSN1_Types.ttcn: implement Packet Power Control/Timing AdvanceVadim Yanitskiy1-0/+59
This message is sent on PACCH by the network to the mobile station in order to update the mobile station timing advance or power control parameters. See 3GPP TS 44.060, section 11.2.13. Change-Id: Ie07000b08918501a99962ad760932a27eacae678
2019-09-29library/GSM_RR_Types.ttcn: fix 'Assignment' vs 'Allocation' confusionVadim Yanitskiy1-3/+3
Change-Id: I8cbdfa891c56fda539d5997201c90f07c7f8307e
2019-09-29library/GSM_RR_Types.ttcn: fix 'presence' in tr_PacketUlSglAssignVadim Yanitskiy1-1/+1
According to 3GPP TS 44.018, section 10.5.2.16 "IA Rest Octets", the first bit of Packet Uplink Assignment defines whether it is a dynamic (1) or single block (0) allocation. Change-Id: If2bee9b1b065fcfedd0e57a6487040cefe2e50c5
2019-09-29PCU_Tests_RAW.ttcn: TC_cs_lqual_ul_tbf: properly check for Dynamic AssignmentVadim Yanitskiy1-1/+6
According to 3GPP TS 44.018, section 10.5.2.16 "IA Rest Octets", Packet Uplink Assignment can be either of the following types: - single block allocation, - dynamic allocation. The current version of TC_cs_lqual_ul_tbf does not handle single block allocation, so we need to make sure we got a TBF with dynamic allocation. Change-Id: I05cf0c62d21094fb53a9e5e54b404f3cf972a182
2019-09-29PCU_Tests_RAW.ttcn: refactor TC_pcuif_suspend: use the RAW PCU componentsVadim Yanitskiy2-22/+27
This change is a step towards getting rid of the old test case infrastructure. Note that a call to f_bssgp_establish() is moved out of f_init_bssgp() to the test case's body. Change-Id: If15339f02c5188e60fcb47ae6dc0ac289efa2896
2019-09-28msc: add f_tc_lu_and_mt_sms_paging_repeatedAlexander Couzens2-0/+53
The testcase will ensure paging is repeated by the MSC. Repeating will improve the reachability of MS when a Paging is lost or not received because the MS is moving between states. Change-Id: Ib5bf0b62e0639436cdcba03acbaedf1458e18873
2019-09-27PCU_Tests_RAW.ttcn: add test case for UL link quality adaptationVadim Yanitskiy2-1/+102
This change introduces a new test case TC_cs_lqual_ul_tbf, which is aimed to test the feedback of OsmoPCU on changing link quality measurements in Uplink Data blocks during an active TBF. Change-Id: Ia78d93e43a3c41b0b30e70df20a2da31077fd05f Related: SYS#4607
2019-09-27PCU_Tests_RAW.ttcn: introduce TC_ta_rach_imm_ass to test initial TAVadim Yanitskiy1-0/+78
The aim of this test case is to test the correctness of Timing Advance at the time of TBF establishment. In particular, the test case sends several Access Bursts (RACH.ind) with increasing 'qta' value, what causes OsmoPCU to allocate a TBF (Temporary Block Flow) for each RACH.ind and send DATA.req with Immediate Assignment on AGCH, containing the expected Timing Advance value. Change-Id: I21f76ae723519c0eb54515922a05ca8045b00ade Related: SYS#4606
2019-09-27library/PCUIF_CodecPort.ttcn: strip padding bytes from PCUIF_dataVadim Yanitskiy1-0/+10
In Ieefa61232eb215a19a02e490255332e28e23b8f8, I had to revert I5808954b5c67c3239e795e43ae77035152d359ef, because that change broke encoding of messages on the PCU interface. Since we cannot use 'PADDING' attribute until its implementation is fixed in TITAN, let's work this around by stripping padding bytes manually in UD_to_PCUIF(). Change-Id: Ibd698094c897d395208e80189457444a91018beb
2019-09-27library/RLCMAC_CSN1_Types.ttcn: add UL Packet Resource RequestVadim Yanitskiy1-0/+72
This change implements UL Packet Resource Request message as per 3GPP TS 44.060, section 11.2.16 (only mandatory fields), and a send template 'ts_RlcMacUlCtrl_PKT_RES_REQ' for it. Change-Id: I0d688beb4112d6db10ac89e2966b555e74887a6e
2019-09-27Introduce PCUIF, BTS and ClckGen components for RAW PCU test casesVadim Yanitskiy3-0/+483
The problem of existing test cases is that they mix IUT (i.e. OsmoPCU) with OsmoBTS (osmo-bts-virtual) and OsmocomBB (virt_phy). This approach allows to avoid dealing with TDMA clock indications and RTS requests on the PCU interface - this is done by OsmoBTS. On the other hand, our test scenarios may be potentially affected by undiscovered bugs in OsmoBTS and the virt_phy. In order to solve that problem, this change introduces a set of new components and the corresponding handler functions: - RAW_PCUIF_CT / f_PCUIF_CT_handler() - PCU interface (UNIX domain socket) handler. Creates a server listening for incoming connections on a given 'pcu_sock_path', handles connection establishment and message forwarding between connected BTS components (see below) and OsmoPCU. - RAW_PCU_BTS_CT / f_BTS_CT_handler() - represents a single BTS entity, connected to OsmoPCU through the RAW_PCUIF_CT. Takes care about sending System Information 13 to OsmoPCU, forwarding TDMA clock indications from a dedicated ClckGen component (see below), and filtering the received messages by the BTS number. Implements minimalistic scheduler for both DATA.ind and RTS.req messages, so they are send in accordance with the current TDMA frame number. - RAW_PCU_ClckGen_CT / f_ClckGen_CT_handler() - TDMA frame clock counter built on top of a timer. Sends clock indications to the BTS component. All components communicate using TTCN-3 ports and explicitly defined sets of messages (see RAW_PCU_MSG_PT). One noticeable kind of such messages is events (see RAW_PCU_Event and RAW_PCU_EventType). That's how e.g. the PCUIF component can notify the BTS component that OsmoPCU has just connected, or the BTS component can notify the MTC that SI13 negotiation is completed. Events may optionally have parameters (e.g. frame-number for TDMA_EV_*). Furthermore, the proposed set of components allows to have more than one BTS entity, so we can also test multi-BTS operation in the future. +-----+ +----------+ +---------+ | MTC +---------------+ PCUIF_CT +------+ OsmoPCU | +--+--+ +----+-----+ +---------+ | | | | | | | +-----------+ | +---------------+ +----+ BTS_CT #1 +------+ | ClckGen_CT #1 | | +-----+-----+ | +-------+-------+ | | | | | +---------------------------+ | | | +-----------+ | +---------------+ +----+ BTS_CT #2 +------+ | ClckGen_CT #2 | | +-----+-----+ | +-------+-------+ | | | | | +---------------------------+ | | | +-----------+ | +---------------+ +----+ BTS_CT #N +------+ | ClckGen_CT #N | +-----+-----+ +-------+-------+ | | +---------------------------+ Change-Id: I63a23abebab88fd5318eb4d907d6028e7c38e9a3
2019-09-26SABP CodecPort and SABP_AdapterHarald Welte4-0/+348
These modules allow TTCN-3 tests to interface with SABP peers over TCP. Change-Id: I6c3cfff044ec447d3e58b646c85ccb0531843b51
2019-09-26SABP (Service Area Broadcast Protocol) definitionsHarald Welte9-0/+1747
Using ASN.1 syntax copy+pasted from 3GPP TS 25.419 version 15.0.0 Release 15 Change-Id: Iab44cca10a664bbe2823a4183bca055ac8851137
2019-09-24MSC_Tests: Expect SGsAP-SERVICE-ABORT-REQUEST on paging timeoutPhilipp Maier1-3/+21
When a paging for a CS-Call times out the MSC/VLR is expected to send an SGsAP-SERVICE-ABORT-REQUEST to the MME to indicate that the paging has timed out. This is not taken into accound yet by TTCN3 test TC_sgsap_paging_and_nothing Related: OS#3614 Depends: osmo-msc I3f8f153afe24cf2efa245713509bdc8488902877 Change-Id: I99950a17ccf26aaa0eebded5480f33be4c57586a
2019-09-24Cosmetic: Fix commentPhilipp Maier1-3/+3
Change-Id: Ie1c80d951ea2f8e3e154beb5623aa0d5f5874a60
2019-09-18Revert "MGCP: fix pattern warning"Neels Hofmeyr1-5/+5
For me this change causes MGCP parsing errors: setverdict(fail): pass -> fail reason: "Could not extract parameters for code "C"" Apparently the \r is after all necessary to parse MGCP. Maybe the '\r' is implicit when an '\n' occurs, but the non-SDP part of MGCP has *only* '\r' line breaks. This reverts commit a9a52fff15227710e1a3a2e6222a388a3da11168. Change-Id: I81d105b951590310c67f14f0b5d0c2777e206c5e
2019-09-18MGCP: fix pattern warningMax1-5/+5
Remove implied \r to fix following warnings: "Duplicate character `\r' in the character set. Please note the \n includes the \r implicitly. Use \q{0,0,0,10} if you would like to match the LF only." Change-Id: I99948e4b82b5b4bd5b8f7c1a4c60a97fcab3c0eb
2019-09-16Require to receive RANAP_CommonId after RANAP_SecurityModeCompleteAlexander Couzens1-0/+2
The SGSN will send a CommonId after it has sent SecurityModeComplete to support paging coordination in the RNC. Change-Id: I82a05cab2aeea25eec699f726b2f5c4b3eef7560
2019-09-16sgsn: replace variable bssgp with ran_indexAlexander Couzens2-15/+15
Since bssgp also been used for Iu connection, rename the variable to ran_index. Be consistent and use the same variable name everywhere. Change-Id: Ib278410bc49f07387873740ed8b411a815d940a8
2019-09-16sgsn: replace variable gb_idx with ran_indexAlexander Couzens2-55/+55
Since gb_idx also been used for Iu connection, rename the variable to ran_index. Be consistent and use the same variable name everywhere. Change-Id: Ia119feee6a442c76dc337e75c07f4a385cd5e1df
2019-09-16sgsn: replace variable gb_index with ran_indexAlexander Couzens1-7/+7
Since gb_index also been used for Iu connection, rename the variable to ran_index. Be consistent and use the same variable name everywhere. Change-Id: I06b0c6184daeb886e8bd28d50bf18909d9244dc6
2019-09-16sgsn: replace variable bssgp_index with ran_indexAlexander Couzens1-10/+10
Since bssgp_index also been used for Iu connection, rename the variable to ran_index. Change-Id: Iec2e8510b749602f0ebb9b4976957c9c5ce3f307
2019-09-16sgsn: TC_attach_check_complete_resend: Expect LU sent to HLRPau Espin Pedrol1-0/+2
SGSN is expected to submit an LU after initial GMM Auth Change-Id: Ie2e8f5b9740c7429f5f0bf28e35707a61f23b565
2019-09-14library/L1CTL_PortType.ttcn: use templates from GSM_RR_TypesVadim Yanitskiy2-19/+9
Get rid of template t_IMM_ASS, which is a part of L1CTL_Types.ttcn. Prepare generic (for both CS and PS) template on top of tr_IMM_ASS, and use it in f_L1CTL_WAIT_IMM_ASS(). Change-Id: I3a410ec3c41e3eefd23071bfb0d80feda82177a5
2019-09-14library/PCUIF_Types.ttcn: mark PCUIF_Text as 'null_terminated'Vadim Yanitskiy1-1/+1
This is a TITAN specific attribute that allows to indicate that a field of type 'charstring' is '\0'-terminated. Without that attribute, 'PCUIF_Text' is mixed with the padding characters: "0.7.0.5-df0f" & char(0, 0, 0, 0) & char(0, 0, 0, 0) & ... Change-Id: Ic81fff4c82871bb29a2385b9ee7a2dd98f67dfb0
2019-09-13Initial TTCN-3 test suite for osmo-remsimHarald Welte15-1/+2252
This adds shared infrastructure and initial test suites for osmo-remsim-{server,client,bankd}. Change-Id: I00034d3a991f0f881cfd8ff0bfc4557113daf830
2019-09-12sgsn: add TC_geran_attach_iu_rauAlexander Couzens1-1/+26
MS <-> SGSN: Successful Attach over Geran MS <-> SGSN: Routing Area Update over Iu The test case will crash the SGSN and is not included in the default run. Change-Id: Id23244aa6ca329579300b66b73ce238bd4d01eef
2019-09-11Revert "library/PCUIF_Types.ttcn: inform RAW codec about PADDING in PCUIF_data"Vadim Yanitskiy1-7/+2
This reverts commit dd6d5d1baa62dc9d50fa90ef01fccb8a10284d53. The PADDING seems to be a very experimental feature of TITAN. It works very well for decoding of messages, so the padding bytes are getting recognized as expected, but encoding is broken. Not only the data buffer and its length are encoded in a wrong way, but other fields too. Change-Id: Ieefa61232eb215a19a02e490255332e28e23b8f8
2019-09-11sgsn: add TC_iu_attach_geran_rauAlexander Couzens1-0/+23
MS <-> SGSN: Attach over Iu MS <-> SGSN: Routing Area Update over Geran The tess case will crash the SGSN and is not included in the default run. Change-Id: Ie043639638a640a2041324fc910964385a41c77d
2019-09-11sgsn: extend f_routing_area_update() to support IuAlexander Couzens1-5/+27
Allow Iu tests to use f_routing_area_update() Change-Id: Ic03952a04c00a4fc437ef39c5ee046549c122c8b
2019-09-11sgsn: make the ranap interface optionalAlexander Couzens2-11/+24
Allows to use the test cases without STP Change-Id: I43df456c2d5aa3ba3ea9e34da3f0f96b55f7c9a1
2019-09-11sgsn: add Iu Attach RequestHarald Welte2-0/+47
MS -> SGSN: Attach Request IMSI MS <- SGSN: Identity Request IMEI MS -> SGSN: Identity Response IMEI MS <- SGSN: Auth Request MS -> SGSN: Auth Response MS <- SGSN: Attach Accept MS -> SGSN: Attach Complete Change-Id: I66069e31c30d33934ad57cc2b8794f56ffd5c7d6
2019-09-11L3 Templates: PDU_L3_MS_SGSN: export ptmsi in template signatureAlexander Couzens1-2/+3
Iu packets needs to contain an ptmsi as tlv in difference to Gb. Change-Id: I7ba51a28524261dd1c7f4f2586ee6ebc970ea944
2019-09-11sgsn: introduce f_send_l3() to allow one function for Gb & IuAlexander Couzens1-48/+132
f_send_l3() replaces f_send_l3_gmm_llc() to have one function which sends L3 messages for Iu and Gb at the same time. This allows to share most of the tests between Iu & Gb. Change-Id: If47ad2be459ca7b87d9071d9ff020a51821e4433
2019-09-09library/LAPDm_RAW_PT.ttcn: use templates from GSM_RR_TypesVadim Yanitskiy1-16/+24
Get rid of t_IMM_ASS_TBF_UL_DYN, use tr_IMM_TBF_ASS instead. Also, use both tr_PacketUlDynAssign and tr_PacketUlSglAssign for matching UL TBF assignment. Change-Id: Icb7dab04a1e2a833c14754d872bd4b85af3d58a5
2019-09-09library/GSM_RR_Types.ttcn: introduce generic tr_IMM_TBF_ASSVadim Yanitskiy3-35/+33
Both 't_IMM_ASS_TBF_DL' and 't_RR_IMM_ASS_TBF_DL' templates were introduced for a specific task - matching Packet Immediate Assignment (Downlink TBF) by TLLI. In the upcoming changes we will also need to match Uplink TBF assignment, and more generic fields such as Timing Advance. Let's add a generic template for Packet Immediate Assignment and allow passing IaRestOctets as a parameter. Change-Id: I492cf990820ba153ea71469b8b623e56e031e549
2019-09-09library/GSM_RR_Types.ttcn: refactor IaRestOctHH codingVadim Yanitskiy3-63/+119
According to 3GPP TS 44.018, section 10.5.2.16, IA Rest Octets IE starting with 'HH' bits may contain one of the following CSN.1 encoded components: 7 6 5 4 3 2 1 0 Bit Numbers H H 0 0 . . . . Packet Uplink Assignment H H 0 1 . . . . Packet Downlink Assignment H H 1 . . . . . Second Part Packet Assignment We already have (partial) support for the first two, while the last type has not been supported so far. Let's add it. Also, this change introduces several templates for IA Rest Octets IE and some of its components mentioned above. This would allow us to abstract the API users from dealing with further changes, e.g. adding a coding attribute 'CSN.1 L/H' and missing fields. Change-Id: Ib3a21e7c5fa1cad4466e3a09fa70540de7f6ecc5