424 Commits (f04cf2090aff8ad51632baee4bb1256a8c175de5)

Author SHA1 Message Date
Andre Puschmann d9577f0e1e suppress type-limit warning issued by some compilers by making var signed
Used to happen with older gcc giving:

"rlc_am.cc:1791:22: error: comparison of unsigned expression >= 0 is always true [-Werror=type-limits]"
5 years ago
Francisco Paisana 67d6a25194 Moving mac timers to stack timers (#638)
* first step towards moving MAC timers to stack. Mac is still using its own timers. srslte::timers class can be restructured.

* moved timers out of the UE MAC
5 years ago
Andre Puschmann e42449532b fix wrong namespace definition in various places 5 years ago
Pedro Alvarez 6efa944b5e Removed srslte prefix from pdcp_config_t 5 years ago
Pedro Alvarez dd56d08269 Replaced byte_buffer by array in PDCP base 5 years ago
Pedro Alvarez 8c10eabf23 Changed PDCP LTE to use unique_lock. 5 years ago
Pedro Alvarez 61051b4cb3 Changed PDCP NR read_data_header to return SN. 5 years ago
Pedro Alvarez 491695ab77 Clang-formated PDCP NR PR. 5 years ago
Pedro Alvarez 38bbc55631 Added tests for PDCP NR Rx with SN Len = 18. In-sequence reception seems to work. 5 years ago
Pedro Alvarez d4aeb12db8 Adding more TX tests to PDCP NR entity. 5 years ago
Pedro Alvarez 39e3800781 Fixed header packing for SN length 18 for PDCP NR. First TX test is passing. 5 years ago
Pedro Alvarez adfe9f950e Fixed issue in computing the SN. Added test for packets received in sequence for PDCP NR. Test is passing now. 5 years ago
Pedro Alvarez 2104e6bbcf Added test for more TX packets in PDCP NR. Tests passing for TX_NEXT = 0, 2048 and 4096 5 years ago
Pedro Alvarez ecd164ed65 Starting to add more tx tests to PDCP NR tests. 5 years ago
Pedro Alvarez af2b593b8c Added check for integrity in test. First Rx PDCP NR test passing. 5 years ago
Pedro Alvarez d3b6828082 Changed PDCP configuration to explicitly have tx and rx direction. Decrypt on PDCP NR seems fine. 5 years ago
Pedro Alvarez ea3c44e9ac Removing header before decrypting. Continuing to add decryption tests to PDCP NR 5 years ago
Pedro Alvarez 7e6725f0a2 Fixing up PDCP NR tx test. Starting to add rx test. 5 years ago
Pedro Alvarez a42726f836 Fixed hdr_len_bytes in PDCP NR. Tx seems OK now. 5 years ago
Pedro Alvarez 73e30743d1 Added enum to PDCP config to replace two bools. 5 years ago
Pedro Alvarez 457f35699d Reverted back to a single config structure between PDCP NR and PDCP LTE. 5 years ago
Pedro Alvarez 810cacdc02 Adding write_data_header and append_mac helper functions to PDCP NR entity. 5 years ago
Pedro Alvarez 9d0db108c6 Continue to add PDCP tx test 5 years ago
Pedro Alvarez c9e99443d8 Adding PDCP NR Tx test. 5 years ago
Pedro Alvarez 4bb99464ed Starting to add PDCP NR tests. 5 years ago
Pedro Alvarez 8e8a7a4154 Add more logic to PDCP NR tx logic. 5 years ago
Pedro Alvarez 2081b22465 Added PDCP_SN_LEN constants. Added bearer_id and direction back to the pdcp_entity_base. 5 years ago
Pedro Alvarez 8e1b9b9f5b Starting to implement the receive function of PDCP NR. 5 years ago
Pedro Alvarez d7a2721bb0 Adding algorithm to get COUNT for PDCP NR. Added convinience functions to manipulate HFN, SN and COUNT. 5 years ago
Pedro Alvarez 52f75c3cf2 Starting to add PDCP NR state variables. 5 years ago
Pedro Alvarez 2449f901f0 Fixed error in setting Kint in pdcp_entity_lte. 5 years ago
Pedro Alvarez 1944bf9a80 Continue to split pdcp_entity_lte and pdcp_entity_nr. Compiling now. 5 years ago
Pedro Alvarez bd91678d98 Continuing to split pdcp_entity into pdcp_entity_lte and pdcp_entity_nr 5 years ago
Pedro Alvarez 005d03cb1a Starting to split pdcp_entity into pdcp_entity_lte and pdcp_entity_nr to support NR PDCP 5 years ago
Andre Puschmann c4bc151e14 rlc: fix MRB logging 6 years ago
Andre Puschmann 2ae35e4ce0 make sure status PDU doens't exceed grant size 6 years ago
Ismael Gomez 538f38cf54 Let PDCP Control PDUs be processed 6 years ago
Pedro Alvarez 9b6aaac1b5 Ignore PDCP status PDUs, instead of passing them to the GW. Check on the GW if the packet is large enough to hold an IPv4 header. 6 years ago
Ismael Gomez 8c41625599 Add RLC suspend and resume 6 years ago
Andre Puschmann db9f093b63 add debug log when handling reordering timer 6 years ago
Andre Puschmann 849ad2655c fix creation of malformed RLC AM status PDU
the issue was caused by an unneeded length check during the
assembly of the status PDU. This length check caused an too early
break from the while-loop that adds all missing SNs to the status PDU
leaving the PDU struct in an invalid state where ack_sn was equal to
one of the NACK_SNs.
The fix is to simply remove the length check during the generation to
fully generate the status PDU. If, for whatever reason, MAC provides
a too small grant to fully fit the status PDU, the PDU will not be
generated, i.e. the calling function checks the return value and does
not pass the (then too big PDU) down the stack.
6 years ago
Francisco Paisana 58e2e51044 removed rlc_interfaces. The rlc_cnfg types are now part of the rrc_interface_types. Removed implicit RB initialization in the RLC. 6 years ago
Francisco Paisana b936629221 removed rrc asn1 header from bcd_helpers, from rlc_interface, and rlc tests 6 years ago
Andre Puschmann ecb6a0f99b fixing RLC AM bug where corrupted PDU causes segfault
the underlaying issue is that a corrupted PDU is passed to RLC
which claims to have segments whose total size exceed the size
of the entire PDU. Those PDUs are not ignored.
6 years ago
Pedro Alvarez 498f1b8e4b Small PDCP fixes:
- Moved most the initialization of the pdcp_entity to the header.
  - Initilize some variables in gtpu_ntoa.
  - Removed debug print.
  - Format eNB GTP-u debugging code.
6 years ago
Pedro Alvarez 1c51d2ca9a Small clang format changes. 6 years ago
Pedro Alvarez 5d8dcbe4cb Make sure that PDCP SN is initialized properly in the eNB. UE attaches again when using encription. 6 years ago
Pedro Alvarez 53d2220aab Resolved conflicts with unique pointers after rebase in PDCP entity. 6 years ago
Pedro Alvarez 2643b9070f Fixing mistake in setting PDCP last_submitted_pdcp_rx_sn 6 years ago
Pedro Alvarez 6d5dbdedfa Fixed mistake in comparison in pdcp_entity. 6 years ago
Pedro Alvarez 693338da07 Added TX HFN print to make it easier to debug HFN mis-match 6 years ago
Pedro Alvarez 6b59cc0760 Debug print for PDCP Reestablish. 6 years ago
Pedro Alvarez 5ca6238877 Adding encription debug prints. 6 years ago
Pedro Alvarez b97d1191f4 Added more debug info at eNB GTP-U. Changed the pdcp_entity to follow the standard more strictly for RLC AM DRBs. 6 years ago
Pedro Alvarez f4fd6034ba Starting to add separate functions for PDCP handling for UM DRBs and AM DRBs 6 years ago
Pedro Alvarez 6578cf1d01 Making sure that next_pdcp_rx_sn is reset at reestablish. 6 years ago
Pedro Alvarez 6cbcc5154d Starting to use received SN to do user plane decription. 6 years ago
Andre Puschmann 58763fb714 stack: move initialization of log object into ctor
this fixes the issue when the stack is torn down if, for example,
the radio couldn't be loaded correctly. it will hence call stop() on all stack
components which are not initialzized yet, and logging therefore doesn't work.
the log object is know during contruction time and therefore can be passed
in as soon as possible.
6 years ago
Andre Puschmann 0012868e91 rlc_am: reduce log level when provided PDU size is too small 6 years ago
Andre Puschmann e0a28cf4c0 simplify PDCP init and also bypass it for SRB0 on eNB 6 years ago
Andre Puschmann 0ef96f789b bypass PDCP for SRB0 processing chain 6 years ago
Andre Puschmann 218f136254 remove default PDCP entity for SRB0 6 years ago
Andre Puschmann f5a929e425 pdcp: print length when processing incoming PDU 6 years ago
Andre Puschmann acbe7fabe4 rlc: fix class member initialization
uninitialized member detected by coverity, now converted all default
initialization to be done in class definition
6 years ago
Francisco Paisana 415d3418b6 reorganized enb to mirror ue director/class structure with a stack class 6 years ago
Andre Puschmann e8d6236975 remove init for all RLC TM/UM/AM
- all RLC entities are now initialized during contruction
- there is no need to check for, e.g., existance of timers, during
  runtime
- there is also no need to call re-init during resume
- timers are freed in dtor
6 years ago
Ismael Gomez f24c0cef8c Use timer interface instead of local boolean to query timer state 6 years ago
Ismael Gomez c2e9817f41 Possible solution to RLC Reestablishment 6 years ago
Ismael Gomez 14b526f2aa Add PDCP per-bearer reestablish 6 years ago
Ismael Gomez ade720e032 Add RLC resume procedure 6 years ago
Andre Puschmann acf95fdd85 rlc_am: fix newline in logs 6 years ago
Andre Puschmann c14c3c23f1 pdcp: fix issue when setting SN length configuration 6 years ago
Francisco Paisana 0e3baa0f2f Renamed the reset() method of byte_buffer_t to clear() 6 years ago
Francisco Paisana 3bedc93ba5 added _t to unique_byte_buffer type 6 years ago
Francisco Paisana bc01a5ecda changed block_queue api to return back the unique buffer in case it fails to push it to the queue 6 years ago
Francisco Paisana f4aa03154d change queue read and other functions apis 6 years ago
Francisco Paisana f469e2178b replaced byte_buffer_t allocated by the buffer pool for unique_byte_buffer which is safer and easier to use 6 years ago
Francisco Paisana 0976ea6f27 created a unique byte buffer that automatically deallocates 6 years ago
Francisco Paisana 7be183c223 rework scheduler 6 years ago
Pedro Alvarez a8fe44252e Removed memcpy and memset in rlc_am.cc to remove compiler warnings. 6 years ago
Andre Puschmann 4b01a2e4a0 update copyright notice 6 years ago
Andre Puschmann c4e8bed042 log SDU dropping in info in RLC AM 6 years ago
Ismael Gomez 7780b1aba5 add tdd/ca support 6 years ago
David Rupprecht 735f97ceb6 Fixed Bearer ID for data Bearer and changed debug type for enc data pdus 6 years ago
David Rupprecht eb3a83ac45 User Plane key in configuration interface 6 years ago
Andre Puschmann e84d26ae4e fix RLC UM reestablishment 6 years ago
Andre Puschmann c49dddc09a fix RLC UM bug and enable Rx after reestablishment 6 years ago
Andre Puschmann 94481c1963 removed warning in RLC if LCID isn't valid for all methods called by BSR procedure
this was causing many warnings in the log because the BSR checks with RLC
if a bearer has data even if it doesn't exist
6 years ago
Andre Puschmann 86232c143e expose RLC tx queue length through config struct 6 years ago
Andre Puschmann 84c8626808 print error when RLC bearer LCID change is not successful 6 years ago
Andre Puschmann 5dfc126a30 improve RLC logging when LCID is not valid 6 years ago
Francisco Paisana 0204db2e12 new asn1 rrc library 6 years ago
Andre Puschmann 2590ebd10b fix bugs reported by coverity 6 years ago
Andre Puschmann 04f6569113 fix missing newline in RLC log 6 years ago
Andre Puschmann 53850e5353 delete MRB bearer during PDCP destruction 6 years ago
Andre Puschmann 955f5dd37a add mutex in pdcp entity
write_sdu and write_pdu are not re-entrant because all functions
that deal with the counters, e.g. integrity check and generate,
must be protected because MAC threads may call them at the same time.

this addresses issue #254
6 years ago
Andre Puschmann db3ce8ade9 remove clang-tidy execution for srslte_upper 6 years ago
Andre Puschmann df7ab7ffe8 Merge branch 'master' into next 6 years ago
Eric Schreiber 46d41a5dc5 Remove undefined increment of an erased iterator. (#274) 6 years ago
Andre Puschmann c3441046c9 simplify RLC buffer status query procedures
- add a simple and low-overhead has_data() method to check whether
  an RLC entity has data to transmit or not
- use this method for all calls that are actually not interested
  in the amount of data to send
- use the more expensive get_buffer_state() for all cases where
  the actual size of the buffer is of importance
6 years ago
Andre Puschmann df40259c26 fix issue in PDCP when bearer ID for DRBs was not starting with 1 6 years ago
Pedro Alvarez 553f8260bb Fixing up logs and comments. 6 years ago
Andre Puschmann fb78cc2996 Adding some debug prints. 6 years ago
Andre Puschmann 8ca73b9c4e remove unused variable 6 years ago
Andre Puschmann 1ffd8d48ce log warning when receiving unexpected RLC AM segment 6 years ago
Andre Puschmann b71dab87f1 add function to query if RLC bearer exists (the implementation) 6 years ago
Andre Puschmann 2979e43b37 reword PDCP log when dropping PDU 6 years ago
Andre Puschmann aebea06f15 fix RLC UM timer expiration after stopping entity 6 years ago
Andre Puschmann 42747edb54 fix issue where successfully rx'ed SDU was not detected 6 years ago
Andre Puschmann 6ca0d4494a do not transmit new PDUs after calling stop 6 years ago
Andre Puschmann 580ce3e298 add extra length check for RLC UM 6 years ago
Andre Puschmann ebadf3029e Merge branch 'next' of github.com:softwareradiosystems/srsLTE into next 6 years ago
Andre Puschmann e06e5b8b60 limit maximum allowd RLC SDU size 6 years ago
Pedro Alvarez d443604661 Merge next into gtp_cleanup_sn. Fixed some conflicts. 6 years ago
Andre Puschmann 96815e3a5f fix RLC AM handling of bigger MAC grants
- fix concatenation and header reconstruction
6 years ago
Andre Puschmann a6d9181881 fix RLC UM issue with very large MAC grants 6 years ago
Andre Puschmann 1ba9c4adc1 fix typo 6 years ago
Pedro Alvarez e925ef0a42 Added some more debug infor to error prints. Making sure that packet is not sent from the eNB if there is an error in the GTP-U header packing. Fixed error in checking msg_type. 6 years ago
Pedro Alvarez efffd3dec9 Fix compilation mistake. 6 years ago
Pedro Alvarez 2ff900d971 Making sure that GTPU optional fields get written 6 years ago
Pedro Alvarez c9cd355cdb Forgot to use supported_msg_type_check in gtpu_write_header. 6 years ago
Pedro Alvarez c1f633c5c7 Dropping bitfields for now. Using #defines and uint8_t for the flags. 6 years ago
Pedro Alvarez e320c33aef Fixed last compilation issues. 6 years ago
Pedro Alvarez ee04639337 Changed gtpu header flags to use a bitfield. Fixing compilation issues. 6 years ago
Andre Puschmann 99b10a6eb0 fix various RLC AM issues, where
- (a) no PDU is scheduled for retx after poll_retx timer expired
- (b) we write outside of the PDU buffer when concatenating many SDUs
6 years ago
Andre Puschmann d652a0df1c remove c-type cast in RLC 6 years ago
Andre Puschmann 86e02921f0 fix regression in RLC base introduced during refactor causing eMBMS to fail 6 years ago
Andre Puschmann ba87819ff1 retransmit random RLC AM PDU in case tx window is full 6 years ago
Andre Puschmann 891ef59d78 fix RLC AM status pdu packing 6 years ago
Andre Puschmann 7572299615 enable clang-tidy for srslte_upper library 6 years ago
Andre Puschmann 34535c7efb fix RLC AM issues reported by clang-tidy 6 years ago
Andre Puschmann 3d4e90029c fix RLC UM issue when dropping PDU that is neither start nor end aligned 6 years ago
Andre Puschmann d981f129e0 Merge branch 'master' into next 6 years ago
Joseph Giovatto 2dddfa2aac added ability to track tput per bearer (#233)
added mac_metrics for ul/dl harq retex counts
6 years ago
Ismael Gomez 0294923e2b Merge branch 'next' of github.com:softwareradiosystems/srsLTE into next 6 years ago
Andre Puschmann 184539b87d add LCID change API to UE interface, add method to reestablish single RLC bearer 6 years ago
Andre Puschmann 10bc01a7ae add API to change LCID of RLC bearers 6 years ago
Andre Puschmann 27459bf706 add API to change LCID of PDCP bearers 6 years ago
Andre Puschmann 068fd2d81e log PDCP PDU dropping in MAC isnt valid 6 years ago
Andre Puschmann d03f5017df fix RLC mode printf and timer access 6 years ago
Andre Puschmann 02e38c7c9f fix stopping of RLC_AM timer and protect access 6 years ago
Andre Puschmann f3eceab242 small re-factor of RLC_AM class (reorder methods) 6 years ago
Andre Puschmann c0899ddda9 refactor RLC AM, add tx/rx subclasses 6 years ago
Andre Puschmann 24cde06e32 fix UM config printout during init 6 years ago
Andre Puschmann f56592b0fe add getter for PDCP ul/dl counter 6 years ago
Andre Puschmann 86f70011d6 print LCID in RLC AM when providing buffer report 6 years ago
Andre Puschmann 8a869d83f2 drop PDCP SDU that do not pass integrity check 6 years ago
Andre Puschmann 716b028023 reset PDCP entities 6 years ago
Andre Puschmann 91492b87ef add del_bearer for RLC/PDCP 6 years ago
Andre Puschmann 3234add1f8 use blocking pool allocate in RLC AM 7 years ago