MLRsearch: Support other than just two ratios 54/30954/61
authorVratko Polak <vrpolak@cisco.com>
Mon, 22 Mar 2021 16:11:21 +0000 (17:11 +0100)
committerVratko Polak <vrpolak@cisco.com>
Mon, 22 Mar 2021 16:11:21 +0000 (17:11 +0100)
commitb6fbffad32515ccf94404680cb5280c2cb561af5
tree6f16569781e3e3627589c6fff0d7a5be0410d3f3
parentadf5f13886e8bdd4fb224f12f10d731cadf698f3
MLRsearch: Support other than just two ratios

+ Change some method names and argument types:
 + Do not mention NDR and PDR, except as examples.
 + Return list of ReceiveRateInterval instead of NdrPdrResult.
 + The resulting intervals can be degenerate when hitting min/max rate.
+ Rename quantity name parts from "fraction" to "ratio".
+ Intervals are no longer tracked for each target ratio.
 + They are found dynamically from known results.
+ Add effective_loss_ratio field to avoid loss inversion effects.
+ Move some functions to separate files.
 + Bound search logic moved to MeasurementDatabase.py
 + ProgressState moved to its file.
 + WidthArithmetics.py holds small computation functions.
+ Use parameter expansion_coefficient instead of "doublings".
+ Do uneven bisect to save time when width is not power of two times goal.
+ Timeout now correctly tracked for the whole search,
  not just the current phase.
+ Make logging (debug) function pluggable.
 + Added debug log messages for initial phase.
+ Do not mark as subclass if contructor signature differs.
+ Avoid re-measure on scale-limited (ASTF) profiles.
+ Remove outdated comments.
+ Bump copyright years.

Change-Id: I93f693b4f186f59030ee5ac21b78acc890109813
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
13 files changed:
resources/libraries/python/MLRsearch/AbstractSearchAlgorithm.py
resources/libraries/python/MLRsearch/MeasurementDatabase.py [new file with mode: 0644]
resources/libraries/python/MLRsearch/MultipleLossRatioSearch.py
resources/libraries/python/MLRsearch/NdrPdrResult.py [deleted file]
resources/libraries/python/MLRsearch/PerDurationDatabase.py [new file with mode: 0644]
resources/libraries/python/MLRsearch/ProgressState.py [new file with mode: 0644]
resources/libraries/python/MLRsearch/ReceiveRateInterval.py
resources/libraries/python/MLRsearch/ReceiveRateMeasurement.py
resources/libraries/python/MLRsearch/WidthArithmetics.py [new file with mode: 0644]
resources/libraries/python/PLRsearch/PLRsearch.py
resources/libraries/python/TrafficGenerator.py
resources/libraries/robot/performance/performance_display.robot
resources/libraries/robot/performance/performance_utils.robot