Commit Graph

3557 Commits

Author SHA1 Message Date
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
Zishuai CHENG 2e4b1aceaf Parse tmsi type of mobile id and fixed the content length of network feature support 2022-07-21 09:55:38 +02:00
Robert Falkenberg 7e7eceda15 ctest: Viterbi test skips 0dB for non AVX2 machines
The accuracy of the 8-bit implementation of the Viterbi decoder used on
non-AVX2 machines falls below the theoretical accuracy at 0dB.
2022-07-19 14:34:38 +02:00
Robert Falkenberg 06f2ab6d7c ctest: PDCCH test skips 100PRB for non AVX2 machines
The current 8-bit Viterbi decoder implementation for SSE (non-AVX2)
is not accurate enough to reliably decode all messages with a
code rate ~0.9 or higher, e.g. DCI format 2/2A messages in 100 PRB cell
at aggregation level 0.
2022-07-19 14:34:38 +02:00
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 ce67ab1f9f Merge branch 'next' into agpl_next 2022-06-26 21:12:23 +00:00
Robert Falkenberg a1db7fe9fe rlc_am_nr: fix shadowed variable 2022-06-23 12:38:28 +02: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 0f1c8b03c7 lib,pdcp_nr: fixed up some comments and a logging message 2022-06-02 20:25:53 +01:00
Pedro Alvarez eb819cb9d0 lib,pdcp_nr: fix RX_DELIV update when t-Reordering expires 2022-06-02 20:25:53 +01:00
Pedro Alvarez 5f385bb33f lib,pdcp_nr: fix logging message when discard timer expires 2022-06-02 20:25:53 +01:00
Pedro Alvarez 82e4b9e238 lib,pdcp_nr: fix discard timer not being stopped correctly 2022-06-02 20:25:53 +01: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
Pedro Alvarez c82f58c0b9 lib,pdcp_nr: drop SDU if RLC queue is full 2022-05-30 17:23:29 +01:00
Codebot c00f44037c Merge branch 'next' into agpl_next 2022-05-29 21:12:21 +00:00
Pedro Alvarez 57772ffa35 lib,pdcp_nr: added warning for trying to use t-Reordering of infinity on RLC UM bearers 2022-05-24 14:35:05 +01:00
Pedro Alvarez 8d65b40734 lib,pdcp_nr: allow for t-reordering of inifinity 2022-05-24 14:35:05 +01:00
Robert Falkenberg e891d72ab8 lib,rlc_am_nr: fix out-of-bounds access when unpacking malformed status PDUs 2022-05-23 14:19:18 +02:00
Codebot 49554c2c46 Merge branch 'next' into agpl_next 2022-05-22 21:12:28 +00:00
Pedro Alvarez 84cf5c30ec lib,pdcp_nr: rm ifdef to select PDCP NR. PDCP NR is always selected now 2022-05-20 11:01:04 +01: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
Pedro Alvarez 02b3558390 lib,pdcp_nr: fix typos 2022-05-17 10:29:37 +01:00
Pedro Alvarez 7f98101f30 lib,pdcp_nr: fix rx unit tests 2022-05-17 10:29:37 +01:00
Pedro Alvarez b361ab0650 lib,pdcp_nr: fix pdcp nr encryption 2022-05-17 10:29:37 +01:00
Pedro Alvarez 1b2c9502e2 lib,pdcp_nr: fix order in which header discard was done in PDCP NR. 2022-05-17 10:29:37 +01:00
Pedro Alvarez 39fbf21174 lib,pdcp_nr: fix order of integrity generation 2022-05-17 10:29:37 +01:00
Pedro Alvarez a148dff0cd gnb,ue,rrc: enable using integrity on DRBs 2022-05-17 10:29:37 +01:00
Robert Falkenberg 02cb2532f8 lib,pdcp_nr: make sure MAC-I is computed on SRBs, even when integrity is not active yet 2022-05-16 16:16:07 +01:00
Pedro Alvarez c015540f54 lib,pdcp_nr: make sure MAC-I is added on SRBs, even when integrity is not active yet 2022-05-16 16:16:07 +01:00
Pedro Alvarez 25b8a35d7a lib,pdcp_nr: make sure we don extract MAC-I if integrity is not enabled. Make sure gNB does not enable integrity on DRBs 2022-05-16 16:16:07 +01: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