** The IQ record-playback feature **
This option allows you to:
-record subframes received by the USRP board in a file while the system is operating (for example you can record a full UE connection/traffic/ disconnection sequence)
-replay subframes from a file to operate the system (possibly in multiple loops if the recorded sequence is convenient from the logical point of view)
The option requires a specific build option for full eNB and RCC/RRU. The record/replay operation mode is configured by command line arguments (see details below).
The option can be used while operating full eNB or RCC/RRU linked by NGFI IF5/IF4p5 front-haul techniques.
One of the advantage of the record/replay technique is that you can replay on a front-hauling setup a file that has been recorded in full eNB mode. This can easily asserts that the front-hauling underlying set up or technique is correct.
The option works only for 5MHz bandwidth. Using the option with 10MHz or 20MHz bandwidth produces unexpected results. Further release might extend support for other bandwidths.
** Build the software with the feature **
-build full eNB with record/playback capability:
./build_oai --eNB --usrp-recplay -w USRP
-build RCC with record/playback capability:
./build_oai --eNB -t ETHERNET --usrp-recplay
-build RRU with record/playback capability:
./build_oai --eNB -t ETHERNET --usrp-recplay -w USRP
** Run in IQ record mode **
options for record mode are:
--subframes-record Activate record mode
--subframes-file Path of the file used for subframes recording (default is /home/nokia/iqfile)
--subframes-max Maximum count of subframes to be recorded in subframe file (default is 120000)
Note that the value of --subframes-max parameter needs to be tuned according to your RAM capabilities. The default value is 120000, which allows for 120 seconds of record/replay but will require ~3.6GB of RAM and disk space. If RAM does not allow for the parameter value, an error message will be displayed and the run will be aborted. In record mode, subframes are copied in specific memory records not to disrupt the regular behavior. When you estimate the recorded sequence is achieved, you should terminate the eNB/RRU by typing CONTROL-C. At that time up to the value of --subframes-max parameter will be written on disk. The eNB/RRU will indicate the exact count of subframes written to disk, which may be less (but not higher) than the value of --subframes-max parameter (120000 by default). The number of subframes written to disk is rounded to an integral number of frames. When replaying a file you should always specify the exact number of subframes, and thus use the exact number of subframes written during recording. You might experiment unexpected behavior if the number of subframes to be replayed does not match the number of subframes recorded. This might be improved in the future.
Although it is possible to perform recording with a fronthaul setup, it is suggested to perform recording in full eNB mode and then replay in either full or split eNB.
-to run full eNB at 5MHz bandwidth in record mode for 120s
./lte-softmodem --subframes-record --subframes-file <recording_file> -O <configuration_file>
Then run the sequence to be recorded up to 120s and type CTRL-C to stop the eNB. At the time the eNB is stopped, it will transfer the subframes stored in memory on the disk. This might take a bit of time, mainly depending on the underlying hard disk technology (i.e. SSD is faster). As previously stated, remember the exact count of subframes that have been written to disk.
** Run in replay mode **
Because a subframe file does not contain any information regarding bandwidth or number of subframes, you must provide these parameters together with the used file. It is thus suggested to carry bandwidth and, size information in the file name itself. Mismatch between file content and run time parameters might lead to unpredictable results. In addition a file recorded on a AVX2-capable processor cannot be replayed on a non-AVX2-capable processor (this is to be further investigated).
options for replay mode are:
--subframes-replay Activate replay mode
--subframes-file Path of the file used for subframes replay (default is /home/nokia/iqfile)
--subframes-max Count of subframes to be replayed from file (default is 120000)
--subframes-loops Number of loops to replay of the entire subframes file (default is 5)
--subframes-read-delay Delay in microseconds to read a subframe in replay mode (default 400)
--subframes-write-delay Delay in milliseconds to write a subframe in replay mode (default 15)
-to run full eNB or RRU in replay mode (with previously recorded file example)
./lte-softmodem --subframes-replay --subframes-file <recording_file> -O <configuration_file>
Note that the RRU will need to load the recorded file and initialize before the RCC can be started.
-to run RCC with a RRU running in replay mode
./lte-softmodem -O <configuration_file>
Note that to run IQ record playback, the ePC shall be configured to bypass MAC integrity checks in S1AP. This feature is provided when using Bell Labs Software ePC (a.k.a. ltebox).