From de0aaffe31e1f787cefe21a5957a07924bb5956f Mon Sep 17 00:00:00 2001 From: Maryam Tahhan Date: Tue, 24 Nov 2015 16:55:54 +0000 Subject: Back2Back: update default params Update the default duration of a back to back test to be 2 seconds which is the minimum recommended by RFC2544, and update the Trials to be 50, which is also the default value specified by the RFC. This patch also fixes the tcl script to allow for the minimum framesize to be sent from the traffic gen. JIRA: Change-Id: I801196c1998ec2bffbeab69a3a290d6ef6feb1c3 Signed-off-by: Maryam Tahhan Reviewed-by: Martin Klozik Reviewed-by: Billy O Mahony --- core/traffic_controller_rfc2544.py | 2 ++ docs/test_spec/vswitchperf_ltd.rst | 10 ++++++---- tools/pkt_gen/ixnet/ixnet.py | 7 +++++-- tools/pkt_gen/ixnet/ixnetrfc2544.tcl | 8 ++++---- 4 files changed, 17 insertions(+), 10 deletions(-) mode change 100755 => 100644 docs/test_spec/vswitchperf_ltd.rst mode change 100755 => 100644 tools/pkt_gen/ixnet/ixnet.py diff --git a/core/traffic_controller_rfc2544.py b/core/traffic_controller_rfc2544.py index a6b3e7f9..7117feeb 100644 --- a/core/traffic_controller_rfc2544.py +++ b/core/traffic_controller_rfc2544.py @@ -99,6 +99,8 @@ class TrafficControllerRFC2544(ITrafficController, IResults): traffic['l2'] = {'framesize': packet_size} if traffic['traffic_type'] == 'back2back': + self._duration = int(get_test_param('duration', 1)) + self._trials = int(get_test_param('rfc2544_trials', 1)) result = self._traffic_gen_class.send_rfc2544_back2back( traffic, trials=self._trials, duration=self._duration) diff --git a/docs/test_spec/vswitchperf_ltd.rst b/docs/test_spec/vswitchperf_ltd.rst old mode 100755 new mode 100644 index a2c72a8a..7adc864f --- a/docs/test_spec/vswitchperf_ltd.rst +++ b/docs/test_spec/vswitchperf_ltd.rst @@ -1268,7 +1268,9 @@ Test ID: LTD.Throughput.RFC2544.BackToBackFrames If the number of received frames equals the number of frames that were transmitted, the burst size should be increased and traffic is sent to the DUT again. The value measured is the back-to-back value, that is the - maximum burst size the DUT can handle without any frame loss. + maximum burst size the DUT can handle without any frame loss. Please note + a trial must run for a minimum of 2 seconds and should be repeated 50 + times (at a minimum). **Expected Result**: @@ -1280,9 +1282,9 @@ Test ID: LTD.Throughput.RFC2544.BackToBackFrames The following are the metrics collected for this test: - - The back-to-back value, which is the the number of frames in the - longest burst that the DUT will handle without the loss of any - frames. + - The average back-to-back value across the trials, which is + the number of frames in the longest burst that the DUT will + handle without the loss of any frames. - CPU and memory utilization may also be collected as part of this test, to determine the vSwitch's performance footprint on the system. diff --git a/tools/pkt_gen/ixnet/ixnet.py b/tools/pkt_gen/ixnet/ixnet.py old mode 100755 new mode 100644 index a4836330..b59d88a6 --- a/tools/pkt_gen/ixnet/ixnet.py +++ b/tools/pkt_gen/ixnet/ixnet.py @@ -384,15 +384,18 @@ class IxNet(trafficgen.ITrafficGenerator): # the results file return parse_ixnet_rfc_results(parse_result_string(output[0])) - def send_rfc2544_back2back(self, traffic=None, trials=1, duration=20, + def send_rfc2544_back2back(self, traffic=None, trials=50, duration=2, lossrate=0.0): """See ITrafficGenerator for description """ + # NOTE 2 seconds is the recommended duration for a back 2 back + # test in RFC2544. 50 trials is the recommended number from the + # RFC also. self.start_rfc2544_back2back(traffic, trials, duration, lossrate) return self.wait_rfc2544_back2back() - def start_rfc2544_back2back(self, traffic=None, trials=1, duration=20, + def start_rfc2544_back2back(self, traffic=None, trials=50, duration=2, lossrate=0.0): """Start transmission. """ diff --git a/tools/pkt_gen/ixnet/ixnetrfc2544.tcl b/tools/pkt_gen/ixnet/ixnetrfc2544.tcl index 3bd169c0..a74f2ef3 100644 --- a/tools/pkt_gen/ixnet/ixnetrfc2544.tcl +++ b/tools/pkt_gen/ixnet/ixnetrfc2544.tcl @@ -271,7 +271,7 @@ proc startRfc2544Test { testSpec trafficSpec } { -destMacRetryDelay 5 \ -largeErrorThreshhold 2 \ -refreshLearnedInfoBeforeApply False \ - -enableMinFrameSize False \ + -enableMinFrameSize True \ -macChangeOnFly False \ -waitTime 1 \ -enableInstantaneousStatsSupport False \ @@ -7773,7 +7773,7 @@ proc startRfc2544Test { testSpec trafficSpec } { -inputParameters {{}} ixNet setMultiAttrs $sg_rfc2544throughput/testConfig \ -protocolItem {} \ - -enableMinFrameSize False \ + -enableMinFrameSize True \ -framesize $frameSize \ -reportTputRateUnit mbps \ -duration $duration \ @@ -7988,7 +7988,7 @@ proc startRfc2544Test { testSpec trafficSpec } { -customLoadUnit percentMaxRate \ -randomLoadUnit percentMaxRate \ -incrementLoadUnit percentMaxRate \ - -binaryResolution 100 \ + -binaryResolution 1000 \ -binaryBackoff 50 \ -binaryTolerance $tolerance \ -initialIncrementLoadRate 100 \ @@ -7999,7 +7999,7 @@ proc startRfc2544Test { testSpec trafficSpec } { -countRandomLoadRate 1 \ -numFrames {100000} \ -loadRate 100 \ - -enableMinFrameSize False \ + -enableMinFrameSize True \ -gap 3 \ -generateTrackingOptionAggregationFiles False \ -sendFullyMeshed False \ -- cgit 1.2.3-korg