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
f72cd4151c
rlc am,bugfix - fixed formatting of RLC AM header and status pdu
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
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
0ba93d274f
converted byte_buffer_queue to use new circular buffer-based queue to avoid mallocs
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
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
Francisco
be7e78da53
limit allocation of PDCP SDU+Timer buffer to DRB+RLC AM cases
4 years ago
Francisco
a3cb21d378
move undelivered_pdcp_sdus class methods to .cc file. Fixed the forwarding of pending PDCP SNs during S1 handover
4 years ago
Francisco
17fa79f24c
couple the pdcp discard timers and sdu buffer management into same subclass. Add asserts to ensure there is no ambiguity in the PDCP SN assignment and buffering. Extend the discard timer and pdcp sdu buffering to SN lengths above 12
4 years ago
Pedro Alvarez
4723dd0aa9
Converted undelivered sdus queue in the PDCP to use a vector.
...
This was done to improve the performance of the notify_delivery().
4 years ago
Francisco
766018f2b4
fix gcc compilation issue
4 years ago
Francisco
b329e25bbb
move ue phy interfaces to separate interfaces header file
4 years ago
Francisco
b8bd869d0f
move ue rlc interfaces to separate interfaces header file
4 years ago
Francisco
a988351f46
move ue pdcp interfaces to separate interfaces header file
4 years ago
Francisco
ea04104e8e
move ue gw interfaces to separate interfaces header file
4 years ago
Francisco
0b6b62324f
convert rlc am retx_queue to circular buffer
4 years ago
Francisco
138685399e
remove allocations from rlc_am_tx::handle_control_pdu
4 years ago
Francisco
9a6512f4e8
fix RLC AM undelivered PDCN SNs reset bug
4 years ago
Francisco
1ede82bb30
use circular array for buffered PDCP SNs in RLC AM to limit memory allocations
4 years ago
Francisco
2a65bf9636
fix undelivered PDCP SNs buffers in RLC AM to handle SN=-1 case
4 years ago
Francisco
bad2302e31
avoid the use of two arrays for managing buffered pdcp sns in RLC AM
4 years ago
Francisco
299634b319
use of vector to store undelivered PDCP SNs in RLC AM
4 years ago
Pedro Alvarez
d8f3878ce1
RLC failure to deliver notifications and discard timer limits to 1500ms ( #2368 )
...
* Added interfaces for the RLC to notify the PDCP of failure to transmit
SDU
* Limit discard timer to 1500ms, to avoid issues of lingering SDUs in the undeliverd_sdus_queue.
* Fix bug in early exit of notify_delivery and notify_failure
* fix compilation issue in rlc-pdcp notification
Co-authored-by: Francisco <francisco.paisana@softwareradiosystems.com>
4 years ago
Francisco
2f75abcc7a
fix failing rlc am test
4 years ago
Francisco
1d185fb152
use macro for rlc tx window size. refactor tx window clearing
4 years ago
Francisco
abe4f4c7eb
use tx_window to store the map of rlc sn to pdcp sns
4 years ago
Francisco
f86eb84876
conversion of RLC AM tx window from std::map to array
4 years ago
Francisco
047dd2a56d
use function helper for discard timer lookup and stopping in the PDCP
4 years ago
Francisco
82bb0a7d81
implementation of pdcp discard timers using a vector for efficiency
4 years ago
Andre Puschmann
40d7934267
rlc: call PDCP notify without holding Tx lock
...
move notify_info_vec as stack variable and unlock mutex
before calling PDCP notify
4 years ago
Francisco Paisana
cd8ee37f74
Use a reverse lookup to avoid iteration over a std::map ( #2363 )
...
* reuse vector capacity for pdcp sn notification
* use an extra lookup data structure to find PDCP SNs that an RLC SN contains
* fix rlc sn->pdcp sn lookup datastructure in rlc
* fix rlc failing test
4 years ago
Pedro Alvarez
6ecd6e273c
Make sure that the status report is sent in RLF and PDCP reestablishment triggered by Handover
4 years ago
Pedro Alvarez
33808a5cb8
Making sure that SNs don't wrap-around in PDCP with RLC AM.
4 years ago
Pedro Alvarez
0e828aeb4b
Remove unecessary mutex. PDCP metrics are accessed from the stack thread.
4 years ago
Pedro Alvarez
451c305790
Add mutex to isolate metrics_hub thread from the stack thread when
...
getting the metrics from the PDCP
4 years ago
Pedro Alvarez
8873b7c42f
Added computation for the metrics
4 years ago
Pedro Alvarez
d34aba8065
Added interfaces to get metrics from PDCP entities.
4 years ago
Pedro Alvarez
eb2f5b978f
Starting to add metrics to lib/upper/pdcp.cc
4 years ago
Pedro Alvarez
dd6a292d79
Added structure to hold PDCP metrics
4 years ago
Pedro Alvarez
e0542a4651
Fix issue in sending PDCP status PDU from the eNB due to non-existing LCID at the RLC.
4 years ago
Pedro Alvarez
b0fe302f8e
Added interfaces so the upper layers can trigger the PDCP status report. Added ability to the UE to send Status Report aftre reestablishment.
4 years ago
Pedro Alvarez
89a23cec7e
Added statusReportRequired to the PDCP entity config.
4 years ago
Pedro Alvarez
f89b644902
Added function to get control pdu type to the PDCP base class. Shorten logger name in PDCP Status report test.
4 years ago
Pedro Alvarez
9bc08af880
- Added ability to the PDCP LTE entity to send PDCP Status report.
...
- Added handling of PDCP status report to the PDCP LTE entity.
- Added test to the generation and handling of PDCP status report.
4 years ago