4969 Commits (05f018b1634dc1fc19fc7edf5fa1031593ad1c65)

Author SHA1 Message Date
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