Whenever the value T_BUFFER_MAX changes, the tracers had to
be recompiled. The only reason why it was needed is because we
used some fixed size buffers to read events. This commit removes
this restriction.
Also, with the basic simulator, this value T_BUFFER_MAX now comes
with an #ifdef which would have required some special hackish-level
tricks in the tracers, which is not good.
Let's just allocate memory when needed.
This commit introduces a 'basic simulator'.
This basic simulator is made of:
- the standard eNB code using a special driver that mimics the USRP driver
- the standard UE code using a special driver that mimics the USRP driver
- no channel simulation
- some special code to deal with faster-than-realtime behaviour of this
basic simulator
It connects one UE to one eNB. It requires an EPC, populated with the
correct configuration for the UE.
This is the initial release and may contain bugs (most probably race
conditions due to the faster-than-realtime behaviour).
To use it, see the documentation at:
targets/ARCH/tcp_bridge/README.tcp_bridge_oai.
It has been tested with 25, 50 and 100 RBs, FDD mode.
(No check at all has been done to know if it could work in TDD mode.)
1. Previous SW configuration for different RRC version relies on whether macro Rel10,
Rel14 defined or not by checking #ifdef Rel14 or #if defined(Rel10) || defined(R14).
Whenever there is a newer RRC version, e.g. Rel15, it will be very a tedious and
error-prone job to add defined(Rel15) in every place.
2. Some RRC messages are defined in release 13 instead of release 14, NB-IoT
feature is one of such example. Our code shall reflect this fact instead of using
an afterward version number in software configuration.
3. Some RRC messages or some fields of certain RRC messages are added in the middle
a release, e.g. SystemInformationBlockType1_v1310_IEs_t defined in RRC 13.1.0
and RRC 9.2.0 made some changes to SIB12 and SIB13 so we have sib12_v920 and
sib13_v920 fields in SIB12 and SIB13's struct.
We need a finer grain of control when using ASN1 from different RRC version.
4. S1AP also has this problem that it use UPDATE_RELEASE_9 and UPDATE_RELEASE_10 to
differentiate between various S1AP version.
This commit propose using MAKE_VERSION(x,y,z) to designate the version number and
modify current conditional compilation accordingly.
Note: 2018/04/16, Modified based on Cedric's comment.
Summary of changes:
- some work on better parallel processing of eNB
try the eNB with options: --fepw --codingw
- small changes for multi-UE simulation and simulation accuracy
(UE power levels)
- initial work for the UE to use TUN device instead of ue_ip.ko
only done for oaisim, default bearer, compile with:
./build_oai --ue-nas-use-tun <rest of options>
- fix compilation of dlsim/ulsim/oaisim by defining some needed
global variables
- fix compilation of oaisim: compile coding and params_libconfig
- fix running of if4p5 with low CPU count (oaisim was not working
on the machine 'haswell' because of this)
This work is based on work by NTT.
To use the code, do:
./build_oai --oaisim --ue-nas-use-tun -t ETHERNET -c
This commit only handles oaisim in S1 mode.
We won't handle noS1 mode.
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
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