diff options
author | Martin Klozik <martinx.klozik@intel.com> | 2018-03-01 09:22:47 +0000 |
---|---|---|
committer | Martin Klozik <martinx.klozik@intel.com> | 2018-04-11 10:11:47 +0000 |
commit | be271aef854887fce72d821a8589dfd4ebbe8e1d (patch) | |
tree | 35c521ef5f8c541398d340764eff930cbb2fb52b /tools/pkt_gen/ixia/ixia.py | |
parent | 1b37c72a4f4459a7e776503e8bb74e393b246493 (diff) |
ixia: Bugfixing and burst type enhancement
A support for proper reporting of "Burst" traffic type was added.
Several bugs were fixed:
* RFC2544 Throughput - end of search condition was moved to avoid
situation, that another iteration is executed but its results
dropped
* RFC2544 Throughput - pause after each iteration was added to ensure
that all frames are cleared from buffers; It improves stability
of results. Also "received" values are no longer higher then
"sent" values.
* VSPERF will report also the number of sent and received frames
* VSPERF will correctly process send and received values - they
were switched on several places
JIRA: VSPERF-149
JIRA: VSPERF-562
Change-Id: I8a5caa6385a1ef86aa4bf4511d2753100ed0ab14
Signed-off-by: Martin Klozik <martinx.klozik@intel.com>
Reviewed-by: Al Morton <acmorton@att.com>
Reviewed-by: Christian Trautman <ctrautma@redhat.com>
Reviewed-by: Sridhar Rao <sridhar.rao@spirent.com>
Reviewed-by: Richard Elias <richardx.elias@intel.com>
Diffstat (limited to 'tools/pkt_gen/ixia/ixia.py')
-rwxr-xr-x | tools/pkt_gen/ixia/ixia.py | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/tools/pkt_gen/ixia/ixia.py b/tools/pkt_gen/ixia/ixia.py index 1982663c..31f51246 100755 --- a/tools/pkt_gen/ixia/ixia.py +++ b/tools/pkt_gen/ixia/ixia.py @@ -254,9 +254,9 @@ class Ixia(trafficgen.ITrafficGenerator): result = self._send_traffic(flow, traffic) - assert len(result) == 6 # fail-fast if underlying Tcl code changes + assert len(result) == 10 # fail-fast if underlying Tcl code changes - #NOTE - implement Burst results setting via TrafficgenResults. + return Ixia._create_result(result) def send_cont_traffic(self, traffic=None, duration=30): """See ITrafficGenerator for description @@ -317,20 +317,25 @@ class Ixia(trafficgen.ITrafficGenerator): :returns: dictionary strings representing results from traffic generator. """ - assert len(result) == 8 # fail-fast if underlying Tcl code changes + assert len(result) == 8 or len(result) == 10 # fail-fast if underlying Tcl code changes + + # content of result common for all tests + # [framesSent, framesRecv, bytesSent, bytesRecv, sendRate, recvRate, sendRateBytes, recvRateBytes] + # burst test has additional two values at the end: payError, seqError if float(result[0]) == 0: loss_rate = 100 else: - loss_rate = (float(result[0]) - float(result[1])) / float(result[0]) * 100 + loss_rate = round((float(result[0]) - float(result[1])) / float(result[0]) * 100, 5) result_dict = OrderedDict() - # drop the first 4 elements as we don't use/need them. In - # addition, IxExplorer does not support latency or % line rate + # IxExplorer does not support latency or % line rate # metrics so we have to return dummy values for these metrics - result_dict[ResultsConstants.THROUGHPUT_RX_FPS] = result[4] - result_dict[ResultsConstants.TX_RATE_FPS] = result[5] - result_dict[ResultsConstants.THROUGHPUT_RX_MBPS] = str(round(int(result[6]) / 1000000, 3)) - result_dict[ResultsConstants.TX_RATE_MBPS] = str(round(int(result[7]) / 1000000, 3)) + result_dict[ResultsConstants.TX_FRAMES] = result[0] + result_dict[ResultsConstants.RX_FRAMES] = result[1] + result_dict[ResultsConstants.TX_RATE_FPS] = result[4] + result_dict[ResultsConstants.THROUGHPUT_RX_FPS] = result[5] + result_dict[ResultsConstants.TX_RATE_MBPS] = str(round(int(result[6]) * 8 / 1e6, 3)) + result_dict[ResultsConstants.THROUGHPUT_RX_MBPS] = str(round(int(result[7]) * 8 / 1e6, 3)) result_dict[ResultsConstants.FRAME_LOSS_PERCENT] = loss_rate result_dict[ResultsConstants.TX_RATE_PERCENT] = \ ResultsConstants.UNKNOWN_VALUE |