- don't call exit() if get_message() fails, simply terminate the thread and
disable the T tracer
- T_dont_fork disappears, monitor_and_kill() as well, so now it's only 2
processes: the main (enb/gnb/ue) and the local tracer
- 'busy' has to be handled in a more atomic fashion to avoid crazy
runtime race conditions
- the basic simulator is too fast sometimes; rewrite the accesses to
the T cache to avoid there again crazy behaviors
Hopefully that's better...
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.)
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
The T has 2 processes: the tracee and the local tracer
if the tracee dies (segfault or whatever) the tracee
may still be running.
So there is a third process that monitors those two others
and kill everything when one dies.
The problem is that this third process has to be the parent
of the two others. That makes debugging the tracee with gdb
impossible. This new option disables the third monitor process.