Codebot
38a520b3c2
Merge branch 'next' into agpl_next
2022-07-24 21:12:22 +00:00
Pedro Alvarez
e4207b177f
lib,rlc_am_lte: added fix for full tx window with wraparround
2022-07-21 11:26:30 +01:00
Pedro Alvarez
b001d6c10e
lib,rlc_am_lte: fix checkers for the TX window full
2022-07-21 11:26:30 +01:00
Codebot
ac06cf7453
Merge branch 'next' into agpl_next
2022-06-12 21:12:20 +00:00
Robert Falkenberg
fccfd5e140
lib,rlc_am_{lte,nr}: fix/add tx_window overrun protection
...
This commit fixes as bug causing a crash of the eNB in case
of many pending RETX and the reception of a trimmed PDU.
The following sequence leads to a crash:
- RETX queue contains many PDUs for RETX
- Receive trimmed PDU containing a trimmed subset of NACKs
- RETX queue is cleared and re-populated with a trimmed subset
- After all RETX (/!\ trimmed subset) is done, continue TX new PDUs
- tx_window blows up
- tx_window overflows if another status PDU is not received in time
- Overflow overwrites oldest element in tx_window
- Handling of next status PDU fails due to missing elements in tx_window
Related PR #4029
2022-06-06 11:26:57 +02:00
Codebot
4d2b5b8eda
Adding AGPL copyright to new files
2022-04-29 07:28:44 +00:00
Codebot
9211ad7d51
Merge branch 'next' into agpl_next
2022-04-29 07:28:41 +00:00
Pedro Alvarez
ee06a8893b
lib,rlc_am_nr: fix wrong full sdu queue check
2022-04-26 22:01:47 +02:00
Codebot
123f766935
Merge branch 'next' into agpl_next
2022-04-26 08:28:16 +00:00
Robert Falkenberg
bb7339910f
rlc: separate types of rlc_amd_retx_t for LTE and NR
2022-03-09 08:28:46 +01:00
Robert Falkenberg
95ebc06ec1
rlc: implement SDU discard for AM+UM in NR+LTE
...
- Implemented in common base classes
- Added locking
2022-02-23 11:18:31 +01:00
Codebot
9664aa3cf4
Merge branch 'next' into agpl_next
...
# Conflicts:
# lib/include/srsran/phy/channel/ch_awgn.h
2022-01-23 23:12:27 +01:00
Andre Puschmann
aaceb029eb
rlc_am_lte: fix wrong fmt string
2022-01-19 12:26:18 +01:00
Pedro Alvarez
9bd368e0a9
lib,rlc: changed back status and header logging helpers to log directly. Make sure RB name is automatically logged.
2022-01-18 11:53:37 +00:00
Pedro Alvarez
b53da22eb1
lib,rlc: changed return of string helper functions from char* to std::string to avoid UB
2022-01-18 11:53:37 +00:00
Pedro Alvarez
b46c5423f0
lib,rlc: make sure TM rb name is initialized. changed rlc_um_lte to use new logging macros
2022-01-18 11:53:37 +00:00
Pedro Alvarez
e157806db2
lib,rlc_am_lte: removed RB_NAME macro. changed status and data pdu logging helpers to return C strings. Using new logging macros to make sure that RB name is included when logging status and amd pdus.
2022-01-18 11:53:37 +00:00
Pedro Alvarez
0f4b64f13f
lib,rlc: added macros for hex logging that automatically add the rb_name. changed logging to use new macros in multiple places.
2022-01-18 11:53:37 +00:00
Codebot
21525935ab
Merge branch 'next' into agpl_next
...
# Conflicts:
# srsue/hdr/phy/ue_lte_phy_base.h
# srsue/hdr/phy/ue_nr_phy_base.h
2021-12-19 23:12:24 +01:00
Pedro Alvarez
57fc2470ad
lib,rlc_am_lte: added some debug logging to t-PollRetranmission expiry and re-arming.
2021-12-09 11:30:59 +00:00
Pedro Alvarez
ee4bf85209
lib,rlc_am_lte: check segment's polling requirements after updating the RETX queue. This makes sure that if the RETX and TX queues are empty after the last segment, polling is requested and the t-PollRetransmission is restarted
2021-12-09 11:30:59 +00:00
Codebot
e0734e584d
Merge branch 'next' into agpl_next
...
# Conflicts:
# lib/include/srsran/rrc/nr/rrc_nr_cfg_utils.h
# lib/src/rrc/CMakeLists.txt
# lib/src/rrc/nr/rrc_nr_cfg_utils.cc
2021-11-21 23:12:38 +01:00
Codebot
3a9014802d
Merge branch 'next' into agpl_next
...
# Conflicts:
# srsenb/hdr/stack/rrc/nr/rrc_config_nr.h
# srsenb/hdr/stack/rrc/rrc_nr.h
# srsenb/src/stack/mac/nr/sched_nr_signalling.cc
# srsenb/test/rrc/rrc_nr_test.cc
2021-11-14 23:12:22 +01:00
Pedro Alvarez
123ac16653
rlc_am_nr: fixed issue with pointers from rx entity to tx entity
2021-11-12 22:41:37 +00:00
Pedro Alvarez
f99e841421
Changed using a rlc_am_lte and rlc_am_nr entity, to a single rlc_am entity.
2021-11-12 22:41:37 +00:00
Pedro Alvarez
eefedcfccd
rlc_am_nr: renamed rlc_am_base to just rlc_am
2021-11-12 22:41:37 +00:00
Pedro Alvarez
aef87d5366
rlc_am_nr: Change rlc_am_base to use unique_ptr to hold rx/tx entities
2021-11-12 22:41:37 +00:00
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
2021-11-12 22:41:37 +00:00
Pedro Alvarez
54be15e7a6
Moved write pdu to rlc_am_base::rlc_am_base_rx
2021-11-12 22:41:37 +00:00
Pedro Alvarez
476f9e1156
Changed logger initialization in RLC AM entities
2021-11-12 22:41:37 +00:00
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.
2021-11-12 22:41:37 +00:00
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.
2021-11-12 22:41:37 +00:00
Pedro Alvarez
2bb249bf09
Moved RLC AM LTE and NR packing functions to their own file.
2021-11-04 16:12:07 +00:00
Pedro Alvarez
f93d428e49
Moved RLC AM data structures to their own file
2021-11-04 16:12:07 +00:00
Codebot
1cd26af06b
Merge branch 'next' into agpl_next
2021-10-28 13:01:49 +02:00
Francisco
7ad1ad800e
lte,enb,rlc: atomically compute DL buffer state and update the scheduler in the eNB
2021-10-26 21:44:59 +02:00
Codebot
2cda208936
Merge branch 'next' into agpl_next
2021-10-26 10:32:37 +02:00
Ismael Gomez
80c48a8b01
rlc: protect access to tx_enabled
2021-10-21 21:31:21 +02:00
Francisco
d60950d0f3
lte,enb,rlc: change new_tx and prio_tx variable names to snake_case and ensure they are zero initialized
2021-10-21 09:31:03 +01:00
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
2021-10-21 09:31:03 +01:00
Francisco
4a58c10f30
lte,enb,rlc: compute and forward to scheduler the number of bytes pending for retx and status pdu in RLC AM bearer
2021-10-21 09:31:03 +01:00
Codebot
8c3332f894
Merge branch 'next' into agpl_next
...
# Conflicts:
# srsenb/hdr/stack/upper/pdcp_nr.h
# srsenb/hdr/stack/upper/rlc_nr.h
# srsenb/src/stack/upper/pdcp_nr.cc
# srsenb/src/stack/upper/rlc_nr.cc
2021-10-03 23:13:30 +02:00
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.
2021-09-27 13:26:21 +02:00
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.
2021-09-27 11:35:42 +02:00
Codebot
ecd0580b9e
Merge branch 'next' into agpl_next
2021-09-26 23:12:44 +02:00
faluco
d009160ba6
Fix data race in the metrics of the rlc.
2021-09-17 11:34:28 +02:00
Codebot
635d0bc6e9
Merge branch 'next' into agpl_next
2021-08-08 23:12:19 +02:00
Andre Puschmann
7726acad41
rlc_am_lte: fix counting of retx of entire PDUs and PDU segments
...
this patch fixes a bug discovered in a real network where the DL CQI of a
user degraded repidly in very short time. A relativly big RLC PDU that
was still sent with the good CQI in a big grant now needs to be split
across many tiny segments because the CQI degraded so much.
The retx couting for each transmitted segment caused the retx counter to
reach maxRetx quickly.
With this patch we do not increment the retx counter for each transmitted
PDU or segment of a PDU but instead only increment the counter when
a given SN is added to the retx queue. This can happen either:
a) if the SN is negativly acknowledged and was not already on the retx queue,
b) no new data is available for tx and a SN is selected for retx.
This is in accordance with TS 36.322 which handles retx counting in section
5.2.1 according to the above description.
2021-08-04 13:06:38 +02:00
Codebot
516951c41c
Merge branch 'next' into agpl_next
...
# Conflicts:
# lib/include/srsran/interfaces/rrc_nr_interface_types.h
# lib/include/srsran/phy/enb/enb_dl_nr.h
# test/phy/nr_dl_flood.cc
2021-07-11 23:12:20 +02:00
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.
2021-07-06 12:50:48 +02:00