Commit Graph

4528 Commits

Author SHA1 Message Date
Francisco Paisana 7e62d6d1f9 added parser for rrc_cnfg section of rr.conf file, and dummy rrc_mobility class 2019-10-29 15:27:09 +00:00
Andre Puschmann 2ec62f7fa9 fixing weird gcc9 bug with strncpy
see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88780 for details
2019-10-29 14:06:46 +01:00
Andre Puschmann 1d6f72b478 soapy: fixing various soapy bugs detected with asan
- use nof_rx_channels to set rx pointers
- use returned value to set bw
- fix heap use after free
2019-10-28 17:38:34 +01:00
Aleksander Morgado ba5f6e9ce4 build: fix ADD_CXX_COMPILER_FLAG_IF_AVAILABLE usages
This patch solves two different issues at the same time when building
with gcc/g++ 9.2.0:

 1) The -fvisibility=hidden support check was done using the C++
 compiler only (with check_cxx_compiler_flag), inside the block
 corresponding to the C compiler being GNU/clang, and the result of
 the check was applied to both C++ (CXX_FLAGS) and C (C_FLAGS) flags.
 Instead of this, there should be separate checks for the C and C++
 compilers, each of them modifying a single set of <LANG>_FLAGS.

 2) -Wincompatible-pointer-types support check was done using the C++
 compiler only, and the result of the check was applied to both C++
 (CXX_FLAGS) and C (C_FLAGS) flags. But, this warning is not
 applicable to C++ and actually breaks compilation when using g++ 9.2:
    [  0%] Building CXX object lib/src/asn1/CMakeFiles/rrc_asn1.dir/rrc_asn1.cc.o
    cc1plus: error: ‘-Werror=’ argument ‘-Werror=incompatible-pointer-types’ is not valid for C++ [-Werror]
 Instead of this, there should be a check for this warning only using
 the C compiler, and therefore only modifying the C flags (C_FLAGS).

This patch splits the macro into one specific for C++ (which modifies
CXX_FLAGS) and one specific for C (which modifies C_FLAGS). And so,
the macro call to check for `-Werror=incompatible-pointer-types' is
made C-only, and the one for `-fvisibility=hidden` is done for both C
and C++ targets (each on the correct GNU/clang compiler block).

Due to how the tests are done in cmake, the '-fvisibility=hidden'
check wasn't even succeding before, so the compiler option wasn't
being effectively used. The cmake flags.make file contents throughout
the project are updated as follows now:

Before this change, we had:
   C_FLAGS   = -Werror=incompatible-pointer-types ...
   CXX_FLAGS = -Werror=incompatible-pointer-types ...

And after this change, we have:
   C_FLAGS   = -Werror=incompatible-pointer-types -fvisibility=hidden ...
   CXX_FLAGS = -fvisibility=hidden ...
2019-10-25 12:40:36 +02:00
Andre Puschmann d25a734200 fix uninit value in NAS and move emm_info on stack 2019-10-25 10:32:35 +02:00
Francisco Paisana b0d2584795
Merge pull request #735 from softwareradiosystems/pr_sched_changes
Scheduler changes
2019-10-23 20:40:38 +01:00
Francisco Paisana 1c375d99e0
Merge pull request #662 from softwareradiosystems/pr_new_timer
new timer class
2019-10-23 20:40:01 +01:00
Francisco Paisana 8440126d35 removal of srslte::timers class 2019-10-23 19:33:25 +01:00
Francisco Paisana 9ae5563331 fixed timer issue with setting the duration. Setting the duration cannot reset the on-going timer run 2019-10-23 19:33:25 +01:00
Francisco Paisana ecba994712 fixed bad initialization of t311 2019-10-23 19:33:25 +01:00
Francisco Paisana d2c56caf7e applied new timer class to the whole code base 2019-10-23 19:33:25 +01:00
Francisco Paisana 5953d5ef96 fixed some potential bug related to timer getting stopped, but signaling that it expired 2019-10-23 19:25:48 +01:00
Francisco Paisana 551192705e allow for pre-reservation of timers vector and priority queue 2019-10-23 19:25:48 +01:00
Francisco Paisana 50a1c9d557 addressed potential overflow, and extended timer test to check if ordering is working correctly 2019-10-23 19:25:48 +01:00
Francisco Paisana 349646a9da created a new class for timers. It uses a priority queue to avoid incrementing all timers every tti (step_all() went from O(N) to O(1)), and that is not bounded in number of timers. Not being bounded will be useful for layers that require one or more timers per UE 2019-10-23 19:25:48 +01:00
Francisco Paisana 6aec98e140 cleanup of some type names, and other minor changes 2019-10-23 18:47:37 +01:00
Francisco Paisana c19e0d9423 moved the RAR/Msg3 scheduling to a separate class 2019-10-23 18:46:26 +01:00
Francisco Paisana 388776d1fa provided a general way to access ue_db from the scheduler - part2 2019-10-23 18:07:42 +01:00
Francisco Paisana e0b8be61e5 provided a general way to access ue_db from the scheduler 2019-10-23 18:07:42 +01:00
Francisco Paisana d79e49ed4c moved the BC scheduling to a separate class/file 2019-10-23 18:06:32 +01:00
Francisco Paisana 837c16557f started to implement separate SIB scheduler, and its tests. This is particualrly important for CA 2019-10-23 17:48:47 +01:00
Francisco Paisana 84ac16826f modernized the scheduler code, and removed some clang-tidy warnings 2019-10-23 17:48:47 +01:00
Francisco Paisana ad0b3ce6e2 modernize the random sched test 2019-10-23 17:39:45 +01:00
Francisco Paisana 15bde8660a getting a future of an already finished proc is dangerous 2019-10-23 18:19:25 +02:00
Francisco Paisana 248583ecdf added extra logging and removed uneeded member from proc_t 2019-10-23 18:19:25 +02:00
Francisco Paisana b254bdbb93 typedefed the proc_result_t<void> to become proc_state_t 2019-10-23 18:19:25 +02:00
Francisco Paisana f2d88e5a5b simplified NAS rrc connection request procedure
move non-type-specific methods of proc_t to its base class.
procedure state machine was simplified via a future-type. Now procedures dont get stuck until the user reads the procedure outcome.
made the NAS procedures more event trigger/reaction-based.
2019-10-23 18:19:25 +02:00
Francisco Paisana 8864787f59 added the continuation functionality to procedures via the "then()" method. 2019-10-23 18:19:25 +02:00
Francisco Paisana c1be118d1d new wrapper-based design for stack procedures. Removes extra base class, gets rid of spurious copies/moves during the pop(), and allows the use of a non-default ctor() 2019-10-23 18:19:25 +02:00
Ismael Gomez 3828e03f33
Refactor in eNodeB, add channel emulator and fixes in OFDM
* Added channel emulator to srsENB. Added support for fixed delay

* Bug in OFDM when using nonguru mode

* A few changes and refactor in eNodeB
2019-10-23 11:09:39 -05:00
Francisco Paisana 8980810061 added some util print functions and fixed the issue with sync::cell_select when the last cell search was not successful 2019-10-23 17:32:32 +02:00
Xavier Arteaga 73517f981e Minor fixes 2019-10-21 16:17:37 +02:00
Xavier Arteaga 423475173d Refactored magnitude and argument extraction from sf_worker 2019-10-21 16:17:37 +02:00
Xavier Arteaga f9a795e985 SRSENB: cleanup and mutex rearange 2019-10-21 16:17:37 +02:00
Xavier Arteaga 8e92baf401 SRSENB: quitsafter entering 'q\n' 2019-10-21 16:17:37 +02:00
Xavier Arteaga 10480f62b3 SRSENB: Split sf_worker and cc_worker 2019-10-21 16:17:37 +02:00
Andre Puschmann 44dcfbe5c2 use info_long to print full message rxed on SYS interface 2019-10-18 16:38:55 +02:00
Andre Puschmann 82e3fd1052 fix uninitialized vars in RRC 2019-10-18 16:38:55 +02:00
Andre Puschmann d5835fc8a0 add info_long() method to log filter 2019-10-18 16:38:55 +02:00
Andre Puschmann 755a0599c4 rework cell list and SIB handling in SS 2019-10-18 16:38:55 +02:00
Andre Puschmann 891a66a2e5 make the establishment cause a paramter when sending a connection request
needed to signal a mo_sig establishment cause after a RLF
2019-10-18 16:38:55 +02:00
Andre Puschmann c24b25f42e after RLF store PCI of current serving cell
the PCI is needed for the reestablishment request in case
the new serving cell has changed
2019-10-18 16:38:55 +02:00
Andre Puschmann c1da02cd07 after initiating reestablishment, we need to perform cell reselection immediatly
before cell reselection was postponed to the next TTI but this is not possible in
the case where the serving cell changes.

if the "old" serving cell is no longer suitable, we would directly go to RRC IDLE below.
Therefore we need to select the new serving cell before sending the reestablishment
request.

this is tested in TC_8_5_1_1
2019-10-18 16:38:55 +02:00
Pedro Alvarez 48f9df8615 Applied clang-format to all of the srsepc folder. 2019-10-18 15:40:40 +02:00
Pedro Alvarez b157b648ae Changed clang-format to set AllowAllParametersOfDeclarationOnNextLine to false. 2019-10-18 15:40:40 +02:00
Xavier Arteaga 4227da9bd0 Fixed DCI Format1B length 2019-10-18 13:02:10 +02:00
Andre Puschmann b631106612 always print RF errors to stdout 2019-10-18 13:00:30 +02:00
Andre Puschmann 1a68fbc460 fix wrong setting for RF log level 2019-10-18 13:00:30 +02:00
Francisco Paisana e94755c471 revert nas_test fix 2019-10-18 12:36:17 +02:00
Francisco Paisana 9bcb268421 added for-range loop and bool decay checks to clang-tidy. Applied some of the recommendations of clang-tidy to nas.cc 2019-10-18 12:36:17 +02:00