Pedro Alvarez
9e6b852834
lib,rlc_am_nr: Added handle_full_sdu() and handle_segment_sdu() functions. Reduced duplicate code in handling SDU segments.
3 years ago
Pedro Alvarez
8afea13d9a
lib,rlc_am_nr: added initial logic to support receiving PDU segments.
3 years ago
Pedro Alvarez
aae1d9ad10
lib,rlc_am_nr: changed rlc_amd_nr_tx_sdu to use std::list to store
...
segment infomation. Segment infomation incluses, SO and payload length.
3 years ago
Pedro Alvarez
76c33c78a9
lib,rlc_am_nr: starting to add test for segmentation. Starting to add functions for creating new segments and segment continuation.
3 years ago
Pedro Alvarez
3e5b064a08
lib,rlc_am_nr: starting to add build_sdu_segment() function.
...
Also adding write_header function that receives as argument uint8_t* so
we can write the header straight to the payload.
3 years ago
Pedro Alvarez
b425316936
lib,rlc_am_nr: fixed tx_mod_base_nr(). Added unit test for inside_tx_window().
3 years ago
Pedro Alvarez
ab8577ff43
lib,rlc_am_nr: switched back to unsigned rx_mod_base. Removed if that is always true.
3 years ago
Pedro Alvarez
fea7828d3e
lib,rlc_am_nr: added struct to hold state variables. This is consistent
...
with TX and makes it easier to make getter/setters.
3 years ago
Pedro Alvarez
bca9ef2454
lib,rlc_am_nr: made mod_nr configurable
3 years ago
Pedro Alvarez
665aea599c
lib,rlc_am_nr: made sure that the return of rx_mod_base and tx_mod_base is signed by changing from a macro to an class method.
3 years ago
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