radio/vrtsim: Add CIRDB support for precomputed channel taps

Integrate Channel Impulse Response Database (CIRDB) to enable playback
of precomputed realistic channel taps in vrtsim, with runtime selection
via YAML metadata.

Features:
- Read precomputed channel taps from binary database with YAML sidecar
- Runtime enable via --vrtsim.cirdb with optional paths (cirdb_yaml, cirdb_file, cirdb_path)
- Channel parameter configuration: model_id (TDL-A..E), delay spread (ds_ns), UE speed (speed_mps)
- Fallback to existing channel model options when disabled
- Time-driven snapshot progression based on elapsed simulation time

Fixes:
- RNG initialization: Add randominit() call before gaussZiggurat()
- FlatBuffers linking: Handle both 'FlatBuffers' and 'flatbuffers' package names when working with external channel emmulator
- Address review comments: use pthread directly, update calloc_or_fail, simplify CMake
This commit is contained in:
Merkebu Girmay
2026-02-09 23:22:40 -08:00
parent 9777d23173
commit ccf5021072
7 changed files with 745 additions and 10 deletions
@@ -248,3 +248,15 @@ e2_agent = {
#sm_dir = "/path/where/the/SMs/are/located/"
sm_dir = "/usr/local/lib/flexric/"
};
vrtsim :
{
#role = "server"; # "server" or "client"
#client-num-rx-antennas = 1; # publish expected client RX count
#cirdb = 1; # Enable CIR DB taps
# cirdb_yaml = "/path/to/vrtsim.yaml";
# cirdb_file = "/path/to/cir_db.bin";
cirdb_model_id = 0; # 0..4 for 3GPP TDL-A..E
cirdb_ds_ns = 10.0; # RMS delay spread in ns (10, 30)
cirdb_speed_mps = 1.5; # UE speed in m/s (1.5, 30)
};