284 Commits (9550bd3ef86841e9a34a8ee08c0ad00c2078f379)

Author SHA1 Message Date
Andre Puschmann 9550bd3ef8 rlc: revisit interface for MAC and RRC
* add locked and unlocked version of has_data() since one is
  called from stack and one from PHY threads

* add comments in each interface section as to why locking
  is required or not

* remove RLC rwlock when not required

* move calls only used by RRC to RRC section
4 years ago
Pedro Alvarez c686e6cea1
SRSUE: Set SCell configuration is unlocking (#1544) 4 years ago
Ismael Gomez 443dee7035
Changes in Cell Selection Procedure (#1557)
* Fixes RRC cell reselection procedure
4 years ago
Francisco Paisana 4fb8011a6d updated phy controller to use task scheduler 4 years ago
Francisco Paisana 9c5471b094 more ergonomic event callback 4 years ago
Francisco Paisana 58a9610efa use of stack event loop to propagate cell search and selection results 4 years ago
Francisco Paisana d48a45976e moved cell selection/search complete event signalling out of phy_controller 4 years ago
Francisco Paisana 48138b5281 removal of phy cell selection procedure as it now it is replaced by phy controller 4 years ago
Francisco Paisana 489969722e implemented phy controller FSM to perform cell selection & search. The controller also tracks the phy sync state 4 years ago
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
4 years ago
Francisco Paisana 5e06430455 removal of stack handler interface 4 years ago
Francisco Paisana 7c364070ee creation of task scheduler interface for classes/functions running outside the main control thread 4 years ago
Francisco Paisana 1a9c04bf2f use of task scheduler handle in pdcp 4 years ago
Francisco Paisana 4f5e65781f created task scheduler class to deal with timers, thread pool, multiqueue, internal tasks 4 years ago
Pedro Alvarez 528777fa29 Added sleep to avoid nas test concurrency issue. 4 years ago
Francisco Paisana 510687766f added comments in rrc cell select test 4 years ago
Francisco Paisana c6f422d23e improved cell selection test in srsue::rrc 4 years ago
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)
4 years ago
Francisco Paisana 84f34bc736 changed to a label filtering approach for ctest 4 years ago
Francisco Paisana ebb8f18000 set some extra tests with the prefix "long_" 4 years ago
Francisco Paisana c6323478d2 remove unecessary sleeps in mac test, and add long_ prefix in long tests 4 years ago
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).
...
4 years ago
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.
4 years ago
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
4 years ago
Daniel Willmann 7a25d1d300 Send the RRC_PDU_IND as JSON
Fixes: srslte_ttcn3#13, srslte_ttcn3#15
4 years ago
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
4 years ago
Andre Puschmann bf6ddbe976 ttcn3_drb_interface: use uint8_t and len as tx interface 4 years ago
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
4 years ago
Andre Puschmann 07f22326b4 pass current SS TTI when formatting DRB common IND 4 years ago
Daniel Willmann 8652f75510 Don't try to guess the lcid, use what we got 4 years ago
Daniel Willmann 0b88161b3c Send DRB PDUs as JSON to TTCN3 4 years ago
Daniel Willmann 31f1516d74 Use callback to establish connection before sending PDUs in TestmodeB 4 years ago
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()
4 years ago
Daniel Willmann a3adba0081 Implement DRB establishment and handle rx/tx 4 years ago
Daniel Willmann 999de5f484 ttcn3_helpers: Add function to generate JSON for DRB PDUs 4 years ago
Pedro Alvarez 9c1a7d2cf1 Removed get_bearer_status in PDCP. Renamed get_state/set_state to
get_bearer_state/set_bearer_state.
4 years ago
Xavier Arteaga e0e8405285 SRSUE: initial scell sync
SRSUE: SCell Synch feedbacks delay

SRSUE: Implemented SCell Radio offset correction
4 years ago
Xavier Arteaga f04cf2090a Integrates number of samples in radio buffer
Fix minor issue

Radio: Fix minor bug and add unit test
4 years ago
Xavier Arteaga de230826b9 Added string helper for removing spaces and parsing list
Fix

Fix string parser
4 years ago
Xavier Arteaga 89b24b54e5 Refactored radio class for acommodating multiple RF devices 4 years ago
Daniel Willmann 0e99e2f6eb srsue: Refactor definition to live in its own .cc file 4 years ago
Xavier Arteaga e605a6f367 UE PHY test disabled due to unstable behaviour 5 years ago
Xavier Arteaga 0d2b3eb55d Removed ue_phy_test log overload 5 years ago
Xavier Arteaga 2d8bd0692a SRSUE: fix and enable UE PHY test 5 years ago
Francisco Paisana 38f848ecdf fix type name deducing for clang 5 years ago
Francisco Paisana b8e6ba02e4 remove warnings related to unused vars and fwd declarations with trivial dtors 5 years ago
Francisco Paisana b506e29b72 removed common ce_typeenum 5 years ago
Xavier Arteaga 58803d1b3e Added UL EARFCN map and UE PHY interface cleanup 5 years ago
Xavier Arteaga 77d5dedddc Fix LGTM warnings and recommendations 5 years ago
Francisco Paisana 6ddedd5972 moved pdu to common mac folder 5 years ago