aboutsummaryrefslogtreecommitdiffstats
path: root/nfvbench/packet_stats.py
diff options
context:
space:
mode:
authorPierrick Louin <pierrick.louin@orange.com>2020-11-08 21:49:49 +0100
committerPierrick Louin <pierrick.louin@orange.com>2020-11-09 22:58:15 +0100
commitbd0cf4ce9c30c8aae9b7a96cf9c8ea073cd9a548 (patch)
tree9959fedcecc8c5f2258fb8c84eead8ba8587ce9c /nfvbench/packet_stats.py
parentd41631be9142a50284cfbfd252a53e97d7ebd8c7 (diff)
NFVBENCH-192: Complete/fix hdrh related processings to consider all cases
(multiple service chains, distribution n/a with intel VFs) Signed-off-by: Pierrick Louin <pierrick.louin@orange.com> Change-Id: I80e38601292a7777d37ed05959c8ef205505c2ac
Diffstat (limited to 'nfvbench/packet_stats.py')
-rw-r--r--nfvbench/packet_stats.py21
1 files changed, 12 insertions, 9 deletions
diff --git a/nfvbench/packet_stats.py b/nfvbench/packet_stats.py
index d6b9a68..d3ec78a 100644
--- a/nfvbench/packet_stats.py
+++ b/nfvbench/packet_stats.py
@@ -239,18 +239,21 @@ class PacketPathStats(object):
results = {'lat_min_usec': latency.min_usec,
'lat_max_usec': latency.max_usec,
'lat_avg_usec': latency.avg_usec}
- if latency.hdrh:
+ if latency.hdrh_available():
results['hdrh'] = latency.hdrh
decoded_histogram = HdrHistogram.decode(latency.hdrh)
- # override min max and avg from hdrh
- results['lat_min_usec'] = decoded_histogram.get_min_value()
- results['lat_max_usec'] = decoded_histogram.get_max_value()
- results['lat_avg_usec'] = decoded_histogram.get_mean_value()
results['lat_percentile'] = {}
- for percentile in self.config.lat_percentiles:
- results['lat_percentile'][percentile] = decoded_histogram.\
- get_value_at_percentile(percentile)
-
+ # override min max and avg from hdrh (only if histogram is valid)
+ if decoded_histogram.get_total_count() != 0:
+ results['lat_min_usec'] = decoded_histogram.get_min_value()
+ results['lat_max_usec'] = decoded_histogram.get_max_value()
+ results['lat_avg_usec'] = decoded_histogram.get_mean_value()
+ for percentile in self.config.lat_percentiles:
+ results['lat_percentile'][percentile] = decoded_histogram.\
+ get_value_at_percentile(percentile)
+ else:
+ for percentile in self.config.lat_percentiles:
+ results['lat_percentile'][percentile] = 'n/a'
else:
results = {}
results['packets'] = counters