Commit Graph
7791 Commits
Author SHA1 Message Date
Cedric Roux a48c36582f bugfix: fix threading in the UE
Various problems were found with the basic simulator.

Variables used by various threads for synchronization need to
be initialized properly. That is before the various threads
start using them.

This goes for:
- UE->is_synchronized
- UE->proc.instance_cnt_synch
- UE->proc.instance_cnt_rxtx

The function "UE->rfdevice.trx_start_func" was called in
"UE_thread_synch" but should be called in "UE_thread" because
"UE_thread" is the one that calls "UE->rfdevice.trx_read_func"
and there is no guaranty that the call to "UE->rfdevice.trx_start_func"
is done before as it has to (it's in another thread).

And finally "pthread_cond_signal(&proc->cond_rxtx)" was called twice,
which may not be a problem but was certainly not intended. Plus
removing one call simplifies the code by removing some "if" logic,
which is a good thing per se.

This commit was not tested with a real UE and may thus introduce some
issues. Hopefully not!
2018-08-27 17:46:03 +02:00
Cedric Roux 164bbc65eb basic simulator: bugfix: do not put random data in DCI when not used
With 50 RBs and 100 RBs the UE crashes in the basic simulator
because of false detection of DCIs.

Putting nothing in the unused REs in the DCI instead of random
bits solves this issue and let the basic simulator run with 50 RBs
and 100 RBs.

Note that in the real UE the problem needs to be solved because
the channel may lead to false DCI detection and the consequent
crashes have to be solved. This commit sort of "hides" the issue
to have the basic simulator functional.

Note also that putting nothing in the unused REs in the DCI should
be the normal general case. But it has not been tested with anything
but the basic simulator so the previous code is left.
2018-08-27 17:44:01 +02:00
Cedric Roux 97ddf5ea28 basic simulator: bugfix: wait for synch ready at the right time
Before this commit we were checking for UE->is_synchronized == 0
then we were waiting for a potentially active synch routine to
finish and then we were starting the synch routine again but the
synch routine that was running may have set UE->is_synchronized
to 1. This was leading to various problems, most notably the following
message repeated over and over in the UE log and the UE unable to
connect properly:

    [RRC]  [UE 0] Frame 377: OUT OF SYNC FROM eNB 0 (T310 active 0 : T310 0, N310 345, N311 0)

So let's wait for a potentially active synch routine to finish
before anything else.
2018-08-27 17:32:00 +02:00
Cedric Roux 2276996f74 basic simulator: minor bugfix: clear memory before use 2018-08-27 17:28:50 +02:00
Rajeev Gangula 9f6d466fff Uncommemnt rrc_mac remove function. 2018-08-27 14:43:32 +02:00
Rajeev Gangula 0bd400d176 Merge branch 'develop' into cqiSchedule 2018-08-27 13:23:19 +02:00
Raymond Knopp 9399dd9735 try to merge with issue 341 to pass USRP/FDD test 2018-08-25 02:22:44 +02:00
frtabu 82c3f06da3 fix dlsim tests failures in CI ( log level improperly set due to log modifications) 2018-08-24 23:53:58 +02:00
frtabu 51c86dd49e fix noS1 build failure 2018-08-24 20:06:02 +02:00
frtabu 77f70e77ea MSC logging utility as a config option 2018-08-24 17:43:14 +02:00
frtabu 24f8fcf346 Use common log mechanism in layer 3, mapping specific macros to common ones and extending common log utilities to support specific layer3 requirements 2018-08-24 17:43:14 +02:00
frtabu 79588a494e LOG_F replaced by LOG_DUMPMSG. Add a generic function to dump a buffer or message. Go on with LOG_M implementation improvement. Remove redundant options to enable/disable logs. 2018-08-24 17:43:14 +02:00
Raphael Defosseux e469680d80 CI: fix in python
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2018-08-24 14:37:40 +02:00
WANG Tsu-Han b5435440cd bug fix for QPSK modulation with pilot 2018-08-24 12:14:51 +02:00
Raphael Defosseux 8b46aea34d CI: optimization on scripts
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2018-08-24 11:57:13 +02:00
WANG Tsu-Han f65c390226 warning removal 2018-08-23 18:34:50 +02:00
Konstantinos Alexandris 3b3b971807 minor fixes for x2 + modify conf files
The configuration file has now to contain ENB_IPV4_ADDRESS_FOR_X2C and
ENB_PORT_FOR_X2C in the NETWORK_INTERFACES section.

For example:

    NETWORK_INTERFACES :
    {
        ENB_INTERFACE_NAME_FOR_S1_MME            = "eth0";
        ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.111/24";
        ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
        ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.111/24";
        ENB_PORT_FOR_S1U                         = 2152; # Spec 2152

        ENB_IPV4_ADDRESS_FOR_X2C                 = "192.168.12.111/24";
        ENB_PORT_FOR_X2C                         = 36422; # Spec 36422
    };
2018-08-23 16:15:14 +02:00
laurent d5f28018ed fix 344 2018-08-23 13:06:17 +02:00
Raphael Defosseux d12a54a774 Removed unused variable
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2018-08-23 10:40:28 +02:00
Raphael Defosseux 0c83df3ff9 CI: added support for extra options to start eNB
added more statistics on iperf server report analysis

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2018-08-22 19:15:43 +02:00
Konstantinos Alexandris d3edb3a095 Merge remote-tracking branch 'origin/develop' into x2 2018-08-22 16:02:24 +02:00
WANG Tsu-Han 4bdf8e60fc Merge branch '341-modulation-bugfix' of https://gitlab.eurecom.fr/oai/openairinterface5g into 341-modulation-bugfix
Conflicts:
	openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
2018-08-22 15:58:17 +02:00
WANG Tsu-Han 30cc9c1c66 adding half fill mechanism into accelorated modulation 2018-08-22 15:36:43 +02:00
Konstantinos Alexandris 40942e34a0 Initial commit on X2AP (add target eNBs as input) 2018-08-22 15:32:22 +02:00
Raphael Defosseux 4bf6f26d49 CI: inverted last iperf UL @20MHz
fix main.py help message

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2018-08-22 10:19:14 +02:00
Florian Kaltenberger 7fed2bec9d disabling new modulation for 25PRB 2018-08-21 08:03:14 -07:00
WANG Tsu-Han f1e041ad98 bug fix for 25RBs with new modulation scheme and add config for 5 & 10 MHz with phy-test 2018-08-21 15:18:05 +02:00
Raphael Defosseux ee143ac044 CI: fixing and adding more testcases
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2018-08-21 15:04:40 +02:00
Rajeev Gangula 849be5f9f7 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop 2018-08-20 16:11:44 +02:00
Rajeev Gangula 86f4d8c18f Remiving CQI scheduling on special SFs. 2018-08-20 14:17:19 +02:00
Raphael Defosseux dc9c27a330 CI: improvements
-- no more -x option at compilation time
 -- iperf server report crash better handled
   -- python executor retrieve iperf server files in case of failure to analyze
   -- comparison w/ requested bandwidth

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2018-08-20 11:09:28 +02:00
Cedric Roux ade9a6dd76 Merge remote-tracking branch 'origin/develop_integration_2018_w33' into develop
Summary of changes:
- fix compilation on CentOS
- some work on the T tracer:
  - add a 'multi' tracer to connect several tracers at the same time
  - improve 'to_vcd' to be compatible with previous VCD traces
- preliminary work for X2 handover
- various bug fixes

A new version of asn1c is to be used with this commit.
Do:
  cd [top directory of repository]
  source oaienv
  cd cmake_targets
  ./build_oai -I
2018-08-17 17:18:04 +02:00
Cedric Roux 69338c694b bugfix: fix array index
As reported by Konstantinos Alexandris and Robert Schmidt.
2018-08-17 15:55:04 +02:00
Cedric Roux e74010220d bugfix: fix duplicated code
As reported by Robert Schmidt.
2018-08-17 15:45:38 +02:00
Cedric Roux dfee206027 Merge remote-tracking branch 'origin/fix_missing_s1ap_15.2.0_asn_module_and_update_asn1c_commit' into develop_integration_2018_w33 2018-08-17 15:38:55 +02:00
Cedric Roux 546cdded78 Merge remote-tracking branch 'origin/fix-missing-break' into develop_integration_2018_w33 2018-08-17 15:38:50 +02:00
Cedric Roux 640b4c1b7d Merge remote-tracking branch 'origin/x2' into develop_integration_2018_w33 2018-08-17 15:38:32 +02:00
Cedric Roux fa49a0dfb3 Merge remote-tracking branch 'origin/t_tracer_w32' into develop_integration_2018_w33 2018-08-17 15:38:24 +02:00
Cedric Roux 4963c31fc5 Merge remote-tracking branch 'origin/issue-centos-fixes' into develop_integration_2018_w33 2018-08-17 15:37:56 +02:00
Cedric Roux 88724afdf3 T: minor: don't clean tracers on 'make clean' 2018-08-17 15:36:45 +02:00
Cedric Roux 475d5eb827 T: bug fixes for the T cache
- 'busy' has to be handled in a more atomic fashion to avoid crazy
  runtime race conditions
- the basic simulator is too fast sometimes; rewrite the accesses to
  the T cache to avoid there again crazy behaviors

Hopefully that's better...
2018-08-17 12:25:13 +02:00
Cedric Roux d4a8b5f35e compilation warning "jobserver unavailable" removal
This commit removes the warning:
make[4]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.

Basically, inside a Makefile we should use $(MAKE) instead of make.
2018-08-17 12:25:13 +02:00
Cedric Roux 4054330191 minor: remove TABs 2018-08-17 12:24:39 +02:00
Cedric Roux 55ba99ac62 T: check consistency of T_messages.txt with VCD functions and variables traces
Since VCD has now to go through the T tracer, we enforce the consistency
of data found in common/utils/LOG/vcd_signal_dumper.[ch] with data
found in common/utils/T/T_messages.txt.

We might get completely rid of common/utils/LOG/vcd_signal_dumper.[ch] at some
point. For the moment, let's keep it.

This commit adds the program common/utils/T/check_vcd.c and necessary
modifications to enforce its use at compilation time.

If you modify common/utils/LOG/vcd_signal_dumper.[ch] but do not update
common/utils/T/T_messages.txt an error will pop up when you compile the
software. You have to keep both modules synchronized.
2018-08-17 12:24:39 +02:00
Eino Virtanen be0e409594 USRP addressess and clock sources can be configured in the configuration file with the RU section with comma separated IP addresses in 'sdr_addrs' and with strings "internal"/"external"/"gpsdo" in 'clock_src'.
TODO: Currently the driver picks the two first RX and TX channels when nb_tx and nb_rx are both set to 2. If a developers wants to force usage of two devices, 'set_rx_subdev_spec' and 'set_tx_subdev_spec' can be used to indicate to the driver so that antennas from separate devices will be used. To rephrase: until 4 antennas are supported by OAI, testing with two devices, so that antennas from both devices are used, requires manual configuration of which subdevices' antennas are used.

Conflicts:
	targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
2018-08-16 16:22:13 +02:00
Bi-Ruei, Chiu 6562577e96 Update asn1c commit with two new fixes 2018-08-16 16:36:41 +08:00
Bi-Ruei, Chiu 79827d6bac Add missing S1AP 15.2.0 ASN.1 S1AP-Containers module 2018-08-16 16:36:41 +08:00
Thomas Schlichter cd79a52c22 In phy_procedures_UE_RX() really only process the first 5 (not 6) OFDM symbols for S-subframes
This commit was developed at Fraunhofer IIS (https://www.iis.fraunhofer.de).
2018-08-14 17:09:08 +02:00
Thomas Schlichter 781fb9b9ca Reduce network latency by using netif_rx_ni() instead of netif_rx() in non-interrupt context
This commit was developed at Fraunhofer IIS (https://www.iis.fraunhofer.de).
2018-08-14 17:09:08 +02:00
Thomas Schlichter 93f494f106 Fix channel impulse response peak detection when adjusting the timing sync
This commit was developed at Fraunhofer IIS (https://www.iis.fraunhofer.de).
2018-08-14 17:09:08 +02:00