Compare commits

...

911 Commits

Author SHA1 Message Date
Cedric Roux
ae0494b0bc Merge remote-tracking branch 'origin/bugfix-tdd-usrp' 2017-11-17 15:59:21 +01:00
Florian Kaltenberger
67df8e0e7b fix to previous commit 2017-10-23 16:42:54 +02:00
Cedric Roux
c0a64ed506 Merge remote-tracking branch 'origin/develop'
New version 0.6.1.

Mostly bugfixes.

Conflicts:
	cmake_targets/tools/build_helper
2017-10-23 15:22:42 +02:00
Cedric Roux
61234aae05 update README for version 0.6.1. 2017-10-23 15:15:56 +02:00
Cedric Roux
1fa317733c Merge remote-tracking branch 'origin/update-license' into develop 2017-10-23 15:02:06 +02:00
Cedric Roux
1b1f941e3c upgrade license to version 1.1 2017-10-23 12:22:13 +02:00
Florian Kaltenberger
4989c0f030 fix for TDD: TX is powered on a few samples earlier to allow it to settle before start of DL 2017-10-19 18:03:01 +02:00
Florian Kaltenberger
55f0fc30bf new config files 2017-10-19 18:02:44 +02:00
Cedric Roux
1fb76157c8 Merge remote-tracking branch 'origin/develop_integration_w34' into develop
Summary of changes:

- USRP driver improvements (GPSDO handling, GPIO for TDD)
- multi-UEs scenario improvements, mostly the MAC scheduler
- mobipass standalone driver
- bug fixes for VCD tracing code
- some cleanup in the installation scripts
- some work on the T tracer

To use the GPSDO with the USRP device (notably B210), use the
command line argument: --gpsdo-clock
2017-08-30 10:10:51 +02:00
Cedric Roux
6f812f7003 fix the prach hack, only deals with fdd prach config 0 2017-08-30 09:38:11 +02:00
Cedric Roux
761bf3c4c2 T: fix VCD traces 2017-08-29 17:18:23 +02:00
Cedric Roux
8575b151fc integration fix: add license text to source files 2017-08-29 12:21:01 +02:00
Cedric Roux
78e0a53d03 integration fix: remove compilation warnings 2017-08-29 12:18:11 +02:00
Cedric Roux
a945f85d6f Merge remote-tracking branch 'internal/T-new-traces' into develop_integration_w34 2017-08-29 10:25:41 +02:00
Cedric Roux
41d16f1696 Merge remote-tracking branch 'internal/mac-multi-ue' into develop_integration_w34 2017-08-29 10:25:33 +02:00
Cedric Roux
a35865b749 Merge remote-tracking branch 'internal/mobipass-standalone' into develop_integration_w34 2017-08-29 10:25:26 +02:00
Cedric Roux
cdcc1d54f4 Merge remote-tracking branch 'internal/usrp-cherry-pick' into develop_integration_w34 2017-08-29 10:25:20 +02:00
Cedric Roux
35f34bbdcc Merge remote-tracking branch 'internal/build_oai_cleanup' into develop_integration_w34 2017-08-29 10:25:13 +02:00
Cedric Roux
121da9468e Merge remote-tracking branch 'internal/T-tracer-extract-input-subframe' into develop_integration_w34 2017-08-29 10:25:06 +02:00
Cedric Roux
e3cc82b9fe Merge remote-tracking branch 'origin/bugfix-vcd' into develop_integration_w34 2017-08-29 10:24:40 +02:00
Cedric Roux
0daf79bfc8 T: add some new traces
- ENB_PHY_OUTPUT_SIGNAL to trace output signal
- ENB_MAC_SCHEDULING_REQUEST to trace scheduling requests
2017-08-29 10:23:06 +02:00
Cedric Roux
f38572b444 add a configuration file for mobipass standalone
Parameters are for Eurecom internal use.
2017-08-29 09:51:01 +02:00
Cedric Roux
622b919b37 improve multi-UEs scenario
This commits contains several fixes to improve a multi-UE scenario.

This is not the end of the story.

Summary of work:
================

1 - improve SR (scheduling requests):

    We configured n1pucch == 3 for scheduling requests, for all
    UEs. We now use 71 - UE_id/10.

    For it to work, it is vital that pucch_nRB_CQI in the configuration
    file is set to 0, otherwise the SR will go to an RB used for
    PUSCH and uplink decoding will fail whenever an UE does SR.

    Note that we will have problems with 20MHz when we use a CCE that
    let the UE send the ACK/NACK using a n1pucch allocated for SR,
    because when the PDCCH is of size 3, we can have 87 CCEs
    and it may lead to an n1pucch colliding with one for SR.

    The work done in this patch is a quick solution, seems to work
    with 10MHz.

    The real solution is to disable the use of those CCEs that would
    lead an UE to use a n1pucch colliding with an SR n1pucch. Then
    we can use whatever n1pucch we want for SR, as long as the
    scheduler protects them.

    Impacted files: configuration files
                    openair2/RRC/LITE/MESSAGES/asn1_msg.c

2 - some fixes for uplink scheduling:

    - Do not use PRACH for PUSCH, that leads to too many false
    PRACH detection. Plus the PUSCH receiving may fail if one
    UE uses the PRACH at the same time.

    - Take care of retransmissions. That was not done at all, so
    we could allocate one RB to several UEs. The current design
    of the code makes it hard to do it properly, so we chose a
    quick and dirty solution, which is to increase "first_rb"
    to skip any RB used for retransmission. In this process we
    may skip a lot of free RBs. A proper solution is needed here.

    - Do not allocate the last RB. This one is used for PUCCH.
    It was sometimes allocated to PUSCH.

    - In the pre-processor we didn't pre-allocate RBs to UEs
    with an empty buffer status. We didn't check if the UE
    sent an SR. For example in a three UEs scenario, we
    could have the third UE never scheduled in the uplink.

    - rb_table_index was not decreased properly, so we allocated
    too much RBs to some UEs and thus not enough to others.

    Impacted files: openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
                    openair2/LAYER2/MAC/pre_processor.c
                    openair1/SCHED/phy_procedures_lte_eNb.c

3 - some fixes for downlink scheduling:

    - The check on CCE allocation was not correct. We did something
    like:

        if (cce allocation is possible) {
          prepare
        }

    We should have done:

        save current cce allocation
        if (cce allocation is possible) {
          allocate cce
          prepare
        }
        reset current cce allocation

    Basically, when we scheduled several UEs, they were checked
    separately, and the totality of them was not checked.

    Impacted file: openair2/LAYER2/MAC/eNB_scheduler_dlsch.c

    - The retransmissions are probably not handled correctly.
    Check in openair2/LAYER2/MAC/pre_processor.c, near
    the comment "// control channel or retransmission",
    the case "round > 0" was added. It's probably not enough,
    even maybe not correct.

    - Change SF05_LIMIT with SF0_LIMIT. We accept to use
    central blocks in SF 5. The code was also not correct,
    vrb_map was not set properly because the loop on j
    was wrong for the last RBG (which can have one less
    RB than the others).

    This is not satisfying. The real solution is to use the
    central RBs and check that the MCS used is compatible
    with the numbers of resource elements allocated (we don't
    want to put too more data bits than what fits).

4 - some fixes in PUCCH decoding:

    See: openair1/PHY/LTE_TRANSPORT/pucch.c

    Probably not enough. Some more work and analysis is
    required for a proper use of the PUCCH. What we see
    is that the PUCCH constellation gets wrong when there
    are several UEs, meaning the received ACK/NACK is
    not properly decoded (this, or something else...).

5 - several fixes/checks added here and there:

    - The final allocate_CCEs in eNB_dlsch_ulsch_scheduler
      is checked and we brutally exit if it fails.

    - We exit in get_num_pdcch_symbols in case of failure
      (this should never happen anyway, no big deal normally).

    - Some logs added or changed to error/warning instead
      of debug.

    - In dlsch_scheduler_pre_processor an abort() was added.
      The code here looks suspicious.

    - In assign_max_mcs_min_rb, rb_table_index was not set
      to 2, the value 0 was used. This was not correct.

What remains to be done:
========================

    - Correct CCE allocation (take into account SR n1pucch,
      check that all the n1pucch that will be used are "compatible").

    - Take into account the PHICH when scheduling uplink. As of
      today it is very possible to have two UEs use the same PHICH
      group and PHICH sequence index. We can use n_DMRS in the DCI
      to have uniqueness (see 36.213 table 9.1.2-2). We can drop an
      allocation if there is no free PHICH group/sequence index for
      a given UE.

    - When there is an uplink retransmission in the PRACH, we have
      to disable PRACH detection. It is possible that one UE does
      PRACH at the same time, but then what to do? We could use
      DCI0-based retransmission in this specific case maybe...

    - Handle free RBs in uplink in a much better way in case of
      a retransmission. We may have a lot of free unused RBs with
      the current code.

    - Check downlink retransmissions. Not much has been done there.

    - Surely more stuff not clear yet. In some situations we don't
      have a good behavior of the system. Hard to describe more
      precisely at this point.
2017-08-24 17:34:18 +02:00
Florian Kaltenberger
30e11cbf53 adding one more dummy ofdm symbol to the TX part of the special subframe to improve EVM 2017-08-23 14:46:54 +02:00
Cedric Roux
c866677a8f mobipass standalone driver
How to use:

1 - compilation of softmodem:
  ./build_oai --eNB -t ETHERNET

2 - compilation of mobipass driver:
  cd cmake_targets/lte_build_oai/build
  make oai_mobipass
  ln -sf liboai_mobipass.so liboai_transpro.so

3 - configuration:
  edit the configuration file, set "node_timing" to
  "synch_to_mobipass_standalone"
  that is, have the line:
    node_timing               = "synch_to_mobipass_standalone";

4 - run:
  run as usual: sudo ./lte-softmodem -C <configuration file>
2017-08-23 10:22:08 +02:00
Florian Kaltenberger
592bcf3867 fix in trx_usrp_start when gpsdo is not used 2017-08-22 15:48:07 +02:00
Cedric Roux
5df5b70909 cleanup build_oai: do not un-install gnutls and nettle
These steps take time and are not necessary.
2017-08-21 09:48:42 +02:00
Cedric Roux
0293141817 T tracer: add a new tool: extract_input_subframe
This program extracts a given subframe from a recorded trace.
2017-08-20 22:52:35 +02:00
Florian Kaltenberger
c5fd670803 making use of gpsdo optional 2017-08-18 17:18:02 +02:00
Florian Kaltenberger
9c167fc3bf adding GPIO control for TDD to USRP 2017-08-18 11:13:47 +02:00
Florian Kaltenberger
d7096758aa USRP GPS sync 2017-08-18 11:12:15 +02:00
Cedric Roux
45212d3b2f hotfix: protobuf-c compilation failure
protobuf-c does not compile anymore.

Let's handle this a bit better.

We now install protobuf and protobuf-c only for the
flexran agent. That is, if you want to use the flexran
agent, you need to install protobuf/protobuf-c and
you do it this way:

  ./build_oai -I -a

(you add -a)

Other targets don't need protobuf nor protobuf-c, so
it's not installed by the -I command of build_oai,
unless you pass -a with -I.

Also, we now use protobuf 3.3.0, not 2.6.1. The code
has been adapted, a quick test seems to indicate that
the system works, but it has not been intensively tested.
2017-08-08 10:06:38 +02:00
Cedric Roux
17b9a9e917 hotfix: protobuf-c compilation failure
protobuf-c does not compile anymore.

Let's handle this a bit better.

We now install protobuf and protobuf-c only for the
flexran agent. That is, if you want to use the flexran
agent, you need to install protobuf/protobuf-c and
you do it this way:

  ./build_oai -I -a

(you add -a)

Other targets don't need protobuf nor protobuf-c, so
it's not installed by the -I command of build_oai,
unless you pass -a with -I.

Also, we now use protobuf 3.3.0, not 2.6.1. The code
has been adapted, a quick test seems to indicate that
the system works, but it has not been intensively tested.
2017-08-08 09:58:36 +02:00
Cedric Roux
309ca06685 fix vcd
several problems were present:
- there was no comma after "ue0_trx_write_ns_missing" in the array
  eurecomVariablesNames;
  comma was put, and also commas for the last element in the array,
  which doesn't hurt and will prevent future problems
- bad order of values in eurecomVariablesNames, which
  was different from the enum vcd_signal_dump_variables;
  order was checked and fixed
- strange/wrong use of VCD_SIGNAL_DUMPER_MODULE_END/LAST;
  the whole logic was removed/simplified
2017-08-07 10:41:37 +02:00
Cedric Roux
f7466b0e1a Merge branch 'develop_integration_w30' into 'develop'
Summary of changes:
- UE: new thread idx
- UE: Pdcch optim
- UE: slot0 slot1 parallelization
- bugfixes for RLC AM (see gitlab issue 250)
- fix bug "unknown UE_id for rnti"

Note: due to the new UE threading architecture,
oaisim and the phy simulators may not work properly
anymore. Adaptation in the code has been done, automatic
tests seem to pass, but it may not be enough.

See merge request !215
2017-08-03 12:23:24 +02:00
Cedric Roux
2fbb26789f remove gcc warning when compiling oaisim 2017-08-03 11:51:43 +02:00
Cedric Roux
ebc8cbf4e0 fix oaisim (ue structures changed) 2017-08-03 11:51:16 +02:00
Cedric Roux
8633d6c2df remove compilation warnings 2017-08-03 10:40:04 +02:00
Cedric Roux
9e4f700aae bugfix for phy simulators (not sure if enough)
With the new threading architecture of the UE dlsim
(and others) does not work properly anymore.

When looking at the scope, you see a difference
in PDSCH LLR display. The end is always 0 where
in the current develop branch (tag 2017.w25) it's not.

This commit attempts to fix it.

We still don't have the same behavior as in 2017.w25.
I disabled channel simulation (so that UE RX = eNB TX)
and I have one error where in 2017.w25 I have zero.
For example, here comes the output of a run of "./dlsim":

**********************SNR = 0.000000 dB (tx_lev 51.000000)**************************
Errors (1(0)/1000 0/1 0/0 0/0), Pe = (1.000000e-03,0.000000e+00,-nan,-nan), dci_errors 0/1001, Pe = 0.000000e+00 => effective rate 99.900100, normalized delay 0.001472 (1.001000)

And in 2017.w25 we have (with the same hack to disable
channel simulation):

**********************SNR = 0.000000 dB (tx_lev 51.000000)**************************
Errors (0(0)/1000 0/0 0/0 0/0), Pe = (0.000000e+00,-nan,-nan,-nan), dci_errors 0/1000, Pe = 0.000000e+00 => effective rate 100.000000, normalized delay 0.001471 (1.000000)

There may be a problem somewhere. Or there was one before and we should
have had one error and the new UE architecture fixed things and now
it's as it has to be. Hard to say at this point...

When looking at the scope we quickly see some zeros for the PDSCH
LLR, at the begining this time, not at the end. This is just when
the GUI appears and then all is fine, so this seems to be for the
first frame only. In 2017.w25 this does not happen.
2017-08-03 10:27:06 +02:00
Cedric Roux
2ed9a48d6e more fix for dlsim_tm7 2017-08-03 10:24:16 +02:00
gabrielC
5917cdaff8 correct dlsim execution problem 2017-08-01 16:57:37 +02:00
gabrielC
1661294de5 Correct T-tracer compilation 2017-08-01 10:46:08 +02:00
Cedric Roux
030a345258 bugfix: fix sync for oaisim
With the current implementation of oaisim
(rxdata and channel simulation), we cannot
call trx_read_func on a dummy buffer. The
code will actually modify the rxdata buffers
of the UE.

This is has to be rewritten properly. In the
meantime, let's introduce a simple hack. The
idea of the read at this point is to wait for
the synch to finish and not lose samples from
the hardware in the real UE. In the simulator,
as it is today, we can simply sleep until the
synch code has finished its work.
2017-07-31 16:32:07 +02:00
Cedric Roux
3ed32a77d0 integration fix: let oaisim work again
In case of oaisim, dl_phy_sync_success has to be called
by initial_sync, as it used to be.

We introduce an #if OAISIM, this is not elegant, but will
do it for the moment.
2017-07-31 16:29:46 +02:00
tct-labo4
4c2c1a3631 fix dlsim 2017-07-31 16:18:57 +02:00
tct-labo4
96db5ea596 ue fix 3 threads and add define for slot parallelization function 2017-07-31 14:17:08 +02:00
gabrielC
f5be2be550 Correct DCIFormat and AgregationLevel to put them in pdcch structure 2017-07-28 16:39:25 +02:00
Cedric Roux
10c9d899bb Merge remote-tracking branch 'origin/bugfix-258-unknown-ue-id-for-rnti' into develop_integration_w30 2017-07-28 10:06:39 +02:00
Cedric Roux
8d5901c815 bugfix: fix bug "Unknown UE_id for rnti"
This bug happens when we detect uplink failure for one UE.
In this case, a DCI format 1A is sent to the UE to ask it
to do random acces.

The way this DCI is generated was not compatible with how
the software is organized. It was expected that the DCI are
added (with add_ue_spec_dci and add_common_dci) in a very
specific order: first all DCIs in common space are added
(with add_common_dci) then all DCIs in UE specific space
are added (with add_ue_spec_dci).

The problem was that the DCI format 1A DCI sent to the UE
for it to do random access is added (with add_ue_spec_dci)
before the DCIs in common space.

That totally messed up the logic in add_common_dci and
add_ue_spec_dci.

The solution is to get rid of Num_common_dci and Num_ue_spec_dci,
replace those two counters by only one (Num_dci) and add
"search_space" in the dci_alloc structure to be used later by
the function "allocate_CCEs" when calling "get_nCCE_offset".

The software had to be adapted to the new variables, everywhere.

I am not sure that the simulators work. It seems that some
of them didn't use Num_common_dci and Num_ue_spec_dci to
decide on what space (common or UE specific) to put the DCI,
but relied on the rnti (comparing with SI_RNTI). To be tested
properly.

The modified simulators are:
  - openair1/SIMULATION/LTE_PHY/dlsim.c
  - openair1/SIMULATION/LTE_PHY/dlsim_tm4.c
  - openair1/SIMULATION/LTE_PHY/dlsim_tm7.c
  - openair1/SIMULATION/LTE_PHY/framegen.c
  - openair1/SIMULATION/LTE_PHY/pdcchsim.c
  - openair1/SIMULATION/LTE_PHY/syncsim.c
2017-07-27 17:12:19 +02:00
tct-labo4
a2f37668f1 Merge branch 'ue_new_thread_idx' into develop_integration_w30 2017-07-26 16:11:07 +02:00
tct-labo4
a738eeade4 ue using new thread index instead of modulo 2017-07-26 16:09:03 +02:00
hbilel
767606f9f2 - fix init prach struct + fix TO compensation for 20MHz case 2017-07-20 10:09:43 +02:00
fnabet
a64bcb1408 fix warning w/o ue-timing option 2017-07-17 16:49:04 +02:00
fnabet
04b5954f96 Merge Fix Issue 250 RLC AM Tpoll Retx 2017-07-17 16:24:06 +02:00
gabrielC
aae302f15e Merge branch 'pdcch_optim' into develop_integration_w30
Conflicts:
	targets/RT/USER/lte-softmodem.c
2017-07-17 16:20:00 +02:00
tct-labo4
b5eec87e75 Merge branch 'ue_slot0_slot1_parallelization_bis' into develop_integration_w30 2017-07-17 15:16:21 +02:00
tct-labo4
ed145f5799 [OAI-UE] slot0/1 parallelization part2 2017-07-17 15:11:40 +02:00
gabrielC
a2cf0a2295 PDCCH optimisation : Stop reading DCI0 when found 2017-07-17 10:40:38 +02:00
gabrielC
bcdb62e140 Optimisation of rx_pdcch : save some time by reading one symbol pdcch first and read symbol 2 and 3 if needed
Optimisation of nb of candidate when searching DCI
2017-07-06 10:03:27 +02:00
gabrielC
4ac34f7c7c Valid for OAI : Save some processing timing when looking for candidate DCI 2017-07-04 15:06:07 +02:00
fnabet
40e42c4c2d fix Issue 250 RLC AM 2017-06-29 17:15:10 +02:00
gabrielC
33e242de6a PDCCH optimisation to read only the DCI / agregation we have preconfigured 2017-06-29 10:54:50 +02:00
tct-labo4
bf7eb25cf5 [OAI-UE] timing measurements for slot0/slot1 parallelization 2017-06-28 12:15:25 +02:00
tct-labo4
0b332b5536 rebase from 2017.w25 part2 2017-06-27 17:03:16 +02:00
fnabet
cb637c033c rebase from 2017.w25 2017-06-27 15:01:28 +02:00
fnabet
232f56b9e6 prepare for rebase from 2017.w25 2017-06-26 12:16:30 +02:00
Cedric Roux
08b8b3142d Merge branch 'develop_integration_w25' into 'develop'
develop_integration_w25 into develop

Summary of changes:
- UE: configurable thread
- UE: fix in dci format1c decoding
- bladeRF hack
- configuration files for oaisim

See merge request !209
2017-06-26 10:12:41 +02:00
Cedric Roux
4deeb083fc Merge remote-tracking branch 'origin/fix-oaisim-w25' into develop_integration_w25 2017-06-23 11:22:15 +02:00
Cedric Roux
9adfa48de8 fix: let run_enb_ue_virt_s1 work with "default" openair-cn
changes:
- ue mcc/mnc 208.93
- use correct key/opc for user
- change addresses in conf file for them to be easier to understand
  (maybe)

With those changes, running:
   sudo ./run_enb_ue_virt_s1
in cmake_targets/tools should work out of the box

The user still has to configure correct IP addresses in
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_mme.conf

We supposed oaisim (enb+ue) machine to be on IP address 10.0.1.1
and EPC (hss, mme, spgw) machine to be on IP address 10.0.1.2.
2017-06-23 11:09:04 +02:00
Cedric Roux
28171c1aa7 Merge remote-tracking branch 'origin/hack-bladerf-w24' into develop_integration_w25 2017-06-23 10:36:08 +02:00
Cedric Roux
ef87ec519e Merge remote-tracking branch 'origin/ue_configurable_thread' into develop_integration_w25 2017-06-23 10:35:08 +02:00
Cedric Roux
d102d96431 Merge remote-tracking branch 'origin/ue_fix_dci1c' into develop_integration_w25 2017-06-23 10:34:55 +02:00
Cedric Roux
a8ae85f6ca bladerf: minor: add log for RX overrun 2017-06-23 10:32:28 +02:00
Cedric Roux
0da6027438 bladerf: tentative to have it functional
Several problems are present.

The first is that _write returns 0 instead of the
number of samples. We solve it by returning
nsamps.

The second is that _read may return less samples at
the beginning and we don't want to exit for that.
We solve it also by returning nsamps.
(We still need to log more in this, to be done in the
next commit.)

The third is that after initialization we don't send
anything for a while, time for the softmodem to finish
its init. This generates lots of "RX overrun".
We solve it by disabling TX and RX modules after init
and then in trx_brf_start we activate them again (and
also call bladerf_sync_config, which seems to be
mandatory, and bladerf_calibrate_dc, which may be avoided,
perhaps).

Maybe not the end of the story. Sometimes it works, UE connects,
traffic is fine (tested only with 5MHz). Sometimes it does not,
UE does not connect, or it connects but then traffic is bad,
especially uplink.

To be refined.
2017-06-23 10:32:28 +02:00
Gabriel
bc2a93183d ue fixes slot parallelisation 2017-06-21 17:49:56 +02:00
hbilel
2e559d8237 change back to eurecom test config 2017-06-21 17:15:52 +02:00
hbilel
fdae0065ac Make RX thread number configurable 2017-06-21 16:17:22 +02:00
fnabet
d951795ae4 build fixes 2017-06-21 15:58:12 +02:00
hbilel
5d936f3518 [OAI-UE] fix in dci format1c decoding 2017-06-21 14:11:52 +02:00
Cedric Roux
f364d13ddf Merge branch 'develop_integration_w24' into 'develop'
develop_integration_w24 into develop

Summary or changes:
- work on transmission mode 3 and 4

See merge request !204
2017-06-19 10:42:23 +02:00
Cedric Roux
85ac4e4648 T: minor makefile fix 2017-06-16 14:51:13 +02:00
Cedric Roux
0b4b2dda14 post-integration cleanup 2017-06-16 14:49:55 +02:00
Cedric Roux
a10a29b576 Merge remote-tracking branch 'origin/feature-59-tm4' into develop_integration_w24 2017-06-16 13:43:50 +02:00
Cedric Roux
00158f85d9 pre integration: more cleanup/hyeavy logs removal 2017-06-16 12:44:38 +02:00
Cedric Roux
3f1e218a01 pre-integration cleanup 2017-06-16 11:51:10 +02:00
Elena_Lukashova
727782a04a Setting default use_sic_receiver, otherwise it was working properly
only with XFORMS enabled.
2017-06-15 12:05:32 +02:00
Elena_Lukashova
ff9f54e187 Removing eraing llr and rxdataF_comp1 from lte_phy_scope_tm4.c
The way it was done was confusing.
However, now rank adaptation (if enabled) is not visualized correctly.
2017-06-15 12:03:13 +02:00
Elena_Lukashova
dd8eb2903e Fixing a bug in lte_phy_scope_tm4, now scope for transmission mode 1 is working fine. 2017-06-15 11:19:25 +02:00
Elena_Lukashova
71d7fcb016 Merge branch 'bugfix-243-dlsim' into feature-59-tm4 2017-06-14 15:49:20 +02:00
Elena_Lukashova
037da40423 Adding back return(0) in coherency check for format2. 2017-06-14 14:57:23 +02:00
Elena_Lukashova
adbb533de6 Setting a defaul state of the SIC button. 2017-06-13 16:31:16 +02:00
Elena_Lukashova
9566187ab3 Fixing a bug in check_dci_format2_2a_coherency. 2017-06-13 15:54:30 +02:00
Florian Kaltenberger
f152ddaa5e Merge remote-tracking branch 'origin/develop' into bugfix-243-dlsim 2017-06-13 15:23:43 +02:00
Elena_Lukashova
9be3a02fb9 Adding a button to XFORMS to switch dinamically between SIC and PIA. 2017-06-13 12:07:19 +02:00
hbilel
4aed32e786 [OAI-UE] slot0 / slot1 parallelization 2017-06-13 09:49:17 +02:00
Elena_Lukashova
fadb9b8378 Add debugging level to dlsim_tm4. 2017-06-12 23:12:22 +02:00
Elena_Lukashova
b7b13de36a Making sure llr is indexed per TB, and not per CW. 2017-06-12 23:10:45 +02:00
Elena_Lukashova
ce29fca6b6 Enabling new code for dci format 2 and incrementing round in UE->dlsch[subframe&0x1][0][1]. 2017-06-12 23:08:00 +02:00
Elena_Lukashova
39e74bc8ab Adding some debugging printouts. 2017-06-12 22:49:31 +02:00
Elena_Lukashova
a45fbd0fae Merge branch 'bugfix-243-dlsim' into feature-59-tm4 2017-06-08 15:12:57 +02:00
Florian Kaltenberger
68c72ac012 removing a few prints 2017-06-08 14:24:07 +02:00
Florian Kaltenberger
e10dd54a9b dlsim now returns -1 if a test does not pass 2017-06-08 14:23:33 +02:00
Elena_Lukashova
09fe0bdc24 Merge branch 'bugfix-243-dlsim' into feature-59-tm4 2017-06-08 14:16:22 +02:00
Florian Kaltenberger
2826ceea00 adding dlsim testcases for 20MHz (SISO) 2017-06-08 14:06:35 +02:00
Florian Kaltenberger
6194ef4831 removing printf 2017-06-08 13:42:31 +02:00
Florian Kaltenberger
9542e8a8f9 alternative version of dlsch_channel_level not needing floating point 2017-06-08 09:22:30 +02:00
Florian Kaltenberger
3c56a7edc5 a new proposal for the dlsch_channel_level function 2017-06-07 18:12:43 +02:00
Florian Kaltenberger
804a9a0630 fixing leftover issues from previous commit 2017-06-07 16:17:24 +02:00
Florian Kaltenberger
9eb6d6a4ec fixing handling of ndi/first_tx in dci. commenting out corner case of missed ACK, this needs to be done better 2017-06-07 11:22:47 +02:00
Florian Kaltenberger
0ef58f685a proper checking for detection of PDCCH/PDSCH, fix of error counters 2017-06-07 11:20:51 +02:00
Cedric Roux
7580d021d3 Merge branch 'develop_integration_w22' into 'develop'
develop_integration_w22 into develop

Summary of changes:
- UE:
  * TDD multiplexing
  * TDD autotest
  * bug fixes: power control management for Msg3, logging
- eNB:
  * CCE allocation fixes
  * S1U port in some configuration files set to 2152 (was 2153)
- support for RedHat enterprise linux 7 and derivatives (CentOS, ...)
  (work provided by RedHat)

See merge request !198
2017-06-06 17:59:32 +02:00
Elena_Lukashova
71ea13fa4b Merge branch 'bugfix-243-dlsim' into feature-59-tm4 2017-06-06 11:58:56 +02:00
Florian Kaltenberger
9ddaf93eab re-adding the possibility in dlsim to bypass the DCI/PDCCH generation. This is necessary for accuracy of the dlsim-tests, which are working again now. 2017-06-06 10:39:03 +02:00
Cedric Roux
00242daa6b Merge remote-tracking branch 'origin/feature-143-support-enterprise-linux-7' into develop_integration_w22 2017-06-02 18:06:54 +02:00
Cedric Roux
e48247f9eb test setup v2: minor: kill hss if there 2017-06-02 13:34:55 +02:00
Frank A. Zdarsky
633fda9a6e minor fixes and add building drivers from source for CentOS7
Signed-off-by: Frank A. Zdarsky <fzdarsky@redhat.com>
2017-06-02 12:32:15 +02:00
Cedric Roux
df691a2034 minor: remove user/password log in gitlab CI 2017-06-02 11:44:09 +02:00
Cedric Roux
60c4b5ecd7 integration fixes
- rename UE_NO_LOG to DISABLE_LOG_X
  because the name is misleading. The full software
  is impacted, not only the UE part
- same for compilation option ---ue-no-log
  that becomes --disable-log
- keep LOG_X for the standard case, that is the
  case without DISABLE_LOG_X where printf has been
  put. Two reasons:
  * printf is not realtime friendly
  * keep behavior similar for other users who may
    be troubled by different logs that don't add
    any benefit to previous logs
2017-06-02 11:24:22 +02:00
Cedric Roux
a08a4f4efb Merge remote-tracking branch 'origin/ue_autotest_tdd' into develop 2017-06-02 10:08:32 +02:00
Cedric Roux
cc41eb9dd8 Merge remote-tracking branch 'origin/ue_tdd_multiplexing' into develop 2017-06-02 10:08:19 +02:00
Cedric Roux
c9de7cfe6d Merge remote-tracking branch 'origin/fix-enb-s1u-port-w22' into develop 2017-06-02 10:08:06 +02:00
Cedric Roux
0617062560 Merge remote-tracking branch 'origin/MSG3_power_control_correction' into develop 2017-06-02 10:07:51 +02:00
Cedric Roux
bc0f099091 Merge remote-tracking branch 'origin/UE_logging' into develop 2017-06-02 10:07:25 +02:00
Cedric Roux
0a92f6ff41 Merge remote-tracking branch 'origin/fix-cce-allocation-w22' into develop 2017-06-02 10:07:06 +02:00
hbilel
8c6bd1d5be Additional fix for TDD multiplexing, CCE 2017-06-02 09:33:21 +02:00
Cedric Roux
d7e5e3193c change port ENB_PORT_FOR_S1U in config files
The port to use should be 2152, not 2153.
2017-06-02 09:20:50 +02:00
tctalcatel
56743415f9 Remove not used conf file 2017-06-02 09:19:19 +02:00
tctalcatel
32a330a4a4 UE autotest, adding TDD tests 2017-06-02 09:13:43 +02:00
Rohit Gupta
c5d321cb6f minor fixes for CentOS7 installation+compilation 2017-05-31 18:44:12 +02:00
Frank A. Zdarsky
c2a5199f0d Add support for RHEL/CentOS 7
Signed-off-by: Frank A. Zdarsky <fzdarsky@redhat.com>
2017-05-31 17:33:20 +02:00
tctalcatel
7a8aa100b0 Add conf file for TDD 50 and 100 RB 2017-05-31 17:03:38 +02:00
tctalcatel
f2607d336a TDD autotest 2017-05-31 15:03:51 +02:00
Elena_Lukashova
ea39c866de Fixing typo in phy_procedures_lte_ue.c 2017-05-30 15:09:33 +02:00
gabrielC
32b636d77a power control correction for MSG3 2017-05-29 16:38:01 +02:00
gabrielC
0cc838702a Remove too frequent TDD log 2017-05-29 15:23:44 +02:00
hbilel
1029a62208 Fix for TDD multiplexing 2017-05-24 16:16:11 +02:00
Elena_Lukashova
82545b8265 Merge branch 'develop' into feature-59-tm4 2017-05-24 12:49:52 +02:00
Elena_Lukashova
10ad08db41 Changes in files outputs. 2017-05-24 10:45:41 +02:00
Cedric Roux
b67847c9cf minor: fix file permissions (from 755 to 644) 2017-05-23 17:33:29 +02:00
Cedric Roux
31ef9b5203 cleanup - rewrite a bit allocate_CCEs for better logging
We want the log in case of failure also for the case:
    if (nCCE + (1<<dci_alloc->L) > nCCE_max)
2017-05-23 15:44:48 +02:00
Cedric Roux
324e6501d6 bugfix: wrong CCE allocation
We have to not only ensure that the CCE is free but
also that it's below the number of availables CCEs
with respect to the current PDCCH size.
2017-05-23 15:42:09 +02:00
gabrielC
8758d3d4cf --ue-no-log, add printf to verify attach is ok 2017-05-22 17:26:03 +02:00
Cedric Roux
076b2ed2be Merge remote-tracking branch 'origin/develop'
Version 0.6.
2017-05-22 11:50:13 +02:00
Cedric Roux
9bef36f23a Release 0.6. 2017-05-22 11:41:14 +02:00
gabrielC
16acea57cc Merge tag '2017.w20' into UE_logging 2017-05-22 11:31:18 +02:00
Cedric Roux
a6f98a8b28 Merge branch 'develop_integration_w20' into 'develop'
develop_integration_w20 into develop

Summary of changes:
- bug fixes
  * UE TDD fixes
  * PDCCH size computation (at phy level, still to be corrected at mac level)
  * DAI increment
  * fix run_enb_ue_virt_noS1 and run_enb_ue_virt_s1 to use Rel14 and
     have --xforms to work
  * compilation warning removals
  * better oaisim logging (print UE security keys,
    print version (git commit ID) at runtime, print working directory)

See merge request !190
2017-05-22 11:03:55 +02:00
Cedric Roux
c98339e104 integration fix: remove compilation warnings 2017-05-22 10:41:33 +02:00
Cedric Roux
2237b431c2 integration fix: fix compilation warnings 2017-05-22 10:34:55 +02:00
Cedric Roux
c15a9a8294 post-integration fix: remove compilation warnings 2017-05-22 10:23:24 +02:00
Cedric Roux
f3914c74f0 Merge remote-tracking branch 'origin/UE_TDD_Fix' into develop_integration_w20 2017-05-19 17:23:03 +02:00
Cedric Roux
312fad1293 Merge remote-tracking branch 'origin/fjt_bug_fix_issue239' into develop_integration_w20 2017-05-19 17:22:39 +02:00
Cedric Roux
87eb459823 Merge remote-tracking branch 'origin/various-fixes-w20' into develop_integration_w20 2017-05-19 17:22:01 +02:00
Cedric Roux
65c845ea67 Merge remote-tracking branch 'origin/oaisim-logging-w20' into develop_integration_w20 2017-05-19 17:21:37 +02:00
Cedric Roux
b74f10a878 Merge remote-tracking branch 'origin/exmimo-compilation-fix-w20' into develop_integration_w20 2017-05-19 17:21:16 +02:00
Cedric Roux
8e57a58dd6 fix run_enb_ue_virt_noS1 and run_enb_ue_virt_s1
Problems reported by Jorge Muñoz Castañer <jorgem@gti.uvigo.es>.

- use Rel14 binaries (those are produced by default)
- let -x option work to have graphical output
- fix VCD missing 'echo'
2017-05-19 17:00:36 +02:00
Cedric Roux
9cf288f6f3 pre-integration fix: minor improvement
we can compute CCE_max_used_index out of the loop.
2017-05-19 16:29:07 +02:00
Cedric Roux
685464c204 pre-integration fix: correct comparison
get_nCCE returns the number of available CCEs.

We can put the CCEs numbers [ 0 .. get_nCCE-1 ],
so we need to use <, not <=.
2017-05-19 16:27:08 +02:00
gabrielC
dd7691ec60 Fix warning compilation 2017-05-19 16:22:51 +02:00
Cedric Roux
8625a8672a T: improve trace ENB_PHY_ULSCH_UE_DCI 2017-05-19 16:17:56 +02:00
gabrielC
abf30c20b1 Remove some logs 2017-05-19 16:01:38 +02:00
hbilel
667bfb0173 TDD config 4,5 harq,bundling,multiplexing,ack,nack
config 4 tested with Amarisoft
2017-05-19 15:37:57 +02:00
gabrielC
fe350d5b6f UE logging change :
--ue-trace : Enabling UE trace for debug
--ue-timing : Enabling UE timing trace
--ue-no-log : Disabling all LOG_X traces
2017-05-19 14:28:34 +02:00
echigoya
d79c186a13 Fujitsu No.6 Correct DAI incrementation 2017-05-19 09:36:47 +09:00
Tomohiro
8160f8a23f Fujitsu No.39 Correct pdcch symbol calculation 2017-05-19 09:24:49 +09:00
Cedric Roux
c08bd6ba9c warning removal
force j to -1, there is a compilation warning with the T tracer
(variable may be used uninitialized)
2017-05-18 15:43:16 +02:00
Cedric Roux
dcfdd76113 minor: warnings removal
It seems that ciphering_algorithm is "unsigned int" in RRC Rel10
and "unsigned long" in RRC Rel14 (as processed by asn1c)

Let's force it to unsigned long in the log to avoid compilation-time
warnings.
2017-05-18 15:42:30 +02:00
Cedric Roux
9d65f4dd09 warnings removal in LOG_X
those popped up thanks to previous commit
2017-05-18 14:16:24 +02:00
Cedric Roux
94dd884325 redo commit cb67d586a4
Seems like this commit got lost at some point.

Here was the message:
-----------------------------------------------------------------------------
Author: Cedric Roux <cedric.roux@eurecom.fr>
Date:   Tue Jan 10 14:21:02 2017 +0100

    add format indicator to get LOG_X warnings

    The LOG_X macros emit a lot of warnings when compiling with the T
    because they call the function logRecord (or logRecord_mt)
    which has not been "marked" as calling printf, so gcc won't
    emit typical printf warnings.

    With the T, they directly translate to sprintf, so those warnings
    pop up, much more verbose due to several macro expansions.

    Let's make them pop up all the time so it's easier to fix them.
-----------------------------------------------------------------------------
2017-05-18 11:34:58 +02:00
Cedric Roux
f6693af628 add CQI to periodic logging of UE 2017-05-18 11:24:40 +02:00
Cedric Roux
4eefaffb47 minor: change files mode (from 755 to 644) 2017-05-18 11:12:11 +02:00
Cedric Roux
5e323eefa2 improve logging in oaisim
- print current working directory
- print git version (if available)
- print security keys
  this last one is a security breach, but as of today
  it's not a problem
2017-05-18 10:39:25 +02:00
Cedric Roux
dd07d878a3 bugfix: fix compilation for express MIMO target 2017-05-17 12:58:21 +02:00
Cedric Roux
430a8c4e11 Merge branch 'develop_integration_w19' into 'develop'
develop_integration_w19 into develop

Summary of changes:
- bug fixes:
  * RLC AM fixes
  * UE TDD fixes
  * Fujitsu bug fixes (TDD also)
  * mobipass fixes (bad management of carriers, softmodem was failing with more than one CC)
  * compilation warnings removal
- PUCCH format 3 preliminary support (work from Fujitsu)
- build fixes: do not include shared library in main executable (work from Nokia)
  express MIMO2 needs some more work here

See merge request !184
2017-05-15 22:45:56 +02:00
Cedric Roux
099b7f2ac6 integration fix: fix rrh_gw compilation 2017-05-15 16:13:32 +02:00
Cedric Roux
0023d448f7 integration fix: expressMIMO should be aligned with the rest now
No need for this special case. Plus, it fails with the work
from Nokia on compilation cleanup.
2017-05-15 16:12:33 +02:00
Cedric Roux
ce08fa8e9e integration fix: remove various warnings 2017-05-15 15:57:26 +02:00
Cedric Roux
15bb39704a integration fix: remove warnings introduced by PUCCH format 3 handling 2017-05-15 15:56:49 +02:00
Cedric Roux
f12350ce62 integration fix: remove warnings in dlsim 2017-05-15 15:42:27 +02:00
Cedric Roux
9cd3e2e887 integration fix: remove warnings in ulsim 2017-05-15 15:42:01 +02:00
Cedric Roux
11006597c9 integration fix: let dlsim and ulsim work again
There is now the function copy_harq_proc_struct and some
procedures for the UE have changed, which makes necessary
to have UE->dlsch valid for both subframes (odd and even).

We increase memory usage, maybe it's not the correct solution.
To be kept in mind if something goes wrong at some point.
2017-05-15 11:13:56 +02:00
Cedric Roux
0f42d5a344 Merge remote-tracking branch 'origin/bugfix_multiple_carriers_mobipass' into develop_integration_w19 2017-05-15 11:13:45 +02:00
Cedric Roux
9eaee53bb6 rewrite phy_stats_exist
We have to test that all active CCs of a given UE exist in the PHY layer.
Maybe not the end of the story...
2017-05-13 12:45:17 +02:00
Cedric Roux
0bb229451a Merge remote-tracking branch 'origin/bugfix_Fujitsu_reviewed' into develop 2017-05-12 15:57:33 +02:00
Cedric Roux
2d97b777b6 Merge remote-tracking branch 'origin/enhancement-124-hw_library_new' into develop 2017-05-12 15:57:10 +02:00
Cedric Roux
06f2889b2d Merge remote-tracking branch 'origin/UE_TDD_Fix' into develop 2017-05-12 15:56:52 +02:00
Cedric Roux
9107d2831b Merge remote-tracking branch 'origin/bugfix-238-rlc-am' into develop 2017-05-12 15:53:25 +02:00
Cedric Roux
d0b5d6539b Merge remote-tracking branch 'origin/issue-232-pucch3' into develop 2017-05-12 15:32:38 +02:00
Tien-Thinh Nguyen
3d4ba1a3b0 fix the errors related to multiple carriers (for a given UE considering only the CCs which this UE belongs to) 2017-05-12 15:23:07 +02:00
gabrielC
ad6d0ac59e bug fixes from Fujitsu (bug 37)
----------------------------------------------------------
bug 37

Ttile:
Sending side is as follows.
rar[3] = (((mcs&0x7)<<5)) | ((TPC&7)<<2) | ((ULdelay&1)<<1) | (cqireq&1);
So, 2 bit shift looks correct.

Bug Location:
ulsch->harq_processes[harq_pid]->TPC = (rar[3]>>3)&7;//rar->TPC;
----------------------------------------------------------
2017-05-12 13:54:49 +02:00
gabrielC
893f36e81e bug fixes from Fujitsu (bug 29)
----------------------------------------------------------
bug 29

Ttile:
FDD should be TDD.

Bug Location:
  switch (oai_emulation.info.frame_type[0]) {
  case FDD:
    frame_type = "FDD";
    break;

  case TDD:
    frame_type = "FDD";
    break;
  }
----------------------------------------------------------
2017-05-12 11:56:57 +02:00
gabrielC
899d150621 bug fixes from Fujitsu (bug 26)
----------------------------------------------------------
bug 26

Ttile:
g_buffer has only 32 index, but he/she tries to zero clear
1024 index.

Bug Location:
static uint8_t g_buffer[32];
:
memset (g_buffer, 0, 1024);

Note:
Detected by CppCheck
----------------------------------------------------------
2017-05-12 11:55:07 +02:00
Cedric Roux
adb3b25c67 bug fixes from Fujitsu (bug 24)
----------------------------------------------------------
bug 24

Ttile:
The last line "multicast_group = multicast_group" is hard
to understand. The local variable should be different name
than the global variable.

Bug Location:
const char *multicast_group_list[MULTICAST_LINK_NUM_GROUPS] = {
  "239.0.0.161",
  "239.0.0.162",
  "239.0.0.163",
  "239.0.0.164"
};
:
:
void multicast_link_start(void (*rx_handlerP) (unsigned int, char *),
                          unsigned char multicast_group, char *multicast_ifname)
{
  rx_handler = rx_handlerP;
  multicast_group = multicast_group;

Note:
Detected by CppCheck
----------------------------------------------------------
2017-05-12 11:52:52 +02:00
gabrielC
34c6805f7a bug fixes from Fujitsu (bug 22)
Note: not sure that the code is correct,
to be checked (Cédric Roux).

----------------------------------------------------------
bug 22

Ttile:
(subframe!=2)||(subframe!=7) is always TRUE. This coding
is really intended? Operator || should be && instead?

Bug Location:
((frame_parms->frame_type==TDD)&&(frame_parms->tdd_config==1)&&((subframe!=2)||(subframe!=7)))) {

Note:
Detected by CppCheck
----------------------------------------------------------
2017-05-12 11:47:58 +02:00
gabrielC
98a7a16ead bug fixes from Fujitsu (bug 21)
Note: this fix does not solve the issue with how
this buffer is used in this function, but I'm not
sure this code is used at all (Cédric Roux).

----------------------------------------------------------
bug 21

Ttile:
PAYLOAD_MAX=1500, so this coding results in index overflow.
Additionally, operator "!=" just compairs something, this
coding is meaningless.

Bug Location:
buffer[PAYLOAD_MAX] != '\0';

Note:
Detected by CppCheck
----------------------------------------------------------
2017-05-12 11:16:14 +02:00
gabrielC
bdaef7956d bug fixes from Fujitsu (bugs 18, 19, 20)
----------------------------------------------------------
bug 18

Ttile:
Probably he/she wants to copy the contents of arrays, but
this coding doesn't copy anything, moreover index overflow
occurs.

Bug Location:
u2e_t[UE_id][eNB_id]->tx_data[3]=tx[eNB_id][3];
u2e_t[UE_id][eNB_id]->rx_data[3]=rx[NB_eNB_INST+UE_id][3];

Note:
Detected by CppCheck
----------------------------------------------------------
bug 19

Title:
Probably he/she wants to copy the contents of arrays, but
this coding doesn't copy anything, moreover index overflow
occurs.

Bug Location:
e2u_t[eNB_id][UE_id]->tx_data[3]=tx[NB_eNB_INST+UE_id][3];
e2u_t[eNB_id][UE_id]->rx_data[3]=rx[eNB_id][3];

Note:
Detected by CppCheck
----------------------------------------------------------
bug 20

Title:
Probably he/she wants to copy the contents of arrays, but
this coding doesn't copy anything, moreover index overflow
occurs.

Bug Location:
tx_data[3]=cthread->tx_data[3];
rx_data[3]=cthread->rx_data[3];

Note:
Detected by CppCheck
----------------------------------------------------------
2017-05-12 11:06:10 +02:00
Francois TABURET
261353680c Fix shared lib build problem, where shared lib sources were also included in main exec's
Discovered and fix problems in shared lib build for usrp,bladerf and lime
2017-05-12 09:44:43 +02:00
hbilel
5904734d99 [OAI_UE] Compute O_ACK with ack status only for FDD 2017-05-03 16:59:27 +02:00
gabrielC
f2f79a1647 Remove subframe_DL function npot anymore needed 2017-05-03 15:42:32 +02:00
gabrielC
966291029d Clean and remove a problematic memcpy 2017-05-03 15:26:39 +02:00
fnabet
8d787768c4 Issue 238 fix: RLC AM 2017-05-03 14:43:45 +02:00
gabrielC
3fcdec1ad7 fix for FDD 2017-05-03 11:11:06 +02:00
hbilel
ceb13b8aa4 [OAI-UE] Additional TDD fix 2017-05-03 09:57:03 +02:00
hbilel
3c6e206e97 TDD fix for several issues 2017-05-02 18:01:47 +02:00
hbilel
cd7e479fc7 sss pss calculation 2017-04-26 17:05:29 +02:00
gabrielC
780c7b03ba - fix for TDD config 3 2017-04-25 11:33:40 +02:00
Yoshi
bdcc8ecf66 Adjust parameters 2017-04-25 17:54:42 +09:00
Yoshi
655859b865 add comment 2017-04-25 12:31:21 +09:00
gabrielC
5e149161b7 add logging trace 2017-04-24 15:51:59 +02:00
HARADA Masayuki
7854030b90 Add pucch format3 test to pucchsim 2017-04-24 13:24:39 +09:00
Yoshi
46da64063b add comment 2017-04-21 14:04:56 +09:00
Yoshi
b7b057a162 Merge remote-tracking branch 'origin/develop' into issue-232-pucch3 2017-04-21 13:51:47 +09:00
gabrielC
8163d78ce3 Remove some logs 2017-04-18 14:28:15 +02:00
gabrielC
59e9e2e85f Merge tag '2017.w15' into ue_dlsch_dual_buffer_fix 2017-04-18 13:26:03 +02:00
Cedric Roux
c124e32ab5 Merge branch 'develop_integration_w15' into 'develop'
develop_integration_w15 into develop

Summary of changes:
- DCI1 20MHz phy-test bug fix
- RLC UM/AM max header size fix
- UE autotests improvements

See merge request !177
2017-04-18 10:03:46 +02:00
Cedric Roux
fc4d03d419 fix tm1 generic configuration file
- RBs set to 25
- disable SRS
2017-04-18 09:55:37 +02:00
Cedric Roux
20a2bfd109 hotfix: fix TDD 20MHz DCI0 structure
In 20MHz the UE didn't do any uplink granted by DCI0.
It was replying to RAR, so uplink decoding was okay.

Turns out the DCI0 structure for TDD was wrong.
2017-04-14 18:17:13 +02:00
Cedric Roux
2e86a60982 Merge remote-tracking branch 'origin/UE_autotest_For_20Mhz' into develop_integration_w15 2017-04-14 16:18:19 +02:00
Cedric Roux
89292a763d Merge remote-tracking branch 'origin/eNB_phy-test_fix_20MHz' into develop_integration_w15 2017-04-14 16:18:05 +02:00
Cedric Roux
ab907918b0 Merge remote-tracking branch 'origin/bugfix-234-rlc-um-max-header-size' into develop_integration_w15 2017-04-14 16:17:51 +02:00
tctalcatel
58aa9f1f52 change eNB and UE name 2017-04-14 09:07:13 +02:00
tctalcatel
5498741f0b Add 20 MHz test for the default XML file 2017-04-14 09:03:12 +02:00
Yoshi
63b10db645 made generate_pucch3x and rx_pucch 2017-04-12 19:29:54 +09:00
tctalcatel
2e8d01f36b UE autotest 20 MHz 2017-04-12 12:01:32 +02:00
GabrielCouturier
fd618f4357 Fix eNB phy-test 20MHz DCI1 2017-04-11 16:56:07 +02:00
Cedric Roux
965aa5e6ef change value of RLC_AM_MAX_SDU_IN_PDU and RLC_UM_SEGMENT_NB_MAX_LI_PER_PDU
Fabrice Nabet (TCL) suggests the value 128 for both.
See https://gitlab.eurecom.fr/oai/openairinterface5g/issues/234#note_3179
2017-04-11 09:32:14 +02:00
Cedric Roux
94f880ad23 bugfix: increase RLC UM header size
The constant RLC_UM_SEGMENT_NB_MAX_LI_PER_PDU is set to 24. This is
too low. Running a downlink TCP iperf with a 10MHz or 20MHz cell
leads to lots of the following warning in the log:

[RLC][W][SN 792] Bad RLC header! Discard this RLC PDU (size=618)

The problem is that the uplink RLC PDU contains a lot of TCP ack.
We can see much more than 24 of them. The RLC layer is not happy
and discards the PDU.

Putting 256 for RLC_UM_SEGMENT_NB_MAX_LI_PER_PDU (arbitrarily chosen,
big but not too big) solves the problem, at least for 10MHz.
2017-04-10 17:31:21 +02:00
Cedric Roux
fbcc9a2393 minor: bad comparison
it was:

    *num_li_pP >= RLC_UM_SEGMENT_NB_MAX_LI_PER_PDU

it should be:

    *num_li_pP > RLC_UM_SEGMENT_NB_MAX_LI_PER_PDU
2017-04-10 17:30:43 +02:00
Cedric Roux
38abafed2e Merge branch 'develop_integration_w14' into 'develop'
develop_integration_w14 into develop

Summary of changes:
- minor bug fixes, minor improvements

See merge request !173
2017-04-10 11:00:11 +02:00
Cedric Roux
10113a3517 integration fix: change the way to print the version
Using "system" to call "git log" is too error-prone.
In the test setup, lte-softmodem was blocked because
"git log" uses a pager ("less") and the pager was
waiting for the user to press enter.

We could pass "--no-pager" to "git log" but then
what if someone runs the softmodem out of the source
tree?

cmake defines PACKAGE_VERSION, we can use that instead,
as is done in openair-cn.
2017-04-10 10:29:09 +02:00
Cedric Roux
f50ea1b14c Merge remote-tracking branch 'origin/update_readme' into develop_integration_w14 2017-04-10 09:39:18 +02:00
Florian Kaltenberger
01b1101288 update readme files 2017-04-08 17:20:32 +02:00
Cedric Roux
61033059c4 Merge remote-tracking branch 'origin/hotfix-rb-table-w14' into develop_integration_w14 2017-04-07 16:55:18 +02:00
Cedric Roux
6f02decf7a Merge remote-tracking branch 'origin/oai_ue_log_improvement' into develop_integration_w14 2017-04-07 16:55:06 +02:00
gabrielC
8f75878544 Correction for dlsch dual buffer 2017-04-04 10:29:21 +02:00
Cedric Roux
e7f1cf4238 hotfix: revert value of 'rb_table_index'
This reverts commit 7f24927c43.

With value 13 uplink TDD for a 10MHz configuration was not working.
UDP traffic sent with: "iperf -c XX -u -b10M" was crashing
the eNB.
2017-04-03 14:22:10 +02:00
gabrielC
666ae5d0e1 commit id added to the log 2017-04-03 14:06:41 +02:00
Cedric Roux
316f6aba9e Merge branch 'develop_integration_w13' into 'develop'
Develop integration w13

Summary of changes:
- RLC AM reworking (a lot has changed)
- several bug fixes
  * support processing multiple MAC RAR control elements in a single MSG2
  * fix ACK/NACK resetting
  * do not correct USRP frequency from carrier offset estimation when --ue-carrier-scan == off
  * fix TDD uplink due to incorrect PUCCH format for SR in TDD
  * several other simple fixes
- better support for LMS SDR

See merge request !168
2017-04-03 10:36:45 +02:00
Cedric Roux
c36c04537a integration fix: fixes for pthread_getname_np
- define _GNU_SOURCE before including pthread.h
- do not use static for the array 'threadname' used
  to store the name, it makes it a global variable
  accessed by several threads in parallel
- increase size of 'threadname' (maybe not necessary)
- properly indent #define / #under (# should be at column 1)
2017-04-03 10:26:42 +02:00
Cedric Roux
a032502713 Merge remote-tracking branch 'origin/bugfix-189-rlc-am-fixes' into develop_integration_w13 2017-03-30 10:21:10 +02:00
hbilel
49006696ac RLC AM add various fixes 2017-03-29 15:59:16 +02:00
hbilel
bb4131b33d RLC AM add fixes 2017-03-28 19:59:52 +02:00
hbilel
3c7c61a46c RLC AM fix specific reassembly issue 2017-03-28 18:08:00 +02:00
Cedric Roux
2437d0fbd0 Merge remote-tracking branch 'origin/fix-dlsim-w13' into develop_integration_w13 2017-03-28 17:33:26 +02:00
Cedric Roux
37c71e5a02 Merge remote-tracking branch 'origin/dlsim-fix-w13' into develop_integration_w13 2017-03-28 17:33:16 +02:00
Cedric Roux
c207df8b0e bugfix: dlsim was not working anymore
When you ran it with the scope as:

    ./dlsim -X

you saw no activity in the "PDSCH I/Q of MF Output" window,
so matter what SNR you put (even for very high SNR, say: ./dlsim -X -s40)

this commit seems to fix it.

I am not sure it is the end of story. The 2 threads PDCCH/PDSCH structures
may still not be used correctly everywhere.
2017-03-28 17:25:27 +02:00
Florian Kaltenberger
99280926ed fix in dlsim to catch cases where pdcch is not decoded 2017-03-28 17:24:21 +02:00
Elena_Lukashova
81215a2461 Fixing commit 21481c4a6a. 2017-03-28 16:40:08 +02:00
Cedric Roux
72c387987b Merge remote-tracking branch 'origin/bugfix-229' into develop_integration_w13 2017-03-28 16:24:08 +02:00
Cedric Roux
26f06f35fe Merge remote-tracking branch 'origin/bugfix-226' into develop_integration_w13 2017-03-28 16:22:23 +02:00
Cedric Roux
0a33a1d3e7 Merge remote-tracking branch 'origin/bugfix-223' into develop_integration_w13 2017-03-28 16:21:20 +02:00
Cedric Roux
2af0ef847b Merge remote-tracking branch 'origin/bugfix-222' into develop_integration_w13 2017-03-28 16:20:21 +02:00
Cedric Roux
740d3f647d Merge remote-tracking branch 'origin/bugfix-221' into develop_integration_w13 2017-03-28 16:18:45 +02:00
Cedric Roux
b7762c6a7d Merge remote-tracking branch 'origin/bugfix-220' into develop_integration_w13 2017-03-28 16:15:32 +02:00
Cedric Roux
9814de0570 revert deletion of directories to before commit 9e78b40d2e 2017-03-28 16:13:31 +02:00
Cedric Roux
02bfef2184 fix UE variable setting in build_oai 2017-03-28 16:03:17 +02:00
Cedric Roux
9af7f280b7 Merge remote-tracking branch 'origin/bugfix-219' into develop_integration_w13 2017-03-28 10:24:01 +02:00
Cedric Roux
9a464ca077 fix: remove change in build_helper 2017-03-28 10:13:54 +02:00
Cedric Roux
ca0ff4b51f Merge remote-tracking branch 'origin/lmssdr-fix-w13' into develop_integration_w13 2017-03-28 10:05:21 +02:00
Wilson Thong
adf920b6a9 #229 add support on processing multiple RAR payloads in one single MSG2 2017-03-28 10:56:18 +08:00
Wilson Thong
f65150aa64 #226 fix incorrect resetting downlink ACK/NACK in the middle of UE_TX processing 2017-03-28 10:52:41 +08:00
Wilson Thong
40f9b9f4e0 #223 fixed USRP initialization when disabling --ue-carrier-scan option 2017-03-28 10:48:38 +08:00
Wilson Thong
002b9b0f65 #222 fix incorrect PUCCH format when sending SR in TDD 2017-03-28 10:42:22 +08:00
Wilson Thong
0487631c76 #221 fixed crash when processing false DCI1A due to incorrect HARQ-PID checking 2017-03-28 10:39:09 +08:00
Wilson W.K. Thong
8d88bae9e8 #221 fixed incorrect processing of CQI_PMI_Index in RRCConnectionReconfiguration 2017-03-28 10:39:09 +08:00
Wilson W.K. Thong
2660ac0570 #221 fixed RRC crash when parsing the RRCConnectionReconfiguration message with empty neighCellConfig in measObjectEUTRA 2017-03-28 10:39:09 +08:00
Wilson Thong
924c421beb #220 add help printout for run options 2017-03-28 10:17:51 +08:00
Vincent Ng
4fea65a265 #220 change the I/Q in soft-scope to be normalized wrt |h| 2017-03-28 10:17:51 +08:00
Wilson W.K. Thong
4a2f9d2571 #220 enhance logging to show also thread name 2017-03-28 10:17:51 +08:00
Wilson Thong
040957c1d4 #220 fixed incorrect wiresahrk SFN/SF for UL/DL data 2017-03-28 10:17:51 +08:00
Wilson Thong
9e78b40d2e #220 fixed minor typo 2017-03-28 10:17:51 +08:00
Wilson Thong
66c5892c9e #220 fixed incorrec path config for building usim/nvram 2017-03-28 10:17:51 +08:00
Wilson Thong
e6798f5b96 #219 add build option for building eclipse project files 2017-03-28 10:11:43 +08:00
Wilson Thong
5dfdec6c25 #219 add minimum support for running and building UE and eNB 2017-03-28 10:11:43 +08:00
Cedric Roux
fa0b8668fb bugfix: workaround a problem with timestamp and LMSSDR.
We have a strange problem with the timestamp of the very
first packets received from the LimeSDR that leads to
a complete failure of the eNB.

A simple workaround is to discard the first RX packet
just after a "start" of the device.

We also change the value of "tx_sample_advance" to a more
reasonable value. The problem of timestamp was "solved"
differently in the past and at the time we needed to put
a much higher value.

This may have to be refined at some point.
2017-03-27 16:32:42 +02:00
Elena_Lukashova
a0f40fd02b Merge remote-tracking branch 'origin/develop' into feature-59-tm4 2017-03-27 14:03:51 +02:00
Elena_Lukashova
800f66b3d4 Fixing a bug in HARQ for SIC.
Now the llrs after SIC procedure are updated.
In dlsim_tm in case of TB0_active==-1,
the llr were taken from the wrong buffer, and in dlsch_demodulation
the SIC llrs were written into the wrong buffer in the same case.
2017-03-27 11:50:58 +02:00
fnabet
1213521c30 merge from 2017.w12 2017-03-27 11:38:52 +02:00
Cedric Roux
a77082c1ed Merge branch 'develop_integration_w12' into 'develop'
develop_integration_w12 into develop

Summary of changes:
- RRC Rel14: tests done so far indicate no problem
- SRS support in eNB
- bug fixes / warning removals

See merge request !155
2017-03-27 11:03:57 +02:00
Cedric Roux
b6991ab2e0 autotest v2: remove nasmesh and ue_ip module kernels before anything else
The presence of one or the other may lead to some failure/crash in
some situations.
2017-03-27 10:19:23 +02:00
Elena_Lukashova
e05a417cd2 Fixing previous commit 2017-03-26 20:17:47 +02:00
Elena_Lukashova
78bf45f3f3 Removing unnecessary arguments in SIC llr functions. 2017-03-25 18:18:42 +01:00
Cedric Roux
d0e2938baa remove asn1 compilation fixes that went to asn1c (IMPORTANT: reinstall asn1c!)
The files NativeInteger.c.diff and constr_SET_OF.c.diff
from asn1c were generating compilation warnings. We had
local patches applied on generated files by asn1c.

A new version of asn1c has been pushed to
https://gitlab.eurecom.fr/oai/asn1c
(commit 224dc1f991b7e7ad705ce92e171b942f87b7b7e7)
making obsolete the fixes we do here.

So we now remove those fixes.

*************************
* IMPORTANT BEGIN       *
*************************

Everyone should update their asn1c installation.

The simplest is to do:

    source oaienv
    cd cmake_targets
    ./build_oai -I

*************************
* IMPORTANT END         *
*************************
2017-03-25 15:48:36 +01:00
Cedric Roux
5485f131c3 bugfix: Rel14 was missing 2017-03-24 18:05:11 +01:00
Cedric Roux
af8ce457f3 bugfix: fix nos1 compilation 2017-03-24 18:01:39 +01:00
Cedric Roux
4e3acb6a5d integration fix: disable XER_PRINT
This generates too much prints and may disrupt realtime.
This has to be off by default.
2017-03-24 17:18:51 +01:00
Cedric Roux
fc5c876a81 Merge remote-tracking branch 'origin/feature-228-rrc-rel14' into develop_integration_w12 2017-03-24 17:08:27 +01:00
Cedric Roux
75aff99bf6 Merge remote-tracking branch 'origin/bugfix-227-ue-ip-setting' into develop_integration_w12 2017-03-24 17:08:08 +01:00
Cedric Roux
fec6832122 Merge remote-tracking branch 'origin/if5-fixes-w11' into develop_integration_w12 2017-03-24 17:07:51 +01:00
Cedric Roux
c54cb41805 Merge remote-tracking branch 'origin/various-fixes-w12' into develop_integration_w12 2017-03-24 17:07:26 +01:00
Cedric Roux
b8c4365479 Merge remote-tracking branch 'origin/feature-218-srs' into develop_integration_w12 2017-03-24 17:07:10 +01:00
Cedric Roux
5db0548af0 bugfix 2017-03-24 16:55:30 +01:00
Cedric Roux
b5a03474bf remove asn1 compilation fixes that went to asn1c (IMPORTANT: reinstall asn1c!)
The files NativeInteger.c.diff and constr_SET_OF.c.diff
from asn1c were generating compilation warnings. We had
local patches applied on generated files by asn1c.

A new version of asn1c has been pushed to
https://gitlab.eurecom.fr/oai/asn1c
(commit 224dc1f991b7e7ad705ce92e171b942f87b7b7e7)
making obsolete the fixes we do here.

So we now remove those fixes.

*************************
* IMPORTANT BEGIN       *
*************************

Everyone should update their asn1c installation.

The simplest is to do:

    source oaienv
    cd cmake_targets
    ./build_oai -I

*************************
* IMPORTANT END         *
*************************
2017-03-24 16:46:42 +01:00
Cedric Roux
6448738e9b bugfix/compilation warning removal in ulsim 2017-03-24 15:53:52 +01:00
Cedric Roux
583123e042 bugfix/compilation warning removal in dlsim 2017-03-24 15:49:19 +01:00
Cedric Roux
53bb6a8c2c compilation warning removal 2017-03-24 15:33:51 +01:00
Cedric Roux
d296abb8d0 compilation warning removal 2017-03-24 15:24:35 +01:00
Cedric Roux
5345b160fc compilation warning removal 2017-03-24 15:23:43 +01:00
Cedric Roux
045132ba6e compilation warning removal 2017-03-24 15:20:56 +01:00
Cedric Roux
4080a63938 compilation warning removal 2017-03-24 15:18:57 +01:00
Cedric Roux
f754e31ead compilation warnings removal 2017-03-24 15:17:13 +01:00
Cedric Roux
7a6709a24e warning removal/bug fixes/adding logs in rb_tool.c 2017-03-24 15:12:52 +01:00
Cedric Roux
676ca5c3a0 compilation warning removal 2017-03-24 14:40:00 +01:00
Cedric Roux
dfcbeff0d4 bugfix/warning removal
not sure of this one, to be checked
2017-03-24 14:26:16 +01:00
Cedric Roux
181eb532e1 bugfix 2017-03-24 14:23:11 +01:00
Cedric Roux
bc10722013 warnings removal 2017-03-24 14:20:06 +01:00
Cedric Roux
60efa62dc8 compilation warning removal 2017-03-24 13:09:35 +01:00
Cedric Roux
7c7022a198 compilation warning removal 2017-03-24 13:08:45 +01:00
Cedric Roux
89c60dacfd compilation warning removal 2017-03-24 13:07:21 +01:00
Cedric Roux
34c303efb5 compilation warning removal 2017-03-24 13:05:08 +01:00
Cedric Roux
e9d88a101d bugfix: array too short for data
6 numbers (2 hexa digits each) separated by ':'
plus ending 0 makes 18 bytes, not 6, let's put 20
2017-03-24 13:02:52 +01:00
Cedric Roux
e5c5185eda compilation warning removal 2017-03-24 12:47:00 +01:00
Cedric Roux
e268611bec bugfix 2017-03-24 12:45:17 +01:00
Cedric Roux
4a6e433b21 compilation warning removal 2017-03-24 12:41:10 +01:00
Cedric Roux
b95ff08295 compilation warning removal 2017-03-24 12:40:11 +01:00
Cedric Roux
cfac326c00 compilation warning removal 2017-03-24 12:39:11 +01:00
Cedric Roux
c01d9dc1f0 compilation warning removal 2017-03-24 12:34:15 +01:00
Cedric Roux
99b521901c compilation warning removal 2017-03-24 12:33:09 +01:00
Cedric Roux
6977429706 compilation warning removal 2017-03-24 12:32:58 +01:00
Cedric Roux
ac437d3d12 compilation warning removal 2017-03-24 12:30:06 +01:00
Cedric Roux
d2098da06c fix targets/COMMON/openairinterface5g_limits.h
- LMSSDR was not handled
- bad #if usage
- bad indentation

still not very clean, but better
2017-03-24 12:27:46 +01:00
Cedric Roux
71fde41477 compilation warning removal 2017-03-24 12:21:45 +01:00
Cedric Roux
b3d9e19899 compilation warning removal 2017-03-24 12:21:04 +01:00
Cedric Roux
aaac4894c9 compilation warning removal 2017-03-24 12:17:08 +01:00
Cedric Roux
92ee6017cd compilation warning removal 2017-03-24 12:09:09 +01:00
Cedric Roux
7514e7139a compilation warning removal 2017-03-24 12:08:31 +01:00
Cedric Roux
048f07f67f compilation warning removal 2017-03-24 12:07:51 +01:00
Cedric Roux
3ce5f50755 compilation warning removal 2017-03-24 12:03:56 +01:00
Cedric Roux
a3f7ceb395 compilation warning removal 2017-03-24 12:02:08 +01:00
Cedric Roux
1789b3de59 compilation warning removal 2017-03-24 12:00:58 +01:00
Cedric Roux
e82c6764f9 compilation warning removal 2017-03-24 12:00:23 +01:00
Cedric Roux
bf3a4f6464 compilation warning removal 2017-03-24 12:00:04 +01:00
Cedric Roux
d8627b5e3f compilation warning removal 2017-03-24 11:59:27 +01:00
Cedric Roux
2291f4ebec compilation warning removal 2017-03-24 11:58:01 +01:00
Cedric Roux
216cd0bf02 compilation warning removal 2017-03-24 11:56:34 +01:00
Cedric Roux
8dd8a97c34 compilation warning removal 2017-03-24 11:55:32 +01:00
Cedric Roux
11856c6b00 compilation warning removal: allocate_REs set but not used
I removed this variable entirely because it's not used.

Maybe the bug is that it's not used after being set?
To be checked and fixed at some point.
2017-03-24 11:53:34 +01:00
Cedric Roux
774452bbbb compilation warning removal
this variable does not seem to be used, to be removed?
2017-03-24 11:50:56 +01:00
Cedric Roux
4fcb6272f4 RRC Rel14
- import RRC ASN.1 defintions from the specifications
  (file openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/RRC-e10.asn)
  contrary to rel8/10, all modules have been imported, maybe it's too much
  to refine in case of problems
- deal with rel14 in fix_asn1
- all code that was for Rel10 is now for Rel10/Rel14
- some incompatible changes (mostly in naming) were resolved in favor
  of rel14, see in openair2/RRC/LITE/defs.h
- unsure about the rlc layer, some arrays have changed (values appended),
  I only changed the definition and in tests in the code, I changed
  the index limit, maybe it's not enough

Rel14 is the default compilation mode.
2017-03-23 18:06:40 +01:00
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
89f747a218 minor fixes 2017-03-23 10:40:47 +01:00
Cedric Roux
238b22e5b5 fixes for IF5
This work was done by Bruno Mongazon.
2017-03-23 09:23:07 +01:00
Cedric Roux
fe0b84ddaf fix: revert ue_eurecom_test_sfr.conf to its previous state
Keys/IDs have been inadvertently changed.
2017-03-22 12:38:03 +01:00
Elena_Lukashova
b88fec2304 Some more printouts for rank adaptation. 2017-03-21 23:15:24 +01:00
Elena_Lukashova
23109e1a82 Optimizing bler files for rank adaptation. 2017-03-21 21:06:25 +01:00
Elena_Lukashova
9d2a4717d0 Changing the bler computation and printouts for the rank adaptation in tm4.
Now it counts how many times the TBs were set to active.
2017-03-21 18:52:41 +01:00
Elena_Lukashova
6219ddc581 Rank adaptation is now an argument of the command line. 2017-03-21 15:17:42 +01:00
Calisson
9d3eed3b43 fixing ulsim 2017-03-21 15:02:20 +01:00
Elena_Lukashova
48d7a1ef3a Fixing arguments of lte_ue_measurements in pbchsim.c 2017-03-21 14:35:32 +01:00
Calisson
7685cf1811 fixing srs in msg3. now all SRS subframe configs work. 2017-03-21 14:16:19 +01:00
Cedric Roux
668d7af7d2 align variables on stack in rank_estimation_tm3_tm4
dlsim_tm4 was crashing on massive. It was a problem
of misalignment of variables. The generated code by
the compiler was using 'movdqa' which requires alignment
to 16 bytes. Let's put 32, just in case, for avx2 maybe
(maybe not necessary but should not hurt).
2017-03-21 14:12:00 +01:00
Elena_Lukashova
79c304a24a Passing Conditional Number threshold as a command line argument. -V($) 2017-03-21 12:13:17 +01:00
Elena_Lukashova
ca0d8a445e Fixing dlsch_demod_shift. 2017-03-21 12:03:23 +01:00
Calisson
98efcd5220 fixing a bug related to SRS procedures 2017-03-21 09:37:08 +01:00
Elena_Lukashova
93c1315bbd Adequate throughput computation for rank adaptation. 2017-03-21 02:13:08 +01:00
Calisson
1677e8f847 Merge remote-tracking branch 'origin/develop' into feature-218-srs 2017-03-20 17:15:26 +01:00
Calisson
e2d46f8040 adding mechanism for SRS scheduling of multiple UEs. 2017-03-20 17:13:42 +01:00
Elena_Lukashova
b596ede727 Merge remote-tracking branch 'origin/develop' into feature-59-tm4 2017-03-20 14:33:03 +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
Elena_Lukashova
b835f63956 1. There is probably a bug in generate_ue_dlsch_from_dci
for DCI format 2. Temporaryly going back to the previous
version of code.
2. Enabling rate adaptation with multiple HARQ rounds.
(no change inside the rounds).
2017-03-20 01:06:12 +01:00
Elena_Lukashova
a92ed31914 Merge branch 'develop' into feature-59-tm4 2017-03-19 15:52:45 +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
fnabet
353334f69b RLC AM Rx PDU Segment changes 2017-03-16 16:45:44 +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
fnabet
01530385f1 RLC AM fix Tx Status Report 2017-03-15 18:56:53 +01:00
Florian Kaltenberger
65f49f9ffd bugfixes to previous commit and ulsim. now srs estimaton seems to work. at least in ulsim. 2017-03-15 17:43:18 +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
gabrielC
40fa3e076c RLC AM Rx fixes 2017-03-15 16:58:54 +01:00
GabrielCouturier
18f628848c RLC AM Fix on ReTx 2017-03-15 16:54:01 +01:00
Florian Kaltenberger
b4f8219170 calibrations for 5/10/20 MHz LimeSDR 2017-03-15 16:04:42 +01:00
fnabet
bf71c6f01e RLC AM Tx Segment: fix 2017-03-15 10:10:32 +01:00
Calisson
1e193853eb WIP: adding srs channel estimation to eNB. estimation results yet to be checked. 2017-03-14 17:13:14 +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
fnabet
c1da605f6d RLC AM code cleaning 2017-03-14 10:10:36 +01:00
GabrielCouturier
cf9727c4be RLC AM fix bad assert for resegmentation 2017-03-13 19:44:52 +01:00
gabrielC
dabf833c10 RLC AM Rx Segment and Tx Status Report fixes 2017-03-13 19:41:24 +01:00
Elena_Lukashova
488933eddc Removing unnecessary minus_one and plus_one. 2017-03-13 17:04:36 +01:00
fnabet
4a331c6fb3 Merge tag '2017.w10' into bugfix-189-rlc-am-fixes 2017-03-13 16:13:07 +01:00
fnabet
3a43c08ae3 RLC AM fix RX Segment 2017-03-13 15:54:27 +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
Elena_Lukashova
21481c4a6a Adding check for the first transmission in prepare_dl_decoding_format1_1A. 2017-03-13 15:13:45 +01:00
fnabet
0e78513b5a RLC AM Tx Segment : missing data_ptr setting 2017-03-13 12:27:09 +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
Elena_Lukashova
e5908bfdaa Fixing a bug in conjch0_mult_ch1 2017-03-12 00:29:50 +01:00
Elena_Lukashova
14d927d414 Fixing TM condition for rank estimation.
the eNB_id was overwriiten by the preceding loop
and setting ue->transmission_mode = 0.
2017-03-11 19:25:15 +01:00
Elena_Lukashova
263b7aa07a Fixing typo. 2017-03-11 18:48:57 +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
Elena_Lukashova
9fd0f35134 In rank estimation rank 1 is for CLSM and OLSM, 0 is for Tx div. 2017-03-10 16:45:44 +01:00
Elena_Lukashova
112b3719e4 Merge branch 'develop' into feature-59-tm4 2017-03-10 16:42:11 +01:00
Elena_Lukashova
83a045ec83 Condition to compute Rank only for TM3, TM4. 2017-03-10 16:37:17 +01:00
Elena_Lukashova
e709933695 Fixing printouts. 2017-03-10 16:36:07 +01:00
Elena_Lukashova
132018a136 Adding Rank estimation for TM4.
Right now no feedback, only calculation.
To see the values, enable DEBUG_RANK_EST
in lte_ue_measurements.
2017-03-10 16:20:41 +01:00
Florian Kaltenberger
39c7e629fb bugfix: bundling flag was initialized after its use 2017-03-10 16:20:05 +01:00
Florian Kaltenberger
c135dd611b scheduling also UL SF 4 in TDD mode 3 2017-03-10 16:19:38 +01:00
Florian Kaltenberger
e14f3677e5 sending full rx signal to T in TDD mode 2017-03-10 16:18:49 +01:00
Rohit Gupta
02f3298a58 several fixes to previous commit. First tests in FDD with USRP and UE ok. 2017-03-10 16:18:40 +01:00
Elena_Lukashova
e704a3155c Enabling noise in the whole subframe and computing N0_total. 2017-03-10 16:16:54 +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
Florian Kaltenberger
7f24927c43 WIP: SRS configuration of PUSCH and PUCCH. No SRS detection yet. To be tested on HW 2017-03-10 12:42:04 +01:00
Cedric Roux
e6cd9873cd cleanup test setup README file 2017-03-10 12:19:29 +01:00
fnabet
0ce73b4d0e RLC AM Rx PDU Segment fixes 2017-03-09 18:08:43 +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
fnabet
7f60e38fee RCL AM: fixes on Tx resegmentation 2017-03-09 16:04:31 +01:00
gabrielC
83b311beac Merge branch 'remove_printf' into develop_integration_w10 2017-03-09 10:23:11 +01:00
gabrielC
28c009a072 Chenge LOG_I to LOG_D 2017-03-09 10:20:52 +01:00
gabrielC
212dff253f Merge remote-tracking branch 'origin/mimo_feature_ue_br' into develop_integration_w10 2017-03-09 09:49:42 +01:00
Florian Kaltenberger
19a2337c99 Merge remote-tracking branch 'origin/develop' into calib-LimeSDR
Conflicts:
	openair1/PHY/MODULATION/ofdm_mod.c
	targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp
2017-03-09 08:54:34 +01:00
Raymond.Knopp
4342595ea8 calibration (RX) for LimeSDR. Use of new API for RF gains. 2017-03-09 02:43:31 +01:00
GabrielCouturier
7c7172ca18 RLC AM fix bad pointer init in ReSegmentation 2017-03-08 17:16:30 +01:00
hbilel
305ebf5c4b rebase branch to develop 2017.w09 2017-03-08 14:57:30 +01:00
hbilel
9dd65f2801 [OAI-UE] remove unused debug-printf 2017-03-08 14:21:14 +01:00
hbilel
05fe029a62 [OAI-UE] fix in de-precoding for tm3/4 2017-03-08 13:59:49 +01:00
hbilel
3d1e01e283 [OAI-UE] llr computation clean up 2017-03-08 12:16:38 +01:00
hbilel
bb8c6b2c52 [OAI-UE] code clean up for merge 2017-03-08 12:16:38 +01:00
hbilel
3dc1963a2d [OAI-UE] MIMO fixes + disabling MIB/SIB decoding on connected mode 2017-03-08 12:16:38 +01:00
Sebastian Wagner
42b834d64c Changes for 64qam_64qam for avx2
Conflicts:
	openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c
2017-03-08 12:16:38 +01:00
hbilel
ba55fcac27 [OAI-UE] Mimo LLR computation AVX2 + fix in TM3 deprecoding 2017-03-08 12:16:38 +01:00
hbilel
ff6d41b6e8 [OAI-UE] Mimo feature 2017-03-08 12:15:02 +01:00
fnabet
b218eea839 Merge tag '2017.w09' into bugfix-189-rlc-am-fixes 2017-03-08 11:52:46 +01:00
gabrielC
ce1ac08b19 RLC AM fix for PDU Segment insertion in case of gaps 2017-03-07 18:33:14 +01:00
gabrielC
b5ab7267c2 RLC AM fix for PDU insertion in case of gaps 2017-03-07 17:51:29 +01:00
GabrielCouturier
fd5932c544 RLC AM Tx: TPollRetx Expiry fix for BO 2017-03-07 16:58:39 +01:00
Rohit Gupta
477a171fbc adding config file for TDD testing 2017-03-07 16:53:50 +01:00
GabrielCouturier
dc960a6043 RLC AM: missing SN setup in Tx Pdu Management at first Tx 2017-03-07 16:01:35 +01:00
Florian Kaltenberger
b45e9a68a8 adding config file for band 38, TM1, usrp 2017-03-07 15:53:09 +01:00
Cedric Roux
5c375d3ae8 Merge branch 'develop_integration_w09' into 'develop'
Develop integration w09

Summary of changes:
- bug fixes

See merge request !128
2017-03-06 15:29:55 +01:00
fnabet
6504013077 RLC AM : fix update of vrMS in tReordering expiry 2017-03-04 15:19:58 +01:00
fnabet
709b1fd299 RLC AM: fix TReordering expiry 2017-03-04 13:40:13 +01:00
Cedric Roux
c1e460183b Merge remote-tracking branch 'origin/nokia-fixes-w08' into develop_integration_w09 2017-03-03 15:33:20 +01:00
Cedric Roux
05f89b3922 Merge remote-tracking branch 'origin/bug-fix-if-defs' into develop_integration_w09 2017-03-03 15:33:08 +01:00
Cedric Roux
1b1270e847 Merge remote-tracking branch 'origin/feature-59-tm4' into develop_integration_w09 2017-03-03 15:32:54 +01:00
Cedric Roux
f94835becf bugfix: "if_compress" parameter not taken into account
Bug reported by Bruno Mongazon from Nokia.

"Without this line, the config file parameter is not properly stored and
the FH will always work with compression."
2017-03-03 15:25:10 +01:00
Cedric Roux
94229ca593 bugfix: = instead of ==
Bug reported by Bruno Mongazon from Nokia.
2017-03-03 15:17:00 +01:00
Elena_Lukashova
b2c57f42fc Fixing bug in modulation for TM4 64QAM. 2017-03-02 22:40:54 +01:00
fnabet
e1293616d6 Merge tag '2017.w08' into bugfix-189-rlc-am-fixes 2017-03-02 14:53:56 +01:00
fnabet
684ca32e9b RLC AM Add Log points 2017-03-02 14:51:58 +01:00
fnabet
52006fc6ea RLC AM : Add Rx PDU Segment handling 2017-03-02 10:37:33 +01:00
Elena_Lukashova
74e2cf77fa Fixing throughput computations for multiple rounds in TM4. 2017-03-01 16:43:30 +01:00
Elena_Lukashova
7d649f432b Fixing bler limits for different receivers. 2017-03-01 16:00:56 +01:00
Elena_Lukashova
2e9dfe0fbb Changing names for bler and abstraction output files
in dlsim_tm4 to distinguish from the old runs.
2017-03-01 15:33:55 +01:00
khadraou
0a46cc56a2 fixed PRACH hardcoded size 2017-03-01 10:11:07 +01:00
Elena_Lukashova
25f35fbbb4 fix: remove verbose printfs 2017-02-28 16:18:30 +01:00
Elena_Lukashova
2edbcbdf66 bugfix: fix copy/paste error
mcs1 was taken instead of mcs2 in several places.
2017-02-28 16:17:48 +01:00
Elena_Lukashova
3d8fb53073 Merge remote-tracking branch 'origin/develop' into feature-59-tm4 2017-02-28 16:03:47 +01:00
Cedric Roux
5c0f42a277 Merge branch 'develop_integration_w08' into 'develop'
Develop integration w08

Summary of changes:
- various bugs fixed
- pre-commit script for better indentation: see commit 068ce4ca55
  For the moment, each contributor has to enable the script (and install astyle) by hand.
  Maybe at some point the script will be mandatory.

See merge request !124
2017-02-27 12:08:29 +01:00
Elena_Lukashova
b1bf9db8fa Merge branch 'develop' into feature-59-tm4 2017-02-25 01:39:17 +01:00
Elena_Lukashova
2ef3dd8ff7 Adjusting power level for TM4,5,6.
Before that the scaling was aplied in precoder.
Now it is done in sqrt_rho_a and sqrt_rho_b.
For TM4 there still remains 1/sqrt(2) instead of
1/2 both at the transmitter and receievr side.
2017-02-24 23:35:30 +01:00
Elena_Lukashova
b81ee87f4d Cleaning up for SIC llrs 2017-02-24 23:33:53 +01:00
Elena_Lukashova
bf6a3b522d Removing dlsch1 from arguments of dlsch_modulation_SIC 2017-02-24 23:30:35 +01:00
Elena_Lukashova
3a7fd01f22 Fixing dump_dlsch2 2017-02-24 23:28:35 +01:00
fnabet
daa308c33a Merge tag '2017.w07' into bugfix-189-rlc-am-fixes 2017-02-24 17:15:30 +01:00
Cedric Roux
465ab00bc5 Merge remote-tracking branch 'origin/compilation-T-quickfix-w08' into develop_integration_w08 2017-02-24 15:21:06 +01:00
Cedric Roux
fa9b91ad1d Merge remote-tracking branch 'origin/pre-commit-hook' into develop_integration_w08 2017-02-24 15:18:13 +01:00
Cedric Roux
2c238010a7 Merge remote-tracking branch 'origin/enhancement-212-warning-counts' into develop_integration_w08 2017-02-24 15:17:54 +01:00
fnabet
aac9c6119d RLC AM fix in Retx PDU segment 2017-02-23 17:44:47 +01:00
Cedric Roux
60b83d84ea hotfix: pass "%s" to LOG_W to avoid compilation warnings
The warning was:

------------------------
In file included from /roux/openairinterface5g/openair2/UTIL/LOG/log.h:306:0,
                 from /roux/openairinterface5g/openair1/PHY/defs.h:54,
                 from /roux/openairinterface5g/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c:33:
/roux/openairinterface5g/openair2/UTIL/LOG/log.h: In function 'printMeas':
/roux/openairinterface5g/common/utils/T/T.h:94:26: warning: format not a string literal and no format arguments [-Wformat-security]
 #define T_ID(x) ((struct T_header *)(uintptr_t)(x))
                          ^
/roux/openairinterface5g/common/utils/T/T.h:29:22: note: in definition of macro 'T_PUT_int'
     int T_PUT_var = (val); \
                      ^
/roux/openairinterface5g/common/utils/T/T.h:269:7: note: in expansion of macro 'T_HEADER'
       T_HEADER(t); \
       ^
/roux/openairinterface5g/common/utils/T/T.h:101:76: note: in expansion of macro 'T3'
         n18,n19,n20,n21,n22,n23,n24,n25,n26,n27,n28,n29,n30,n31,n32,n,...) T##n
                                                                            ^
/roux/openairinterface5g/common/utils/T/T.h:102:16: note: in expansion of macro 'TN'
 #define T(...) TN(__VA_ARGS__)
                ^
/roux/openairinterface5g/openair2/UTIL/LOG/log.h:308:28: note: in expansion of macro 'T'
 #    define LOG_W(c, x...) T(T_LEGACY_ ## c ## _WARNING, T_PRINTF(x))
                            ^
/roux/openairinterface5g/common/utils/T/T_IDs.h:71:30: note: in expansion of macro 'T_ID'
 #define T_LEGACY_PHY_WARNING T_ID(68)
                              ^
/roux/openairinterface5g/openair2/UTIL/LOG/log.h:308:30: note: in expansion of macro 'T_LEGACY_PHY_WARNING'
 #    define LOG_W(c, x...) T(T_LEGACY_ ## c ## _WARNING, T_PRINTF(x))
                              ^
/roux/openairinterface5g/openair2/UTIL/LOG/log.h:411:9: note: in expansion of macro 'LOG_W'
         LOG_W(PHY,txt2);
------------------------

over and over.

By replacing LOG_W(PHY,txt2) by LOG_W(PHY,"%s",txt2) all the warnings
are removed.
2017-02-23 11:01:45 +01:00
gabrielC
abfeb4ef06 Fix problem in DCI decoding following dci_handling_br branch integration 2017-02-23 10:49:06 +01:00
gabrielC
c17e81b2aa Merge remote-tracking branch 'origin/develop_UE_20MHz' into develop_integration_w08
Conflicts:
	openair1/PHY/LTE_TRANSPORT/dci_tools.c
2017-02-23 09:09:01 +01:00
gabrielC
2f4fcb5ecc Merge remote-tracking branch 'origin/bugfix214_timingoffset' into develop_integration_w08 2017-02-23 08:56:51 +01:00
gabrielC
dcb48081a0 Merge remote-tracking branch 'origin/dci_handling_br' into develop_integration_w08 2017-02-23 08:54:04 +01:00
fnabet
0030635237 RLC AM Tx buffer: fix sn modulo window size access 2017-02-22 13:00:30 +01:00
hbilel
34ca9a7f93 [OAI-UE] issue#214 fix timing offset compensation 2017-02-22 11:52:01 +01:00
fnabet
b0d468c0f7 RLC AM: add retransmission and Rx status pdu 2017-02-22 11:40:55 +01:00
Florian Kaltenberger
068ce4ca55 adding a client-side pre-commit script. This script needs to be installed by every developer manually. see comments in script. 2017-02-22 09:29:33 +01:00
gabrielC
46b37aaa31 UE 20 MHz fix + remove too restrictive assert 2017-02-21 14:35:00 +01:00
Cedric Roux
e98c3e8143 report warnings to user after compilation
Let the user see how many warnings a compilation generates.
The goal is to have 0 warning, for any compiled component
of openair.
2017-02-20 12:54:46 +01:00
Cedric Roux
38771f270b Merge branch 'develop_integration_w07' into 'develop'
Develop integration w07

See merge request !116

Summary of changes:
- integration of branch tm4-fixes (feature-59-tm4 + somes fixes)
- integration of branch enhancement-199-nas-multi-ue
- integration of branch develop-realtime-lts
- integration of branch enhancement-211-snapping
- various bugfixes
2017-02-20 11:52:32 +01:00
Cedric Roux
339353a96c integration fix: have a central place of definition for clock_difftime_ns
Prior to this commit, the following command failed to build dlsim:
    ./build_oai --phy_simulators -c

Choice has been made to define it in a .h file as a static inline
function.
2017-02-20 10:53:35 +01:00
Cedric Roux
c8e642494b integration fix: protect include file
The command line to get the error was:
    ./build_oai --eNB -w EXMIMO -c
2017-02-20 10:10:00 +01:00
Cedric Roux
ea858d54fa integration fix: strerror has to be used, not perror
The command line to get the error was:
    ./build_oai --eNB -w EXMIMO -c
2017-02-20 10:09:05 +01:00
Cedric Roux
b82e7c1a88 hotfix: forgot targets/COMMON/threads_t.h in a previous commit 2017-02-17 20:19:24 +01:00
Cedric Roux
39f26e945e Merge remote-tracking branch 'origin/enhancement-211-snapping' into develop_integration_w07 2017-02-17 18:27:33 +01:00
Cedric Roux
e62f569b5d Merge remote-tracking branch 'origin/various-l2-fixes-187' into develop_integration_w07 2017-02-17 18:23:00 +01:00
Cedric Roux
f9b5dafe29 T: let it compile with C++
We now have 4 versions of T_HEADER:
 - bad quality C++ version with time
 - good quality C version with time
 - bad quality C++ version without time
 - good quality C version without time
2017-02-17 18:16:22 +01:00
Cedric Roux
603c84c700 fix warnings: fix LOG_X problems when compiling lte-softmodem
The compilation line was:
    ./build_oai --eNB -w USRP

The file openairinterface5g/cmake_targets/log/lte-softmodem.Rel10.txt
has been checked and all LOG_X (and 'msg') warnings have been fixed.
2017-02-17 18:07:06 +01:00
Cedric Roux
96dc12ccce fix warning: add missing */ 2017-02-17 18:07:06 +01:00
Cedric Roux
37bc075cb2 fix: exit if memory_read fails in the function nas_user_initialize 2017-02-17 18:07:06 +01:00
Cedric Roux
74afbf84f4 warning fix: remove pragma in LFDS
Not sure that it's correct, but those #pragma seem
to be of no use for gcc. Let's remove them
completely.
2017-02-17 18:07:05 +01:00
Cedric Roux
baeb930397 use ln -sf instead of ln -s in cmake_targets/build_oai
When rebuilding oaisim, I had a failure because the target
link already exists. The -f flag forces the link to be done.
2017-02-17 18:01:17 +01:00
Cedric Roux
053704b5c2 remove wrong comment 2017-02-17 18:01:02 +01:00
Cedric Roux
ac7c0df520 integration fix: let oaisim (S1) work again
- some cleanup
- thread names to include UE Mod_id
- arg of UE_thread_rxn_txnp4 to be struct rx_tx_thread_data again
- sync in UE_thread_rxn_txnp4 to use instance_cnt_rxtx again
- UE_thread to call itti_send_msg_to_task with UE->Mod_id + NB_eNB_INST
  instead of INSTANCE_DEFAULT again

This may break the softmodem UE, to be tested.
The most problematic thing may be the synchronization.
I don't think it will impact the processing at all,
but I won't bet my shirt on it.
2017-02-17 17:55:27 +01:00
Cedric Roux
7c11cf9646 redo commit 5805215227
git show -p 5805215227
to see what it's about
2017-02-17 14:39:00 +01:00
Cedric Roux
122953d986 redo commit 157707b042
git show 157707b042
to see what it's about
2017-02-17 14:25:26 +01:00
Anta Huang
e3186c1741 Issue #211 - enhance build script for snapping package
- build script has ability to indicate location for downloading uhd images
- one simple wrapper to set environment variables and initiate another program (supposed to be lte-softmodem)
2017-02-17 13:56:00 +01:00
Cedric Roux
f58c7b1be9 integration fix: restore enb.band7.tm1.usrpb210.conf
Many variables were changed that should not have been changed.
2017-02-17 12:41:13 +01:00
Cedric Roux
76574a1ac0 Revert "fix nettle"
This reverts commit d31634c358.

Laurent Thomas had a problem on one machine with the build_oai
way of checking for nettle.

The problem with the alternative solution of including nettle/bignum.h
is that it is very unclear.

The problem with nettle is that the file nettle/config.h does not
exist for version 2. It was introduced in version 3.

We want to support both versions, but there is an API incompatibility.
So we need an #if #else mechanism.

The file nettle/bignum.h is present in both versions 2 and 3 and it
includes nettle/version.h in the version 3.

So by including this file, we can check for the existence of
NETTLE_VERSION_MAJOR (that comes from nettle/config.h) in the
code.

But as you can see, the reasoning is way too complex.

So it's better to keep the check in cmake_targets/CMakeLists.txt.

As long as we support version 2 this will be the way to go.

It is possible to force a given version in specific non-generic
customized environments.
2017-02-17 12:29:31 +01:00
Chia-Yu Chang
1b417979e9 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into various-l2-fixes-187
Conflicts:
	openair1/PHY/LTE_TRANSPORT/if4_tools.c
	targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c
	targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h
	targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.lo.conf
	targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf
	targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.usrpb210.conf
	targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.25PRB.oaisim.conf
	targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.oaisim.conf
2017-02-17 12:01:26 +01:00
gabrielC
eadcba956e Merge branch 'develop-realtime-lts' into develop_integration_w07
Conflicts:
	targets/RT/USER/lte-enb.c
	targets/RT/USER/lte-softmodem.c
	targets/RT/USER/lte-ue.c
2017-02-17 11:51:03 +01:00
pyroclaste
3dd1faadd4 Add the compression for IF5 and RTT measurements for FH and RF 2017-02-17 11:38:44 +01:00
Cedric Roux
10a50563eb Merge remote-tracking branch 'origin/bugfix-exmimo' into develop_integration_w07 2017-02-17 10:08:48 +01:00
Cedric Roux
9a5d17d967 bugfix: do not allocate memory
Memory was allocated which was "lost" because the
address of the block was put in a pointer that is
overwritten just after.

Discussing with Elena, the current commit is the correct
way to do things.
2017-02-16 15:37:56 +01:00
Cedric Roux
9535e7a276 bugfix: make some functions thread safe
Those functions modify a global char array (a string).

Let's pass a buffer to those functions, so that it's
thread safe. The caller has been modified, with hopefully
a buffer big enough (still bigger than what was there before,
so should not break more than it did).
2017-02-16 15:35:07 +01:00
fnabet
e7e48144e1 Remove RLC header size from UE L2 buffer occupancy 2017-02-16 15:03:26 +01:00
Cedric Roux
31c85b22ea integration fix: remove ^M from file
command run:
    dos2unix openair1/SIMULATION/TOOLS/taus.c
2017-02-16 14:35:19 +01:00
Cedric Roux
70c84ef835 integration fix: put correct licensing information 2017-02-16 14:19:04 +01:00
Cedric Roux
ba6d140445 integration fix: put correct licensing information 2017-02-16 14:16:29 +01:00
Cedric Roux
bcfeb7af32 integration fix: put correct licensing information 2017-02-16 14:04:56 +01:00
Cedric Roux
36bd7e1d75 integration fix: remove comment 2017-02-16 14:01:15 +01:00
Cedric Roux
1f3b1ff8ff integration fix: remove XER_PRINT from RRC 2017-02-16 12:53:25 +01:00
Cedric Roux
f92bd91544 Merge branch 'enhancement-199-nas-multi-ue' into develop_integration_w07
Conflicts:
	openair1/SCHED/phy_procedures_lte_ue.c
	targets/RT/USER/lte-softmodem.c
	targets/SIMU/USER/oaisim.c
	targets/SIMU/USER/oaisim_functions.c
2017-02-16 12:14:26 +01:00
laurent
be0541aa8c remove a race 2017-02-16 11:38:38 +01:00
Laurent
6f6f9acb52 merge develop; add option to set affinity in UE 2017-02-16 11:34:02 +01:00
fnabet
fbe109a66c RLC/MAC UE interface changes for Tx and adapt to eNB 2017-02-16 11:26:37 +01:00
Cedric Roux
6397e66c29 bugfix: fix PCDP inst (again)
This commit follows 7d9945e884.

lte-softmodem UE in S1 and lte-softmodem UE in noS1 modes behave
differently here.

This commit fixes the issue for thoses cases.

Other cases (eNB S1, eNB noS1, oaisim S1/noS1) have to be checked.
2017-02-16 11:23:24 +01:00
Cedric Roux
63c0ed7042 fix UE default configuration file
- fix OPc key
- clear EHPLMN_LIST, UE does not start the RA procedure when set
  to be fixed
2017-02-16 10:10:42 +01:00
Cedric Roux
7d9945e884 bugfix: fix PDCP inst
This commit is a continuation of 614d6bbe2a
(ue_ip: use correct instance).

Now in openair2/NETWORK_DRIVER/UE_IP/common.c the 'inst' is not
forced to 1 anymore, we take the value 'pdcph_p->inst'.

It turns out that 'pdcph_p->inst' is 0 instead of 1 when we
run lte-softmodem as an UE.

So let's modify PDCP to set 'inst' to 1 where it was set to 0 for
the UE softmodem case, and skip the places where it is reset to 0,
still for the UE softmodem case.

This may break things, I am not sure.
2017-02-15 17:21:02 +01:00
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
Florian Kaltenberger
7c4630057f fixing a wrongly placed } for correct exmimo initialization 2017-02-15 14:28:07 +01:00
hbilel
bfa8a28ccb [OAI-UE] fix pucch format2 regression 2017-02-14 18:31:57 +01:00
Laurent
23c7547698 remove debug traces 2017-02-14 18:24:31 +01:00
Laurent
d65d91ddcc gcc warning fix 2017-02-14 18:18:34 +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
gabrielC
4ecdfa05f1 UE logging, Replace LOG_I by LOG_D 2017-02-14 16:34:56 +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
gabrielC
2dc9dc0316 Merge remote-tracking branch 'origin/tm4-fixes' into develop_integration_w07
Conflicts:
	openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
	openair1/PHY/LTE_TRANSPORT/power_control.c
	openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
	targets/SIMU/USER/oaisim_functions.c
2017-02-14 15:25:37 +01:00
fnabet
1a591da2bc Merge tag '2017.w06' into bugfix-189-rlc-am-fixes 2017-02-14 15:15:19 +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
gabrielC
9ecae1837c [OAI-UE] fix ack/nack reporting on pusch 2017-02-13 18:15:07 +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
Florian Kaltenberger
aefb958a6f tx calibration for LimeSDR band 13 2017-02-13 17:12:10 +01:00
hbilel
5805215227 [OAI-UE] fix freq offset correction during cell scan 2017-02-13 16:46:28 +01:00
hbilel
e88d1e739e [OAI-UE] new pucch procedure to support all formats 2017-02-13 16:15:47 +01:00
Florian Kaltenberger
d930378e13 calibration for new firmware/gateware 2017-02-13 16:05:40 +01:00
Raymond Knopp
cd6ac4529d addition of TX portion of pucch2a/b 2017-02-13 15:27:53 +01:00
Cedric Roux
6ba07564af fix: do not modify dlsch[0]->g_pucch
This is done in another function.
2017-02-13 15:12:08 +01:00
Cedric Roux
8d7c06b194 cleanup: setting status to ACTIVE is done below
Don't do it twice.
The logic is: if ndi changed or it's a first tx then round=0
and later: if round==0 then status=ACTIVE
2017-02-13 15:10:00 +01:00
Cedric Roux
4d8e41100a fix: check that dlsch[0] is not NULL
Note: the dci formats 2, 2A and 1E were not checked,
this has to be done. dlsch[0] and dlsch[1] (when
applicable) must be checked somehow.
2017-02-13 15:08:20 +01:00
Cedric Roux
82403ed1dd cleanup: comments "Needs to be checked" are not needed 2017-02-13 15:07:06 +01:00
Laurent
fa432bdd26 optim measurement function checkcpu() 2017-02-13 13:58:09 +01:00
Cedric Roux
b2b1dc9f18 Merge branch 'develop_integration_w06' into 'develop'
Develop integration w06

See merge request !110
2017-02-13 12:01:13 +01:00
Florian Kaltenberger
442bb79bd0 Merge remote-tracking branch 'origin/develop' into calib-LimeSDR
Conflicts:
	openair1/PHY/MODULATION/ofdm_mod.c
2017-02-13 11:17:28 +01:00
Cedric Roux
7fd46420d9 minor: fix log (from LOG_D to LOG_I) 2017-02-13 11:16:38 +01:00
Cedric Roux
cd1bd0467c test setup v2: minor: print commands before execution 2017-02-13 10:30:05 +01:00
Xenofon Foukas
9e55f8ebcd Fixed bug in the establishment of DRBs 2017-02-11 17:57:11 +02:00
Cedric Roux
0bcee1e40e fix: set mcs, TBS and Qm only if round == 0
Not sure at all about this one, seemed necessary to me,
but I don't get the full logic in there.

To be refined.
2017-02-11 12:34:05 +01:00
Cedric Roux
8f7b6391a5 fix: enough to do it once
This is done a bit above in the code, no need to do it twice.
2017-02-11 12:31:45 +01:00
Cedric Roux
c5f400e9d3 fix: do not access array before check 2017-02-11 12:25:46 +01:00
Cedric Roux
fc46dcff36 fix format 1A DCI management
I am not sure this is enough. To be refined.
2017-02-11 12:23:05 +01:00
Cedric Roux
80f47817d9 fix: warn if no PDSCH active
I doubt the case should happen. If it does, let's print an
error, will ease debugging.
2017-02-11 12:21:05 +01:00
Cedric Roux
a75cfd9073 fix: set default value of nb_rb
Not sure if necessary, but better do it.
2017-02-11 12:20:15 +01:00
Cedric Roux
9bf108c227 Revert "Merge remote-tracking branch 'origin/calib-LimeSDR' into develop_integration_w06"
This reverts commit ce14050bb4, reversing
changes made to 0ada1e9e32.
2017-02-10 17:32:26 +01:00
Laurent
012d333c8e tune USRP/USB packet size 2017-02-10 17:08:28 +01:00
Cedric Roux
94e039ac87 Merge remote-tracking branch 'origin/fix-if4p5' into develop_integration_w06
Conflicts:
	openair1/PHY/LTE_TRANSPORT/prach.c
	targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
2017-02-10 14:59:39 +01:00
Younes
91e12a9724 Fix if4p5 2017-02-10 14:51:43 +01:00
Cedric Roux
2bf1180884 Merge remote-tracking branch 'origin/feature-68-enb-agent' into develop_integration_w06
Conflicts:
	openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue.c
2017-02-10 12:22:46 +01:00
Cedric Roux
ce14050bb4 Merge remote-tracking branch 'origin/calib-LimeSDR' into develop_integration_w06
Conflicts:
	openair1/PHY/MODULATION/ofdm_mod.c
2017-02-10 11:50:31 +01:00
Cedric Roux
0ada1e9e32 Merge remote-tracking branch 'origin/oaisim-rru' into develop_integration_w06
Conflicts:
	openair2/RRC/LITE/rrc_UE.c
2017-02-10 11:36:06 +01:00
Cedric Roux
ae674104b3 Merge remote-tracking branch 'origin/various-l2-fixes-187' into develop_integration_w06 2017-02-10 11:21:51 +01:00
Laurent
b9e03cf251 fix usrp thread priority 2017-02-09 19:17:28 +01:00
Elena_Lukashova
b31282ae30 Merge branch 'develop' into feature-59-tm4 2017-02-09 18:03:16 +01:00
laurent
3c191c26f3 fix BCH tracking 2017-02-09 17:46:04 +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
Navid Nikaein
80eaec1d5c fix the protobuf installation under ubuntu 16.04 2017-02-09 09:23:13 +01:00
laurent
51b23b4061 merge latest develop, enhance real time, set back BCH tracing in UE as in develop branch 2017-02-08 21:19:10 +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
Navid Nikaein
5c09741fac Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into various-l2-fixes-187 2017-02-08 14:51:35 +01:00
Navid Nikaein
7e13688e80 fix again the compilation issue with flexran 2017-02-08 14:51:25 +01:00
Navid Nikaein
6b81ddf611 fix the compilation issue with flexran 2017-02-08 14:41:07 +01:00
Florian Kaltenberger
ce465e503a applying last dlsim fix to dlsim_tm4 2017-02-08 12:03:41 +01:00
Florian Kaltenberger
d3b4251053 yet another bugfix for dlsim 2017-02-08 11:36:48 +01:00
Florian Kaltenberger
b44c49bc30 adjusting power levels in alamouti receiver and dlsim. now TM2 dlsim tests pass again.
Conflicts:
	openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
	openair1/PHY/impl_defs_top.h
2017-02-08 11:10:37 +01:00
Raymond Knopp
4661138d87 protection in case of false DCI 2017-02-07 16:01:27 -08:00
fnabet
d3af6f1f36 Renaming or removing some Tx RLC AM fields 2017-02-07 10:47:47 +01:00
Florian Kaltenberger
e0b8998def fixing bug in PDSCH power allocation for TM2
Conflicts:
	openair1/PHY/INIT/lte_init.c
	openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
	openair1/PHY/LTE_TRANSPORT/power_control.c
2017-02-07 10:02:49 +01:00
fnabet
39bdc2bce8 fix Tx Status PDU 2017-02-06 16:29:01 +01:00
gabrielC
ab2c1fcc8e fix TStatus Prohibit 0ms 2017-02-06 14:55:50 +01:00
Elena_Lukashova
0cd250bc50 1. Fixing remaining bugs form merge. Both simulators pass all the test.
2. Adding dlsch_encoding_SIC, where the fisrt argument is UE structure.
3. Adding general test cases for dlsim_tm4 simulator. 015110.
2017-02-06 14:55:21 +01:00
Elena_Lukashova
d1d4bb9f0c Merge branch 'feature-59-tm4' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-59-tm4 2017-02-06 12:00:24 +01:00
Xenofon Foukas
274030c4d5 Merge remote-tracking branch 'origin/develop' into feature-68-enb-agent 2017-02-06 12:29:53 +02:00
fnabet
483822d427 Merge tag '2017.w05' into bugfix-189-rlc-am-fixes 2017-02-06 11:14:40 +01:00
Raymond Knopp
bb5ee76ad8 changes in oaisim to support RRU + fronthaul. minor bugs corrected in UE. 2017-02-05 14:31:00 -08:00
Xenofon Foukas
31dde6129c Fixed various FlexRAN-related compilation warnings 2017-02-05 20:00:57 +02:00
Xenofon Foukas
8250ecd794 Added info required for stability and fairness of remote scheduler 2017-02-05 19:54:14 +02:00
Elena_Lukashova
024af3e730 Merge branch 'feature-59-tm4' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-59-tm4 2017-02-03 22:21:44 +01:00
Xenofon Foukas
0e687fb765 Fixed bug related to the reporting of timing advance to the controller that severely dropped the performance of the remote scheduler 2017-02-03 19:39:47 +02:00
fnabet
79242aaf54 RLC AM Tx changes 2017-02-03 17:02:42 +01:00
Florian Kaltenberger
41a261266a fixing some bugs 2017-02-03 16:17:52 +01:00
Elena_Lukashova
883310d88d Adding standard test cases for dlsim_tm4. test case number is 015110.
All the test pass.
2017-02-03 12:36:16 +01:00
Florian Kaltenberger
358e6926ca initializing dlsch_SI and dlsch_RA in dlsim.c 2017-02-02 18:18:16 +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
Xenofon Foukas
a3427bf85b Bug fixes for proper reporting of HARQs to the controller 2017-02-02 17:51:58 +02: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
Raymond Knopp
d141195ea3 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop 2017-02-01 23:18:10 -08:00
Raymond Knopp
90cb9d6cb8 adding RRU/Fronthaul functionality to oaisim 2017-02-01 23:17:54 -08:00
Laurent
094ac2f3ea merge with head of branch 2017-02-01 15:03:57 +01:00
Laurent
00ebfbb0bc fix merge compilation 2017-02-01 15:00:01 +01:00
Laurent
9f33d0904b merge develop 2017-02-01 13:08:35 +01:00
Cedric Roux
163c37a5a3 bugfix: return error in 'emm_msg_encode' in case of failure 2017-02-01 12:17:39 +01:00
Navid Nikaein
0a91243ca5 merge branch various-l2-fixes with the develop branch 2017-02-01 11:52:53 +01:00
Xenofon Foukas
6d6e1c8687 Stability improvements for remote real-time control 2017-01-31 19:15:51 +02:00
fnabet
5551c5e596 Merge tag '2017.w04' into bugfix-189-rlc-am-fixes 2017-01-30 18:17:14 +01:00
fnabet
66b93704e2 RLC AM fix poll criteria 2017-01-30 18:16:16 +01:00
Elena_Lukashova
90fbbe7ef4 Merge branch 'feature-59-tm4' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-59-tm4 2017-01-30 15:16:09 +01:00
Elena_Lukashova
a51c30f459 Merge branch 'develop' into feature-59-tm4
dlsim_tm4 works fine.
dlsim has a bug in llr processing after llr computations (see XFORMS).
2017-01-30 13:37:24 +01:00
Xenofon Foukas
6337bc77b1 Merge remote-tracking branch 'origin/develop' into feature-68-enb-agent 2017-01-30 14:24:14 +02:00
Xenofon Foukas
f1d4f4b93c Changed behavior of API for PUCCH power reports 2017-01-30 14:23:19 +02:00
Raymond Knopp
02148c7950 refit for USRP (control of DSP cordic), no more trx_stop during synchronization 2017-01-29 16:15:08 -05:00
Raymond Knopp
afb60b8500 initial LMS7002M register configuration. modifications for lte-ue and rf_device to use LimeSDR. 2017-01-28 17:32:16 -05:00
Xenofon Foukas
9224d36176 Fixed bug that prohibited 2 UEs to be scheduled at the same time 2017-01-27 19:19:17 +02: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
Florian Kaltenberger
b9407c40cf adding missing file 2017-01-27 15:31:39 +01:00
Anta Huang
471a7d7d10 revert the value of the aggregation 2017-01-27 10:49:04 +01:00
Elena_Lukashova
b98bb25fba Merge branch 'feature-60-tm4-fork' into feature-59-tm4
1. TM4 works on dlsim_tm4.c with full HARQ support for both PIA and SIC.
2017-01-27 10:36:10 +01:00
Anta Huang
c84f68cefc fix the issue with RAN sharing 2017-01-26 18:43:05 +01:00
Elena_Lukashova
e88561e90d copying dlsim.c to dlsim_tm4.c 2017-01-26 10:51:29 +01:00
Xenofon Foukas
974e5beebc Harmonized FlexRAN scheduler with MAC changes for support of multiple UEs 2017-01-25 20:02:38 +02:00
Elena_Lukashova
60eddd2c8f Fixing write_output arguments in dlsim_tm4.c 2017-01-25 17:42:04 +01:00
Elena_Lukashova
a33a3ead22 1.Fixing the bug in lte_ue_measuments.c for rank indicator.
2. Fixing the arguments in the dump_dlsch2.
2017-01-25 17:21:56 +01:00
fnabet
26d99fae5d add changes for Tx Status PDU report 2017-01-25 17:06:37 +01:00
Xenofon Foukas
422c06c932 Merge remote-tracking branch 'origin/develop' into feature-68-enb-agent 2017-01-25 16:18:44 +02: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
Frédéric Leroy
8ae72d1cf1 refactor(conf2uedata): put display out of build 2017-01-25 13:29:48 +01:00
Frédéric Leroy
e2dc453b62 fix(conf2uedata): fix missing extern in header 2017-01-25 13:29:48 +01:00
Frédéric Leroy
292535fe06 refactor(conf2uedata.c): rewrite main() and add parse_config_file() 2017-01-25 13:29:48 +01:00
Frédéric Leroy
804595d483 style(conf2uedata.c): rewrite main() for readability 2017-01-25 13:29:48 +01:00
Frédéric Leroy
33b2d11fc2 fix(conf2uedata): clarify error message when config file does not exists 2017-01-25 13:29:48 +01:00
Frédéric Leroy
fe2193ba75 fix .ue* filenames in scripts and documentation
TODO add option to conf2uedata and adapt script
2017-01-25 13:29:48 +01:00
Imad ALAWE
17d155325a feat: add conf2uedata tool for generating .*.nvram
This patch adds the conf2uedata tool for generating .ue.nvram* .ue.emm.nvram*
and .usim.nvram* files from a textual configuration file.

The configuration file define most usefull values like plmns, mnc, mcc, msin, K,
OPc for several users.
The files generated will always ends with a number corresponding to the user
entry in the configuration file.

This breaks oai5g because other script have not be updated for using
conf2uedata.
This breaks also the at_nas_ue command.

Examples of configuration files are in openair3/NAS/TOOLS/
2017-01-25 13:29:48 +01:00
Frédéric Leroy
c4707bd8b7 UE: fix nvram_data load filename 2017-01-25 13:29:10 +01:00
Frédéric Leroy
b43c6cbfdd nas_ue_task: add support for multiple UE 2017-01-25 13:29:10 +01:00
Frédéric Leroy
8bc36c3b96 UE/EMM: move emm_nvram filename to nas_user_t 2017-01-25 13:29:10 +01:00
Frédéric Leroy
260e696c8b UE: move nvram data filename to nas_user_t 2017-01-25 13:29:10 +01:00
Frédéric Leroy
5fc045644c UE/USIM/API: fix interface for storing usim_data 2017-01-25 13:29:10 +01:00
Frédéric Leroy
45fccb0203 UE/API/USIM: move hex functions to common/utils.c 2017-01-25 13:29:10 +01:00
Frédéric Leroy
9af3599153 UE: add nas_user_api_id_initialize() function 2017-01-25 13:29:10 +01:00
Frédéric Leroy
e36aee0b7f UE: factorize calloc() calls and exit on failure 2017-01-25 13:29:10 +01:00
Frédéric Leroy
dcf35b2af1 UE/EMM: fix emm_proc_lowerlayer_* prototype 2017-01-25 13:27:43 +01:00
Frédéric Leroy
5367d5dc3f UE/EMM: move _lowerlayer_data to nas_user_t 2017-01-25 13:27:43 +01:00
Frédéric Leroy
1ca4d551b8 UE: review and annotate code with FIXME 2017-01-25 13:27:43 +01:00
Frédéric Leroy
8d34217ce4 UE: add user instance to itti messages 2017-01-25 13:27:43 +01:00
Frédéric Leroy
556d5a65e9 UE/*: exit on error 2017-01-25 13:24:30 +01:00
Frédéric Leroy
fcf2444ee1 UE/EMM: remove redondant ueid in prototypes 2017-01-25 13:24:30 +01:00
Frédéric Leroy
64e296ed67 UE/API/USER: remove fd from nas_user_t 2017-01-25 13:24:30 +01:00
Frédéric Leroy
38d7adc7e3 UE/*: fix ueid = 0 2017-01-25 13:24:30 +01:00
Frédéric Leroy
c7a36ec6d2 UE/EMM/LowerLayer: move ueid to nas_user_t 2017-01-25 13:24:30 +01:00
Frédéric Leroy
e6daacf7ea UE/API/USER: move _user_api_*_buffer to user_api_id_t 2017-01-25 13:24:30 +01:00
Frédéric Leroy
a99e1a95af API/USER: move _user_api_id to nas_user_t 2017-01-25 13:24:30 +01:00
Frédéric Leroy
53fa94785a UE/EMM: remove extern definitions for timers 2017-01-25 13:24:30 +01:00
Frédéric Leroy
5ab2fccf2f UE/API/USER: rename _user_data to user_at_commands_t and move it to nas_user_t 2017-01-25 13:23:18 +01:00
Frédéric Leroy
26538bb9e2 UE/API/USIM: move OP to usim_keys_t 2017-01-25 13:23:18 +01:00
Frédéric Leroy
5b90bcbd25 UE/EMM/SAP: fix misuse of extern for emm_proc_plmn_selection_end() and emm_proc_status() 2017-01-25 13:21:50 +01:00
Frédéric Leroy
b33b4df006 UE/API: rename _usim_api_data to usim_sqn_data and move it to usim_data 2017-01-25 13:21:50 +01:00
Frédéric Leroy
ec889250a5 UE/API: remove old Makefiles 2017-01-25 13:20:21 +01:00
Frédéric Leroy
c875b44958 UE/API/USIM: move _usim_api_k to usim_keys_t 2017-01-25 13:19:39 +01:00
Frédéric Leroy
60032f57b4 UE/EMM: move _emm_attach_data to emm_data_t 2017-01-25 13:12:43 +01:00
Frédéric Leroy
289f1ea971 UE/EMM: move _emm_detach_data to emm_data_t 2017-01-25 13:12:43 +01:00
Frédéric Leroy
46438c7cd9 UE/ESM: move _default_eps_bearer_context_data to nas_user_t 2017-01-25 13:12:20 +01:00
Frédéric Leroy
404c346182 UE: rename _nas_user_data to at_response and move it to nas_user_t 2017-01-25 13:12:20 +01:00
Frédéric Leroy
607f0ca377 UE: remove _nas_user_context from comments 2017-01-25 13:12:20 +01:00
Frédéric Leroy
83e1dc9ed0 UE: move _nas_user_nvdata to nas_user_t 2017-01-25 13:12:20 +01:00
Frédéric Leroy
9a33bca200 UE: move _nas_user_context to nas_user_t 2017-01-25 13:12:20 +01:00
Frédéric Leroy
ef05c1d900 UE/EMM: move static T34XX timers to emm_data_t 2017-01-25 13:12:20 +01:00
Frédéric Leroy
491f299bf2 UE/EMM: move _security_data to nas_user_t 2017-01-25 13:12:20 +01:00
Frédéric Leroy
5899af2efd UE/EMM: move _authentication_data to nas_user_t 2017-01-25 13:12:20 +01:00
Frédéric Leroy
576bbd252c UE/EMM: move _usim_data to nas_user_t 2017-01-25 13:12:20 +01:00
Frédéric Leroy
7340b5e071 UE/EMM: move _plmn_list to nas_user_t 2017-01-25 13:11:30 +01:00
Frédéric Leroy
2d7f557ae9 UE/EMM: fix buggy condition in IdleMode.c 2017-01-25 13:10:39 +01:00
Frédéric Leroy
5665b05c7c UE/EMM: move _emm_data to nas_user_t 2017-01-25 13:08:58 +01:00
Frédéric Leroy
809be889a7 UE/ESM: move _esm_ebr_data to nas_user_t 2017-01-25 13:08:19 +01:00
Frédéric Leroy
f99e5e1ff0 UE/ESM: remove useless #if directive in esm_ebr.c 2017-01-25 13:08:19 +01:00
Frédéric Leroy
84fa851dfa UE/ESM: use static buffer per UE to allow reentrancy in esm_sap.c 2017-01-25 13:08:19 +01:00
Frédéric Leroy
7ff4939da6 UE/EMM/SAP: move _emm_fsm_status to nas_user_t 2017-01-25 13:08:19 +01:00
Frédéric Leroy
73937668f0 UE/ESM: move _esm_pt_data to nas_user_t 2017-01-25 13:08:19 +01:00
Frédéric Leroy
e6b5e1c34d UE: fix at_nas_ue compilation 2017-01-25 13:08:19 +01:00
Frédéric Leroy
844a8af418 UE/ESM: move _esm_data to nas_user_t 2017-01-25 13:08:19 +01:00
Frédéric Leroy
55364a8860 UE/ESM: fix esm_pt_start_timer callback 2017-01-25 13:08:19 +01:00
Frédéric Leroy
223247ceb0 UE/EMM: add nas_user_t parameter to emm_sap_send
Surprisingly, it touches every part of openair3, and most of the prototype.
Moreover, a special attention have been put to callback review.
However, there are still places to fix or review indicated by FIXME
2017-01-25 13:08:19 +01:00
Frédéric Leroy
4742178aee UE/ESM: Make _esm_data a pointer instance
This patch adds esm_data_t parameter to ESM functions.
This fixes a bug where the old _esm_data was redefined in all .o

Signed-off-by: Frédéric Leroy <frederic.leroy@b-com.com>
2017-01-25 13:06:35 +01:00
Frédéric Leroy
d4de8aaf0f UE: use nas_user_t in nas_* function prototype
This patch merely adds a "user" object in all nas_* functions.
This don't move any data structure.
It allows next patches to be nicely split.

Signed-off-by: Frédéric Leroy <frederic.leroy@b-com.com>
2017-01-25 13:06:35 +01:00
Frédéric Leroy
ee82aed182 UE: move _nas_proc_data to nas_user_t struct 2017-01-25 13:06:35 +01:00
Frédéric Leroy
2ee6ae11df UE: create a user and move user_fd into the nas_user_t struct 2017-01-25 13:06:13 +01:00
Frédéric Leroy
7c8dbbdb25 UE: introduce the nas_user_t type in user_defs.h 2017-01-25 13:06:13 +01:00
Frédéric Leroy
2d8cf88884 openair2/RRC/LITE: remove fixed ue_mod_id = 0 2017-01-25 13:06:13 +01:00
Frédéric Leroy
b4cbddb970 UE: move nas_ue_task.h from openair2 to openair3/NAS/UE 2017-01-25 13:06:13 +01:00
Frédéric Leroy
3835f10659 UE/ESM: move esm_indication_callback_t from openair2 to esm_ebr.h 2017-01-25 13:06:13 +01:00
Frédéric Leroy
3df061b540 UE/EMM: move emm_indication_callback_t from openair2 to emm_main.h 2017-01-25 13:06:13 +01:00
Xenofon Foukas
d0476cb02b Fixed various bugs related to scheduling using agent 2017-01-24 17:39:44 +02:00
fnabet
b77694e89c main AM RX process PDU changes 2017-01-19 11:40:03 +01:00
Navid Nikaein
fdbab0e856 fix the aggregation format for dump_CCE_table 2017-01-16 18:31:45 +01:00
Navid Nikaein
97db12c9f2 better setting of aggregation level as a function of cqi and bw 2017-01-15 20:28:07 +01:00
Laurent
396d59ff22 merge last develop 2017-01-11 23:07:22 +01:00
laurent
d31634c358 fix nettle 2017-01-07 08:23:50 +01:00
LTS
59d0cf1c54 fix T macro calls 2017-01-03 14:26:17 +01:00
laurent
2612df9ef2 after tests 2016-12-29 10:09:13 +01:00
laurent
3b44919d0b better performance measurements 2016-12-27 15:48:56 +01:00
laurent
cedde4ad1f realtime for UE 2016-12-26 21:19:26 +01:00
Elena_Lukashova
3b9869187b Adding some printouts for PIA 2016-11-28 11:36:50 +01:00
Elena_Lukashova
29d6400210 Optimizing printputs for PIA recever 2016-11-27 18:14:27 +01:00
Elena_Lukashova
ad9a246043 Adding HARQ support for PIA detection. 2016-11-27 17:34:23 +01:00
Elena_Lukashova
afe698db10 Adding retransmission statistics. 2016-11-25 17:17:03 +01:00
Elena_Lukashova
bea768660b Fixing bug in dlsim.c for LLR updates for SIC receiver. 2016-11-25 16:26:30 +01:00
Elena_Lukashova
8cfd5f29f6 Adding spatial low, medium and high correlation matrices for 2x2
EPA channel model. -gV, -gW, -gX.
2016-11-24 15:00:14 +01:00
Elena_Lukashova
5869ec9633 Modifying names of output files for updated CSI. 2016-11-22 23:25:18 +01:00
Elena_Lukashova
7a6ef377b5 Fixing a bug in dlsch_demodulation.c for llr calls. 2016-11-22 00:30:08 +01:00
Elena_Lukashova
8cb78dc4d5 Adding the updated CSI option for retransmission of TB1 in TM4. Pass -U from the command line to enable. 2016-11-21 22:18:21 +01:00
Elena_Lukashova
d9b32975c9 Fixing some printouts into .csv file for TM4. 2016-11-19 14:20:54 +01:00
Elena_Lukashova
6fe8c9acec Implementing PUSCH precoding option for the TB1 retransmission in TM4.
The independent retransmission of TB1 will take data from the last PUSCH
report, when both TB were active and keep it for all the retransmission
rounds.
Now the TPMI for the retransmissions of TB1 is passed from the command
line with -K(tpmi): -K0 for Alamouti, -K5 for PUSCH column1 , etc.
2016-11-19 01:10:16 +01:00
Elena_Lukashova
22609539b0 Fixing DCI overwritinng during retransmissions.
Modifying some printouts into the file.
2016-11-16 23:15:26 +01:00
Elena_Lukashova
9c65225869 Full Support for TM4 HARQ, excpept for PUSCH precoder at this moment. 2016-11-16 16:20:00 +01:00
Elena_Lukashova
630e39aea3 Intermediate commit. Adding HARQ support for SIC receiver. Changes in dci_tools.c to map TB to CW in a proper way.
Enable different options for TB1 retransmissions. Needs further improvements.
2016-11-09 00:55:57 +01:00
Elena_Lukashova
64116b90e1 Adding HARQ support for TM4. No fallback to Alamouti yet.
Counting for the number of 2CWs or 1CW retransmissions.
Adding corresponding changes to the phy_scope.
2016-10-23 21:38:58 +02:00
Florian Kaltenberger
3e81e8c86b Merge remote-tracking branch 'origin/develop' into feature-59-tm4
Conflicts:
	openair1/PHY/INIT/lte_init.c
	openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c
	openair1/PHY/LTE_TRANSPORT/dci_tools.c
	openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
	openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
	openair1/PHY/LTE_TRANSPORT/proto.h
	openair1/PHY/MODULATION/slot_fep.c
	openair1/PHY/TOOLS/lte_phy_scope.c
	openair1/SCHED/phy_procedures_lte_eNb.c
	openair1/SIMULATION/LTE_PHY/dlsim.c
2016-10-06 21:56:06 +02:00
Florian Kaltenberger
f62063276a timing measurement fixes 2016-09-30 16:23:49 +02:00
lukashov
e202953ccb 1.Fixing llr scaling for TM1 and TM2 in dlsch_demodulation.c
2.Fixing modulation for TM2 in dlsch_modulation.c
The branch now passes dlsim tests.
2016-09-21 11:51:16 +02:00
lukashov
54bce4155c Merge branch 'develop' into feature-59-tm4
Conflicts:
	openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
2016-09-15 14:33:49 +02:00
lukashov
856bb3abe9 Fixing previous commit. 2016-09-15 13:51:19 +02:00
lukashov
577d62c63a Changing round trial conditions in dlsim. 2016-09-10 11:55:14 +02:00
lukashov
5fda011043 1. Rician channel now operates with AoA 45 degrees.
2. Fixed a bug for HARQ rounds for TM1 frequency selective with PCE.
2016-09-05 12:36:09 +02:00
Florian Kaltenberger
ecdf87f1ea Merge branch 'enhancement-16-tm_rrc_reconfig' into feature-59-tm4 2016-08-29 11:25:01 +02:00
Florian Kaltenberger
17a828e80f Merge branch 'enhancement-16-tm_rrc_reconfig' into feature-59-tm4 2016-08-23 15:31:46 +02:00
Florian Kaltenberger
b635612305 Merge branch 'enhancement-16-tm_rrc_reconfig' into feature-59-tm4 2016-08-23 11:08:44 +02:00
Florian Kaltenberger
f7989c5ce9 adding scheduling for TM4 (fallback to Alamouti for the moment) 2016-08-23 10:41:28 +02:00
Florian Kaltenberger
c2e106fe86 Merge branch 'enhancement-16-tm_rrc_reconfig' into feature-59-tm4 2016-08-22 10:12:56 +02:00
Florian Kaltenberger
7098429e3a Merge branch 'enhancement-16-tm_rrc_reconfig' into feature-59-tm4
Conflicts:
	openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
	openair2/RRC/LITE/rrc_eNB.c
	targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.usrpb210.conf
2016-08-19 16:12:36 +02:00
Florian Kaltenberger
4d49b5d22b Merge branch 'develop' into feature-59-tm4 2016-08-19 11:33:30 +02:00
lukashov
ce15e0e97b Fixing warning and changing target precission to 10^(-2). 2016-07-08 10:49:53 +02:00
lukashov
8cc39130e0 Now dlsim computes throughput for both streams. 2016-07-08 01:46:54 +02:00
lukashov
4e8e707951 Some more clean up + adding second option for a precoder. 2016-07-07 16:44:36 +02:00
lukashov
aa69c550e3 A bit of clean-up. 2016-07-07 14:26:00 +02:00
lukashov
b8e9e188c1 Merge branch 'develop' into feature-59-tm4 2016-07-06 15:47:45 +02:00
lukashov
51e8e0ade7 Fixing SIC receiver for all the combinations.
Introduced >>1 shift in SIC modulation for 64QAM to avoid overflow.
Shift is then compensated in llr computation.
2016-07-06 15:44:39 +02:00
lukashov
c63abc0842 Fixing merge with develop 2016-06-15 16:01:15 +02:00
lukashov
199434b92c Merge branch 'develop' into feature-59-tm4
Conflicts:
	openair1/PHY/LTE_TRANSPORT/dci_tools.c
	openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
	openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
	openair1/PHY/LTE_TRANSPORT/proto.h
	openair1/SIMULATION/LTE_PHY/dlsim.c
2016-06-15 13:21:44 +02:00
Florian Kaltenberger
66f494cbd7 Merge branch 'feature-59-tm4' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-59-tm4 2016-04-20 09:55:42 +02:00
Florian Kaltenberger
c4f8163246 DEBUG flag will not work for realtime mode 2016-04-20 09:54:31 +02:00
lukashov
cc9a5ede96 Introdducing dlsch_64qam_llr_SIC. 2016-04-19 18:21:42 +02:00
Florian Kaltenberger
5615a75413 fixing previous merge 2016-04-19 17:04:09 +02:00
Florian Kaltenberger
2b213a0ccc Merge branch 'develop' into feature-59-tm4
Conflicts:
	openair1/SIMULATION/LTE_PHY/dlsim.c
2016-04-19 15:50:05 +02:00
Florian Kaltenberger
41d973df1b Merge branch 'feature-59-tm4' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-59-tm4 2016-04-19 15:46:04 +02:00
lukashov
459913de55 changes are mostly related to:
1. Introducing dlsch_16qam_llr_SIC.
2. New writing files format in file_output.c
3. Some comments addded.
2016-04-18 20:08:54 +02:00
Florian Kaltenberger
663a5f44f5 Merge remote-tracking branch 'origin/develop' into feature-59-tm4 2016-04-12 12:38:17 +02:00
Florian Kaltenberger
f5c798e48c transmission mode is now taken into account in RRC signalling
small bugfix in dlsch_demodulation
shunted out TM3-7 specific DCI generation in scheduler to enable basic operation. more work needed.
2016-03-31 11:34:32 +02:00
lukashov
5416a6f8d7 Merge branch 'develop' into feature-59-tm4 2016-03-24 09:55:50 +01:00
lukashov
25796d27a1 Fixing the way bler is computed for SIC receiver 2016-03-24 09:52:34 +01:00
lukashov
978a7a627e Merge branch 'develop' into feature-59-tm4
Conflicts:
	openair1/PHY/TOOLS/lte_phy_scope.c
2016-03-21 15:31:19 +01:00
lukashov
6eea200c35 in dlsim ret, aver_iter, iter_trials are now arrays to be used for 2 cw independently;
+ small bug fix in dlsim related to sic cw.
2016-03-21 15:21:09 +01:00
lukashov
291a7f1752 1. Changing precoder to minimize interference: testing simple channels.
2. Fixing confusion between dl_ch_rho2_ext and dl_ch_rho_ext[harq_pid][round].
2016-03-18 12:00:49 +01:00
lukashov
127fa9ae37 Fixing bug in modulation_SIC: initially setting re_allocated to 0. 2016-03-16 18:10:07 +01:00
lukashov
4573c0b962 Changes for SIC-receiver:
1. in dlsim.c: now we check for the receiver type and, if SIC,  proceed through encoding, modulation, LLR compuattion and decoding
of the decoded TB0.
2. Implementing routines for vector-vector multiplication and vector-vector subtraction
3. Adding some printouts for debuging purposes.
4. New functions: modulation_SIC, dlsch_qpsk_llr_SIC
5. In phy_scope.c: changing llr plotting: now for the length of coded_bits_per_cw.
2016-03-16 16:05:09 +01:00
Florian Kaltenberger
c7828888ab small fix 2016-03-09 20:36:06 +01:00
Florian Kaltenberger
160f5e0786 Merge remote-tracking branch 'origin/develop' into feature-59-tm4
Conflicts:
	openair1/SIMULATION/LTE_PHY/dlsim.c
2016-03-09 20:35:57 +01:00
lukashov
cd17018ec7 Merge branch 'develop' into feature-59-tm4 2016-03-05 19:47:49 +01:00
lukashov
cdbc4baa58 Fixing rho for qpsk_qpsk in demodulation.c
Still need to caliibrate shifts -J.
2016-03-03 23:00:12 +01:00
lukashov
20cc8bc9f6 Fixing FDD for TM4 2016-03-03 16:35:50 +01:00
lukashov
1843ef7928 Merge branch 'develop' into feature-59-tm4
Conflicts:
	openair1/PHY/TOOLS/lte_phy_scope.c
	openair1/SIMULATION/LTE_PHY/dlsim.c
2016-03-02 16:19:19 +01:00
lukashov
c1f4953008 Fixing new modulation tables for TM4 and TM6. Now all modulation orders and combinations work and the maginutes are at appropriate level. 2016-03-02 11:02:05 +01:00
Florian Kaltenberger
b46c6b700b previous bugfix for dl_power_off in TM3 was incomplete 2016-03-01 12:08:59 +01:00
Florian Kaltenberger
7f645f9f34 Merge branch 'feature-59-tm4' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-59-tm4 2016-03-01 11:41:04 +01:00
Florian Kaltenberger
d988214e01 debug info for power control 2016-03-01 11:40:34 +01:00
lukashov
04b07f8bd3 Fixing bug with dl_offset in TM3. Always must be 1. 2016-03-01 11:08:45 +01:00
lukashov
0022ccf790 Revert "Adding different shifts for CWs coming from dif constellations"
Streams must have the same shift, otherwise error floor. O
This reverts commit dbf587a515.
2016-02-29 12:32:51 +01:00
lukashov
dbf587a515 Adding different shifts for CWs coming from dif constellations 2016-02-22 23:39:36 +01:00
lukashov
193ab717fa Fix channel level 2016-02-22 22:49:34 +01:00
lukashov
f922b493a6 Bug in modulation.c with new qam tables. Error floor for 16QAM and 64QAM. Going back to old ones till fix the bug. 2016-02-22 22:43:47 +01:00
lukashov
bca0b40679 Small changes in precoder to max MI 1stream 2016-01-24 16:44:33 +01:00
lukashov
9410e89310 Small change in measurements: while calculating pmi take into account ch_12[1] as well. 2016-01-22 11:52:51 +01:00
lukashov
c453384e97 Small improvement in correlation 2016-01-20 16:29:07 +01:00
lukashov
c7d2bbe513 avg_0[0] = avg_0[0] + avg_0[1];
avg_1[0] = avg_1[0] + avg_1[1];
Diff per-layer shift
2016-01-20 16:08:54 +01:00
lukashov
56c660dbe9 Undoing previos commit. Previous commit is kept to generate TM4 PCE AWGN plots with the right precoder. 2016-01-18 22:55:47 +01:00
lukashov
e60c6e3f84 This commit is to generate TM4 awgn with perfect channel estimation with the right precoder.
To be reverted after.
2016-01-18 21:09:59 +01:00
lukashov
dcf4473284 Coming back to
avg_0[0] = avg_0[0] + avg_0[1];
  avg_1[0] = avg_1[0] + avg_1[1];
  avg_0[0] = max (avg_0[0], avg_1[0]);
  avg_1[0] = avg_0[0];
2016-01-18 18:04:54 +01:00
lukashov
b6ac32b0db Chosing the max channel among the four and passing same shift everywhere. 2016-01-17 16:50:53 +01:00
lukashov
071db178eb avg_0[0] = max(avg_0[0],avg_0[1]);
avg_1[0] = max(avg_1[0],avg_1[1]);
2016-01-17 02:29:14 +01:00
lukashov
f703b8e1c5 Playing with average channel level: avg_0[0] = max(avg_0[0],avg_1[0]);
avg_1[0] = max(avg_0[1],avg_1[1]); taking this into account in correlation.
2016-01-17 00:39:39 +01:00
lukashov
f415d7118d Applying output shift on per-antenna basis in demodulation 2016-01-16 12:49:58 +01:00
lukashov
98b91e1d4c Improving previous commit 2016-01-14 22:14:24 +01:00
lukashov
7b5165c70a Small change in log2_approx in demodulation 2016-01-14 21:05:56 +01:00
lukashov
b00f64ed56 1)Removing dlsch_dual_stream_correlation
2) Fixing bug in mrc_TM4 - removing loop over tx antennas.
2016-01-14 10:55:49 +01:00
lukashov
10e8d30699 NULL pointer 2016-01-13 23:54:25 +01:00
lukashov
fa315a3115 Fixing bug in passing arguments to dlsch_dual_stream_correlation, introducing dlsch_dual_stream_correlation_opposite 2016-01-13 18:54:03 +01:00
lukashov
e2d13c9762 Revert "Experimanetal change in dlsch_channel_commensation_TM34. Will not work for more than 2 antennas."
This reverts commit cbd30e62fa.
2016-01-13 14:43:47 +01:00
lukashov
aaccaf9796 Revert ":q#"
This reverts commit 83324945ad, reversing
changes made to cbd30e62fa.
2016-01-13 14:43:16 +01:00
lukashov
83324945ad :q# 2016-01-13 12:46:40 +01:00
lukashov
cbd30e62fa Experimanetal change in dlsch_channel_commensation_TM34. Will not work for more than 2 antennas.
Testing.
2016-01-13 12:17:29 +01:00
lukashov
432a889cc0 Stupid check if do not divide by 2 the aver level 2016-01-11 16:27:58 +01:00
lukashov
5e1e8a58a7 Fixing previous commit 2016-01-11 16:12:21 +01:00
lukashov
e5a94ee6dd Exchanging rho for thr first stream and for the second in qpsk_qpsk_llr 2016-01-11 16:04:10 +01:00
lukashov
42eeb9d65e New attempt to scale IA receiver 2016-01-11 15:53:13 +01:00
lukashov
e4dec0771c Another change for aver level: now log2aaprox(ch11/2) + log2approx(ch21/2) -13 +shift 2016-01-11 15:04:03 +01:00
lukashov
388452f1bc For in demodulation TM4 trying average as a sum of energy in both antennas.
Changing names of output files in dlsim respectiively.
2016-01-11 11:10:04 +01:00
lukashov
73382b8284 Validating abstraction.c with a hotfix. 2016-01-08 16:54:06 +01:00
lukashov
a5f9c92507 Merge remote-tracking branch 'origin/hotfix-71-freq_channel' into feature-59-tm4
Conflicts:
	openair1/PHY/TOOLS/cdot_prod.c
	targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.usrpb210.conf
2016-01-08 16:33:14 +01:00
lukashov
d0fac35f68 Preparing to merge with hotfix-71-freq_channel, running with old version of abstrcation.c 2016-01-08 16:13:09 +01:00
lukashov
bbb369a937 Small bugfix for TM5 and TM6 2016-01-08 15:53:41 +01:00
lukashov
42eb48faa7 Fixing previous commit: messed up with parenthesis in dlsch_demodulation.c 2016-01-08 15:32:53 +01:00
lukashov
b80a6660bf Some more clean up in dlsch_demodulation.c 2016-01-07 13:50:45 +01:00
lukashov
3521765b62 Changes:
1. Fixing a bug in dlsch_channel_level_TM56.
avg128D = _mm_setzero_si128() must be done inside the rx_antennas loop and not before

2. Cleaning up code in dlsch_demodulation.c

3. Offsets for TM5 and TM6 still must be validated.

4. Right now IA and I-UA receivers for TM4 have the same offset -
validate if any additional penalty/gain is needed.

5. Shortened file names in dlsim.c since matlab can read only 63-characters file names.

6. Tested: TM4 U2 -gS perfect CE works fine for EESM and MIESM abstraction (MCS 4 MSE= 0.007 dB on both streams).
2016-01-07 11:47:14 +01:00
lukashov
80cb191214 Now channel-level dependent part of log2_approx works properly.
Validating mcs-dependent shift.
2016-01-06 13:07:10 +01:00
lukashov
3262bfa66e Fixing dlsch_channel_level_TM34.
Passing 2 avrage channel lvel and not max how it was done before.
Continuing with calibration.
2016-01-06 10:38:47 +01:00
lukashov
4031335617 Changing names of the files in dlsim.c 2016-01-05 20:24:12 +01:00
lukashov
7a8e3a421c Commit to compare -u0 and -u2 performance in interference free environment for
TM4 and verify if any additional gain/penatly is needed.
2016-01-05 15:27:15 +01:00
lukashov
73c76d1456 Small changes in dataout file names. 2016-01-05 11:11:35 +01:00
lukashov
fa64a12850 Applying channel scaling for TM4, playing with log2approx in demodulation 2016-01-05 00:25:23 +01:00
lukashov
ef3991d461 Minor change in dlsch_demod. 2016-01-04 16:58:32 +01:00
lukashov
6e839bf82c Minor change in dlsim.c 2016-01-04 15:31:49 +01:00
lukashov
404814f706 In demod removing -13 to play with absolute value of shift 2016-01-04 15:30:02 +01:00
lukashov
eeaf2c1596 Cleaning up some comments 2016-01-04 14:54:13 +01:00
lukashov
fe702e469d Minor change in dlsch_demod 2016-01-04 14:37:26 +01:00
lukashov
170291413d Going back to fixed shift in log2_approx for TM4. Playing with computing the channel average in order to find optimal shift. 2016-01-04 14:33:01 +01:00
lukashov
9c41f88a56 Improving previuos commit: awgn TM4 for perfect CE. 2015-12-21 12:05:40 +01:00
lukashov
b21b87df28 Fixing perfect channel estimation for TM4 2015-12-18 17:08:21 +01:00
lukashov
e44851306d 1.Fixing a bug with qam tables in dlsch_demodulation.c for tm4.
2.Fixing shift LUT for TM1. Mcs 21, 26 and 28 show erroneous performance. (see attachement in commit)
2015-12-17 15:33:27 +01:00
lukashov
513ed46e56 Calibrating offset for TM1 and introducing LUT interf_unaw_shift_tm1_mcs. LUT valid for mcs<=13,
to be completed in the next commit.
2015-12-16 15:46:56 +01:00
lukashov
877d7b3bf9 Fixing global shifts 2015-12-16 13:43:50 +01:00
lukashov
1673ba3dfb Fix global var for shift 2015-12-16 12:51:43 +01:00
lukashov
d6503bdd47 typo 2015-12-15 23:21:13 +01:00
lukashov
c2460ee36a Verifying if offset LUT for TM4 works for TM1. -J is responsible for shift. 2015-12-15 23:14:08 +01:00
lukashov
51af1a19f0 Now BLER goes to 10^(-2) in case of abstraction and 10^-3 in regular mode. 2015-12-15 16:09:53 +01:00
lukashov
2b41586884 Introducing different shifts for channel compensation log2_maxh0 and log2_maxh1 as well as mcs-dependent offset coefficients interf_unaw_shift_mcs
for I-UA receiver and interference-free case TM4. Coeeficients for 64 QAM must be revised.
2015-12-15 15:57:45 +01:00
lukashov
7ad4dcd3a1 Changing the level of target BLER on dlsim.c 2015-12-14 19:07:23 +01:00
lukashov
05fd086418 Introducing an offset for I-UA receiver intefr_unaw_shift and calibrating this value for each mcs (u=0 only). 2015-12-14 19:01:29 +01:00
lukashov
0d9f417f7b Small changes in dlsch_demodulation.c and in dlsim.c condition to stop simulation depending on rx_type.
dr_offset must be calibrated for tm4 again.
2015-12-14 12:32:52 +01:00
lukashov
20a6f9785b Small changes for writing precoder in data_out file.
Please note that to test precoder it is necessary to run Perfect_CE
2015-12-10 13:12:00 +01:00
lukashov
d765d1f2ab Fixing previous commit 2015-12-09 15:27:50 +01:00
lukashov
9695420fce Merge branch 'develop' into feature-59-tm4
Conflicts:
	openair1/SIMULATION/LTE_PHY/dlsim.c
	openair1/SIMULATION/TOOLS/random_channel.c
2015-12-09 13:55:20 +01:00
lukashov
7f34328b24 Changes:
1. Fixing precoder selection criteria for TM4 for tpmi2.
TPMI 2 works now.
2. Temporarily replacing abstraction.c with an old version till fix the bug in init_freq_channel.
3. Commenting some extra printouts.
2015-12-08 16:18:44 +01:00
lukashov
790ba35688 one more bug in measurements 2015-12-04 19:04:59 +01:00
lukashov
6df0e46245 Fixed bug in lte_ue_measurements.c for subband pmi calculation 2015-12-04 18:28:12 +01:00
lukashov
55c1f58192 Fixing prec2A_TM4_128 in dlsch_demodulation.c 2015-12-04 11:54:42 +01:00
Florian Kaltenberger
d56adbf3c1 Merge branch 'feature-59-tm4' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-59-tm4 2015-12-02 15:59:15 +01:00
Florian Kaltenberger
7d27d45d02 few more fixes 2015-12-02 15:57:25 +01:00
lukashov
8d85ca9c78 fixed cor matrix for tpmi=1, -gR works now 2015-12-02 14:28:30 +01:00
Florian Kaltenberger
cce0b45f97 a few small bugfixes, but not yet finished 2015-12-02 13:02:45 +01:00
Florian Kaltenberger
e24847b130 fixing last commit 2015-12-02 11:25:16 +01:00
Florian Kaltenberger
992b32a969 Merge branch 'feature-59-tm4' of https://gitlab.eurecom.fr/oai/openairinterface5g into feature-59-tm4
Conflicts:
	openair1/PHY/LTE_TRANSPORT/proto.h
2015-12-02 11:15:26 +01:00
Florian Kaltenberger
6143779c63 documentation 2015-12-02 11:13:47 +01:00
lukashov
0c5a731f23 Merge branch 'feature-59-tm4' of gitlab.eurecom.fr:oai/openairinterface5g into feature-59-tm4
Conflicts:
	openair1/PHY/LTE_TRANSPORT/dci_tools.c
2015-12-02 11:11:23 +01:00
lukashov
11dc7d2b81 extension to tmpi 2 for TM4 2015-12-02 11:04:00 +01:00
Florian Kaltenberger
000e60c193 extrac_cqi translates pmi_dual into pmi_single 2015-11-30 16:58:08 +01:00
Florian Kaltenberger
13752a6768 fixing pmi_extend 2015-11-27 17:13:48 +01:00
Florian Kaltenberger
a9c3b9b483 config files for 2 antennas for usrp and exmimo 2015-11-26 17:02:30 +01:00
lukashov
cf2b532a79 changes in dci_tools.c for TM4 to support tpmi2 2015-11-26 12:22:59 +01:00
lukashov
f6e750fb66 feature-59-tm4: fixing dci_tools.c tmpi0 all channels all mod orders works 2015-11-25 22:52:42 +01:00
lukashov
9576283381 feature-59-tm4: fixing merge bugs in lte_phy_scope 2015-11-25 20:38:52 +01:00
lukashov
c26f9fea3d Enabling XFORMS 2015-11-25 20:32:30 +01:00
lukashov
9bd28ec137 merge with master 2015-11-24 20:40:35 +01:00
lukashov
4e9670b5aa merge with master 2015-11-23 17:48:59 +01:00
Florian Kaltenberger
857fd74e1b commiting changes from svn branch SIC-receiver from revision 6836 to 7896 (current svn head). See svn log for details. 2015-11-18 13:44:46 +01:00
1651 changed files with 75492 additions and 22044 deletions

View File

@@ -2,8 +2,6 @@ job1:
script:
- date
- pwd
- echo $OAI_USER
- echo $OAI_PASS
- echo $OAI_TEST_CASE_GROUP
- echo $MACHINELIST
- echo $MACHINELISTGENERIC

208
LICENSE
View File

@@ -1,94 +1,200 @@
OAI PUBLIC LICENSE V1.0
The OpenAirInterface Software Alliance (OSA)
OAI Public License (Version 1.1)
Copyright (C) 2016 OpenAirInterface Software Alliance, Inc. <http://www.openairinterface.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
LICENSE TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION OF OPENAIR 5G SOFTWARE.
Definitions.
“License” shall mean the terms and conditions for use, reproduction, and distribution set forth in this document.
1. Definitions.
“License” shall mean the terms and conditions for use, reproduction, and distribution set forth
in this document.
“Licensor” shall mean the OpenAirInterface Software Alliance.
“Legal Entity” shall mean the union, at the time an acting entity joins the Alliance, of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, “control” means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
“Legal Entity” shall mean the union, at the time an acting entity joins the Alliance, of the
acting entity and all other entities that control, are controlled by, or are under common control
with that entity. For the purposes of this definition, “control” means (i) the power, direct or
indirect, to cause the direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii)
beneficial ownership of such entity.
“You” (or “Your”) shall mean an individual or Legal Entity exercising permissions granted by this License.
“You” (or “Your”) shall mean an individual or Legal Entity exercising permissions granted by
this License.
“Source” form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
“Source” form shall mean the preferred form for making modifications, including but not
limited to software source code, documentation source, and configuration files.
“Object” form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
“Object” form shall mean any form resulting from mechanical transformation or translation of
a Source form, including but not limited to compiled object code, generated documentation,
and conversions to other media types.
“OpenAirInterface Software Alliance” shall mean the endowment fund established at the initiative of Eurecom, an educational and research establishment located at Campus Sophia Tech, 450 Route des Chappes, 06410 Biot, France, which statutes were signed on 18 November 2014.
“OpenAirInterface Software Alliance” shall mean the endowment fund established at the
initiative of Eurecom, an educational and research establishment located at Campus Sophia
Tech, 450 Route des Chappes, 06410 Biot, France, which statutes were signed on 18
November 2014.
“Work” shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
“Work” shall mean the work of authorship, whether in Source or Object form, made available
under the License, as indicated by a copyright notice that is included in or attached to the
work (an example is provided in the Appendix below).
“Derivative Works” shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
“Derivative Works” shall mean any work, whether in Source or Object form, that is based on
(or derived from) the Work and for which the editorial revisions, annotations, elaborations, or
other modifications represent, as a whole, an original work of authorship. For the purposes of
this License, Derivative Works shall not include works that remain separable from, or merely
link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
“Contribution” shall mean any work of authorship that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, “submitted” means any form of electronic, , or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work “Contributor License Agreement” shall mean the agreement signed by any Contributor setting forth the terms and conditions applicable to its Contribution. “Contributor” shall mean any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
“Contribution” shall mean any work of authorship that is intentionally submitted to Licensor
for inclusion in the Work by the copyright owner or by an individual or Legal Entity
authorized to submit on behalf of the copyright owner. For the purposes of this definition,
“submitted” means any form of electronic, , or written communication sent to the Licensor or
its representatives, including but not limited to communication on electronic mailing lists,
source code control systems, and issue tracking systems that are managed by, or on behalf of,
the Licensor for the purpose of discussing and improving the Work
Grant of Copyright License.
Subject to the terms and conditions of this License, Licensor and each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form
“Contributor License Agreement” shall mean the agreement signed by any Contributor setting
forth the terms and conditions applicable to its Contribution.
3. Grant of Patent License.
“Contributor” shall mean any individual or Legal Entity on behalf of whom a Contribution
has been received by Licensor and subsequently incorporated within the Work.
3.1 Grant of Patent License for non-commercial purposes:
2. Grant of Copyright License.
Subject to the terms and conditions of this License, Licensor and each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of, publicly display, publicly
perform, and distribute the Work and such Derivative Works in Source or Object form
Subject to the terms and conditions of this License, Licensor and each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, import, and otherwise transfer the Work, for non-commercial purposes, where such license applies only to those patent claims licensable by such Contributor or Licensor that are necessarily infringed by the Work and/or their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted.
3. Grant of Patent License.
3.2 Grant of Patent License for commercial purposes:
3.1 Grant of Patent License for study, testing and research purposes:
Subject to the terms and conditions of this License, Licensor and each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made, use, and otherwise
transfer (excluding selling) the Work, solely for study, testing and research purposes, where
such license applies only to those patent claims licensable by Licensor or such Contributor
that are necessarily infringed respectively by the Work and/or the said Contributor
Contribution(s) alone or by combination of their Contribution(s) with the Work to which
such Contribution(s) was submitted (“Essential Patents”).
For commercial purposes, and subject to the terms and conditions of this License, You commits to be prepared to negotiate a patent license with each Contributor and/or the Licensor on Fair, Reasonable and Non-Discriminatory (“FRAND”) terms and conditions for the Work or Contribution(s) incorporated within the Work.
Licensor and/or each Contributor, by submitting a Contribution, will identify any patent it owns related to the Work and/or its Contribution.
3.2 Grant of Patent License for purposes other than study and research:
For purposes other than study, testing and research, and subject to the terms and conditions of
this License, You commit to be prepared to negotiate a non-exclusive, non-transferable, non-
assignable license of Essential Patents with each Contributor and/or the Licensor on Fair,
Reasonable and Non-Discriminatory (“FRAND”) terms and conditions for the use of the
Work or Contribution(s) incorporated within the Work.
Licensor and/or each Contributor, by submitting a Contribution, will identify any of its known
Essential Patent it owns related to the Work and/or its Contribution.
3.3 Patent Litigation
If You institute patent litigation against any entity making use of the Work solely for study,
testing and research purposes (including a cross-claim or counterclaim in a lawsuit) alleging
that the Work or a Contribution incorporated within the Work constitutes direct or
contributory patent infringement, then the patent licenses granted to You under section 3.1 of
this License for that Work shall terminate as of the date such litigation is filed.
If You institute patent litigation against any entity making non-commercial use of the Work (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
4. Sublicensing
You may grant sublicenses under the licenses granted under sections 2 and 3.1 provided that
the sublicense is subject to and inclusive of all the terms of and rights under this License to
which the Work is or was distributed by the OpenAirInterface Software Alliance.
4. Redistibution
5. Redistribution
Subject to terms and conditions set forth in sections 2 and 3, You may reproduce and
distribute copies of the Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You meet the following
conditions:
Subject to terms and conditions set forth in articles 2 and 3, You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
1. You must give any other recipients of the Work or Derivative Works a copy of this
License; and
2. You must cause any modified files by You to carry prominent notices stating that You
changed the files; and
3. You must retain, in the Source form of any Derivative Works that You distribute, all
copyright, patent, trademark, and attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of the Derivative Works; and
4. If the Work includes a “NOTICE” text file as part of its distribution, then any Derivative
Works that You distribute must include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not pertain to any part of the
Derivative Works, in at least one of the following places: within a NOTICE text file
distributed as part of the Derivative Works; within the Source form or documentation, if
provided along with the Derivative Works; or, within a display generated by the Derivative
Works, if and wherever such third-party notices normally appear. The contents of the
NOTICE file are for informational purposes only and do not modify the License. You may
add Your own attribution notices within Derivative Works that You distribute, alongside or as
an addendum to the NOTICE text from the Work, provided that such additional attribution
notices cannot be construed as modifying the License.
You may add Your own copyright statement to Your modifications and may provide
additional or different license terms and conditions for use, reproduction, or distribution of
Your modifications, or for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with the conditions stated in
this License.
1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
6. Submission of Contributions.
Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be
under the terms and conditions of this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify the terms of any
separate license agreement such as the Contributor License Agreement You may have
executed with Licensor regarding such Contributions.
2. You must cause any modified files by You to carry prominent notices stating that You changed the files; and
7. Trademarks.
This License does not grant permission to use the trade names, trademarks, service marks, or
product names of the Licensor, except as required for reasonable and customary use in
describing the origin of the Work and reproducing the content of the NOTICE file.
3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
8. Disclaimer of Warranty.
Unless required by applicable law or agreed to in writing, Licensor provides the Work (and
each Contributor provides its Contributions) on an “AS IS” BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including,
without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT,
MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely
responsible for determining the appropriateness of using or redistributing the Work and
assume any risks associated with your exercise of permissions under this License.
4. If the Work includes a “NOTICE” text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
9. Limitation of Liability.
In no event and under no legal theory, whether in tort (including negligence), contract, or
otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or
agreed to in writing, shall Licensor and any Contributor, as such, be liable to You for
damages, including any direct, indirect, special, incidental, or consequential damages of any
character arising as a result of this License or out of Your use or inability to use the Work
(including but not limited to damages for loss of goodwill, work stoppage, computer failure or
malfunction, or any and all other commercial damages or losses), even if such Contributor has
been advised of the possibility of such damages.
10. Accepting Warranty or Additional Liability.
While redistributing the Work or Derivative Works thereof, You may choose to offer, and
charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations
and/or rights consistent with this License. However, in accepting such obligations, You may
act only on Your own behalf and on Your sole responsibility, not on behalf of any other
Contributor and/or the Licensor, and only if You agree to indemnify, defend, and hold each
Contributor and/or the Licensor harmless for any liability incurred by, or claims asserted
against, such Contributor and/or Licensor by reason of Your accepting any such warranty or
additional liability.
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
5. Submission of Contributions. Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement such as the Contributor License Agreement You may have executed with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall Licensor and any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor and/or the Licensor,and only if You agree to indemnify, defend, and hold each Contributor and/or the Licensor harmless for any liability incurred by, or claims asserted against, such Contributor and/or Licensor by reason of Your accepting any such warranty or additional liability.
10. Applicable law. The present license shall be governed by the laws of France.
11. Applicable law.
The present license shall be governed by the laws of France.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the PRESENT OPENAIR 5G License to your work
To apply the present License to your work, attach the following boilerplate notice, with the fields enclosed by brackets “[]” replaced with your own identifying information. (Dont include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same “printed page” as the copyright notice for easier identification within third-party archives.
1. APPENDIX: How to apply the PRESENT OPENAIR 5G License to your work
To apply the present License to your work, attach the following boilerplate notice, with the
fields enclosed by brackets “[]” replaced with your own identifying information. (Dont
include the brackets!) The text should be enclosed in the appropriate comment syntax for the
file format. We also recommend that a file or class name and description of purpose be
included on the same “printed page” as the copyright notice for easier identification within
third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the License terms and conditions for use, reproduction, and distribution of OPENAIR 5G software (the “License”);
you may not use this file except in compliance with the License.You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software
Licensed under the License terms and conditions for use, reproduction, and distribution of
OPENAIR 5G software (the “License”);
distributed under the License is distributed on an “AS IS” BASIS,
you may not use this file except in compliance with the License. You may obtain a copy of
the License at
Unless required by applicable law or agreed to in writing, software distributed under the
License is distributed on an “AS IS” BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
See the License for the specific language governing permissions and limitations under the
License.
limitations under the License.

View File

@@ -39,3 +39,8 @@ v0.3 -> Last stable commit on develop branch before the merge of feature-131-new
v0.4 -> Merge of feature-131-new-license. It closes issue#131 and changes the license to OAI Public License V1.0
v0.5 -> Merge of enhancement-10-harmony-lts. It includes fixes for Ubuntu 16.04 support
v0.5.1 -> Merge of bugfix-137-uplink-fixes. It includes stablity fixes for eNB
v0.5.2 -> Last version with old code for oaisim (abstraction mode works)
v0.6 -> RRH functionality, UE greatly improved, better TDD support,
a lot of bugs fixed. WARNING: oaisim in PHY abstraction mode does not
work, you need to use v0.5.2 for that.
v0.6.1 -> Mostly bugfixes. This is the last version without NFAPI.

View File

@@ -3,7 +3,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
@@ -114,6 +114,7 @@ endmacro(add_list_string_option)
####################################################
# compilation flags
#############################################
#set(CMAKE_BUILD_TYPE "Debug")
if (CMAKE_BUILD_TYPE STREQUAL "")
set(CMAKE_BUILD_TYPE "RelWithDebInfo")
@@ -129,6 +130,9 @@ else (CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l")
file(STRINGS "/proc/cpuinfo" CPUINFO REGEX flags LIMIT_COUNT 1)
if (CPUINFO MATCHES "avx2")
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -mavx2")
set(COMPILATION_AVX2 "True")
else()
set(COMPILATION_AVX2 "False")
endif()
if (CPUINFO MATCHES "sse4_1")
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -msse4.1")
@@ -170,7 +174,7 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath -Wl,${CMAKE_CU
# these changes are related to hardcoded path to include .h files
add_definitions(-DCMAKER)
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -g -DMALLOC_CHECK_=3")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS} -g -DMALLOC_CHECK_=3 -O2")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS} -g -DMALLOC_CHECK_=3 -O2")
set(GIT_BRANCH "UNKNOWN")
@@ -195,7 +199,7 @@ if(GIT_FOUND)
OUTPUT_VARIABLE GIT_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# Get the latest commit date of the working branch
execute_process(
COMMAND git log -1 --format=%cd
@@ -223,15 +227,18 @@ add_boolean_option(DISABLE_XER_PRINT False "print XER Format")
add_boolean_option(XER_PRINT False "print XER Format")
add_boolean_option(RRC_MSG_PRINT False "print RRC messages")
add_boolean_option(PDCP_MSG_PRINT False "print PDCP messages to /tmp/pdcp.log")
add_boolean_option(DEBUG_PDCP_PAYLOAD False "print PDCP PDU to stdout") # if true, make sure that global and PDCP log levels are trace
add_boolean_option(DEBUG_MAC_INTERFACE False "print MAC-RLC PDU exchange to stdout") # if true, make sure that global and PDCP log levels are trace
add_boolean_option(TRACE_RLC_PAYLOAD False "print RLC PDU to stdout") # if true, make sure that global and PDCP log levels are trace
add_boolean_option(DEBUG_PDCP_PAYLOAD False "print PDCP PDU to stdout") # if true, make sure that global and PDCP log levels are trace
add_boolean_option(DEBUG_MAC_INTERFACE False "print MAC-RLC PDU exchange to stdout") # if true, make sure that global and PDCP log levels are trace
add_boolean_option(TRACE_RLC_PAYLOAD False "print RLC PDU to stdout") # if true, make sure that global and PDCP log levels are trace
add_boolean_option(TEST_OMG False "???")
add_boolean_option(DEBUG_OMG False "???")
add_boolean_option(XFORMS False "This adds the possibility to see the signal oscilloscope")
add_boolean_option(PRINT_STATS False "This adds the possibility to see the status")
add_boolean_option(T_TRACER False "Activate the T tracer, a debugging/monitoring framework" )
add_boolean_option(UE_AUTOTEST_TRACE False "Activate UE autotest specific logs")
add_boolean_option(UE_DEBUG_TRACE False "Activate UE debug trace")
add_boolean_option(UE_TIMING_TRACE False "Activate UE timing trace")
add_boolean_option(DISABLE_LOG_X False "Deactivate all LOG_* macros")
add_boolean_option(DEBUG_CONSOLE False "makes debugging easier, disables stdout/stderr buffering")
@@ -279,8 +286,10 @@ if (${RRC_ASN1_VERSION} STREQUAL "Rel8")
set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn)
elseif (${RRC_ASN1_VERSION} STREQUAL "CBA")
set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20-lola.asn)
else()
elseif (${RRC_ASN1_VERSION} STREQUAL "Rel10")
set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn)
else()
set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1c/ASN1_files/RRC-e10.asn)
endif (${RRC_ASN1_VERSION} STREQUAL "Rel8")
set (RRC_FULL_DIR ${asn1_generated_dir}/${RRC_ASN1_VERSION})
@@ -486,105 +495,57 @@ add_list2_option(TRANSP_PRO "None" "Transport protocol type" "None" "ETHERNET")
include_directories("${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/")
include_directories ("${OPENAIR_TARGETS}/ARCH/EXMIMO/DEFS/")
#set (option_HWEXMIMOLIB_lib "-l ")
set(HWLIB_EXMIMO_SOURCE
set(HWLIB_EXMIMO_SOURCE
${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c
# ${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c
)
add_library(oai_exmimodevif MODULE ${HWLIB_EXMIMO_SOURCE} )
include_directories("${OPENAIR_TARGETS}/ARCH/USRP/USERSPACE/LIB/")
set (option_HWUSRPLIB_lib "-l uhd")
set(HWLIB_USRP_SOURCE
set(HWLIB_USRP_SOURCE
${OPENAIR_TARGETS}/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
)
add_library(oai_usrpdevif MODULE ${HWLIB_USRP_SOURCE} )
target_link_libraries(oai_usrpdevif uhd)
include_directories("${OPENAIR_TARGETS}/ARCH/BLADERF/USERSPACE/LIB/")
set (option_HWBLADERFLIB_lib "-l bladerf")
set(HWLIB_BLADERF_SOURCE
set(HWLIB_BLADERF_SOURCE
${OPENAIR_TARGETS}/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c
)
add_library(oai_bladerfdevif MODULE ${HWLIB_BLADERF_SOURCE} )
target_link_libraries(oai_bladerfdevif bladeRF)
include_directories("${OPENAIR_TARGETS}/ARCH/LMSSDR/USERSPACE/LIB/")
set(HWLIB_LMSSDR_SOURCE
set(HWLIB_LMSSDR_SOURCE
${OPENAIR_TARGETS}/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp
)
add_library(oai_lmssdrdevif MODULE ${HWLIB_LMSSDR_SOURCE} )
target_include_directories(oai_lmssdrdevif PRIVATE /usr/local/include/lime)
target_link_libraries(oai_lmssdrdevif LimeSuite )
include_directories("${OPENAIR_TARGETS}/ARCH/ETHERNET/USERSPACE/LIB/")
set(TPLIB_ETHERNET_SOURCE
set(TPLIB_ETHERNET_SOURCE
${OPENAIR_TARGETS}/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
${OPENAIR_TARGETS}/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c
${OPENAIR_TARGETS}/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c
)
add_library(oai_eth_transpro MODULE ${TPLIB_ETHERNET_SOURCE} )
include_directories("${OPENAIR_TARGETS}/ARCH/mobipass/")
set(TPLIB_MOBIPASS_SOURCE
${OPENAIR_TARGETS}/ARCH/mobipass/interface.c
${OPENAIR_TARGETS}/ARCH/mobipass/mobipass.c
${OPENAIR_TARGETS}/ARCH/mobipass/queues.c
)
add_library(oai_mobipass MODULE ${TPLIB_MOBIPASS_SOURCE} )
# RF devices / transport protocols settings
######################################################################
if (${RF_BOARD} STREQUAL "EXMIMO")
set(DRIVER2013)
include_directories ("${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/")
include_directories ("${OPENAIR_TARGETS}/ARCH/EXMIMO/DEFS/")
set(HW_SOURCE ${HW_SOURCE}
${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c)
# ${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c)
set(option_HW_lib "-rdynamic -ldl")
# Hide all functions/variables in the mobipass library.
# Use __attribute__((__visibility__("default")))
# in the source code to unhide a function/variable.
get_target_property(mobipas_cflags oai_mobipass COMPILE_FLAGS)
set_target_properties(oai_mobipass PROPERTIES COMPILE_FLAGS "${mobipass_cflags} -fvisibility=hidden")
elseif (${RF_BOARD} STREQUAL "OAI_USRP")
include_directories("${OPENAIR_TARGETS}/ARCH/USRP/USERSPACE/LIB/")
include_directories("/opt/include/uhd")
set(HW_SOURCE ${HW_SOURCE}
${OPENAIR_TARGETS}/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp)
LINK_DIRECTORIES("/opt/lib")
set(option_HW_lib "-luhd -rdynamic -ldl -lboost_system")
elseif (${RF_BOARD} STREQUAL "OAI_BLADERF")
include_directories("${OPENAIR_TARGETS}/ARCH/BLADERF/USERSPACE/LIB/")
include_directories("${OPENAIR2_DIR}/UTIL/LOG")
include_directories("/usr/include")
set(HW_SOURCE ${HW_SOURCE}
${OPENAIR_TARGETS}/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c
)
LINK_DIRECTORIES("/usr/lib/x86_64-linux-gnu")
set(option_HW_lib "bladeRF -rdynamic -ldl")
elseif (${RF_BOARD} STREQUAL "OAI_LMSSDR")
include_directories("${OPENAIR_TARGETS}/ARCH/LMSSDR/USERSPACE/LIB")
include_directories("/usr/local/include/lime")
include_directories("/usr/include/lime")
LINK_DIRECTORIES("/usr/lib/x86_64-linux-gnu")
LINK_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/lmsSDR")
LINK_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/lms7002m")
LINK_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/Si5351C")
set(HW_SOURCE ${HW_SOURCE} ${OPENAIR_TARGETS}/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp)
set(option_HW_lib "-lLimeSuite -rdynamic -ldl")
elseif (${RF_BOARD} STREQUAL "CPRIGW")
set(HW_SOURCE ${HW_SOURCE}
${OPENAIR_TARGETS}/ARCH/CPRIGW/USERSPACE/LIB/cprigw_lib.c
)
include_directories("${OPENAIR_TARGETS}/ARCH/CPRIGW/USERSPACE/LIB/")
set(option_HW_lib "-rdynamic dl")
endif (${RF_BOARD} STREQUAL "EXMIMO")
if (${TRANSP_PRO} STREQUAL "ETHERNET")
include_directories ("${OPENAIR_TARGETS}/ARCH/ETHERNET/USERSPACE/LIB")
set(TRANSPORT_SOURCE ${TRANSPORT_SOURCE}
${OPENAIR_TARGETS}/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
${OPENAIR_TARGETS}/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c
${OPENAIR_TARGETS}/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c
)
set(option_TP_lib "-rdynamic -ldl")
endif (${TRANSP_PRO} STREQUAL "ETHERNET")
##########################################################
include_directories ("${OPENAIR_TARGETS}/ARCH/COMMON")
@@ -837,13 +798,13 @@ include_directories("${OPENAIR_DIR}")
if (FLEXRAN_AGENT_SB_IF)
# set the version of protobuf messages, V3 not supported yet
add_list1_option(FLPT_VERSION V2 "FLPT MSG protobuf grammar version" V2 V3)
if (${FLPT_VERSION} STREQUAL "V2")
set (FLPTDIR V2)
elseif (${FLPT_VERSION} STREQUAL "V3")
set (FLPTDIR V3)
endif(${FLPT_VERSION} STREQUAL "V2")
set(FLPT_MSG_DIR ${OPENAIR2_DIR}/ENB_APP/MESSAGES/${FLPTDIR} )
set(FLPT_MSG_FILES
${FLPT_MSG_DIR}/header.proto
@@ -874,10 +835,10 @@ if (FLEXRAN_AGENT_SB_IF)
${FLPT_C_DIR}/config_common.pb-c.c
${FLPT_C_DIR}/control_delegation.pb-c.c
)
file(GLOB flpt_h ${FLPT_C_DIR}/*.h)
set(flpt_h ${flpt_h} )
add_library(FLPT_MSG
${FLPT_OAI_generated}
${FLPT_source}
@@ -908,12 +869,12 @@ if (FLEXRAN_AGENT_SB_IF)
)
set(FLEXRAN_AGENT_LIB FLEXRAN_AGENT)
#include_directories(${OPENAIR2_DIR}/ENB_APP)
set(PROTOBUF_LIB "protobuf-c")
FIND_PATH(LIBYAML_INCLUDE_DIR NAMES yaml.h)
FIND_LIBRARY(LIBYAML_LIBRARIES NAMES yaml libyaml)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Yaml DEFAULT_MSG LIBYAML_LIBRARIES LIBYAML_INCLUDE_DIR)
MARK_AS_ADVANCED(LIBYAML_INCLUDE_DIR LIBYAML_LIBRARIES)
@@ -929,9 +890,9 @@ add_library(HASHTABLE
include_directories(${OPENAIR_DIR}/common/utils/hashtable)
if (MESSAGE_CHART_GENERATOR)
add_library(MSC
add_library(MSC
${OPENAIR_DIR}/common/utils/msc/msc.c
)
)
set(MSC_LIB MSC)
endif()
include_directories(${OPENAIR_DIR}/common/utils/msc)
@@ -1008,7 +969,7 @@ add_library(SECU_CN ${SECU_CN_SRC})
# Scheduler
################################"
set(SCHED_SRC
set(SCHED_SRC
${OPENAIR1_DIR}/SCHED/phy_procedures_lte_eNb.c
${OPENAIR1_DIR}/SCHED/phy_procedures_lte_ue.c
${OPENAIR1_DIR}/SCHED/phy_procedures_lte_common.c
@@ -1100,6 +1061,7 @@ set(PHY_SRC
${OPENAIR1_DIR}/PHY/INIT/lte_parms.c
${OPENAIR1_DIR}/PHY/INIT/lte_param_init.c
${OPENAIR1_DIR}/PHY/TOOLS/file_output.c
${OPENAIR1_DIR}/PHY/TOOLS/cadd_vv.c
${OPENAIR1_DIR}/PHY/TOOLS/lte_dfts.c
${OPENAIR1_DIR}/PHY/TOOLS/log2_approx.c
${OPENAIR1_DIR}/PHY/TOOLS/cmult_sv.c
@@ -1114,6 +1076,11 @@ set(PHY_SRC
if (${SMBV})
set(PHY_SRC "${PHY_SRC} ${OPENAIR1_DIR}/PHY/TOOLS/smbv.c")
endif (${SMBV})
if (${COMPILATION_AVX2} STREQUAL "True")
set(PHY_SRC ${PHY_SRC} ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_llr_computation_avx2.c)
endif ()
add_library(PHY ${PHY_SRC})
#Layer 2 library
@@ -1301,7 +1268,7 @@ set(libnas_api_OBJS
${NAS_SRC}COMMON/API/NETWORK/nas_message.c
${NAS_SRC}COMMON/API/NETWORK/network_api.c
)
set(libnas_emm_msg_OBJS
${NAS_SRC}COMMON/EMM/MSG/AttachAccept.c
${NAS_SRC}COMMON/EMM/MSG/AttachComplete.c
@@ -1334,7 +1301,7 @@ set(libnas_emm_msg_OBJS
${NAS_SRC}COMMON/EMM/MSG/TrackingAreaUpdateRequest.c
${NAS_SRC}COMMON/EMM/MSG/UplinkNasTransport.c
)
set(libnas_esm_msg_OBJS
${NAS_SRC}COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.c
${NAS_SRC}COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.c
@@ -1454,7 +1421,7 @@ set (libnas_utils_OBJS
${NAS_SRC}COMMON/UTIL/OctetString.c
)
if(NAS_UE)
if(NAS_UE)
set(libnas_ue_api_OBJS
${NAS_SRC}UE/API/USER/at_command.c
${NAS_SRC}UE/API/USER/at_error.c
@@ -1682,9 +1649,25 @@ else()
endif()
# Atlas is required by some packages, but not found in pkg-config
if(EXISTS "/usr/include/atlas/cblas.h")
# So, here are some hacks here. Hope this gets fixed in future!
if(EXISTS "/usr/include/atlas/cblas.h" OR EXISTS "/usr/include/cblas.h")
include_directories("/usr/include/atlas")
list(APPEND ATLAS_LIBRARIES cblas atlas lapack)
LINK_DIRECTORIES("/usr/lib64")
LINK_DIRECTORIES("/usr/lib64/atlas") #Added because atlas libraries in CentOS 7 are here!
if(EXISTS "/usr/lib64/libblas.so" OR EXISTS "/usr/lib/libblas.so") #Case for CentOS7
list(APPEND ATLAS_LIBRARIES blas)
else() # Case for Ubuntu
list(APPEND ATLAS_LIBRARIES cblas)
endif()
if(EXISTS "/usr/lib/atlas/libtatlas.so" OR EXISTS "/usr/lib64/atlas/libtatlas.so") #Case for CentOS7
list(APPEND ATLAS_LIBRARIES tatlas)
else()
list(APPEND ATLAS_LIBRARIES atlas) #Case for Ubuntu
endif()
list(APPEND ATLAS_LIBRARIES lapack)
else()
message("No Blas/Atlas libs found, some targets will fail")
endif()
@@ -1757,9 +1740,9 @@ add_executable(lte-softmodem
${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c
${OPENAIR_DIR}/common/utils/utils.c
${OPENAIR_DIR}/common/utils/system.c
${GTPU_need_ITTI}
${HW_SOURCE}
${TRANSPORT_SOURCE}
${RTAI_SOURCE}
${XFORMS_SOURCE}
${XFORMS_SOURCE_SOFTMODEM}
@@ -1772,7 +1755,7 @@ target_link_libraries (lte-softmodem -ldl
-Wl,--end-group )
target_link_libraries (lte-softmodem ${LIBXML2_LIBRARIES})
target_link_libraries (lte-softmodem pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${option_HW_lib} ${option_TP_lib} ${XFORMS_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES})
target_link_libraries (lte-softmodem pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${XFORMS_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES})
target_link_libraries (lte-softmodem ${LIB_LMS_LIBRARIES})
target_link_libraries (lte-softmodem ${T_LIB})
@@ -1793,8 +1776,7 @@ add_executable(lte-softmodem-nos1
${OPENAIR2_DIR}/RRC/NAS/nas_config.c
${OPENAIR2_DIR}/RRC/NAS/rb_config.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
${HW_SOURCE}
${TRANSPORT_SOURCE}
${OPENAIR_DIR}/common/utils/system.c
${RTAI_SOURCE}
${XFORMS_SOURCE}
${XFORMS_SOURCE_SOFTMODEM}
@@ -1806,7 +1788,7 @@ target_link_libraries (lte-softmodem-nos1
-Wl,--end-group )
target_link_libraries (lte-softmodem-nos1 ${LIBXML2_LIBRARIES})
target_link_libraries (lte-softmodem-nos1 pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${option_HW_lib} ${option_TP_lib} ${XFORMS_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES})
target_link_libraries (lte-softmodem-nos1 pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${XFORMS_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES})
target_link_libraries (lte-softmodem-nos1 ${LIB_LMS_LIBRARIES})
target_link_libraries (lte-softmodem-nos1 ${T_LIB})
@@ -1818,25 +1800,18 @@ add_executable(rrh_gw
${OPENAIR_TARGETS}/RT/USER/eNB_transport_IQ.c
${OPENAIR_TARGETS}/RT/USER/UE_transport_IQ.c
${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c
${HW_SOURCE}
${TRANSPORT_SOURCE}
${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c
${T_SOURCE}
)
target_include_directories(rrh_gw PRIVATE ${OPENAIR_DIR}/common/utils/itti)
target_link_libraries(rrh_gw
-Wl,--start-group
UTIL LFDS
UTIL LFDS -ldl
-Wl,--end-group )
target_link_libraries (rrh_gw rt pthread m )
target_link_libraries (rrh_gw ${option_HW_lib} ${option_TP_lib})
target_link_libraries (rrh_gw ${LIB_LMS_LIBRARIES})
target_link_libraries (rrh_gw ${T_LIB})
Message("-- option_HW_lib=${option_HW_lib}")
Message("-- HW_SOURCE=${HW_SOURCE}")
Message("-- option_TP_lib=${option_TP_lib}")
Message("-- TRANSPORT_SOURCE=${TRANSPORT_SOURCE}")
# USIM process
#################
@@ -1883,13 +1858,14 @@ add_executable(oaisim
${OPENAIR_TARGETS}/SIMU/USER/oaisim_functions.c
${OPENAIR_TARGETS}/SIMU/USER/event_handler.c
${OPENAIR_TARGETS}/SIMU/USER/oaisim.c
${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c
${OPENAIR2_DIR}/RRC/NAS/nas_config.c
${OPENAIR2_DIR}/RRC/NAS/rb_config.c
${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c
${OPENAIR_DIR}/common/utils/utils.c
${OPENAIR_DIR}/common/utils/system.c
${GTPU_need_ITTI}
${OPENAIR_TARGETS}/COMMON/create_tasks.c
${HW_SOURCE}
${TRANSPORT_SOURCE}
${XFORMS_SOURCE}
${T_SOURCE}
)
@@ -1897,12 +1873,12 @@ add_executable(oaisim
target_include_directories(oaisim PUBLIC ${OPENAIR_TARGETS}/SIMU/USER)
target_link_libraries (oaisim
-Wl,--start-group
-Wl,-ldl,--start-group
RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB GTPV1U SECU_CN UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS ${MSC_LIB} L2 ${RAL_LIB} LIB_NAS_UE SIMU SIMU_ETH SECU_OSA ${ITTI_LIB} ${MIH_LIB}
-Wl,--end-group )
target_link_libraries (oaisim ${LIBXML2_LIBRARIES} ${LAPACK_LIBRARIES})
target_link_libraries (oaisim pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${option_HW_lib} ${option_TP_lib}
target_link_libraries (oaisim pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp
${ATLAS_LIBRARIES} ${XFORMS_LIBRARIES} ${OPENPGM_LIBRARIES})
#Force link with forms, regardless XFORMS option
target_link_libraries (oaisim forms)
@@ -1928,11 +1904,11 @@ add_executable(oaisim_nos1
${OPENAIR_TARGETS}/SIMU/USER/oaisim_functions.c
${OPENAIR_TARGETS}/SIMU/USER/event_handler.c
${OPENAIR_TARGETS}/SIMU/USER/oaisim.c
${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c
${OPENAIR2_DIR}/RRC/NAS/nas_config.c
${OPENAIR2_DIR}/RRC/NAS/rb_config.c
${OPENAIR_TARGETS}/COMMON/create_tasks.c
${HW_SOURCE}
${TRANSPORT_SOURCE}
${OPENAIR_DIR}/common/utils/system.c
${XFORMS_SOURCE}
${T_SOURCE}
)
@@ -1943,7 +1919,7 @@ target_link_libraries (oaisim_nos1
-Wl,--end-group )
target_link_libraries (oaisim_nos1 ${LIBXML2_LIBRARIES} ${LAPACK_LIBRARIES})
target_link_libraries (oaisim_nos1 pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${option_HW_lib} ${option_TP_lib}
target_link_libraries (oaisim_nos1 pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES}
${ATLAS_LIBRARIES} ${XFORMS_LIBRARIES} ${OPENPGM_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES})
#Force link with forms, regardless XFORMS option
target_link_libraries (oaisim_nos1 forms)
@@ -1956,7 +1932,20 @@ target_link_libraries (oaisim_nos1 ${T_LIB})
# Unitary tests for each piece of L1: example, mbmssim is MBMS L1 simulator
#####################################
#special case for dlim TM4, which uses its own version of phy_scope code
add_executable(dlsim_tm4
${OPENAIR_BIN_DIR}/messages_xml.h
${OPENAIR1_DIR}/SIMULATION/LTE_PHY/dlsim_tm4.c
${OPENAIR1_DIR}/PHY/TOOLS/lte_phy_scope_tm4.c
${T_SOURCE}
)
target_link_libraries (dlsim_tm4
-Wl,--start-group SIMU UTIL SCHED_LIB PHY LFDS ${ITTI_LIB} -Wl,--end-group
pthread m rt ${CONFIG_LIBRARIES} ${ATLAS_LIBRARIES} ${XFORMS_LIBRARIES} ${T_LIB}
)
foreach(myExe dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim pdcchsim pucchsim prachsim syncsim)
add_executable(${myExe}
${OPENAIR_BIN_DIR}/messages_xml.h
${OPENAIR1_DIR}/SIMULATION/LTE_PHY/${myExe}.c
@@ -1981,7 +1970,7 @@ add_executable(test_epc_generate_scenario
${OPENAIR_BIN_DIR}/messages_xml.h
)
target_link_libraries (test_epc_generate_scenario
-Wl,--start-group RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB GTPV1U LIB_NAS_UE SECU_CN UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS ${ITTI_LIB} ${MSC_LIB} L2 -Wl,--end-group pthread m rt crypt sctp ${LIBXML2_LIBRARIES} ${LIBXSLT_LIBRARIES} ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${CONFIG_LIBRARIES}
-Wl,--start-group RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB GTPV1U LIB_NAS_UE SECU_CN UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS ${ITTI_LIB} ${MSC_LIB} L2 -Wl,--end-group pthread m rt crypt sctp ${LIBXML2_LIBRARIES} ${LIBXSLT_LIBRARIES} ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${CONFIG_LIBRARIES}
)
add_executable(test_epc_play_scenario
@@ -2002,7 +1991,7 @@ add_executable(test_epc_play_scenario
)
target_include_directories(test_epc_play_scenario PUBLIC /usr/local/share/asn1c)
target_link_libraries (test_epc_play_scenario
-Wl,--start-group RRC_LIB S1AP_LIB X2AP_LIB GTPV1U LIB_NAS_UE SECU_CN UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS ${ITTI_LIB} ${MSC_LIB} -Wl,--end-group pthread m rt crypt sctp ${LIBXML2_LIBRARIES} ${LIBXSLT_LIBRARIES} ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${CONFIG_LIBRARIES}
-Wl,--start-group RRC_LIB S1AP_LIB X2AP_LIB GTPV1U LIB_NAS_UE SECU_CN UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS ${ITTI_LIB} ${MSC_LIB} -Wl,--end-group pthread m rt crypt sctp ${LIBXML2_LIBRARIES} ${LIBXSLT_LIBRARIES} ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${CONFIG_LIBRARIES}
)
@@ -2022,7 +2011,7 @@ foreach(myExe s1ap
${OPENAIR3_DIR}/TEST/test_${myExe}.c
)
target_link_libraries (test_${myExe}
-Wl,--start-group SECU_CN UTIL LFDS -Wl,--end-group m rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${CONFIG_LIBRARIES}
-Wl,--start-group SECU_CN UTIL LFDS -Wl,--end-group m rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${CONFIG_LIBRARIES}
)
endforeach(myExe)
@@ -2032,21 +2021,22 @@ endforeach(myExe)
#ensure that the T header files are generated before targets depending on them
if (${T_TRACER})
add_dependencies(lte-softmodem generate_T)
add_dependencies(lte-softmodem-nos1 generate_T)
add_dependencies(rrh_gw generate_T)
add_dependencies(oaisim generate_T)
add_dependencies(oaisim_nos1 generate_T)
add_dependencies(dlsim generate_T)
add_dependencies(dlsim_tm7 generate_T)
add_dependencies(ulsim generate_T)
add_dependencies(pbchsim generate_T)
add_dependencies(scansim generate_T)
add_dependencies(mbmssim generate_T)
add_dependencies(pdcchsim generate_T)
add_dependencies(pucchsim generate_T)
add_dependencies(prachsim generate_T)
add_dependencies(syncsim generate_T)
foreach(i
#all "add_executable" definitions (except tests, rb_tool, updatefw)
lte-softmodem lte-softmodem-nos1 rrh_gw oaisim oaisim_nos1
dlsim_tm4 dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim
pdcchsim pucchsim prachsim syncsim
#all "add_library" definitions
ITTI RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB
oai_exmimodevif oai_usrpdevif oai_bladerfdevif oai_lmssdrdevif
oai_eth_transpro
FLPT_MSG ASYNC_IF FLEXRAN_AGENT HASHTABLE MSC UTIL OMG_SUMO SECU_OSA
SECU_CN SCHED_LIB PHY L2 default_sched remote_sched RAL MIH CN_UTILS
GTPV1U SCTP_CLIENT UDP LIB_NAS_UE LFDS LFDS7 SIMU SIMU_ETH OPENAIR0_LIB)
if (TARGET ${i})
add_dependencies(${i} generate_T)
endif()
endforeach(i)
endif (${T_TRACER})
##################################################
@@ -2071,11 +2061,16 @@ endforeach()
# force castxml and clang compilation with gnu89 standard
# we can't use cXX standard as pthread_rwlock_t is gnu standard
list(APPEND itti_compiler_options "-std=gnu89")
set (ITTI_H ${ITTI_DIR}/intertask_interface_types.h)
if(EXISTS /usr/bin/gccxml)
set(xml_command gccxml ${itti_compiler_options} -fxml=${OPENAIR_BIN_DIR}/messages.xml ${ITTI_H})
else()
set(xml_command castxml --castxml-gccxml ${itti_compiler_options} ${ITTI_H} -o ${OPENAIR_BIN_DIR}/messages.xml)
endif()
add_custom_command (
OUTPUT ${OPENAIR_BIN_DIR}/messages.xml
COMMAND gccxml ${itti_compiler_options} -fxml=${OPENAIR_BIN_DIR}/messages.xml ${ITTI_H}
COMMAND ${xml_command}
DEPENDS ${S1AP_OAI_generated} ${RRC_FULL_DIR}/asn1_constants.h
)
@@ -2185,16 +2180,16 @@ make_driver(ue_ip ${OPENAIR2_DIR}/NETWORK_DRIVER/UE_IP ${ue_ip_src})
# OCTAVE tools
###############
set(OCT_INCL -I${OPENAIR_TARGETS}/ARCH/EXMIMO/DEFS -I${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB -I${OPENAIR_TARGETS}/ARCH/COMMON)
set(OCT_LIBS -L${CMAKE_CURRENT_BINARY_DIR} -lm -lOPENAIR0_LIB)
set(OCT_LIBS -L${CMAKE_CURRENT_BINARY_DIR} -lm -lOPENAIR0_LIB)
set(OCT_FLAGS -DEXMIMO)
set(OCT_DIR ${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/OCTAVE)
set(OCT_FILES
oarf_config_exmimo.oct
oarf_config_exmimo.oct
oarf_get_frame.oct
oarf_stop.oct
oarf_send_frame.oct
oarf_get_num_detected_cards.oct
oarf_config_exmimo.oct
oarf_get_frame.oct
oarf_stop.oct
oarf_send_frame.oct
oarf_get_num_detected_cards.oct
oarf_stop_without_reset.oct
)
@@ -2204,7 +2199,7 @@ foreach(file IN ITEMS ${OCT_FILES})
OUTPUT ${file}
DEPENDS ${OCT_DIR}/${src} OPENAIR0_LIB
COMMAND mkoctfile
ARGS ${OCT_FLAGS} ${OCT_INCL} ${OCT_LIBS}
ARGS ${OCT_FLAGS} ${OCT_INCL} ${OCT_LIBS}
ARGS -o ${file} ${OCT_DIR}/${src}
COMMENT "Generating ${file}"
VERBATIM

View File

@@ -3,7 +3,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
@@ -88,31 +88,47 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.2 -std=gnu99 -Wall -Wstrict-prototype
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -ggdb -DMALLOC_CHECK_=3")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -ggdb -DMALLOC_CHECK_=3 -O2")
#This is to detect nettle version changes between Ubuntu 14.04/16.04
set ( nettle_cmd "nettle-hash" )
set ( nettle_arg "-V" )
execute_process(COMMAND ${nettle_cmd} ${nettle_arg} RESULT_VARIABLE rv OUTPUT_VARIABLE ov ERROR_VARIABLE ev)
string(REGEX MATCH "[+-]?[0-9]+([.][0-9]+)?" nv ${ov})
message("NETTLE_VERSION = ${nv}")
# we need to remove decimal as floating point arithematic does not work properly with C preprocessor
STRING(REGEX REPLACE "[.]" "" nv ${nv})
if ("${nv}" STREQUAL "")
message( FATAL_ERROR "The nettle version not detected properly. Try to run build_oai -I again" )
endif()
set (NETTLE_VERSION "${nv}")
add_definitions("-DNETTLE_VERSION=${NETTLE_VERSION}")
##This is to detect nettle version changes between Ubuntu 14.04/16.04
#set ( nettle_cmd "nettle-hash" )
#set ( nettle_arg "-V" )
#execute_process(COMMAND ${nettle_cmd} ${nettle_arg} RESULT_VARIABLE rv OUTPUT_VARIABLE ov ERROR_VARIABLE ev)
#
#string(REGEX MATCH "[+-]?[0-9]+([.][0-9]+)?" nv ${ov})
#
#message("NETTLE_VERSION = ${nv}")
#
## we need to remove decimal as floating point arithematic does not work properly with C preprocessor
#STRING(REGEX REPLACE "[.]" "" nv ${nv})
#
#if ("${nv}" STREQUAL "")
# message( FATAL_ERROR "The nettle version not detected properly. Try to run build_oai -I again" )
#endif()
#
#set (NETTLE_VERSION "${nv}")
#add_definitions("-DNETTLE_VERSION=${NETTLE_VERSION}")
include(FindPkgConfig)
INCLUDE(FindNettle)
IF( NOT NETTLE_FOUND )
MESSAGE( SEND_ERROR "Nettle is required" )
ENDIF( NOT NETTLE_FOUND )
pkg_search_module(NETTLE nettle)
if(NOT ${NETTLE_FOUND})
message( FATAL_ERROR "PACKAGE nettle not found: some targets will fail. Run build_oai -I again!")
else()
include_directories(${NETTLE_INCLUDE_DIRS})
endif()
message ("NETTLE VERSION_INSTALLED = ${NETTLE_VERSION}")
string(REGEX REPLACE "([0-9]+).*" "\\1" NETTLE_VERSION_MAJOR ${NETTLE_VERSION})
string(REGEX REPLACE "[0-9]+\\.([0-9]+).*" "\\1" NETTLE_VERSION_MINOR ${NETTLE_VERSION})
message ("NETTLE_VERSION_MAJOR = ${NETTLE_VERSION_MAJOR}")
message ("NETTLE_VERSION_MINOR = ${NETTLE_VERSION_MINOR}")
if ("${NETTLE_VERSION_MAJOR}" STREQUAL "" OR "${NETTLE_VERSION_MINOR}" STREQUAL "")
message( FATAL_ERROR "The nettle version not detected properly. Try to run build_oai -I again" )
endif()
add_definitions("-DNETTLE_VERSION_MAJOR=${NETTLE_VERSION_MAJOR}")
add_definitions("-DNETTLE_VERSION_MINOR=${NETTLE_VERSION_MINOR}")
pkg_search_module(OPENSSL openssl REQUIRED)
@@ -215,8 +231,8 @@ set(api_user_HDR
add_library(api_user ${api_user_SRC} ${api_user_HDR})
target_include_directories(api_user PRIVATE ${OPENAIR_NAS_DIR}/UE/API/USER
${OPENAIR_NAS_DIR}/UE
${OPENAIR_NAS_DIR}/COMMON
${OPENAIR_NAS_DIR}/UE
)
################################################################################
@@ -397,6 +413,7 @@ target_include_directories(emm PRIVATE
${OPENAIR_DIR}/common/utils/msc
${OPENAIR_DIR}/common/utils
${OPENAIR_DIR}/openair2/COMMON
${OPENAIR_NAS_DIR}/UE
${OPENAIR_NAS_DIR}/UE/API/USIM
${OPENAIR_NAS_DIR}/UE/EMM
${OPENAIR_NAS_DIR}/COMMON/EMM/MSG
@@ -409,7 +426,6 @@ target_include_directories(emm PRIVATE
# esm LIB
################################################################################
set(esm_SRC
${OPENAIR_NAS_DIR}/UE/ESM/esm_main.c
${OPENAIR_NAS_DIR}/UE/ESM/DedicatedEpsBearerContextActivation.c
${OPENAIR_NAS_DIR}/UE/ESM/DefaultEpsBearerContextActivation.c
${OPENAIR_NAS_DIR}/UE/ESM/EpsBearerContextDeactivation.c
@@ -452,6 +468,7 @@ set(esm_SRC
)
set(esm_HDR
${OPENAIR_TARGETS}/COMMON/openairinterface5g_limits.h
${OPENAIR_NAS_DIR}/UE/ESM/esm_main.h
${OPENAIR_NAS_DIR}/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.h
${OPENAIR_NAS_DIR}/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.h
@@ -481,13 +498,17 @@ set(esm_HDR
${OPENAIR_NAS_DIR}/UE/ESM/SAP/esm_recv.h
${OPENAIR_NAS_DIR}/UE/ESM/SAP/esm_sap.h
${OPENAIR_NAS_DIR}/UE/ESM/SAP/esm_send.h
${OPENAIR_DIR}/common/utils/utils.h
)
add_library(esm ${esm_SRC} ${esm_HDR})
target_include_directories(esm PRIVATE
${OPENAIR_DIR}/common/utils
${OPENAIR_NAS_DIR}/UE
${OPENAIR_NAS_DIR}/UE/API/USER
${OPENAIR_NAS_DIR}/UE/ESM
${OPENAIR_TARGETS}/COMMON
${OPENAIR_NAS_DIR}/COMMON/ESM/MSG
${OPENAIR_NAS_DIR}/UE/ESM/SAP
${OPENAIR_NAS_DIR}/COMMON/IES
@@ -670,6 +691,9 @@ target_include_directories(ies PRIVATE
# EXECUTABLE at_nas_ue
################################################################################
include_directories(
${OPENAIR_TARGETS}/COMMON
${OPENAIR_NAS_DIR}/UE
${OPENAIR_DIR}/common/utils
${OPENAIR_DIR}/common/utils/msc
${OPENAIR3_DIR}/COMMON
${OPENAIR3_DIR}/SECU
@@ -691,6 +715,8 @@ ADD_EXECUTABLE(at_nas_ue ${OPENAIR_NAS_DIR}/UE/UEprocess.c
${OPENAIR_NAS_DIR}/UE/nas_parser.c
${OPENAIR_NAS_DIR}/UE/nas_proc.c
${OPENAIR_NAS_DIR}/UE/nas_user.c
${OPENAIR_DIR}/common/utils/utils.c
${OPENAIR_DIR}/common/utils/system.c
)
target_link_libraries (at_nas_ue

View File

@@ -101,6 +101,19 @@ Obj.# Case# Test# Description
01 51 04 pdcchsim (TBD)
01 51 05 pbchsim (TBD)
01 51 06 mbmssim (TBD)
01 51 10 dlsim_tm4 test cases (Test 1: 10 MHz, R2.FDD (MCS 5), EVA5, -1dB),
(Test 5: 1.4 MHz, R4.FDD (MCS 4), EVA5, 0dB (70%)),
(Test 6: 10 MHz, R3.FDD (MCS 15), EVA5, 6.7dB (70%)),
(Test 6b: 5 MHz, R3-1.FDD (MCS 15), EVA5, 6.7dB (70%)),
(Test 7: 5 MHz, R3-1.FDD (MCS 15), EVA5, 6.7dB (30%)),
(Test 7b: 5 MHz, R3-1.FDD (MCS 15), ETU70, 1.4 dB (30%)),
(Test 10: 5 MHz, R6.FDD (MCS 25), EVA5, 17.4 dB (70%)),
(Test 10b: 5 MHz, R6-1.FDD (MCS 24,18 PRB), EVA5, 17.5dB (70%)),
(Test 11: 10 MHz, R7.FDD (MCS 25), EVA5, 17.7dB (70%))
(TM2 Test 1 10 MHz, R.11 FDD (MCS 14), EVA5, 6.8 dB (70%)),
(TM2 Test 1b 20 MHz, R.11-2 FDD (MCS 13), EVA5, 5.9 dB (70%)),
01 55 lte-softmodem tests with USRP B210 RF as eNB and ALU EPC w/ Bandrich COTS UE for 1TX/1RX (TM1), 2TX/2RX (TM2)
@@ -200,7 +213,7 @@ Obj.# Case# Test# Description
01 63 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX
01 63 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 65 00 lte-softmodem tests with BladeRF RF as eNB and ALU EPC w/ Bandrich COTS UE for 1TX/1RX
01 65 lte-softmodem tests with BladeRF RF as eNB and ALU EPC w/ Bandrich COTS UE for 1TX/1RX
01 65 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
01 65 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX
01 65 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX
@@ -209,7 +222,7 @@ Obj.# Case# Test# Description
01 65 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 70 00 lte-softmodem tests with SoDeRa RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 70 lte-softmodem tests with SoDeRa RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 70 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
01 70 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX
01 70 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX
@@ -218,7 +231,7 @@ Obj.# Case# Test# Description
01 70 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 75 00 lte-softmodem + RRU (NGFI IF4P5, RAW) tests with B210 RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 75 lte-softmodem + RRU (NGFI IF4P5, RAW) tests with B210 RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 75 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
01 75 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX
01 75 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX
@@ -226,7 +239,21 @@ Obj.# Case# Test# Description
01 75 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX
01 75 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 80 00 lte-softmodem + RRU (NGFI) tests with BladeRF RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 76 lte-softmodem + RRU (NGFI IF4P5, UDP) tests with B210 RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 76 00 Band 7 FDD 5MHz UL Throughput (UDP) for 300 sec for 1TX/1RX
01 76 01 Band 7 FDD 10MHz UL Throughput (UDP) for 300 sec for 1TX/1RX
01 76 02 Band 7 FDD 20MHz UL Throughput (UDP) for 300 sec for 1TX/1RX
01 76 03 Band 7 FDD 5MHz DL Throughput (UDP) for 300 sec for 1TX/1RX
01 76 04 Band 7 FDD 10MHz DL Throughput (UDP) for 300 sec for 1TX/1RX
01 76 05 Band 7 FDD 20MHz DL Throughput (UDP) for 300 sec for 1TX/1RX
01 76 06 Band 7 FDD 5MHz UL Throughput (TCP) for 300 sec for 1TX/1RX
01 76 07 Band 7 FDD 10MHz UL Throughput (TCP) for 300 sec for 1TX/1RX
01 76 08 Band 7 FDD 20MHz UL Throughput (TCP) for 300 sec for 1TX/1RX
01 76 09 Band 7 FDD 5MHz DL Throughput (TCP) for 300 sec for 1TX/1RX
01 76 10 Band 7 FDD 10MHz DL Throughput (TCP) for 300 sec for 1TX/1RX
01 76 11 Band 7 FDD 20MHz DL Throughput (TCP) for 300 sec for 1TX/1RX
01 80 lte-softmodem + RRU (NGFI) tests with BladeRF RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 80 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
01 80 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX
01 80 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX
@@ -234,7 +261,7 @@ Obj.# Case# Test# Description
01 80 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX
01 80 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 85 00 lte-softmodem + RRU (NGFI) tests with USRP X310 RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 85 lte-softmodem + RRU (NGFI) tests with USRP X310 RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 85 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
01 85 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX
01 85 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX
@@ -242,6 +269,32 @@ Obj.# Case# Test# Description
01 85 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX
01 85 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 86 lte-softmodem tests with USRP B210 RF as eNB and ALU EPC w/ Huawei e3276 COTS UE for 1TX/1RX (TM1), 2TX/2RX (TM2)
01 86 00 Band 38 TDD 5MHz UL Throughput (UDP) for 300 sec for 1TX/1RX
01 86 01 Band 38 TDD 10MHz UL Throughput (UDP) for 300 sec for 1TX/1RX
01 86 02 Band 38 TDD 20MHz UL Throughput (UDP) for 300 sec for 1TX/1RX
01 86 03 Band 38 TDD 5MHz DL Throughput (UDP) for 300 sec for 1TX/1RX
01 86 04 Band 38 TDD 10MHz DL Throughput (UDP) for 300 sec for 1TX/1RX
01 86 05 Band 38 TDD 20MHz DL Throughput (UDP) for 300 sec for 1TX/1RX
01 86 06 Band 38 TDD 5MHz UL Throughput (UDP) for 300 sec for 2TX/2RX (TM2)
01 86 07 Band 38 TDD 10MHz UL Throughput (UDP) for 300 sec for 2TX/2RX (TM2)
01 86 08 Band 38 TDD 20MHz UL Throughput (UDP) for 300 sec for 2TX/2RX (TM2)
01 86 09 Band 38 TDD 5MHz DL Throughput (UDP) for 300 sec for 2TX/2RX (TM2)
01 86 10 Band 38 TDD 10MHz DL Throughput (UDP) for 300 sec for 2TX/2RX (TM2)
01 86 11 Band 38 TDD 20MHz DL Throughput (UDP) for 300 sec for 2TX/2RX (TM2)
01 86 12 Band 38 TDD 5MHz UL Throughput (TCP) for 300 sec for 1TX/1RX
01 86 13 Band 38 TDD 10MHz UL Throughput (TCP) for 300 sec for 1TX/1RX
01 86 14 Band 38 TDD 20MHz UL Throughput (TCP) for 300 sec for 1TX/1RX
01 86 15 Band 38 TDD 5MHz DL Throughput (TCP) for 300 sec for 1TX/1RX
01 86 16 Band 38 TDD 10MHz DL Throughput (TCP) for 300 sec for 1TX/1RX
01 86 17 Band 38 TDD 20MHz DL Throughput (TCP) for 300 sec for 1TX/1RX
01 86 18 Band 38 TDD 5MHz UL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
01 86 19 Band 38 TDD 10MHz UL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
01 86 20 Band 38 TDD 20MHz UL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
01 86 21 Band 38 TDD 5MHz DL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
01 86 22 Band 38 TDD 10MHz DL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
01 86 23 Band 38 TDD 20MHz DL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
02 55 lte-softmodem tests with USRP B210 RF as eNB and ALU EPC w/ Sony Experia M4 COTS UE for 1TX/1RX and 2TX/2RX (TM2)
02 55 00 Band 7 FDD 5MHz UL Throughput (UDP) for 300 sec for 1TX/1RX
02 55 01 Band 7 FDD 10MHz UL Throughput (UDP) for 300 sec for 1TX/1RX

View File

@@ -3,7 +3,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -3,7 +3,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -3,7 +3,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -941,9 +941,14 @@
(Test 7b, 5 MHz, R3-1.FDD (MCS 15), ETU70, 1.4 dB (30%)),
(Test 10, 5 MHz, R6.FDD (MCS 25), EVA5, 17.4 dB (70%)),
(Test 10b, 5 MHz, R6-1.FDD (MCS 24,18 PRB), EVA5, 17.5dB (70%)),
(Test 11, 10 MHz, R7.FDD (MCS 25), EVA5, 17.7dB (70%))
(Test 11, 10 MHz, R7.FDD (MCS 25), EVA5, 17.7dB (70%)),
(Test 11b, 10 MHz, R7-1.FDD (MCS 25), EVA5, 16.7dB (70%)),
(Test 15, 20 MHz, R.9 FDD (MCS 26), EVA5, 17.6dB (70%)),
(Test 15b, 20 MHz, R.9-2 FDD (MCS 26, 17PRB), EVA5, 17.3dB (70%)),
(Test 15c, 20 MHz, R.9-1 FDD (MCS 26, 83 PRB), EVA5, 16.6dB (70%)),
(TM2 Test 1 10 MHz, R.11 FDD (MCS 14), EVA5, 6.8 dB (70%)),
(TM2 Test 1b 20 MHz, R.11-2 FDD (MCS 13), EVA5, 5.9 dB (70%)),
(TM2 Test 1b 5 MHz, R.11-2 FDD (MCS 13), EVA5, 5.9 dB (70%)),
</desc>
<pre_compile_prog></pre_compile_prog>
<compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
@@ -960,6 +965,9 @@
-m25 -gF -s17.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O70
-m25 -gF -s17.5 -w1.0 -f.2 -n500 -B25 -c3 -z2 -r1022 -O70
-m26 -gF -s17.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70
-m26 -gF -s17.6 -w1.0 -f.2 -n500 -B100 -c2 -z2 -O70
-m26 -gF -s17.3 -w1.0 -f.2 -n500 -B100 -c2 -z2 -r1600 -O70
-m26 -gF -s16.6 -w1.0 -f.2 -n500 -B100 -c2 -z2 -r1899 -O70
-m14 -gF -s6.8 -w1.0 -f.2 -n500 -B50 -c2 -x2 -y2 -z2 -O70
-m13 -gF -s5.9 -w1.0 -f.2 -n500 -B25 -c3 -x2 -y2 -z2 -O70</main_exec_args>
<tags>dlsim.test1 dlsim.test5 dlsim.test6 dlsim.test6b dlsim.test7 dlsim.test7b dlsim.test10 dlsim.test10b dlsim.test11 dlsim.TM2_test1 dlsim.TM2_test1b</tags>
@@ -994,6 +1002,43 @@
<nruns>3</nruns>
</testCase>
<testCase id="015110">
<class>execution</class>
<desc>dlsim_tm4 test cases (Test 1: 10 MHz, R2.FDD (MCS 5), EVA5, -1dB),
(Test 5: 1.4 MHz, R4.FDD (MCS 4), EVA5, 0dB (70%)),
(Test 6, 10 MHz, R3.FDD (MCS 15), EVA5, 6.7dB (70%)),
(Test 6b, 5 MHz, R3-1.FDD (MCS 15), EVA5, 6.7dB (70%)),
(Test 7, 5 MHz, R3-1.FDD (MCS 15), EVA5, 6.7dB (30%)),
(Test 7b, 5 MHz, R3-1.FDD (MCS 15), ETU70, 1.4 dB (30%)),
(Test 10, 5 MHz, R6.FDD (MCS 25), EVA5, 17.4 dB (70%)),
(Test 10b, 5 MHz, R6-1.FDD (MCS 24,18 PRB), EVA5, 17.5dB (70%)),
(Test 11, 10 MHz, R7.FDD (MCS 25), EVA5, 17.7dB (70%))
(TM2 Test 1 10 MHz, R.11 FDD (MCS 14), EVA5, 6.8 dB (70%)),
(TM2 Test 1b 20 MHz, R.11-2 FDD (MCS 13), EVA5, 5.9 dB (70%)),
</desc>
<pre_compile_prog></pre_compile_prog>
<compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</compile_prog>
<compile_prog_args> --phy_simulators -c </compile_prog_args>
<pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</pre_exec>
<pre_exec_args></pre_exec_args>
<main_exec> $OPENAIR_DIR/cmake_targets/lte-simulators/build/dlsim_tm4</main_exec>
<main_exec_args> -m5 -gF -s-1 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70
-m4 -gF -s0 -w1.0 -f.2 -n500 -B6 -c4 -z2 -O70
-m15 -gF -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70
-m14 -gF -s6.7 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O70
-m15 -gG -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O30
-m14 -gG -s1.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O30
-m25 -gF -s17.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O70
-m25 -gF -s17.5 -w1.0 -f.2 -n500 -B25 -c3 -z2 -r1022 -O70
-m26 -gF -s17.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70
-m14 -gF -s6.8 -w1.0 -f.2 -n500 -B50 -c2 -x2 -y2 -z2 -O70
-m13 -gF -s5.9 -w1.0 -f.2 -n500 -B25 -c3 -x2 -y2 -z2 -O70</main_exec_args>
<tags>dlsim_tm4.test1 dlsim_tm4.test5 dlsim_tm4.test6 dlsim_tm4.test6b dlsim_tm4.test7 dlsim_tm4.test7b dlsim_tm4.test10 dlsim_tm4.test10b dlsim_tm4.test11 dlsim_tm4.TM2_test1 dlsim_tm4.TM2_test1b</tags>
<search_expr_true>"passed"</search_expr_true>
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
<nruns>3</nruns>
</testCase>
<testCase id="015500" >
<class>lte-softmodem</class>
<desc></desc>
@@ -8627,6 +8672,43 @@ c
<nruns>10</nruns>
</testCase>
<testCase id="017600"></testCase>
<testCase id="017601"></testCase>
<testCase id="017602"></testCase>
<testCase id="017603"></testCase>
<testCase id="017604"></testCase>
<testCase id="017605"></testCase>
<testCase id="017606"></testCase>
<testCase id="017607"></testCase>
<testCase id="017608"></testCase>
<testCase id="017609"></testCase>
<testCase id="017610"></testCase>
<testCase id="017611"></testCase>
<testCase id="018600"></testCase>
<testCase id="018601"></testCase>
<testCase id="018602"></testCase>
<testCase id="018603"></testCase>
<testCase id="018604"></testCase>
<testCase id="018605"></testCase>
<testCase id="018606"></testCase>
<testCase id="018607"></testCase>
<testCase id="018608"></testCase>
<testCase id="018609"></testCase>
<testCase id="018610"></testCase>
<testCase id="018611"></testCase>
<testCase id="018612"></testCase>
<testCase id="018613"></testCase>
<testCase id="018614"></testCase>
<testCase id="018615"></testCase>
<testCase id="018616"></testCase>
<testCase id="018617"></testCase>
<testCase id="018618"></testCase>
<testCase id="018619"></testCase>
<testCase id="018620"></testCase>
<testCase id="018621"></testCase>
<testCase id="018622"></testCase>
<testCase id="018623"></testCase>
<testCase id="025500" >
<class>lte-softmodem</class>

View File

@@ -3208,6 +3208,316 @@
<!--20 MHz test -->
<testCase id="039400" >
<class>lte-softmodem-noS1</class>
<desc></desc>
<eNB>imb182-desktop</eNB>
<UE>yanbo-M4HM87P-00</UE>
<TimeOut_cmd>300</TimeOut_cmd>
<eNB_working_dir>/tmp</eNB_working_dir>
<eNB_config_file>targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf downlink_frequency 2680000000L</eNB_config_file>
<eNB_compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</eNB_compile_prog>
<eNB_compile_prog_args>-c -w USRP --eNB --noS1</eNB_compile_prog_args>
<eNB_pre_exec>source $OPENAIR_DIR/cmake_targets/tools/init_nas_nos1 eNB</eNB_pre_exec>
<eNB_pre_exec_args></eNB_pre_exec_args>
<eNB_main_exec>$OPENAIR_DIR/cmake_targets/lte_noS1_build_oai/build/lte-softmodem-nos1</eNB_main_exec>
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf -m 28 --single-thread-disable --phy-test</eNB_main_exec_args>
<eNB_traffic_exec></eNB_traffic_exec>
<eNB_traffic_exec_args></eNB_traffic_exec_args>
<eNB_search_expr_true></eNB_search_expr_true>
<eNB_search_expr_false></eNB_search_expr_false>
<eNB_terminate_missing_procs>False</eNB_terminate_missing_procs>
<UE_working_dir>/tmp</UE_working_dir>
<UE_config_file></UE_config_file>
<UE_compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</UE_compile_prog>
<UE_compile_prog_args>-c --UE -w USRP --noS1 --eNB --ue-autotest-trace </UE_compile_prog_args>
<UE_pre_exec>source ./targets/bin/init_nas_nos1 UE</UE_pre_exec>
<UE_pre_exec_args></UE_pre_exec_args>
<UE_main_exec>sleep 20; ./cmake_targets/autotests/tools/run_gdb ./cmake_targets/lte_noS1_build_oai/build/lte-softmodem-nos1 -U -C2680000000 -r100 --ue-scan-carrier --ue-txgain 85 --ue-rxgain 100 -S --phy-test</UE_main_exec>
<UE_main_exec_args></UE_main_exec_args>
<UE_traffic_exec></UE_traffic_exec>
<UE_traffic_exec_args></UE_traffic_exec_args>
<UE_search_expr_true></UE_search_expr_true>
<UE_search_expr_false></UE_search_expr_false>
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
<UE_metric id="UE_DLSCH_BITRATE"
description="UE downlink physical throughput"
regex='(UE_DLSCH_BITRATE) =\s+(\d+\.\d+) kbps.+frame = (\d+)\)'
unit_of_meas = "kbps"
pass_fail_stat = "mean_value"
min_limit = "55008"/>
<UE_metric id="UE_FREQ_OFFSET"
description="UE downlink frequency channel offset"
regex='(UE_FREQ_OFFSET) =\s+(-?\d+) Hz.+frame = (\d+)\)'
unit_of_meas = "Hz"/>
<UE_metric id="UE_RX_OFFSET"
description="UE downlink rx sample offset"
regex='(UE_RX_OFFSET) =\s+(-?\d+).+frame = (\d+)\)'
unit_of_meas = ""/>
<tags>UE_USRP.NOS1.PHYTEST_PERF.BAND7.20MHZ.MCS28</tags>
<nruns>3</nruns><max_ntries>6</max_ntries>
</testCase>
<testCase id="036600" >
<class>lte-softmodem-noS1</class>
<desc></desc>
<eNB>imb182-desktop</eNB>
<UE>yanbo-M4HM87P-00</UE>
<TimeOut_cmd>300</TimeOut_cmd>
<eNB_working_dir>/tmp</eNB_working_dir>
<eNB_config_file>targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf downlink_frequency 2680000000L</eNB_config_file>
<eNB_compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</eNB_compile_prog>
<eNB_compile_prog_args>-c -w USRP --eNB --noS1</eNB_compile_prog_args>
<eNB_pre_exec>source $OPENAIR_DIR/cmake_targets/tools/init_nas_nos1 eNB</eNB_pre_exec>
<eNB_pre_exec_args></eNB_pre_exec_args>
<eNB_main_exec>$OPENAIR_DIR/cmake_targets/lte_noS1_build_oai/build/lte-softmodem-nos1</eNB_main_exec>
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf -m 0 --single-thread-disable --phy-test</eNB_main_exec_args>
<eNB_traffic_exec></eNB_traffic_exec>
<eNB_traffic_exec_args></eNB_traffic_exec_args>
<eNB_search_expr_true></eNB_search_expr_true>
<eNB_search_expr_false></eNB_search_expr_false>
<eNB_terminate_missing_procs>False</eNB_terminate_missing_procs>
<UE_working_dir>/tmp</UE_working_dir>
<UE_config_file></UE_config_file>
<UE_compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</UE_compile_prog>
<UE_compile_prog_args>-c --UE -w USRP --noS1 --eNB --ue-autotest-trace </UE_compile_prog_args>
<UE_pre_exec>source ./targets/bin/init_nas_nos1 UE</UE_pre_exec>
<UE_pre_exec_args></UE_pre_exec_args>
<UE_main_exec>sleep 20; ./cmake_targets/autotests/tools/run_gdb ./cmake_targets/lte_noS1_build_oai/build/lte-softmodem-nos1 -U -C2680000000 -r100 --ue-scan-carrier --ue-txgain 85 --ue-rxgain 100 -S --phy-test</UE_main_exec>
<UE_main_exec_args></UE_main_exec_args>
<UE_traffic_exec></UE_traffic_exec>
<UE_traffic_exec_args></UE_traffic_exec_args>
<UE_search_expr_true></UE_search_expr_true>
<UE_search_expr_false></UE_search_expr_false>
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
<UE_metric id="UE_DLSCH_BITRATE"
description="UE downlink physical throughput"
regex='(UE_DLSCH_BITRATE) =\s+(\d+\.\d+) kbps.+frame = (\d+)\)'
unit_of_meas = "kbps"
pass_fail_stat = "mean_value"
min_limit = "2040"/>
<UE_metric id="UE_FREQ_OFFSET"
description="UE downlink frequency channel offset"
regex='(UE_FREQ_OFFSET) =\s+(-?\d+) Hz.+frame = (\d+)\)'
unit_of_meas = "Hz"/>
<UE_metric id="UE_RX_OFFSET"
description="UE downlink rx sample offset"
regex='(UE_RX_OFFSET) =\s+(-?\d+).+frame = (\d+)\)'
unit_of_meas = ""/>
<tags>UE_USRP.NOS1.PHYTEST_PERF.BAND7.20MHZ.MCS0</tags>
<nruns>3</nruns><max_ntries>6</max_ntries>
</testCase>
<testCase id="038400" >
<class>lte-softmodem-noS1</class>
<desc></desc>
<eNB>imb182-desktop</eNB>
<UE>yanbo-M4HM87P-00</UE>
<TimeOut_cmd>300</TimeOut_cmd>
<eNB_working_dir>/tmp</eNB_working_dir>
<eNB_config_file>targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf downlink_frequency 2680000000L</eNB_config_file>
<eNB_compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</eNB_compile_prog>
<eNB_compile_prog_args>-c -w USRP --eNB --noS1</eNB_compile_prog_args>
<eNB_pre_exec>source $OPENAIR_DIR/cmake_targets/tools/init_nas_nos1 eNB</eNB_pre_exec>
<eNB_pre_exec_args></eNB_pre_exec_args>
<eNB_main_exec>$OPENAIR_DIR/cmake_targets/lte_noS1_build_oai/build/lte-softmodem-nos1</eNB_main_exec>
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf -m 18 --single-thread-disable --phy-test</eNB_main_exec_args>
<eNB_traffic_exec></eNB_traffic_exec>
<eNB_traffic_exec_args></eNB_traffic_exec_args>
<eNB_search_expr_true></eNB_search_expr_true>
<eNB_search_expr_false></eNB_search_expr_false>
<eNB_terminate_missing_procs>False</eNB_terminate_missing_procs>
<UE_working_dir>/tmp</UE_working_dir>
<UE_config_file></UE_config_file>
<UE_compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</UE_compile_prog>
<UE_compile_prog_args>-c --UE -w USRP --noS1 --eNB --ue-autotest-trace </UE_compile_prog_args>
<UE_pre_exec>source ./targets/bin/init_nas_nos1 UE</UE_pre_exec>
<UE_pre_exec_args></UE_pre_exec_args>
<UE_main_exec>sleep 20; ./cmake_targets/autotests/tools/run_gdb ./cmake_targets/lte_noS1_build_oai/build/lte-softmodem-nos1 -U -C2680000000 -r100 --ue-scan-carrier --ue-txgain 85 --ue-rxgain 100 -S --phy-test</UE_main_exec>
<UE_main_exec_args></UE_main_exec_args>
<UE_traffic_exec></UE_traffic_exec>
<UE_traffic_exec_args></UE_traffic_exec_args>
<UE_search_expr_true></UE_search_expr_true>
<UE_search_expr_false></UE_search_expr_false>
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
<UE_metric id="UE_DLSCH_BITRATE"
description="UE downlink physical throughput"
regex='(UE_DLSCH_BITRATE) =\s+(\d+\.\d+) kbps.+frame = (\d+)\)'
unit_of_meas = "kbps"
pass_fail_stat = "mean_value"
min_limit = "23976"/>
<UE_metric id="UE_FREQ_OFFSET"
description="UE downlink frequency channel offset"
regex='(UE_FREQ_OFFSET) =\s+(-?\d+) Hz.+frame = (\d+)\)'
unit_of_meas = "Hz"/>
<UE_metric id="UE_RX_OFFSET"
description="UE downlink rx sample offset"
regex='(UE_RX_OFFSET) =\s+(-?\d+).+frame = (\d+)\)'
unit_of_meas = ""/>
<tags>UE_USRP.NOS1.PHYTEST_PERF.BAND7.20MHZ.MCS18</tags>
<nruns>3</nruns><max_ntries>6</max_ntries>
</testCase>
<testCase id="036630" >
<class>lte-softmodem-noS1</class>
<desc></desc>
<eNB>imb182-desktop</eNB>
<UE>yanbo-M4HM87P-00</UE>
<TimeOut_cmd>700</TimeOut_cmd>
<eNB_working_dir>/tmp</eNB_working_dir>
<eNB_config_file>targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf downlink_frequency 2680000000L</eNB_config_file>
<eNB_compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</eNB_compile_prog>
<eNB_compile_prog_args>-c -w USRP --eNB --noS1</eNB_compile_prog_args>
<eNB_pre_exec>source $OPENAIR_DIR/cmake_targets/tools/init_nas_nos1 eNB</eNB_pre_exec>
<eNB_pre_exec_args></eNB_pre_exec_args>
<eNB_main_exec>$OPENAIR_DIR/cmake_targets/lte_noS1_build_oai/build/lte-softmodem-nos1</eNB_main_exec>
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf -m 0</eNB_main_exec_args>
<eNB_traffic_exec>sleep 80;iperf -c 10.0.1.9 -i 1 -u -b 2M</eNB_traffic_exec>
<eNB_traffic_exec_args></eNB_traffic_exec_args>
<eNB_search_expr_true></eNB_search_expr_true>
<eNB_search_expr_false></eNB_search_expr_false>
<eNB_terminate_missing_procs>False</eNB_terminate_missing_procs>
<UE_working_dir>/tmp</UE_working_dir>
<UE_config_file></UE_config_file>
<UE_compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</UE_compile_prog>
<UE_compile_prog_args>-c --UE -w USRP --noS1 --eNB --ue-autotest-trace </UE_compile_prog_args>
<UE_pre_exec>source ./targets/bin/init_nas_nos1 UE</UE_pre_exec>
<UE_pre_exec_args></UE_pre_exec_args>
<UE_main_exec>sleep 20; ./cmake_targets/autotests/tools/run_gdb ./cmake_targets/lte_noS1_build_oai/build/lte-softmodem-nos1 -U -C2680000000 -r100 --ue-scan-carrier --ue-txgain 85 --ue-rxgain 100 </UE_main_exec>
<UE_main_exec_args></UE_main_exec_args>
<UE_traffic_exec>iperf -s -i 1 -u</UE_traffic_exec>
<UE_traffic_exec_args></UE_traffic_exec_args>
<UE_search_expr_true>600</UE_search_expr_true>
<UE_search_expr_false></UE_search_expr_false>
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
<UE_metric id="UE_DLSCH_BITRATE"
description="UE downlink physical throughput"
regex='(UE_DLSCH_BITRATE) =\s+(\d+\.\d+) kbps.+frame = (\d+)\)'
unit_of_meas = "kbps"/>
<UE_metric id="UE_FREQ_OFFSET"
description="UE downlink frequency channel offset"
regex='(UE_FREQ_OFFSET) =\s+(-?\d+) Hz.+frame = (\d+)\)'
unit_of_meas = "Hz"/>
<UE_metric id="UE_RX_OFFSET"
description="UE downlink rx sample offset"
regex='(UE_RX_OFFSET) =\s+(-?\d+).+frame = (\d+)\)'
unit_of_meas = ""/>
<tags>UE_USRP.NOS1.DATA_IPERF_DL.BAND7.20MHZ.MCS0</tags>
<nruns>3</nruns><max_ntries>6</max_ntries>
</testCase>
<testCase id="038430" >
<class>lte-softmodem-noS1</class>
<desc></desc>
<eNB>imb182-desktop</eNB>
<UE>yanbo-M4HM87P-00</UE>
<TimeOut_cmd>700</TimeOut_cmd>
<eNB_working_dir>/tmp</eNB_working_dir>
<eNB_config_file>targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf downlink_frequency 2680000000L</eNB_config_file>
<eNB_compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</eNB_compile_prog>
<eNB_compile_prog_args>-c -w USRP --eNB --noS1</eNB_compile_prog_args>
<eNB_pre_exec>source $OPENAIR_DIR/cmake_targets/tools/init_nas_nos1 eNB</eNB_pre_exec>
<eNB_pre_exec_args></eNB_pre_exec_args>
<eNB_main_exec>$OPENAIR_DIR/cmake_targets/lte_noS1_build_oai/build/lte-softmodem-nos1</eNB_main_exec>
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf -m 18</eNB_main_exec_args>
<eNB_traffic_exec>sleep 80;iperf -c 10.0.1.9 -i 1 -u -b 24M</eNB_traffic_exec>
<eNB_traffic_exec_args></eNB_traffic_exec_args>
<eNB_search_expr_true></eNB_search_expr_true>
<eNB_search_expr_false></eNB_search_expr_false>
<eNB_terminate_missing_procs>False</eNB_terminate_missing_procs>
<UE_working_dir>/tmp</UE_working_dir>
<UE_config_file></UE_config_file>
<UE_compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</UE_compile_prog>
<UE_compile_prog_args>-c --UE -w USRP --noS1 --eNB --ue-autotest-trace </UE_compile_prog_args>
<UE_pre_exec>source ./targets/bin/init_nas_nos1 UE</UE_pre_exec>
<UE_pre_exec_args></UE_pre_exec_args>
<UE_main_exec>sleep 20; ./cmake_targets/autotests/tools/run_gdb ./cmake_targets/lte_noS1_build_oai/build/lte-softmodem-nos1 -U -C2680000000 -r100 --ue-scan-carrier --ue-txgain 85 --ue-rxgain 100 </UE_main_exec>
<UE_main_exec_args></UE_main_exec_args>
<UE_traffic_exec>iperf -s -i 1 -u</UE_traffic_exec>
<UE_traffic_exec_args></UE_traffic_exec_args>
<UE_search_expr_true>600</UE_search_expr_true>
<UE_search_expr_false></UE_search_expr_false>
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
<UE_metric id="UE_DLSCH_BITRATE"
description="UE downlink physical throughput"
regex='(UE_DLSCH_BITRATE) =\s+(\d+\.\d+) kbps.+frame = (\d+)\)'
unit_of_meas = "kbps"/>
<UE_metric id="UE_FREQ_OFFSET"
description="UE downlink frequency channel offset"
regex='(UE_FREQ_OFFSET) =\s+(-?\d+) Hz.+frame = (\d+)\)'
unit_of_meas = "Hz"/>
<UE_metric id="UE_RX_OFFSET"
description="UE downlink rx sample offset"
regex='(UE_RX_OFFSET) =\s+(-?\d+).+frame = (\d+)\)'
unit_of_meas = ""/>
<tags>UE_USRP.NOS1.DATA_IPERF_DL.BAND7.20MHZ.MCS18</tags>
<nruns>3</nruns><max_ntries>6</max_ntries>
</testCase>
<testCase id="039430" >
<class>lte-softmodem-noS1</class>
<desc></desc>
<eNB>imb182-desktop</eNB>
<UE>yanbo-M4HM87P-00</UE>
<TimeOut_cmd>700</TimeOut_cmd>
<eNB_working_dir>/tmp</eNB_working_dir>
<eNB_config_file>targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf downlink_frequency 2680000000L</eNB_config_file>
<eNB_compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</eNB_compile_prog>
<eNB_compile_prog_args>-c -w USRP --eNB --noS1</eNB_compile_prog_args>
<eNB_pre_exec>source $OPENAIR_DIR/cmake_targets/tools/init_nas_nos1 eNB</eNB_pre_exec>
<eNB_pre_exec_args></eNB_pre_exec_args>
<eNB_main_exec>$OPENAIR_DIR/cmake_targets/lte_noS1_build_oai/build/lte-softmodem-nos1</eNB_main_exec>
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf -m 28</eNB_main_exec_args>
<eNB_traffic_exec>sleep 80;iperf -c 10.0.1.9 -i 1 -u -b 55M</eNB_traffic_exec> <!-- PHY max TP 73.334Mbps -> 75% = 55Mbps -->
<eNB_traffic_exec_args></eNB_traffic_exec_args>
<eNB_search_expr_true></eNB_search_expr_true>
<eNB_search_expr_false></eNB_search_expr_false>
<eNB_terminate_missing_procs>False</eNB_terminate_missing_procs>
<UE_working_dir>/tmp</UE_working_dir>
<UE_config_file></UE_config_file>
<UE_compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</UE_compile_prog>
<UE_compile_prog_args>-c --UE -w USRP --noS1 --eNB --ue-autotest-trace </UE_compile_prog_args>
<UE_pre_exec>source ./targets/bin/init_nas_nos1 UE</UE_pre_exec>
<UE_pre_exec_args></UE_pre_exec_args>
<UE_main_exec>sleep 20; ./cmake_targets/autotests/tools/run_gdb ./cmake_targets/lte_noS1_build_oai/build/lte-softmodem-nos1 -U -C2680000000 -r100 --ue-scan-carrier --ue-txgain 85 --ue-rxgain 100 </UE_main_exec>
<UE_main_exec_args></UE_main_exec_args>
<UE_traffic_exec>iperf -s -i 1 -u</UE_traffic_exec>
<UE_traffic_exec_args></UE_traffic_exec_args>
<UE_search_expr_true>600</UE_search_expr_true>
<UE_search_expr_false></UE_search_expr_false>
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
<UE_metric id="UE_DLSCH_BITRATE"
description="UE downlink physical throughput"
regex='(UE_DLSCH_BITRATE) =\s+(\d+\.\d+) kbps.+frame = (\d+)\)'
unit_of_meas = "kbps"/>
<UE_metric id="UE_FREQ_OFFSET"
description="UE downlink frequency channel offset"
regex='(UE_FREQ_OFFSET) =\s+(-?\d+) Hz.+frame = (\d+)\)'
unit_of_meas = "Hz"/>
<UE_metric id="UE_RX_OFFSET"
description="UE downlink rx sample offset"
regex='(UE_RX_OFFSET) =\s+(-?\d+).+frame = (\d+)\)'
unit_of_meas = ""/>
<tags>UE_USRP.NOS1.DATA_IPERF_DL.BAND7.20MHZ.MCS28</tags>
<nruns>3</nruns><max_ntries>6</max_ntries>
</testCase>
</testCaseList>

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -1,2 +1,5 @@
sudo rmmod nasmesh || true
sudo rmmod ue_ip || true
sudo /opt/ltebox/tools/stop_ltebox || true
sudo killall -9 hss_sim || true
sudo /opt/hss_sim0609/starthss_real

View File

@@ -1,8 +1,13 @@
cd /tmp/oai_test_setup/oai
source oaienv
sudo rmmod nasmesh || true
sudo rmmod ue_ip || true
cd cmake_targets
rm -rf log
mkdir -p log
echo $PRE_BUILD
bash -c "$PRE_BUILD"
echo $BUILD_PROG $BUILD_ARGUMENTS
$BUILD_PROG $BUILD_ARGUMENTS
echo $PRE_EXEC
bash -c "$PRE_EXEC"

View File

@@ -3,6 +3,8 @@ stty isig intr ^C
cd /tmp/oai_test_setup/oai
source oaienv
sudo rmmod nasmesh || true
sudo rmmod ue_ip || true
cd cmake_targets/lte_build_oai/build
ulimit -c unlimited
sudo rm -f core

View File

@@ -0,0 +1,13 @@
#enable control+C reception (to be refined if it does not work)
stty isig intr ^C
cd /tmp/oai_test_setup/oai
source oaienv
sudo rmmod nasmesh || true
sudo rmmod ue_ip || true
cd cmake_targets/autotests/v2/actions
sudo python start_3276.py
sudo wvdial -C wvdial.3276.conf || true
sudo python stop_3276.py

View File

@@ -0,0 +1,59 @@
import time
from modem import quit, Modem
try:
modem = Modem("/dev/ttyUSB0")
#test that modem is there
print "INFO: check modem's presence"
modem.send('AT')
if modem.wait().ret != True:
print "ERROR: no modem?"
quit(1)
#first deactivate
print "INFO: deactivate the modem"
modem.send('AT+CFUN=0')
if modem.wait().ret != True:
print "ERROR: failed deactivating the modem"
quit(1)
#activate the modem
print "INFO: activate the modem"
modem.send('AT+CFUN=1')
if modem.wait().ret != True:
print "ERROR: failed asking modem for activation"
quit(1)
#wait for modem to be connected
#timeout after one minute
print "INFO: wait for modem to be connected (timeout: one minute)"
start_time = time.time()
while True:
modem.send('AT+CGATT?')
r = modem.wait()
if r.ret != True:
print "ERROR: failed checking attachment status of modem"
quit(1)
if "+CGATT: 1" in r.data:
break
if not "CGATT: 0" in r.data:
print "ERROR: bad data when checking attachment status of modem"
quit(1)
time.sleep(0.1)
if time.time() > start_time + 60:
print "ERROR: modem not connected after one minute, close modem"
modem.send('AT+CFUN=0')
r = modem.wait()
if r.ret != True:
print "ERROR: closing modem failed"
quit(1)
print "INFO: modem is connected"
except BaseException, e:
print "ERROR: " + str(e)
quit(1)
quit(0)

View File

@@ -16,6 +16,8 @@ stty isig intr ^C
cd /tmp/oai_test_setup/oai
source oaienv
sudo rmmod nasmesh || true
sudo rmmod ue_ip || true
cd cmake_targets/autotests/v2/actions
python start_bandrich.py

View File

@@ -0,0 +1,29 @@
import time
from modem import quit, Modem
try:
modem = Modem("/dev/ttyUSB0")
#test that modem is there
print "INFO: check modem's presence"
modem.send('AT')
r = modem.wait()
if r.ret != True and "NO CARRIER" not in r.data:
print "ERROR: no modem?"
quit(1)
if "NO CARRIER" in r.data:
print "WARNING: 'NO CARRIER' detected, not sure if handled correctly"
#deactivate the modem
print "INFO: deactivate the modem"
modem.send('AT+CFUN=0')
if modem.wait().ret != True:
print "ERROR: failed asking modem for deactivation"
quit(1)
except BaseException, e:
print "ERROR: " + str(e)
quit(1)
quit(0)

View File

@@ -0,0 +1,27 @@
[Dialer Defaults]
Modem = /dev/ttyUSB0
ISDN = off
Modem Type = Analog Modem
Baud = 9600
Init1 = ATZ
Init2 = AT&F &D2 &C1
Init3 = AT+CGDCONT=1,"IP","oai.ipv4"
Phone = *99#
Phone1 =
Phone2 =
Phone3 =
Phone4 =
Ask Password = off
Password = ''
Username = ImaginLab
Auto Reconnect = off
Abort on Busy = off
Carrier Check = on
Check Def Route = on
Abort on No Dialtone = on
Stupid Mode = on
Idle Seconds = 0
Auto DNS = on
;Minimize = off
;Dock = off
;Do NOT edit this file by hand!

View File

@@ -9,18 +9,24 @@ class alu_test:
openair,
user, password,
log_subdir,
env):
self.epc_machine = epc
self.enb_machine = enb
self.ue_machine = ue
self.openair_dir = openair
self.oai_user = user
self.oai_password = password
self.env = env
env,
enb_rru = "",
enb_rcc = ""):
self.epc_machine = epc
self.enb_machine = enb
self.ue_machine = ue
self.openair_dir = openair
self.oai_user = user
self.oai_password = password
self.env = env
self.enb_rru_machine = enb_rru
self.enb_rcc_machine = enb_rcc
self.task_hss = None
self.task_enb = None
self.task_ue = None
self.task_hss = None
self.task_enb = None
self.task_ue = None
self.task_rru_enb = None
self.task_rcc_enb = None
self.logdir = openair + '/cmake_targets/autotests/log/' + log_subdir
quickshell('mkdir -p ' + self.logdir)
@@ -40,6 +46,10 @@ class alu_test:
self.task_enb.kill()
if self.task_ue != None and self.task_ue.alive():
self.task_ue.kill()
if self.task_rru_enb != None and self.task_rru_enb.alive():
self.task_rru_enb.kill()
if self.task_rcc_enb != None and self.task_rcc_enb.alive():
self.task_rcc_enb.kill()
##########################################################################
# start_epc
@@ -101,8 +111,8 @@ class alu_test:
##########################################################################
# compile_enb
##########################################################################
def compile_enb(self, build_arguments):
log("INFO: ALU test: compile softmodem")
def compile_enb(self, build_arguments, log_suffix=""):
log("INFO: ALU test: compile softmodem on " + self.enb_machine)
envcomp = list(self.env)
envcomp.append('BUILD_ARGUMENTS="' + build_arguments + '"')
#we don't care about BUILD_OUTPUT but required (TODO: change that)
@@ -120,7 +130,8 @@ class alu_test:
self.oai_user,
self.oai_password,
envcomp,
self.logdir + "/compile_softmodem." + self.enb_machine,
self.logdir + "/compile_softmodem." + log_suffix + \
self.enb_machine,
post_action=post_action)
ret = task.wait()
if ret != 0:
@@ -163,49 +174,107 @@ class alu_test:
#os._exit(1)
##########################################################################
# start_bandrich_ue
# start_enb_rru_rcc
##########################################################################
def start_bandrich_ue(self):
log("INFO: ALU test: start bandrich UE")
self.task_ue = Task("actions/start_bandrich.bash",
"start_bandrich",
def start_enb_rru_rcc(self, rru_config_file, rcc_config_file):
#copy wanted configuration files
quickshell("sshpass -p " + self.oai_password +
" scp config/" + rru_config_file + " " +
self.oai_user + "@" + self.enb_rru_machine+":/tmp/enb.conf")
quickshell("sshpass -p " + self.oai_password +
" scp config/" + rcc_config_file + " " +
self.oai_user + "@" + self.enb_rcc_machine+":/tmp/enb.conf")
#run RRU/RCC softmodem
log("INFO: ALU test: run RRU softmodem with configuration file " +
rru_config_file)
self.task_rru_enb = Task("actions/run_enb.bash",
"run_RRU_softmodem",
self.enb_rru_machine,
self.oai_user,
self.oai_password,
self.env,
self.logdir + "/run_softmodem." + self.enb_rru_machine,
event=self.event)
self.task_rru_enb.waitlog('[RRH] binding to')
log("INFO: ALU test: run RCC softmodem with configuration file " +
rcc_config_file)
self.task_rcc_enb = Task("actions/run_enb.bash",
"run_RCC_softmodem",
self.enb_rcc_machine,
self.oai_user,
self.oai_password,
self.env,
self.logdir + "/run_softmodem." + self.enb_rcc_machine,
event=self.event)
self.task_rcc_enb.waitlog('[BBU] local ip addr')
#wait for RRU and RCC to be connected
self.task_rru_enb.waitlog('devices ok (eNB_thread_asynch_rx)')
##########################################################################
# stop_enb_rru_rcc
##########################################################################
def stop_enb_rru_rcc(self):
log("INFO: ALU test: stop RRU/RCC softmodem")
self.task_rru_enb.sendnow("%c" % 3)
ret = self.task_rru_enb.wait()
if ret != 0:
log("ERROR: ALU test: RRU softmodem failed")
#not sure if we have to quit here or not
#os._exit(1)
self.task_rcc_enb.sendnow("%c" % 3)
ret = self.task_rcc_enb.wait()
if ret != 0:
log("ERROR: ALU test: RCC softmodem failed")
#not sure if we have to quit here or not
#os._exit(1)
##########################################################################
# start_ue
##########################################################################
def start_ue(self, ue):
log("INFO: ALU test: start " + ue + " UE")
self.task_ue = Task("actions/start_" + ue + ".bash",
"start_" + ue,
self.ue_machine,
self.oai_user,
self.oai_password,
self.env,
self.logdir + "/start_bandrich." + self.ue_machine,
self.logdir + "/start_" + ue + "." + self.ue_machine,
event=self.event)
self.task_ue.waitlog("local IP address", event=self.event)
self.event.wait()
#at this point one task has died or we have the line in the log
if self.task_ue.waitlog_state != WAITLOG_SUCCESS:
log("ERROR: ALU test: bandrich UE did not connect")
log("ERROR: ALU test: " + ue + " UE did not connect")
raise TestFailed()
self.event.clear()
if ( not self.task_enb.alive() or
if ( (self.task_enb != None and not self.task_enb.alive()) or
(self.task_rru_enb!=None and not self.task_rru_enb.alive()) or
(self.task_rcc_enb!=None and not self.task_rcc_enb.alive()) or
not self.task_hss.alive() or
not self.task_ue.alive()):
log("ERROR: ALU test: eNB, HSS or UE task died")
raise TestFailed()
#get bandrich UE IP
#get UE IP
l = open(self.task_ue.logfile, "r").read()
self.bandrich_ue_ip = re.search("local IP address (.*)\n", l) \
.groups()[0]
log("INFO: ALU test: bandrich UE IP address: " + self.bandrich_ue_ip)
self.ue_ip = re.search("local IP address (.*)\n", l) \
.groups()[0]
log("INFO: ALU test: " + ue + " UE IP address: " + self.ue_ip)
##########################################################################
# stop_bandrich_ue
# stop_ue
##########################################################################
def stop_bandrich_ue(self):
log("INFO: ALU test: stop bandrich UE")
def stop_ue(self, ue):
log("INFO: ALU test: stop " + ue + " UE")
self.task_ue.sendnow("%c" % 3)
ret = self.task_ue.wait()
if ret != 0:
log("ERROR: ALU test: task bandrich UE failed")
log("ERROR: ALU test: task " + ue + " UE failed")
#not sure if we have to quit here or not
#os._exit(1)
@@ -250,14 +319,20 @@ class alu_test:
self.event.wait()
log("DEBUG: event.wait() done")
if ( not self.task_enb.alive() or
if ( (self.task_enb != None and not self.task_enb.alive()) or
(self.task_rru_enb!=None and not self.task_rru_enb.alive()) or
(self.task_rcc_enb!=None and not self.task_rcc_enb.alive()) or
not self.task_hss.alive() or
not self.task_ue.alive()):
log("ERROR: unexpected task exited, test failed, kill all")
if task_traffic_client.alive():
task_traffic_client.kill()
if self.task_enb.alive():
if (self.task_enb != None and self.task_enb.alive()):
self.task_enb.kill()
if (self.task_rru_enb != None and self.task_rru_enb.alive()):
self.task_rru_enb.kill()
if (self.task_rcc_enb != None and self.task_rcc_enb.alive()):
self.task_rcc_enb.kill()
if self.task_ue.alive():
self.task_ue.kill()
@@ -277,7 +352,9 @@ class alu_test:
self.event.clear()
if ( not self.task_enb.alive() or
if ( (self.task_enb != None and not self.task_enb.alive()) or
(self.task_rru_enb!=None and not self.task_rru_enb.alive()) or
(self.task_rcc_enb!=None and not self.task_rcc_enb.alive()) or
not self.task_hss.alive() or
not self.task_ue.alive()):
log("ERROR: ALU test: eNB, HSS or UE task died")
@@ -286,47 +363,47 @@ class alu_test:
##########################################################################
# dl_tcp
##########################################################################
def dl_tcp(self):
self._do_traffic("bandrich downlink TCP",
"server_tcp", self.ue_machine, self.bandrich_ue_ip,
def dl_tcp(self, ue):
self._do_traffic(ue + " downlink TCP",
"server_tcp", self.ue_machine, self.ue_ip,
"client_tcp", self.epc_machine,
"Server listening on TCP port 5001",
"bandrich_downlink_tcp_server",
"bandrich_downlink_tcp_client")
ue + "_downlink_tcp_server",
ue + "_downlink_tcp_client")
##########################################################################
# ul_tcp
##########################################################################
def ul_tcp(self):
self._do_traffic("bandrich uplink TCP",
def ul_tcp(self, ue):
self._do_traffic(ue + " uplink TCP",
"server_tcp", self.epc_machine, "192.172.0.1",
"client_tcp", self.ue_machine,
"Server listening on TCP port 5001",
"bandrich_uplink_tcp_server",
"bandrich_uplink_tcp_client")
ue + "_uplink_tcp_server",
ue + "_uplink_tcp_client")
##########################################################################
# dl_udp
##########################################################################
def dl_udp(self, bandwidth):
self._do_traffic("bandrich downlink UDP",
"server_udp", self.ue_machine, self.bandrich_ue_ip,
def dl_udp(self, ue, bandwidth):
self._do_traffic(ue + " downlink UDP",
"server_udp", self.ue_machine, self.ue_ip,
"client_udp", self.epc_machine,
"Server listening on UDP port 5001",
"bandrich_downlink_udp_server",
"bandrich_downlink_udp_client",
ue + "_downlink_udp_server",
ue + "_downlink_udp_client",
udp_bandwidth=bandwidth)
##########################################################################
# ul_udp
##########################################################################
def ul_udp(self, bandwidth):
self._do_traffic("bandrich uplink UDP",
def ul_udp(self, ue, bandwidth):
self._do_traffic(ue + " uplink UDP",
"server_udp", self.epc_machine, "192.172.0.1",
"client_udp", self.ue_machine,
"Server listening on UDP port 5001",
"bandrich_uplink_udp_server",
"bandrich_uplink_udp_client",
ue + "_uplink_udp_server",
ue + "_uplink_udp_client",
udp_bandwidth=bandwidth)
##############################################################################
@@ -334,22 +411,72 @@ class alu_test:
##############################################################################
def run_b210_alu(tests, openair_dir, oai_user, oai_password, env):
if not do_tests(tests['b210']['alu']):
return
#compile eNB
#compile eNB (two cases: one for FDD and one for TDD)
alu = alu_test(epc='amerique', enb='hutch', ue='stevens',
openair=openair_dir,
user=oai_user, password=oai_password,
log_subdir='enb_tests/b210_alu/compile_enb',
env=env)
if do_tests(tests['b210']['alu']['fdd']):
alu = alu_test(epc='amerique', enb='hutch', ue='stevens',
openair=openair_dir,
user=oai_user, password=oai_password,
log_subdir='enb_tests/b210_alu/compile_enb_fdd',
env=env)
try:
alu.compile_enb("--eNB -w USRP -x -c --disable-cpu-affinity")
except BaseException, e:
log("ERROR: ALU test failed: eNB compilation failed: " + str(e))
return
if do_tests(tests['b210']['alu']['tdd']):
alu = alu_test(epc='amerique', enb='calisson', ue='mozart',
openair=openair_dir,
user=oai_user, password=oai_password,
log_subdir='enb_tests/b210_alu/compile_enb_tdd',
env=env)
try:
alu.compile_enb("--eNB -w USRP -x -c --disable-cpu-affinity")
except BaseException, e:
log("ERROR: ALU test failed: eNB compilation failed: " + str(e))
return
#compile RRU/RCC eNB
if do_tests(tests['remote b210']['alu']['fdd']):
#RRU
alu = alu_test(epc='amerique', ue='stevens',
openair=openair_dir,
user=oai_user, password=oai_password,
log_subdir='enb_tests/remote_b210_alu/compile_enb_rru',
env=env,
#hack: set 'enb' to reuse 'compile_enb'
enb = 'superserver',
enb_rru = 'superserver', enb_rcc = 'starsky')
try:
alu.compile_enb("--eNB -x -c -w USRP -t ETHERNET",
log_suffix='rru.')
except BaseException, e:
log("ERROR: ALU test failed: RRU eNB compilation failed: "+str(e))
return
#RCC
alu = alu_test(epc='amerique', ue='stevens',
openair=openair_dir,
user=oai_user, password=oai_password,
log_subdir='enb_tests/remote_b210_alu/compile_enb_rcc',
env=env,
#hack: set 'enb' to reuse 'compile_enb'
enb = 'starsky',
enb_rru = 'superserver', enb_rcc = 'starsky')
try:
alu.compile_enb("--eNB -w None -t ETHERNET",
log_suffix='rcc.')
except BaseException, e:
log("ERROR: ALU test failed: RCC eNB compilation failed: "+str(e))
return
try:
alu.compile_enb("--eNB -w USRP -x -c --disable-cpu-affinity")
except BaseException, e:
log("ERROR: ALU test failed: eNB compilation failed: " + str(e))
return
#run tests
@@ -361,29 +488,64 @@ def run_b210_alu(tests, openair_dir, oai_user, oai_password, env):
"10" : "15M",
"20" : "15M" }
for bw in ('5', '10', '20'):
if do_tests(tests['b210']['alu'][bw]):
log("INFO: ALU test: run tests for bandwidth " + bw + " MHz")
ctest = tests['b210']['alu'][bw]
alu = alu_test(epc='amerique', enb='hutch', ue='stevens',
openair=openair_dir,
user=oai_user, password=oai_password,
log_subdir='enb_tests/b210_alu/' + bw,
env=env)
try:
alu.start_epc()
alu.start_enb("enb.band7.tm1.usrpb210." + bw + "MHz.conf")
if do_tests(ctest['bandrich']):
alu.start_bandrich_ue()
if do_tests(ctest['bandrich']['tcp']['dl']): alu.dl_tcp()
if do_tests(ctest['bandrich']['tcp']['ul']): alu.ul_tcp()
if do_tests(ctest['bandrich']['udp']['dl']):
alu.dl_udp(udp_dl_bandwidth[bw])
if do_tests(ctest['bandrich']['udp']['ul']):
alu.ul_udp(udp_ul_bandwidth[bw])
alu.stop_bandrich_ue()
alu.stop_enb()
alu.stop_epc()
except BaseException, e:
log("ERROR: ALU test failed: " + str(e))
alu.finish()
ue_machine = { "fdd" : "stevens",
"tdd" : "mozart" }
enb_machine = { "fdd" : "hutch",
"tdd" : "calisson" }
band = { "fdd" : "7",
"tdd" : "38" }
for mode in ('fdd', 'tdd'):
for bw in ('5', '10', '20'):
if do_tests(tests['b210']['alu'][mode][bw]):
log("INFO: ALU test: run tests for bandwidth " + bw + " MHz")
ctest = tests['b210']['alu'][mode][bw]
alu = alu_test(epc='amerique', enb=enb_machine[mode], ue=ue_machine[mode],
openair=openair_dir,
user=oai_user, password=oai_password,
log_subdir='enb_tests/b210_alu/' + mode + "/" + bw,
env=env)
try:
alu.start_epc()
alu.start_enb("enb.band" + band[mode] + ".tm1.usrpb210." + mode + "." + bw + "MHz.conf")
for ue in ('bandrich', '3276'):
if ue in ctest and do_tests(ctest[ue]):
alu.start_ue(ue)
if do_tests(ctest[ue]['tcp']['dl']): alu.dl_tcp(ue)
if do_tests(ctest[ue]['tcp']['ul']): alu.ul_tcp(ue)
if do_tests(ctest[ue]['udp']['dl']): alu.dl_udp(ue, udp_dl_bandwidth[bw])
if do_tests(ctest[ue]['udp']['ul']): alu.ul_udp(ue, udp_ul_bandwidth[bw])
alu.stop_ue(ue)
alu.stop_enb()
alu.stop_epc()
except BaseException, e:
log("ERROR: ALU test failed: " + str(e))
alu.finish()
if do_tests(tests['remote b210']['alu'][mode][bw]):
log("INFO: ALU test: run RRU/RCC tests for bandwidth " + bw + " MHz")
ctest = tests['remote b210']['alu'][mode][bw]
alu = alu_test(epc='amerique', enb='', ue=ue_machine[mode],
openair=openair_dir,
user=oai_user, password=oai_password,
log_subdir='enb_tests/remote_b210_alu/' + bw,
env=env,
enb_rru='superserver', enb_rcc='starsky')
try:
alu.start_epc()
alu.start_enb_rru_rcc("rru.band7.tm1.if4p5." + bw + "MHz.udp.usrpb210.conf",
"rcc.band7.tm1.if4p5." + bw + "MHz.conf")
for ue in ('bandrich', '3276'):
if ue in ctest and do_tests(ctest[ue]):
alu.start_ue(ue)
if do_tests(ctest[ue]['tcp']['dl']): alu.dl_tcp(ue)
if do_tests(ctest[ue]['tcp']['ul']): alu.ul_tcp(ue)
if do_tests(ctest[ue]['udp']['dl']): alu.dl_udp(ue, udp_dl_bandwidth[bw])
if do_tests(ctest[ue]['udp']['ul']): alu.ul_udp(ue, udp_ul_bandwidth[bw])
alu.stop_ue(ue)
alu.stop_enb_rru_rcc()
alu.stop_epc()
except BaseException, e:
log("ERROR: ALU test failed: " + str(e))
alu.finish()

View File

@@ -0,0 +1,175 @@
Active_eNBs = ( "eNB_Eurecom_LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
////////// Identification parameters:
eNB_ID = 0xe00;
cell_type = "CELL_MACRO_ENB";
eNB_name = "eNB_Eurecom_LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
mobile_country_code = "208";
mobile_network_code = "92";
////////// Physical parameters:
component_carriers = (
{
node_function = "eNodeB_3GPP";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "TDD";
tdd_config = 3;
tdd_config_s = 0;
prefix_type = "NORMAL";
eutra_band = 38;
downlink_frequency = 2580000000L;
uplink_frequency_offset = 0;
Nid_cell = 0;
N_RB_DL = 50;
Nid_cell_mbsfn = 0;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
tx_gain = 90;
rx_gain = 125;
prach_root = 0;
prach_config_index = 0;
prach_high_speed = "DISABLE";
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 0;
pucch_nCS_AN = 0;
pucch_n1_AN = 32;
pdsch_referenceSignalPower = -24;
pdsch_p_b = 0;
pusch_n_SB = 1;
pusch_enable64QAM = "DISABLE";
pusch_hoppingMode = "interSubFrame";
pusch_hoppingOffset = 0;
pusch_groupHoppingEnabled = "ENABLE";
pusch_groupAssignment = 0;
pusch_sequenceHoppingEnabled = "DISABLE";
pusch_nDMRS1 = 1;
phich_duration = "NORMAL";
phich_resource = "ONESIXTH";
srs_enable = "DISABLE";
/* srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;*/
pusch_p0_Nominal = -90;
pusch_alpha = "AL1";
pucch_p0_Nominal = -96;
msg3_delta_Preamble = 6;
pucch_deltaF_Format1 = "deltaF2";
pucch_deltaF_Format1b = "deltaF3";
pucch_deltaF_Format2 = "deltaF0";
pucch_deltaF_Format2a = "deltaF0";
pucch_deltaF_Format2b = "deltaF0";
rach_numberOfRA_Preambles = 64;
rach_preamblesGroupAConfig = "DISABLE";
/*
rach_sizeOfRA_PreamblesGroupA = ;
rach_messageSizeGroupA = ;
rach_messagePowerOffsetGroupB = ;
*/
rach_powerRampingStep = 4;
rach_preambleInitialReceivedTargetPower = -104;
rach_preambleTransMax = 10;
rach_raResponseWindowSize = 10;
rach_macContentionResolutionTimer = 48;
rach_maxHARQ_Msg3Tx = 4;
pcch_default_PagingCycle = 128;
pcch_nB = "oneT";
bcch_modificationPeriodCoeff = 2;
ue_TimersAndConstants_t300 = 1000;
ue_TimersAndConstants_t301 = 1000;
ue_TimersAndConstants_t310 = 1000;
ue_TimersAndConstants_t311 = 10000;
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
}
);
srb1_parameters :
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.12.26";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eth6";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.82/24";
ENB_INTERFACE_NAME_FOR_S1U = "eth6";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.82/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
}
);

View File

@@ -0,0 +1,175 @@
Active_eNBs = ( "eNB_Eurecom_LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
////////// Identification parameters:
eNB_ID = 0xe00;
cell_type = "CELL_MACRO_ENB";
eNB_name = "eNB_Eurecom_LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
mobile_country_code = "208";
mobile_network_code = "92";
////////// Physical parameters:
component_carriers = (
{
node_function = "eNodeB_3GPP";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "TDD";
tdd_config = 3;
tdd_config_s = 0;
prefix_type = "NORMAL";
eutra_band = 38;
downlink_frequency = 2580000000L;
uplink_frequency_offset = 0;
Nid_cell = 0;
N_RB_DL = 100;
Nid_cell_mbsfn = 0;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
tx_gain = 90;
rx_gain = 125;
prach_root = 0;
prach_config_index = 0;
prach_high_speed = "DISABLE";
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 0;
pucch_nCS_AN = 0;
pucch_n1_AN = 32;
pdsch_referenceSignalPower = -24;
pdsch_p_b = 0;
pusch_n_SB = 1;
pusch_enable64QAM = "DISABLE";
pusch_hoppingMode = "interSubFrame";
pusch_hoppingOffset = 0;
pusch_groupHoppingEnabled = "ENABLE";
pusch_groupAssignment = 0;
pusch_sequenceHoppingEnabled = "DISABLE";
pusch_nDMRS1 = 1;
phich_duration = "NORMAL";
phich_resource = "ONESIXTH";
srs_enable = "DISABLE";
/* srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;*/
pusch_p0_Nominal = -90;
pusch_alpha = "AL1";
pucch_p0_Nominal = -96;
msg3_delta_Preamble = 6;
pucch_deltaF_Format1 = "deltaF2";
pucch_deltaF_Format1b = "deltaF3";
pucch_deltaF_Format2 = "deltaF0";
pucch_deltaF_Format2a = "deltaF0";
pucch_deltaF_Format2b = "deltaF0";
rach_numberOfRA_Preambles = 64;
rach_preamblesGroupAConfig = "DISABLE";
/*
rach_sizeOfRA_PreamblesGroupA = ;
rach_messageSizeGroupA = ;
rach_messagePowerOffsetGroupB = ;
*/
rach_powerRampingStep = 4;
rach_preambleInitialReceivedTargetPower = -104;
rach_preambleTransMax = 10;
rach_raResponseWindowSize = 10;
rach_macContentionResolutionTimer = 48;
rach_maxHARQ_Msg3Tx = 4;
pcch_default_PagingCycle = 128;
pcch_nB = "oneT";
bcch_modificationPeriodCoeff = 2;
ue_TimersAndConstants_t300 = 1000;
ue_TimersAndConstants_t301 = 1000;
ue_TimersAndConstants_t310 = 1000;
ue_TimersAndConstants_t311 = 10000;
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
}
);
srb1_parameters :
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.12.26";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eth6";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.82/24";
ENB_INTERFACE_NAME_FOR_S1U = "eth6";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.82/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
}
);

View File

@@ -0,0 +1,175 @@
Active_eNBs = ( "eNB_Eurecom_LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
////////// Identification parameters:
eNB_ID = 0xe00;
cell_type = "CELL_MACRO_ENB";
eNB_name = "eNB_Eurecom_LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
mobile_country_code = "208";
mobile_network_code = "92";
////////// Physical parameters:
component_carriers = (
{
node_function = "eNodeB_3GPP";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "TDD";
tdd_config = 3;
tdd_config_s = 0;
prefix_type = "NORMAL";
eutra_band = 38;
downlink_frequency = 2580000000L;
uplink_frequency_offset = 0;
Nid_cell = 0;
N_RB_DL = 25;
Nid_cell_mbsfn = 0;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
tx_gain = 90;
rx_gain = 125;
prach_root = 0;
prach_config_index = 0;
prach_high_speed = "DISABLE";
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 0;
pucch_nCS_AN = 0;
pucch_n1_AN = 32;
pdsch_referenceSignalPower = -24;
pdsch_p_b = 0;
pusch_n_SB = 1;
pusch_enable64QAM = "DISABLE";
pusch_hoppingMode = "interSubFrame";
pusch_hoppingOffset = 0;
pusch_groupHoppingEnabled = "ENABLE";
pusch_groupAssignment = 0;
pusch_sequenceHoppingEnabled = "DISABLE";
pusch_nDMRS1 = 1;
phich_duration = "NORMAL";
phich_resource = "ONESIXTH";
srs_enable = "DISABLE";
/* srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;*/
pusch_p0_Nominal = -90;
pusch_alpha = "AL1";
pucch_p0_Nominal = -96;
msg3_delta_Preamble = 6;
pucch_deltaF_Format1 = "deltaF2";
pucch_deltaF_Format1b = "deltaF3";
pucch_deltaF_Format2 = "deltaF0";
pucch_deltaF_Format2a = "deltaF0";
pucch_deltaF_Format2b = "deltaF0";
rach_numberOfRA_Preambles = 64;
rach_preamblesGroupAConfig = "DISABLE";
/*
rach_sizeOfRA_PreamblesGroupA = ;
rach_messageSizeGroupA = ;
rach_messagePowerOffsetGroupB = ;
*/
rach_powerRampingStep = 4;
rach_preambleInitialReceivedTargetPower = -104;
rach_preambleTransMax = 10;
rach_raResponseWindowSize = 10;
rach_macContentionResolutionTimer = 48;
rach_maxHARQ_Msg3Tx = 4;
pcch_default_PagingCycle = 128;
pcch_nB = "oneT";
bcch_modificationPeriodCoeff = 2;
ue_TimersAndConstants_t300 = 1000;
ue_TimersAndConstants_t301 = 1000;
ue_TimersAndConstants_t310 = 1000;
ue_TimersAndConstants_t311 = 10000;
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
}
);
srb1_parameters :
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.12.26";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eth6";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.82/24";
ENB_INTERFACE_NAME_FOR_S1U = "eth6";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.82/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
}
);

View File

@@ -47,7 +47,7 @@ eNBs =
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 1;
pucch_nRB_CQI = 0;
pucch_nCS_AN = 0;
pucch_n1_AN = 32;
pdsch_referenceSignalPower = -24;

View File

@@ -47,7 +47,7 @@ eNBs =
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 1;
pucch_nRB_CQI = 0;
pucch_nCS_AN = 0;
pucch_n1_AN = 32;
pdsch_referenceSignalPower = -24;

View File

@@ -47,7 +47,7 @@ eNBs =
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 1;
pucch_nRB_CQI = 0;
pucch_nCS_AN = 0;
pucch_n1_AN = 32;
pdsch_referenceSignalPower = -24;

View File

@@ -0,0 +1,192 @@
Active_eNBs = ( "eNB_Eurecom_LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
////////// Identification parameters:
eNB_ID = 0xe00;
cell_type = "CELL_MACRO_ENB";
eNB_name = "eNB_Eurecom_LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
mobile_country_code = "208";
mobile_network_code = "92";
////////// Physical parameters:
component_carriers = (
{
node_function = "NGFI_RCC_IF4p5";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "FDD";
tdd_config = 3;
tdd_config_s = 0;
prefix_type = "NORMAL";
eutra_band = 7;
downlink_frequency = 2660000000L;
uplink_frequency_offset = -120000000;
Nid_cell = 0;
N_RB_DL = 50;
Nid_cell_mbsfn = 0;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
tx_gain = 90;
rx_gain = 125;
prach_root = 0;
prach_config_index = 0;
prach_high_speed = "DISABLE";
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 0;
pucch_nCS_AN = 0;
pucch_n1_AN = 32;
pdsch_referenceSignalPower = -29;
pdsch_p_b = 0;
pusch_n_SB = 1;
pusch_enable64QAM = "DISABLE";
pusch_hoppingMode = "interSubFrame";
pusch_hoppingOffset = 0;
pusch_groupHoppingEnabled = "ENABLE";
pusch_groupAssignment = 0;
pusch_sequenceHoppingEnabled = "DISABLE";
pusch_nDMRS1 = 1;
phich_duration = "NORMAL";
phich_resource = "ONESIXTH";
srs_enable = "DISABLE";
/* srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;*/
pusch_p0_Nominal = -96;
pusch_alpha = "AL1";
pucch_p0_Nominal = -104;
msg3_delta_Preamble = 6;
pucch_deltaF_Format1 = "deltaF2";
pucch_deltaF_Format1b = "deltaF3";
pucch_deltaF_Format2 = "deltaF0";
pucch_deltaF_Format2a = "deltaF0";
pucch_deltaF_Format2b = "deltaF0";
rach_numberOfRA_Preambles = 64;
rach_preamblesGroupAConfig = "DISABLE";
/*
rach_sizeOfRA_PreamblesGroupA = ;
rach_messageSizeGroupA = ;
rach_messagePowerOffsetGroupB = ;
*/
rach_powerRampingStep = 4;
rach_preambleInitialReceivedTargetPower = -108;
rach_preambleTransMax = 10;
rach_raResponseWindowSize = 10;
rach_macContentionResolutionTimer = 48;
rach_maxHARQ_Msg3Tx = 4;
pcch_default_PagingCycle = 128;
pcch_nB = "oneT";
bcch_modificationPeriodCoeff = 2;
ue_TimersAndConstants_t300 = 1000;
ue_TimersAndConstants_t301 = 1000;
ue_TimersAndConstants_t310 = 1000;
ue_TimersAndConstants_t311 = 10000;
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
}
);
srb1_parameters :
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.12.26";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.18/24";
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.18/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
rrh_gw_config = (
{
local_if_name = "eth1";
remote_address = "10.10.10.157";
local_address = "10.10.10.18";
local_port = 50000; #for raw option local port must be the same to remote
remote_port = 50000;
rrh_gw_active = "yes";
tr_preference = "udp_if4p5";
rf_preference = "usrp_b200";
iq_txshift = 4;
tx_sample_advance = 80;
tx_scheduling_advance = 9;
if_compression = "alaw";
}
);
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
}
);

View File

@@ -0,0 +1,192 @@
Active_eNBs = ( "eNB_Eurecom_LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
////////// Identification parameters:
eNB_ID = 0xe00;
cell_type = "CELL_MACRO_ENB";
eNB_name = "eNB_Eurecom_LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
mobile_country_code = "208";
mobile_network_code = "92";
////////// Physical parameters:
component_carriers = (
{
node_function = "NGFI_RCC_IF4p5";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "FDD";
tdd_config = 3;
tdd_config_s = 0;
prefix_type = "NORMAL";
eutra_band = 7;
downlink_frequency = 2660000000L;
uplink_frequency_offset = -120000000;
Nid_cell = 0;
N_RB_DL = 100;
Nid_cell_mbsfn = 0;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
tx_gain = 90;
rx_gain = 125;
prach_root = 0;
prach_config_index = 0;
prach_high_speed = "DISABLE";
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 0;
pucch_nCS_AN = 0;
pucch_n1_AN = 32;
pdsch_referenceSignalPower = -29;
pdsch_p_b = 0;
pusch_n_SB = 1;
pusch_enable64QAM = "DISABLE";
pusch_hoppingMode = "interSubFrame";
pusch_hoppingOffset = 0;
pusch_groupHoppingEnabled = "ENABLE";
pusch_groupAssignment = 0;
pusch_sequenceHoppingEnabled = "DISABLE";
pusch_nDMRS1 = 1;
phich_duration = "NORMAL";
phich_resource = "ONESIXTH";
srs_enable = "DISABLE";
/* srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;*/
pusch_p0_Nominal = -96;
pusch_alpha = "AL1";
pucch_p0_Nominal = -104;
msg3_delta_Preamble = 6;
pucch_deltaF_Format1 = "deltaF2";
pucch_deltaF_Format1b = "deltaF3";
pucch_deltaF_Format2 = "deltaF0";
pucch_deltaF_Format2a = "deltaF0";
pucch_deltaF_Format2b = "deltaF0";
rach_numberOfRA_Preambles = 64;
rach_preamblesGroupAConfig = "DISABLE";
/*
rach_sizeOfRA_PreamblesGroupA = ;
rach_messageSizeGroupA = ;
rach_messagePowerOffsetGroupB = ;
*/
rach_powerRampingStep = 4;
rach_preambleInitialReceivedTargetPower = -108;
rach_preambleTransMax = 10;
rach_raResponseWindowSize = 10;
rach_macContentionResolutionTimer = 48;
rach_maxHARQ_Msg3Tx = 4;
pcch_default_PagingCycle = 128;
pcch_nB = "oneT";
bcch_modificationPeriodCoeff = 2;
ue_TimersAndConstants_t300 = 1000;
ue_TimersAndConstants_t301 = 1000;
ue_TimersAndConstants_t310 = 1000;
ue_TimersAndConstants_t311 = 10000;
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
}
);
srb1_parameters :
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.12.26";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.18/24";
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.18/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
rrh_gw_config = (
{
local_if_name = "eth1";
remote_address = "10.10.10.157";
local_address = "10.10.10.18";
local_port = 50000; #for raw option local port must be the same to remote
remote_port = 50000;
rrh_gw_active = "yes";
tr_preference = "udp_if4p5";
rf_preference = "usrp_b200";
iq_txshift = 4;
tx_sample_advance = 80;
tx_scheduling_advance = 9;
if_compression = "alaw";
}
);
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
}
);

View File

@@ -0,0 +1,192 @@
Active_eNBs = ( "eNB_Eurecom_LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
////////// Identification parameters:
eNB_ID = 0xe00;
cell_type = "CELL_MACRO_ENB";
eNB_name = "eNB_Eurecom_LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
mobile_country_code = "208";
mobile_network_code = "92";
////////// Physical parameters:
component_carriers = (
{
node_function = "NGFI_RCC_IF4p5";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "FDD";
tdd_config = 3;
tdd_config_s = 0;
prefix_type = "NORMAL";
eutra_band = 7;
downlink_frequency = 2660000000L;
uplink_frequency_offset = -120000000;
Nid_cell = 0;
N_RB_DL = 25;
Nid_cell_mbsfn = 0;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
tx_gain = 90;
rx_gain = 125;
prach_root = 0;
prach_config_index = 0;
prach_high_speed = "DISABLE";
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 0;
pucch_nCS_AN = 0;
pucch_n1_AN = 32;
pdsch_referenceSignalPower = -29;
pdsch_p_b = 0;
pusch_n_SB = 1;
pusch_enable64QAM = "DISABLE";
pusch_hoppingMode = "interSubFrame";
pusch_hoppingOffset = 0;
pusch_groupHoppingEnabled = "ENABLE";
pusch_groupAssignment = 0;
pusch_sequenceHoppingEnabled = "DISABLE";
pusch_nDMRS1 = 1;
phich_duration = "NORMAL";
phich_resource = "ONESIXTH";
srs_enable = "DISABLE";
/* srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;*/
pusch_p0_Nominal = -96;
pusch_alpha = "AL1";
pucch_p0_Nominal = -104;
msg3_delta_Preamble = 6;
pucch_deltaF_Format1 = "deltaF2";
pucch_deltaF_Format1b = "deltaF3";
pucch_deltaF_Format2 = "deltaF0";
pucch_deltaF_Format2a = "deltaF0";
pucch_deltaF_Format2b = "deltaF0";
rach_numberOfRA_Preambles = 64;
rach_preamblesGroupAConfig = "DISABLE";
/*
rach_sizeOfRA_PreamblesGroupA = ;
rach_messageSizeGroupA = ;
rach_messagePowerOffsetGroupB = ;
*/
rach_powerRampingStep = 4;
rach_preambleInitialReceivedTargetPower = -108;
rach_preambleTransMax = 10;
rach_raResponseWindowSize = 10;
rach_macContentionResolutionTimer = 48;
rach_maxHARQ_Msg3Tx = 4;
pcch_default_PagingCycle = 128;
pcch_nB = "oneT";
bcch_modificationPeriodCoeff = 2;
ue_TimersAndConstants_t300 = 1000;
ue_TimersAndConstants_t301 = 1000;
ue_TimersAndConstants_t310 = 1000;
ue_TimersAndConstants_t311 = 10000;
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
}
);
srb1_parameters :
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.12.26";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.18/24";
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.18/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
rrh_gw_config = (
{
local_if_name = "eth1";
remote_address = "10.10.10.157";
local_address = "10.10.10.18";
local_port = 50000; #for raw option local port must be the same to remote
remote_port = 50000;
rrh_gw_active = "yes";
tr_preference = "udp_if4p5";
rf_preference = "usrp_b200";
iq_txshift = 4;
tx_sample_advance = 80;
tx_scheduling_advance = 9;
if_compression = "alaw";
}
);
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
}
);

View File

@@ -0,0 +1,194 @@
Active_eNBs = ( "eNB_Eurecom_LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
////////// Identification parameters:
eNB_ID = 0xe00;
cell_type = "CELL_MACRO_ENB";
eNB_name = "eNB_Eurecom_LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
mobile_country_code = "208";
mobile_network_code = "92";
////////// Physical parameters:
component_carriers = (
{
node_function = "NGFI_RRU_IF4p5";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "FDD";
tdd_config = 3;
tdd_config_s = 0;
prefix_type = "NORMAL";
eutra_band = 7;
downlink_frequency = 2660000000L;
uplink_frequency_offset = -120000000;
Nid_cell = 0;
N_RB_DL = 50;
Nid_cell_mbsfn = 0;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
tx_gain = 90;
rx_gain = 125;
prach_root = 0;
prach_config_index = 0;
prach_high_speed = "DISABLE";
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 0;
pucch_nCS_AN = 0;
pucch_n1_AN = 32;
pdsch_referenceSignalPower = -29;
pdsch_p_b = 0;
pusch_n_SB = 1;
pusch_enable64QAM = "DISABLE";
pusch_hoppingMode = "interSubFrame";
pusch_hoppingOffset = 0;
pusch_groupHoppingEnabled = "ENABLE";
pusch_groupAssignment = 0;
pusch_sequenceHoppingEnabled = "DISABLE";
pusch_nDMRS1 = 1;
phich_duration = "NORMAL";
phich_resource = "ONESIXTH";
srs_enable = "DISABLE";
/* srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;*/
pusch_p0_Nominal = -96;
pusch_alpha = "AL1";
pucch_p0_Nominal = -104;
msg3_delta_Preamble = 6;
pucch_deltaF_Format1 = "deltaF2";
pucch_deltaF_Format1b = "deltaF3";
pucch_deltaF_Format2 = "deltaF0";
pucch_deltaF_Format2a = "deltaF0";
pucch_deltaF_Format2b = "deltaF0";
rach_numberOfRA_Preambles = 64;
rach_preamblesGroupAConfig = "DISABLE";
/*
rach_sizeOfRA_PreamblesGroupA = ;
rach_messageSizeGroupA = ;
rach_messagePowerOffsetGroupB = ;
*/
rach_powerRampingStep = 4;
rach_preambleInitialReceivedTargetPower = -104;
rach_preambleTransMax = 10;
rach_raResponseWindowSize = 10;
rach_macContentionResolutionTimer = 48;
rach_maxHARQ_Msg3Tx = 4;
pcch_default_PagingCycle = 128;
pcch_nB = "oneT";
bcch_modificationPeriodCoeff = 2;
ue_TimersAndConstants_t300 = 1000;
ue_TimersAndConstants_t301 = 1000;
ue_TimersAndConstants_t310 = 1000;
ue_TimersAndConstants_t311 = 10000;
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
}
);
srb1_parameters :
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.12.11";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eth3";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.215/24";
ENB_INTERFACE_NAME_FOR_S1U = "eth3";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.215/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
rrh_gw_config = (
{
local_if_name = "eth3";
remote_address = "10.10.10.18";
local_address = "10.10.10.157";
local_port = 50000; #for raw option local port must be the same to remote
remote_port = 50000;
rrh_gw_active = "yes";
tr_preference = "udp_if4p5";
rf_preference = "usrp_b200";
iq_txshift = 4;
tx_sample_advance = 80;
tx_scheduling_advance = 9;
if_compression = "alaw";
}
);
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
}
);

View File

@@ -0,0 +1,194 @@
Active_eNBs = ( "eNB_Eurecom_LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
////////// Identification parameters:
eNB_ID = 0xe00;
cell_type = "CELL_MACRO_ENB";
eNB_name = "eNB_Eurecom_LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
mobile_country_code = "208";
mobile_network_code = "92";
////////// Physical parameters:
component_carriers = (
{
node_function = "NGFI_RRU_IF4p5";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "FDD";
tdd_config = 3;
tdd_config_s = 0;
prefix_type = "NORMAL";
eutra_band = 7;
downlink_frequency = 2660000000L;
uplink_frequency_offset = -120000000;
Nid_cell = 0;
N_RB_DL = 100;
Nid_cell_mbsfn = 0;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
tx_gain = 90;
rx_gain = 125;
prach_root = 0;
prach_config_index = 0;
prach_high_speed = "DISABLE";
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 0;
pucch_nCS_AN = 0;
pucch_n1_AN = 32;
pdsch_referenceSignalPower = -29;
pdsch_p_b = 0;
pusch_n_SB = 1;
pusch_enable64QAM = "DISABLE";
pusch_hoppingMode = "interSubFrame";
pusch_hoppingOffset = 0;
pusch_groupHoppingEnabled = "ENABLE";
pusch_groupAssignment = 0;
pusch_sequenceHoppingEnabled = "DISABLE";
pusch_nDMRS1 = 1;
phich_duration = "NORMAL";
phich_resource = "ONESIXTH";
srs_enable = "DISABLE";
/* srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;*/
pusch_p0_Nominal = -96;
pusch_alpha = "AL1";
pucch_p0_Nominal = -104;
msg3_delta_Preamble = 6;
pucch_deltaF_Format1 = "deltaF2";
pucch_deltaF_Format1b = "deltaF3";
pucch_deltaF_Format2 = "deltaF0";
pucch_deltaF_Format2a = "deltaF0";
pucch_deltaF_Format2b = "deltaF0";
rach_numberOfRA_Preambles = 64;
rach_preamblesGroupAConfig = "DISABLE";
/*
rach_sizeOfRA_PreamblesGroupA = ;
rach_messageSizeGroupA = ;
rach_messagePowerOffsetGroupB = ;
*/
rach_powerRampingStep = 4;
rach_preambleInitialReceivedTargetPower = -104;
rach_preambleTransMax = 10;
rach_raResponseWindowSize = 10;
rach_macContentionResolutionTimer = 48;
rach_maxHARQ_Msg3Tx = 4;
pcch_default_PagingCycle = 128;
pcch_nB = "oneT";
bcch_modificationPeriodCoeff = 2;
ue_TimersAndConstants_t300 = 1000;
ue_TimersAndConstants_t301 = 1000;
ue_TimersAndConstants_t310 = 1000;
ue_TimersAndConstants_t311 = 10000;
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
}
);
srb1_parameters :
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.12.11";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eth3";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.215/24";
ENB_INTERFACE_NAME_FOR_S1U = "eth3";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.215/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
rrh_gw_config = (
{
local_if_name = "eth3";
remote_address = "10.10.10.18";
local_address = "10.10.10.157";
local_port = 50000; #for raw option local port must be the same to remote
remote_port = 50000;
rrh_gw_active = "yes";
tr_preference = "udp_if4p5";
rf_preference = "usrp_b200";
iq_txshift = 4;
tx_sample_advance = 80;
tx_scheduling_advance = 9;
if_compression = "alaw";
}
);
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
}
);

View File

@@ -0,0 +1,194 @@
Active_eNBs = ( "eNB_Eurecom_LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
////////// Identification parameters:
eNB_ID = 0xe00;
cell_type = "CELL_MACRO_ENB";
eNB_name = "eNB_Eurecom_LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
mobile_country_code = "208";
mobile_network_code = "92";
////////// Physical parameters:
component_carriers = (
{
node_function = "NGFI_RRU_IF4p5";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "FDD";
tdd_config = 3;
tdd_config_s = 0;
prefix_type = "NORMAL";
eutra_band = 7;
downlink_frequency = 2660000000L;
uplink_frequency_offset = -120000000;
Nid_cell = 0;
N_RB_DL = 25;
Nid_cell_mbsfn = 0;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
tx_gain = 90;
rx_gain = 125;
prach_root = 0;
prach_config_index = 0;
prach_high_speed = "DISABLE";
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 0;
pucch_nCS_AN = 0;
pucch_n1_AN = 32;
pdsch_referenceSignalPower = -29;
pdsch_p_b = 0;
pusch_n_SB = 1;
pusch_enable64QAM = "DISABLE";
pusch_hoppingMode = "interSubFrame";
pusch_hoppingOffset = 0;
pusch_groupHoppingEnabled = "ENABLE";
pusch_groupAssignment = 0;
pusch_sequenceHoppingEnabled = "DISABLE";
pusch_nDMRS1 = 1;
phich_duration = "NORMAL";
phich_resource = "ONESIXTH";
srs_enable = "DISABLE";
/* srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;*/
pusch_p0_Nominal = -96;
pusch_alpha = "AL1";
pucch_p0_Nominal = -104;
msg3_delta_Preamble = 6;
pucch_deltaF_Format1 = "deltaF2";
pucch_deltaF_Format1b = "deltaF3";
pucch_deltaF_Format2 = "deltaF0";
pucch_deltaF_Format2a = "deltaF0";
pucch_deltaF_Format2b = "deltaF0";
rach_numberOfRA_Preambles = 64;
rach_preamblesGroupAConfig = "DISABLE";
/*
rach_sizeOfRA_PreamblesGroupA = ;
rach_messageSizeGroupA = ;
rach_messagePowerOffsetGroupB = ;
*/
rach_powerRampingStep = 4;
rach_preambleInitialReceivedTargetPower = -104;
rach_preambleTransMax = 10;
rach_raResponseWindowSize = 10;
rach_macContentionResolutionTimer = 48;
rach_maxHARQ_Msg3Tx = 4;
pcch_default_PagingCycle = 128;
pcch_nB = "oneT";
bcch_modificationPeriodCoeff = 2;
ue_TimersAndConstants_t300 = 1000;
ue_TimersAndConstants_t301 = 1000;
ue_TimersAndConstants_t310 = 1000;
ue_TimersAndConstants_t311 = 10000;
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
}
);
srb1_parameters :
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.12.11";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eth3";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.215/24";
ENB_INTERFACE_NAME_FOR_S1U = "eth3";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.215/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
rrh_gw_config = (
{
local_if_name = "eth3";
remote_address = "10.10.10.18";
local_address = "10.10.10.157";
local_port = 50000; #for raw option local port must be the same to remote
remote_port = 50000;
rrh_gw_active = "yes";
tr_preference = "udp_if4p5";
rf_preference = "usrp_b200";
iq_txshift = 4;
tx_sample_advance = 80;
tx_scheduling_advance = 9;
if_compression = "alaw";
}
);
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
}
);

View File

@@ -280,65 +280,45 @@ machine_list.wait_all_free()
# run eNB softmodem tests #
##############################################################################
tests = {
'b210' : {
'alu' : {
'5' : {
'bandrich' : {
'tcp' : { 'ul': False, 'dl' : False },
'udp' : { 'ul': False, 'dl' : False }},
'sony' : {
'tcp' : { 'ul': False, 'dl' : False },
'udp' : { 'ul': False, 'dl' : False }}},
'10' : {
'bandrich' : {
'tcp' : { 'ul': False, 'dl' : False },
'udp' : { 'ul': False, 'dl' : False }},
'sony' : {
'tcp' : { 'ul': False, 'dl' : False },
'udp' : { 'ul': False, 'dl' : False }}},
'20' : {
'bandrich' : {
'tcp' : { 'ul': False, 'dl' : False },
'udp' : { 'ul': False, 'dl' : False }},
'sony' : {
'tcp' : { 'ul': False, 'dl' : False },
'udp' : { 'ul': False, 'dl' : False }}}},
'openair-cn' : {}
},
'x310' : {
'alu' : {},
'openair-cn' : {}
},
'exmimo2' : {
'alu' : {},
'openair-cn' : {}
}
}
tests = {}
for a in { 'b210', 'remote b210', 'x310', 'exmimo2' }:
tests[a] = {}
for b in { 'alu', 'openair-cn' }:
tests[a][b] = {}
for c in { 'fdd', 'tdd' }:
tests[a][b][c] = {}
for d in { '5', '10', '20' }:
tests[a][b][c][d] = {}
for e in { 'bandrich', 'sony', '3276' }:
tests[a][b][c][d][e] = {}
for f in { 'tcp', 'udp' }:
tests[a][b][c][d][e][f] = {}
for g in { 'dl', 'ul' }:
tests[a][b][c][d][e][f][g] = False
todo_tests_ids = []
for test in todo_tests:
todo_tests_ids.append(test.get('id'))
for test in todo_tests_ids:
if test=='015500':tests['b210']['alu'][ '5']['bandrich']['udp']['ul']=True
if test=='015501':tests['b210']['alu']['10']['bandrich']['udp']['ul']=True
if test=='015502':tests['b210']['alu']['20']['bandrich']['udp']['ul']=True
if test=='015503':tests['b210']['alu'][ '5']['bandrich']['udp']['dl']=True
if test=='015504':tests['b210']['alu']['10']['bandrich']['udp']['dl']=True
if test=='015505':tests['b210']['alu']['20']['bandrich']['udp']['dl']=True
if test=='015500':tests['b210']['alu']['fdd'][ '5']['bandrich']['udp']['ul']=True
if test=='015501':tests['b210']['alu']['fdd']['10']['bandrich']['udp']['ul']=True
if test=='015502':tests['b210']['alu']['fdd']['20']['bandrich']['udp']['ul']=True
if test=='015503':tests['b210']['alu']['fdd'][ '5']['bandrich']['udp']['dl']=True
if test=='015504':tests['b210']['alu']['fdd']['10']['bandrich']['udp']['dl']=True
if test=='015505':tests['b210']['alu']['fdd']['20']['bandrich']['udp']['dl']=True
if test=='015506':log('WARNING: skip test ' + test) #TODO
if test=='015507':log('WARNING: skip test ' + test) #TODO
if test=='015508':log('WARNING: skip test ' + test) #TODO
if test=='015509':log('WARNING: skip test ' + test) #TODO
if test=='015510':log('WARNING: skip test ' + test) #TODO
if test=='015511':log('WARNING: skip test ' + test) #TODO
if test=='015512':tests['b210']['alu'][ '5']['bandrich']['tcp']['ul']=True
if test=='015513':tests['b210']['alu']['10']['bandrich']['tcp']['ul']=True
if test=='015514':tests['b210']['alu']['20']['bandrich']['tcp']['ul']=True
if test=='015515':tests['b210']['alu'][ '5']['bandrich']['tcp']['dl']=True
if test=='015516':tests['b210']['alu']['10']['bandrich']['tcp']['dl']=True
if test=='015517':tests['b210']['alu']['20']['bandrich']['tcp']['dl']=True
if test=='015512':tests['b210']['alu']['fdd'][ '5']['bandrich']['tcp']['ul']=True
if test=='015513':tests['b210']['alu']['fdd']['10']['bandrich']['tcp']['ul']=True
if test=='015514':tests['b210']['alu']['fdd']['20']['bandrich']['tcp']['ul']=True
if test=='015515':tests['b210']['alu']['fdd'][ '5']['bandrich']['tcp']['dl']=True
if test=='015516':tests['b210']['alu']['fdd']['10']['bandrich']['tcp']['dl']=True
if test=='015517':tests['b210']['alu']['fdd']['20']['bandrich']['tcp']['dl']=True
if test=='015518':log('WARNING: skip test ' + test) #TODO
if test=='015519':log('WARNING: skip test ' + test) #TODO
if test=='015520':log('WARNING: skip test ' + test) #TODO
@@ -427,6 +407,19 @@ for test in todo_tests_ids:
if test=='017504':log('WARNING: skip test ' + test) #TODO
if test=='017505':log('WARNING: skip test ' + test) #TODO
if test=='017600':tests['remote b210']['alu']['fdd'][ '5']['bandrich']['udp']['ul']=True
if test=='017601':tests['remote b210']['alu']['fdd']['10']['bandrich']['udp']['ul']=True
if test=='017602':tests['remote b210']['alu']['fdd']['20']['bandrich']['udp']['ul']=True
if test=='017603':tests['remote b210']['alu']['fdd'][ '5']['bandrich']['udp']['dl']=True
if test=='017604':tests['remote b210']['alu']['fdd']['10']['bandrich']['udp']['dl']=True
if test=='017605':tests['remote b210']['alu']['fdd']['20']['bandrich']['udp']['dl']=True
if test=='017606':tests['remote b210']['alu']['fdd'][ '5']['bandrich']['tcp']['ul']=True
if test=='017607':tests['remote b210']['alu']['fdd']['10']['bandrich']['tcp']['ul']=True
if test=='017608':tests['remote b210']['alu']['fdd']['20']['bandrich']['tcp']['ul']=True
if test=='017609':tests['remote b210']['alu']['fdd'][ '5']['bandrich']['tcp']['dl']=True
if test=='017610':tests['remote b210']['alu']['fdd']['10']['bandrich']['tcp']['dl']=True
if test=='017611':tests['remote b210']['alu']['fdd']['20']['bandrich']['tcp']['dl']=True
if test=='018000':log('WARNING: skip test ' + test) #TODO
if test=='018001':log('WARNING: skip test ' + test) #TODO
if test=='018002':log('WARNING: skip test ' + test) #TODO
@@ -441,6 +434,31 @@ for test in todo_tests_ids:
if test=='018504':log('WARNING: skip test ' + test) #TODO
if test=='018505':log('WARNING: skip test ' + test) #TODO
if test=='018600':tests['b210']['alu']['tdd'][ '5']['3276']['udp']['ul']=True
if test=='018601':tests['b210']['alu']['tdd']['10']['3276']['udp']['ul']=True
if test=='018602':tests['b210']['alu']['tdd']['20']['3276']['udp']['ul']=True
if test=='018603':tests['b210']['alu']['tdd'][ '5']['3276']['udp']['dl']=True
if test=='018604':tests['b210']['alu']['tdd']['10']['3276']['udp']['dl']=True
if test=='018605':tests['b210']['alu']['tdd']['20']['3276']['udp']['dl']=True
if test=='018606':log('WARNING: skip test ' + test) #TODO
if test=='018607':log('WARNING: skip test ' + test) #TODO
if test=='018608':log('WARNING: skip test ' + test) #TODO
if test=='018609':log('WARNING: skip test ' + test) #TODO
if test=='018610':log('WARNING: skip test ' + test) #TODO
if test=='018611':log('WARNING: skip test ' + test) #TODO
if test=='018612':tests['b210']['alu']['tdd'][ '5']['3276']['tcp']['ul']=True
if test=='018613':tests['b210']['alu']['tdd']['10']['3276']['tcp']['ul']=True
if test=='018614':tests['b210']['alu']['tdd']['20']['3276']['tcp']['ul']=True
if test=='018615':tests['b210']['alu']['tdd'][ '5']['3276']['tcp']['dl']=True
if test=='018616':tests['b210']['alu']['tdd']['10']['3276']['tcp']['dl']=True
if test=='018617':tests['b210']['alu']['tdd']['20']['3276']['tcp']['dl']=True
if test=='018618':log('WARNING: skip test ' + test) #TODO
if test=='018619':log('WARNING: skip test ' + test) #TODO
if test=='018620':log('WARNING: skip test ' + test) #TODO
if test=='018621':log('WARNING: skip test ' + test) #TODO
if test=='018622':log('WARNING: skip test ' + test) #TODO
if test=='018623':log('WARNING: skip test ' + test) #TODO
if test=='025500':log('WARNING: skip test ' + test) #TODO
if test=='025501':log('WARNING: skip test ' + test) #TODO
if test=='025502':log('WARNING: skip test ' + test) #TODO

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
@@ -33,6 +33,13 @@ ORIGIN_PATH=$PWD
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
source $THIS_SCRIPT_PATH/tools/build_helper
# set environment variables (OPENAIR_HOME, ...)
set_openair_env
#variables for UE data generation
gen_nvram_path=$OPENAIR_DIR/targets/bin
conf_nvram_path=$OPENAIR_DIR/openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf
MSC_GEN="False"
XFORMS="True"
FLEXRAN_AGENT_SB_IF="True"
@@ -41,7 +48,7 @@ VCD_TIMING="False"
DEADLINE_SCHEDULER_FLAG_USER="False"
FORCE_DEADLINE_SCHEDULER_FLAG_USER=""
CPU_AFFINITY_FLAG_USER="False" #Only valid when lowlatecy flag is set to False
REL="Rel10"
REL="Rel14"
HW="None"
TP="None"
NOS1=0
@@ -54,20 +61,25 @@ BUILD_DOXYGEN=0
T_TRACER="False"
DISABLE_HARDWARE_DEPENDENCY="False"
CMAKE_BUILD_TYPE=""
CMAKE_CMD="$CMAKE"
UE_AUTOTEST_TRACE="False"
UE_DEBUG_TRACE="False"
UE_TIMING_TRACE="False"
DISABLE_LOG_X="False"
BUILD_ECLIPSE=0
trap handle_ctrl_c INT
function print_help() {
echo_info '
echo_info "
This program installs OpenAirInterface Software
You should have ubuntu 14.xx, updated, and the Linux kernel >= 3.14
Options
-h
This help
-c | --clean
Erase all files to make a rebuild from start"
Erase all files to make a rebuild from start
-C | --clean-all
Erase all files made by previous compilations, installations"
Erase all files made by previous compilations, installations
--clean-kernel
Erase previously installed features in kernel: iptables, drivers, ...
-I | --install-external-packages
@@ -82,14 +94,19 @@ Options
--eNB
Makes the LTE softmodem
--UE
Makes the UE specific parts (ue_ip, usim, nvram)
Makes the UE specific parts (ue_ip, usim, nvram) from the given configuration file
--UE-conf-nvram [configuration file]
Specify conf_nvram_path (default \"$conf_nvram_path\")
--UE-gen-nvram [output path]
Specify gen_nvram_path (default \"$gen_nvram_path\")
--RRH
Makes the RRH
-a | --agent
Enables agent for software-defined control of the eNB
-r | --3gpp-release
default is Rel10,
default is Rel14,
Rel8 limits the implementation to 3GPP Release 8 version
Rel10 limits the implementation to 3GPP Release 10 version
-w | --hardware
EXMIMO, USRP, BLADERF, ETHERNET, LMSSDR, None (Default)
Adds this RF board support (in external packages installation and in compilation)
@@ -97,7 +114,7 @@ Options
ETHERNET , None
Adds this trasport protocol support in compilation
--oaisim
Makes the oaisim simulator. Hardware will be defaulted to "None".
Makes the oaisim simulator. Hardware will be defaulted to \"None\".
--phy_simulators
Makes the unitary tests Layer 1 simulators
--core_simulators
@@ -133,6 +150,14 @@ Options
Disable HW dependency during installation
--ue-autotest-trace
Enable specific traces for UE autotest framework
--ue-trace
Enable traces for UE debugging
--ue-timing
Enable traces for timing
--disable-log
Disable all LOG_* macros
--build-eclipse
Build eclipse project files. Paths are auto corrected by fixprj.sh
Usage (first build):
oaisim (eNB + UE): ./build_oai -I --oaisim -x --install-system-files
Eurecom EXMIMO + COTS UE : ./build_oai -I --eNB -x --install-system-files
@@ -140,11 +165,12 @@ Usage (first build):
Usage (Regular):
oaisim : ./build_oai --oaisim -x
Eurecom EXMIMO + OAI ENB : ./build_oai --eNB -x
NI/ETTUS B201 + OAI ENB : ./build_oai --eNB -x -w USRP'
NI/ETTUS B201 + OAI ENB : ./build_oai --eNB -x -w USRP"
}
function main() {
until [ -z "$1" ]
do
case "$1" in
@@ -170,6 +196,7 @@ function main() {
GDB=1
CMAKE_BUILD_TYPE="Debug"
echo_info "Will Compile with gdb symbols and disable compiler optimization"
CMAKE_CMD="$CMAKE_CMD -DCMAKE_BUILD_TYPE=Debug"
shift;;
--eNB)
eNB=1
@@ -183,6 +210,12 @@ function main() {
UE=1
echo_info "Will compile UE"
shift;;
--UE-conf-nvram)
conf_nvram_path=$(readlink -f "$1")
shift 2;;
--UE-gen-nvram)
gen_nvram_path=$(readlink -f $2)
shift 2;;
--RRH)
RRH=1
echo_info "Will compile RRH"
@@ -292,6 +325,27 @@ function main() {
UE_AUTOTEST_TRACE="True"
echo_info "Enabling autotest specific trace for UE"
shift 1;;
--ue-trace)
UE_DEBUG_TRACE="True"
echo_info "Enabling UE trace for debug"
shift 1;;
--ue-timing)
UE_TIMING_TRACE="True"
echo_info "Enabling UE timing trace"
shift 1;;
--disable-log)
DISABLE_LOG_X="True"
echo_info "Disabling all LOG_* traces"
shift 1;;
--uhd-images-dir)
UHD_IMAGES_DIR=$2
echo_info "Downloading UHD images in the indicated location"
shift 2;;
--build-eclipse)
BUILD_ECLIPSE=1
CMAKE_CMD="$CMAKE_CMD"' -DCMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT=TRUE -G"Eclipse CDT4 - Unix Makefiles"'
echo_info "Enabling build eclipse project support"
shift 1;;
-h | --help)
print_help
exit 1;;
@@ -302,6 +356,9 @@ function main() {
esac
done
CMAKE_CMD="$CMAKE_CMD .."
echo_info "CMAKE_CMD=$CMAKE_CMD"
#########################################################
# check validity of HW and TP parameters for RRH and eNB
#########################################################
@@ -362,13 +419,16 @@ function main() {
echo_info "Flags for Deadline scheduler: $DEADLINE_SCHEDULER_FLAG_USER"
echo_info "Flags for CPU Affinity: $CPU_AFFINITY_FLAG_USER"
if [ -n "$UHD_IMAGES_DIR" ] && [ -z "$INSTALL_EXTERNAL" ]; then
echo_error "UHD images download settings will not be applied without -I present"
exit
fi
############################################
# setting and printing OAI envs, we should check here
############################################
echo_info "2. Setting the OAI PATHS ..."
set_openair_env
cecho "OPENAIR_DIR = $OPENAIR_DIR" $green
# for conf files copy in this bash script
@@ -399,7 +459,7 @@ function main() {
echo_info "installing packages for USRP support"
check_install_usrp_uhd_driver
if [ ! "$DISABLE_HARDWARE_DEPENDENCY" == "True" ]; then
install_usrp_uhd_driver
install_usrp_uhd_driver $UHD_IMAGES_DIR
fi
fi
if [ "$HW" == "OAI_BLADERF" ] ; then
@@ -409,6 +469,11 @@ function main() {
flash_firmware_bladerf
fi
fi
if [ "$FLEXRAN_AGENT" == "1" ] ; then
echo_info "installing protobuf/protobuf-c for flexran agent support"
install_protobuf_from_source
install_protobuf_c_from_source
fi
fi
if [ "$INSTALL_OPTIONAL" = "1" ] ; then
@@ -418,9 +483,9 @@ function main() {
if [ "$oaisim" = "1" ] ; then
#to be discussed
# there is no RF device and no transport protocol
# there is no RF device transport protocol
HW="None"
TP="None"
TP="ETHERNET"
if [ "$XFORMS" == "True" ] ; then
PRINT_STATS="True"
@@ -465,6 +530,9 @@ function main() {
echo "set (CPU_AFFINITY \"${CPU_AFFINITY_FLAG_USER}\" )" >>$cmake_file
echo "set ( T_TRACER $T_TRACER )" >> $cmake_file
echo "set (UE_AUTOTEST_TRACE $UE_AUTOTEST_TRACE)" >> $cmake_file
echo "set (UE_DEBUG_TRACE $UE_DEBUG_TRACE)" >> $cmake_file
echo "set (UE_TIMING_TRACE $UE_TIMING_TRACE)" >> $cmake_file
echo "set (DISABLE_LOG_X $DISABLE_LOG_X)" >> $cmake_file
if [ "$UE" = 1 -a "$NOS1" = "0" ] ; then
echo_info "Compiling UE S1 build : enabling Linux and NETLINK"
echo "set (LINUX True )" >> $cmake_file
@@ -472,7 +540,7 @@ function main() {
fi
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
cd $DIR/$lte_build_dir/build
cmake ..
eval $CMAKE_CMD
fi
if [ "$eNB" = "1" -o "$UE" = "1" ] ; then
@@ -501,7 +569,7 @@ function main() {
# mkdir -p $DIR/at_commands/build
# cd $DIR/at_commands/build
# cmake ..
# eval $CMAKE_CMD
# compilations \
# at_commands at_nas_ue \
# at_nas_ue $dbin/at_nas_ue
@@ -510,22 +578,24 @@ function main() {
mkdir -p $DIR/nas_sim_tools/build
cd $DIR/nas_sim_tools/build
cmake ..
eval $CMAKE_CMD
compilations \
nas_sim_tools usim \
usim $dbin/usim
compilations \
nas_sim_tools nvram \
nvram $dbin/nvram
compilations \
nas_sim_tools conf2uedata \
conf2uedata $dbin/conf2uedata
# generate USIM data
if [ -f $dbin/nvram ]; then
install_nas_tools $dbin $dconf
if [ -f $dbin/conf2uedata ]; then
install_nas_tools $conf_nvram_path $gen_nvram_path
echo_info "Copying UE specific part to $DIR/$lte_build_dir/build"
cp -Rvf $dbin/.ue_emm.nvram $DIR/$lte_build_dir/build
cp -Rvf $dbin/.ue.nvram $DIR/$lte_build_dir/build
cp -Rvf $dbin/.usim.nvram $DIR/$lte_build_dir/build
cp -Rvf $dbin/.ue_emm.nvram0 $DIR/$lte_build_dir/build
cp -Rvf $dbin/.ue.nvram0 $DIR/$lte_build_dir/build
cp -Rvf $dbin/.usim.nvram0 $DIR/$lte_build_dir/build
else
echo_warning "not generated UE NAS files: binaries not found"
fi
@@ -537,13 +607,13 @@ function main() {
mkdir -p build
cd build
rm -f *sim
cmake ..
eval $CMAKE_CMD
fi
if [ "$SIMUS_PHY" = "1" ] ; then
# lte unitary simulators compilation
echo_info "Compiling unitary tests simulators"
simlist="dlsim ulsim pucchsim prachsim pdcchsim pbchsim mbmssim"
simlist="dlsim_tm4 dlsim ulsim pucchsim prachsim pdcchsim pbchsim mbmssim"
for f in $simlist ; do
compilations \
lte-simulators $f \
@@ -615,7 +685,7 @@ function main() {
[ "$CLEAN" = "1" ] && rm -rf $DIR/$oaisim_build_dir/build
mkdir -p $DIR/$oaisim_build_dir/build
cd $DIR/$oaisim_build_dir/build
cmake ..
eval $CMAKE_CMD
compilations \
$oaisim_build_dir $oaisim_exec \
$oaisim_exec $dbin/$oaisim_exec.$REL
@@ -626,7 +696,7 @@ function main() {
echo_info "Compiling at_nas_ue"
mkdir -p $DIR/at_commands/build
cd $DIR/at_commands/build
cmake ..
eval $CMAKE_CMD
compilations \
at_commands at_nas_ue \
at_nas_ue $dbin/at_nas_ue
@@ -640,17 +710,20 @@ function main() {
[ "$CLEAN" = "1" ] && rm -rf $DIR/nas_sim_tools/build
mkdir -p $DIR/nas_sim_tools/build
cd $DIR/nas_sim_tools/build
cmake ..
eval $CMAKE_CMD
compilations \
nas_sim_tools usim \
usim $dbin/usim
compilations \
nas_sim_tools nvram \
nvram $dbin/nvram
compilations \
nas_sim_tools conf2uedata \
conf2uedata $dbin/conf2uedata
# generate USIM data
if [ -f $dbin/nvram ]; then
install_nas_tools $dbin $dconf
if [ -f $dbin/conf2uedata ]; then
install_nas_tools $conf_nvram_path $gen_nvram_path
else
echo_warning "not generated UE NAS files: binaries not found"
fi
@@ -671,6 +744,15 @@ function main() {
# CMakeFiles/oai_nw_drv/oai_nw_drv.ko $dbin/oai_nw_drv.ko
fi
if [ "$TP" == "ETHERNET" ] ; then
compilations \
$oaisim_build_dir oai_eth_transpro \
liboai_eth_transpro.so $dbin/liboai_eth_transpro.so.$REL
ln -sf liboai_eth_transpro.so liboai_transpro.so
ln -sf $dbin/liboai_eth_transpro.so.$REL $dbin/liboai_transpro.so
echo_info "liboai_transpro.so is linked with ETHERNET library"
fi
cmake_file=$DIR/oaisim_mme_build_oai/CMakeLists.txt
cp $DIR/oaisim_mme_build_oai/CMakeLists.template $cmake_file
echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file
@@ -685,7 +767,7 @@ function main() {
#[ "$CLEAN" = "1" ] && rm -rf $DIR/oaisim_mme_build_oai/build
#mkdir -p $DIR/oaisim_mme_build_oai/build
#cd $DIR/oaisim_mme_build_oai/build
#cmake ..
#eval $CMAKE_CMD
#compilations \
# oaisim_mme_build_oai oaisim_mme \
# oaisim_mme $dbin/oaisim_mme.$REL
@@ -715,7 +797,7 @@ function main() {
echo "set ( T_TRACER $T_TRACER )" >> $cmake_file
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
cd $DIR/$rrh_build_dir/build
cmake ..
eval $CMAKE_CMD
compilations \
rrh_gw rrh_gw \
rrh_gw $dbin/rrh_gw
@@ -724,28 +806,27 @@ function main() {
# build RF device and transport protocol libraries
#####################################
if [ "$eNB" = "1" -o "$RRH" = "1" ] ; then
if [ "$eNB" = "1" -o "$UE" = "1" -o "$RRH" = "1" ] ; then
if [ "$eNB" = "1" ] ; then
if [ "$eNB" = "1" -o "$UE" = "1" ] ; then
build_dir=$lte_build_dir
else
build_dir=$rrh_build_dir
fi
# build RF device libraries (currently EXMIMO is not complied with the rest of HW targets)
# build RF device libraries
if [ "$HW" != "None" ] ; then
rm -f liboai_device.so
rm -f $dbin/liboai_device.so
# link liboai_device.so with the selected RF device library
if [ "$HW" == "EXMIMO" ] ; then
#add exmimo compilation
#TODO EXMIMO library support
compilations \
$build_dir oai_exmimodevif \
liboai_exmimodevif.so $dbin/liboai_exmimodevif.so.$REL
ln -sf liboai_exmimodevif.so liboai_device.so
ln -sf $dbin/liboai_exmimodevif.so.$REL $dbin/liboai_device.so
echo_info "liboai_device.so is linked to EXMIMO device library"
elif [ "$HW" == "OAI_USRP" ] ; then
if [ -d "/usr/include/uhd" ] ; then
@@ -754,8 +835,8 @@ function main() {
liboai_usrpdevif.so $dbin/liboai_usrpdevif.so.$REL
fi
ln -s liboai_usrpdevif.so liboai_device.so
ln -s $dbin/liboai_usrpdevif.so.$REL $dbin/liboai_device.so
ln -sf liboai_usrpdevif.so liboai_device.so
ln -sf $dbin/liboai_usrpdevif.so.$REL $dbin/liboai_device.so
echo_info "liboai_device.so is linked to USRP device library"
elif [ "$HW" == "OAI_BLADERF" ] ; then
if [ -f "/usr/include/libbladeRF.h" ] ; then
@@ -764,8 +845,8 @@ function main() {
liboai_bladerfdevif.so $dbin/liboai_bladerfdevif.so.$REL
fi
ln -s liboai_bladerfdevif.so liboai_device.so
ln -s $dbin/liboai_bladerfdevif.so.$REL $dbin/liboai_device.so
ln -sf liboai_bladerfdevif.so liboai_device.so
ln -sf $dbin/liboai_bladerfdevif.so.$REL $dbin/liboai_device.so
echo_info "liboai_device.so is linked to BLADERF device library"
elif [ "$HW" == "OAI_LMSSDR" ] ; then
# if [ -f "/usr/include/libbladeRF.h" ] ; then
@@ -774,8 +855,8 @@ function main() {
liboai_lmssdrdevif.so $dbin/liboai_lmssdrdevif.so.$REL
# fi
ln -s liboai_lmssdrdevif.so liboai_device.so
ln -s $dbin/liboai_lmssdrdevif.so.$REL $dbin/liboai_device.so
ln -sf liboai_lmssdrdevif.so liboai_device.so
ln -sf $dbin/liboai_lmssdrdevif.so.$REL $dbin/liboai_device.so
echo_info "liboai_device.so is linked to LMSSDR device library"
else
echo_info "liboai_device.so is not linked to any device library"
@@ -791,8 +872,8 @@ function main() {
compilations \
$build_dir oai_eth_transpro \
liboai_eth_transpro.so $dbin/liboai_eth_transpro.so.$REL
ln -s liboai_eth_transpro.so liboai_transpro.so
ln -s $dbin/liboai_eth_transpro.so.$REL $dbin/liboai_transpro.so
ln -sf liboai_eth_transpro.so liboai_transpro.so
ln -sf $dbin/liboai_eth_transpro.so.$REL $dbin/liboai_transpro.so
echo_info "liboai_transpro.so is linked with ETHERNET library"
fi
fi
@@ -810,7 +891,7 @@ fi
[ "$CLEAN" = "1" ] && rm -rf $OPENAIR_DIR/cmake_targets/doxygen/build
mkdir -p $OPENAIR_DIR/cmake_targets/doxygen/build
cd $OPENAIR_DIR/cmake_targets/doxygen/build
cmake ..
eval $CMAKE_CMD
make doc
) >& $doxygen_log
fi

6
cmake_targets/build_ue Normal file
View File

@@ -0,0 +1,6 @@
#!/bin/bash
#sudo ./build_oai -c -C -I --install-optional-packages --install-system-files --UE -w USRP -V
#sudo ./build_oai -c -C -I --install-optional-packages --UE -w USRP -V
#sudo ./build_oai -c -C --UE -w USRP -V
sudo ./build_oai -c -C --UE -w USRP
#sudo ./build_oai -c -C --UE -w USRP --build-eclipse

View File

@@ -3,12 +3,12 @@ set(PACKAGE_NAME "unitary_tests_simulators")
set(PHYSIM True)
set(RF_BOARD None)
set(XFORMS True)
set(ENABLE_ITTI False)
set(DEBUG_PHY False)
set(MU_RECIEVER False)
set(RANDOM_BF False)
set(PBS_SIM False)
set(PERFECT_CE False)
set(PERFECT_CE True)
set(NAS_UE False)
set(MESSAGE_CHART_GENERATOR False)

View File

@@ -2,70 +2,89 @@ cmake_minimum_required(VERSION 2.8)
project(NAS_SIM_TOOLS)
include(FindPkgConfig)
pkg_search_module(CONFIG libconfig REQUIRED)
include_directories(${CONFIG_INCLUDE_DIRS})
add_definitions(-std=gnu99)
ENABLE_LANGUAGE(C)
#Sends the -std=c99 flag to the gcc compiler
add_definitions(-std=c99)
add_definitions(-DNAS_UE)
set(CMAKE_C_FLAGS
"${CMAKE_C_FLAGS} ${C_FLAGS_PROCESSOR} -Werror -Wall -Wstrict-prototypes -Wno-packed-bitfield-compat -g")
set(OPENAIR_DIR $ENV{OPENAIR_DIR})
set(OPENAIR1_DIR $ENV{OPENAIR_DIR}/openair1)
set(OPENAIR2_DIR $ENV{OPENAIR_DIR}/openair2)
set(OPENAIR3_DIR $ENV{OPENAIR_DIR}/openair3)
set(OPENAIR3_DIR $ENV{OPENAIR_DIR}/openair3)
set(OPENAIR_TARGETS $ENV{OPENAIR_DIR}/targets)
#set(EXECUTABLE_OUTPUT_PATH ${OPENAIR_DIR}/targets/bin)
# Add .h files for dependancies
set(usim_SRC
${OPENAIR_DIR}/openair3/NAS/TOOLS/usim_data.c
set(CONF2UEDATA_LIB_SRC
${OPENAIR_DIR}/openair3/NAS/TOOLS/conf_emm.c
${OPENAIR_DIR}/openair3/NAS/TOOLS/conf_user_data.c
${OPENAIR_DIR}/openair3/NAS/TOOLS/conf_usim.c
${OPENAIR_DIR}/openair3/NAS/TOOLS/conf_network.c
${OPENAIR_DIR}/openair3/NAS/TOOLS/conf_user_plmn.c
${OPENAIR_DIR}/openair3/NAS/TOOLS/conf_parser.c
${OPENAIR_DIR}/openair3/NAS/TOOLS/fs.c
${OPENAIR_DIR}/openair3/NAS/TOOLS/display.c
${OPENAIR_DIR}/openair3/NAS/UE/API/USIM/usim_api.c
${OPENAIR_DIR}/openair3/NAS/UE/API/USIM/aka_functions.c
${OPENAIR_DIR}/openair3/NAS/COMMON/UTIL/memory.c
${OPENAIR_DIR}/openair3/NAS/COMMON/UTIL/nas_log.c
${OPENAIR_DIR}/openair3/NAS/COMMON/UTIL/OctetString.c
${OPENAIR_DIR}/openair3/NAS/COMMON/UTIL/TLVEncoder.c
${OPENAIR_DIR}/common/utils/utils.c
)
set(usim_HDR
${OPENAIR_DIR}/openair3/NAS/TOOLS/network.h
set(conf2uedata_HDR
${OPENAIR_DIR}/openair3/NAS/TOOLS/conf2uedata.h
${OPENAIR_DIR}/openair3/NAS/TOOLS/conf_emm.h
${OPENAIR_DIR}/openair3/NAS/UE/API/USIM/usim_api.h
${OPENAIR_DIR}/openair3/NAS/UE/API/USIM/aka_functions.h
${OPENAIR_DIR}/openair3/NAS/COMMON/UTIL/memory.h
${OPENAIR_DIR}/openair3/NAS/COMMON/UTIL/nas_log.h
${OPENAIR_DIR}/openair3/NAS/COMMON/UTIL/OctetString.h
${OPENAIR_DIR}/openair3/NAS/COMMON/UTIL/TLVEncoder.h
${OPENAIR_DIR}/common/utils/utils.h
)
include_directories(
${OPENAIR_DIR}/common/utils
${OPENAIR_DIR}/openair3/NAS/UE
${OPENAIR_DIR}/openair3/NAS/COMMON
${OPENAIR_DIR}/openair3/NAS/UE/API/USER
${OPENAIR_DIR}/openair3/NAS/UE/API/USIM
${OPENAIR_DIR}/openair3/NAS/UE/EMM/
${OPENAIR_DIR}/openair3/NAS/UE/ESM/
${OPENAIR_DIR}/openair3/NAS/COMMON/IES/
${OPENAIR_DIR}/openair3/NAS/COMMON/UTIL
)
ADD_EXECUTABLE(usim ${usim_SRC} ${usim_HDR})
# conf2uedata binary
set(conf2uedata_SRC
${OPENAIR_DIR}/openair3/NAS/TOOLS/conf2uedata.c
${CONF2UEDATA_LIB_SRC}
)
add_executable(conf2uedata ${conf2uedata_SRC} ${conf2uedata_HDR} )
target_link_libraries(conf2uedata ${CONFIG_LIBRARIES})
# usim binary
set(usim_SRC
${OPENAIR_DIR}/openair3/NAS/TOOLS/usim.c
${CONF2UEDATA_LIB_SRC}
)
add_executable(usim ${usim_SRC} ${conf2uedata_HDR} )
target_link_libraries(usim ${CONFIG_LIBRARIES})
# nvram binary
set(nvram_SRC
${OPENAIR_DIR}/openair3/NAS/TOOLS/ue_data.c
${OPENAIR_DIR}/openair3/NAS/COMMON/UTIL/memory.c
${OPENAIR_DIR}/openair3/NAS/COMMON/UTIL/nas_log.c
${OPENAIR_DIR}/openair3/NAS/TOOLS/nvram.c
${CONF2UEDATA_LIB_SRC}
)
set(nvram_HDR
${OPENAIR_DIR}/openair3/NAS/UE/EMM/emmData.h
${OPENAIR_DIR}/openair3/NAS/COMMON/UTIL/memory.h
${OPENAIR_DIR}/openair3/NAS/COMMON/userDef.h
)
ADD_EXECUTABLE(nvram ${nvram_SRC} ${nvram_HDR})
#install (TARGETS usim DESTINATION ${EXECUTABLE_OUTPUT_PATH})
#install (TARGETS nvram DESTINATION ${EXECUTABLE_OUTPUT_PATH})
#install(CODE "EXECUTE_PROCESS (COMMAND ${OPENAIR_TARGETS}/bin/nvram --gen WORKING_DIRECTORY ${OPENAIR_TARGETS}/bin)")
#install(CODE "EXECUTE_PROCESS (COMMAND ${OPENAIR_TARGETS}/bin/usim --gen WORKING_DIRECTORY ${OPENAIR_TARGETS}/bin)")
add_executable(nvram ${nvram_SRC} ${conf2uedata_HDR} )
target_link_libraries(nvram ${CONFIG_LIBRARIES})

View File

@@ -0,0 +1,3 @@
#!/bin/sh
export UHD_IMAGES_DIR=$SNAP/uhd_images
exec $@

View File

@@ -38,7 +38,7 @@ def outputHeaderToFile(f, filename):
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*

View File

@@ -3,7 +3,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
@@ -24,6 +24,22 @@
# authors Laurent Thomas, Lionel GAUTHIER
#
#######################################
if [ ! -f /etc/os-release ]; then
echo "No /etc/os-release file found. You're likely on an unsupported distro."
exit -1
fi
OS_DISTRO=$(grep "^ID=" /etc/os-release | sed "s/ID=//" | sed "s/\"//g")
OS_RELEASE=$(grep "^VERSION_ID=" /etc/os-release | sed "s/VERSION_ID=//" | sed "s/\"//g")
case "$OS_DISTRO" in
fedora) OS_BASEDISTRO="fedora"; INSTALLER="dnf"; CMAKE="cmake" ;;
rhel) OS_BASEDISTRO="fedora"; INSTALLER="yum"; CMAKE="cmake3" ;;
centos) OS_BASEDISTRO="fedora"; INSTALLER="yum"; CMAKE="cmake3" ;;
debian) OS_BASEDISTRO="debian"; INSTALLER="apt-get"; CMAKE="cmake" ;;
ubuntu) OS_BASEDISTRO="debian"; INSTALLER="apt-get"; CMAKE="cmake" ;;
esac
KERNEL_VERSION=$(uname -r | cut -d '.' -f1)
KERNEL_MAJOR=$(uname -r | cut -d '.' -f2)
SUDO='sudo -E'
###############################
@@ -66,12 +82,11 @@ echo_info() { cecho "$*" $blue ;}
# If we can't check the distribution, it returns "Unknown"
# This function return always true as exit code by design
# Examples:
# Ubuntu16.04
# Debian8.5
# ubuntu16.04
# debian8.5
get_distribution_release() {
local distributor
if distributor=$(lsb_release -si 2>/dev/null) ; then
echo $distributor$(lsb_release -sr)
if [[ ! -z "$OS_DISTRO$OS_RELEASE" ]]; then
echo "$OS_DISTRO$OS_RELEASE"
else
echo Unknown
fi
@@ -80,8 +95,11 @@ get_distribution_release() {
check_supported_distribution() {
local distribution=$(get_distribution_release)
case "$distribution" in
"Ubuntu16.04") return 0 ;;
"Ubuntu14.04") return 0 ;;
"ubuntu16.04") return 0 ;;
"ubuntu14.04") return 0 ;;
"fedora24") return 0 ;;
"rhel7") return 0 ;;
"centos7") return 0 ;;
esac
return 1
}
@@ -136,6 +154,20 @@ clean_all_files() {
# Compilers
###################################
#check_warnings:
# print error message if the compilation had warnings
#argument:
# $1: log file
check_warnings() {
#we look for 'warning:' in the compilation log file
#this is how gcc starts a warning
#this is not perfect, we may get false positive
warning_count=`grep "warning:" "$1"|wc -l`
if [ $warning_count -gt 0 ]; then
echo_error "WARNING: $warning_count warnings. See $1"
fi
}
compilations() {
cd $OPENAIR_DIR/cmake_targets/$1/build
set +e
@@ -153,6 +185,7 @@ compilations() {
if [ -s $3 ] ; then
cp $3 $4
echo_success "$2 compiled"
check_warnings "$dlog/$2.$REL.txt"
else
echo_error "$2 compilation failed"
exit 1
@@ -169,10 +202,14 @@ install_protobuf_from_source(){
(
cd /tmp
echo "Downloading protobuf"
rm -rf /tmp/protobuf-2.6.1.tar.gz* /tmp/protobuf-2.6.1
wget https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz
tar -xzvf protobuf-2.6.1.tar.gz
cd protobuf-2.6.1/
#rm -rf /tmp/protobuf-2.6.1.tar.gz* /tmp/protobuf-2.6.1
#wget https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz
#tar -xzvf protobuf-2.6.1.tar.gz --owner $USER --group $USER --no-same-owner
#cd protobuf-2.6.1/
rm -rf /tmp/protobuf-cpp-3.3.0.tar.gz* /tmp/protobuf-3.3.0
wget https://github.com/google/protobuf/releases/download/v3.3.0/protobuf-cpp-3.3.0.tar.gz
tar -xzvf protobuf-cpp-3.3.0.tar.gz --owner $USER --group $USER --no-same-owner
cd protobuf-3.3.0/
./configure
echo "Compiling protobuf"
make -j`nproc`
@@ -185,6 +222,9 @@ install_protobuf_c_from_source(){
protobuf_c_install_log=$OPENAIR_DIR/cmake_targets/log/protobuf_c_install_log.txt
echo_info "\nInstalling Google Protobuf_C from sources. The log file for Protobuf_C installation is here: $protobuf_c_install_log "
(
if [[ "$OS_DISTRO" == "rhel" ]] || [[ "$OS_DISTRO" == "centos" ]]; then
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
fi
cd /tmp
echo "Downloading protobuf-c"
rm -rf /tmp/protobuf-c
@@ -199,7 +239,29 @@ install_protobuf_c_from_source(){
) >& $protobuf_c_install_log
}
install_usrp_uhd_driver_from_source(){
uhd_install_log=$OPENAIR_DIR/cmake_targets/log/uhd_install_log.txt
echo_info "\nInstalling UHD driver from sources. The log file for UHD driver installation is here: $uhd_install_log "
(
cd /tmp
echo "Downloading UHD driver"
rm -rf /tmp/uhd
git clone git://github.com/EttusResearch/uhd.git
cd uhd
git checkout tags/release_003_010_001_001
mkdir -p host/build
cd host/build
$CMAKE ../
echo "Compiling UHD"
make
make test
$SUDO make install
$SUDO ldconfig
) >& $uhd_install_log
}
check_install_usrp_uhd_driver(){
if [[ "$OS_DISTRO" == "ubuntu" ]]; then
#first we remove old installation
$SUDO apt-get remove -y uhd || true
$SUDO apt-get remove libuhd-dev libuhd003 uhd-host -y
@@ -208,34 +270,99 @@ check_install_usrp_uhd_driver(){
#The new USRP repository
$SUDO add-apt-repository ppa:ettusresearch/uhd -y
$SUDO apt-get update
$SUDO apt-get -y install python python-tk libboost-all-dev libusb-1.0-0-dev
$SUDO apt-get -y install libuhd-dev libuhd003 uhd-host
$SUDO apt-get -y --allow-unauthenticated install python python-tk libboost-all-dev libusb-1.0-0-dev
$SUDO apt-get -y --allow-unauthenticated install libuhd-dev libuhd003 uhd-host
elif [[ "$OS_BASEDISTRO" == "fedora" ]]; then
$SUDO $INSTALLER -y install python boost libusb-devel libusbx-devel boost-devel python-mako python-docutils cmake
if [[ "$OS_DISTRO" == "rhel" ]] || [[ "$OS_DISTRO" == "centos" ]]; then
# until EPEL repo hasn't bumped UHD driver to >=3.10 in EPEL, build driver from source
$SUDO $INSTALLER -y remove uhd uhd-devel uhd-firmware
install_ursp_uhd_driver_from_source
else
$SUDO $INSTALLER -y install uhd uhd-devel uhd-firmware
fi
fi
}
install_usrp_uhd_driver() {
if [[ "$OS_DISTRO" == "ubuntu" ]]; then
# We move uhd-host apart because it depends on linux kernel version
# On newer kernels, it fails to install
$SUDO apt-get -y install uhd-host
$SUDO uhd_images_downloader
fi
if [ -z $1 ]; then
$SUDO uhd_images_downloader
else
$SUDO uhd_images_downloader -i $1
fi
}
install_bladerf_driver_from_source(){
bladerf_install_log=$OPENAIR_DIR/cmake_targets/log/bladerf_install_log.txt
echo_info "\nInstalling BladeRF driver from sources. The log file for BladeRF driver installation is here: $bladerf_install_log "
(
cd /tmp
echo "Downloading BladeRF driver"
rm -rf /tmp/bladeRF
git clone https://github.com/Nuand/bladeRF.git
cd bladeRF
git checkout tags/2016.06
mkdir -p build
cd build
$CMAKE ../
echo "Compiling BladeRF driver"
make
$SUDO make install
$SUDO ldconfig
echo "Downloading FPGA and firmware images"
cd /tmp/bladeRF
wget https://www.nuand.com/fx3/bladeRF_fw_latest.img
wget https://www.nuand.com/fpga/hostedx40-latest.rbf
sudo mkdir -p /usr/share/Nuand/bladeRF
sudo mv bladeRF_fw_latest.img /usr/share/Nuand/bladeRF/bladeRF_fw.img
sudo mv hostedx40-latest.rbf /usr/share/Nuand/bladeRF/hostedx40.rbf
) >& $bladerf_install_log
}
check_install_bladerf_driver(){
if [ "$(get_distribution_release)" == "Ubuntu14.04" ] ; then
$SUDO add-apt-repository -y ppa:bladerf/bladerf
$SUDO apt-get update
fi
$SUDO apt-get install -y bladerf libbladerf-dev
$SUDO apt-get install -y bladerf-firmware-fx3
$SUDO apt-get install -y bladerf-fpga-hostedx40
if [[ "$OS_DISTRO" == "ubuntu" ]]; then
if [ "$(get_distribution_release)" == "ubuntu14.04" ] ; then
$SUDO add-apt-repository -y ppa:bladerf/bladerf
$SUDO apt-get update
fi
$SUDO apt-get install -y --allow-unauthenticated bladerf libbladerf-dev
$SUDO apt-get install -y --allow-unauthenticated bladerf-firmware-fx3
$SUDO apt-get install -y --allow-unauthenticated bladerf-fpga-hostedx40
elif [[ "$OS_BASEDISTRO" == "fedora" ]]; then
install_bladerf_driver_from_source
else
echo_error "BladeRF Installer for OAI does not support automatic build. Install BladeRF compiling sources manually from BladeRF website"
fi
}
flash_firmware_bladerf() {
$SUDO bladeRF-cli --flash-firmware /usr/share/Nuand/bladeRF/bladeRF_fw.img
}
check_install_lmssdr_driver(){
if ( [ -d "/usr/local/include/lime" ] &&
[ -f "/usr/local/include/lime/LimeSuite.h" ] )
then
echo_success "Found lmssdr drivers and tools installed from source"
else
echo_error "lmssdr support implies installing lmssdr drivers and tools" \
" from sources. check:"
echo_info "https://open-cells.com/index.php/2017/05/10/limesdr-installation/"
echo_fatal "Cannot compile lmssdr device"
fi
}
check_install_additional_tools (){
$SUDO apt-get update
$SUDO apt-get install -y \
$SUDO $INSTALLER update -y
if [[ "$OS_DISTRO" == "ubuntu" ]]; then
PACKAGE_LIST="\
check \
dialog \
dkms \
@@ -264,13 +391,73 @@ check_install_additional_tools (){
bc \
ntp \
python-scipy \
python-matplotlib
$SUDO pip install paramiko
$SUDO pip install pyroute2 colorama
python-matplotlib"
elif [[ "$OS_DISTRO" == "rhel" ]] || [[ "$OS_DISTRO" == "centos" ]]; then
PACKAGE_LIST="\
check \
dialog \
dkms \
gawk \
boost-devel \
openvpn \
pkgconfig \
pexpect \
sshfs \
swig \
wireshark \
unzip \
valgrind \
vconfig \
ctags \
ntpdate \
iperf3 \
wvdial \
numpy \
sshpass \
nscd \
python2-paramiko \
python-pyroute2 \
python-netifaces \
scipy \
python-matplotlib"
elif [[ "$OS_DISTRO" == "fedora" ]]; then
PACKAGE_LIST=" \
check \
dialog \
dkms \
gawk \
boost-devel \
openvpn \
pkgconfig \
python-pexpect \
sshfs \
swig \
wireshark \
unzip \
valgrind \
vconfig \
ctags \
ntpdate \
iperf3 \
wvdial \
python-numpy \
sshpass \
nscd \
python2-paramiko \
python-pyroute2 \
python-netifaces \
python2-scipy \
python2-matplotlib"
fi
$SUDO $INSTALLER install -y $PACKAGE_LIST
$SUDO rm -fr /opt/ssh
$SUDO GIT_SSL_NO_VERIFY=true git clone https://gitlab.eurecom.fr/oai/ssh.git /opt/ssh
#The packages below are already installed for Redhat distros (RHEL, CentOS, Fedora)
if [[ "$OS_DISTRO" == "ubuntu" ]]; then
$SUDO pip install paramiko
$SUDO pip install pyroute2 colorama
log_netiface=$OPENAIR_DIR/cmake_targets/log/netiface_install_log.txt
echo_info "Installing Netinterfaces package. The logfile for installation is in $log_netiface"
(
@@ -281,6 +468,7 @@ check_install_additional_tools (){
$SUDO python setup.py install
cd -
) >& $log_netiface
fi
}
check_install_oai_software() {
@@ -289,16 +477,17 @@ check_install_oai_software() {
echo_error "Your distribution $(get_distribution_release) is not supported by oai !"
exit 1
fi
$SUDO apt-get update
$SUDO $INSTALLER update -y
if [[ "$OS_DISTRO" == "ubuntu" ]]; then
$SUDO apt install -y software-properties-common
case "$(get_distribution_release)" in
"Ubuntu14.04")
"ubuntu14.04")
specific_packages="libtasn1-3-dev"
# For iperf3
$SUDO add-apt-repository "deb http://archive.ubuntu.com/ubuntu trusty-backports universe"
$SUDO apt-get update
;;
"Ubuntu16.04")
"ubuntu16.04")
specific_packages="libtasn1-6-dev"
;;
esac
@@ -361,73 +550,97 @@ check_install_oai_software() {
python-pip \
pydb \
libyaml-dev \
wget
wget \
libxpm-dev
$SUDO update-alternatives --set liblapack.so /usr/lib/atlas-base/atlas/liblapack.so
#Remove old gnutls/nettle installation that was done from sources
remove_nettle_from_source
$SUDO apt-get install -y nettle-dev nettle-bin
remove_gnutls_from_source
$SUDO apt-get install -y libgnutls-dev
elif [[ "$OS_BASEDISTRO" == "fedora" ]]; then
if [[ "$OS_DISTRO" == "rhel" ]] || [[ "$OS_DISTRO" == "centos" ]]; then
if rpm -q epel-release > /dev/null; then
echo "EPEL repos already present. Good."
else
echo "EPEL repos not present. Installing them."
$SUDO $INSTALLER install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
fi
$SUDO $INSTALLER install -y python-epdb
$SUDO $INSTALLER install -y gccxml
else
$SUDO $INSTALLER install -y mscgen pydb
# Fedora repos already contain gccxml's successor castxml.
$SUDO $INSTALLER install -y castxml
fi
$SUDO $INSTALLER install -y \
autoconf \
automake \
bc \
bison \
$CMAKE \
doxygen \
ethtool \
flex \
gdb \
git \
graphviz \
gtkwave \
guile-devel \
iperf \
iproute \
iptables \
iptables-devel \
atlas-devel \
blas-devel \
libconfig-devel \
libffi-devel \
xforms \
xforms-devel \
libgcrypt-devel \
gmp-devel \
gtk3-devel \
libidn2-devel \
libidn-devel \
mariadb-devel \
octave-devel \
openpgm-devel \
lksctp-tools \
lksctp-tools-devel \
openssl-devel \
libtasn1 \
libtool \
libusb-devel \
libxml2 \
libxml2-devel \
libxslt-devel \
octave \
octave-signal \
openssh-clients \
openssh-server \
openssl \
patch \
psmisc \
python \
subversion \
xmlstarlet \
python-pip \
wget \
kernel-headers \
kernel-devel \
nettle-devel \
gnutls-devel \
libXpm-devel \
lapack \
lapack-devel \
blas \
blas-devel
fi
install_asn1c_from_source
$SUDO rm -fr /opt/ssh
$SUDO git clone https://gist.github.com/2190472.git /opt/ssh
install_protobuf_from_source
install_protobuf_c_from_source
}
### Remove Nettle installation which was done from sources
remove_nettle_from_source() {
nettle_uninstall_log=$OPENAIR_DIR/cmake_targets/log/nettle_uninstall_log.txt
echo_info "\nUn-Installing Nettle from sources. The log file for nettle un-installation is here: $nettle_uninstall_log "
(
$SUDO apt-get remove -y nettle-dev nettle-bin
cd /tmp
echo "Downloading nettle archive"
$SUDO rm -rf /tmp/nettle-2.5.tar.gz* /tmp/nettle-2.5
wget https://ftp.gnu.org/gnu/nettle/nettle-2.5.tar.gz
if [ $? -ne 0 ]; then
wget ftp://ftp.lysator.liu.se/pub/security/lsh/nettle-2.5.tar.gz
fi
if [ ! -f nettle-2.5.tar.gz ]; then
echo_error "Could not download nettle source files"
cd -
return
fi
tar -xzf nettle-2.5.tar.gz
cd nettle-2.5/
./configure --disable-openssl --enable-shared --prefix=/usr
$SUDO make uninstall || true
$SUDO ldconfig
) >& $nettle_uninstall_log
}
### Remove Gnutls from source
remove_gnutls_from_source(){
gnutls_uninstall_log=$OPENAIR_DIR/cmake_targets/log/gnutls_uninstall_log.txt
echo_info "\nUn-Installing Gnutls. The log file for Gnutls un-installation is here: $gnutls_uninstall_log "
(
$SUDO apt-get remove -y libgnutls-dev
cd /tmp
echo "Downloading gnutls archive"
$SUDO rm -rf /tmp/gnutls-3.1.23.tar.xz* /tmp/gnutls-3.1.23
wget http://mirrors.dotsrc.org/gcrypt/gnutls/v3.1/gnutls-3.1.23.tar.xz || \
wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/gnutls-3.1.23.tar.xz
if [ ! -f gnutls-3.1.23.tar.xz ]; then
echo_error "Could not download gnutls source files"
cd -
return
fi
tar -xJf gnutls-3.1.23.tar.xz
cd gnutls-3.1.23/
./configure --prefix=/usr
$SUDO make uninstall || true
$SUDO ldconfig
)>& $gnutls_uninstall_log
}
install_asn1c_from_source(){
@@ -450,19 +663,18 @@ install_asn1c_from_source(){
################################################
install_nas_tools() {
cd $1
if [ ! -f .ue.nvram ]; then
if [ ! -f .ue.nvram0 ]; then
echo_success "generate .ue_emm.nvram .ue.nvram"
./nvram --gen
./nvram --gen -c $1 -o $2
else
[ ./nvram -nt .ue.nvram -o ./nvram -nt .ue_emm.nvram ] && ./nvram --gen
[ ./nvram -nt .ue.nvram0 -o ./nvram -nt .ue_emm.nvram0 ] && ./nvram --gen -c $1 -o $2
fi
if [ ! -f .usim.nvram ]; then
if [ ! -f .usim.nvram0 ]; then
echo_success "generate .usim.nvram"
./usim --gen
./usim --gen -c $1 -o $2
else
[ ./usim -nt .usim.nvram ] && ./usim --gen
[ ./usim -nt .usim.nvram0 ] && ./usim --gen -c $1 -o $2
fi
}

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -3,7 +3,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -3,7 +3,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -3,19 +3,16 @@
# in those arrays, each line is:
# <file> <sha1sum of file (without line 4 which changes depending on the location of the files)> <patch to apply to file>
RRC_Rel14=(
"SystemInformation-r8-IEs.h" 562e3c3aeb7c6d76d722f31bf24488a26e627f33 "fix_asn1.data/RRC.rel14/SystemInformation-r8-IEs.h.diff"
)
RRC_Rel10=(
"SystemInformation-r8-IEs.h" 603cd6615cff36ec7020692d72c0d6de7c4859cb "fix_asn1.data/RRC.rel10/SystemInformation-r8-IEs.h.diff"
)
X2AP_Rel11_2=(
"X2ap-CriticalityDiagnostics-IE-List.h" ae96308b37fcbcbf39da5012e42968135fc5f27b "fix_asn1.data/X2AP.rel11.2/X2ap-CriticalityDiagnostics-IE-List.h.diff"
"NativeInteger.c" 1a55f5402fd363318cf5444ffe1f67530dcf66ff "fix_asn1.data/X2AP.rel11.2/NativeInteger.c.diff"
"constr_SET_OF.c" 808cbbdf19b118c0bdb04e3acf2cbe6e4133be2b "fix_asn1.data/X2AP.rel11.2/constr_SET_OF.c.diff"
)
S1AP_Rel10_5=(
"NativeInteger.c" 1a55f5402fd363318cf5444ffe1f67530dcf66ff "fix_asn1.data/S1AP.rel10.5/NativeInteger.c.diff"
"constr_SET_OF.c" 808cbbdf19b118c0bdb04e3acf2cbe6e4133be2b "fix_asn1.data/S1AP.rel10.5/constr_SET_OF.c.diff"
)
red_color="$(tput setaf 1)"
@@ -94,6 +91,10 @@ function patch_rrc()
local version="$2"
case "$version" in
Rel14 )
echo "patching RRC files release 14"
apply_patches "$directory" RRC_Rel14 ${#RRC_Rel14[*]}
;;
Rel10 )
echo "patching RRC files release 10"
apply_patches "$directory" RRC_Rel10 ${#RRC_Rel10[*]}
@@ -130,8 +131,7 @@ function patch_s1ap()
case "$version" in
R10 )
echo "patching S1AP files release 10.5"
apply_patches "$directory" S1AP_Rel10_5 ${#S1AP_Rel10_5[*]}
#nothing to do anymore (fixes went to asn1c)
;;
* )
error unknwon/unhandled S1AP version \'"$version"\'

View File

@@ -0,0 +1,23 @@
73,77d72
< /* SystemInformation-r8-IEs */
< typedef struct SystemInformation_r8_IEs {
< struct SystemInformation_r8_IEs__sib_TypeAndInfo {
< A_SEQUENCE_OF(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member {
< SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR present;
103c98,102
< } choice;
---
> };
>
> struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member {
> SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR present;
> union SystemInformation_r8_IEs__sib_TypeAndInfo__Member_u choice;
107c106,111
< } ) list;
---
> };
>
> /* SystemInformation-r8-IEs */
> typedef struct SystemInformation_r8_IEs {
> struct SystemInformation_r8_IEs__sib_TypeAndInfo {
> A_SEQUENCE_OF(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member) list;

View File

@@ -1,8 +0,0 @@
283c283
< int dynamic = 0;
---
> //int dynamic = 0;
290c290
< dynamic = 1;
---
> //dynamic = 1;

View File

@@ -1,4 +0,0 @@
1007c1007
< (int)nelems, (int)ct ? ct->effective_bits : -1);
---
> (int)nelems, ct ? ct->effective_bits : -1);

View File

@@ -1,8 +0,0 @@
283c283
< int dynamic = 0;
---
> //int dynamic = 0;
290c290
< dynamic = 1;
---
> //dynamic = 1;

View File

@@ -1,4 +0,0 @@
1007c1007
< (int)nelems, (int)ct ? ct->effective_bits : -1);
---
> (int)nelems, ct ? ct->effective_bits : -1);

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -5,7 +5,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -5,7 +5,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -8,7 +8,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
@@ -33,7 +33,7 @@
#
#######################################
LTEIF=oip0
LTEIF=oip1
#OPENAIR_DIR=/home/oai/svn-oai/openair4G
load_module() {
@@ -48,11 +48,11 @@ load_module() {
sudo insmod $1
}
load_module $OPENAIR_DIR/targets/bin/ue_ip.ko
load_module ../../targets/bin/ue_ip.ko
if [ "$1" = "UE" ]; then
echo "bring up oip0 interface for UE"
ifconfig oip0 up
echo "bring up $LTEIF interface for UE"
ifconfig $LTEIF up
fi
ip route flush cache

View File

@@ -3,7 +3,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
@@ -150,7 +150,7 @@ function main()
# -u | --num-ue )
-V | --vcd)
"setting gtk-wave output"
echo "setting gtk-wave output"
exe_arguments="$exe_arguments -V /tmp/oai_gtk_wave.vcd"
shift ;
;;
@@ -164,6 +164,11 @@ function main()
exe_arguments="$exe_arguments -n $2"
shift 2;
;;
-x | --xforms)
echo "running with xforms"
exe_arguments="$exe_arguments --xforms"
shift 1;
;;
*)
echo "Unknown option $1"
help
@@ -212,11 +217,11 @@ function main()
fi
if [ $run_gdb -eq 0 ]; then
exec $SUDO $OPENAIR_DIR/targets/bin/oaisim_nos1.Rel10 $exe_arguments | tee /tmp/enb_ue_nos1.log.txt
exec $SUDO $OPENAIR_DIR/targets/bin/oaisim_nos1.Rel14 $exe_arguments | tee /tmp/enb_ue_nos1.log.txt
else
touch ~/.gdb_enb_ue_nos1
chmod 777 ~/.gdb_enb_ue_nos1
echo "file $OPENAIR_DIR/targets/bin/oaisim_nos1.Rel10" > ~/.gdb_enb_ue_nos1
echo "file $OPENAIR_DIR/targets/bin/oaisim_nos1.Rel14" > ~/.gdb_enb_ue_nos1
echo "set args $exe_arguments" >> ~/.gdb_enb_ue_nos1
echo "run" >> ~/.gdb_enb_ue_nos1
cat ~/.gdb_enb_ue_nos1

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *
@@ -174,7 +174,7 @@ function main()
;;
-V | --vcd)
"setting gtk-wave output"
echo "setting gtk-wave output"
exe_arguments="$exe_arguments -V /tmp/oai_gtk_wave.vcd"
shift ;
;;
@@ -183,6 +183,11 @@ function main()
exe_arguments="$exe_arguments -P wireshark"
shift 2;
;;
-x | --xforms)
echo "running with xforms"
exe_arguments="$exe_arguments --xforms"
shift 1;
;;
*)
echo "Unknown option $1"
help
@@ -247,12 +252,6 @@ function main()
if [ $? -ne 0 ]; then
echo "200 lte " >> /etc/iproute2/rt_tables
fi
ip rule add fwmark 1 table lte
ifconfig oip1 up
ip route add default dev oip1 table lte
# the actual IP address depends on the EPC/MME config file for address pool
ip route add from 192.188.0.0/24 table lte
ip route add to 192.188.0.0/24 table lte
exe_arguments="$exe_arguments -s15 -AAWGN -y1 -b1 -u1 -Q0"
@@ -264,11 +263,11 @@ function main()
fi
if [ $run_gdb -eq 0 ]; then
exec $OPENAIR_DIR/targets/bin/oaisim.Rel10 $exe_arguments | tee /tmp/enb_ue_s1.log.txt
exec $OPENAIR_DIR/targets/bin/oaisim.Rel14 $exe_arguments | tee /tmp/enb_ue_s1.log.txt
else
touch ~/.gdb_enb_ue_s1
chmod 777 ~/.gdb_enb_ue_s1
echo "file $OPENAIR_DIR/targets/bin/oaisim.Rel10" > ~/.gdb_enb_ue_s1
echo "file $OPENAIR_DIR/targets/bin/oaisim.Rel14" > ~/.gdb_enb_ue_s1
echo "set args $exe_arguments" >> ~/.gdb_enb_ue_s1
echo "run" >> ~/.gdb_enb_ue_s1
cat ~/.gdb_enb_ue_s1

View File

@@ -0,0 +1,33 @@
#!/bin/bash
# Carrier frequency in Hz
#FREQ=2660000000 #FDD
FREQ=2350000000 #TDD
NRB=50
TA=0
#9:trace, 8/7:debug, 6:info, 4:warn, 3:error
LOGLEVEL=6
#enable or disable soft scope
#SCOPE=''
SCOPE='-d'
#enable or disable VCD logging
VCD=''
#VCD='-V'
ISTDD='-T'
#ISTDD=''
#use external clock
ECLK="--external-clock"
#ECLK=""
#UE scan carrier
#ISSCAN="--ue-scan-carrier"
ISSCAN=""
sudo sh -c './init_nas_s1 UE'
cd ../../targets/bin/
sudo -E ./lte-softmodem.Rel10 -U -C$FREQ -r$NRB $ISSCAN --ue-txgain 70 --ue-rxgain 80 -A $TA $ECLK -W $ISTDD -g $LOGLEVEL $SCOPE 2>&1 | sudo tee /tmp/UE.log

View File

@@ -4,7 +4,7 @@
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.0 (the "License"); you may not use this file
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
# * except in compliance with the License.
# * You may obtain a copy of the License at
# *

View File

@@ -1,59 +0,0 @@
export KERNEL_DIR=/lib/modules/$(shell uname -r)/
CC=gcc
CCC=gcc
linux := $(shell if [ `uname` = "Linux" ] ; then echo "1" ; else echo "0" ; fi)
CFLAGS += -std=gnu99
CFLAGS += -Wall -g -ggdb -Wstrict-prototypes -fno-strict-aliasing
# Need to force this option because default kernel module builder is wrong
CFLAGS += $(call cc-option,-mpreferred-stack-boundary=4)
#For performance, if some option doesn't exist in all gcc versions, use $(call cc-option,MY_OPTION)
#CFLAGS += -O2
#CFLAGS += -funroll-loops
CFLAGS += -Wno-packed-bitfield-compat
# This is the minimum CPU faetures for OAI
CFLAGS += -mmmx -msse -msse2 -mssse3 -msse4.1
# Add CPU features from local CPU
#CFLAGS += -march=native
ifeq ($(OSTYPE),Cygwin)
cygwin=1
CFLAGS += -DCYGWIN
else
cygwin=0
endif
ifeq ($(linux),1)
CFLAGS +=
LDFLAGS +=
endif
ITTI_DIR = $(COMMON_UTILS_DIR)/itti
ITTI_OBJS = $(ITTI_DIR)/intertask_interface.o
ITTI_OBJS += $(ITTI_DIR)/intertask_interface_dump.o
ITTI_OBJS += $(ITTI_DIR)/backtrace.o
ITTI_OBJS += $(ITTI_DIR)/memory_pools.o
ITTI_OBJS += $(ITTI_DIR)/signals.o
ITTI_OBJS += $(ITTI_DIR)/timer.o
HASHTABLE_DIR = $(COMMON_UTILS_DIR)/collection/hashtable
MSC_DIR = $(COMMON_UTILS_DIR)/msc
HASHTABLE_OBJS = $(HASHTABLE_DIR)/hashtable.o
HASHTABLE_OBJS += $(HASHTABLE_DIR)/obj_hashtable.o
UTILS_OBJS = $(ITTI_OBJS) $(HASHTABLE_OBJS)
UTILS_incl = \
-I$(COMMON_UTILS_DIR) \
-I$(HASHTABLE_DIR) \
-I$(ITTI_DIR) \
-I$(MSC_DIR)
print-% : ; @echo $* = $($*)

View File

@@ -184,8 +184,30 @@ extern T_cache_t *T_cache;
} while (0)
#endif
/* we have 4 versions of T_HEADER:
* - bad quality C++ version with time
* - good quality C version with time
* - bad quality C++ version without time
* - good quality C version without time
*/
#ifdef T_SEND_TIME
#ifdef __cplusplus
/* C++ version of T_HEADER with time */
#define T_HEADER(x) \
do { \
struct timespec T_HEADER_time; \
if (clock_gettime(CLOCK_REALTIME, &T_HEADER_time)) abort(); \
memcpy(T_LOCAL_buf, &T_HEADER_time, sizeof(struct timespec)); \
T_LOCAL_size += sizeof(struct timespec); \
T_PUT_int(1, (int)(uintptr_t)(x)); \
} while (0)
#else /* #ifdef __cplusplus */
/* C version of T_HEADER with time */
#define T_HEADER(x) \
do { \
if (!__builtin_types_compatible_p(typeof(x), struct T_header *)) { \
@@ -201,8 +223,21 @@ extern T_cache_t *T_cache;
T_PUT_int(1, (int)(uintptr_t)(x)); \
} while (0)
#endif /* #ifdef __cplusplus */
#else /* #ifdef T_SEND_TIME */
#ifdef __cplusplus
/* C++ version of T_HEADER without time */
#define T_HEADER(x) \
do { \
T_PUT_int(1, (int)(uintptr_t)(x)); \
} while (0)
#else /* #ifdef __cplusplus */
/* C version of T_HEADER without time */
#define T_HEADER(x) \
do { \
if (!__builtin_types_compatible_p(typeof(x), struct T_header *)) { \
@@ -214,6 +249,8 @@ extern T_cache_t *T_cache;
T_PUT_int(1, (int)(uintptr_t)(x)); \
} while (0)
#endif /* #ifdef __cplusplus */
#endif /* #ifdef T_SEND_TIME */
#define T1(t) \

View File

@@ -29,10 +29,10 @@ typedef struct {
#define T_SHM_FILENAME "/T_shm_segment"
/* number of VCD functions (to be kept up to date! see in T_messages.txt) */
#define VCD_NUM_FUNCTIONS 142
#define VCD_NUM_FUNCTIONS 172
/* number of VCD variables (to be kept up to date! see in T_messages.txt) */
#define VCD_NUM_VARIABLES 107
#define VCD_NUM_VARIABLES 118
/* first VCD function (to be kept up to date! see in T_messages.txt) */
#define VCD_FIRST_FUNCTION ((uintptr_t)T_VCD_FUNCTION_RT_SLEEP)

View File

@@ -28,7 +28,7 @@ ID = ENB_PHY_DLSCH_UE_NACK
ID = ENB_PHY_ULSCH_UE_DCI
DESC = eNodeB uplink UE specific DCI as sent by the PHY layer
GROUP = ALL:PHY:GRAPHIC:ENB
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,harq_pid : int,mcs : int,round : int,first_rb : int,nb_rb : int,TBS
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,harq_pid : int,mcs : int,round : int,first_rb : int,nb_rb : int,TBS : int,L : int,firstCCE
ID = ENB_PHY_ULSCH_UE_NO_DCI_RETRANSMISSION
DESC = eNodeB uplink UE retransmission due to PHICH NACK (see generate_phich_top)
GROUP = ALL:PHY:GRAPHIC:ENB
@@ -45,6 +45,10 @@ ID = ENB_PHY_INPUT_SIGNAL
DESC = eNodeB received signal in the time domain for a duration of 1ms
GROUP = ALL:PHY:GRAPHIC:HEAVY:ENB
FORMAT = int,eNB_ID : int,frame : int,subframe : int,antenna : buffer,rxdata
ID = ENB_PHY_OUTPUT_SIGNAL
DESC = eNodeB sent signal in the time domain for a duration of 1ms
GROUP = ALL:PHY:HEAVY:ENB
FORMAT = int,eNB_ID : int,CC_id : int,frame : int,subframe : int,antenna : buffer,txdata
ID = ENB_PHY_UL_CHANNEL_ESTIMATE
DESC = eNodeB channel estimation in the time domain
GROUP = ALL:PHY:GRAPHIC:HEAVY:ENB
@@ -111,6 +115,10 @@ ID = ENB_MAC_UE_DL_PDU_WITH_DATA
DESC = MAC downlink PDU for an UE
GROUP = ALL:MAC:ENB
FORMAT = int,eNB_ID : int,CC_id : int,rnti : int,frame : int,subframe : int,harq_pid : buffer,data
ID = ENB_MAC_SCHEDULING_REQUEST
DESC = MAC scheduling request detected for an UE
GROUP = ALL:MAC:ENB
FORMAT = int,eNB_ID : int,CC_id : int,frame : int,subframe : int,rnti
#RLC logs
ID = ENB_RLC_DL
@@ -1350,6 +1358,22 @@ ID = VCD_VARIABLE_UE0_SFN7
DESC = VCD variable UE0_SFN7
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_SEND_IF4_SYMBOL
DESC = VCD variable SEND_IF4_SYMBOL
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_RECV_IF4_SYMBOL
DESC = VCD variable RECV_IF4_SYMBOL
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_SEND_IF5_PKT_ID
DESC = VCD variable SEND_IF5_PKT_ID
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_RECV_IF5_PKT_ID
DESC = VCD variable RECV_IF5_PKT_ID
GROUP = ALL:VCD:ENB:VCD_VARIABLE
FORMAT = ulong,value
ID = VCD_VARIABLE_UE_PDCP_FLUSH_SIZE
DESC = VCD variable UE_PDCP_FLUSH_SIZE
GROUP = ALL:VCD:ENB:UE:VCD_VARIABLE
@@ -2061,3 +2085,11 @@ ID = VCD_FUNCTION_RECV_IF5
DESC = VCD function RECV_IF5
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_TRX_COMPR_IF
DESC = VCD function TRX_COMPR_IF
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value
ID = VCD_FUNCTION_TRX_DECOMPR_IF
DESC = VCD function TRX_DECOMPR_IF
GROUP = ALL:VCD:ENB:VCD_FUNCTION
FORMAT = int,value

View File

@@ -5,7 +5,8 @@ CFLAGS=-Wall -g -pthread -DT_TRACER -I.
LIBS=-lX11 -lm -lpng -lXft
all: record replay extract_config textlog enb ue vcd macpdu2wireshark
all: record replay extract_config textlog enb ue vcd macpdu2wireshark \
extract_input_subframe
record: utils.o record.o database.o config.o
$(CC) $(CFLAGS) -o record $^ $(LIBS)
@@ -16,6 +17,10 @@ replay: utils.o replay.o
extract_config: extract_config.o
$(CC) $(CFLAGS) -o extract_config $^ $(LIBS)
extract_input_subframe: extract_input_subframe.o database.o event.o utils.o \
config.o
$(CC) $(CFLAGS) -o $@ $^ $(LIBS)
textlog: utils.o textlog.o database.o event.o handler.o config.o \
event_selector.o view/view.a gui/gui.a logger/logger.a \
filter/filter.a
@@ -58,8 +63,8 @@ filter/filter.a:
$(CC) $(CFLAGS) -c -o $@ $<
clean:
rm -f *.o core tracer_remote textlog enb vcd record replay
rm -f extract_config macpdu2wireshark
rm -f *.o core tracer_remote textlog enb ue vcd record replay
rm -f extract_config macpdu2wireshark extract_input_subframe
cd gui && make clean
cd view && make clean
cd logger && make clean

View File

@@ -0,0 +1,109 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include "database.h"
#include "event.h"
#include "config.h"
void usage(void)
{
printf(
"usage: [options] <file> <frame> <subframe>\n"
"options:\n"
" -d <database file> this option is mandatory\n"
" -v verbose\n"
);
exit(1);
}
int main(int n, char **v)
{
char *database_filename = NULL;
void *database;
int i;
int input_event_id;
database_event_format f;
char *file = NULL;
int fd;
int frame = -1, subframe = -1;
int frame_arg, subframe_arg, buffer_arg;
int verbose = 0;
for (i = 1; i < n; i++) {
if (!strcmp(v[i], "-h") || !strcmp(v[i], "--help")) usage();
if (!strcmp(v[i], "-d"))
{ if (i > n-2) usage(); database_filename = v[++i]; continue; }
if (!strcmp(v[i], "-v")) { verbose = 1; continue; }
if (file == NULL) { file = v[i]; continue; }
if (frame == -1) { frame = atoi(v[i]); continue; }
if (subframe == -1) { subframe = atoi(v[i]); continue; }
usage();
}
if (file == NULL || frame == -1 || subframe == -1) usage();
if (database_filename == NULL) {
printf("ERROR: provide a database file (-d)\n");
exit(1);
}
database = parse_database(database_filename);
load_config_file(database_filename);
input_event_id = event_id_from_name(database, "ENB_PHY_INPUT_SIGNAL");
f = get_format(database, input_event_id);
frame_arg = subframe_arg = buffer_arg = -1;
for (i = 0; i < f.count; i++) {
if (!strcmp(f.name[i], "frame")) {
if (frame_arg != -1) goto err;
if (strcmp(f.type[i], "int")) goto err;
frame_arg = i;
}
if (!strcmp(f.name[i], "subframe")) {
if (subframe_arg != -1) goto err;
if (strcmp(f.type[i], "int")) goto err;
subframe_arg = i;
}
if (!strcmp(f.name[i], "rxdata")) {
if (buffer_arg != -1) goto err;
if (strcmp(f.type[i], "buffer")) goto err;
buffer_arg = i;
}
continue;
err:
printf("cannot deal with ENB_PHY_INPUT_SIGNAL from database file\n");
exit(1);
}
if (frame_arg == -1 || subframe_arg == -1 || buffer_arg == -1) goto err;
fd = open(file, O_RDONLY);
if (fd == -1) { perror(file); exit(1); }
/* get wanted frame/subframe */
while (1) {
char v[T_BUFFER_MAX];
event e;
e = get_event(fd, v, database);
if (e.type == -1) break;
if (e.type != input_event_id) continue;
if (verbose)
printf("input frame %d subframe %d size %d\n",
e.e[frame_arg].i, e.e[subframe_arg].i, e.e[buffer_arg].bsize);
if (!(frame == e.e[frame_arg].i && subframe == e.e[subframe_arg].i))
continue;
#if 0
for (i = 0; i < e.e[buffer_arg].bsize/2; i++) {
short *x = e.e[buffer_arg].b;
x[i] *= 14;
}
#endif
fwrite(e.e[buffer_arg].b, e.e[buffer_arg].bsize, 1, stdout);
fflush(stdout);
return 0;
}
printf("frame %d subframe %d not found\n", frame, subframe);
return 0;
}

View File

@@ -3,7 +3,7 @@
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*

View File

@@ -3,7 +3,7 @@
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*

View File

@@ -3,7 +3,7 @@
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*

View File

@@ -3,7 +3,7 @@
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*

View File

@@ -3,7 +3,7 @@
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*

View File

@@ -3,7 +3,7 @@
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*

View File

@@ -3,7 +3,7 @@
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
@@ -65,7 +65,7 @@ _Assert_(cOND, _Assert_Exit_, #vALUE1 ": %" PRIdMAX "\n" #vALUE2 ": %" PRIdMAX "
(intmax_t)vALUE1, (intmax_t)vALUE2, (intmax_t)vALUE3)
#define DevCheck4(cOND, vALUE1, vALUE2, vALUE3, vALUE4) \
_Assert_(cOND, _Assert_Exit_, #vALUE1": %"PRIdMAX"\n"#vALUE2": %"PRIdMAX"\n"#vALUE3": %"PRIdMAX"\n"#vALUE4": %"PRIdMAX"\n\n", \
_Assert_(cOND, _Assert_Exit_, #vALUE1": %" PRIdMAX "\n" #vALUE2 ": %" PRIdMAX "\n" #vALUE3 ": %" PRIdMAX "\n" #vALUE4 ": %" PRIdMAX "\n\n", \
(intmax_t)vALUE1, (intmax_t)vALUE2, (intmax_t)vALUE3, (intmax_t)vALUE4)
#define DevParam(vALUE1, vALUE2, vALUE3) DevCheck(0, vALUE1, vALUE2, vALUE3)

View File

@@ -3,7 +3,7 @@
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*

View File

@@ -3,7 +3,7 @@
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*

View File

@@ -3,7 +3,7 @@
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*

View File

@@ -3,7 +3,7 @@
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*

View File

@@ -3,7 +3,7 @@
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*

View File

@@ -3,7 +3,7 @@
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*

View File

@@ -3,7 +3,7 @@
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*

View File

@@ -3,7 +3,7 @@
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*

View File

@@ -3,7 +3,7 @@
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.0 (the "License"); you may not use this file
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*

Some files were not shown because too many files have changed in this diff Show More