Pedro Alvarez
90ed04afd1
Fix unitialized header warning on rlc_amd_tx_pdu for ARM.
3 years ago
Pedro Alvarez
dface7e4af
lib,rlc_am_nr: make sure header is initialized.
3 years ago
Pedro Alvarez
7460a9db69
lib,rlc_am_nr: check whether we exced nof_bytes in retx. changed build_retx_pdu API to receive unique_byte_buffer by ref.
3 years ago
Pedro Alvarez
e3b95ef131
lib,rlc_am_nr: remove unused structure
3 years ago
Pedro Alvarez
47340f37a2
lib,rlc_am_nr: fix TS version in comments
3 years ago
Pedro Alvarez
b497d773ce
lib,rlc_am_nr: Fixed some metrics calculation. Added more precise metrics checking to unit tests
3 years ago
Pedro Alvarez
b794593469
lib,rlc_am_nr: added processing of ACKs from status report
3 years ago
Pedro Alvarez
ec93cc7238
rlc_am_nr: added logic to retx NACK'ed PDU.
3 years ago
Pedro Alvarez
473a45aae0
rlc_am_nr: fix buffer status calculation for retxs
3 years ago
Pedro Alvarez
63657ddfe6
Moved retx queue to rlc_am_data_structs, to enable it being re-used in RLC AM NR
3 years ago
Pedro Alvarez
4c02407d3e
Change the update of rx_next and rx_highest_status.
3 years ago
Pedro Alvarez
3f000f0472
Adding t_reassembly to RLC AM NR
3 years ago
Pedro Alvarez
37f8dba4ac
Make sure rlc_am_nr_header_t is initialized.
3 years ago
Pedro Alvarez
9e4631ee24
Added NR specific config struct for RLC AM. Added status prohibit timer.
3 years ago
Pedro Alvarez
8ff545c423
Added RLC AM NR config structure. Added helpers to create RLC AM NR configs. Made it possible to create RLC AM NR entites in rlc.cc
3 years ago
Pedro Alvarez
8ae4d379aa
RLC AM NR: Added some logging functions to better debug the state and the received headers. Added initial handling of data pdu. Updating rx_next and rx_status_highest now.
3 years ago
Pedro Alvarez
2d29e4005c
Starting to generate RLC NR status report.
...
Starting to check if status pdu generation is correct.
3 years ago
Andre Puschmann
1bec07a64a
rlc_um_nr: fix starting/stopping of reassemble timer
3 years ago
Pedro Alvarez
f99d6bc224
lib,rlc: changed get_bearer() to get_lcid().
3 years ago
Pedro Alvarez
3b150e26cb
rlc_am_nr: Changed header_t to HeaderType typename in RLC data structs.
...
Fix issue in clear_pdcp_sdu()
3 years ago
Pedro Alvarez
123ac16653
rlc_am_nr: fixed issue with pointers from rx entity to tx entity
3 years ago
Pedro Alvarez
f99e841421
Changed using a rlc_am_lte and rlc_am_nr entity, to a single rlc_am entity.
3 years ago
Pedro Alvarez
eefedcfccd
rlc_am_nr: renamed rlc_am_base to just rlc_am
3 years ago
Pedro Alvarez
aef87d5366
rlc_am_nr: Change rlc_am_base to use unique_ptr to hold rx/tx entities
3 years ago
Pedro Alvarez
debb4a0c6b
Refactored RLC AM segment pool for re-use in both LTE and NR
...
Moved RLC AMD PDU definitions from rlc_am_lte.h to rlc_common.h to make them re-usable in both RLC LTE and RLC NR
3 years ago
Pedro Alvarez
54be15e7a6
Moved write pdu to rlc_am_base::rlc_am_base_rx
3 years ago
Pedro Alvarez
476f9e1156
Changed logger initialization in RLC AM entities
3 years ago
Pedro Alvarez
022c51493b
Refactored RLC AM NR/LTE Rx and Tx entities to use a rlc_am_base_rx/tx class.
...
This was done to make it easier to share entity specific code between LTE and NR.
This removes the previously used templates.
3 years ago
Pedro Alvarez
b15f63f32f
Added an RLC AM base class to avoid code duplication in the RLC AM NR entity.
...
This class is based on a template that receives as argument the
rlc_am_*_tx/rx entities, so that those are different for LTE and NR.
Moved code from rlc_am_lte/nr entities so that they use the new base class.
3 years ago
Pedro Alvarez
d528d8af4c
Added initial skeleton for RLC AM NR entity
3 years ago
Pedro Alvarez
2bb249bf09
Moved RLC AM LTE and NR packing functions to their own file.
3 years ago
Pedro Alvarez
f93d428e49
Moved RLC AM data structures to their own file
3 years ago
Carlo Galiotto
d95c31d2de
rlc,rrc,nr: fix rlc bearer string diplayed in logs
...
Signed-off-by: Carlo Galiotto <carlo@srs.io>
3 years ago
Francisco
7ad1ad800e
lte,enb,rlc: atomically compute DL buffer state and update the scheduler in the eNB
3 years ago
Ismael Gomez
80c48a8b01
rlc: protect access to tx_enabled
3 years ago
Francisco
7aa5f731ce
lte,enb,rlc: push to scheduler pending prioritized bytes both in case of RLC timer expiry or in case of new buffer state detection
3 years ago
Francisco
4a58c10f30
lte,enb,rlc: compute and forward to scheduler the number of bytes pending for retx and status pdu in RLC AM bearer
3 years ago
faluco
fa351cd285
Rename functions that contain the unsafe word to nolock.
...
The term "unsafe" does not clearly state that the function is not locking the shared date and it sounds "dangerous", so use a more explicit term.
3 years ago
Andre Puschmann
59e1bca3f5
rlc_am_lte: fix potential crash when attempting to resize tx queue
...
under some circumstances it could happen that the RLC is configured
when SDUs are already being written to the queue. The resize
operation of the underlying container would fail in this case.
Make sure to empty the queue before doing the resize.
3 years ago
faluco
7b079fe289
Fix a data race in rlc TM metrics.
3 years ago
faluco
edb7342aef
Fix data race in rlc UM metrics.
3 years ago
faluco
d009160ba6
Fix data race in the metrics of the rlc.
3 years ago
Francisco Paisana
f518861ebc
fix location of support/ folder. Created macros for ASSERT_EQ and ASSERT_NEQ
3 years ago
Francisco Paisana
599fc978a5
improvement of srsran_assert design, with specializations to enable/disable assertions based on compile flags other than ASSERTS_ENABLED. Creation of the support/ folder
3 years ago
Andre Puschmann
1c3a03cb2b
rlc: fix memleak in queue_rx_pdu
...
* alternative to #3141
* use byte_buffer as queue element
3 years ago
Andre Puschmann
4379c20eb9
rlc_am_lte: avoid locking of Rx mutex twice when generating status PDU
...
call reset_status(), which now is an private method directly when
building a status PDU. No need for the Tx side to call Rx again.
3 years ago
Andre Puschmann
53a7dc78ee
rlc_am_lte: replace do_status boolean with atomic
...
the do_status is queried from the Tx code frequently. To reduce
chances to delay the execution because the RLC Rx side is currently
holding the mutex we can use an atomic.
3 years ago
Pedro Alvarez
171d5727be
Moved lib RLC into it's own folder
3 years ago