Commit Graph

103 Commits

Author SHA1 Message Date
Francisco Paisana cf89f4300a fix ttcn3 to signal back to stack that a phy config has been completed 2020-10-01 11:25:21 +01:00
faluco dfeed52514 - Rename out_stream function to console. 2020-09-29 17:38:13 +02:00
faluco 62faef7c71 - Replaced all uses of the log::console method. 2020-09-29 17:38:13 +02:00
Andre Puschmann f32d9f8322 ttcn3: call stop in UE dtor
fixes stop issue of TTCN3 DUT
2020-09-28 22:04:23 +02:00
Andre Puschmann 1afc137032
[REBASE] Make PHY non-blocking and fefactor HO procedure (#1753)
* Make PHY non-blocking and fefactor HO procedure

* makes entire PHY non-blocking through command interface
* adds dedicated queue for cell_search/cell_select commands
* refactor HO procedure to run faster, in one stack cycle. Looks closer to the specs
* force ue to always apply SIB2 configuration during reestablishment
* Run update_measurements in all workers

Co-authored-by: Ismael Gomez <ismagom@gmail.com>
2020-09-22 21:47:16 +02:00
Andre Puschmann a36f9bddc2 ttcn3: use RNTI values in RACH provided by tester
this patch extends the SS to use the C-RNTI and Temp CRNTI values
provided by the tester for RAR and Msg3.
2020-09-22 14:03:39 +02:00
Andre Puschmann d90de639e5 ttcn3_syssim: continue when epoll returns -1
this allows to debug and step in the SS
2020-09-21 09:27:07 +02:00
Andre Puschmann 1b266257a1 ttcn3_phy: improve logging of cell measurements 2020-09-21 09:27:07 +02:00
Andre Puschmann 3088cdbb0f ttcn3: fix uncaught exception in SS
fix accessing child element in parsed Json without checking
its existence.
2020-09-14 21:20:59 +02:00
Andre Puschmann 3e824f6370 ttcn3: convert TTI action vector to queue
this makes sures queued events are executed FIFO
2020-09-14 21:20:59 +02:00
Andre Puschmann 624c8142ad ttcn3: refactor cell handling in SS
this rather large patch changes the way cells are handled in the SS.
It moves RLC and PDCP entities to the cell map of the SS, such that each cell
has its own entities. This allows to support HO operation, for example,
in which two cells need to send SRB messages.

It also extends most of the syssim interface to include the cell name
in all commands so they can be applied on the specified cell only.
2020-09-14 21:20:59 +02:00
Andre Puschmann 4650a620d9 ttcn3: refactor cell search and selection in TTCN3 PHY
- make sure only suitable cells are reported/selected
2020-09-14 21:20:59 +02:00
Andre Puschmann 973de8f78d ttcn3_dut: block OS signals before starting log backend
this prevents the backend thread from handling the signals. they
are only handled by epoll running in the main thread.

this fixes #1713
2020-09-14 21:20:00 +02:00
faluco c178e362b8 - Rewrite log management so that a log sink can be swapped for each testcase. 2020-09-10 17:14:51 +02:00
Daniel Willmann 7d0ae71f17 ttcn3_sys_interface: Handle initial cell attenuation
When new Cells are added they can have an attenuation configured
directly. Honor that setting.
2020-08-27 19:18:47 +02:00
Andre Puschmann 5e40bfe72c mac_pdu: unpack and print BSR index as well as BSR value in bytes
before the BSR was extracted but the actual index (between 0 and 63)
was not stored but directly converted into bytes.

for log parsing and debugging it is easier to follow the index
value. this patch therefore adds both values to the log message
and extends the API accordingly.
2020-08-21 12:03:07 +02:00
faluco e5a792d508 - Fix unused variable. 2020-07-31 13:13:15 +02:00
faluco cfd3f51931
Import of srslog into srsepc and srsenb. (#1574)
* - Import of srslog into srsepc and srsenb.
* - Removed logger_file and logger_stdout files.
2020-07-30 19:17:23 +02:00
Andre Puschmann a7911f0dab pdcp,rlc: refactor SDU queueing policy
this patch refactors the SDU queuing and dropping policy of the RLC and PDCP layer.
the previous design had issues when packets have been generated at a higher
rate above the PDCP than they could be consumed below the RLC.

When the RLC SDU queues were full, we allowed two policies, one to block on the write
and the other to drop the SDU. Both options are not ideal because they either
lead to a blocking stack thread or to lost PDCP PDUs.

To avoid this, this patch makes the following changes:

* PDCP monitors RLC's SDU queue and drops packets on its north-bound SAP if queues are full
  * a new method sdu_queue_is_full() has been added to the RLC interface for PDCP
* remove blocking write from pdcp and rlc write_sdu() interface
  * all writes into queues need to be non-blocking
  * if Tx queues are overflowing, SDUs are dropped above PDCP, not RLC
* log warning if RLC still needs to drop SDUs
  * this case should be avoided with the monitoring mechanism
2020-07-13 17:05:28 +02:00
Francisco Paisana 5e06430455 removal of stack handler interface 2020-07-13 11:19:25 +01:00
Francisco Paisana 1a9c04bf2f use of task scheduler handle in pdcp 2020-07-13 11:19:25 +01:00
Francisco Paisana 4f5e65781f created task scheduler class to deal with timers, thread pool, multiqueue, internal tasks 2020-07-13 11:19:25 +01:00
Andre Puschmann 218fa5cf55 ttcn3_dut: fix bug in DUT
reducing the sync queue len to 1 caused an issue when the
PHY was locking the mutex while trying to push a TTI event
on the stack.

instead of signaling the new TTI within the PHY, we now do it outside
in the DUT (after releasing the PHY mutex)
2020-07-02 17:39:43 +02:00
Andre Puschmann a5c0f96fa7 srsue: limit sync queue length to 1 for ZMQ radio
apply same change that we've done on the eNB also on the UE
to avoid the PHY processing TTIs faster than the stack.

Without that, we see lots of those in the logs:

...
08:39:17.580325 [STCK] [W] Detected slow task processing (sync_queue_len=7).
...
2020-06-30 10:36:01 +02:00
Andre Puschmann c15b2ec810 ttcn3_dut: always create timer when enabling TESTMODE B
create timer but dont yet set it. this avoid adding multiple
checks if the timer var is actually initialized.
2020-06-30 10:31:52 +02:00
Andre Puschmann 63f1ea1bec ttcn3: streamline DRB and SRB Tx interface
use the same tx interface with const uint8_t* and length byte instead of std::string
2020-06-29 13:45:42 +02:00
Daniel Willmann 7a25d1d300 Send the RRC_PDU_IND as JSON
Fixes: srslte_ttcn3#13, srslte_ttcn3#15
2020-06-29 13:45:42 +02:00
Andre Puschmann 2c5e159420 ttcn3_drb_interface: remove use of GetArray()
unfortunately, the rapidjson version shipped with Ubuntu 16.04
doesn't support the GetArray() API so we need to use
normal iterator to loop over the array
2020-06-23 12:12:58 +02:00
Andre Puschmann bf6ddbe976 ttcn3_drb_interface: use uint8_t and len as tx interface 2020-06-23 12:12:58 +02:00
Andre Puschmann 7f47edf67f fix issue where PDCP SDU was not going through UE stack to SS
this cause the PDCP echo reply not to appear in MAC/PCAP
2020-06-23 12:12:58 +02:00
Andre Puschmann 07f22326b4 pass current SS TTI when formatting DRB common IND 2020-06-23 12:12:58 +02:00
Daniel Willmann 8652f75510 Don't try to guess the lcid, use what we got 2020-06-23 12:12:58 +02:00
Daniel Willmann 0b88161b3c Send DRB PDUs as JSON to TTCN3 2020-06-23 12:12:58 +02:00
Daniel Willmann 31f1516d74 Use callback to establish connection before sending PDUs in TestmodeB 2020-06-23 12:12:58 +02:00
Daniel Willmann 9aa441f8b6 ttcn3_ue::timer_expired(): Loop through the correct queue
Fixes a segfault when a NULL pdu is passed to loop_back_pdu_with_tft()
2020-06-23 12:12:58 +02:00
Daniel Willmann a3adba0081 Implement DRB establishment and handle rx/tx 2020-06-23 12:12:58 +02:00
Daniel Willmann 999de5f484 ttcn3_helpers: Add function to generate JSON for DRB PDUs 2020-06-23 12:12:58 +02:00
Pedro Alvarez 9c1a7d2cf1 Removed get_bearer_status in PDCP. Renamed get_state/set_state to
get_bearer_state/set_bearer_state.
2020-06-18 12:13:57 +01:00
Daniel Willmann 0e99e2f6eb srsue: Refactor definition to live in its own .cc file 2020-06-02 10:05:38 +02:00
Francisco Paisana b8e6ba02e4 remove warnings related to unused vars and fwd declarations with trivial dtors 2020-04-27 22:19:08 +01:00
Francisco Paisana b506e29b72 removed common ce_typeenum 2020-04-24 11:55:53 +01:00
Xavier Arteaga 58803d1b3e Added UL EARFCN map and UE PHY interface cleanup 2020-04-23 09:00:45 +02:00
Francisco Paisana 6ddedd5972 moved pdu to common mac folder 2020-04-22 10:06:08 +01:00
Francisco Paisana c09f76ed6c unified stack task defer method 2020-04-10 22:30:59 +01:00
Andre Puschmann d35c9e2b89 nas: add support ot UE test loop mode B
extend GW-NAS interface to signal test mode activation.
The method is a noop in the normal GW but is implemented in
the TTCN3 DUT according to TS 36.509 for Mode B
2020-04-10 21:18:43 +02:00
Andre Puschmann 451bbb20e8 ttcn3_ss: refactor AS security activation and use new timed call 2020-04-09 10:55:13 +02:00
Andre Puschmann 54a99d3f66 ttcn3_dut: add basic DRB handler skeleton
the handler is currently just listening on the designated port
and prints the received JSON string
2020-04-04 22:52:18 +02:00
Andre Puschmann 84d80f3e32 ss: use factory method to create PDCP config for SRB 2020-04-03 22:22:04 +02:00
Xavier Arteaga 25312e81b4 SRSUE: cell select RRC MEAS CFO is carried to PHY Cell object 2020-04-02 13:52:23 +02:00
Xavier Arteaga cbaba9c0bd Fix RRC and TTCN3 test 2020-04-02 13:52:23 +02:00