Commit Graph
6090 Commits
Author SHA1 Message Date
Cedric Roux cff9149920 fix issue 227 - UE IP settings disrupts realtime
see https://gitlab.eurecom.fr/oai/openairinterface5g/issues/227

When the UE connects to the eNodeB and receives its IP address from the
network, it calls system() to set it in the linux kernel world. This call
is not done in a realtime thread, but in the NAS, which uses its own thread,
independent of the realtime processing.

In some situations this totally disrupts realtime processing.

It is difficult to know precisely why that happens, but it seems that calling
fork(), as system() does, in a multi-threaded program is not a good idea. (So
say several people on the internet.) It is not clear why the softmodem is
impacted, but it seems that fork() is really what triggers the disruption.
Several tests lead to that conclusion.

To fix the problem, we create a child background process very early in main()
(before anything else basically). Then instead of calling system(), the main
process sends the string to the background process. The background process
gets the string, passes it to system() and reports the success/failure back
to the main process.

This solution involves a lot of system calls, but calling system() in the
first place is not cheap either. As long as no realtime thread uses this
mechanism, things should be fine. Time will tell.
2017-03-23 12:34:24 +01:00
Cedric Roux bd17343334 Merge branch 'develop_integration_w11' into 'develop'
Develop integration w11

Summary of changes:

- bug fixes
- RCC/RRU in automatic test setup
- more work on UE/MIMO
- LimeSDR support (5/10MHz)
- compilation under ubuntu 16.04, in particular kernel modules (nasmesh, ue_ip)

See merge request !148
2017-03-20 13:55:44 +01:00
Cedric Roux d0a51bec01 hotfix: put back "system" for UE to setup its IP settings
We'll need to to do it in a separate thread/process.
To be done. In the meantime, put it back. It impacts
oaisim.
2017-03-20 13:45:29 +01:00
Cedric Roux e2350103f4 hotfix: LLR was calling qam64_qam16_avx2 instead of qam64_qam64_avx2
Not sure of this one, to be checked by TCL.
2017-03-20 13:33:27 +01:00
Cedric Roux 1218cc8f65 bugfix: fix dump_dlsch2
the argument 'coded_bits_per_codeword' has to be an array in
case of several codewords.

The calling sites have been adapted.

Today, only the first index is used, so calling sites where
'coded_bits_per_codeword' is an integer pass the address
of it. It is expected that 'dump_dlsch2' will check in the
future that there is one or two codewords and only access
'coded_bits_per_codeword[1]' when it's sure there are
really two codewords.
2017-03-20 11:15:57 +01:00
Cedric Roux 7ffc20426b integration fix: let simulators compile again
- pucchsim
- prachsim
- pdcchsim
- pbchsim
- mbmssim

Mostly, add and initialize the variable 'cpuf'.
Also, pdcchsim was calling rx_pdcch with wrong
arguments.
2017-03-20 11:00:41 +01:00
Cedric Roux 5014b84c30 integration fix: let ulsim compile again + minor modification in dlsim_tm4 2017-03-20 10:43:50 +01:00
Cedric Roux f2e9e3f2dc integration fix: let dlsim compile again
Same as previous commit 41dda3d3de
but for dlsim.
2017-03-20 10:40:26 +01:00
Cedric Roux 41dda3d3de integration fix: let dlsim_tm4 compile again
The variables that were duplicated per processing thread
were adapted. 'cpuf' was defined and initialized.
2017-03-20 10:38:25 +01:00
Cedric Roux fd1e01579c bugfix: set cpuf in oaisim 2017-03-20 10:28:11 +01:00
gabrielC d86c5a9092 Merge branch 'UE_Remove_LOG' into develop_integration_w11 2017-03-20 09:20:20 +01:00
gabrielC 1e2f952a9c Remove to frequent log in 20 MHz 2017-03-20 09:18:02 +01:00
Cedric Roux 2011c7d689 Merge remote-tracking branch 'origin/ulsim-bugfix-w11' into develop_integration_w11 2017-03-18 00:10:50 +01:00
Cedric Roux 1c57eadd33 fix: remove useless test
One check introduced by previous commit was not necessary.
2017-03-18 00:09:48 +01:00
Cedric Roux 2a44ae639e Merge remote-tracking branch 'origin/rru-rrh-test-setup-w11' into develop_integration_w11 2017-03-17 19:39:50 +01:00
Cedric Roux 7847143610 Merge remote-tracking branch 'origin/bugfix-224-ue-tcrnti' into develop_integration_w11 2017-03-17 19:33:56 +01:00
Cedric Roux a19a27ff33 test setup v2: add RRU/RRC tests
- README.txt modified
- tests added in test_case_list.xml
  (only for test setup v2)
- python code modified
- configuration files added
2017-03-17 18:58:55 +01:00
Cedric Roux 19bd4d8cf7 test setup v2: simplify softmodem tests variable definition 2017-03-17 16:08:25 +01:00
fnabet 7f9b19cce8 UE Issue224 fix on TCRNTI 2017-03-17 10:52:59 +01:00
Florian Kaltenberger c13d5c21f3 added null pointer check for ulsim 2017-03-16 18:05:23 +01:00
Cedric Roux 639d2eefc6 Merge remote-tracking branch 'origin/phy-test-fix' into develop_integration_w11 2017-03-16 18:01:23 +01:00
Cedric Roux faa5e07af8 Merge remote-tracking branch 'origin/T-compilation-fix-w11' into develop_integration_w11 2017-03-16 18:00:46 +01:00
Cedric Roux b440abef33 Merge remote-tracking branch 'origin/ubuntu-16-compilation' into develop_integration_w11 2017-03-16 17:59:22 +01:00
Cedric Roux b2bda9498c Merge remote-tracking branch 'origin/calib-LimeSDR' into develop_integration_w11 2017-03-16 17:57:48 +01:00
Cedric Roux c6581031d5 various quick fixes 2017-03-16 17:37:05 +01:00
gabrielC 4ae599990a Merge branch 'UE_20MHz_and_Log_improvement' into develop_integration_w11 2017-03-16 17:08:42 +01:00
gabrielC d5a9334306 20MHz improvement for scope (still need to be fixed for 20MHz LLR) and Log 2017-03-16 17:06:34 +01:00
Cedric Roux 20b420bb84 fix compilation for ubuntu 16
This work was done by Laurent Thomas.
2017-03-16 14:44:38 +01:00
gabrielC 415201c3dc Merge remote-tracking branch 'origin/Correction_for_dlsch_channel_level_calculation' into develop_integration_w11 2017-03-16 11:47:25 +01:00
gabrielC 950c1c060e Correction of dlsch channel calculation 2017-03-16 11:45:07 +01:00
Cedric Roux fc6dec9edd fix dependancies in CMakeLists.txt for the T tracer
On some hosts, compilations with the T tracer was failing.

The error was:
  common/utils/T/T.h:15:19: fatal error: T_IDs.h: No such file or directory

The problem was that in CMakeLists.txt some targets depend on the
pre-generation of T_IDs.h but this dependancy relation was not set,
so those targets could be generated before the T (it was the case
with HASHTABLE).

This commit fixes that. Basically, we take all the targets found in
"add_executable" and "add_library" and make them depend on the
T if the T is enabled. Almost all existing targets were added,
even those that may not need it.

The problem of this approach is that someone adding a new target
using the T will not necessarily add a dependancy there.

Another solution would be to generate T_IDs.h at "cmake" stage,
not "make" stage and use an "if (NOT EXISTS T_IDs.h)" to generate
the file. We lose the dependancy relation though.

Things may be changed if maintenance cost is too high.
2017-03-16 11:22:05 +01:00
Cedric Roux f5aa0135b1 hotfix: fix buffer size for phy-test mode 20MHz
768*8 is too small, in 20MHz, the phy-test mode
(in default mode?) has a buffer of size 6378.

Let's set the buffer size to the input's one plus 4 bytes
(to accomodate for CRC, not sure about this).
2017-03-15 17:17:54 +01:00
Florian Kaltenberger b4f8219170 calibrations for 5/10/20 MHz LimeSDR 2017-03-15 16:04:42 +01:00
gabrielC 752b305270 Merge branch 'pdcch_dual_buffer' into develop_integration_w11 2017-03-14 15:44:13 +01:00
gabrielC 28a50c15e9 Remove some print and correct rnti for the pdcch_vars odd/even subframe 2017-03-14 15:35:21 +01:00
hbilel bd4898222f pdcch dual buffer 2017-03-13 15:50:10 +01:00
Cedric Roux bd3394f528 Merge branch 'develop_integration_w10' into 'develop'
Develop integration w10

Summary of changes:
- MIMO for UE
- TDD in test setup
- bug fixes

See merge request !133
2017-03-13 15:48:07 +01:00
Cedric Roux a500b2b293 integration fix: fix compilation of ulsim
We use the odd/even dlsch corresponding to the configured
subframe. It may not be the right thing to do.
2017-03-13 15:43:43 +01:00
hbilel cec9cb7662 fix compilation error for dlsim 2017-03-13 12:05:47 +01:00
hbilel b82b7781ee integration fix clear tx-buffer of ue in case of empty subframe
for all processing including oaisim
2017-03-13 10:14:26 +01:00
Cedric Roux a194009e00 integration fix: put dlsch_demod_shift into dlsch_demodulation 2017-03-13 10:06:26 +01:00
hbilel 947e50f33d integration fix optional compilation of avx2 2017-03-13 09:49:56 +01:00
Cedric Roux fe5fd2494c Merge remote-tracking branch 'origin/tdd_w10' into develop_integration_w10 2017-03-10 22:27:29 +01:00
Cedric Roux 8e8fec1e19 test setup v2: add TDD tests
New tests: 0186xx for TDD with the huawei 3276 dongle.
All necessary files to configure and use it have been added.
Existing code has been adapted for the TDD tests.
Only the test setup v2 has been adapted.
The file test_case_list.xml has been changed to add tests
0186xx, but only to work with test setup v2. It won't
work with test setup v1. To be completed if needed.

The tests are similar to FDD tests.
Throughputs for TDD have to be adjusted, the throughputs
of FDD are used for the moment.
2017-03-10 20:18:36 +01:00
Florian Kaltenberger a587e35a9d removal and renaming of LimeSDR configuration files 2017-03-10 15:37:26 +01:00
Florian Kaltenberger 340d05eebf Merge branch 'calib-LimeSDR' of https://gitlab.eurecom.fr/oai/openairinterface5g into calib-LimeSDR
Conflicts:
	targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp
2017-03-10 15:26:46 +01:00
Cedric Roux e6cd9873cd cleanup test setup README file 2017-03-10 12:19:29 +01:00
gabrielC 8e022654dc Merge remote-tracking branch 'origin/UE_20MHz_fix' into develop_integration_w10 2017-03-09 16:37:12 +01:00
gabrielC 4abc1d21e3 20 MHz UE fix 2017-03-09 16:33:07 +01:00
gabrielC 83b311beac Merge branch 'remove_printf' into develop_integration_w10 2017-03-09 10:23:11 +01:00