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.
2 years ago
Pedro Alvarez
40f19b0e2c
lib,rlc: added check for status report in full rx_window test.
2 years ago
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.
2 years ago
Pedro Alvarez
ede44369f4
lib,rlc: add fix for issue in checking full RLC TX window
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
Pedro Alvarez
51ffd91f16
lib,rlc: added unit test that triggers assert when RX window is full
2 years ago
Robert Falkenberg
a1db7fe9fe
rlc_am_nr: fix shadowed variable
2 years ago
Robert Falkenberg
e057a8ec27
lib,pdcp_nr: unit test - remove redundant assignment
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
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
2 years ago
Pedro Alvarez
d5909a306f
lib,pdcp_nr: fixed typos and rephrased log in tests.
2 years ago
Pedro Alvarez
0f1c8b03c7
lib,pdcp_nr: fixed up some comments and a logging message
2 years ago
Pedro Alvarez
540483ba9e
lib,pdcp: added unit test to check discard timer is running when a PDU is TX'ed and stopped when the ACK has been notified.
2 years ago
Pedro Alvarez
e87416ff99
lib,pcdp_nr: added checks for stopped reordering timer and correct state
...
when receiving out-of-order packets in unit tests.
2 years ago
Pedro Alvarez
eb819cb9d0
lib,pdcp_nr: fix RX_DELIV update when t-Reordering expires
2 years ago
Pedro Alvarez
5f385bb33f
lib,pdcp_nr: fix logging message when discard timer expires
2 years ago
Pedro Alvarez
82e4b9e238
lib,pdcp_nr: fix discard timer not being stopped correctly
2 years ago
Pedro Alvarez
6d313f1875
lib,pdcp_nr: added extra comments on logging information to regarding
...
discard and t-Reordering expiry
2 years ago
Pedro Alvarez
c82f58c0b9
lib,pdcp_nr: drop SDU if RLC queue is full
2 years ago
Pedro Alvarez
57772ffa35
lib,pdcp_nr: added warning for trying to use t-Reordering of infinity on RLC UM bearers
2 years ago
Pedro Alvarez
8d65b40734
lib,pdcp_nr: allow for t-reordering of inifinity
2 years ago
Robert Falkenberg
e891d72ab8
lib,rlc_am_nr: fix out-of-bounds access when unpacking malformed status PDUs
2 years ago
Pedro Alvarez
84cf5c30ec
lib,pdcp_nr: rm ifdef to select PDCP NR. PDCP NR is always selected now
3 years ago
Robert Falkenberg
e0620873ef
lib,rlc_am_nr: no error on insufficient space for new or continued segment.
3 years ago
Robert Falkenberg
cbc8364a94
lib,rlc_am_nr: no error on insufficient space for RETX segment.
3 years ago
Robert Falkenberg
0c9ba5b87e
lib,asn1_utils: fix out of bounds access on zero-sized array
...
* fix error: ... offset 0 is out of the bounds [0, 0] [-Werror=array-bounds]
* fix note: destination object of size 0 allocated by ‘operator new []’
--> data_ = new T[cap_];
3 years ago
Pedro Alvarez
02b3558390
lib,pdcp_nr: fix typos
3 years ago
Pedro Alvarez
7f98101f30
lib,pdcp_nr: fix rx unit tests
3 years ago
Pedro Alvarez
904dbff471
lib,pdcp_nr: fixed PDCP NR tx unit tests
3 years ago
Pedro Alvarez
b361ab0650
lib,pdcp_nr: fix pdcp nr encryption
3 years ago
Pedro Alvarez
1b2c9502e2
lib,pdcp_nr: fix order in which header discard was done in PDCP NR.
3 years ago
Pedro Alvarez
39fbf21174
lib,pdcp_nr: fix order of integrity generation
3 years ago
Pedro Alvarez
a148dff0cd
gnb,ue,rrc: enable using integrity on DRBs
3 years ago
Robert Falkenberg
aa9f844630
adt,fsm: ignore GCC warning for template specialization w/wo defaults for ReactFn or GuardFn
3 years ago
Robert Falkenberg
02cb2532f8
lib,pdcp_nr: make sure MAC-I is computed on SRBs, even when integrity is not active yet
3 years ago
Pedro Alvarez
c015540f54
lib,pdcp_nr: make sure MAC-I is added on SRBs, even when integrity is not active yet
3 years ago
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
3 years ago
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)
3 years ago
Pedro Alvarez
97b66dbc4c
lib,rlc_am_nr: fixed mal-formed status report in test.
3 years ago
Pedro Alvarez
abc7294316
lib,rlc_am_nr: addded unit test for out of order status report
3 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
Pedro Alvarez
7c42b09e89
lib,rlc_am_nr: check if rx ACK is smaller than current 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
e20cb2e0c8
lib,rlc_am_nr: empty PDUs shall not increment metrics.num_tx_pdus
3 years ago
Pedro Alvarez
2c5a74340b
lib,rlc_um_nr: reduce log level of message
3 years ago
Robert Falkenberg
7b77558fd4
lib,rlc_um_nr: add log message if tx_sdu_queue has no non-null SDU
3 years ago
Pedro Alvarez
6a40fd8411
lib,pdcp_nr: disabe discard timer with RLC UM
3 years ago
Pedro Alvarez
92a6d8ec66
lib,rlc_um_nr: fix issue with discard in RLC UM NR
3 years ago
Pedro Alvarez
68b6facac8
lib,pdcp_nr: log RLC mode in PDCP configuration
3 years ago
Robert Falkenberg
9687af7660
add missing include for build with GCC 12
...
Related info: https://gcc.gnu.org/gcc-12/porting_to.html
3 years ago
Pedro Alvarez
97b32f2fb6
rrc_nr,utils: fix generation of RLC configs from ASN.1 structs created from cfg parser.
3 years ago
Pedro Alvarez
3620308940
lib,pdcp_nr: added options to select re-ordering timer
3 years ago
Pedro Alvarez
1fecae9b5a
lib,pdcp_nr: added ifdef to select pdcp_entity_nr
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
283199d54f
lib,rlc_am_nr: added unit test for nack ranges without SO
3 years ago
Pedro Alvarez
e01bbb8f79
lib,rlc_am_nr: support also NACK ranges without SO_start/end. Fix for NACK ranges of sizee == 1
3 years ago
Pedro Alvarez
6d8357bee9
lib,rlc_am_nr: deleted error log for unhandled NACK ranges
3 years ago
Pedro Alvarez
de67d88ca9
lib,rlc_am_nr: fix buffer state checker in rx status report with ranges test
3 years ago
Pedro Alvarez
c386d89577
lib,rlc_am_nr: fix nack ranges with so
3 years ago
Pedro Alvarez
855ab8f7fd
lib,rlc_am_nr: added unit test to nack ranges
3 years ago
Pedro Alvarez
444783e2f2
lib,rlc_am_nr: added handling of nack ranges at RX
3 years ago
Pedro Alvarez
407c44617c
lib,rlc_am_nr: fix typo
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
Robert Falkenberg
828c7ec02d
lib,rlc_am_nr: Change log level for already acked (removed) RETX.
3 years ago
Andre Puschmann
70eaec21e2
all: fix uninitialized variables detected by coverity
3 years ago
Pedro Alvarez
3714548391
lib,rlc_am_nr: re-enable rlc am nr stress tests
3 years ago
Pedro Alvarez
e023cecd28
lib,rlc_am_nr: lower log level of unsupported NACK ranges from warning to error
3 years ago
Pedro Alvarez
5992303aca
lib,rlc_am_nr: make sure we react to polling bit, even if SDU/SDU
...
segment is a duplicate/overlapping.
3 years ago
Pedro Alvarez
68cc16ad68
lib,rlc_am_nr: fix assert triggered by receiving duplicate segments
3 years ago
Andre Puschmann
cbc0b43621
lib,radio,rf: fix printf arguments
3 years ago
Andre Puschmann
67f66e7d63
radio_dummy: fix potential result overflow by converting to wider type first
3 years ago
Ali_UBUNTU18.04
3fdec57a47
liblte_mme: Added sec_hdr_type check in liblte_mme_pack_deactivate_eps_bearer_context_request_msg
3 years ago
Pedro Alvarez
ee06a8893b
lib,rlc_am_nr: fix wrong full sdu queue check
3 years ago
Pedro Alvarez
9dbb7acffa
lib,rlc_am_nr: ensure early return if there is not enough space for payload plus header
3 years ago
Pedro Alvarez
0c562336d2
lib,rlc_am_nr: change update of POLL SN to be the currently being
...
transmitted SDU (if not an RETX)
3 years ago
Pedro Alvarez
4d59989f72
lib,rlc_am_nr: fix t-PollRetransmion timer test to work with 18bit SN
3 years ago
Pedro Alvarez
abfa113576
lib,rlc_am_nr: fix wrong buffer state calculation for segment RETXes
...
when SO=0
3 years ago
Pedro Alvarez
d7a32a0ea5
lib,rlc_am_nr: sending first SDU segment if t-PollRetransmit expires
...
instead of full SDU. Adressing test accordingly
3 years ago
Pedro Alvarez
361d3f46e0
lib,rlc_am_nr: starting to fix retx poll expiry test
3 years ago
Pedro Alvarez
42f7094a0e
lib,rlc_am_nr: changed order in which the ack of poll SN is checked
3 years ago
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.
3 years ago
Pedro Alvarez
2425985ab2
lib,rlc_am_nr: added test for poll retx timer
3 years ago
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.
3 years ago
Pedro Alvarez
6ff18272e0
lib,rlc_am_nr: added debug_window function
3 years ago
Pedro Alvarez
d2d3c4140a
lib,rlc_am_nr: make sure that sdu_under_segmentation is set before calculating the polling bit
3 years ago
Pedro Alvarez
ffb0c21903
lib,rlc_am_nr: stop poll retransmission if POLL_SN is ACKed/NACKed
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
f93d699abc
lib,rlc_am_nr: retransmit first un-acked SDU when t-Poll_retransmit
...
expires
3 years ago
Pedro Alvarez
b3edced44a
lib,rlc_am_nr: added t_poll_retransmit to tx entity
3 years ago
Robert Falkenberg
c0546b8634
lib,rlc_am_nr: increase verbosity on invalid ACK
3 years ago
Robert Falkenberg
4028b26274
lib,rlc_am_nr: add info_state()
3 years ago
Robert Falkenberg
c16071a3ac
lib,rlc_am_nr: extend unit tests to check buffer state
3 years ago