kpi: Calc: Add support for E-UTRAN IP Throughput KPI
This patch provides the final building block for E-UTRAN IP Throughput KPI. It continues d102ffaa (drb: Start of the package) 5bf7dc1c (amari.{drb,xlog}: Provide aggregated DRB statistics in the form of synthetic x.drb_stats message) 499a7c1b (amari.kpi: Teach LogMeasure to handle x.drb_stats messages) Quoting those patches The scheme to compute E-UTRAN IP Throughput is thus as follows: poll eNB at 100Hz frequency for `ue_get[stats]` and retrieve information about per-UE/QCI streams and the number of transport blocks dl/ul-ed to the UE in question during that 10ms frame. Estimate `tx_time` taking into account the number of transmitted transport blocks. And estimate whether eNB is congested or not based on `dl_use_avg`/`ul_use_avg` taken from `stats`. For the latter we also need to poll for `stats` at 100Hz frequency and synchronize `ue_get[stats]` and `stats` requests in time so that they both cover the same time interval of particular frame. Then organize the polling process to provide aggregated statistics in the form of new `x.drb_stats` message, and teach `xamari xlog` to save that messages to `enb.xlog` together with `stats`. Then further adjust `amari.kpi.LogMeasure` and generic `kpi.Measurement` and `kpi.Calc` to handle DRB-related data. <-- NOTE So here we implement that last noted step: We add Calc.eutran_ip_throughput() whose implementation is relatively straightforward as the hard part is done by amari.drb and amari.kpi - in the Calc we basically need to only divide provided DRB.IPVolDl / DRB.IPTimeDl.
Showing