68 Commits (b3d24ba420887abfaafa6b1976899c7e78bbb380)

Author SHA1 Message Date
Andre Puschmann a7911f0dab pdcp,rlc: refactor SDU queueing policy
this patch refactors the SDU queuing and dropping policy of the RLC and PDCP layer.
the previous design had issues when packets have been generated at a higher
rate above the PDCP than they could be consumed below the RLC.

When the RLC SDU queues were full, we allowed two policies, one to block on the write
and the other to drop the SDU. Both options are not ideal because they either
lead to a blocking stack thread or to lost PDCP PDUs.

To avoid this, this patch makes the following changes:

* PDCP monitors RLC's SDU queue and drops packets on its north-bound SAP if queues are full
  * a new method sdu_queue_is_full() has been added to the RLC interface for PDCP
* remove blocking write from pdcp and rlc write_sdu() interface
  * all writes into queues need to be non-blocking
  * if Tx queues are overflowing, SDUs are dropped above PDCP, not RLC
* log warning if RLC still needs to drop SDUs
  * this case should be avoided with the monitoring mechanism
5 years ago
Francisco Paisana 5e06430455 removal of stack handler interface 5 years ago
Francisco Paisana 1a9c04bf2f use of task scheduler handle in pdcp 5 years ago
Francisco Paisana f0874b780b add radio_base/null classes 5 years ago
Pedro Alvarez 9c1a7d2cf1 Removed get_bearer_status in PDCP. Renamed get_state/set_state to
get_bearer_state/set_bearer_state.
5 years ago
Pedro Alvarez 66d4f320e5 Added intereface to set PDCP state after reestablishment. 5 years ago
Pedro Alvarez 33567d81db Added interface to get internal PDCP state. 5 years ago
Francisco Paisana 92c4b3f226 fix non-final sdap/mac/rlc dtor error 5 years ago
Francisco Paisana f5174415f8 add srsenb::sdap class 5 years ago
Francisco Paisana 0916e29de4 add srsenb::rlc_nr class 5 years ago
Francisco Paisana 9001117b2d add srsenb::pdcp_nr class 5 years ago
Pedro Alvarez 960c0e97cd Added handling of RRC re-establishment to srsENB.
* Added the appropriate code for handling and sending the
   re-establishment procedure messages to rrc_ue.c/.h.
 * Triggered RRC reconfiguration after the reception of RRC
   re-establishment complete
 * Refreshed K_eNB at the reception of re-establishment
   request
 * Changed the mapping of TEIDs to RNTIs in the GTP-U layer,
   as the RNTI might change with reestablishment.
5 years ago
Francisco Paisana 452c043370 created a global map of lcids to srbs/drbs for NR 5 years ago
Francisco Paisana 6a164e032d added srsue::rrc_nr 5 years ago
Francisco Paisana 026628a84f use of reestablishment method to reset the RLC bearers during handover 5 years ago
Ismael Gomez a1f0f8de35
Add callback to RLC to indicate BSR for TX and reTX queues (used in ENB) (#1361) 5 years ago
Francisco Paisana e8aff22e1b using new rrc obj id util methods in handover code 5 years ago
Francisco Paisana f43985b6cd small updates for testing handover and configuring the rrc 5 years ago
Andre Puschmann b994255b35 enb: fix handling of GTPU and S1AP init return values
if the eNB stack startup fails, for example due to binding
the wrong GTPU socket or similar issues, the eNB should stop
and log a message. Previously the return values for
S1AP and GTPU init were not even evaluated.
5 years ago
Francisco Paisana 30ae2226c1 common interface for stack multiqueue tasks, background tasks and timers 5 years ago
Francisco Paisana 344eaf49ec use logmap in the whole enb and ue 5 years ago
Andre Puschmann 76f1b87b69 fix uninit var in s1ap 5 years ago
Xavier Arteaga e832769ae6 Updated copyright 5 years ago
Pedro Alvarez 96c82b3fc6 Moved PDCP configs to pdcp_config.h. Added `as_security_cfg_t` structure to hold access stratum keys.
Refactored PDCP, RRC and USIM accordingly.
5 years ago
Pedro Alvarez 08a4ce0970 Added the ability to save S1AP pcaps at the eNB. 5 years ago
Andre Puschmann 2edecea33e fix SIB transmission for CA
Avoid double buffering of SIBs in MAC as this would require one buffer for each CC.
Instead, use byte_buffer managed by RRC that contains packed SIBs to avoid
double memcpy for each SIB tx. Only use MAC provided buffer in error case.

Also avoid MAC calling RLC for each SIB and call RRC directly.
5 years ago
Andre Puschmann 120ad76c63 refactor cell param handling and fix SIB transmissions
- move cell specific eNB params to cell list in rr.conf
- make sure DL EARFCN and DL freq can be used to manually overwrite a single cell config
- fix SIB packing and transmission for multi cell configs
- introduce cell list to MAC
- adapt default enb.conf.example and rr.conf.example
5 years ago
Pedro Alvarez bd3598f774 Moved srsEPC to the new S1AP library. Deleted liblte_s1ap.cc and liblte_s1ap.h. 5 years ago
Francisco Paisana 7210c35c6c checked all methods of srsenb::pdcp to see if they are called by different threads. Since it is all single-threaded, I removed the locks 5 years ago
Francisco Paisana e859d622c7 added logref class to forbid logmap pointer invalidation. Created a test for the logref, and introduced it in the scheduler, rrc and nas 5 years ago
Francisco Paisana 052892916e fix mme/enb id assignment. Also, now using the macro for invalid rnti and a boolean flag for the uninitialized mme s1ap id 5 years ago
Francisco Paisana 2f57db5352 changed invalid rnti to 0 5 years ago
Francisco Paisana 7557ef45c8 changed the s1ap to allow the insertion of users without rnti 5 years ago
Andre Puschmann d3cb2eac83 add RLC suspend/resume to eNB interface 5 years ago
Francisco Paisana 5468189cd9 fix some variables' naming (e.g. x2_ap -> x2ap, e_rab -> erab) 5 years ago
Francisco Paisana 2a83eee0ee fix security key setup 5 years ago
Francisco Paisana ee24b59924 converted s1ap to new s1ap asn1 lib. Cleaned up bitstring packing/unpacking and bitstring types 5 years ago
Francisco Paisana 25bb36cdc3 converted ho preparation to new s1ap asn1 lib. Extended s1ap test 5 years ago
Francisco Paisana b6c53d786b updated s1ap rrc interface with new asn1 lib types 5 years ago
Pedro Alvarez c5979f59eb Clang format UE, eNB and lib (#850)
* Clang-formated UE, eNB and lib.
* Fixed compiling errors from clang-format.
* Fix linking issues introduced by clang-format
* Fix poor formating in initializing arrays of arrays.
* Fix mistake in conflict resolution on rm_turbo.c
* Re-apply clang format to gtpc_ies.h
5 years ago
Francisco Paisana 6b4488d5c1 added sending of enb status transfer from SeNB 5 years ago
Francisco Paisana b792a3158c removed magic numbers for s1ap timers, and handled the error in the s1 ho cmd 5 years ago
Francisco Paisana 524c80a804 added handling of ho command 5 years ago
Pedro Alvarez e1cdd51eba Clang-formated before pull request 5 years ago
Pedro Alvarez 2e7ddef038 Continue to add discard_sdu to RLC interfaces. 5 years ago
Pedro Alvarez a77dd4e959 Starting to add boiler-plate code to support Discard at RLC. 5 years ago
Pedro Alvarez d4fb4d8c86 Fixup clang-format in pdcp before PR. 5 years ago
Pedro Alvarez 15613465cf Moving some initialization from init function to constructor in the PDCP entities. 5 years ago
Francisco Paisana 77f63f7bcd removed gtpu mutex 5 years ago
Francisco Paisana e8487211e4 changed the naming of mch to m1u in the gtpu class 5 years ago