286 Commits (51dc82a7354bf2ee8997272e86b9d792b8e76a55)

Author SHA1 Message Date
Francisco Paisana 35fa5346b9 only reduce mcs if the current tti requires uci 4 years ago
Francisco Paisana 58c4bcf288 reduce mcs for UL grants carrying UCI 4 years ago
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 039977aeb5 renamed interfaces 5 years ago
Francisco Paisana 1a9c04bf2f use of task scheduler handle in pdcp 5 years ago
Francisco Paisana e9f34c7613 using task scheduler in enb stack 5 years ago
Francisco Paisana 4f5e65781f created task scheduler class to deal with timers, thread pool, multiqueue, internal tasks 5 years ago
Pedro Alvarez 89b6e0f714 Send paging message to all cells. 5 years ago
Francisco Paisana fe8f8be62d apply separate cqi configurations to scells 5 years ago
Francisco Paisana e550bf726d updated fsm to allow enter methods to receive event that caused them 5 years ago
Ismael Gomez e378a45db0 Reorganized priorities to avoid GW starve the CPU 5 years ago
Francisco Paisana 97d20ca579 remove obsolete bearer cfg methods 5 years ago
Francisco Paisana 0929a9de62 created rrc mac_controller class to handle the configuration of scheduler 5 years ago
Francisco Paisana 7ab4b5f723 fix long bsr handling 5 years ago
Francisco Paisana af58597647 fix mac tb building in scheduler 5 years ago
Francisco Paisana cb7f620254 created separate class to manage bearers buffers/status reports in the scheduler 5 years ago
Francisco Paisana 2cb80f9bf3 remove rnti in mac/phy in staged manner. First the "upper mac", and then the "lower mac" and phy 5 years ago
Ismael Gomez 493b7ea2da Remove SNR threshold based link failure detection 5 years ago
Francisco Paisana f0874b780b add radio_base/null classes 5 years ago
Francisco Paisana 64e8f5e3ed update license year 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 fb088a8c54 Restoring PDCP state only when using RLC AM. 5 years ago
Pedro Alvarez 66d4f320e5 Added intereface to set PDCP state after reestablishment. 5 years ago
Pedro Alvarez 217f16d137 Getting PDCP state on re-establishment. 5 years ago
Pedro Alvarez 33567d81db Added interface to get internal PDCP state. 5 years ago
Andre Puschmann 06d31f46ba enb: set maximum allowed TTI difference between PHY and Stack TTI clocks for ZMQ
this fixes the issue where PHY and MAC threads, and the processing
of events therein, are drifting apart too much.

This patch effectivly enforces a strong wait on the PHY if the
stack thread is too slow in processing its tasks.

For RF hardware the default is still 8192 TTIs, for ZMQ 1 TTI is used.
5 years ago
Andre Puschmann a1d64c1efe enb: improve error message when RAR cannot be sent 5 years ago
Francisco Paisana 3c2e3dbdbf added latest mac nr updates 5 years ago
Francisco Paisana d859c33035 added check for UCI collision during DL scheduling for CA 5 years ago
Francisco Paisana 53b85691b5 moved sf result to sched class. This way each carrier has a view to the results of the remaining carriers in the same subframe 5 years ago
Francisco Paisana 5d33acdb53 changed name of sched_ue_carrier class 5 years ago
Ismael Gomez 60b5fb9a74 Refactor variable name 5 years ago
Pedro Alvarez 20c5ea7d17 Fix warning with GCC 10.1 with EEA/EIA prefrence list. 5 years ago
Francisco Paisana 7ce23e0afb extend handover intraenb handover fsm to account for multiple C-RNTI CEs 5 years ago
Francisco Paisana 92c4b3f226 fix non-final sdap/mac/rlc dtor error 5 years ago
Francisco Paisana e4a91a207d remove unused variables 5 years ago
Francisco Paisana b843585abc add srsgnb stack class 5 years ago
Francisco Paisana f5174415f8 add srsenb::sdap class 5 years ago
Francisco Paisana 613003ac53 add srsenb::rrc 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
Francisco Paisana 9a0ea6e08c use log_helper for log macros 5 years ago
Francisco Paisana edba7f57e4 corrected mac_nr_pdu includes 5 years ago
Francisco Paisana d7b35ba7d1 added nr mac 5 years ago
Andre Puschmann a0e4b18507 enb_mac: pre-allocate UE object for quicker PRACH/RAR handling
we've seen long delays in handling PRACH on low-power devices
such as the RPi4. This was mainly caused by long delays
in creating the UE object on the fly during PRACH handling.

This patch pre-allocates one UE object that is then used
during the PRACH.
5 years ago