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
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.
The agent_id is a uint64 consisting of: module ID (i.e. mod_id, the several
instances of OAI at once, 16 bit), the enb_id from the configuration file (32
bit) and the cell_id from the configuration file (16 bit).
The module ID is part of the agent ID but it is easier to have it directly in
the struct.
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.
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.