Pedro Alvarez
b001d6c10e
lib,rlc_am_lte: fix checkers for the TX window full
2 years ago
Pedro Alvarez
dc71048d83
lib,rlc: fixed up test for full rx window
2 years ago
Pedro Alvarez
b7ec529ff2
lib,rlc: allow ACK_SN be one over the end of the RX window.
2 years ago
Robert Falkenberg
a11291eb08
lib,rlc_am_nr: fix handling of NACK ranges with SO reaching SDU edge
...
This changes the handling of NACK ranges with segment offset (SO),
where either so_start or so_end reach the edge of a full SDU.
That SDU is then NACK'ed as a whole, rather than as a segment
from 0 to 0xFFFF.
Otherwise, the search for segments will fail if said SDU was
initially sent as a whole (without segmentation).
2 years ago
Pedro Alvarez
6d55560256
lib,rlc_am_nr: check if ACK SN is within rx_window. Stop
...
t-PollRetransmit only if status report is not ignored
3 years ago
Pedro Alvarez
c457132570
lib,rlc_am_nr: avoid if that would always be true when checking the
...
out-of-order ACK. Check ACK_SN instead of stop SN with Tx_Next_Ack
3 years ago
Robert Falkenberg
0c24e9c55f
lib,rlc_am_nr: clean retx_queue of ACK'ed SDUs
3 years ago
Robert Falkenberg
95480297f4
lib,rlc_am_nr: unit test removal of ACK'ed SDUs from retx queue
3 years ago
Robert Falkenberg
ebbecbe27c
lib,rlc_am_nr: cosmetic change -- clang format
3 years ago
Robert Falkenberg
9a34d4d81b
lib,rlc_am_nr: unit tests for NACK merging
3 years ago
Robert Falkenberg
ecc995bd4b
lib,rlc_am_nr: merge NACKs across SN overflows
3 years ago
Robert Falkenberg
e9156d4ba2
lib,rlc_am_nr: status PDU creation supports NACK range
3 years ago
Pedro Alvarez
444783e2f2
lib,rlc_am_nr: added handling of nack ranges at RX
3 years ago
Pedro Alvarez
840aac7fda
lic,rlc_am_nr: removed stop_no_lock(), it is not necessasry
3 years ago
Pedro Alvarez
ea532cbf41
lib,rlc_am_nr: added stop() method to RX entity
3 years ago
Pedro Alvarez
2f8fd7a483
lib,rlc_am_nr: add stop() method to TX entity
3 years ago
Andre Puschmann
70eaec21e2
all: fix uninitialized variables detected by coverity
3 years ago
Pedro Alvarez
ee06a8893b
lib,rlc_am_nr: fix wrong full sdu queue check
3 years ago
Pedro Alvarez
6ff18272e0
lib,rlc_am_nr: added debug_window function
3 years ago
Pedro Alvarez
515f2099be
lib,rlc_am_nr: added SN to get pdu poll function. Setting POLL_SN now.
3 years ago
Pedro Alvarez
b3edced44a
lib,rlc_am_nr: added t_poll_retransmit to tx entity
3 years ago
Robert Falkenberg
4028b26274
lib,rlc_am_nr: add info_state()
3 years ago
Robert Falkenberg
d66c76b374
lib,rlc_am_nr: consider size of all pending retx in buffer state
3 years ago
Robert Falkenberg
20201cd89b
lib,rlc_am_nr: cosmetic change, add comment
3 years ago
Pedro Alvarez
63877ba209
lib,rlc_am_nr: make sure that tx_buffer_queue size is configurable
3 years ago
Robert Falkenberg
ca37eed664
lib,rlc_am_nr: default initialize member in class definition
3 years ago
Robert Falkenberg
48dce0aab0
lib,rlc_am_nr: truncate status PDUs if necessary
3 years ago
Robert Falkenberg
489259dc78
lib,rlc_am_nr: extend status PDU struct with self-contained packed size info
...
This change refactors the rlc_am_nr_status_pdu_t from a simple
container into a class with integrated counter of the packed size.
As this depends on the SN length, the SN length must be passed
via constructor.
3 years ago
Robert Falkenberg
eec4a395d0
lib,rlc_am_nr: status PDU to string prints NACK range
3 years ago
Robert Falkenberg
1a5683c226
lib,rlc_am_nr: add overlap check for segment offsets in rlc_amd_retx and queue
3 years ago
Pedro Alvarez
9d0bbc45b3
lib,rlc_am_nr: added debug window function
3 years ago
Robert Falkenberg
dd7bd351b3
lib,rlc_am_nr: fix pack/unpack of NACKs in status PDUs
3 years ago
Robert Falkenberg
d8cb4ec700
lib,rlc_am_nr: detect gaps in sequence of received SDU segments
...
This is required for checks such as
"there is at least one missing byte segment [...] before
the last byte of all received segments of this SDU"
3 years ago
Robert Falkenberg
79e8f7625e
lib,rlc_am_nr: fix log msg for AM NR PDU header
3 years ago
Robert Falkenberg
7e13cd0712
lib,rlc_am_nr: rename get_tx_window_size() to get_tx_window_utilization()
3 years ago
Pedro Alvarez
12f440145d
lib,rlc_am_nr: changed build_retx_pdu_without_segmentation to pass retx
...
info by copy. This is to avoid accidently using retx info by reference
after pop'ing the retx from the queue.
3 years ago
Pedro Alvarez
b4814bfdc1
lib,rlc_am_nr: added test for polling bit set when retx queue is empty. Fixed lost PDU test now that we correctly set the polling bit.
3 years ago
Pedro Alvarez
1d1e6dd832
lib,rlc_am_nr: added pollBYTE support and a unit test for it
3 years ago
Pedro Alvarez
eaa8fff6a0
lib,rlc_am_nr: Passing bool to get_pdu_poll() to differentiate the
...
behaviour between RETX and non-RETX PDUs.
3 years ago
Robert Falkenberg
5bb6cdec1e
lib,rlc_am_nr: use std:vector for nacks in rlc_am_nr_status_pdu_t
...
- Also create tx_status a member to avoid frequent allocations
for each created PDU.
- Remove unused member nack_range from rlc_am_nr_status_pdu_t.
3 years ago
Robert Falkenberg
0cf052e31d
lib,rlc_am_nr: replace hard-coded WINDOWS_SIZE
3 years ago
Robert Falkenberg
80e23624f8
lib,rlc_am_nr: extract function am_window_size()
3 years ago
Robert Falkenberg
47c1845cdc
lib,rlc_am_nr: add pdu_retx_queue_base, rlc_ringbuffer_base as interfaces
...
that are independent from templated capacity.
3 years ago
Robert Falkenberg
11ac8c2529
lib,rlc_am_nr: add support for 18-bit SNs
...
and first bunch of corresponding unit tests
3 years ago
Robert Falkenberg
b6d93577a0
rlc, nr: replace so_end by segment_length
3 years ago
Robert Falkenberg
bb7339910f
rlc: separate types of rlc_amd_retx_t for LTE and NR
3 years ago
Robert Falkenberg
60c3d79f47
rlc, nr: complete packing of status PDUs with 18bit SNs
3 years ago
Robert Falkenberg
f7515e98cf
rlc, nr: add pack/unpack of nack_range in status PDUs
3 years ago
Robert Falkenberg
0fb6420e8b
rlc, nr: avoid multi increments of SDU's retx_count within one status message
3 years ago
Robert Falkenberg
511ad9ed25
rlc, nr: Increment retx_count for segments
3 years ago