Merge "rstp-stp: Add basic functions for stp/rstp enable on ovs"
[vswitchperf.git] / core / traffic_controller_rfc2544.py
index a6b3e7f..81e499c 100644 (file)
@@ -41,6 +41,7 @@ class TrafficControllerRFC2544(ITrafficController, IResults):
         self._traffic_started_call_count = 0
         self._trials = int(get_test_param('rfc2544_trials', 1))
         self._duration = int(get_test_param('duration', 30))
+        self._lossrate = float(get_test_param('lossrate', 0.0))
         self._results = []
 
         # If set, comma separated packet_sizes value from --test_params
@@ -100,15 +101,13 @@ class TrafficControllerRFC2544(ITrafficController, IResults):
 
             if traffic['traffic_type'] == 'back2back':
                 result = self._traffic_gen_class.send_rfc2544_back2back(
-                    traffic, trials=self._trials,
-                    duration=self._duration)
+                    traffic, trials=self._trials, duration=self._duration, lossrate=self._lossrate)
             elif traffic['traffic_type'] == 'continuous':
                 result = self._traffic_gen_class.send_cont_traffic(
-                    traffic, duration=int(get_test_param('duration', 30)))
+                    traffic, duration=self._duration)
             else:
                 result = self._traffic_gen_class.send_rfc2544_throughput(
-                    traffic, trials=self._trials,
-                    duration=self._duration)
+                    traffic, trials=self._trials, duration=self._duration, lossrate=self._lossrate)
 
             result = TrafficControllerRFC2544._append_results(result,
                                                               packet_size)
@@ -156,3 +155,16 @@ class TrafficControllerRFC2544(ITrafficController, IResults):
         """IResult interface implementation.
         """
         return self._results
+
+    def validate_send_traffic(self, result, traffic):
+        """Verify that send traffic has succeeded
+        """
+        if len(self._results):
+            if 'b2b_frames' in self._results[-1]:
+                return float(self._results[-1]['b2b_frames']) > 0
+            elif 'throughput_rx_fps' in self._results[-1]:
+                return float(self._results[-1]['throughput_rx_fps']) > 0
+            else:
+                return True
+        else:
+            return False