Also add TODOs and improve comments.
Change-Id: I50bd652c83c272c3f7662dd487ab617be2b7de08
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
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].
: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
: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
and their measurements.
algorithm = OptimizedSearchAlgorithm(
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)
or all of the following is true:
Both bounds are valid, bound bounds are measured at the current phase
trial duration, interval width is less than the width goal
- for current phase."""
+ for current phase.
+
+ TODO: Reviwew and update this docstring according to rst docs.
+ TODO: Initial phase: Larger min width and search up on zero.
+ TODO: Support configurable number of Packet Loss Ratios.
+ TODO: Rename to MultipleDropRateSearch (or MultipleLossRatioSearch).
+ """
class ProgressState(object):
"""Structure containing data to be passed around in recursion."""
continue
# If we are hitting maximum_transmit_rate,
# it is still worth narrowing width,
- # hoping large enough Df will happen.
+ # hoping large enough loss fraction will happen.
# But if we are hitting the minimal rate (at current duration),
# no additional measurement will help with that,
# so we can stop narrowing in this phase.
logging.info("re-measuring PDR lower bound")
self._measure_and_update_state(state, pdr_lo.target_tr)
continue
- # Except when lower bounds have high Df, in that case
+ # Except when lower bounds have high loss fraction, in that case
# we do not need to re-measure _upper_ bounds.
if ndr_hi.duration < state.duration and ndr_rel_width > 0.0:
logging.info("re-measuring NDR upper bound")
| | ... | Find boundaries for RFC2544 compatible NDR and PDR values
| | ... | using an optimized search algorithm.
| | ... | Display results as formatted test message.
-| | ... | Fail if a resulting lower bound has too high drop fraction.
+| | ... | Fail if a resulting lower bound has too high loss fraction.
| | ... | Proceed with Perform additional measurements based on NDRPDR result.
| | ... | TODO: Should the trial duration of the additional
| | ... | measurements be configurable?
| | ... | - topology_type - Topology type. Type: string
| | ... | - minimum_transmit_rate - Lower limit of search [pps]. Type: float
| | ... | - maximum_transmit_rate - Upper limit of search [pps]. Type: float
-| | ... | - packet_drop_ratio - Accepted loss during search. Type: float
+| | ... | - packet_loss_ratio - Accepted loss during search. Type: float
| | ... | - final_relative_width - Maximal width multiple of upper. Type: float
| | ... | - final_trial_duration - Duration of final trials [s]. Type: float
| | ... | - initial_trial_duration - Duration of initial trials [s]. Type: float
| Check NDRPDR interval validity
| | [Documentation]
-| | ... | Extract drop fraction of lower bound of the interval.
+| | ... | Extract loss ratio of lower bound of the interval.
| | ... | Fail if it does not reach the allowed value.
| | ...
| | ... | *Arguments:*
| | ...
| | [Arguments] | ${interval} | ${packet_loss_ratio}=${0.0}
| | ...
-| | ${lower_bound_df}= | Set Variable | ${interval.measured_low.drop_fraction}
-| | Return From Keyword If | ${lower_bound_df} <= ${packet_loss_ratio}
+| | ${lower_bound_lf}= | Set Variable | ${interval.measured_low.loss_fraction}
+| | Return From Keyword If | ${lower_bound_lf} <= ${packet_loss_ratio}
| | ${messagge}= | Catenate | SEPARATOR=${SPACE}
-| | ... | Lower bound fraction ${lower_bound_df}
+| | ... | Lower bound fraction ${lower_bound_lf}
| | ... | does not reach ${packet_loss_ratio}.
| | Fail | ${message}