Commit Graph

204 Commits

Author SHA1 Message Date
Codebot b5c994dd79 Merge branch 'next' into agpl_next 2022-07-17 21:12:22 +00:00
Pedro Alvarez 0cc632988f lib,rlc: tweaked some comments 2022-07-08 12:57:07 +01:00
Pedro Alvarez f5658619b8 lib,rlc: ack_sn does not count as a positive or negative acknowledgment.
do not stop t-PollRetransmit for it
2022-07-08 12:57:07 +01:00
Pedro Alvarez 7ac7c8673a lib,rlc: Fixed issue where `p` bit was not checked if PDU was outside of
the RX window. This could lead to a data stall, where TX keeps retx'ing
the same PDU to request a status report.
2022-07-08 12:57:07 +01:00
Pedro Alvarez f4ca1848d6 lib,rlc: allow reception of ACK_SN == TX_NEXT+1,
as this can happen when the last segment has not been sent yet.
2022-07-08 12:57:07 +01:00
Pedro Alvarez ede44369f4 lib,rlc: add fix for issue in checking full RLC TX window 2022-07-08 12:57:07 +01:00
Pedro Alvarez dc71048d83 lib,rlc: fixed up test for full rx window 2022-07-08 12:57:07 +01:00
Pedro Alvarez b7ec529ff2 lib,rlc: allow ACK_SN be one over the end of the RX window. 2022-07-08 12:57:07 +01:00
Codebot ac06cf7453 Merge branch 'next' into agpl_next 2022-06-12 21:12:20 +00:00
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).
2022-06-06 11:27:52 +02: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 6a3b9257e3 Merge branch 'next' into agpl_next 2022-06-05 21:12:59 +00:00
Pedro Alvarez 6d313f1875 lib,pdcp_nr: added extra comments on logging information to regarding
discard and t-Reordering expiry
2022-06-02 20:25:53 +01:00
Codebot 49554c2c46 Merge branch 'next' into agpl_next 2022-05-22 21:12:28 +00:00
Robert Falkenberg e0620873ef lib,rlc_am_nr: no error on insufficient space for new or continued segment. 2022-05-19 15:32:32 +02:00
Robert Falkenberg cbc8364a94 lib,rlc_am_nr: no error on insufficient space for RETX segment. 2022-05-19 15:32:32 +02:00
Codebot e79aa61a9a Merge branch 'next' into agpl_next 2022-05-15 21:14:43 +00:00
Pedro Alvarez ae8191c46d lib,rlc_am_nr: make sure we check that ACK_SN is not larger than TX_NEXT (after we checked we didn't get an ACK out of order) 2022-05-13 10:27:52 +01:00
Pedro Alvarez 97b66dbc4c lib,rlc_am_nr: fixed mal-formed status report in test. 2022-05-13 10:27:52 +01:00
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
2022-05-13 10:27:52 +01:00
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
2022-05-13 10:27:52 +01:00
Pedro Alvarez 7c42b09e89 lib,rlc_am_nr: check if rx ACK is smaller than current Tx_Next_Ack 2022-05-13 10:27:52 +01:00
Robert Falkenberg 0c24e9c55f lib,rlc_am_nr: clean retx_queue of ACK'ed SDUs 2022-05-13 06:49:13 +02:00
Robert Falkenberg e9156d4ba2 lib,rlc_am_nr: status PDU creation supports NACK range 2022-05-10 14:02:39 +02:00
Pedro Alvarez e01bbb8f79 lib,rlc_am_nr: support also NACK ranges without SO_start/end. Fix for NACK ranges of sizee == 1 2022-05-09 14:03:25 +01:00
Pedro Alvarez 6d8357bee9 lib,rlc_am_nr: deleted error log for unhandled NACK ranges 2022-05-09 14:03:25 +01:00
Pedro Alvarez c386d89577 lib,rlc_am_nr: fix nack ranges with so 2022-05-09 14:03:25 +01:00
Pedro Alvarez 444783e2f2 lib,rlc_am_nr: added handling of nack ranges at RX 2022-05-09 14:03:25 +01:00
Codebot f2dff0b7a0 Merge branch 'next' into agpl_next 2022-05-04 16:21:18 +00:00
Pedro Alvarez 840aac7fda lic,rlc_am_nr: removed stop_no_lock(), it is not necessasry 2022-04-29 09:54:49 +01:00
Pedro Alvarez ea532cbf41 lib,rlc_am_nr: added stop() method to RX entity 2022-04-29 09:54:49 +01:00
Pedro Alvarez 2f8fd7a483 lib,rlc_am_nr: add stop() method to TX entity 2022-04-29 09:54:49 +01: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
Robert Falkenberg 828c7ec02d lib,rlc_am_nr: Change log level for already acked (removed) RETX. 2022-04-28 14:55:44 +01:00
Pedro Alvarez e023cecd28 lib,rlc_am_nr: lower log level of unsupported NACK ranges from warning to error 2022-04-27 21:30:13 +01:00
Pedro Alvarez 5992303aca lib,rlc_am_nr: make sure we react to polling bit, even if SDU/SDU
segment is a duplicate/overlapping.
2022-04-27 16:27:52 +01:00
Pedro Alvarez 68cc16ad68 lib,rlc_am_nr: fix assert triggered by receiving duplicate segments 2022-04-27 16:27:52 +01:00
Pedro Alvarez ee06a8893b lib,rlc_am_nr: fix wrong full sdu queue check 2022-04-26 22:01:47 +02:00
Pedro Alvarez 9dbb7acffa lib,rlc_am_nr: ensure early return if there is not enough space for payload plus header 2022-04-26 20:38:46 +02:00
Codebot 123f766935 Merge branch 'next' into agpl_next 2022-04-26 08:28:16 +00:00
Pedro Alvarez 0c562336d2 lib,rlc_am_nr: change update of POLL SN to be the currently being
transmitted SDU (if not an RETX)
2022-04-25 15:49:58 +01:00
Pedro Alvarez d7a32a0ea5 lib,rlc_am_nr: sending first SDU segment if t-PollRetransmit expires
instead of full SDU. Adressing test accordingly
2022-04-25 15:49:58 +01:00
Pedro Alvarez 361d3f46e0 lib,rlc_am_nr: starting to fix retx poll expiry test 2022-04-25 15:49:58 +01:00
Pedro Alvarez 42f7094a0e lib,rlc_am_nr: changed order in which the ack of poll SN is checked 2022-04-25 15:49:58 +01:00
Pedro Alvarez 0ee20d7a0c lib,rlc_am_nr: addressing reviewers comments:
* Tweaked logs
 * Addressed a missing modulus in handling a state variable.
 * made restarting t-PollRetransmission look more like the comment.
2022-04-25 15:49:58 +01:00
Pedro Alvarez 0551244d64 lib,rlc_am_nr: make sure has_data returns true when there are retxs. Make sure t-PollRetransmit is not started if it is set to infinity. 2022-04-25 15:49:58 +01:00
Pedro Alvarez 6ff18272e0 lib,rlc_am_nr: added debug_window function 2022-04-25 15:49:58 +01:00
Pedro Alvarez d2d3c4140a lib,rlc_am_nr: make sure that sdu_under_segmentation is set before calculating the polling bit 2022-04-25 15:49:58 +01:00
Pedro Alvarez ffb0c21903 lib,rlc_am_nr: stop poll retransmission if POLL_SN is ACKed/NACKed 2022-04-25 15:49:58 +01:00