CSIT-1186: Consume MLRsearch in agreed upon way
[csit.git] / resources / libraries / python / TrafficGenerator.py
index bf6383e..9959f25 100644 (file)
@@ -22,9 +22,9 @@ from .ssh import SSH
 from .topology import NodeType
 from .topology import NodeSubTypeTG
 from .topology import Topology
-from .search.AbstractRateProvider import AbstractRateProvider
-from .search.OptimizedSearchAlgorithm import OptimizedSearchAlgorithm
-from .search.ReceiveRateMeasurement import ReceiveRateMeasurement
+from .MLRsearch.AbstractMeasurer import AbstractMeasurer
+from .MLRsearch.MultipleLossRatioSearch import MultipleLossRatioSearch
+from .MLRsearch.ReceiveRateMeasurement import ReceiveRateMeasurement
 
 __all__ = ['TGDropRateSearchImpl', 'TrafficGenerator', 'OptimizedSearch']
 
@@ -101,7 +101,7 @@ class TGDropRateSearchImpl(DropRateSearch):
         return tg_instance.get_latency_int()
 
 
-class TrafficGenerator(AbstractRateProvider):
+class TrafficGenerator(AbstractMeasurer):
     """Traffic Generator.
 
     FIXME: Describe API."""
@@ -612,7 +612,8 @@ class OptimizedSearch(object):
             frame_size, traffic_type, minimum_transmit_rate,
             maximum_transmit_rate, packet_loss_ratio=0.005,
             final_relative_width=0.005, final_trial_duration=30.0,
-            initial_trial_duration=1.0, intermediate_phases=2, timeout=600.0):
+            initial_trial_duration=1.0, number_of_intermediate_phases=2,
+            timeout=600.0):
         """Setup initialized TG, perform optimized search, return intervals.
 
         :param frame_size: Frame size identifier or value [B].
@@ -628,8 +629,8 @@ class OptimizedSearch(object):
         :param final_trial_duration: Trial duration for the final phase [s].
         :param initial_trial_duration: Trial duration for the initial phase
             and also for the first intermediate phase [s].
-        :param intermediate_phases: Number of intermediate phases to perform
-            before the final phase [1].
+        :param number_of_intermediate_phases: Number of intermediate phases
+            to perform before the final phase [1].
         :param timeout: The search will fail itself when not finished
             before this overall time [s].
         :type frame_size: str or int
@@ -640,9 +641,9 @@ class OptimizedSearch(object):
         :type final_relative_width: float
         :type final_trial_duration: float
         :type initial_trial_duration: float
-        :type intermediate_phases: int
+        :type number_of_intermediate_phases: int
         :type timeout: float
-        :returns: Structure containing narrowed down intervals
+        :returns: Structure containing narrowed down NDR and PDR intervals
             and their measurements.
         :rtype: NdrPdrResult
         :raises RuntimeError: If total duration is larger than timeout.
@@ -652,10 +653,10 @@ class OptimizedSearch(object):
         tg_instance = BuiltIn().get_library_instance(
             'resources.libraries.python.TrafficGenerator')
         tg_instance.set_rate_provider_defaults(frame_size, traffic_type)
-        algorithm = OptimizedSearchAlgorithm(
-            tg_instance, final_trial_duration=final_trial_duration,
+        algorithm = MultipleLossRatioSearch(
+            measurer=tg_instance, final_trial_duration=final_trial_duration,
             final_relative_width=final_relative_width,
-            intermediate_phases=intermediate_phases,
+            number_of_intermediate_phases=number_of_intermediate_phases,
             initial_trial_duration=initial_trial_duration, timeout=timeout)
         result = algorithm.narrow_down_ndr_and_pdr(
             minimum_transmit_rate, maximum_transmit_rate, packet_loss_ratio)