1528 Commits (8e631131c0ca014d5d10045d809b1a1fcbbf1950)

Author SHA1 Message Date
Francisco Paisana 7cd4f45d62 fsm refactor.
- avoid triggering directly a subfsm
- improved metafunctions
- other cleanups
4 years ago
Francisco Paisana 841b884796 remove extern C flags from common_helper.h 4 years ago
Francisco Paisana 5be5409f62 scaling governor function moved to common header file 4 years ago
Francisco Paisana 087805d222 add warning if scaling governor is not performance mode 4 years ago
Francisco Paisana 8d10aa906e move defer_task to switch case in the rrc 4 years ago
Andre Puschmann 24dfb03b9d rrc: defer manipulations of the RLC/PDCP arrays
all calls that manipulate the RLC and/or PDCP arrays suffer
from a high deadlock risk if a PHY worker holds the RLC
AM Rx mutex at the same time when the stack wants to carry
out this reconfiguration.

this applies to RRC Reconfigs, but potentially also to RRC Connection
Reestablishment or even RRC Connection Setup, although this should
seldom be the case.

By breaking the call stack between RLC->PDCP->RRC->RCL and
carrying out the reconfig as a single task without holding the
RLC readlock the deadlock should not happen anymore.

This should fix issue #1593
4 years ago
faluco e5a792d508 - Fix unused variable. 4 years ago
faluco cfd3f51931
Import of srslog into srsepc and srsenb. (#1574)
* - Import of srslog into srsepc and srsenb.
* - Removed logger_file and logger_stdout files.
4 years ago
Xavier Arteaga 202ec283ff SRSUE: fix erroneous code in MUX 4 years ago
Xavier Arteaga 4e1e8cea1a SRSUE: MAC HARQ entities vector is fixed 4 years ago
Xavier Arteaga 09af743361 SRSUE: minor PHY modfifications 4 years ago
Xavier Arteaga 0b02f8948c SRSUE: fix shadow variable 4 years ago
Ismael Gomez c02e920b6b Trigger RA after SR failed directly (don't wait for next BSR trigger) 4 years ago
faluco efdff8ba4c
Import srslog into srsue (#1556)
- Import the srslog project into srslte.
- Ported srsue app to use the new logging framework.
- Implemented a wrapper that dispatches log entries to srslog.
- Renamed an existing log test to be more specific to avoid name clashes.
4 years ago
Andre Puschmann 1199a79851 fix Scell sync for large cells
the PSS detection needs more temporary buffer than a full subframe.
we therefore need to allocate and initialize the sync object with
larger maximum size to support Scell search of large cells, e.g.
20 MHz

this fixes issue #1538
4 years ago
Andre Puschmann ce5129467c correct default value of PHY threads in eNB and UE examples 4 years ago
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 06eba7eb72 Discard cells if not found during cel selection 4 years ago
Andre Puschmann 138ec1f8e7 nas,usim: remove use of shadowed variables 4 years ago
Ismael Gomez 7866f19f6b Use correct target cell when doing reselection in HO 4 years ago
Ismael Gomez 443dee7035
Changes in Cell Selection Procedure (#1557)
* Fixes RRC cell reselection procedure
4 years ago
Xavier Arteaga 0192130742 SRSUE/SRSENB: UCI bits are carrier by the lowest serving cell index
SRSENB: Fix UCI in lowest serving cell index PUSCH transmission
4 years ago
Andre Puschmann 4fd5395903 change default EARFCN to 3350 or 2.68GHz
as 3400 or 2.685 GHz is on the edge of band 7, some phones won't connect
to a 20 MHz cell on this EARFCN.

In order to simplify testing with other bandwidths we change the default EARFCN.
4 years ago
Francisco Paisana 4fb8011a6d updated phy controller to use task scheduler 4 years ago
Francisco Paisana 36fc88d2e2 fsm log macros, and utility methods to convert event callbacks to move tasks 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 039977aeb5 renamed interfaces 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 8c920837d6 fix issue when adding neighbour cell that matches serving cell 4 years ago
Francisco Paisana 43db9b81fb fix function ptr issue 4 years ago
Francisco Paisana d746115130 moved serving cell to meas_cell_list 4 years ago
Francisco Paisana 928459408e fix cell meas sorting issue 4 years ago
Francisco Paisana d2dd30c8cb rrc_meas_test failing 4 years ago
Francisco Paisana 9a1f69113f created class for managing neighbor cells of rrc 4 years ago
Francisco Paisana 069dc1f751 moved cell struct of srsue::rrc to separate file 4 years ago
Andre Puschmann 1e4eae7395 nas: log estimated count instead of local rx_count when logging integrity check result 4 years ago
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
4 years ago
Francisco Paisana 08f9801c76 remove requirement for rrc to be idle and nas attached to run reselection 4 years ago
Francisco Paisana d12b037e0d make cell reselection periodic and with period of 20msec 4 years ago
Francisco Paisana 510687766f added comments in rrc cell select test 4 years ago