470 Commits (407da794e1c58d139cfa69daf6bfcc091a71e353)

Author SHA1 Message Date
Francisco d334907afe sched - wrote benchmark to detect regressions in DL/UL data rates, and to analyse the total latency of the scheduler 4 years ago
Francisco 248f05bf08 sched,bugfix - fix optimal cfi computation for sib/rar allocations 4 years ago
Francisco 19a043683c bugfix - fix compilation issue in gcc10. The interfaces don't have virtual dtors 4 years ago
Francisco 884c1b04d2 sched,test - add test to verify cch allocator ability to undo last allocation 4 years ago
Francisco 1f35c4dc8b sched, feature enhancement, bugfix - allow RAR DL grants with variable PRB size
Some bug fixes had to be solved:
- the cfi cannot be dynamic once we set a SIB/paging/RAR allocation. This is too avoid effective coderate to exceed its maximum
- the previous bugfix required adding the feature to cancel the last PDCCH+PDSCH allocation
4 years ago
Francisco 47f1175502 [sched, feature enhancement] - allow variable nof prbs allocated per SIB / Paging message 4 years ago
Francisco 76103065f7 collapse the 2-stage DCI generation process of SIB/Paging/RAR into one single stage in the scheduler. 4 years ago
Francisco 3a4ae3d69d extended broadcast+RAR DCI encoding scheduler tests 4 years ago
Francisco 16b5e1fd4d fix collision detection of n1pucch for the ACK and SR in the scheduler 4 years ago
Francisco 3e9f93eb8a refactor - remove old log_filter and logmap libraries from the codebase 4 years ago
Francisco fbbbf7886c sched,bugfix - reset harq used for msg3 correctly 4 years ago
Francisco d1483dc0f8 sched,bugfix - fix bitmask formatting. fix msg3 adaptive retx pdcch allocation 4 years ago
Francisco 20e341d0a1 mac,bugfix - fixed formatting of MAC and scheduler user-defined types 4 years ago
Francisco d77b6e1d9c sched,optimization,refactor - use of custom formatter that avoids mallocs for getting bitmasks strings in hex and binary formats 4 years ago
Francisco b79d09e83f remove commented code from sched dci test 4 years ago
Francisco fb04fdbe69 sched,bugfix - fix mcs/tbs computation for 256-QAM. 4 years ago
Francisco 102cb196e1 Addition of enb cfg option to choose between PUCCH with multiplexing and without. Change default prach offset to 4.
- The new prach offset of 4 accounts for the size of the PUCCH-ACK region with 100 prbs
4 years ago
Francisco 34e39a9835 Implementation of scheduler algorithm to avoid PUCCH collisions
- The cch_allocator considers the existence of a fixed PUCCH region dedicated to CQI, SR, and HARQ ACKs
- At the moment PUCCH multiplexing is not considered
- The PUCCH width was increased to accommodate possible PUCCH-ACK positions
4 years ago
Francisco 39aea96c69 fix sched tests UL HARQs. Set common pucch cfg in the sched tests 4 years ago
Francisco 7dcfe7bf0e sched: updated tbs calculation test. Fix edge cases that failed the test. 4 years ago
Francisco ed8ab3871c re-designed algorithm to compute lowest mcs that meets cqi,req_bytes,nof_prbs requirements in the scheduler 4 years ago
Francisco 3dd7877199 wrote unit test to check tbs,mcs derivation based on cqi,nof_prb in scheduler 4 years ago
Xavier Arteaga 1e55d68b55 Removed set RNTI from API 4 years ago
Francisco 4b09507c19 remove srslte.h includes from upper layers 4 years ago
Francisco 13d805ef56 move ue rrc interfaces to separate interfaces header file 4 years ago
David Rupprecht 0f1586dd2d Deleted all HAVE_5GNR in CC and h files
CMakeList and travis yaml
4 years ago
Francisco 9a9ed01dda rename pdcch_sched to sf_cch_allocator 4 years ago
Pedro Alvarez 6ecd6e273c Make sure that the status report is sent in RLF and PDCP reestablishment triggered by Handover 4 years ago
faluco a940e169a3 Add the enb_cc_idx value to S1 events. 4 years ago
Francisco 9546634b37 use unique_ptr for sched_ue database in scheduler. This will minimize the time spent locking while adding new users 4 years ago
Francisco c1adaec038 refactored cce position table structs 4 years ago
Francisco 823da24a8e removed uneeded sched method to set sched algorithm, and made configured flag atomic 4 years ago
Francisco 6b3cf6c597 moved pdcch sched to separate file 4 years ago
Pedro Alvarez b0fe302f8e Added interfaces so the upper layers can trigger the PDCP status report. Added ability to the UE to send Status Report aftre reestablishment. 4 years ago
Francisco Paisana c40ad81a90 cleanup s1ap methods. remove hard coded erab list in s1ap handover required message. 4 years ago
Francisco dc4283c572 added cmake functions as helpers to set labels in ctests 4 years ago
Francisco 23459dee28 Created enb_{rlc/pdcp/gtpu/phy_interfaces.h files. 4 years ago
Francisco 43e57df00b breaking enb_interfaces.h into multiple files on a layer basis. Created enb_rrc_interfaces.h, enb_mac_interfaces.h and enb_s1ap_interfaces.h 4 years ago
faluco 5c8923123a Misc compilation fixes from the fapi repo. 4 years ago
faluco 6359a2d948 - Upgrade the gtpu class in lib dir to srslog.
- Propagate old log elimination through all the dependencies of gtpu.
4 years ago
Francisco 4188b5146e fix uninitialized memory access in gtpu_test and liblte_mme unpacking 4 years ago
Francisco 3265d940ec remove byte buffer pool cached member variables as they are unnecessary now. 4 years ago
Francisco 04ab4eefcd use new make_byte_buffer() helper method to create unique_byte_buffers 4 years ago
Francisco c4a50b7de0 avoid loss of pdcp sdus' SNs buffered in gtpu during handover 4 years ago
Francisco 78d1b8083a fix GTPU tunneling. Avoid forwarding packets to PDCP while the PDCP bearer is not yet created 4 years ago
faluco 199f1c953e Remove unneeded logmap headers. 4 years ago
faluco 79eca0980d - Ported fsm.h to srslog.
- Adapted and removed old loggers in tests and code that used fsm.h
4 years ago
Francisco 411946c752 Improvements on GTPU message logging
- Avoid multiple lines per each SDU Rx or Tx
- log info relative to source and destination of each SDU
- log info relative to whether the Rx SDU has been forwarded into a tunnel
- log info relative to whether the Rx SDUs are being buffered.
4 years ago
Francisco 2bde28252c send UE capability indication through S1AP 4 years ago
Francisco d64ce7df77 implementation of S1 E-RAB Release Indication and Error Indication messages 4 years ago
Francisco 2befbd1825 setup of forwarding tunnels during enb s1 handover 4 years ago
Francisco ee3d8a5c77 fix gtpu_test memcpy param overlap bug 4 years ago
Francisco b9271f26da change naming from mme to sgw in gtpu_test 4 years ago
Francisco e8f6a436af update gtpu test to account for scenario of buffered PDCP SNs, and buffering of direct path until indirect tunnel is closed 4 years ago
Francisco 56ec2c286e add gtpu test for tunneling 4 years ago
Francisco 13649e4e19 Implement new GTPU functionality:
- multiple tunnels per E-RAB
- data forwarding between connected GTPU tunnels
- forwarding GTPU End Marker between connected tunnels
- TeNB GTPU handles in-sequence delivery when multiple tunnels for the same ERAB exist.
4 years ago
faluco 711438f756
Port enb specific classes to use srslog (#2155)
* - Started porting the enb PHY layer to use srslog loggers.
- Updated srslog to manage the none level.

* Finished porting enb phy layer including the NR part.

* Ported MAC, GTPU, PDCP, RLC and S1AP enb classes to use srslog.

* Use new stack logger.

* Ported the enb RRC clases to use srslog.

* Remove unused log macros.

* Replace loggers in sched, sched_carrier, sched_helpers.

* Replaced loggers in sched grid.

* Replaced loggers in sched harq.

* Replaced loggers in sched ue.

* Replaced loggers in sched ue ctrl.

* Replace loggers in sched ue ctrl TPC.

* Replaced loggers in sched subclasses.

* Replaced loggers in rrc_meascfg_test

* Configure loggers in rrc_mobility_test.

* Fix compilation errors left out after the rebase.

* - Implement a custom log sink that will serve as a test spy to intercept and count the number of error and warning log entries.
- Adapt the erab_test_setup and rrc_mobility tests to use this new class and make them pass again.

* - Remove trailing new lines introduced in the rebase.
- Ported the sched_ue_cell class to srslog.

* Remove unused log member.

* Ported mac tests to srslog.

* - Removed remaining trailing newlines from log entries.

* Fix compiler errors detected in CI.

* Fix another static variable without definition passed to log lines.

* Fixed a bug in srslog::flush that would never end when the backend queue is full.

* Fetch the RRC logger instead of injecting it in the constructor.
4 years ago
Francisco Paisana 3892194d98 sched refactor, use enb_cc_idx rather than ue_cc_idx primarily to avoid uneeded conversions 4 years ago
Ismael Gomez 47dbd6ed70
Merge pull request #2214 from softwareradiosystems/pr_mac_buffers
Limit the number of UL buffers in MAC and deallocate old ones
4 years ago
Francisco 7f6f3f7912 fix sched test check for ConRes DCI format. 4 years ago
Ismael Gomez d5f0634975
Add PUCCH SNR measurement (#2175)
* Add PUCCH SNR measurement

* Fix PUCCH SNR estimation

* Reverted PUCCH noise estimation

* use fpclassify instead of iszero

Co-authored-by: Xavier Arteaga <xavier@softwareradiosystems.com>
4 years ago
Ismael Gomez c1c5fa426c Fix issue with new way of managing ul buffers not working with CA 4 years ago
Francisco Paisana d0a17b0a40 created sched_ue_cell class that is indexed based on enb_cc_idx 4 years ago
Francisco Paisana 2abe486e18 separate control loops for PUCCH and PUSCH TPC 4 years ago
faluco 92b11c1adb Backport misc changes from the fapi repo. 4 years ago
Francisco Paisana 099dad8cb1 disable PHR handling in the UL sched by default 4 years ago
Ismael Gomez f9a02299f9 Use MAC PDU pointer instead of tti_rx and rnti as a key to associate buffers. Decouple crc_info() and push_pdu() functions. This allows for different timing architectures in the PHY 4 years ago
Ismael Gomez 0498439d41
Backport some changes from FAPI branch (#2124)
* Reorder DCI FORMAT enum

* Fix endianness issue

* Fix return codes in phy_ue_db

* Log members should be destructed after the layers.

* Add JSON metrics and Events. Add Alarm log channel. Simplify MAC metrics struct.

* Restore metrics_stdout change
4 years ago
faluco 8c42ec26c3 Fix error in previous rebase from dev. 4 years ago
faluco f20b75a05f Re-structure enb metrics a bit. Create a generic mac metric struct and per ue mac metrics struct. 4 years ago
Francisco 783131a4e1 sched rand test refactor: removal of redundant tests 4 years ago
Francisco cba0cc457f sched rand test refactor: creation of abstract sched simulator class for testing 4 years ago
Francisco aed36eb273 sched rand tester refactor: elimination of ue_ctxt_test obsolete class 4 years ago
Francisco a068ae11b0 sched rand tester ue_sim class now handles cqi 4 years ago
Francisco 8f05982bef simplification of scheduling of UL acks in sched random tester 4 years ago
Francisco 86eb315102 simplification of scheduling of DL acks in sched tester 4 years ago
Andre Puschmann eea6f0f11b enb: fix potential invalid access in stdout metrics
this fixes a potential access of invalid PHY or MAC metrics by checking
the user entry actually exists.

the RFCI has shown this error:

------DL--------------------------------UL------------------------------------
rnti cqi  ri mcs brate   ok  nok  (%)  snr  phr mcs brate   ok  nok  (%)   bsr
ASAN:DEADLYSIGNAL
=================================================================
m==31838==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x555d482b6893 bp 0x7f6ac32d1160 sp 0x7f6ac32d0bc0 T21)
==31838==The signal is caused by a READ memory access.
==31838==Hint: address points to the zero page.
    #0 0x555d482b6892 in srsenb::metrics_stdout::set_metrics(srsenb::enb_metrics_t const&, unsigned int) /mnt/data/jenkins/workspace/srslte_dev_ogt_zmq_nightly/srsLTE/srsenb/src/metrics_stdout.cc:101
    #1 0x555d482865f1 in srslte::metrics_hub<srsenb::enb_metrics_t>::run_period() /mnt/data/jenkins/workspace/srslte_dev_ogt_zmq_nightly/srsLTE/lib/include/srslte/common/metrics_hub.h:88
    #2 0x555d482865f1 in srslte::periodic_thread::run_thread() /mnt/data/jenkins/workspace/srslte_dev_ogt_zmq_nightly/srsLTE/lib/include/srslte/common/threads.h:143
    #3 0x555d4826813d in srslte:🧵:thread_function_entry(void*) /mnt/data/jenkins/workspace/srslte_dev_ogt_zmq_nightly/srsLTE/lib/include/srslte/common/threads.h:102
    #4 0x7f6b0dc546da in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76da)
    #5 0x7f6b0bf0171e in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x12171e)
4 years ago
David Rupprecht 848496bb0f Moved get_earfcn to srslte get_carrier_freq func 4 years ago
Francisco b4861bc59a move sched params and sched helper methods to sched_helpers.h/cc files. Removed place in the scheduler where the mcs is increased forcefully to avoid segmentation 4 years ago
Francisco 9eddfdb4a3 fix sched rand tester coderate check. tbs needs to be converted from bytes to bits 4 years ago
Francisco 0ae304a6ed update sched rand tester to detect when tbs coderate exceeds 0.93 4 years ago
Francisco 99f94d9a1a Bug fixes of srseNB scheduler TPC
- fix encoding of TPC command
- use of exponential average with irregular sampling for the ULSNR average estimate.
  Turns out using a time-windowed average for the SNR was a bad idea.
  If the UL grants are very sporadic, the SNR time window will never have samples
  when a TPC is encoded
- update of TPC sched test
- other fixes in accumulators lib
4 years ago
Francisco 2598989f7d replace msg3grant type from C-array to bounded vector 4 years ago
Francisco 69748e9313 fix compilation issue regarding definition of size_t in header and declaration of static member null_value in sliding average class 4 years ago
Francisco d42dc50c44 Write TPC sched unit test and fix sched logical channel test 4 years ago
Francisco 479602ed1d add option to specify target ul sinr for UL power control to the enb rr.conf parser 4 years ago
Francisco 5865df39d1 created class that implements the scheduler transmit power control and PHR handling 4 years ago
Francisco d98d14efcc remove tti_params struct from sched testers, and use tti_point instead 4 years ago
Francisco 86ab1864f7 The struct tti_point is now used ubiquitously in the scheduler 4 years ago
Francisco 8fb3ea6922 Added the ability to choose scheduling policy from enb.conf
- The two options provided at the moment are time-domain RR and PF
4 years ago
Francisco 64ee0ac2ef New statistics were added in the random sched tester
- new stats allow to analyze the average bitrates of each user
- there is a new stat that computes the total of RBs allocated and total bitrate achieved by the scheduler
4 years ago
Andre Puschmann 07d2bc4fe8 change license header to agnostic version with hint to root LICENSE file 4 years ago
Francisco 8d181ef41c Optimization of cc_sched_ue::cqi_to_tbs(...) method via the use of root-finding algorithm 4 years ago
Francisco 3d80ff4831 fix activation of PDCCH for adaptive retxs. 4 years ago
Francisco fc81a5c6ba harq ack state can now only be NACK or ACK. The ul_harq pending phich flag is now reset after phich scheduling. Thus, the existence of a crc_info(...) signal from the PHY is not required. 4 years ago
Francisco 66712023bb remove unneeded includes of full rrc asn1 lib 4 years ago
Francisco bb96625129 renaming lch_manager -> lch_ue_manager 4 years ago
Francisco a348508072 simplified sched_ue pending DL bytes calculation API 4 years ago
Francisco eae0dc93ad rename scheduler files. scheduler -> sched 4 years ago
Francisco 68eda336bd remove ENB_METRICS_MAX_USERS compile time macro and use run-time variable to set maximum number of UEs the srseNB can have connected at a given instant. 4 years ago
Francisco 324cb80cac rename cell_info_common->enb_cell_common and cell_ctxt_dedicated->ue_cell_ded 4 years ago
yagoda bdc1964335 consolidating RRC eMBMS configuration into single function, setting some parameters to const 4 years ago
yagoda b90574975b refactoring asn1 eMBMS code, removing asn1 from PHY and MAC in eNodeB 4 years ago
Francisco 92c1c2a182 more efficient measObjToAddModList reconfiguration by ensuring consistency in EARFCN ordering 4 years ago
Francisco e88ba6dfc8 move rrc measconfig handling functions to separate file. Update measconfig tests 4 years ago
Francisco 25bfb6d84d move rrc measconfig handling functions to separate file. Update measconfig tests 4 years ago
Francisco 1cb65f07f1 enable meas gaps in RRC and enb parser 4 years ago
Francisco Paisana 9ff0a9b254 fix random array index picker 4 years ago
Francisco Paisana 49a48c0130 add measgap awareness to scheduler metric and sf_sched. Add measGap test to random sched test suite. 4 years ago
Francisco Paisana ff7811c822 remove unused member variable from sched tester 4 years ago
Francisco Paisana 3407ac6741 fix ca sched test 4 years ago
Francisco Paisana e8ac98d06f added extra tbs and dci aggregation level checks to sched test suite 4 years ago
Francisco Paisana 5467ee9f83 moved more tests to ue-dedicated test suite 4 years ago
Francisco Paisana 992ea7fd29 moved UE-dedicated RA sched test to separate test suite file. 4 years ago
Francisco Paisana d5f6ccc0c4 integrated UL UE-dedicated sched tests in random test 4 years ago
Francisco Paisana eb327183d3 moved harq tests from scheduler_test_common.cc to separate test suite file. Created a class ue_sim, whose role is to emulate a UE behavior 4 years ago
Francisco Paisana 64fca23eb3 extended dci content checks of DL and UL grants in the scheduler random tester. 4 years ago
Francisco Paisana 88105c1577 change the namespace of tti point helper functions for the eNB 4 years ago
Francisco Paisana 114932b4c6 extended common sched test suite api to multi carrier 4 years ago
Francisco Paisana f24e5aadaf clean common sched output tests 4 years ago
Francisco Paisana d8203acd56 implement harq resuming functionality 4 years ago
Francisco Paisana 510959b50f update nr asn1 files, and asn1 tests 4 years ago
Francisco Paisana 42cdc5e340 Allocate all the leftover bytes of the TBS to last allocated MAC SDU.
Fix the way the RLC header is accounted for depending on the bearer id.
For instance, the SRB0 does not require any RLC header.
4 years ago
Francisco Paisana 78e580a89f fix rrc_mobility_test failure due to access to uninit variable 4 years ago
Francisco Paisana f1bdf33d10 addition of cells provided in cell_meas_list of rr.conf to cellsToAddModList in the rrc reconfiguration message 4 years ago
Francisco Paisana c5c7700cb7 implemented DL logical channel prioritization test for finite PBRs 4 years ago
Francisco Paisana 2d3681699a added test for DL sched logical channel prioritization. At the moment only PBR=infinity is tested 4 years ago
Francisco Paisana c46402c836 fix phy configuration during handover on srsenb. The function srsenb::rrc::ue::fill_scell_to_addmod_list assumes that the phy_cfg of the PCell is up-to-date, which was not the case. With this PR, the srsenb rrc updates the phy_cfg before the ho cmd is sent, but, in the case of intra-enb ho, the updates are not submitted to the phy before the reception of the crnti mac ce 4 years ago
faluco d53f69bf0a - Initialize the log backend, otherwise no log entries are generated. 4 years ago
Francisco Paisana 688dda30a4 favour carriers with best channel conditions for UL grants due to SRs 4 years ago
Francisco Paisana 137e554eb3 reestablish pdcp bearers is required in case of AM bearers 4 years ago
Francisco Paisana da70c0fdaf fix cellsToAddModList handling. Now the eNB always adds PCell+SCells as measObjects in the RRC Reconfiguration messages. It may also further include cellsToAddModList if they are provided in the rr.conf file 4 years ago
Francisco Paisana 141960fbda remove unnecessary shared_ptrs and use value semantics instead for the var_meas_cfg of the different enb cells 4 years ago
Francisco Paisana 098172c911 fix cellIndex assignment in srsENB to not necessarily copy cell ID 4 years ago
Ismael Gomez e2154d2213 Renamed constants to SRSLTE and use SRSLTE_CFI macros 4 years ago
Francisco Paisana cbac98c89e fix ack delay checks in scheduler tests 4 years ago
Xavier Arteaga 080543815f Solved compilation warnings and enb_phy_test stop 4 years ago
Ismael Gomez a4835dd2c8
More accurate MCS reduction when PUSCH carries UCI (#1630) 4 years ago
Francisco Paisana b47f8e6c1a increased rrc inactivity timer to avoid unnecessary pagings while
setting up an initial enb-ue iperf connection
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 2d55691173 extended rrc mobility test to check security configuration of pdcp bearers 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 8b174ce2f4 changed interval interface to disallow interval::stop < interval::start via an assertion 4 years ago
Francisco Paisana c1755727d7 changed interval method names, and added comments and assertions 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
Ismael Gomez 382811e10e
Update S1AP RNTI context when doing Reestablishment (#1582) 4 years ago