401 Commits (da0e64c51a1820c98c40a0fd13933e04591b4d22)

Author SHA1 Message Date
Francisco Paisana fddcc3d8ea In the case of Handover, postpone the activation of the CQI and SR config present in the HO command for after the RA proc completion to the target eNB 4 years ago
Francisco Paisana 13caf287f9 fix S1 Handover with UE CA. The HandoverPreparation message was not being filled correctly 4 years ago
Ismael Gomez a4835dd2c8
More accurate MCS reduction when PUSCH carries UCI (#1630) 4 years ago
Francisco Paisana cc469fc7a3 fix reestablishment after S1 handover by setting ncc accordingly 4 years ago
Francisco Paisana 0036941af4 added extra state to S1 target enb mobility FSM. Accounts for out-of-order arrival of MMEStatusTransfer. Also, now we avoid creating DRBs before the MMEStatusTransfer 4 years ago
Francisco Paisana bb5dd92dca implemented s1 handover cancellation procedure to force the target enb to release the ue ctxt 4 years ago
Francisco Paisana 8c9e596f89 refactored s1ap handover request interface. cleaned up rrc tenb s1 handover code 4 years ago
Francisco Paisana 7cd4f45d62 fsm refactor.
- avoid triggering directly a subfsm
- improved metafunctions
- other cleanups
4 years ago
Francisco Paisana 5d1343fe75 implemented S1 bearer status transfer 4 years ago
Francisco Paisana db8af399f8 extended rrc tenb s1 handover test. implemented layer reconfig during s1 handover 4 years ago
Francisco Paisana 7605c7df23 added s1ap handover notification, fixed s1ap asn1 bug, and fixed bad fields for admitted erabs in ho req ack 4 years ago
Francisco Paisana 20b69fb22e substitution of ul_alloc_t for prb_interval 4 years ago
Francisco Paisana 26f46ea067 add S1 Handover Request handling in target eNB 4 years ago
Francisco Paisana caf862c99f moved expected, bounded_bitset, move_callback to adt folder. created a test for bitset 4 years ago
Ismael Gomez 382811e10e
Update S1AP RNTI context when doing Reestablishment (#1582) 4 years ago
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
4 years ago
Francisco Paisana 5e06430455 removal of stack handler interface 4 years ago
Francisco Paisana 039977aeb5 renamed interfaces 4 years ago
Francisco Paisana 1a9c04bf2f use of task scheduler handle in pdcp 4 years ago
Francisco Paisana e9f34c7613 using task scheduler in enb stack 4 years ago
Francisco Paisana 4f5e65781f created task scheduler class to deal with timers, thread pool, multiqueue, internal tasks 4 years ago
Pedro Alvarez 89b6e0f714 Send paging message to all cells. 4 years ago
Francisco Paisana fe8f8be62d apply separate cqi configurations to scells 4 years ago
Francisco Paisana e550bf726d updated fsm to allow enter methods to receive event that caused them 4 years ago
Ismael Gomez e378a45db0 Reorganized priorities to avoid GW starve the CPU 4 years ago
Francisco Paisana 97d20ca579 remove obsolete bearer cfg methods 4 years ago
Francisco Paisana 0929a9de62 created rrc mac_controller class to handle the configuration of scheduler 4 years ago
Francisco Paisana 7ab4b5f723 fix long bsr handling 4 years ago
Francisco Paisana af58597647 fix mac tb building in scheduler 4 years ago
Francisco Paisana cb7f620254 created separate class to manage bearers buffers/status reports in the scheduler 4 years ago
Francisco Paisana 2cb80f9bf3 remove rnti in mac/phy in staged manner. First the "upper mac", and then the "lower mac" and phy 4 years ago
Ismael Gomez 493b7ea2da Remove SNR threshold based link failure detection 4 years ago
Francisco Paisana f0874b780b add radio_base/null classes 4 years ago
Francisco Paisana 64e8f5e3ed update license year 4 years ago
Pedro Alvarez 9c1a7d2cf1 Removed get_bearer_status in PDCP. Renamed get_state/set_state to
get_bearer_state/set_bearer_state.
4 years ago
Pedro Alvarez fb088a8c54 Restoring PDCP state only when using RLC AM. 4 years ago
Pedro Alvarez 66d4f320e5 Added intereface to set PDCP state after reestablishment. 4 years ago
Pedro Alvarez 217f16d137 Getting PDCP state on re-establishment. 4 years ago
Pedro Alvarez 33567d81db Added interface to get internal PDCP state. 4 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.
4 years ago
Andre Puschmann a1d64c1efe enb: improve error message when RAR cannot be sent 4 years ago
Francisco Paisana 3c2e3dbdbf added latest mac nr updates 4 years ago
Francisco Paisana d859c33035 added check for UCI collision during DL scheduling for CA 4 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 4 years ago
Francisco Paisana 5d33acdb53 changed name of sched_ue_carrier class 4 years ago
Ismael Gomez 60b5fb9a74 Refactor variable name 4 years ago
Pedro Alvarez 20c5ea7d17 Fix warning with GCC 10.1 with EEA/EIA prefrence list. 4 years ago
Francisco Paisana 7ce23e0afb extend handover intraenb handover fsm to account for multiple C-RNTI CEs 4 years ago
Francisco Paisana 92c4b3f226 fix non-final sdap/mac/rlc dtor error 4 years ago
Francisco Paisana e4a91a207d remove unused variables 4 years ago
Francisco Paisana b843585abc add srsgnb stack class 4 years ago
Francisco Paisana f5174415f8 add srsenb::sdap class 4 years ago
Francisco Paisana 613003ac53 add srsenb::rrc class 4 years ago
Francisco Paisana 0916e29de4 add srsenb::rlc_nr class 4 years ago
Francisco Paisana 9001117b2d add srsenb::pdcp_nr class 4 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.
4 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
Ismael Gomez a1f0f8de35
Add callback to RLC to indicate BSR for TX and reTX queues (used in ENB) (#1361) 5 years ago
Francisco Paisana 860174a819 remove comment and changed handover_type enum 5 years ago
Francisco Paisana b37923312e added intraenb handover fsm and respective test 5 years ago
Francisco Paisana 65ef16c7f1 void sending rrc connection release as msg4 5 years ago
Francisco Paisana 61680d64d7 move rrc::ue to separate file 5 years ago
Pedro Alvarez 51f8ba60da Make MBMS MCS configurable for the eNB. 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
Francisco Paisana f2af447b1a use of unique_byte_buffer for sib scheduling to allow for padding 5 years ago
Francisco Paisana 598bad1f0e changed rrc ue cfg files names 5 years ago
Francisco Paisana ea5ba93f25 changed file names 5 years ago
Francisco Paisana d43448e8a1 created security cfg handling class for rrc ue and refactor bearer_list handling 5 years ago
Francisco Paisana 09cafaa4bb update ded_info_nas_list handling 5 years ago
Francisco Paisana 0515229240 perform mac bearer addiction via the bearer handler class 5 years ago
Francisco Paisana 6bcb5910c9 usage of new bearer list cfg class for srb1/srb2 setup 5 years ago
Francisco Paisana ca0db7fffe created generic methods to apply toaddmodlist and removelists. 5 years ago
Francisco Paisana c65c081b51 created separate files to handle rrc bearers 5 years ago
Francisco Paisana 71520d681a changes in pucch res allocation api to allow replacing p/scells 5 years ago
faluco 7ff251f112 - Fixed warnings caught by Clang 9.0.0 5 years ago
Francisco Paisana aab989022d avoid forward declarations 5 years ago
Francisco Paisana 08e1f01c72 allocation of the sr/cqi/pucch_cs resources takes place at a frequency basis now 5 years ago
Francisco Paisana ee994468f7 separate sr and pucch_cs allocation from rrc class 5 years ago
Francisco Paisana b16c7c1cfa created separate cqi res allocation types 5 years ago
Francisco Paisana 4b525127c9 created separate cell ctxt common list 5 years ago
Francisco Paisana 500a7f6357 created new separate ue class in sched tester to handle acks and harq tests 5 years ago
Pedro Alvarez 2ea78c8feb Added configuration options for stack logging. 5 years ago
Francisco Paisana 442ce0d7b0 fix cqi allocated check in rrc::ue 5 years ago
Francisco Paisana 5ef6031b44 added ability to use single-carrier if we are unable to allocate resources for the scells 5 years ago
Francisco Paisana 439193e4b0 added code to handle fail to alloc ue cqi and sr 5 years ago
Ismael Gomez 485771749e Allocate Scell resources when creating it rather than at UE creation 5 years ago
Ismael Gomez c0054140e9 Configure properly PUCCH CS mode for CA in ConnectionReconfiguration. Allocate n_pucch_cs resource and cqi/sr at rrc::ue constructor 5 years ago
Francisco Paisana b8e6ba02e4 remove warnings related to unused vars and fwd declarations with trivial dtors 5 years ago
Francisco Paisana df06443470 use c++ variadic template instead of variadic function 5 years ago
Francisco Paisana 367a190829 created dl-sch lcid type 5 years ago
Francisco Paisana 0526ae8ab1 updated rrc mobility parsing. added some utility methods 5 years ago
Francisco Paisana 20f6655c6b use common method to build mac pdu. allow CE allocations in dci format2/2a 5 years ago
Francisco Paisana 64557740fc use mac_buffer_state interface to schedule CEs in scheduler 5 years ago
Francisco Paisana ec94819f08 changed mechanism for conres ce scheduling to be controlled by rrc 5 years ago
Francisco Paisana d716d8bf7e use mini state machine for ConRes CE scheduling instead of relying that there is data in the DL buffer 5 years ago
Francisco Paisana d183d64409 added allocate_rnti method to mac. Useful both during PRACH and handover UE resource allocation 5 years ago
Francisco Paisana 6ddedd5972 moved pdu to common mac folder 5 years ago
Pedro Alvarez b176eef8e7 Using a single map to store erab_info messages. 5 years ago
Pedro Alvarez cc2b474754 Starting to add array of erab_info messages. 5 years ago
Pedro Alvarez f872e6ec39 Marking nas_pending a vector to support multiple erab setup on sending RRC reconf. 5 years ago
Francisco Paisana c09f76ed6c unified stack task defer method 5 years ago
Xavier Arteaga 5b7493cab5 Added 256QAM modulation tables to scheduler 5 years ago
Xavier Arteaga 8b265883e4 SRSENB: UL TA measurement waits for a start order before start measuring 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 c661025cda fix log tti, and print a warning when the ul_harq tti does not match existing ones 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
Francisco Paisana 1839b9a6e5 cleaned up paging code to avoid extra processing steps in worker threads 5 years ago
Francisco Paisana 9c028ab723 removed user_mutex from srsenb::rrc. All that needed to happen was the prach_worker calling add_user from stack thread (done in an earlier PR), and the get_metrics run in the stack thread. I achieved the latter with an extra metrics queue 5 years ago
Ismael Gomez 7a7385d0e5 Support multiple carriers for common buffers (RAR/BCCH/PCCH) 5 years ago
Francisco Paisana a2866f661b made the number of ue payload allocations proportional to number of active carriers. Made mac::ue_db use unique_ptrs 5 years ago
Francisco Paisana 8772d8f85c use byte buffer pool for the ue tx_payload_buffer allocation. This halves the mac::ue object creation time 5 years ago
Francisco Paisana 82cb6baef0 now the whole ue and enb mac uses the logmap 5 years ago
Ismael Gomez 5846e64a4d
Deallocate all CQI resources when deallocating users (#1097) 5 years ago
Andre Puschmann 76f1b87b69 fix uninit var in s1ap 5 years ago
Francisco Paisana 807d177b47 fix hanging issue, and simplified the handling of minRBG for different CFIs 5 years ago
Francisco Paisana ede09cb9b2 added dynamic CFI capability to the eNB scheduler 5 years ago
Xavier Arteaga ada8772f57 Initial srenb TA compensation 5 years ago
Ismael Gomez cf4f4508ce Normalize throughput in CSV/stdout metrics with respect to number of TTIs 5 years ago
Ismael Gomez 858165f177
Allocate a different PDU buffer for each carrier in MAC eNodeB (#1069) 5 years ago
Ismael Gomez 73447972d8
Fix issue with simultaneous CQI and ACK/NACK transmission in CA (#1067)
* Fix memory corruption when phy calling mac scheduler and not yet initiated

* Do not drop CQI if collision with ACK/NACK and PUSCH

* Allocate CQI resources for SCell properly

* Use UE_PCELL_CC_IDX macro

* Protect ul_sched from being called if not yet started
5 years ago
Xavier Arteaga e832769ae6 Updated copyright 5 years ago
Francisco Paisana 5330249625 created tti_point type and unit test. Added also the tti_point to the scheduler harqs, and rrc procedure 5 years ago
Francisco Paisana e824cbd251 fixes in the mac log and cell parsing 5 years ago
Francisco Paisana 567790c1a2 Renamed struct to store cell context in rrc. Moved sib buffers to this struct. Created helper methods for lookup 5 years ago
Francisco Paisana 349aed5e0d use sib configuration to set SCellToAddModList 5 years ago
Francisco Paisana 4217dba7e0 fix msg3 delayed allocation and update test 5 years ago
Andre Puschmann ab210c5f3c tiny cosmetic changes to the error messages printing 0x and clear cc_idx use 5 years ago
Andre Puschmann b7aad27d86 move packing of SCell list into extra method and add fill PHY config on the spot
previously we've packed the RRCReconfig with SCellToAddMod list and have then
parsed the message again to pack the PHY config dedicated for the new SCell carrier. This
is now done in one step.
5 years ago
Francisco Paisana d18b476e37 use utility macro for printing function name 5 years ago
Francisco Paisana 9b4a0baa87 activate scells in the phy 5 years ago
Francisco Paisana 7548402632 change scell activation interface to use arrays. Added a method to the scheduler to get the current set of activated carriers 5 years ago
Xavier Arteaga 76408b195e Rename TX_DELAY and FDD_HARQ_DELAY_MS 5 years ago
Andre Puschmann a8acd235f6 extend eNB MAC to support multiple CC per UE
- add tx/rx softbuffers for each CC that a UE might have
- make sure to call assign correct buffers when iterating
  over the CC for UL/DL grant assignment
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
Francisco Paisana a744729007 use range of rbgs 5 years ago
Francisco Paisana 46579da1ff use signed integer to express the error 5 years ago
Francisco Paisana bcbb08ebae use initial_dl_cqi for first DL tx. 5 years ago
Francisco Paisana 3b937348a2 refactored some sched util methods 5 years ago
Francisco Paisana fad897cb35 DL scheduler metric now takes into account the min and max of RBGs possible. This is to forbid segmentation of SRB0 allocations 5 years ago
Francisco Paisana 6317750de2 fix computation of ranged of allowed sched dl bytes 5 years ago