Commit Graph

1408 Commits

Author SHA1 Message Date
faluco 343587b32d Update NR classes after metrics interface changes. 2020-12-14 13:16:13 +01:00
faluco f20b75a05f Re-structure enb metrics a bit. Create a generic mac metric struct and per ue mac metrics struct. 2020-12-14 13:16:13 +01:00
faluco 5529943172 Add a per sector rach preable counter for the metrics. 2020-12-14 13:16:13 +01:00
Francisco f1c05f6826 add sector id to ues in mac metrics 2020-12-14 13:16:13 +01:00
Francisco 43e0a3209d fill enb rrc metrics with drb info 2020-12-14 13:16:13 +01:00
faluco dcd1157d39 - Prototype the extension of enb metrics. 2020-12-14 13:16:13 +01:00
Ismael Gomez 5d85307a98 Fix 256QAM reconfiguration 2020-12-12 15:59:27 +01:00
Ismael Gomez a9673e3c53 Use number of configured cells before reconfiguration for DCI calculation 2020-12-12 15:59:27 +01:00
Ismael Gomez e654062a7a Do not stash all PHY configuration in eNB during reconfiguration. Stash only number of CC used by DCI 2020-12-12 15:59:27 +01:00
Pedro Alvarez 7eebd71627 Added S1AP E-RAB release command/response handling to srsENB.
Added the ability to srsEPC to send the E-RAB release command.
2020-12-12 15:59:27 +01:00
Francisco 783131a4e1 sched rand test refactor: removal of redundant tests 2020-12-12 15:59:27 +01:00
Francisco cba0cc457f sched rand test refactor: creation of abstract sched simulator class for testing 2020-12-12 15:59:27 +01:00
Francisco aed36eb273 sched rand tester refactor: elimination of ue_ctxt_test obsolete class 2020-12-12 15:59:27 +01:00
Francisco a068ae11b0 sched rand tester ue_sim class now handles cqi 2020-12-12 15:59:27 +01:00
Francisco 8f05982bef simplification of scheduling of UL acks in sched random tester 2020-12-12 15:59:27 +01:00
Francisco 86eb315102 simplification of scheduling of DL acks in sched tester 2020-12-12 15:59:27 +01:00
Codebot 43082e8d6a enb/ue: turn various warning messages into info
turn events that may happen in the normal life of a eNB/UE
into info rather than warning to allow strict
warning/error checking in tests.
2020-12-12 15:59:27 +01:00
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)
2020-12-12 15:59:27 +01:00
David Rupprecht 848496bb0f Moved get_earfcn to srslte get_carrier_freq func 2020-12-12 15:59:27 +01:00
Francisco 37ee8bcf46 fix issue 2082 - ensure that sched does not exceeds max coderate while decreasing mcs 2020-12-12 15:59:27 +01:00
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 2020-12-12 15:59:27 +01:00
Francisco 920e15c1a5 fix logical channel pdu size computation 2020-12-12 15:59:27 +01:00
Ismael Gomez ae1092257f Fix issue in 15 PRB 2CA: Due to DCI format ambiguity, the scheduler needs to use Format1A instead of Format1. The number of PRB was incorrectly calculated when generating the grant, leading to corruptions in the MAC PDU. 2020-12-12 15:59:27 +01:00
Francisco 9eddfdb4a3 fix sched rand tester coderate check. tbs needs to be converted from bytes to bits 2020-12-12 15:59:27 +01:00
Francisco 0ae304a6ed update sched rand tester to detect when tbs coderate exceeds 0.93 2020-12-12 15:59:27 +01:00
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
2020-12-12 15:59:27 +01:00
Francisco 2598989f7d replace msg3grant type from C-array to bounded vector 2020-12-12 15:59:27 +01:00
Francisco 22229adf08 fix: normal phr is only sent for PCell 2020-12-12 15:59:27 +01:00
Francisco 69748e9313 fix compilation issue regarding definition of size_t in header and declaration of static member null_value in sliding average class 2020-12-12 15:59:27 +01:00
Francisco d42dc50c44 Write TPC sched unit test and fix sched logical channel test 2020-12-12 15:59:27 +01:00
Francisco 8670558692 fix failing scheduler ca test 2020-12-12 15:59:27 +01:00
Francisco 479602ed1d add option to specify target ul sinr for UL power control to the enb rr.conf parser 2020-12-12 15:59:27 +01:00
Francisco 5865df39d1 created class that implements the scheduler transmit power control and PHR handling 2020-12-12 15:59:27 +01:00
Xavier Arteaga ebd87e63c0 Fix worker NR compilation 2020-12-12 15:59:26 +01:00
Xavier Arteaga f9643843a0 SRSENB/UE Fixed NR workers 2020-12-12 15:59:26 +01:00
Xavier Arteaga b501f2eeaf SRSENB/UE: Added NR workers 2020-12-12 15:59:26 +01:00
Xavier Arteaga a908fb6c5b Fix NR srsue/srsenb. Initial PHY NR in SRSENB. 2020-12-12 15:59:26 +01:00
Xavier Arteaga 85afdf8ce3 SRSENB: moved phy workers to lte worker pool 2020-12-12 15:59:26 +01:00
Francisco 2b59e90304 fix: limit number of encoded PHICH in the scheduler to the max size of the array 2020-12-12 15:59:26 +01:00
Francisco 2b97b2c8bb add bound checks for data, bc, and rar allocations in the scheduler to avoid array overflows. 2020-12-12 15:59:26 +01:00
Francisco d98d14efcc remove tti_params struct from sched testers, and use tti_point instead 2020-12-12 15:59:26 +01:00
Francisco 86ab1864f7 The struct tti_point is now used ubiquitously in the scheduler 2020-12-12 15:59:26 +01:00
Pedro Alvarez 49bcffcdf8 Fix issue packing TEID in Error indication. 2020-12-12 15:59:26 +01:00
Pedro Alvarez 235f373af7 Started to add ability to send error indication when G-PDU from invalid TEID is received. 2020-12-12 15:59:26 +01:00
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
2020-12-12 15:59:26 +01:00
Francisco b71e8075f4 Refactoring of scheduling algorithms
- Use single interface for both DL and UL
- Wrote helper functions for tasks that are common to different algorithms
- created subfolder for all scheduling algorithms
2020-12-12 15:59:26 +01:00
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
2020-12-12 15:59:26 +01:00
Francisco d7fae0b7a3 Implementation of time-domain PF scheduler
- PF scheduling becomes the new default
2020-12-12 15:59:26 +01:00
Andre Puschmann 07d2bc4fe8 change license header to agnostic version with hint to root LICENSE file 2020-12-12 15:59:25 +01:00
Francisco a5ef9f1eb9 potential fix for heap-overflow in scheduler, issue #2053. Added a bound check for the number RACH handled per tti. RACHs are ignored once the limit is surpassed. 2020-12-12 15:59:25 +01:00
Francisco 2fcb507de7 Fix gcc compilation errors with false_position_method in sched_ue.cc 2020-12-12 15:59:25 +01:00
Francisco 8d181ef41c Optimization of cc_sched_ue::cqi_to_tbs(...) method via the use of root-finding algorithm 2020-12-12 15:59:25 +01:00
Francisco 94efeab672 Optimization of sched_ue methods to derive required number of prbs to allocate to a rnti
This optimization has been achieved by:
- implementation of "false position method" root-finding algorithm
- application of the false position method in cc_sched_ue::get_required_prb_dl/ul(...)

The number of iterations in the worst case scenario, reduced from 100 to 5 with
the proposed algorithm.
2020-12-12 15:59:25 +01:00
Francisco f07e52129c increase mcs ul upper bound to 24 when ue is cat4 and enb supports 64qam. Simplified max_mcs computation 2020-12-12 15:59:25 +01:00
Francisco 3d80ff4831 fix activation of PDCCH for adaptive retxs. 2020-12-12 15:59:25 +01:00
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. 2020-12-12 15:59:25 +01:00
Andre Puschmann 1ecfb88e46 txrx: fix double white space 2020-12-12 15:59:25 +01:00
Andre Puschmann 43220e42d6 enb: print cell bandwidth when initializing them carrier
this allows to quickly check the cell bandwidth
2020-12-12 15:59:25 +01:00
Francisco 7a74bf28d1 forward declare s1ap types in enb interfaces 2020-12-12 15:59:25 +01:00
Francisco 95cc6238a5 compilation time reduction - avoid including enb_stack_lte.h in main.cc and include enb_stack_base instead 2020-12-12 15:59:25 +01:00
Francisco 66712023bb remove unneeded includes of full rrc asn1 lib 2020-12-12 15:59:25 +01:00
Francisco 3067e81e67 fix check of pending UL bytes 2020-12-12 15:59:25 +01:00
Francisco bb96625129 renaming lch_manager -> lch_ue_manager 2020-12-12 15:59:25 +01:00
Francisco a348508072 simplified sched_ue pending DL bytes calculation API 2020-12-12 15:59:25 +01:00
Francisco 0ffea62411 Wrote logging functions for SCHED MAC CE/LCID allocations 2020-12-12 15:59:25 +01:00
Francisco c1fb161004 Move sched lch_manager to separate file 2020-12-12 15:59:25 +01:00
Francisco eae0dc93ad rename scheduler files. scheduler -> sched 2020-12-12 15:59:25 +01:00
Francisco 4350e8ff70 fix calculation of number of users during the phy metrics acquisition 2020-12-12 15:59:25 +01:00
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. 2020-12-12 15:59:25 +01:00
Ismael Gomez ce20cc4c54 Add missing current_tx_nb which was causing all in uplink to fail 2020-12-12 15:58:34 +01:00
Pedro Alvarez d05bc064b5 Reduced SCTP connect() timeout.
Added configuration for RTO_MAX. Cleanup debug prints.
2020-12-12 15:58:34 +01:00
Francisco 324cb80cac rename cell_info_common->enb_cell_common and cell_ctxt_dedicated->ue_cell_ded 2020-12-12 15:58:34 +01:00
yagoda bdc1964335 consolidating RRC eMBMS configuration into single function, setting some parameters to const 2020-12-12 15:58:34 +01:00
yagoda b90574975b refactoring asn1 eMBMS code, removing asn1 from PHY and MAC in eNodeB 2020-12-12 15:58:34 +01:00
Andre Puschmann fb83b5c307 enb: fix reestablishment with AS security enabled
this fixes RRC reestablishment with security turned on

the bearers, primarily SRB1, were reestablished before the "old"
security context was restored from the previous RNTI of the
reestablishing user.

this let SRB1 without proper security config. therefore the UE
couldn't decrypt the first response of the UE on SRB1 that was
already encrypted.
2020-12-12 15:58:34 +01:00
Francisco 92c1c2a182 more efficient measObjToAddModList reconfiguration by ensuring consistency in EARFCN ordering 2020-12-12 15:58:34 +01:00
Francisco 68d463b08f remove var_meas_cfg_t class 2020-12-12 15:58:34 +01:00
Francisco e88ba6dfc8 move rrc measconfig handling functions to separate file. Update measconfig tests 2020-12-12 15:58:34 +01:00
Francisco 25bfb6d84d move rrc measconfig handling functions to separate file. Update measconfig tests 2020-12-12 15:58:34 +01:00
Francisco 1cb65f07f1 enable meas gaps in RRC and enb parser 2020-12-12 15:58:34 +01:00
Francisco Paisana 9ff0a9b254 fix random array index picker 2020-12-12 15:58:34 +01:00
Francisco Paisana 49a48c0130 add measgap awareness to scheduler metric and sf_sched. Add measGap test to random sched test suite. 2020-12-12 15:58:34 +01:00
Francisco Paisana 2b05d5a67c add meas gap addition logic to srsenb rrc mac controller 2020-12-12 15:58:34 +01:00
Francisco Paisana 9579931f16 added meas gap checks to scheduler ue 2020-12-12 15:58:34 +01:00
Xavier Arteaga 036026be04 SRSENB: CSI reports on active SCells only 2020-12-12 15:58:33 +01:00
Andre Puschmann 35373d1385 enb,ue: add cmdline arg to enable usage of default LTE sample rate
some RF boards might have issues with the sharp filters that are needed
for the reduced sample rate operation that we use by default.

This switch allows to use the default LTE sampling rates and
configure this at run-time, not compile time.
2020-12-12 15:58:33 +01:00
Francisco Paisana fdec451a9d disable mcs>20 if eNB supports UL 64QAM but UE doesn't 2020-12-12 15:58:33 +01:00
Francisco Paisana bc00abeeb8 fix phy configuration of UL 64QAM 2020-12-12 15:58:33 +01:00
Francisco Paisana b369d6d5d5 consider enb sib config when activating UL 64QAM 2020-12-12 15:58:33 +01:00
Francisco Paisana bf7c587e4f add UL 64QAM support to eNB RRC and scheduler 2020-12-12 15:58:33 +01:00
Pedro Alvarez 604e79214d Changed NAS is_attached interface to is_registered. 2020-12-12 15:58:33 +01:00
Pedro Alvarez 14844a168a Created new class to hold all NAS states for the NAS state machine. Added EMM-DEREGISTERED substates and EMM-REGISTERED substates.
Decoupled PLMN selection, attach request and service request. Removed RRC connect procedure from NAS.
2020-12-12 15:58:33 +01:00
Francisco Paisana ff7811c822 remove unused member variable from sched tester 2020-12-12 15:58:33 +01:00
Francisco Paisana 3407ac6741 fix ca sched test 2020-12-12 15:58:33 +01:00
Francisco Paisana e8ac98d06f added extra tbs and dci aggregation level checks to sched test suite 2020-12-12 15:58:33 +01:00
Francisco Paisana 5467ee9f83 moved more tests to ue-dedicated test suite 2020-12-12 15:58:33 +01:00
Francisco Paisana 992ea7fd29 moved UE-dedicated RA sched test to separate test suite file. 2020-12-12 15:58:33 +01:00
Francisco Paisana d5f6ccc0c4 integrated UL UE-dedicated sched tests in random test 2020-12-12 15:58:33 +01:00
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 2020-12-12 15:58:33 +01:00
Francisco Paisana 64fca23eb3 extended dci content checks of DL and UL grants in the scheduler random tester. 2020-12-12 15:58:33 +01:00