40 Commits (58a9610efaac3a6cd88a51486529c3452c2f8dbe)

Author SHA1 Message Date
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 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
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
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 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
Pedro Alvarez 9c1a7d2cf1 Removed get_bearer_status in PDCP. Renamed get_state/set_state to
get_bearer_state/set_bearer_state.
4 years ago
Daniel Willmann 0e99e2f6eb srsue: Refactor definition to live in its own .cc file 4 years ago
Xavier Arteaga 58803d1b3e Added UL EARFCN map and UE PHY interface cleanup 5 years ago
Francisco Paisana 6ddedd5972 moved pdu to common mac folder 5 years ago
Xavier Arteaga 25312e81b4 SRSUE: cell select RRC MEAS CFO is carried to PHY Cell object 5 years ago
Xavier Arteaga cbaba9c0bd Fix RRC and TTCN3 test 5 years ago
Francisco Paisana d3f49d0e3c changed interface sync-stack to allow tti jumps > 1 5 years ago
Xavier Arteaga e832769ae6 Updated copyright 5 years ago
Xavier Arteaga e8f9bfc6ba Addition of PRACH TA correction 5 years ago
Francisco Paisana e859d622c7 added logref class to forbid logmap pointer invalidation. Created a test for the logref, and introduced it in the scheduler, rrc and nas 5 years ago
Andre Puschmann b88e877b4c ttcn3: make SS single threaded and use SCTP for test ports
- remove all threading from SS
- use epoll to handle test port connections, signals, and timers
- convert testport interface to SCTP
5 years ago
Francisco Paisana 22f51bb30b made cell select non-blocking using background threads 5 years ago
Andre Puschmann 3d7598a4cb rewrite cell handling in TTCN3 PHY and SS 5 years ago
Andre Puschmann bbacc35e24 move configuration of default logger to main
this prevents the case where a layer requests a new log_filter
before the default logger has been configured
5 years ago
Xavier Arteaga 66bb7d6f82 SRSUE: fix TTCN3 compile 5 years ago
Ismael Gomez 52716f8716 Process HO complete in the background to avoid heap-after-use bug when PHY measurements are reported during a HO
rrc_meas refactor. Need to split commit

Fix typo

Temporal commit

Apply rx_gain_offset to neighbour cell measurements

srsLTE: modify TESTASSERT Macro to follow codeline

SRSUE: prevent RRC from having serving cell in neighbour list

SRSUE: DL HARQ does not need Time Aligment Timer. UL is disabled using PUCCH resources release

SRSUE: extend intra-frequency to CA SCell

SRSUE: fix confusing/ambiguous code in the RRC measurements and fix concurrency issue

SRSUE: remove RRC measurement report triggers when measurements are modified or HO succesful

SRSUE: fix compilation issues and Reest SIB indexes

Fixes sync using incorrect cell configuration when search cell does not find a correct cell

Small refactor to remove measurement report triggers always after removing measurement

SRSUE: Removed SIC PSS from UE

SRSUE: fix inter-frequency reestablishment and added more traces

SRSUE: Fix compilation issue
5 years ago
Pedro Alvarez c5979f59eb Clang format UE, eNB and lib (#850)
* Clang-formated UE, eNB and lib.
* Fixed compiling errors from clang-format.
* Fix linking issues introduced by clang-format
* Fix poor formating in initializing arrays of arrays.
* Fix mistake in conflict resolution on rm_turbo.c
* Re-apply clang format to gtpc_ies.h
5 years ago
Andre Puschmann 755a0599c4 rework cell list and SIB handling in SS 5 years ago
Andre Puschmann 487fdd5616 ttcn3: split SS interface and protect SS main thread properly
the SS main thread and the provided interaces weren't protecting members
correctly
5 years ago
Andre Puschmann a166b3c2d9 fix PHY-MAC interface in TTCN3 PHY 5 years ago
Andre Puschmann 08418b17ce fix concurrency issue in TTCN3 PHY 5 years ago
Andre Puschmann db4cc71240 minor changes to TTCN3 dut to make reading logs easier 5 years ago
Andre Puschmann 9e1c46dfb0 add initial TTCN3 code 5 years ago