530 Commits (296949b5f951a93dba8f29344f3751b8b6c40940)

Author SHA1 Message Date
Francisco c6b9c12ba2 gtpu, feature - added the ability to configure gtpu indirect tunnel timeout value. This parameter is useful in the case that the end marker is not received 4 years ago
Francisco 5818488b27 change enb max_nof_ues config parameter to nof_prealloc_ues 4 years ago
Francisco f7016633d2 sched, fix - avoid tpc commands when target pusch and pucch snr are not specified 4 years ago
Francisco d3c51fdad4 limit minimum UL grant size to accommodate both BSR and RLC headers 4 years ago
Francisco 01eace2631 rrc paging mechanism improvements
- moved paging record handling to separate class
- parallel access to pending pcch messages by phy workers based on TTI and without common lock
- asn1 pcch message packing now takes place in stack thread, to avoid real-time issues
4 years ago
Xavier Arteaga 6045998909 enb_phy_test uses default rr configuration 4 years ago
Francisco Paisana d39183419c
Separate TPC PUSCH and PUCCH target SINR (#2740)
* separate target pusch and pucch sinr configurations in tpc class and rr.conf
4 years ago
Xavier Arteaga 1a4de831e9 Ammended eNb PHY tests 4 years ago
Francisco d1b336101f revert enb phy tests. Check that when nof_carriers==6 the phy fails to start and reports an error. 4 years ago
Francisco 6137e4569b fix srsran_assert definition when asserts are disabled 4 years ago
Francisco 3b78bf3730 bugfix - fix memcheck warnings. move instructions with side effects outside of asserts 4 years ago
David Rupprecht a064e85c54 rename common lte header 4 years ago
Ismael Gomez 77b11b82ac
Release UE if no activity in DRB (#2658)
* Count user activity with DRB only and SRBs for initial procedures. Add counter to release user after max KO in UL.
4 years ago
Francisco 14d32db92f implement Handover direct forwarding path availability configuration feature 4 years ago
Francisco b8fa1d1b61 fix rrc mobility test 4 years ago
Francisco 66988ffd32 s1ap - simplified erab setup procedure. Handle correctly the failure to setup causes 4 years ago
Francisco f401683960 s1ap - simplified erab modify procedure 4 years ago
Francisco 76978f0d14 s1ap - simplified erab release procedure 4 years ago
Francisco c5fc543516 s1ap - handling of ts1 reloc overall timer. 4 years ago
Francisco c2a99a8112 handover - support for handover cancellation causes, check for E-RAB QoS requirements, cancellation of handover if E-RABs are not supported in the target eNB 4 years ago
Francisco 6d401bc79f handover - check if UE integrity and encryption algorithms are supported in the target eNB, and report handover failure if not. 4 years ago
Francisco 77bd500312 handover - implement and test S1 Handover fail path for the case of invalid QoS config in HO Request message 4 years ago
Francisco d2c404b166 handover - setup s1ap cause in case of handover failure at the target enb 4 years ago
Francisco 49bd895e29 s1ap - handle invalid or repeated erab ids in s1ap erab release command 4 years ago
Francisco 7842e3bff3 s1ap - add unit test to check correct handling of invalid E-RAB ids in modification request. Fix s1ap in order for the test to pass 4 years ago
Francisco 985846e3bd s1ap - set multiple erab ids cause in replay when s1ap erab modify request has repeated ids. 4 years ago
Francisco f7a8b8bf94 separate drb srb ids into separate enum types 4 years ago
Francisco 21718af3b6 avoid allocating std::string to get lcid radio bearer name. Refactored the lte radio bearer enum type 4 years ago
Francisco 99b4595b69 fix enb phy test by limiting the number of carriers to 5 4 years ago
Francisco d142d7b6a5 update test helpers for enb, so that the rrc tests pass 4 years ago
Francisco 60d5c6df7b implementation of memory pool with individual memory blocks per UE that get accessed via their rnti 4 years ago
Francisco eb9814837a fix gtpu test valgrind warning 4 years ago
Francisco 046633674a refactor - removal of stack-gtpu interface, and use of socket manager interface instead 4 years ago
Francisco c24e382c19 Refactor of socket manager class
- use of inheritance to simplify testing
- removal of global network manager
- pass of custon socket manager to s1ap and gtpu ctors
- overhauled the registration of socket fd,callback in socket manager
4 years ago
Francisco 4aac7ac238 use global rx multisocket handler, and remove stack-s1ap interface 4 years ago
Pedro Alvarez 8194b5ec73 Added check for consequetive KOs in MAC. Change set_activity_user to pass activity and max KOs to RRC and trigger RLF timeout. 4 years ago
Francisco b8f220258d s1ap - extend s1ap unit test to verify result of passing an invalid mme s1ap ue id 4 years ago
Francisco c3482b45e1 s1ap - handle erroneous enb/mme s1ap ue id in received s1ap messages from the MME 4 years ago
Francisco d4a223b5b1 s1ap unit test - add correct cause to erab modify response when erab-id is not recognized 4 years ago
Francisco a68c50a282 s1ap - extend s1ap unit test to setup a full ue connection and modify bearer 4 years ago
Francisco 90bba3b85e s1ap - set s1 handover cause as s1 intra system handover triggered 4 years ago
Francisco 5eccfad05b gtpu - added comments, updated expected construct, handled in rrc the case a gtpu teid fails to allocate 4 years ago
Francisco 82b34f3b3f gtpu refactor - fix gtpu logging formatting 4 years ago
Francisco 44440cf562 gtpu refactor - use of raii to automatic path switch and teid removal in forwarding. Clean up of gtpu_tunnel_manager methods. 4 years ago
Francisco bdc5094e17 gtpu - added unit test for gtpu_tunnel_manager class 4 years ago
Francisco 3cf5e85b20 create separate class to handle gtpu tunnel creation/deletion/search 4 years ago
Andre Puschmann 1a0891df51 all: check return value of make_byte_buffer() and handle them safely 4 years ago
Francisco b5692037a2 created macros for assertions and warnings. The assert macro prints the whole callstack on crash. The warning macro can just log a warning or call an assertion fail depending on the cmake flag STOP_ON_WARNING 4 years ago
Codebot 4523ee6087 rename srsLTE to srsRAN 4 years ago
Francisco 2054ad3f3c eliminate old BFS-based PDCCH allocator. Improvement the scheduler speed by ~2x 4 years ago
Francisco 6bec92fbc9 using new DFS-based PDCCH allocator as a default 4 years ago
Francisco 8347cabe4f implemented a DFS-based PDCCH allocator 4 years ago
Francisco 977c194cbc gtpu,bugfix - handle the case when gtpu fails to allocate buffer for end marker. Also, added a timer that when expired, it autoremoves the GTPU handover tunnel 4 years ago
Francisco d646111aa9 refactor sched dci unit test 4 years ago
Francisco d6bae76698 extend cch allocation unit tests to verify optimal cfi and DCI position selection for 6 PRBs 4 years ago
Francisco d5750f6fe6 refactor - update of clang-tidy project file. automatic clang-tidy refactors 4 years ago
Francisco 0d91802495 sched optimization - swap c-arrays for bounded_vector in sched_interface to reduce time performing bzero/memcpy in the scheduler 4 years ago
Francisco c0a90c5aa8 refactored sf result resetting to avoid realloc of memory 4 years ago
Francisco c3a4cb37f4 extension of sched benchmark test to allow different testing modes - test rates, benchmark, test different combinations of sched parameters 4 years ago
Francisco ac4d058fbf correct verification of sched rates in sched benchmark test 4 years ago
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