I/Q record-playback in USRP
This issue is intended to provide I/Q record-playback feature in USRP as presented in the 4th OAI workshop.
The I/Q record/playback feature is briefly described hereafter.
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 --usrp-recplay for full eNB and RCC/RRU. The record/replay operation mode is configured by command line arguments described below.
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 regular behavior. When you estimate the recorded sequence is achieved, you should terminate the eNB/RRU by typing CTRL-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) that 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.
The option can be used while operating full eNB or RCC/RRU linked by NGFI IF5/IF4p5 fronthaul techniques. One of the advantage of the record/replay technique is that you can replay on a fronthauling setup a file that has been recorded in full eNB mode. This can easily asserts that the fronthauling 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.
Playback/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 200)
--subframes-write-delay Delay in milliseconds to write a subframe in replay mode (default 15)