Francisco
d1c5b000dc
adt - creation of pre-initialized object pool, that leverages the background memory pool allocator
2021-04-07 12:02:22 +01:00
Francisco
2fc2280c3b
adt pool - replace uint8_t* for void* to represent memory blocks
2021-04-02 17:40:50 +01:00
Francisco
a79ca92020
refactor type storage and pool tests
2021-04-02 17:40:50 +01:00
Francisco
046633674a
refactor - removal of stack-gtpu interface, and use of socket manager interface instead
2021-04-02 11:42:50 +01:00
Francisco
c24e382c19
Refactor of socket manager class
...
- use of inheritance to simplify testing
- removal of global network manager
- pass of custon socket manager to s1ap and gtpu ctors
- overhauled the registration of socket fd,callback in socket manager
2021-04-02 11:42:50 +01:00
Francisco
4aac7ac238
use global rx multisocket handler, and remove stack-s1ap interface
2021-04-02 11:42:50 +01:00
Francisco
39de2efa69
multisocket handler - use blocking socket remove method
2021-04-02 11:42:50 +01:00
Francisco
bf96d897ee
network utils refactor - renaming of socket handle to unique socket and cleanup of its methods
2021-04-02 11:42:50 +01:00
Pedro Alvarez
8194b5ec73
Added check for consequetive KOs in MAC. Change set_activity_user to pass activity and max KOs to RRC and trigger RLF timeout.
2021-04-01 13:21:43 +01:00
Francisco
23ae9967cf
replaced present+value for optional field in s1ap mme_ue_s1ap_id context field
2021-04-01 10:24:34 +01:00
Francisco
c3482b45e1
s1ap - handle erroneous enb/mme s1ap ue id in received s1ap messages from the MME
2021-04-01 10:24:34 +01:00
Francisco
ced757a11b
adt - add optional construct that closely emulates std::optional<T>
2021-03-31 19:14:11 +01:00
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.
2021-03-31 19:37:49 +02:00
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
2021-03-30 13:46:12 +02:00
Francisco
d04a19f8bc
refactor - increase code reuse in adt files
2021-03-29 22:11:25 +01:00
Francisco
5eccfad05b
gtpu - added comments, updated expected construct, handled in rrc the case a gtpu teid fails to allocate
2021-03-29 10:20:55 +01:00
Francisco
ab2bd9a2d2
gtpu refactor - handle dl path state activation internally in gtpu tunnel manager class
2021-03-29 10:20:55 +01:00
Francisco
cfd24f6a0e
gtpu - leverage byte_buffer_pool to store buffered sdus in gtpu
2021-03-29 10:20:55 +01:00
Francisco
c201eb7708
use of more space efficient sorted vector structure for lcid tunnels of a rnti
2021-03-29 10:20:55 +01:00
Francisco
eba0edea4a
creation of static id obj pool class. Application of this class to gtpu tunnels container to avoid allocations
2021-03-29 10:20:55 +01:00
Francisco
60cd7e6cfe
adt - improved concurrent fixed memory pool policy to send buffers from thread cache to central cache
2021-03-27 12:21:08 +00:00
Francisco
eb38ff43ab
fixed size buffer pool bugfix - deleted threads now return the cached memory blocks to the pool shared memory block container
2021-03-27 12:21:08 +00:00
Francisco
be771e5c23
performance - use of new concurrent fixed size pool for byte_buffer pool
2021-03-27 12:21:08 +00:00
Francisco
e1523692c2
implementation of concurrent fixed size pool that leverages thread local caches to avoid mutexing
2021-03-27 12:21:08 +00:00
faluco
e2c7809abb
- Introduce a new tracer scoped object that only records if the event duration exceeds the programmed threshold.
2021-03-26 10:31:26 +01:00
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
2021-03-26 09:53:03 +01:00
Xavier Arteaga
6219500148
Added NR-RRC RACH parsing
2021-03-26 09:45:10 +01:00
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.
2021-03-25 19:00:06 +01:00
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.
2021-03-25 19:00:06 +01:00
faluco
b06ef3f390
Switch the queue of the log backend to use a circular buffer.
2021-03-25 19:00:06 +01:00
David Rupprecht
8c86d2084d
Adding NR phy config RRC parsing
...
Added error handling
Reworked flattening error handling
2021-03-25 11:34:53 +01:00
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
2021-03-25 08:06:49 +01:00
AlaiaL
fd3c2b855e
- Renamed log to logger.
...
- Added a log entry in the metrics when skipping a measurement due to
time constrains
2021-03-24 12:01:12 +01:00
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.
2021-03-24 12:01:12 +01:00
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.
2021-03-24 12:01:12 +01:00
AlaiaL
6cd9bba641
Added the cpu metrics to the system metrics.
2021-03-24 12:01:12 +01:00
Xavier Arteaga
5bdf2c93b3
Initial NR PDSCH CSI-RS RE skip and other changes
2021-03-24 09:06:26 +01:00
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.
2021-03-24 00:57:58 +00:00
Francisco
6d9709fe54
adt - make circular buffer work with types without default ctor
2021-03-23 17:28:35 +00:00
Francisco
ef5329bec0
adt - extend circular map unit test to test the container with move-only types
2021-03-23 17:28:35 +00:00
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.
2021-03-23 14:55:34 +01:00
Andre Puschmann
1a0891df51
all: check return value of make_byte_buffer() and handle them safely
2021-03-23 14:31:15 +01:00
Francisco
46d46e70ff
add documentation for srsran_assert and srsran_expect macros
2021-03-23 10:49:28 +00:00
Francisco
dd336c53ea
changed srsran_warning to srsran_expect. Applied new macro to rlc am
2021-03-23 10:49:28 +00:00
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
2021-03-23 10:49:28 +00:00
Andre Puschmann
26e7964694
mac_pcap_base: increase PDU queue size to 512
2021-03-23 10:17:03 +01:00
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
2021-03-22 16:51:32 +00:00
Francisco
88f5add1fb
adt - fix circular map erase function and added extra asserts
2021-03-22 14:58:25 +00:00
Francisco
5d676199ab
adt bugfix - fix copy/move ctor of circular map
2021-03-22 14:58:25 +00:00
Francisco
4869b14de3
application of new circular map to mac::ue_db
2021-03-22 14:58:25 +00:00
Francisco
98d0637ded
adt addition - implemented reusable circular map
2021-03-22 14:58:25 +00:00
Codebot
4523ee6087
rename srsLTE to srsRAN
2021-03-21 21:47:01 +01:00
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
2021-03-19 13:43:21 +00:00
Xavier Arteaga
2782d96170
SRSUE: compute speed from TA commands
2021-03-19 11:47:09 +01:00
Francisco
fb48f4484c
sched refactor - removal or cleanup of unused sched methods
2021-03-18 17:04:45 +00:00
Francisco
0d91802495
sched optimization - swap c-arrays for bounded_vector in sched_interface to reduce time performing bzero/memcpy in the scheduler
2021-03-17 19:54:44 +00:00
Xavier Arteaga
f9689ec956
Added PUSCH CFO estimation
2021-03-17 08:53:40 +01:00
Xavier Arteaga
f3c0360842
Applied aesthetical changes
2021-03-16 11:36:11 +01:00
Xavier Arteaga
d9780e1f13
Fix duplicated NR-DCI in different search spaces and CORESET and other aesthetic modification
2021-03-16 11:36:11 +01:00
Xavier Arteaga
be8e8cbe3e
Fix radio decimation Rx stream stall
2021-03-16 11:36:11 +01:00
Xavier Arteaga
1153555ae1
SRSUE: Added UE specific cell space
2021-03-16 11:36:11 +01:00
Xavier Arteaga
fb1a0b6bce
SRSUE: added NR-PDCCH information
2021-03-16 11:36:11 +01:00
Xavier Arteaga
d3cfb00211
SRSUE: Added TDD DL/UL slot detection
2021-03-16 11:36:11 +01:00
Xavier Arteaga
6f6c20e194
SRSUE: Added procedure for multiplexing UCI in NR-PUSCH
2021-03-16 11:36:11 +01:00
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.
2021-03-16 11:20:01 +01:00
Francisco
2e18827259
avoid accessing C-array via &[0] for initialized buffer
2021-03-14 14:27:34 +00:00
Francisco
80104c7e65
adt, bugfix - fix assert when accessing bounded_vector::data() member
2021-03-14 14:27:34 +00:00
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
2021-03-12 19:10:15 +00:00
Francisco
d27e0be609
created special class to manage mac::ue currently allocated rx UL buffers. This class avoids mallocs
2021-03-12 19:10:15 +00:00
Ismael Gomez
7b33c48fe7
Use static queue in pdu_queue
2021-03-12 19:10:15 +00:00
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.
2021-03-12 13:47:20 +00:00
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.
2021-03-12 13:47:20 +00:00
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
2021-03-12 13:47:20 +00:00
Francisco
6159cb3817
add assert to ensure a valid ptr is passed to memory pool deallocator
2021-03-12 01:33:44 +00:00
Francisco
20928651c7
created batch allocator that leverages background worker pool
2021-03-12 01:33:44 +00:00
Francisco
3e9f93eb8a
refactor - remove old log_filter and logmap libraries from the codebase
2021-03-11 20:10:54 +00:00
Francisco
3b491ab06b
optimize .count() method of bounded_bitset to leverage popcount special instructions. Confirmed to work for gcc in -msse4 flag is passed.
2021-03-11 15:18:16 +00:00
Francisco
7dcb703d06
adt lib,bugfix - fix bounded_bitset resize to clear bits outside of mask correctly
2021-03-11 15:18:16 +00:00
Francisco
d1483dc0f8
sched,bugfix - fix bitmask formatting. fix msg3 adaptive retx pdcch allocation
2021-03-10 22:42:39 +00:00
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.
2021-03-10 16:27:33 +01:00
faluco
82db6544fb
Add instrumentation points to rlc_am_lte::rlc_am_lte_tx::handle_control_pdu using srslog.
2021-03-10 11:59:09 +01:00
Ismael Gomez
8e9d28e7e0
Change wait_for interface for wait_until in circular_buffer
2021-03-10 09:51:35 +01:00
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)
2021-03-09 21:56:33 +01:00
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.
2021-03-09 21:56:33 +01:00
Francisco
ee77343f26
fix compilation issue for centos7
2021-03-09 16:23:08 +00:00
Francisco
20e341d0a1
mac,bugfix - fixed formatting of MAC and scheduler user-defined types
2021-03-09 16:23:08 +00:00
Francisco
f72cd4151c
rlc am,bugfix - fixed formatting of RLC AM header and status pdu
2021-03-09 16:23:08 +00:00
Francisco
4c1067bcf6
bitset - fix compilation issue for centos7
2021-03-09 16:23:08 +00:00
Francisco
0f9d73012f
use srslte::move_callback instead of std::function in timers to avoid allocations
2021-03-09 16:23:08 +00:00
Francisco
5a1bf28fe1
optimization - minimization of number of std::string allocations for logging
2021-03-09 16:23:08 +00:00
Francisco
1ffc4cef86
rlc am,optimization - change helper log methods to avoid mallocs
2021-03-09 16:23:08 +00:00
Francisco
d77b6e1d9c
sched,optimization,refactor - use of custom formatter that avoids mallocs for getting bitmasks strings in hex and binary formats
2021-03-09 16:23:08 +00:00
Xavier Arteaga
2b9bd1173e
More NR-PUSCH UCI bit multiplexing
2021-03-09 17:05:08 +01:00
Xavier Arteaga
289fff9c22
Removed carrier set in UCI NR module
2021-03-09 17:05:08 +01:00
Xavier Arteaga
97435b085e
Added CSI part1 and 1/2 bit HARQ-ACK multiplexing on PUSCH
2021-03-09 17:05:08 +01:00
Xavier Arteaga
dc2542901a
Verified HARQ-ACK in PUSCH
2021-03-09 17:05:08 +01:00
Xavier Arteaga
9dffad87f2
Initial UCI bits multiplexing in PUSCH
2021-03-09 17:05:08 +01:00
Xavier Arteaga
f4e9d00ea8
Initial HARQ-ACK multiplex in PUSCH
2021-03-09 17:05:08 +01:00
Francisco
0b6293c676
adt lib additions - add the ability to perform timedwait for popping from a blocking queue
2021-03-08 14:49:14 +01:00
Francisco
f0ed1e06a8
documentation,bugfix - added documentation to new blocking queues, changed class names, and removed blocking pushes from the critical path
2021-03-08 14:49:14 +01:00