Commit Graph
100 Commits
Author SHA1 Message Date
Cedric Roux 824f62d8bf basic simulator: support TDD mode
For whatever reason we need N_TA_offset to be 0 for the basic simulator
to function properly.

This is more a hack than a proper solution. More analysis is needed
to understand what happens and what should be really done.
2018-09-14 15:01:55 +02:00
Cedric Roux ab7515e280 basic simulator: handle discontinuities in output
In TDD mode the eNB does not output data all the time,
only in downlink and special subframes.

The basic simulator needs a continuous stream of samples.

So let's fill the blank with silence.
2018-09-14 14:58:15 +02:00
Cedric Roux 957bd56798 hotfix: let compilation work
When compiling in debug mode, the 'inline' semantics of C99 led to the errors:

/roux/w25/openairinterface5g/common/utils/LOG/log.c:479: undefined reference to `log_header'
libUTIL.a(log.c.o): In function `log_dump':
/roux/w25/openairinterface5g/common/utils/LOG/log.c:502: undefined reference to `log_header'
collect2: error: ld returned 1 exit status

Let's use static instead of inline.
2018-09-11 14:24:16 +02:00
Cedric Roux a0f75c0b81 Merge remote-tracking branch 'origin/develop_integration_2018_w36' into develop
Summary of changes:
- work on flexran
- work on X2
- new implementation of ITTI
- code cleanup
- bug fixes
2018-09-11 10:04:15 +02:00
Cedric Roux 00e21e74a6 integration fix: better error reporting in case of X2 failure
If the IP address for X2AP is not good, the error message reported
was very unclear. Attempt to make it better.
2018-09-10 16:32:20 +02:00
Cedric Roux 833016123a hotfix: revert commits that break the basic simulator
This commit manually reverts the commits:
- 97c69dc4a4
- 3278aa494d

The basic simulator was not functional anymore because
the UE did not send RRCConnectionSetupComplete due to
some problem in the PDCP layer, most probably.
2018-09-10 16:22:03 +02:00
Cedric Roux 82ab88f546 integration fix: add missing break
This break was there and went away, for whatever reason...
2018-09-07 17:24:37 +02:00
Cedric Roux c1d96a49ca Merge remote-tracking branch 'origin/nasmesh_new_kernel' into develop_integration_2018_w36 2018-09-07 17:01:28 +02:00
Cedric Roux 73da898f9b integration fix: fix bad merge conflict resolution + fix compilation error 2018-09-07 16:57:55 +02:00
Cedric Roux afb2fd4012 Merge remote-tracking branch 'origin/x2' into develop_integration_2018_w36 2018-09-07 16:15:13 +02:00
Cedric Roux 62a1a3dad4 Merge remote-tracking branch 'origin/347-remove-assertion-ue-dci-handling' into develop_integration_2018_w36 2018-09-07 16:15:03 +02:00
Cedric Roux 2cb87ddd02 Merge remote-tracking branch 'origin/feature-slice+restart-w35' into develop_integration_2018_w36
Conflicts:
	openair2/ENB_APP/flexran_agent_common_internal.c
	openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
2018-09-07 16:13:40 +02:00
Cedric Roux 2c9be8c102 Merge remote-tracking branch 'origin/fix-nfapi-in-scheduler' into develop_integration_2018_w36 2018-09-07 16:08:09 +02:00
Cedric Roux 026b9f6ab0 Merge remote-tracking branch 'origin/fix-libconfig' into develop_integration_2018_w36 2018-09-07 16:07:49 +02:00
Cedric Roux b0eff6c0a6 Merge remote-tracking branch 'origin/scheduler-small-fix' into develop_integration_2018_w36 2018-09-07 16:07:23 +02:00
Cedric Roux 4afc053606 Merge remote-tracking branch 'origin/dft-size-fixes' into develop_integration_2018_w36 2018-09-07 16:07:08 +02:00
Cedric Roux 5e9a85b1ad Merge remote-tracking branch 'origin/fix-unwanted-comment-end' into develop_integration_2018_w36 2018-09-07 16:06:49 +02:00
Cedric Roux cbdc8f662a Merge remote-tracking branch 'origin/issue343_dlcqi_retransmission' into develop_integration_2018_w36 2018-09-07 16:04:05 +02:00
Cedric Roux 20797a52f8 Merge remote-tracking branch 'origin/generate_sss_tables' into develop_integration_2018_w36
Conflicts:
	openair1/PHY/INIT/init_top.c
2018-09-07 16:01:58 +02:00
Cedric Roux 9051a0ec45 Merge branch 'recode_itti_from_scratch' into develop_integration_2018_w36
Note: we don't include the last commit from origin/recode_itti_from_scratch
because it is just astyle formatting. As of today we don't enforce
astyle and including this work would lead to future merge conflicts.
A proper process to enforce astyle has to be put in place. In the
meantime, no astyle allowed in commits if the changes are too big
and not relevant to work done.
2018-09-07 15:57:13 +02:00
Cedric Roux 8b4d303375 Merge remote-tracking branch 'origin/generate_75KHz_tables' into develop 2018-09-07 15:53:26 +02:00
Cedric Roux 8534982afe bugfix: check that we are manipulating the structure for the correct RNTI
The bug popped up when one UE was doing TCP UL iperf and a second UE
attempted to connect. A crash of the eNB happened because we changed
the wrong NFAPI structure in a TTI where both UEs are scheduled.

Something like that.
2018-09-06 16:42:10 +02:00
Cedric Roux 487a599b7b bugfix: fix memory error
Using valgrind revealed that those two arrays
were too small. Let's use 512 bytes, which should
be enough for every practical cases.
2018-09-04 16:18:46 +02:00
Cedric Roux c83fc1b544 bugfix: fix compilation problem
This includes damages check_vcd.c in the T tracer
(in develop branch).
2018-09-04 15:18:59 +02:00
Cedric Roux 95b7966894 bugfix: fix crash when UE disconnects
Using the basic simulator and valgrind, it was found that
the lack of initialization of those two pointers leads to
some very nasty behavior of some other parts of the system.
2018-09-04 15:16:34 +02:00
Cedric Roux 6270d94f91 bugfix: use correct comparison
The comparison in AssertFatal was not correct,
taking the opposite meaning to the one expected.
2018-09-04 12:43:29 +02:00
Cedric Roux 5131449160 bugfix: add handling of DFT 768 everywhere it's needed
In the eNB it's not really used for the moment because there
is a limitation to uplink scheduling. In
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c we have:

            while (((rb_table[rb_table_index] > (N_RB_UL - 1 - first_rb[CC_id]))
                    || (rb_table[rb_table_index] > 45))

That limits uplink scheduling to at most 44 RBs. The 768 case is for
64 RBs.
2018-09-04 12:36:42 +02:00
Cedric Roux 23e5ca206e fix for CI 2018-09-03 11:09:56 +02:00
Cedric Roux d67d8617e7 integration fix: fix compilation error 2018-08-31 18:11:45 +02:00
Cedric Roux 23ca4cfbbe Merge remote-tracking branch 'origin/T-fixes-w35' into develop_integration_2018_w35 2018-08-31 15:13:03 +02:00
Cedric Roux 4c069754d3 Merge remote-tracking branch 'origin/basic-simulator-fixes' into develop_integration_2018_w35 2018-08-31 14:49:50 +02:00
Cedric Roux c22180ff31 Merge remote-tracking branch 'origin/issue326_LOGreview' into develop_integration_2018_w35
Conflicts:
	cmake_targets/CMakeLists.txt
	openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
	openair1/SCHED_UE/phy_procedures_lte_ue.c
	openair2/LAYER2/MAC/eNB_scheduler_phytest.c
2018-08-31 12:55:28 +02:00
Cedric Roux 7654f8a208 Merge remote-tracking branch 'origin/issue_344_segv_trace_wireshark' into develop_integration_2018_w35 2018-08-31 12:43:33 +02:00
Cedric Roux 3f08e4503b Merge remote-tracking branch 'origin/x2' into develop_integration_2018_w35 2018-08-31 12:29:15 +02:00
Cedric Roux d52de8e482 Merge remote-tracking branch 'origin/341-modulation-bugfix' into develop_integration_2018_w35 2018-08-31 12:12:53 +02:00
Cedric Roux 536b4a88b1 Merge remote-tracking branch 'origin/cqiSchedule' into develop_integration_2018_w35 2018-08-31 12:04:28 +02:00
Cedric Roux 99535adacc integration: remove compilation warning 2018-08-31 12:02:04 +02:00
Cedric Roux 4aec4a23a8 Merge remote-tracking branch 'origin/multi-sdr-ip-conf' into develop_integration_2018_w35 2018-08-31 11:50:19 +02:00
Cedric Roux 27322602e9 Merge remote-tracking branch 'origin/336-fhg-embms-changes' into develop_integration_2018_w35 2018-08-31 11:42:26 +02:00
Cedric Roux b8093f509e T tracer: fix problem with some displays
This commit attempts to fix the error:
    no good visual found
2018-08-30 14:25:20 +02:00
Cedric Roux 31e472d235 T tracer: fix traces for TDD 2018-08-30 14:23:52 +02:00
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
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
Cedric Roux 53bb1fb091 minor bugfix
Compilation of UE softmodem failed.
2018-08-14 15:54:34 +02:00
Cedric Roux 072bb9044f T: improve error reporting
Use "error:" as prefix to error messages in genids.c
to help looking for errors in case of failure of
the build.
2018-08-13 11:29:07 +02:00
Cedric Roux f18a438c2c T: simplify
Don't use shm anymore. Use mmap directly.
2018-08-13 11:28:56 +02:00
Cedric Roux 781133b772 T: bugfix in multi
Check result of send_is_on and close connection to tracee on error.
2018-08-09 10:18:38 +02:00
Cedric Roux 5b17b036ba T: improve to_vcd tracer
Make it compatible with 'template' gtwave files as found in openair's
repository.

The type VCD_NAME was added to the VCD IDs in T_messages.txt.
The database processing code was adapted to use it.
The tracer to_vcd was adapted to use it and render the produced vcd
output compatible with the 'template' gtkwave files.

When running to_vcd, do not forget to pass -vcd to use this feature.
2018-08-08 15:42:02 +02:00
Cedric Roux fdd4366daf T: add a 'multi' tracer
This tracer allows the connection of several tracers to one tracee.

To use the multi tracer:
- run the tracee as usual, eg. ./lte-softmodem -O xxxx.conf --T_stdout 0
- run the multi tracer: ./multi -d ../T_messages.txt
- connect other tracers to the multi tracer:
   - ./enb -d ../T_messages.txt -p 2022
   - ./textlog -d ../T_messages.txt -p 2022
   - etc.

By default the multi tracer connects to the tracee to the port 2021,
as for any other tracer.

Then it accepts connections from other tracers on the port 2022.

This can be changed with parameters on the command line.

The tracee and the other tracers can be stopped/started at any time.
2018-08-08 15:41:39 +02:00
Cedric Roux eb3b87d956 T: bugfix and cleanup
- bug fixed in ue and enb tracer: the socket needs to be closed
  in case of restart
- cleanup: fix spacing in T_messages.txt
2018-08-08 11:58:26 +02:00
Cedric Roux e04b8241dc Merge remote-tracking branch 'origin/develop_integration_2018_w31' into develop
Summary of changes:
- bug fixes in various places
2018-08-07 11:28:26 +02:00
Cedric Roux 1cbd60e9c8 remove warning 2018-08-07 10:35:14 +02:00
Cedric Roux 43ffecb1a1 remove warnings 2018-08-07 09:53:57 +02:00
Cedric Roux 9126c88294 HACK: let the basic simulator work again
A better solution has to be found.
2018-08-06 16:57:15 +02:00
Cedric Roux 19a01f6cb0 minor: bug fix in T tracer 'to_vcd' 2018-08-06 12:26:35 +02:00
Cedric Roux 1752c92980 T: update 'to_vcd' tracer to trace all VCD variables and functions
Pass the command line arguemnt -vcd to trace all VCD variables
and functions.
2018-08-06 11:27:02 +02:00
Cedric Roux 07d1610602 quick hack to avoid a DLSCH regression
One of the optimized RE allocation function does not work properly
and generates some decoding errors with a COTS UE. Let's use the
generic function for the moment, while analyzing what is wrong.
2018-08-03 15:01:49 +02:00
Cedric Roux 15f7ae91be fix single_thread_flag usage 2018-08-03 14:58:18 +02:00
Cedric Roux ad32a8c923 Merge remote-tracking branch 'origin/338-correcting-changes-made-in-dlsch_demodulation-c-in-8cbe7cf6af8adf63680d6e610b570acf45df40c2' into develop_integration_2018_w31
Conflicts:
	openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c
2018-08-03 09:47:29 +02:00
Cedric Roux d688c99843 Merge remote-tracking branch 'origin/337-fix-t_ids-h-issue-for-phy_mex' into develop_integration_2018_w31
Conflicts:
	cmake_targets/CMakeLists.txt
2018-08-03 09:46:22 +02:00
Cedric Roux 409b3d5c20 Merge remote-tracking branch 'origin/issue326_LOGreview' into develop_integration_2018_w31 2018-08-03 09:45:26 +02:00
Cedric Roux 50815ab6bf Merge remote-tracking branch 'origin/issue332-dft-initializations' into develop_integration_2018_w31 2018-08-03 09:45:11 +02:00
Cedric Roux 37a097cc35 Merge remote-tracking branch 'origin/334-iq-replay-without-mmap-usage' into develop_integration_2018_w31 2018-08-03 09:44:57 +02:00
Cedric Roux c95b84e9d0 Merge remote-tracking branch 'origin/parallel-phy-test-EMUFH' into develop_integration_2018_w31 2018-08-03 09:44:38 +02:00
Cedric Roux 9e8ad4923b fix install on centOS
- install package 'vim-common' to have 'xxd' needed by the compilation
  process of the T tracer
- change the way xxd is called so that no file is created in case
  of error
2018-08-01 16:36:35 +02:00
Cedric Roux e83a7fca5f Merge remote-tracking branch 'origin/develop_integration_2018_w29' into develop
Summary of changes:
- RF simulator enhancements
- remove oaisim
- use new asn1c
- bug fixes / cleanup
  - TDD fixes
  - IQ replay fixes
  - clean VCD/LOG_XX

The new asn1c requires a reinstallation.
Do:
    ./build_oai -I
2018-07-26 21:34:12 +02:00
Cedric Roux 072cf56720 basic simulator is now functional
The power estimation of the UE has to be debugged (calibrated?).
In the meantime, using "--ue-rxgain 140" lets the UE and eNB
talk to each other in the basic simulator.
2018-07-26 11:37:36 +02:00
Cedric Roux acff8016ba fix: revert openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf to previous version 2018-07-25 11:17:54 +02:00
Cedric Roux a385af0109 better setup for asn1c
- use OAI location to retrieve asn1c
- use a specific commit instead of a branch name
2018-07-24 16:01:54 +02:00
Cedric Roux 1961fd7f20 remove gccxml/castxml
This was used for the ITTI analyzer.

The ITTI analyzer is now to be considered obsolete.
The source code will be removed at some point.
2018-07-24 15:52:04 +02:00
Cedric Roux 0f94c3487d minor 2018-07-23 10:48:05 +02:00
Cedric Roux 8cbe7cf6af Merge remote-tracking branch 'origin/mmse_receiver' into develop_integration_2018_w29 2018-07-23 10:28:20 +02:00
Cedric Roux ccdf1aff7a fix 2018-07-20 17:01:48 +02:00
Cedric Roux 86180447e7 fix 2018-07-20 16:51:53 +02:00
Cedric Roux d05ec7e826 hot dirty fix - TODO: fix it properly 2018-07-20 16:40:09 +02:00
Cedric Roux 320551124c fix 2018-07-20 16:37:22 +02:00
Cedric Roux d89009becf fix 2018-07-20 16:04:39 +02:00
Cedric Roux 42c3e6066c fix 2018-07-20 15:57:52 +02:00
Cedric Roux b1d0287327 Merge remote-tracking branch 'origin/issue321_tdd_config1' into develop_integration_2018_w29
Conflicts:
	openair2/LAYER2/MAC/eNB_scheduler_primitives.c
2018-07-20 12:26:13 +02:00
Cedric Roux e7ea9e7611 Merge remote-tracking branch 'origin/issue326_LOGreview' into develop_integration_2018_w29
Conflicts:
	cmake_targets/CMakeLists.txt
2018-07-20 12:11:52 +02:00
Cedric Roux d89dbb4882 Merge remote-tracking branch 'origin/feature-s1ap-r14-based-on-new-asn1c' into develop_integration_2018_w29
Conflicts:
	targets/SIMU/PROC/channel_sim_proc.c
	targets/SIMU/USER/oaisim_pad.c
2018-07-20 12:10:15 +02:00
Cedric Roux 87f2185431 Merge remote-tracking branch 'origin/mmse_receiver' into develop_integration_2018_w29
Conflicts:
	cmake_targets/CMakeLists.txt
2018-07-20 12:09:32 +02:00
Cedric Roux c836ef28f4 Merge remote-tracking branch 'origin/enhancement-rfsim' into develop_integration_2018_w29
Conflicts:
	openair2/LAYER2/MAC/eNB_scheduler_primitives.c
	openair2/UTIL/LOG/log.c
	targets/RT/USER/lte-uesoftmodem.c
	targets/SIMU/USER/oaisim.c
	targets/SIMU/USER/oaisim_functions.c
2018-07-20 12:06:26 +02:00
Cedric Roux e5d8179b76 hotfix: clear memory after allocation
(cherry picked from commit 71dacd442d)
2018-07-03 10:21:33 +09:00
Cedric Roux 71dacd442d hotfix: clear memory after allocation 2018-06-27 18:02:58 +02:00