Commit Graph
945 Commits
Author SHA1 Message Date
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 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 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 00f234029a Merge remote-tracking branch 'origin/bugfixes-2018-w10' into develop_integration_2018_w10 2018-03-09 14:58:37 +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
oai da50d68b06 more NB-IoT integration 2018-03-08 17:35:35 +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 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 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 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 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
shahab SHARIAT BAGHERI 9a9c867a75 additional Mac stats and Improvements 2018-02-20 15:09:24 +01:00
Niccolò Iardella 10e91d4e2f Move the accounting phase of the DL pre-processor in a separate procedure 2018-02-19 15:48:17 +01:00
Raymond Knopp da83df84f1 Merge remote-tracking branch 'origin/develop' into dlsim-ulsim-fix
Conflicts:
	openair1/PHY/INIT/lte_init.c
2018-02-18 01:39:36 -08: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 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
Niccolò Iardella 7e3b1f5d0a Niccolo: Add sorting policy 2018-02-14 17:06:04 +01:00
Raymond Knopp e9d536972c updated dlsim to FAPI interfaces 2018-02-13 07:18:52 -08:00
Robert Schmidt c33e184dde bugfix: selectively inform FlexRAN RTController of UE state change 2018-02-13 14:25:50 +01:00
Robert Schmidt a68d70a13d bugfix: prevent segfault in pre_processor.c 2018-02-13 14:23:54 +01:00
Navid Nikaein 5865c141d0 Improve UL/DL MCS assignment 2018-02-13 11:45:16 +01:00
Emad ddd3e97f14 srb_id must be between [1,3] 2018-02-12 16:07:22 +01:00
Robert Schmidt 135b06ae66 bugfix: only send eNB stats to controller if agent enabled 2018-02-12 15:21:02 +01:00
Robert Schmidt adec4e39df remove all conditional FlexRAN-related compilation directives 2018-02-12 14:38:44 +01:00
Robert Schmidt 3768723c62 remove unnecessary comments 2018-02-12 13:50:48 +01:00
Robert Schmidt ceece5694d rename flexran_slice_member() -> ue_slice_membership() 2018-02-12 13:50:48 +01:00
Robert Schmidt 8108d59a0b no regression, fixes compilation warnings&errors 2018-02-12 13:50:48 +01:00
Robert Schmidt a78aaa451c fix slicing capability in ulsch scheduler 2018-02-12 13:50:45 +01:00
Raymond Knopp 4070f0bfdf Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop
Conflicts:
	openair2/LAYER2/MAC/config.c
2018-02-09 22:47:29 -08:00
Robert Schmidt 8877b18a9a fix eNB_ulsch_dlsch_scheduler() broken by merge 2c8443121d 2018-02-09 19:05:36 +01:00
Robert Schmidt e8e58e2594 Merge branch 'develop' into feature-merge-merge-f68 2018-02-09 17:10:41 +01:00
Robert Schmidt a21bc513bb Merge branch 'develop' into feature-merge-f68 2018-02-08 18:05:28 +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 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
Raymond Knopp 01f06bcf09 compilation success 2018-02-03 08:11:48 -08:00
Raymond Knopp 4af41d2a26 more correction of indentation 2018-02-03 07:53:33 -08:00
Raymond Knopp 2c8443121d Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into mac-indentation-fix
Conflicts:
	openair2/LAYER2/MAC/config.c
	openair2/LAYER2/MAC/eNB_scheduler.c
	openair2/LAYER2/MAC/eNB_scheduler_primitives.c
2018-02-03 06:23:55 -08:00
Raymond Knopp 1a082041b8 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop
Conflicts:
	openair2/LAYER2/MAC/config.c
2018-02-03 06:03:04 -08:00