2042 Commits (2f8ea051329256209924945da0ea81677394b4fc)

Author SHA1 Message Date
Francisco c3482b45e1 s1ap - handle erroneous enb/mme s1ap ue id in received s1ap messages from the MME 4 years ago
Francisco ced757a11b adt - add optional construct that closely emulates std::optional<T> 4 years ago
faluco 54fab314c0 Enhance RRC eNB events:
- Implement a common event "log_rrc" for all RRC events and discriminate by procedure using an enum.
- Log events for connection, reestablishment, reconfig, reject and release.
- Log the corresponding ASN1 message used by each procedure.
- Redefine the JSON object for this event to match the new structure.

Fixed a compilation error detected by the static analyzer in gcc9.3 where bounded_vector::data() was using taking the address of the internal buffer which confused it, prefer to use the data method of std::array.
4 years ago
Andre Puschmann d135ae4d29 proc_bsr: initial BSR procedure for NR
* refactor some common methods to mac_common.cc
* add common mux_base class
* move UL PDU generation to mux class
* add logical channel registration to MAC, MUX, BSR
* add initial proc BSR
* add basic MAC NR test
* rework MAC interfaces
4 years ago
Francisco d04a19f8bc refactor - increase code reuse in adt files 4 years ago
Francisco 5eccfad05b gtpu - added comments, updated expected construct, handled in rrc the case a gtpu teid fails to allocate 4 years ago
Francisco ab2bd9a2d2 gtpu refactor - handle dl path state activation internally in gtpu tunnel manager class 4 years ago
Francisco cfd24f6a0e gtpu - leverage byte_buffer_pool to store buffered sdus in gtpu 4 years ago
Francisco c201eb7708 use of more space efficient sorted vector structure for lcid tunnels of a rnti 4 years ago
Francisco eba0edea4a creation of static id obj pool class. Application of this class to gtpu tunnels container to avoid allocations 4 years ago
Francisco 60cd7e6cfe adt - improved concurrent fixed memory pool policy to send buffers from thread cache to central cache 4 years ago
Francisco eb38ff43ab fixed size buffer pool bugfix - deleted threads now return the cached memory blocks to the pool shared memory block container 4 years ago
Francisco be771e5c23 performance - use of new concurrent fixed size pool for byte_buffer pool 4 years ago
Francisco e1523692c2 implementation of concurrent fixed size pool that leverages thread local caches to avoid mutexing 4 years ago
faluco e2c7809abb - Introduce a new tracer scoped object that only records if the event duration exceeds the programmed threshold. 4 years ago
Andre Puschmann bde7b49ca3 ue,mac_nr: add basic SR procedure
the current implementation support only one SR config
and doesn't support the prohibit timer
4 years ago
Xavier Arteaga 6219500148 Added NR-RRC RACH parsing 4 years ago
faluco 3c1a97f450 - Use fprintf in the srsran_assert context incase the assert is being triggered by srslog producing a circular loop.
- Switch to use a dynamic circular buffer for the log backend queue.
4 years ago
faluco 4b5e15cd70 - Fixed missing return statements in base_circular_buffer::try_push.
- Fixed array index calculation in base_circular_buffer::clear.
- Removed redundant explicit in srslog::backend_worker.
4 years ago
faluco b06ef3f390 Switch the queue of the log backend to use a circular buffer. 4 years ago
David Rupprecht 8c86d2084d Adding NR phy config RRC parsing
Added error handling

Reworked flattening error handling
4 years ago
Andre Puschmann 48c106ae64 rlc_um_nr: fix packing/unpacking of PDUs with 12bit SN
* fix SN extraction/writing
* fix packed header size calculation
* fix segmentation logic and take variable header lenght into account
4 years ago
AlaiaL fd3c2b855e - Renamed log to logger.
- Added a log entry in the metrics when skipping a measurement due to
time constrains
4 years ago
AlaiaL bbaebd1274 Added a warning in the log when the cpu metrics are not registered due
to the number cpu cores is greater than supported.
4 years ago
AlaiaL c9d1c77e8c - Deleted the magic number of maximum supported cores, now it is a
constexpr.
- When the system has more cores that the maximum supported, the cpu
metrics will not be registered.
4 years ago
AlaiaL 6cd9bba641 Added the cpu metrics to the system metrics. 4 years ago
Xavier Arteaga 5bdf2c93b3 Initial NR PDSCH CSI-RS RE skip and other changes 4 years ago
Pedro Alvarez 5bc55ec48c Changed discard_if to appyly_if in circular_buffer.h.
This was done so it would work when circular buffer holds other things
that are not unique_pointers. Queue and pop_func had to be made public
to be able to call the pop_func when an SDU is discarded.
4 years ago
Francisco 6d9709fe54 adt - make circular buffer work with types without default ctor 4 years ago
Francisco ef5329bec0 adt - extend circular map unit test to test the container with move-only types 4 years ago
faluco e8395c7474 - Implement a pool to store dyn arg store objects in srslog to avoid allocations when passing arguments to the backend.
- Use string views inside the log formatters to avoid allocations.
- Avoid a std::string when using fmt::vsprintf, instead favour fmt::vprintf.
4 years ago
Andre Puschmann 1a0891df51 all: check return value of make_byte_buffer() and handle them safely 4 years ago
Francisco 46d46e70ff add documentation for srsran_assert and srsran_expect macros 4 years ago
Francisco dd336c53ea changed srsran_warning to srsran_expect. Applied new macro to rlc am 4 years ago
Francisco b5692037a2 created macros for assertions and warnings. The assert macro prints the whole callstack on crash. The warning macro can just log a warning or call an assertion fail depending on the cmake flag STOP_ON_WARNING 4 years ago
Andre Puschmann 26e7964694 mac_pcap_base: increase PDU queue size to 512 4 years ago
Pedro Alvarez d91119baf6
RLC discard (#2515)
* Added ability to discard to dyn_block_queue

* Change way of keeping track of SDUs

* Check nullptr in poping callback. Starting to check for nullptr in RLC read_pdu.

* Adding RLC discard tests

* Clearing PDCP info when RLC discard happens

* Read SDUs until they are no longer nullptr

* Changed discard_if to use template argument
4 years ago
Francisco 88f5add1fb adt - fix circular map erase function and added extra asserts 4 years ago
Francisco 5d676199ab adt bugfix - fix copy/move ctor of circular map 4 years ago
Francisco 4869b14de3 application of new circular map to mac::ue_db 4 years ago
Francisco 98d0637ded adt addition - implemented reusable circular map 4 years ago
Codebot 4523ee6087 rename srsLTE to srsRAN 4 years ago
Francisco 977c194cbc gtpu,bugfix - handle the case when gtpu fails to allocate buffer for end marker. Also, added a timer that when expired, it autoremoves the GTPU handover tunnel 4 years ago
Xavier Arteaga 2782d96170 SRSUE: compute speed from TA commands 4 years ago
Francisco fb48f4484c sched refactor - removal or cleanup of unused sched methods 4 years ago
Francisco 0d91802495 sched optimization - swap c-arrays for bounded_vector in sched_interface to reduce time performing bzero/memcpy in the scheduler 4 years ago
Xavier Arteaga f9689ec956 Added PUSCH CFO estimation 4 years ago
Xavier Arteaga f3c0360842 Applied aesthetical changes 4 years ago
Xavier Arteaga d9780e1f13 Fix duplicated NR-DCI in different search spaces and CORESET and other aesthetic modification 4 years ago
Xavier Arteaga be8e8cbe3e Fix radio decimation Rx stream stall 4 years ago
Xavier Arteaga 1153555ae1 SRSUE: Added UE specific cell space 4 years ago
Xavier Arteaga fb1a0b6bce SRSUE: added NR-PDCCH information 4 years ago
Xavier Arteaga d3cfb00211 SRSUE: Added TDD DL/UL slot detection 4 years ago
Xavier Arteaga 6f6c20e194 SRSUE: Added procedure for multiplexing UCI in NR-PUSCH 4 years ago
faluco e43f555fc0 - Provide a fast path for logging pre-formatted strings that are small and fit in 64 bytes without any allocations.
- Use this new feature in the tracer.
4 years ago
Francisco 2e18827259 avoid accessing C-array via &[0] for initialized buffer 4 years ago
Francisco 80104c7e65 adt, bugfix - fix assert when accessing bounded_vector::data() member 4 years ago
Francisco ca7fe1349e remove unnecessary sfinae from bounded_vector. Use bounded_vector for UE cc buffers. Set ue cc used buffers remove_pdu method to private 4 years ago
Francisco d27e0be609 created special class to manage mac::ue currently allocated rx UL buffers. This class avoids mallocs 4 years ago
Ismael Gomez 7b33c48fe7 Use static queue in pdu_queue 4 years ago
Pedro Alvarez f02694dd3e PDCP status report: Fix issue in keeping track of Rx'ed COUNTs after eNB reestablishment. Fixed issue in logic that limits the size of the rx_counts info vector. 4 years ago
Pedro Alvarez d2ef541957 Changed the structure to store rx_counts info to std::vector, to reduce
memory allocations.
Update the rx_count_info queue if the queue size is too large.
4 years ago
Pedro Alvarez 3f79cd6281 Changed generation of status report to use rx_counts instead of
undeliverd_sdus_queue. Added a queue to store information about
rx_counts received.
Added unit test for when the SNs wrap-around in status report genaration
4 years ago
Francisco 6159cb3817 add assert to ensure a valid ptr is passed to memory pool deallocator 4 years ago
Francisco 20928651c7 created batch allocator that leverages background worker pool 4 years ago
Francisco 3e9f93eb8a refactor - remove old log_filter and logmap libraries from the codebase 4 years ago
Francisco 3b491ab06b optimize .count() method of bounded_bitset to leverage popcount special instructions. Confirmed to work for gcc in -msse4 flag is passed. 4 years ago
Francisco 7dcb703d06 adt lib,bugfix - fix bounded_bitset resize to clear bits outside of mask correctly 4 years ago
Francisco d1483dc0f8 sched,bugfix - fix bitmask formatting. fix msg3 adaptive retx pdcch allocation 4 years ago
faluco 173dcdd421 - Import latest srslog version.
- Remove string allocs in some log lines in radio.cc.

Add new tracing buffer capcity options into srsenb and srsue.

Add missing file.
4 years ago
faluco 82db6544fb Add instrumentation points to rlc_am_lte::rlc_am_lte_tx::handle_control_pdu using srslog. 4 years ago
Ismael Gomez 8e9d28e7e0 Change wait_for interface for wait_until in circular_buffer 4 years ago
Andre Puschmann 16de8668e0 rlc_am_lte: convert mutexes to std::mutex
replace all pthread_mutex with std::mutex and use lock_guard and unique_lock (where needed)
4 years ago
Andre Puschmann 20cbc48f90 rlc_am_lte: refactor PDCP/RLC interface to use fix sized data structure
this patch replaces the std::vector type used in the interface between
PDCP and RLC to signal delivery status between both layers. The new
data type is a configurable but fixed-size vector.
The RLC AM doesn't need to dynamically allocate the vector for every SN but
uses the tx_window for storage.
4 years ago
Francisco ee77343f26 fix compilation issue for centos7 4 years ago
Francisco 20e341d0a1 mac,bugfix - fixed formatting of MAC and scheduler user-defined types 4 years ago
Francisco f72cd4151c rlc am,bugfix - fixed formatting of RLC AM header and status pdu 4 years ago
Francisco 4c1067bcf6 bitset - fix compilation issue for centos7 4 years ago
Francisco 0f9d73012f use srslte::move_callback instead of std::function in timers to avoid allocations 4 years ago
Francisco 5a1bf28fe1 optimization - minimization of number of std::string allocations for logging 4 years ago
Francisco 1ffc4cef86 rlc am,optimization - change helper log methods to avoid mallocs 4 years ago
Francisco d77b6e1d9c sched,optimization,refactor - use of custom formatter that avoids mallocs for getting bitmasks strings in hex and binary formats 4 years ago
Xavier Arteaga 2b9bd1173e More NR-PUSCH UCI bit multiplexing 4 years ago
Xavier Arteaga 289fff9c22 Removed carrier set in UCI NR module 4 years ago
Xavier Arteaga 97435b085e Added CSI part1 and 1/2 bit HARQ-ACK multiplexing on PUSCH 4 years ago
Xavier Arteaga dc2542901a Verified HARQ-ACK in PUSCH 4 years ago
Xavier Arteaga 9dffad87f2 Initial UCI bits multiplexing in PUSCH 4 years ago
Xavier Arteaga f4e9d00ea8 Initial HARQ-ACK multiplex in PUSCH 4 years ago
Francisco 0b6293c676 adt lib additions - add the ability to perform timedwait for popping from a blocking queue 4 years ago
Francisco f0ed1e06a8 documentation,bugfix - added documentation to new blocking queues, changed class names, and removed blocking pushes from the critical path 4 years ago
Francisco d1236fd62f stack,optimization - replaced previous block_queue design for new bounded queue in several places in the enb 4 years ago
Francisco 28ef5833a2 fix compilation issue for centos7 4 years ago
Francisco 0ba93d274f converted byte_buffer_queue to use new circular buffer-based queue to avoid mallocs 4 years ago
Francisco 822e26b63f implemented circular buffer-based queue 4 years ago
Andre Puschmann ceacf8508d rlc_am_lte: fix handling of maxretx
this patch fixes the actions/handling after RLC detected
maxRetx reached for a given SN.

According to the TS, RLC should only inform upper layers and
not try to recover from the event itself.

As a consequence, we won't manipulate the Tx or Rx window.
As a result of this, we might retransmit a SN more than
the specified amount of times.

It's the task of RRC to reestablish the bearer to recover
from that.
4 years ago
Francisco fb04fdbe69 sched,bugfix - fix mcs/tbs computation for 256-QAM. 4 years ago
Andre Puschmann 62b2327178 rlc_am_lte: fix header reconstruction
* optimize processing of status PDU (SN is removed from window immediately)
* fix maxRetx signaling for segments
* make tx_window_t a template class, rename and use for rx_window as well
4 years ago
faluco dc6a2e5160 Implement a log spy to check if a certain message has been logged. 4 years ago
Francisco 9eeddcec5f disabled prach vs pucch collision detection temporarily until enb cfg files are updated in the rfci 4 years ago
Francisco 102cb196e1 Addition of enb cfg option to choose between PUCCH with multiplexing and without. Change default prach offset to 4.
- The new prach offset of 4 accounts for the size of the PUCCH-ACK region with 100 prbs
4 years ago