-# Copyright 2015 Intel Corporation.
+# Copyright 2015-2016 Intel Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
return trafficgen.BurstResult(*results)
- def send_cont_traffic(self, traffic=None, duration=30, multistream=False):
+ def send_cont_traffic(self, traffic=None, duration=30):
"""
Send a continuous flow of traffic.
"""
results = get_user_traffic(
'continuous',
- '%dmpps, multistream %s duration %d' % (traffic['frame_rate'],
- multistream, duration), traffic_,
- ('frames tx', 'frames rx', 'min latency', 'max latency',
- 'avg latency'))
+ '%dmpps, multistream %s, duration %d' % (traffic['frame_rate'],
+ traffic['multistream'],
+ duration), traffic_,
+ ('frames tx', 'frames rx', 'tx rate %', 'rx rate %', 'min latency',
+ 'max latency', 'avg latency', 'frameloss %'))
framesize = traffic_['l2']['framesize']
- # builds results by using user-supplied values where possible
+ # builds results by using user-supplied values
# and guessing remainder using available info
- result[ResultsConstants.THROUGHPUT_TX_FPS] = float(results[0]) / duration
+ result[ResultsConstants.TX_RATE_FPS] = float(results[0]) / duration
result[ResultsConstants.THROUGHPUT_RX_FPS] = float(results[1]) / duration
- result[ResultsConstants.THROUGHPUT_TX_MBPS] = (float(results[0]) \
- * framesize) / duration
- result[ResultsConstants.THROUGHPUT_RX_MBPS] = (float(results[1]) \
- * framesize) / duration
- result[ResultsConstants.THROUGHPUT_TX_PERCENT] = 0.0
- result[ResultsConstants.THROUGHPUT_RX_PERCENT] = 0.0
- result[ResultsConstants.MIN_LATENCY_NS] = float(results[2])
- result[ResultsConstants.MAX_LATENCY_NS] = float(results[3])
- result[ResultsConstants.AVG_LATENCY_NS] = float(results[4])
-
+ result[ResultsConstants.TX_RATE_MBPS] = (float(results[0]) / duration) \
+ * (framesize * 8 / 1000000)
+ result[ResultsConstants.THROUGHPUT_RX_MBPS] = (float(results[1]) / duration) \
+ * (framesize * 8 / 1000000)
+ result[ResultsConstants.TX_RATE_PERCENT] = float(results[2])
+ result[ResultsConstants.THROUGHPUT_RX_PERCENT] = float(results[3])
+ result[ResultsConstants.MIN_LATENCY_NS] = float(results[4])
+ result[ResultsConstants.MAX_LATENCY_NS] = float(results[5])
+ result[ResultsConstants.AVG_LATENCY_NS] = float(results[6])
+ result[ResultsConstants.FRAME_LOSS_PERCENT] = float(results[7])
return result
def send_rfc2544_throughput(self, traffic=None, trials=3, duration=20,
- lossrate=0.0, multistream=False):
+ lossrate=0.0):
"""
Send traffic per RFC2544 throughput test specifications.
"""
results = get_user_traffic(
'throughput',
'%d trials, %d seconds iterations, %f packet loss, multistream '
- '%s' % (trials, duration, lossrate,
- 'enabled' if multistream else 'disabled'),
+ '%s' % (trials, duration, lossrate, traffic['multistream']),
traffic_,
- ('frames tx', 'frames rx', 'min latency', 'max latency',
- 'avg latency'))
+ ('frames tx', 'frames rx', 'tx rate %', 'rx rate %', 'min latency',
+ 'max latency', 'avg latency', 'frameloss %'))
framesize = traffic_['l2']['framesize']
- # builds results by using user-supplied values where possible
+ # builds results by using user-supplied values
# and guessing remainder using available info
- result[ResultsConstants.THROUGHPUT_TX_FPS] = float(results[0]) \
- / duration
- result[ResultsConstants.THROUGHPUT_RX_FPS] = float(results[1]) \
- / duration
- result[ResultsConstants.THROUGHPUT_TX_MBPS] = (float(results[0]) \
- * framesize) / duration
- result[ResultsConstants.THROUGHPUT_RX_MBPS] = (float(results[1]) \
- * framesize) / duration
- result[ResultsConstants.THROUGHPUT_TX_PERCENT] = 0.0
- result[ResultsConstants.THROUGHPUT_RX_PERCENT] = 0.0
- result[ResultsConstants.MIN_LATENCY_NS] = float(results[2])
- result[ResultsConstants.MAX_LATENCY_NS] = float(results[3])
- result[ResultsConstants.AVG_LATENCY_NS] = float(results[4])
-
+ result[ResultsConstants.TX_RATE_FPS] = float(results[0]) / duration
+ result[ResultsConstants.THROUGHPUT_RX_FPS] = float(results[1]) / duration
+ result[ResultsConstants.TX_RATE_MBPS] = (float(results[0]) / duration) \
+ * (framesize * 8 / 1000000)
+ result[ResultsConstants.THROUGHPUT_RX_MBPS] = (float(results[1]) / duration) \
+ * (framesize * 8 / 1000000)
+ result[ResultsConstants.TX_RATE_PERCENT] = float(results[2])
+ result[ResultsConstants.THROUGHPUT_RX_PERCENT] = float(results[3])
+ result[ResultsConstants.MIN_LATENCY_NS] = float(results[4])
+ result[ResultsConstants.MAX_LATENCY_NS] = float(results[5])
+ result[ResultsConstants.AVG_LATENCY_NS] = float(results[6])
+ result[ResultsConstants.FRAME_LOSS_PERCENT] = float(results[7])
return result
+
if __name__ == '__main__':
TRAFFIC = {
'l3': {