Commit Graph
888 Commits
Author SHA1 Message Date
Cedric Roux 6cb04bb43a basic simulator: initial release
This commit introduces a 'basic simulator'.

This basic simulator is made of:
- the standard eNB code using a special driver that mimics the USRP driver
- the standard UE code using a special driver that mimics the USRP driver
- no channel simulation
- some special code to deal with faster-than-realtime behaviour of this
  basic simulator

It connects one UE to one eNB. It requires an EPC, populated with the
correct configuration for the UE.

This is the initial release and may contain bugs (most probably race
conditions due to the faster-than-realtime behaviour).

To use it, see the documentation at:
    targets/ARCH/tcp_bridge/README.tcp_bridge_oai.

It has been tested with 25, 50 and 100 RBs, FDD mode.
(No check at all has been done to know if it could work in TDD mode.)
2018-05-02 11:27:41 +02:00
Cedric Roux 79eb6eb4d2 integration fix: fix UE softmodem compilation 2018-04-16 11:23:05 +02:00
Cedric Roux e29d500db6 integration fix: various fixes
- fix compilation of dlsim/ulsim/oaisim by defining some needed
  global variables
- fix compilation of oaisim: compile coding and params_libconfig
- fix running of if4p5 with low CPU count (oaisim was not working
  on the machine 'haswell' because of this)
2018-04-11 17:15:14 +02:00
Cedric Roux 1f446432f6 Merge remote-tracking branch 'origin/develop-simL1-fixes' into develop_integration_2018_w15 2018-04-11 15:15:54 +02:00
WANG Tsu-Han 68fdd19cb7 fixs for 5-7 core 2018-04-11 15:09:07 +02:00
WANG Tsu-Han 658aa00119 bug fix for threading with under 8core 2018-04-10 16:52:05 +02:00
Raymond Knopp be816fab6f Merge branch 'develop' into RU-RAU-split-parallel-EMUFH-phy-test-merge 2018-04-06 15:12:46 +02:00
Raymond Knopp 0f5470b913 removal of logging in UE 2018-04-05 11:11:58 -07:00
Raymond Knopp 9fa001c3c5 prevent UL_indication from overlapping with tx process which cause the drop 2018-04-05 16:33:08 +02:00
Cedric Roux 3288a6bbe4 Merge remote-tracking branch 'origin/bugfixes-2018-w12' into develop_integration_2018_w12 2018-03-23 10:47:43 +01:00
Cedric Roux 16cb7eba64 remove start_background_system from eNB softmodem
This is only needed by the UE code, to setup IP settings.
The eNB does not need this. (To be reverted if this is
wrong.)
2018-03-23 10:44:13 +01:00
Raymond Knopp 846268fdd3 bug fix for qpsk modulation 2018-03-20 18:02:52 +01:00
Robert Schmidt 318e4a345e free configmodule memory when shutting down
It is possible to restart the lte-softmodem via the FlexRAN controller. For
this to work, the end_configmodule() method needs to be called when shutting
the lte-softmodem down so that the configuration can be read again during a
restart.
2018-03-20 14:41:58 +01:00
Wang Tsu-Han 71a98a977e bug fix for killing thread 2018-03-16 18:18:55 +01:00
Raymond Knopp 8d90eda600 bug fix after merge 2018-03-14 16:21:51 +01:00
Raymond Knopp b2cc1252c6 Merge remote-tracking branch 'origin/develop' into RU-RAU-split-parallel-EMUFH-phy-test-merge
Conflicts:
	cmake_targets/build_oai
	common/utils/itti/intertask_interface.c
	openair1/PHY/INIT/lte_init.c
	openair1/PHY/LTE_TRANSPORT/dci.c
	openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
	openair1/PHY/defs.h
	openair1/SCHED/phy_procedures_lte_eNb.c
	openair2/ENB_APP/enb_paramdef.h
	openair2/LAYER2/MAC/defs.h
	openair2/LAYER2/MAC/eNB_scheduler.c
	targets/ARCH/COMMON/common_lib.c
	targets/COMMON/create_tasks.c
	targets/RT/USER/lte-enb.c
	targets/RT/USER/lte-ru.c
	targets/RT/USER/lte-softmodem.h
2018-03-12 12:10:48 +01:00
Cedric Roux 00f234029a Merge remote-tracking branch 'origin/bugfixes-2018-w10' into develop_integration_2018_w10 2018-03-09 14:58:37 +01:00
oai da50d68b06 more NB-IoT integration 2018-03-08 17:35:35 +01:00
oai b04f3b54a4 introduce distinct executables for ue and eNodeB (lte-uesoftmodem, lte-softmodem) 2018-03-08 17:29:34 +01:00
oai 45302792ee config module fix and extensions for Nb-IoT, shared lib loader and telnet server implementation 2018-03-08 17:24:23 +01:00
Cedric Roux 963805820c add a stop_rf function in the RU
When the program exits it has to stop the streaming of the USRP.
The function exit_fun is supposed to do that. When quitting with
control+c (very common case) this function is not called. The
code is very unclear there, so let's add a stop_rf in the RU,
as there is already a start_rf.

If we don't call trx_end_func, then at the next run the USRP
device may be in an unstable state and behave improperly.

If the program crashes then the USRP device may be in an
unstable state. The only solution to this problem is to reset
the USRP device.

Maybe there is a way to clean the state of the device when we
open it, before we start using it. Sort of a cleanup before
use. That could be a better solution to "bad state after program
crash".

What has been tested:
- monolithic eNB only
2018-03-08 10:29:28 +01:00
Cedric Roux 5a61f9944c cleanup - remove unnecessary calls to get_cpu_freq_GHz
The one in lte-enb.c disrupts the realtime. Using a B200mini with
20MHz bandwidth leads to the UE unable to connect for it seesms like
the UL and DL are not properly time synched because of this sleep
of one second that happens after the USRP streaming has started.
We see some random access attempts but the decoded preamble is
wrong.

This may be dependant on the setup. I had sporadic errors with
a B210, where sometimes the UE could connect and sometimes not.
2018-03-08 10:11:09 +01:00
Wang Tsu-Han 822416e9e2 fep initialization for less core 2018-03-06 15:41:05 +01:00
Wang Tsu-Han ac95f89aa5 fixes for fewer core 2018-03-05 11:43:14 +01:00
Wang Tsu-Han 23f5628735 changing into double sided signal for pipeline 2018-03-05 11:20:51 +01:00
Wang Tsu-Han 4b39203763 adding te/td distructure 2018-02-23 16:59:57 +01:00
Wang Tsu-Han cb4dc53042 adding wait stage for every wakeup 2018-02-22 15:59:23 +01:00
Cedric Roux 365ca71a4a remove compilation warnings 2018-02-22 15:03:45 +01:00
Wang Tsu-Han 56a32a22d4 changing emulate-rf into an executional option instead of compiler option 2018-02-21 18:13:34 +01:00
Wang Tsu-Han 869b9a5c6f fix for phy-test UL and adding wakeup_txfh 2018-02-20 15:05:00 +01:00
Wang Tsu-Han bf601fce71 adding phy-test for UL 2018-02-16 19:15:40 +01:00
Cedric Roux 8cab562b9f Merge remote-tracking branch 'origin/feature-merge-merge-f68' into develop_integration_2018_w07 2018-02-15 09:58:26 +01:00
Emad 1056604b25 I tried to change rx and tx attenuation by the config file, but they are not changed. The bug is because att_rx and att_tx do not put in RC.rru when local_rf is "yes" in config file. We need to put att_rx and att_rx for both local_rf = "yes" and "no". Also RF config which send to RF device must be fill by this parameters. 2018-02-12 15:12:22 +01:00
Robert Schmidt adec4e39df remove all conditional FlexRAN-related compilation directives 2018-02-12 14:38:44 +01:00
Robert Schmidt e8e58e2594 Merge branch 'develop' into feature-merge-merge-f68 2018-02-09 17:10:41 +01:00
Robert Schmidt d746ff6127 update comments in restart_L1L2() 2018-02-09 16:29:59 +01:00
Robert Schmidt 1eabadb137 remove unnecessary code from lte-enb.c 2018-02-09 15:47:59 +01:00
Robert Schmidt 6cff88b9c8 free memory on teardown after all RU/eNB threads have been released 2018-02-09 10:56:14 +01:00
Robert Schmidt c8ae5b7c09 decrease warning 2018-02-08 18:55:23 +01:00
Robert Schmidt a21bc513bb Merge branch 'develop' into feature-merge-f68 2018-02-08 18:05:28 +01:00
Cedric Roux a21c0b809f bugfix: fix RRC Release 10 compilation
The following compilation did not work anymore:

    ./build_oai --eNB -w USRP -r Rel10 -c

(Rel8 still does not work.)
2018-02-05 17:21:40 +01:00
Eurecom 863c469d35 bug fix for adjustable thread structure 2018-01-31 17:53:54 +01:00
Robert Schmidt d092231181 free memory when stopping/restarting lte-softmodem
- add function free_td() -> complements init_td() [seems to not be used, added
  for completeness]
- add function free_td8() -> undoes init_td8() [free memory of 8-bit LLR Turbo
  decoder]
- add function free_td16() -> undoes init_td16() [free memory of 16-bit LLR
  Turbo decoder]
- change function free_tdavx216() -> undoes init_tdavx216() [free memory of
  16-bit LLR Turbo decoder, AVX2 version]
- add free_lte_top() -> frees memory allocated by init_lte_top()
- change free_ul_ref_sigs() to set freed pointers to NULL
- add method free_transport() -> frees memory of ULSCH/DLSCH transport channels
- use the above functions when stopping/restarting the lte-softmodem
2018-01-31 16:49:24 +01:00
Robert Schmidt 4f1c51f38c add phy_free_RU() and phy_free_lte_eNB()
this methods free the memory that is allocated by the functions
phy_init_RU() and phy_init_lte_eNB()
2018-01-31 16:49:24 +01:00
Robert Schmidt 3f043c7d73 FlexRAN: implement possibilty to await a configuration
Through configuration, the lte-softmodem can be halted to await a
reconfiguration from the lte-softmodem. A mutex and condition variable are used
to implement this.

Furthermore, the dependance of lte-softmodem.c on FlexRAN has been reduced to
one include and the flexran_agent_start() call.
2018-01-31 16:49:24 +01:00
Robert Schmidt 811ada2429 soft-restart (i.e. only layers PHY-RRC) the lte-softmodem 2018-01-31 16:49:24 +01:00
Robert Schmidt 8e9d9807ae lte-ru.c: fct for interface -dependant config, export more functions
- add set_function_spec_param() which configures RU_t instance depending on its
  function(al split)
- export more functions like kill_RU_proc() so that they can be reused by
  restart functionality
2018-01-31 16:49:24 +01:00
Robert Schmidt a91a35877d join all RU threads 2018-01-31 16:49:24 +01:00
Robert Schmidt 9333c16ecb bugfixes: correctly initialize mutexes, conds of RU_proc_t, unlock RU.mutex after using 2018-01-31 16:49:24 +01:00
Robert Schmidt 6a6729bdac fix various compilaton errors due to merge 2018-01-31 16:48:29 +01:00