Commit Graph

322 Commits

Author SHA1 Message Date
Harald Welte aca6e07cf7 L1CTL: Have proper timeout during reset
Change-Id: Ib6b33f522eddb1377e9857cc5d88363852732b46
2018-03-12 16:04:33 +01:00
Harald Welte 3757e60d6f L1CTL: make sure to self.stop in all setverdict(fail) cases
Change-Id: I2013a8ec0641d8ef935e6615c1bde599f42db260
2018-03-12 16:04:31 +01:00
Harald Welte f8df4cb339 L1CTL/bts: Fix tons of compiler warnings by splitting rx+tx templates
Change-Id: I9c8be0856516a6a168795c792f76d14c08c3dabb
2018-03-12 16:04:22 +01:00
Harald Welte cc5c1152cc WIP: Work towards a more real DL TBF receiver implementation
Change-Id: I300312734d99f2b8a406f39e04b4f738940f7579
2018-03-12 16:04:15 +01:00
Harald Welte b669ee029e pcu: First DL TBF hack
Change-Id: Ib3f09e125a7a4492d9072f8e9f5896eaac7ed03b
2018-03-12 15:50:03 +01:00
Harald Welte 370527372d L1CTL: Add f_L1CTL_PARAM for timing advance + tx power control
Change-Id: I30051804ae9cc62b5ad8c8a11a53d96489b8a52f
2018-03-12 14:29:14 +00:00
Harald Welte f8e7f135d6 L1CTL: Fix passing 'combined' and 'offset' from f_L1CTL_RACH()
The function didn't pass its arguments down into the actual L1CTL
port and instead provided '0' into t_L1CTL_RACH_REQ

Change-Id: I5af9654e1fd903420b0dfe7f2db0a6572803d9ef
2018-03-12 14:28:49 +00:00
Harald Welte 8fe9eba3eb L1CTL: Try FBSB up to 10 times in f_L1CTL_FBSB()
For some reason, even with a perfectly valid/strong signal, the FBSB
task sometimes fails in the firmware.  Let's wrap a loop around
it and try up to 10 times before failing the test.

Change-Id: I2262278dcd7e2f0cf4d293e0549527866522bece
2018-03-12 14:28:41 +00:00
Harald Welte 344c0cf6cf L1CTL_Types: Fix bit-ordering in FBSB_REQ
Change-Id: Idbfdf1e855489c37a7212573ef51bd7fc63f24f7
2018-03-12 14:26:54 +00:00
Harald Welte 439e546539 RLCMAC_EncDec: Fix handling of optional LlcBlockHdr
Whenever the OPTIONAL<> construct is used for a member of a record,
we have to add an extra set of parenthsis in order to avoid bogus
"has no RAW decode method" error messages.

It seems the OPTIONAL inherits from Base_Type which will print
"which has no RAW decoding method" from its RAW_decode().

Change-Id: Idfaa11db0e2db4be144800b5bccc44d0515220d7
2018-03-12 14:23:57 +00:00
Harald Welte 060e27a476 gprs_gb: working UL TBF with segmentation
Change-Id: I0f93246f02e1bee2e1e9db62af5e1e3559c415e9
2018-03-12 14:23:57 +00:00
Harald Welte 7024baa66c gprs_gb: working Uplink PACKET_CONTROL_ACK against OsmoPCU
Change-Id: I2c7d0eb9371911e28f328caeaed63cb8ec311ac1
2018-03-12 14:23:57 +00:00
Harald Welte edcdd90c49 BSSGP_Emulation: Fix automatic BVC flow control ACK in SGSN role
This code had been intended to be used, but commented out, and
never really been completed or tested.

Change-Id: Iaa573219548f2a6a2eb13408fec65c55f9e88ddb
2018-03-03 22:40:01 +01:00
Harald Welte 1cd673dd01 rlcmac: Fix name of RRBP_Nplus21_or_22_mod_2715648
It's RRBP_Nplus12_or_22_mod_2715648 not RRBP_Nplus22_or_22_mod_2715648

Change-Id: Idb2ab447611a0571292b8cb31e9f279d0e98966f
2018-03-03 22:40:01 +01:00
Harald Welte c27f684998 Gb: avoid warnings about not-running timers
If we have  T.timeout  clause in an alt/altstep, we should put
[T.running] as guard expression to avoid warnings about matching
on timers never started - at least for timers where this is a valid
situation.

Change-Id: I96db5c288e0b9c47539cccab8ae7a886d0b9fff3
2018-03-03 22:40:01 +01:00
Harald Welte acc93ab873 GSM_Types: Switch TLLI from uint32_t to OCT4
The TLLI is not really a number, but an opaque 4-byte value.

Change-Id: I0901340a2211eeeb899f312bcc60573fec11f220
2018-03-03 22:39:56 +01:00
Harald Welte 3a40ec7acb l1ctl: Add L1CTL_DATA_ABS_REQ for PACKET UPLINK ACK
Change-Id: If2109ea87b15a0ed21b39ab7502813acb1d5dd1e
2018-03-02 20:45:04 +01:00
Harald Welte bacca28a71 gb: Fix IEI of t_BSSGP_CAUSE()
Change-Id: I04b1744ad3e826592182de38e724191b8abd5a50
2018-03-02 16:03:59 +01:00
Harald Welte 958f8b4fa4 hlr: Add testcases for PURGE_MS procedure
Change-Id: I9d54d5e4b6fe24d3ee710b57e0c69a30b89d3450
2018-03-02 08:56:59 +00:00
Neels Hofmeyr 6338247395 msc: cosmetic: ts_CM1 template: parameterize esind (Early classmark Sending)
Change-Id: If841fc2c9996bef5b962519a325e18f1c13d2b0f
2018-03-02 00:35:26 +01:00
Harald Welte 8f6ac16a92 gsup: Make tr_GSUP_ISD_REQ more tolerant
We permit other subscriber data that's not the MSISDN, but we require
the MSISDN be somewhere within the IEs of the ISD_REQ

Change-Id: Ic63cd5c9a5e9ed46c70f7d7869b4ece281b97e44
2018-03-01 22:43:28 +01:00
Harald Welte c2c52554ee hlr: More test coverage
Change-Id: Ic93a2e7498343abcb709d7018c4d49811252342c
2018-03-01 21:20:39 +01:00
Harald Welte 3b4c356d7b gtp: Add some CAUSE enum definitions
Change-Id: Id52eb710201428ba180ca6ffd5129f3126e54850
2018-03-01 10:01:58 +01:00
Harald Welte ef3e1c9a89 bts: Update towards most recent "laforge/trx" branch
The existing BTS testing code was based on a ~1 week old version
of trxcon+fake_trx from osmocom-bb.git fixeria/trx branch, which
has meanwhile evolved:

* port number change for TRX protocol
* FAKE_TIMING -> FAKE_TOA
* we can now expect responses to our UDP control commands

Let's adapt the testsuite to those changes

Change-Id: I6d0122202e5d23308421e76b75e608d206aab56e
2018-02-28 23:44:00 +01:00
Harald Welte 883340c719 bts: Add PCU Interface testcases
Change-Id: I671b8e2c61705485f46602f648eb5fdc01db12f7
2018-02-28 21:05:51 +00:00
Harald Welte c3a3f45268 Add new f_timer_safe_restart() function for warning-safe restart
TITAN will print warnings if a still-running timer is res-started.
It will also warn if a not-started timer is stopped, so we need
a conditional stop + start if we want to avoid any warnings in a
convenient way.

Change-Id: Iee83b4905cce3a84eb007ffd189b55f4b54f7cb6
2018-02-27 22:32:54 +01:00
Harald Welte 6fc784e3c8 L1CTL: Add message segmentation helper via getMsgLen()
As L1CTL is using a stream socket, we need to give the UNIX_DOMAIN
port some clue as to where our L1CTL message boundaries are in the
stream.

This requires a patched UNIX_DOMAIN_SOCKETasp test port with the
following commit applied:

commit 655cb4ab2ac006b3a73d1b679c83081d9743410a
Author: Harald Welte <laforge@gnumonks.org>
Date:   Sun Feb 25 23:25:46 2018 +0100

    Add "getMsgLen" function similar to IPL4asp_PT

Change-Id: Iab33f57cb4311180e521a76307a552d16287b062
2018-02-27 22:32:49 +01:00
Harald Welte 262f122ab4 Helper functions in GSM_Tyes and Osmocom_Types
Change-Id: Ibd8f215a7cd4564126503c3552bbcceb6d31c779
2018-02-25 16:33:38 +01:00
Harald Welte 82ccef7c18 Merge duplicate SI3 in GSM_RR_Types and GSM_SystemInformation
Let's have one SI3 definition rather than multiple...

Change-Id: I3c4754c9a69cb2fa51d88ef6358d5399dbb29860
2018-02-25 16:17:33 +01:00
Harald Welte 9912eb5824 bts: Add TC_ipa_crcx_sdcch_not_active (CRCX on SDDCH)
Change-Id: I8286cc5c36f4abff301f54f831adb672a1661a79
2018-02-25 13:30:15 +01:00
Harald Welte 2a7e7163c1 RSL: Make ts_RSL_IPA_DLCX require a conn_id value
The way how TTCN-3 templates work it's not possible for us to have
a parametric template for both generating DLCX with conn_id and without :(

Change-Id: Icb772ca5b9661ab39b1c161fa4ebc70544275d8f
2018-02-25 13:00:42 +01:00
Harald Welte 30527454ac RSL: Add more IPA related templates
Change-Id: I432c75c25e20dd211c8a429bfd9d407999f6e99a
2018-02-25 13:00:03 +01:00
Harald Welte 6cb400ae89 RSL: ts_RSL_IPA_MDCX_ACK contains *local* IP+Port, not remote
the IPA_MDCX_ACK contains the BTS-side IP/Port, despite the MDCX
containing the BSC-side IP/Port!

Change-Id: Ided8acff720aeb52232d17c8f142a97557f4b424
2018-02-25 12:59:59 +01:00
Harald Welte 8bd0f82b00 RSL_Types: Remove RT_PT2 from tr_RSL_IPA_CRCX_ACK
The way how TTCN-3 templates work we cannot use a template parameter
to decide if we want to match only on messages that contain a matching
RTP_PT2, or (alternatively) on any messages whether or not they have
a RTP_PT2 IE at all :(

Change-Id: I7a4f5d7e1d44994316717da5b769e278ea188b12
2018-02-25 12:59:56 +01:00
Harald Welte 02369801d5 Osmocom_Types: Add c_UINT16_MAX / c_UINT32_MAX
Change-Id: I99f3b08b07a46042a8c1e13a420743c58e94603b
2018-02-25 12:59:54 +01:00
Harald Welte a871a38a18 bts: Add TC_ipa_dlcx_not_active()
Change-Id: I5c8eec8ba56b35aa8d7df87649389392ffd1a78c
2018-02-25 12:59:36 +01:00
Harald Welte 01d982cced bts: low-level RSL ERROR REPORT Testing
Change-Id: If1cc6c672d5a0cf8eb8ef23b96eb1e80ceef30f1
2018-02-25 12:59:33 +01:00
Harald Welte 68e495b48a bts: Add paging related tests
We're testing at 80% and 200% of PCH capacity, both for either IMSI-only
or TMSI-only paging requests.  The way how we test ensures:

* the expected number of paged mobile identities end up on the Um interface
* we implicitly check the queuing limit of 200 paging records by
  overflowing it in the 20-seconds-of-200%-load cases
* we implicitly check the batching of mobile identities into different
  paging types
* we test the PCH load reporting over RSL

As a side note, in case you were ever wondering what's the expected
paging throughput / capacity, there are now helper functions to compute
it.  For our combined CCCH/SDCCH4, it's about 16 IMSIs per second or
about 32 TMSIs per second.

Change-Id: I0b80b72bdab3d80d915296d70e1174623fbd8610
2018-02-25 12:58:36 +01:00
Harald Welte 7484fc41b4 bts: Type Definition + Template for SI3; Send SI3 at start of test
The BTS needs some of the SI3 parameters like BS_AG_BLKS_RES for
internal computations, so make sure we send it after the connection
has been established.

Change-Id: I5dc3724f79e669f52593cd776806d84b4dd4bf5c
2018-02-25 12:57:21 +01:00
Harald Welte 874c22393e RSL_Types: Add ts_RSL_BCCH_INFO() for sending BCCH_INFO
Change-Id: Id9ad914f67137e38c7ad259c7a74de0e98c8f50d
2018-02-24 04:52:43 +01:00
Harald Welte 34252c56c7 RSL_Emulation: Make CCHAN_PT bi-directional
So far we only dispatched received Common Channel messages from the
wire / IUT into the CCHAN_PT. Now the tester can also send Common
Channel messages back to the wire / IUT.

Change-Id: If3d5516c14ea3fbbd8c3de35eaa8ea5f18a00933
2018-02-24 04:51:50 +01:00
Harald Welte 5377d2f730 GSM_Types: add rxqual2ber and rxlev2dbm + ivnerse functions
Change-Id: I6293f6a9b73d5614cbb61c64617af4dd8afc1e73
2018-02-24 01:03:09 +01:00
Harald Welte 7f26f5524d Add TRXC (OsmoTRX Control) protocol types + codec port
Change-Id: I3b5e81693e5cf8ee8a2c360bde8b16c5276d2297
2018-02-24 01:03:09 +01:00
Harald Welte 39b47be947 RSL_Types: Add tr_RSL_MEAS_RES_OSMO()
This is a template that goes beyond the 3GPP specs, as it expects
presence of certain optional IEs which we know are always present
in the OsmoBTS case.

Change-Id: Ibf37565ab4fe70515b598a2757953628aa780241
2018-02-23 19:03:54 +01:00
Harald Welte 7d7d26cb04 L1CTL: Quickly fail in case of non-successful FBSB.resp
Change-Id: I9d1fdb196eee7b3b06f2d3622e59d58f402dcd0d
2018-02-23 19:03:54 +01:00
Harald Welte a82f7e6098 L1CTL: Increase FBSB timeout to ~1s
Change-Id: Id2bb23ae966bd9aa5fc36bfa8ba41d7f136ac88f
2018-02-23 19:03:54 +01:00
Harald Welte eb1e6813c7 GSM_RR_Types: Fix inverted "valid" logic in measurement report
Change-Id: I3ebdd30639b45ba1a9c0fbda7bf2775035833300
2018-02-23 19:03:54 +01:00
Harald Welte 2691adf843 RSL: Add definitions for RSL MEAS REP parsing/encoding
Change-Id: Ib04b81891def2c15a62767a29b53c0fb605d45be
2018-02-23 19:03:54 +01:00
Harald Welte cbc947f709 GSM_RR_Types: Add ts_IMM_ASS and ts_MEAS_REP
which allows us to send RR IMMEDIATE ASSIGNMENT (DL/AGCH) and
RR MEASUREMENT REPORT (UL/SACCH) messages from tests.

Change-Id: Ic75041e84c15c77805ecafb823bf7108920675ca
2018-02-22 00:29:00 +01:00
Harald Welte ce6dc4494c L1CTL: Add optional link_id argument to t_L1CTL_DATA_IND()
Change-Id: Ib4cf42825da1034966086d9232273c2328a94947
2018-02-22 00:29:00 +01:00