Commit Graph

85 Commits

Author SHA1 Message Date
Robert Falkenberg 60c3d79f47 rlc, nr: complete packing of status PDUs with 18bit SNs 2022-03-01 20:44:39 +01:00
Robert Falkenberg f7515e98cf rlc, nr: add pack/unpack of nack_range in status PDUs 2022-03-01 15:31:35 +01:00
Robert Falkenberg 0fb6420e8b rlc, nr: avoid multi increments of SDU's retx_count within one status message 2022-02-28 16:37:44 +01:00
Robert Falkenberg 511ad9ed25 rlc, nr: Increment retx_count for segments 2022-02-28 16:37:44 +01:00
Robert Falkenberg 034aa6a6d4 rlc, nr: inform upper layer when max retransmissions is exceeded 2022-02-28 16:37:44 +01:00
Robert Falkenberg 95ebc06ec1 rlc: implement SDU discard for AM+UM in NR+LTE
- Implemented in common base classes
- Added locking
2022-02-23 11:18:31 +01:00
Robert Falkenberg 9b44d13471 rlc, nr: notify PDCP about fully acked SDUs 2022-02-23 10:57:21 +01:00
Pedro Alvarez e6d976d115 lib,rlc_am_nr: fixed stack smashing bug that happened when too many NACKs were present in the status report 2022-02-22 21:14:15 +00:00
Pedro Alvarez ddbd857867 lib,rlc_am_nr: make sure that the RB name is logged when logging the header and status PDUs in NR 2022-02-22 21:14:15 +00:00
Pedro Alvarez c8d15135c6 lib,rlc_am_nr: addressing reveier comments:
* made some methods const
  * changed from TESTASSERT to TESTASSERT_EQ
  * fix up comment
  * removed superfulous if
  * used typedef for list of segments received
  * added unit test for is_retx_required()
  * added unit test for malformed status PDU
2022-02-16 13:23:32 +00:00
Pedro Alvarez 634c9ea3af lib,rlc_am_nr: starting to order segments to be able to receive them out-of-order 2022-02-16 13:23:32 +00:00
Pedro Alvarez 832d650574 lib,rlc_am_nr: remove unused variables. Fixed up some comments. 2022-02-16 13:23:32 +00:00
Pedro Alvarez 9bb3b1f18f lib,rlc_am_nr: remove unused code after re-factor 2022-02-16 13:23:32 +00:00
Pedro Alvarez 5e8b7b5ebe lib,rlc_am_nr: re-factored code for retx'ing with and without segmentation. 2022-02-16 13:23:32 +00:00
Pedro Alvarez 38e4c47f34 lib,rlc_am_nr: added current SO to keep track of the SO for the next RETX. 2022-02-16 13:23:32 +00:00
Pedro Alvarez 65d5df8b6e lib,rlc_am_nr: Continue to add functionality to provide segments of retx'es. Started to add function to re-segment already existing SDU segment 2022-02-16 13:23:32 +00:00
Pedro Alvarez e4a72de342 lib,rlc_am_nr: refactored build_pdu helpers to receive the payload pointer for consistency. Added function to segment retx. Added some comments to build PDU helper functions. 2022-02-16 13:23:32 +00:00
Pedro Alvarez b1a33a07a1 lib,rlc_am_nr: starting to add test for segmenting retx. Changed sdu under segmentation to only hold the SN. The actual SDU already exists in the pdu stored in the tx_window. 2022-02-16 13:23:32 +00:00
Pedro Alvarez 9bd368e0a9 lib,rlc: changed back status and header logging helpers to log directly. Make sure RB name is automatically logged. 2022-01-18 11:53:37 +00:00
Pedro Alvarez b53da22eb1 lib,rlc: changed return of string helper functions from char* to std::string to avoid UB 2022-01-18 11:53:37 +00:00
Pedro Alvarez e157806db2 lib,rlc_am_lte: removed RB_NAME macro. changed status and data pdu logging helpers to return C strings. Using new logging macros to make sure that RB name is included when logging status and amd pdus. 2022-01-18 11:53:37 +00:00
Pedro Alvarez 0f4b64f13f lib,rlc: added macros for hex logging that automatically add the rb_name. changed logging to use new macros in multiple places. 2022-01-18 11:53:37 +00:00
Pedro Alvarez b687072815 lib,rlc: added rb_name and logger to rlc_common. Added macros to help making sure bearer name is always included to the log to rlc_common.h. Started using said macros in TM, UM and AM entities. 2022-01-18 11:53:37 +00:00
Pedro Alvarez b0581ae5ae lib,rlc_am_nr: removed ugly hack to get last element of list. Renamed current_sdu to sdu_under_segmentation. 2022-01-10 23:25:44 +00:00
Pedro Alvarez bd8c7f7c57 lib,rlc_am_nr: added max_hdr and min_hdr variables, that are configured based on SN length. Replaced magic numbers with said variables. 2022-01-10 23:25:44 +00:00
Pedro Alvarez 5532c514ba lib,rlc_am_nr: added logging macros to make sure that the RB name is allways logged. 2022-01-10 23:25:44 +00:00
Pedro Alvarez f60259afb9 lib,rlc_am_nr: fixed multiple typos and deleted useless comments 2022-01-10 23:25:44 +00:00
Pedro Alvarez 9e6b852834 lib,rlc_am_nr: Added handle_full_sdu() and handle_segment_sdu() functions. Reduced duplicate code in handling SDU segments. 2022-01-10 23:25:44 +00:00
Pedro Alvarez 8afea13d9a lib,rlc_am_nr: added initial logic to support receiving PDU segments. 2022-01-10 23:25:44 +00:00
Pedro Alvarez aae1d9ad10 lib,rlc_am_nr: changed rlc_amd_nr_tx_sdu to use std::list to store
segment infomation. Segment infomation incluses, SO and payload length.
2022-01-10 23:25:44 +00:00
Pedro Alvarez 76c33c78a9 lib,rlc_am_nr: starting to add test for segmentation. Starting to add functions for creating new segments and segment continuation. 2022-01-10 23:25:44 +00:00
Pedro Alvarez 3e5b064a08 lib,rlc_am_nr: starting to add build_sdu_segment() function.
Also adding write_header function that receives as argument uint8_t* so
we can write the header straight to the payload.
2022-01-10 23:25:44 +00:00
Pedro Alvarez b425316936 lib,rlc_am_nr: fixed tx_mod_base_nr(). Added unit test for inside_tx_window(). 2021-12-07 16:46:26 +00:00
Pedro Alvarez ab8577ff43 lib,rlc_am_nr: switched back to unsigned rx_mod_base. Removed if that is always true. 2021-12-07 16:46:26 +00:00
Pedro Alvarez fea7828d3e lib,rlc_am_nr: added struct to hold state variables. This is consistent
with TX and makes it easier to make getter/setters.
2021-12-07 16:46:26 +00:00
Pedro Alvarez bca9ef2454 lib,rlc_am_nr: made mod_nr configurable 2021-12-07 16:46:26 +00:00
Pedro Alvarez 665aea599c lib,rlc_am_nr: made sure that the return of rx_mod_base and tx_mod_base is signed by changing from a macro to an class method. 2021-12-07 16:46:26 +00:00
Pedro Alvarez 90ed04afd1 Fix unitialized header warning on rlc_amd_tx_pdu for ARM. 2021-11-24 21:23:23 +00:00
Pedro Alvarez dface7e4af lib,rlc_am_nr: make sure header is initialized. 2021-11-23 20:29:02 +00:00
Pedro Alvarez 7460a9db69 lib,rlc_am_nr: check whether we exced nof_bytes in retx. changed build_retx_pdu API to receive unique_byte_buffer by ref. 2021-11-22 17:42:52 +00:00
Pedro Alvarez e3b95ef131 lib,rlc_am_nr: remove unused structure 2021-11-22 17:42:52 +00:00
Pedro Alvarez 47340f37a2 lib,rlc_am_nr: fix TS version in comments 2021-11-22 17:42:52 +00:00
Pedro Alvarez b497d773ce lib,rlc_am_nr: Fixed some metrics calculation. Added more precise metrics checking to unit tests 2021-11-22 17:42:52 +00:00
Pedro Alvarez b794593469 lib,rlc_am_nr: added processing of ACKs from status report 2021-11-22 17:42:52 +00:00
Pedro Alvarez ec93cc7238 rlc_am_nr: added logic to retx NACK'ed PDU. 2021-11-22 17:42:52 +00:00
Pedro Alvarez 473a45aae0 rlc_am_nr: fix buffer status calculation for retxs 2021-11-22 17:42:52 +00:00
Pedro Alvarez 63657ddfe6 Moved retx queue to rlc_am_data_structs, to enable it being re-used in RLC AM NR 2021-11-22 17:42:52 +00:00
Pedro Alvarez 4c02407d3e Change the update of rx_next and rx_highest_status. 2021-11-22 17:42:52 +00:00
Pedro Alvarez 3f000f0472 Adding t_reassembly to RLC AM NR 2021-11-22 17:42:52 +00:00
Pedro Alvarez 37f8dba4ac Make sure rlc_am_nr_header_t is initialized. 2021-11-19 16:05:03 +00:00