Commit Graph

6033 Commits

Author SHA1 Message Date
Andre Puschmann f6d3467884 ringbuffer: fix timeout calculation for timed read
with ZMQ RF, we've seen the radio returning -1 and traced
the issue down to the ringbuffer.
in fact, pthread_cond_timedwait() returned 22 (EINVAL) indicating
a wrong timeout value. The issue was likely an overflow
in the timespec parameter. This patch checks for the return
value of pthread_cond_timedwait() and also calculates the
nanosecond wrap around for the timespec
2020-07-07 23:04:05 +02:00
Andre Puschmann aed38a6028 rf_zmq: increase default ZMQ timeout to 2s
amarisoft flags an RF error and exits after not receiving samples
for the radio. Running with ZMQ in the RFCI, the UE sometimes needs more
time to start up due to slow processing and no fftw wisdom file and
then Amarisoft eNB times out. This gives the whole process a little
bit more time. Should we still find it too short we may increase
it further.
2020-07-07 23:04:05 +02:00
Andre Puschmann b3e92883d4 rlc_um: reduce log level when provided space is not enough to build PDU
this is not a warning case as it can always happen. reduce level to info therefore.
2020-07-07 18:01:39 +02:00
Andre Puschmann 95f5093432 rlc_am: hold lock while handling new PDUs
This lock was removed in 1cbf7eac because it was considered unneeded.
However, as can be seen in issue #1503, we need to protect the access
to rx_window, for example.

Issue #1503 shows a stack trace where a PHY worker generates a status PDU.
While holding the mutex to access rx_window, the stack thread on the
other hand, happily accesses the rx_window member without acquiring
the lock. This commit protects all handle_*() functions in write_pdu().

This reverts commit 1cbf7eac04.
2020-07-07 10:41:14 +02:00
Francisco Paisana e550bf726d updated fsm to allow enter methods to receive event that caused them 2020-07-06 14:25:03 +01:00
Andre Puschmann 6f5da19312 pdcp: similar to tx, also reduce log for Rx
instead of logging PDU received from below, and SDU that is forwarded
to above, only log the PDU in rx in info mode.

The next layer will do the same and log the PDU received (which is the SDU coming from here)
so there is now loss of information in the logs.
2020-07-05 16:56:06 +02:00
Andre Puschmann 1e4eae7395 nas: log estimated count instead of local rx_count when logging integrity check result 2020-07-05 16:56:06 +02:00
Andre Puschmann bd0c13aad0 ue_stack: bump priority of stack thread
the stack thread should really run with the next highest priority after
sync + phy workers to make sure it gets enough CPU
2020-07-05 16:56:06 +02:00
Andre Puschmann 6654453e22 pdcp: reduce amount of log messages during tx
drop logging encrypted PDU seperately. Instead, only log formatted
PDCP PDU before passing to lower layers
2020-07-05 16:56:06 +02:00
Francisco Paisana 08f9801c76 remove requirement for rrc to be idle and nas attached to run reselection 2020-07-03 18:35:53 +01:00
Francisco Paisana d12b037e0d make cell reselection periodic and with period of 20msec 2020-07-03 18:35:53 +01:00
Francisco Paisana 504e3a1b7a fix max retx configuration in scheduler and updated tester to catch the error 2020-07-03 17:34:37 +01:00
Andre Puschmann 2012fdcbae gtpu: remove unused vars 2020-07-03 16:42:46 +02:00
Andre Puschmann 4c667bd478 rrc_ue: improve logging of CA activation
* check Pcell has configured Scells when entering function
* log if UE doesn't support CA (only if scells are configured)
* log info about CA activation only after all checks have passed
* fix typo
2020-07-03 16:42:46 +02:00
Francisco Paisana 510687766f added comments in rrc cell select test 2020-07-03 14:00:14 +01:00
Francisco Paisana c6f422d23e improved cell selection test in srsue::rrc 2020-07-03 14:00:14 +01:00
Francisco Paisana 3b1f2719dd return error from cell selection if unable to select serving cell 2020-07-03 10:26:49 +01:00
Francisco Paisana 3e016b8095 select serving cell during cell selection if it is stronger than neighbors 2020-07-03 10:26:49 +01:00
Xavier Arteaga 6f03ce7e11 srsLTE: minor radio fix 2020-07-03 10:48:20 +02:00
Xavier Arteaga 67543a73bb Radio: fix erroneous offset 2020-07-03 10:48:20 +02:00
Xavier Arteaga 8966db31d8 srsLTE: Radio benchmark plots all ports 2020-07-03 10:48:20 +02:00
Andre Puschmann ff96336f91 rlc_um: fix reestablishment for sending UM entity
we've reset the rx state variables during reestablishment but not
the tx state variable.
2020-07-02 17:52:55 +02: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
Francisco Paisana 84f34bc736 changed to a label filtering approach for ctest 2020-07-02 15:56:59 +01:00
Francisco Paisana ebb8f18000 set some extra tests with the prefix "long_" 2020-07-02 15:56:59 +01:00
Francisco Paisana c6323478d2 remove unecessary sleeps in mac test, and add long_ prefix in long tests 2020-07-02 15:56:59 +01:00
Pedro Alvarez 772ab89391 srsUE: Fix for NAS overflow counter computation. 2020-07-02 14:52:21 +01:00
Ismael Gomez 0382933cb1 Select serving cell if PHY not in sync 2020-07-02 12:01:06 +02:00
Ismael Gomez e378a45db0 Reorganized priorities to avoid GW starve the CPU 2020-07-02 11:52:14 +02:00
Pedro Alvarez 5ed6c18ac7 Copy E-UTRA capabilities to new RNTI in reestablishment. 2020-07-02 09:05:58 +01:00
Francisco Paisana d7a0fe4060 improve log messages for CA 2020-07-01 11:54:06 +01:00
Andre Puschmann 3fde53a6b7 update readme install instructions and features 2020-06-30 14:28:00 +02:00
Andre Puschmann eb56efe9f5 rlc_am_lte: turn error message into warning and print state variables
the issue doesn't cause any unrecoverable situation so its not
appropiate to use the error level
2020-06-30 14:25:56 +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 cf12c98630 srsue: exit early if radio can't be initialized
since the radio is the first component we initialize, it is safe to
exit the ue::init() straight away, as no other layers use any handles yet
2020-06-30 09:30:31 +02:00
Andre Puschmann d16897c09a scell_sync: fix missing dtor freeing sync object 2020-06-30 09:30:31 +02:00
Francisco Paisana 1899c468d3 updated rrc mobility test 2020-06-29 20:32:23 +01:00
Francisco Paisana 97d20ca579 remove obsolete bearer cfg methods 2020-06-29 20:32:23 +01:00
Francisco Paisana 0929a9de62 created rrc mac_controller class to handle the configuration of scheduler 2020-06-29 20:32:23 +01:00
Andre Puschmann e981d5ee70 rrc,ue: refactor wait conditions before transition to RRC idle
before entering RRC idle, after receiving a RRC connection release for example,
we need to wait until the RLC for SRB1 or SRB2 have been flushed, i.e.
the RLC has acknowledged the reception of the message.

Previously we have only waited for SRB1 but the message can also be received on SRB2
and in this case both bearers need to be checked.

The method is now streamlined to check both SRBs and is also used when
checking the msg transmission of an detach request.
2020-06-29 21:19:42 +02:00
Andre Puschmann 67877d15d5 run_lte.sh: fix EPC shutdown timer and disble proc timing measurements
this avoids having warnings in the logs when running with ASAN or on slow hardware
2020-06-29 21:19:42 +02:00
Francisco Paisana 7ab4b5f723 fix long bsr handling 2020-06-29 17:31:07 +01:00
Francisco Paisana af58597647 fix mac tb building in scheduler 2020-06-29 17:31:07 +01:00
Francisco Paisana cb7f620254 created separate class to manage bearers buffers/status reports in the scheduler 2020-06-29 17:31:07 +01: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 a3d7d4517c rlc_um: add dedicated unit test for the PDU packing bug
Here is the test output with the fix disabled:

13:47:42.679774 [RLC_UM_1] [D] MAC opportunity - 14 bytes
13:47:42.679784 [RLC_UM_1] [D] pdu_space=14, head_len=2
13:47:42.679790 [RLC_UM_1] [D]  adding new SDU segment - 10 bytes of 10 remaining
13:47:42.679834 [RLC_UM_1] [D]  Complete SDU scheduled for tx. Stack latency: 0 us
13:47:42.679909 [RLC_UM_1] [D] pdu_space=4, head_len=2
13:47:42.679922 [RLC_UM_1] [D]  adding new SDU segment - 0 bytes of 10 remaining
13:47:42.679928 [RLC_UM_1] [I]  Tx PDU SN=0 (14 B)
13:47:42.679974 [RLC_UM_1] [D]  vt_us = 1

The test checks the correct packing and of the two PDUs at the end.
2020-06-26 17:58:36 +02:00
Andre Puschmann df50dd7d3c rlc: extend RLC metrics
extend RLC metrics to count Rx/Tx PDUs/SDUs bytes/#
2020-06-26 17:58:36 +02:00
Andre Puschmann 48db31c5cf rlc_stress_test: fix random PDU dropping
the rand() was sometimes giving NaN so this case needs to be handled
and the PDU not dropped to have real zero drop-rate
2020-06-26 17:58:36 +02:00