Commit Graph
100 Commits
Author SHA1 Message Date
Cedric Roux 1272cabb35 Merge remote-tracking branch 'origin/develop_integration_2018_w12' into develop
Summary of changes:
- free configmodule memory when shutting down
  It is possible to restart the lte-softmodem via the FlexRAN controller.
  For this to work, the end_configmodule() method needs to be called when
  shutting the lte-softmodem down so that the configuration can be read
  again during a restart.
- Feature agent
  Implements an agent ID, consisting of the OAI module ID, the OAI eNB ID
  and the cell ID. The agent reads this information in its configuration
  read function and forwards it to the controller.
  This MR also contains some code forwarding SI info to the controller.
- various bugs fixed
  - remove start_background_system from eNB softmodem
  - fix memory leak when doing traffic
  - disable ITTI dump (does someone uses this?)
  - disable U-plane inactivity timer: it's very simple to put this back,
    but as of now it comes with its own problems that we don't have time
    to check/fix
2018-03-23 16:24:17 +01:00
Cedric Roux ff3c929ecf fix PHY simulators compilation
Only ulsim and dlsim compile. The others (dlsim_tm4 pucchsim prachsim
pdcchsim pbchsim mbmssim) have been disabled.

Command line to compile: ./build_oai --phy_simulators
2018-03-23 15:15:51 +01:00
Cedric Roux 3288a6bbe4 Merge remote-tracking branch 'origin/bugfixes-2018-w12' into develop_integration_2018_w12 2018-03-23 10:47:43 +01:00
Cedric Roux f15b446469 Merge remote-tracking branch 'origin/feature-agent-id' into develop_integration_2018_w12 2018-03-23 10:47:36 +01:00
Cedric Roux b79e6bfb10 Merge remote-tracking branch 'origin/fix-softmodem-restart' into develop_integration_2018_w12 2018-03-23 10:47:31 +01:00
Cedric Roux 16cb7eba64 remove start_background_system from eNB softmodem
This is only needed by the UE code, to setup IP settings.
The eNB does not need this. (To be reverted if this is
wrong.)
2018-03-23 10:44:13 +01:00
Cedric Roux 3a0d9339dc bugfix: fix a memory leak
When doing TCP downlink traffic with iperf for several
hours, the memory consumption of lte-softmodem does not
stop to grow.

After analysis, this commit seems to be the only fix needed.
To be checked somehow.
2018-03-23 10:42:36 +01:00
Cedric Roux e7bca7fdac Disable ITTI dump
If anyone needs it, it's a simple matter of reverting this
basic commit.
2018-03-23 10:42:36 +01:00
Cedric Roux 5fdc3077db disable U-plane inactivity timer.
It is annoying and does not seem to work properly.
To be checked/reworked if needed.

Keep in mind that we also want oaisim to be functional.
2018-03-23 10:42:30 +01:00
Cedric Roux 3fe90157e6 Merge remote-tracking branch 'origin/bugfixes-2018-w11' into develop 2018-03-19 10:57:35 +01:00
Cedric Roux 89201888e3 Merge remote-tracking branch 'origin/cherry-pick-5722d493' into develop 2018-03-19 10:57:16 +01:00
Cedric Roux d393814772 bugfix: send UL NACK (on PHICH) at the right place
The PHICH was not programmed for the last round (4) because it was
not programmed in rx_sdu but in schedule_ulsch_rnti, only in case
of a programmed retransmission (there is obviously no retransmission
programmed after the last round).

The case of Msg3 is not handled. To be done somehow.
2018-03-19 10:28:16 +01:00
Cedric Roux 3da8cac59b bugfix: try to release HARQ processes properly
The code is too complex. This commit may not be enough.
2018-03-15 10:48:16 +01:00
Cedric Roux e56ae69bc3 Merge remote-tracking branch 'origin/develop_integration_2018_w10' into develop
Summary of changes:
- bug fix in the FlexRAN API (correct a check)
- bug fix for sending the right RNTI in a FlexRAN message
- fixes small bug in ulsim which kills one RX antenna in channel simulation.
  Another simple but bad bug in ulsch_demodulation.c (bad access of avgU
  array). This probably resulted in a performance degradation for non-ideal
  channels, even for 1 antenna. The avgU was read in position 1 instead of
  0 for 1-antenna and in positions 1 and 2 instead of 0 and 1 for 2-antennas.
- work from Nokia:
    1) shared library loader, with integration for oai devices, encoder and telnet server
    2) telnet server (use build-oai --build-telnetsrv option and --telnetsrv softmodem option)
    3) UE/eNB in different executables (lte-uesoftmodem and lte-softmodem + noS1 variants)
    4) config module fixes and extensions
    5) very preliminary NB-IoT integration preparation, using shared lib loader ( use make NB-IoT to build, after building the eNB softmodem)
    6) Rename NB-IoT configuration sources from nbiot_ to NB-IoT_ to be consistent with other NB-IoT developments.
- various bugs fixed:
  - try to avoid "buffer full" problem when pushing DL traffic
  - add a stop_rf function in the RU
  - cleanup - remove unnecessary calls to get_cpu_freq_GHz
    (was disrupting realtime at startup, generating lots of UU and LL)
  - cleanup MAC PDU generation

Compilation with Rel10 is not functional anymore.
Compilation of unitary simulator is not functional anymore.
2018-03-09 16:47:08 +01:00
Cedric Roux e7cfe377db integration fix: fix file format (dos2unix)
End of line character has to be unix-style, not dos-style.
2018-03-09 16:43:08 +01:00
Cedric Roux 92bb82eb2b integration fix: fix license version to 1.1 2018-03-09 16:40:09 +01:00
Cedric Roux cd103f7c3d Merge remote-tracking branch 'origin/fixes-flexran' into develop_integration_2018_w10
* bug fix in the FlexRAN API (correct a check)
* bug fix for sending the right RNTI in a FlexRAN message
2018-03-09 14:58:51 +01:00
Cedric Roux 00f234029a Merge remote-tracking branch 'origin/bugfixes-2018-w10' into develop_integration_2018_w10 2018-03-09 14:58:37 +01:00
Cedric Roux 727e29e3c0 Merge remote-tracking branch 'origin/ulsch-rx-2ant-fix' into develop_integration_2018_w10
fixes small bug in ulsim which kills one RX antenna in channel simulation.
Another simple but bad bug in ulsch_demodulation.c (bad access of avgU
array). This probably resulted in a performance degradation for non-ideal
channels, even for 1 antenna. The avgU was read in position 1 instead of
0 for 1-antenna and in positions 1 and 2 instead of 0 and 1 for 2-antennas.
2018-03-09 14:57:32 +01:00
Cedric Roux 3e99c7aa97 Merge remote-tracking branch 'origin/develop-nbiotconf-shlibloader' into develop_integration_2018_w10
1) shared library loader, with integration for oai devices, encoder and telnet server
2) telnet server (use build-oai --build-telnetsrv option and --telnetsrv softmodem option)
3) UE/eNB in different executables (lte-uesoftmodem and lte-softmodem + noS1 variants)
4) config module fixes and extensions
5) very preliminary NB-IoT integration preparation, using shared lib loader ( use make NB-IoT to build, after building the eNB softmodem)
6) Rename NB-IoT configuration sources from nbiot_ to NB-IoT_ to be consistent with other NB-IoT developments.
2018-03-09 14:56:18 +01:00
Cedric Roux 71e7f9713a hack: try to avoid "buffer full" problem when pushing DL traffic
This is hack-level development.

With this commit you can do UDP DL traffic of say 100Mb/s over
a 5MHz link with one connected UE and the eNB should not crash
because of memory exhaustion. Of course on the receiver side
you won't get 100Mb/s and many many lost packets. But the system
should not crash. 1Gb/s does not work. So in any case try to
remain within some reasonable limits. There is no reason to
push more than twice the maximum achievable throughput of
the link.

This work is based on a patch proposed by Francesco Gringoli.
2018-03-09 10:18:12 +01:00
Cedric Roux 963805820c add a stop_rf function in the RU
When the program exits it has to stop the streaming of the USRP.
The function exit_fun is supposed to do that. When quitting with
control+c (very common case) this function is not called. The
code is very unclear there, so let's add a stop_rf in the RU,
as there is already a start_rf.

If we don't call trx_end_func, then at the next run the USRP
device may be in an unstable state and behave improperly.

If the program crashes then the USRP device may be in an
unstable state. The only solution to this problem is to reset
the USRP device.

Maybe there is a way to clean the state of the device when we
open it, before we start using it. Sort of a cleanup before
use. That could be a better solution to "bad state after program
crash".

What has been tested:
- monolithic eNB only
2018-03-08 10:29:28 +01:00
Cedric Roux 5a61f9944c cleanup - remove unnecessary calls to get_cpu_freq_GHz
The one in lte-enb.c disrupts the realtime. Using a B200mini with
20MHz bandwidth leads to the UE unable to connect for it seesms like
the UL and DL are not properly time synched because of this sleep
of one second that happens after the USRP streaming has started.
We see some random access attempts but the decoded preamble is
wrong.

This may be dependant on the setup. I had sporadic errors with
a B210, where sometimes the UE could connect and sometimes not.
2018-03-08 10:11:09 +01:00
Cedric Roux 1a8d81ba57 cleanup MAC PDU generation (plus some general cleanup)
The code was very unclear and potentially buggy.
This new version is more robust.

We can waste up to 2 bytes because the last header in the MAC PDU
does not contain a length field and when we request data from RLC
we suppose a 3-bytes MAC header. This might be optimized at some
point, but the benefit would be low.

This commit also contains some general cleanup:
- formatting
- variables' types: let's use 'int' instead of trying to be clever
  by using small types that may generate bugs if the value is
  too big
- remove 'tpc_accumulated' which was globally used for all UEs
  and has no purpose other than logging. We may want to rework
  a bit the TPC machinery at some point. As the code is today
  we may repeatedly send TPC over and over without caring about
  the 3GPP limits, in which case no one knows how the UE is
  supposed to behave: does it clamp the current max value or does
  it accumulate over and over and take the clamped value to compute
  its actual power? If we send a reverse TPC (reduce power instead
  of increase) does it do it immediately or does it have to decrease
  n+1 times if we previously ordered it to increase n times?)

We do not address the problem of prioritizing LCIDs. As of today there
is only one dedicated traffic channel (DTCH), so it's not a problem
at this point.

What has been tested:
- monolithic eNB 5/10/20MHz with one cots UE, TCP/UDP UL/DL. At 20MHz the
  machine used was not capable of keeping up, generating lots of Us
  and Ls when the throughput reaches 60Mb/s. USRP B210 was used.
2018-03-08 10:04:18 +01:00
Cedric Roux 307e2f299a Merge remote-tracking branch 'origin/hotfix-rlc-2018-w09' into develop 2018-03-02 15:29:36 +01:00
Cedric Roux 2f8dc35583 Merge remote-tracking branch 'origin/fix-unnecessary-decl' into develop 2018-03-02 15:29:10 +01:00
Cedric Roux 26d68e9c5e hotfix: fix bad RLC UM packet creation
Running TCP DL traffic with one connected UE showed a lot of
fluctuations in throughput. After analysis it was found that
sometimes the RLC UM PDU was not correct. It contained one byte
more than it should. On the receiver side, the TCP packet
contained in the RLC packet seems to be rejected by the TCP
stack of the UE (it has one byte more than it should),
leading to a brutal reduction of the throughput, probably due
to some congestion detection in the TCP implementation.
Or something.

This hotfix seems to solve the problem. Using iperf in downlink
with a 5MHz eNB, we see no more fluctuations, the traffic is
very steady at 16.8Mb/s, as reported by the iperf server running
on the phone. (17.5 in the PHY plot of the T tracer.)

A rewrite of both the MAC and RLC UM packet generation is needed.
The code is way too complex for what it does and may contain
several similar problems that only trigger in specific rare
conditions.
2018-03-02 12:02:06 +01:00
Cedric Roux 6858b55c60 Merge remote-tracking branch 'origin/develop_integration_2018_w08' into develop
Summary of changes:
- fix dlsim/ulsim
- fix centOS compilation
- Move the accounting phase of the DL pre-processor in a separate procedure
  and fix some issues
- additional Mac stats and Improvements
- minor fix in test setup v2
2018-02-26 11:43:27 +01:00
Cedric Roux 9f1530c3c9 Merge remote-tracking branch 'origin/fix-centos-network-device-compilation' into develop_integration_2018_w08 2018-02-26 11:34:36 +01:00
Cedric Roux 37425ee967 bugfix: revert bad change
Without this revert, the following does not compile:

    ./build_oai --oaisim
2018-02-22 16:03:45 +01:00
Cedric Roux b23a8ad0fe integation fix: minor typo 2018-02-22 15:04:09 +01:00
Cedric Roux 84882d9414 Merge remote-tracking branch 'origin/fix-test-setup-2018-w08' into develop_integration_2018_w08 2018-02-22 15:03:57 +01:00
Cedric Roux 365ca71a4a remove compilation warnings 2018-02-22 15:03:45 +01:00
Cedric Roux 8ca5fb4ef2 integration: cleanup
- remove spaces at the end of lines
- remove useless dead code
  use: git show -p <this commit> -w
  to see it clearly
2018-02-22 15:03:09 +01:00
Cedric Roux 58eab7515f integration fix: fix crash
With value 4 when connecting one UE and doing some downlink
iperf TCP there is a crash. Probably due to the multiple wrong
RA detected leading to uplink failure of fake UE that never
sends Msg3 (because, well, there is no other UE).

This is another problem that will be fixed at some point.

Anyway, this value 4 fails. Let's put back 3.
2018-02-22 15:02:30 +01:00
Cedric Roux d5e179fa1f Merge remote-tracking branch 'origin/flexran-mac-stats' into develop_integration_2018_w08 2018-02-22 15:02:15 +01:00
Cedric Roux 4fb2e609fd Merge remote-tracking branch 'origin/enhancement-preprocessor' into develop_integration_2018_w08 2018-02-22 15:02:04 +01:00
Cedric Roux 7b06a540d8 Merge remote-tracking branch 'origin/fix-centos-compilation-2018-w08' into develop_integration_2018_w08 2018-02-22 15:01:54 +01:00
Cedric Roux 5e581a4b06 Merge remote-tracking branch 'origin/dlsim-ulsim-fix' into develop_integration_2018_w08 2018-02-22 15:01:38 +01:00
Cedric Roux 1e2a7156e0 test setup v2: minor bugfix 2018-02-22 11:54:16 +01:00
Cedric Roux 62787a8893 fix CentOS compilation
The following was not working properly:

    ./build_oai -I -w USRP

After this commit it works.

And so does:

  ./build_oai --eNB -w USRP
2018-02-19 14:09:09 +01:00
Cedric Roux 5357ef2050 Merge remote-tracking branch 'origin/develop_integration_2018_w07' into develop
Summary of changes:
- a lot of work on flexran
- several compilation bugfixes
- some bugfixes for some bad conflict resolutions
- various bugs fixed
2018-02-16 15:30:23 +01:00
Cedric Roux 2d6dd02b95 bugfix: fix bad conflict resolutions from previous commits
Some more fixes for some bad conflict resolutions.

I ran:

    git diff 2018.w04 2018.w05

And saw some problems with config_sib2.

There was also something strange in openair2/LAYER2/openair2_proc.c
in the function dump_eNB_l2_stats. Maybe the fix is wrong for
this one. To be checked.
2018-02-16 11:11:50 +01:00
Cedric Roux c0be5a129c integration fix: set default max MCS for UL back to 20
Doing an iperf UDP uplink test, we could reach only 6Mb/s
with very good radio conditions instead of around 8Mb/s.

It turns out the MCS was limited to 16.

With this commit, we are back to a bit more than 8Mb/s
as it used to be.

(This is with a 5MHz bandwidth.)
2018-02-15 16:50:30 +01:00
Cedric Roux b2ac257ef5 integration fix: compilation failed
The following compilation failed before this commit:

    ./build_oai --eNB -w USRP -c --T-tracer
2018-02-15 13:40:34 +01:00
Cedric Roux e4a5470d47 integration fix: noS1 compilation
The following compilation did not work anymore:

    ./build_oai --eNB -c -w USRP --noS1

Neither did:

    ./build_oai --UE --noS1
2018-02-15 11:34:53 +01:00
Cedric Roux 8cab562b9f Merge remote-tracking branch 'origin/feature-merge-merge-f68' into develop_integration_2018_w07 2018-02-15 09:58:26 +01:00
Cedric Roux 91332d3906 fixup previous bad merge (UE disconnection did not work properly anymore)
Doing airplane mode off to connect a cots UE followed by airplane mode on
to disconnect it gives very bad results (bad disconnection with lots of
UL failures followed by lots of logs in the eNB). It used to work properly
after the work done by Xu Bo.

It turns out that in 2018.w04 things were still working okay. But
in 2018.w05 no.

So I ran:

    git diff 2018.w04 2018.w05

And I checked all the modifications that I thought were relevant
(everything related to the UE, oaisim, if4 and fapi has not been checked).

This commits takes back the version of 2018.w04.

The modifications in openair2/RRC/LITE/rrc_eNB.c are necessary, I think.

The other modifications may not be necessary or even wrong. To be checked
at some point.
2018-02-14 17:59:04 +01:00
Cedric Roux 2f1acb16ab Merge remote-tracking branch 'origin/oaisim-compilation-ubuntu-17-10_2018-w07' into develop_integration_2018_w07 2018-02-13 15:33:04 +01:00
Cedric Roux 22742a4c9c hack: get oaisim to compile on Ubuntu 17.10
The following did not work before this commit
on ubuntu 17.10:

    ./build_oai --oaisim -c

oaisim has not been tested. It may fail to work. To be tested.
2018-02-13 15:30:39 +01:00
Cedric Roux e794f920c7 integration fix: remove definition of OAI_NW_DRIVER_USE_NETLINK in source file
This is done better by commit 6210eb056f.
2018-02-12 16:15:09 +01:00
Cedric Roux 0b5d0a1761 Merge remote-tracking branch 'origin/fix-ue-compilation-2018-w07' into develop_integration_2018_w07 2018-02-12 16:12:19 +01:00
Cedric Roux d68ddebe21 Merge branch 'develop-oaisim-ue-hotfix' into develop_integration_2018_w07 2018-02-12 16:11:17 +01:00
Cedric Roux 8d0f964755 Merge remote-tracking branch 'origin/tx_att_rx_att' into develop_integration_2018_w07 2018-02-12 16:09:35 +01:00
Cedric Roux 94a11ee54e Merge branch 'emad72:patch-1' into develop_integration_2018_w07
The branch has been rebased to current origin/develop before merge.
2018-02-12 16:08:13 +01:00
Cedric Roux 6210eb056f bugfix: fix ue_ip.ko compilation
Not sure that the use of __KERNEL__ is the correct solution.
To be checked at some point.

After this commit, the following works:
./build_oai --UE -c
2018-02-12 15:26:45 +01:00
Cedric Roux 6868329384 Merge remote-tracking branch 'origin/develop_integration_2018_w06' into develop
Summary of changes:
- fix MAC indentation
- bug fixes:
  - fix uplink over-scheduling
  - fix CQI updating (it was done even when it shouldn't)
  - fix rrc rel10 compilation
  - some minor bug fixes related to ASN.1
2018-02-09 11:20:28 +01:00
Cedric Roux 26073a353b Merge remote-tracking branch 'origin/fix-enb-name-2018-w06' into develop_integration_2018_w06 2018-02-09 11:04:56 +01:00
Cedric Roux 11fe5f97c7 bugfix: fix eNB name in configuration files
'_' is not a valid character.

S1AP specs say:

    ENBname ::= PrintableString (SIZE (1..150,...))

And X.680 (08/2015) 41.4 table 10 lists the valid characters for
PrintableString. '_' is not there. We replace by '-' which is there.

Connection of eNB to ppenair-cn has not been tested. There is no reason
why it would fail.
2018-02-09 10:49:50 +01:00
Cedric Roux 7ce1621622 Merge remote-tracking branch 'origin/fix-sib3-2018-w06' into develop_integration_2018_w06 2018-02-08 11:04:27 +01:00
Cedric Roux f3e7a72e55 Merge remote-tracking branch 'origin/fix-cqi-update-2018-w06' into develop_integration_2018_w06
Conflicts:
	openair2/LAYER2/MAC/eNB_scheduler_primitives.c
2018-02-08 11:03:50 +01:00
Cedric Roux 724970e2ef Merge remote-tracking branch 'origin/fix-ul-buffer-info-2018-w06' into develop_integration_2018_w06
Conflicts:
	openair2/LAYER2/MAC/eNB_scheduler_primitives.c
	openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
2018-02-08 10:59:19 +01:00
Cedric Roux f6345f048e Merge remote-tracking branch 'origin/fix-rrc-rel10-compilation-2018-w06' into develop_integration_2018_w06
Conflicts:
	openair2/LAYER2/MAC/eNB_scheduler_RA.c
	openair2/LAYER2/MAC/eNB_scheduler_primitives.c
2018-02-07 15:12:08 +01:00
Cedric Roux 8e3ecf3399 Merge remote-tracking branch 'origin/fix-s1ap-2018-w06' into develop_integration_2018_w06 2018-02-07 15:03:56 +01:00
Cedric Roux d23b02af56 Merge remote-tracking branch 'origin/mac-indentation-fix' into develop_integration_2018_w06 2018-02-07 15:03:38 +01:00
Cedric Roux 1fce1bbf82 bugfix: fix SIB3 encoding
The unused bits are the lower bits, so we need to shift.

Not sure that the value 1 is what we want though.
2018-02-07 14:51:50 +01:00
Cedric Roux c0bcd78673 bugfix: don't take into account report CQI in case of NACK or DTX
The problem that may happen is that when the UE does not transmit
on PUCCH (for whatever reason) we may get no signal at all, and
thus compute a very low CQI. Later on we may ask the UE to transmit
louder which may lead to saturation and more problems.

The solution is simple: don't care about CQI in case of DTX
(and NACK also, as done for PUSCH).

Only FDD case done.
For TDD it seems that:
- nfapi structures are not correct. See nfapi_harq_indication_tdd_rel13_t
  in nfapi/open-nFAPI/nfapi/public_inc/nfapi_interface.h, all the cases
  (bundling, multiplex, ...) use nfapi_harq_indication_tdd_harq_data_t
- the function extract_harq does not handle TDD
2018-02-07 12:31:26 +01:00
Cedric Roux 9b7364a3ca minor: fix AssertFatal 2018-02-07 12:30:00 +01:00
Cedric Roux eccb96c4c2 bugfix: fix UL over scheduling
There is too much UL scheduling because the buffer status is
overestimated.

This commit tries to make things simpler.
2018-02-06 14:37:03 +01:00
Cedric Roux a21c0b809f bugfix: fix RRC Release 10 compilation
The following compilation did not work anymore:

    ./build_oai --eNB -w USRP -r Rel10 -c

(Rel8 still does not work.)
2018-02-05 17:21:40 +01:00
Cedric Roux f55cbe475c bugfix: fix initialUEMessage criticality
S1AP specs say:

    initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= {
        INITIATING MESSAGE      InitialUEMessage
        PROCEDURE CODE          id-initialUEMessage
        CRITICALITY             ignore
    }

So let's use "ignore", not "reject".

The online decoder http://asn1-playground.oss.com/ did
not decode a message encoded by the eNB because of this.

Only the S1AP messages captured while doing a simple connection
of one UE have been tested with the online decoder.

So, not all the S1AP messages have been checked, maybe some
instances of this problem are still there.

It does not seem to harm the actual UE<->eNB<->EPC communication
(because we don't check the integrity of messages or because
asn1c does not do it), so it's not a big deal.
2018-02-05 16:50:52 +01:00
Cedric Roux be8d32d55f Merge remote-tracking branch 'origin/develop_integration_2018_w05' into develop
Summary of changes:
- noS1 fixes
- various bugs fixed
2018-02-02 11:43:54 +01:00
Cedric Roux ea0d778176 Merge remote-tracking branch 'origin/develop-nos1-fixes' into develop_integration_2018_w05 2018-02-02 10:18:31 +01:00
Cedric Roux cd8e8458cf Merge remote-tracking branch 'origin/develop_integration_2018_w04' into develop
Summary of changes:
- heavy code cleanup (#ifdef removal)
- bugfixes
2018-01-23 09:30:04 +01:00
Cedric Roux ecd4aebbe0 Merge remote-tracking branch 'origin/issue-285-connect-disconnect-multiple-time' into develop_integration_2018_w04 2018-01-22 18:44:32 +01:00
Cedric Roux 97ebc165cc Merge remote-tracking branch 'origin/282-flags-cleanup' into develop_integration_2018_w04
Conflicts:
	openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
	openair1/SCHED/defs.h
	openair2/LAYER2/PDCP_v10.1.0/pdcp.c
	openair2/RRC/LITE/rrc_eNB.c
2018-01-22 17:47:01 +01:00
Cedric Roux b5513cadf1 hotfix: fix nfapi for correct compilation on ubuntu 17.10 2018-01-22 16:00:21 +01:00
Cedric Roux 4b5b556493 bugfix: fix issue 285 - connect/disconnect multiple time
As reported by Emad Alizade:

    According to "Issue255 256 257 paging reesta release" that has been
    merged in develop version, we have a question: In rrc_eNB_free_UE()
    function only all ulsch related memory of user has been cleaned, but
    I think not only ulsch memory but also dlsch memory must be cleaned.
    I tested the latest develop version and with repetition UE attach-detach
    procedures we find that the dlsch memory has not been cleaned and after
    repeat this sequence (45 times) assertion with cause UE_id!=-1 (no free
    or exiting dlsch_context, dci_tools.c: fill_dci_and_dlsch() ) occurred
    and no UE will be attached to system.

The fixes in this commit are from Emad Alizade.
2018-01-22 15:32:41 +01:00
Cedric Roux 91dd7ed4b6 Merge remote-tracking branch 'origin/develop_integration_2018_w03' into develop
Summary of changes:
- Implementation of paging (see issue #255 in gitlab)
- Implementation of RRC RE-ESTABLISHMENT (see issue #256 in gitlab)
- Implementation of RRC CONNECTION RELEASE (see issue #257 in gitlab)

Some modifications with timers have been done.
Expect (and report) problems, thanks.

What has been tested:
- monolithic eNB 5 and 10MHz with one commercial UE. UDP and TCP
  traffic, uplink and downlink, with iperf (with a third party
  EPC, not openair-cn). TCP downlink traffic is not stable.
  Reason yet unknown. Will be fixed later.
2018-01-19 16:32:18 +01:00
Cedric Roux 3a867ac767 integration fix: add T trace 2018-01-19 15:51:38 +01:00
Cedric Roux 282f6a5077 Merge branch 'issue255_256_257_paging_reesta_release' into develop_integration_2018_w03
Conflicts:
	targets/RT/USER/lte-softmodem.c
2018-01-17 11:49:44 +01:00
Cedric Roux 8489e40659 Merge remote-tracking branch 'origin/develop_integration_2018_w02' into develop
Summary of changes:
- integration of Cisco work on nFAPI.
  See commits 7757b9e7e7
  and 922b5b595a for details.
- support Ubuntu 17.04 and 17.10
- bugfix: DCI padding bits
  This bug made the system non-working because the DCIs for
  SIBs were wrong. See commit c5ca2bd862
  for details.
- fix issue 281: IQ record/playback explicit filename segv.
2018-01-15 17:04:56 +01:00
Cedric Roux 55641754d9 Merge remote-tracking branch 'origin/issue281_iq_filename' into develop_integration_2018_w02 2018-01-15 15:58:48 +01:00
Cedric Roux c3ba7ba713 Merge remote-tracking branch 'origin/support-ubuntu17' into develop_integration_2018_w02 2018-01-15 15:45:47 +01:00
Cedric Roux 9c8b6e56f2 Merge remote-tracking branch 'origin/hotfix-dci-clear-padding-bits' into develop_integration_2018_w02 2018-01-15 15:45:18 +01:00
Cedric Roux cb250cba35 Merge remote-tracking branch 'origin/nfapi-integration' into develop_integration_2018_w02 2018-01-15 15:44:41 +01:00
Cedric Roux 922b5b595a Fix NFAPI integration
This commit fixes issues introduced by the previous commit.

Summary of work:
- cleanup:
  - fix LOG_XX to be less verbose
  - fix cmake_targets/CMakeLists.txt
  - fix oaienv
  - remove dead code
- bug fixes:
  - in openair1/SCHED/fapi_l1.c we had:
      eNB->pdcch_vars[subframe&1].num_dci           = number_dci;
    should be:
      eNB->pdcch_vars[subframe&1].num_dci           = 0;
    This bug let the PHY send more DCIs than what should have been
    sent because num_dci is incremented later on in the code.
    This fix may be a problem for fapi mode, to be checked.
  - add new T VCD traces
  - revert openair1/PHY/TOOLS/file_output.c to 'develop' version
  - remove thread_id in logRecord/logRecord_mt
  - revert (and adapt) configuration files
  - be careful when doing frame++, we need to % 1024
  - revert target_rx_power in openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
- NFAPI:
  - the open-nFAPI code has been included in the repository. See nfapi/README.
    Maybe we should "git clone" the Cisco repository instead. We have to be
    careful of availability though.

What has been tested:
- monolithic eNB FDD 5/10MHz with one UE, iperf UDP/TCP uplink/downlink

Anything else may fail to work, especially the FAPI mode, which has not
been tested at all.
2018-01-15 15:24:50 +01:00
Cedric Roux 7757b9e7e7 import NFAPI work from David Price from Cisco (non-working commit, do not use it)
It has been chosen to not include the full history of commits
from David. He included a binary version of wireshark, probably
a modified one that understands NFAPI. Wireshark is released under
the GPL license, we cannot include it in the repository. We could
have done a next commit to remove this binary. But then it would
still be present in the history of commits, which may not be allowed.
And it would take space on disk. We could edit the history to remove
wireshark entirely. But this operation is too complicated.

There was also a pcap capture file, which has nothing to do in
the history of commits and would take space on disk. There again,
it's too difficult to edit the history to remove it.

There was a file .gitignore that was also removed.

The original history can be found on David's repository:
https://gitlab.eurecom.fr/daveprice/openairinterface5g/
The branch is: nfapi-ru-rau-split.

A copy of that branch has been included in the internal OAI
repository, for those who have access to it.
The branch is the same. The last commit ID is
9106438239e0bc626ff1fa1d97d911caadd0fbb9.

You can compare the current commit with the commit 9106...
to see what differs.

The current commit has to be considered non-working.
The commit following the current commit will fix problems with
the work in the current commit.

If you use git bisect, don't spend time analyzing the current
commit.
2018-01-15 11:32:30 +01:00
Cedric Roux ec56a416b7 Add support for Ubuntu 17.04 and 17.10.
Basically, build_helper has been adapted so that:
  ./buil_oai -I -w USRP
works for Ubuntu 17.04 and 17.10.

Concerning those systems:
- compilation with "--eNB --UE -w USRP" works
- the enb softmodem runs on 17.04 (not tested on 17.10)
- nothing else has been tested.

Users should report any problem.
2018-01-04 16:35:09 +01:00
Cedric Roux c5ca2bd862 hotfix: clear DCI padding bits
The problem is the following (as reported by an user):

  "one UE is attached to OAI system. UE is near the antenna. Try to detach
  the UE and attach again. Repeat this procedure for 5-6 times. OAI system
  does not work and any the UE can not attach to this system. I use TEMS
  software and I can see MIB signaling on this UE but UE can not decode SIB1
  and SIB2."

What happens is that the DCI for SIB1 and SIB2 is not cleared before
use. That is the bits in the 'padding' field keep the values that were
set before. If the structure has been used to transmit other DCIs
(eg. for UEs) in the past, it may be reused with some of those bits set
to 1. When receiving this DCI, the UE won't accept it because it
gets some bits at 1 where it expects them to be 0.

The short-term/quick solution is to clear the 'padding' field.
A better solution would be to rewrite this part of the code,
which is way too complicated for what it does. But this takes
too much time.

In dci.h the field 'dummy' of some structures was renamed to 'padding'.
The fields 'padding32' and 'padding64' were also renamed to 'padding'
for consistency.

Some structures (DCI2B_1_5MHz_TDD, DCI2B_10MHz_FDD, DCI2D_1_5MHz_FDD,
DCI2D_5MHz_FDD, DCI2D_10MHz_FDD) had a 'padding' field at the end, which
was renamed to 'padding0'. I don't know if this field should be here at all.
To me this field looks very suspicious. When we test DCIs 2B and 2D we
should be careful.
2018-01-03 11:19:54 +01:00
Cedric Roux a2d16b34dd Merge remote-tracking branch 'origin/develop_integration_w48' into develop
Summary of changes:
- bug fixes: random access, crash on physicalConfigDedicated)
- some work on the UE to have it functional again
- IQ record and playback (work from Nokia)
  see documentation at: https://gitlab.eurecom.fr/oai/openairinterface5g/merge_requests/244
2017-12-01 14:54:32 +01:00
Cedric Roux a7b7de35b9 integration fix: remove compilation warning (not sure -1 is the correct value) 2017-12-01 12:16:01 +01:00
Cedric Roux e68d6bd4c0 integration fix: remove compilation warning 2017-12-01 12:15:07 +01:00
Cedric Roux 1b4ae8fb2c Merge remote-tracking branch 'origin/bugfixes_w48' into develop 2017-12-01 11:55:52 +01:00
Cedric Roux 487ef8c2ad Merge branch 'florian.kaltenberger/openairinterface5g-fix_ue' into develop 2017-12-01 11:45:49 +01:00
Cedric Roux 4d4ffac482 Merge remote-tracking branch 'origin/feature-iq-record-playback' into develop 2017-12-01 11:38:42 +01:00
Cedric Roux 4526622b36 bugfix: don't check for physicalConfigDedicated at the wrong places
physicalConfigDedicated may be legitimately NULL at some places
with the current code.

A cleaner solution is needed (we should always have a dedicated
config, initialized with values from the 3GPP specs, not have
a NULL as we do now).
2017-11-27 16:45:01 +01:00
Cedric Roux b0d505d2e8 bugfix: always cancel Random Access Process
Even if the old UE is not found, we have to cancel the random access.
2017-11-27 11:19:12 +01:00
Cedric Roux fc0a60e191 Merge remote-tracking branch 'origin/develop_integration_w46' into develop
Summary of changes:

- minor changes in RA code (functionality not changed, only notation)
- automatic indentation of some files (with indent -kr)
- bugfixes for TDD in RRU (IF4p5) and timing statistics of fronthaul and
  compression
2017-11-17 15:55:40 +01:00
Cedric Roux e190c4e2bc Merge remote-tracking branch 'origin/RA-notation' into develop_integration_w46 2017-11-17 15:27:38 +01:00