CSIT-408 sub-NDR latency measurements
[csit.git] / resources / libraries / python / DropRateSearch.py
index 1f8e561..6346125 100644 (file)
@@ -98,6 +98,15 @@ class DropRateSearch(object):
         self._search_result = None
         self._search_result_rate = None
 
+    @abstractmethod
+    def get_latency(self):
+        """Return min/avg/max latency.
+
+        :return: Latency stats.
+        :rtype: list
+        """
+        pass
+
     @abstractmethod
     def measure_loss(self, rate, frame_size, loss_acceptance,
                      loss_acceptance_type, traffic_type):
@@ -453,14 +462,14 @@ class DropRateSearch(object):
     def verify_search_result(self):
         """Fail if search was not successful.
 
-        :return: Result rate.
-        :rtype: float
+        :return: Result rate and latency stats.
+        :rtype: tuple
         """
         if self._search_result == SearchResults.FAILURE:
             raise Exception('Search FAILED')
         elif self._search_result in [SearchResults.SUCCESS,
                                      SearchResults.SUSPICIOUS]:
-            return self._search_result_rate
+            return self._search_result_rate, self.get_latency()
 
     def binary_search(self, b_min, b_max, traffic_type, skip_max_rate=False):
         """Binary search of rate with loss below acceptance criteria.