Commit Graph
5681 Commits
Author SHA1 Message Date
Cedric Roux 7b36af0597 bugfix: variable was on the stack
Guess what happens when we return from the function...
2017-02-15 15:38:37 +01:00
Cedric Roux f52a42eda5 cleanup lte-softmodem.c
For whatever reason, lte-softmodem.c was totally messed up...

We took the version from the branch develop and added
abstraction_flag, which is needed in openair2/LAYER2/MAC/main.c
(this is not clean, previous commit added a comment for this).
This has to be cleaned at some point.
2017-02-14 16:41:07 +01:00
Cedric Roux 6c789a36bc minor: add a comment 2017-02-14 16:18:54 +01:00
Cedric Roux 09139ab018 fix build_oai
- the option --UE was abused! Let's introduce --UE-conf-nvram and
  --UE-gen-nvram
- the option name --UE-OUTPUT was not clear and is now replaced by
  --UE-gen-nvram
- the new options are described when running ./build_oai -h
- print_help has been modified (' replaced by ") to print
  $conf_nvram_path and $gen_nvram_path
2017-02-14 15:38:51 +01:00
Cedric Roux 614d6bbe2a ue_ip: use correct instance
The problem was the following.

Run oaisim with two UEs:

    sudo ../cmake_targets/oaisim_build_oai/build/oaisim -O enb.conf -u2 -s15 -AAWGN -y1 -b1 -Q0

Then wait for both UEs to be connected. The interfaces "oip1" and "oip2" are
activated, with IP addresses 192.172.0.2 for the first UE and 192.172.0.3 for
the second.

Then on the EPC machine, do:

    ping 192.172.0.3

No reply.
On the oaisim machine, we see that the packets are sent to "oip1" instead
of "oip2".

The fix may break softmodem UE. The inst was forced to "1" for some reason.
To be checked.
2017-02-14 10:58:06 +01:00
Cedric Roux f66f6e49cb deal with empty subframes at UE side even in oaisim
The memset was also too big. It should only clear
one subframe.

Only tested without abstraction.
Abstraction does not work for the moment anyway, but just to
keep that in mind.
2017-02-14 10:27:24 +01:00
Cedric Roux b904ce7978 rewrite synchronisation in oaisim/channel simulation
The idea is as follows.

oaisim waits for all tasks to be done for a TTI.
To do so it waits for last_rx_timestamp == current_rx_timestamp,
for all UEs and eNBs.

When it's done, it increases current_rx_timestamp by samples_per_tti,
to inform UEs and eNBs that a new TTI is ready.

In the functions [UE|eNB]_trx_read, we wait for a new TTI to be ready,
that is we wait for current_rx_timestamp != last_rx_timestamp.

The UE has also to wait for processing threads to be done.
In the eNB it's not necessary because the processing is all
done in one thread, that is: read subframe, process this subframe,
emit subframe+4, and then back to read subframe.

The code is not clean. We should not use usleep but semaphores.

Also, do_[DL|UL]_sig should not read from rxdata and write to txdata,
but use internal buffers.

The functions [UE|eNB]_trx_read should call do_[DL|UL]_sig and then
copy from the internal buffers of the channel simulator into rxdata.

The functions [UE|eNB]_trx_write should write data passed into the
internal buffers of the channel simulator.
2017-02-13 17:58:11 +01:00
Cedric Roux 14aa96787a bugfix: eNB_id should have been UE_id 2017-02-13 17:47:47 +01:00
Cedric Roux 62bcd5edf9 fix: create tasks before sync in oaisim
Not sure if this is the right thing to do, but it seems to be.

"start_eNB = 1;" is also necessary when the l2l1 task gets INITIALIZE_MESSAGE
otherwise the eNB does not start.

As it is today, I don't think oaisim will work with more than one eNB.
2017-02-09 11:00:59 +01:00
Cedric Roux 3e77251f96 minor: add a message before aborting
The case instance == INSTANCE_DEFAULT should normally not happen,
but let's be a bit verbose if it does.
2017-02-09 10:57:46 +01:00
Cedric Roux e400b5e709 fix: remove T_ENB_MASTER_TICK in oaisim.c
It's now done in lte-enb.c, even for oaisim.
2017-02-09 10:56:42 +01:00
Cedric Roux 234acfea7f fix: this piece of code should not be here
It was probably the result of a bad merge.

At this point eNB_inst is not valid. Plus the T_ENB_MASTER_TICK
is now handled in lte-enb.c, even for oaisim.
2017-02-09 10:53:15 +01:00
Cedric Roux 9c6cb96baf put UE id in thread names 2017-02-09 10:46:20 +01:00
Cedric Roux 393fe86563 fix: pass UE parameter to UE threads
oaisim is not functional with several UEs.
This fixes one issue. (It's still not functional for other reasons.)
2017-02-09 09:47:13 +01:00
Cedric Roux 157707b042 fix USE_MME compilation flag
We should use ENABLE_USE_MME, not USE_MME.
This code is useless anyway (I think, not sure, that's why I
leave it here), because the other threads wait for 'sync_var'
to become >=0.
2017-02-08 18:06:24 +01:00
Cedric Roux d72294b966 fix gen_emm_data
It was not setting emm_data->eplmn.plmn[X], only emm_data->eplmn.n_plmns,
leading to the UE to dig for PLMN 00000.

(It's not the end of the story, seems like the PLMN selection
does not work, the UE only tries one from what I've seen, but
I didn't dig much, may be wrong.)
2017-02-02 17:10:59 +01:00
Cedric Roux ea6fb5c481 better handle user input in hex_string_to_hex_value
Adapt calling sites too.

When data comes from the user, it is good to check that
what we read is correct and warn the user if it's not.
2017-02-02 16:35:45 +01:00
Cedric Roux 163c37a5a3 bugfix: return error in 'emm_msg_encode' in case of failure 2017-02-01 12:17:39 +01:00
Cedric Roux 53e416be0b update license information
Also included some source files not related to this branch.

	modified:   openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c
	modified:   openair1/PHY/LTE_TRANSPORT/pilots_ue_spec.c
	modified:   openair1/PHY/MODULATION/beamforming.c
	modified:   openair1/PHY/TOOLS/twiddle18432.h
	modified:   openair1/SIMULATION/LTE_PHY/dlsim_tm7.c
	modified:   openair3/NAS/TOOLS/nvram.c
	modified:   openair3/NAS/TOOLS/usim.c
	modified:   openair3/NAS/UE/user_defs.h
2017-01-27 16:09:56 +01:00
Cedric Roux 106f31524b update CMakeLists for ubuntu 16.04
The previous version did not compile on ubuntu 16.04.
I left the old version, commented, just in case.
2017-01-27 15:58:17 +01:00
Cedric Roux f6e42ce9e4 fix compilation of oaisim
That's not the end of the story though.
2017-01-27 15:52:22 +01:00
Cedric Roux c62b54a030 remove duplicated definitions
I am not sure if it's the right way to solve the
problem, so I keep the definitions here and
put them inside #if 0 #endif
2017-01-27 15:49:45 +01:00
Cedric Roux 1cd46a75d7 add missing #ifndef #endif guards in header file
modified:   targets/COMMON/openairinterface5g_limits.h
2017-01-27 15:49:00 +01:00
Imad ALAWE d2e02ee2e6 BUGFIX: Ip table clean when oaisim starts
Ip table clean use to run on oaisim shutdown. It is moved to run on oaisim starts.
2017-01-25 13:59:47 +01:00
Imad ALAWE 8bff2cff3e BUGFIX(GTP-U): Add missing ip rules in order to have point to point connection 2017-01-25 13:59:47 +01:00
Imad ALAWE b3ded7799a openairinterface5g: Fix multi definition of UE/eNB NB_MAX
In openairinterface5g many definitions in many layers of UE or eNB NB_MAX.
We created a file called openairinterface5g_limits.h
located at openairinterface5g_dir/targets/COMMON/ declaring the number max
of UE and eNB to be used in ALL layers depending on launching conditions
(LARGE_SCALE for example).
2017-01-25 13:58:53 +01:00
Imad ALAWE a731de2f13 openair2: fix abstraction mode for oaisim with MME
When using abstraction mode, layer2_init_UE() and openair_rrc_ue_init()
are called according to first_sync state and only without MME support.

We added the global variable abstraction_flag to allow abstraction mode
when MME is enabled.
Openair2 is also used in lte-softmodem, so it must have a global variable
abstraction_flag. So we moved it out from the main() scope.
2017-01-25 13:34:14 +01:00
Frédéric Leroy 3fdcf5b676 feat(conf2uedata): uses nvram and usim binary
This commit reverts behaviour of data generation as before
commit 7207c65b05fd812a18371827f2bfb1431fc58696:

    fix .ue* filenames in scripts and documentation

    TODO add option to conf2uedata and adapt script
2017-01-25 13:29:48 +01:00
Frédéric Leroy 3d0fbc00a1 feat(conf2uedata): reintroduce nvram binary 2017-01-25 13:29:48 +01:00
Frédéric Leroy 30fde6bfe2 feat(conf2uedata): reintroduce usim binary 2017-01-25 13:29:48 +01:00
Frédéric Leroy e439a24f03 feat(conf2uedata): print USIM filename on display 2017-01-25 13:29:48 +01:00
Frédéric Leroy d8aa8d4a64 fix(conf2uedata): update INT_ALGO to match openair develop branch 2017-01-25 13:29:48 +01:00
Frédéric Leroy 95503ffd52 fix(conf2uedata): update ue_eurecom_test_sfr.conf to match openair develop branch 2017-01-25 13:29:48 +01:00
Frédéric Leroy 747cea249b feat(conf2uedata): add a selector for displaying files 2017-01-25 13:29:48 +01:00
Frédéric Leroy af4027660b feat(conf2uedata): add a selector for writing files 2017-01-25 13:29:48 +01:00
Frédéric Leroy 6c588589ac refactor(conf2uedata): move parser functions to conf_parser.[c|h] 2017-01-25 13:29:48 +01:00
Frédéric Leroy bf699414d1 style(conf2uedata): use bool type for readability 2017-01-25 13:29:48 +01:00
Frédéric Leroy 86c8d0f95a refactor(conf2uedata): move plmns functions to conf_user_plmn.[c|h] 2017-01-25 13:29:48 +01:00
Frédéric Leroy 51c7753526 refactor(conf2uedata): move networks function to conf_networks.[c|h] 2017-01-25 13:29:48 +01:00
Frédéric Leroy 1b54e18a47 refactor(conf2uedata): add networks_t for managing known_networks 2017-01-25 13:29:48 +01:00
Frédéric Leroy 8d36213f6f refactor(conf2uedata): add make_plmn_from_conf() 2017-01-25 13:29:48 +01:00
Frédéric Leroy 459a6ec372 refactor(conf2uedata): use user_plmns struct to store plmns lists
This remove the old static lists
2017-01-25 13:29:48 +01:00
Frédéric Leroy c86b437eb3 refactor(conf2uedata): make plmns_list struct for managing plmns 2017-01-25 13:29:48 +01:00
Frédéric Leroy fcb857e508 refactor(conf2uedata): add parse_Xplmn() to read *plmns 2017-01-25 13:29:48 +01:00
Frédéric Leroy 5c8410c56f fix(conf2uedata): make hplmn_index a local variable
There was a side effect corrupting data because hplmn_index was not computed.
2017-01-25 13:29:48 +01:00
Frédéric Leroy 7fe8d45d6a refactor(conf2uedata): move usim_data funcions in conf_usim.[c|h] 2017-01-25 13:29:48 +01:00
Frédéric Leroy f03e2dbc0e refactor(conf2uedata): move user_data function in conf_user_data[c|h] 2017-01-25 13:29:48 +01:00
Frédéric Leroy eeb44860e9 refactor(conf2uedata): move emm_data funcions in conf_emm.[c|h] 2017-01-25 13:29:48 +01:00
Frédéric Leroy ef2dee59d4 refactor(conf2uedata): separate processing and writing of data 2017-01-25 13:29:48 +01:00
Frédéric Leroy 8461a56aa1 refactor(conf2uedata): add fs.[h|c] and display.[c|h] 2017-01-25 13:29:48 +01:00