-| | Perform additional measurements based on NDRPDR result
-| | ... | ${result} | ${frame_size} | ${traffic_profile}
-
-| Display Reconfig Test Message
-| | [Documentation]
-| | ... | Display the number of packets lost (bidirectionally)
-| | ... | due to reconfiguration under traffic.
-| | ...
-| | ... | *Arguments:*
-| | ... | - result - Result of bidirectional measurtement.
-| | ... | Type: ReceiveRateMeasurement
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Display Reconfig Test Message \| \${result} \|
-| | ...
-| | [Arguments] | ${result}
-| | ...
-| | Set Test Message | Packets lost due to reconfig: ${result.loss_count}
-| | ${time_lost} = | Evaluate | ${result.loss_count} / ${result.target_tr}
-| | Set Test Message | ${\n}Implied time lost: ${time_lost} | append=yes
+| | # Rate needs to be high enough for latency streams.
+| | ${rate}= | Set Variable | ${9500}
+| | Measure and show latency at specified rate | Latency at 0%:
+| | ... | ${latency_duration} | ${rate}pps | ${framesize}
+| | ... | ${traffic_profile} | ${traffic_directions}
+| | ${ndr_sum}= | Set Variable | ${result.ndr_interval.measured_low.target_tr}
+| | ${ndr_per_stream}= | Evaluate | ${ndr_sum} / float(${traffic_directions})
+| | ${rate}= | Evaluate | 0.1 * ${ndr_per_stream}
+| | Measure and show latency at specified rate | Latency at 10% NDR:
+| | ... | ${latency_duration} | ${rate}pps | ${framesize}
+| | ... | ${traffic_profile} | ${traffic_directions}
+| | ${rate}= | Evaluate | 0.5 * ${ndr_per_stream}
+| | Measure and show latency at specified rate | Latency at 50% NDR:
+| | ... | ${latency_duration} | ${rate}pps | ${framesize}
+| | ... | ${traffic_profile} | ${traffic_directions}
+| | ${rate}= | Evaluate | 0.9 * ${ndr_per_stream}
+| | Measure and show latency at specified rate | Latency at 90% NDR:
+| | ... | ${latency_duration} | ${rate}pps | ${framesize}
+| | ... | ${traffic_profile} | ${traffic_directions}
+| | ${pdr_sum}= | Set Variable | ${result.pdr_interval.measured_low.target_tr}
+| | ${pdr_per_stream}= | Evaluate | ${pdr_sum} / float(${traffic_directions})
+| | ${rate}= | Evaluate | 0.1 * ${pdr_per_stream}
+| | Measure and show latency at specified rate | Latency at 10% PDR:
+| | ... | ${latency_duration} | ${rate}pps | ${framesize}
+| | ... | ${traffic_profile} | ${traffic_directions}
+| | ${rate}= | Evaluate | 0.5 * ${pdr_per_stream}
+| | Measure and show latency at specified rate | Latency at 50% PDR:
+| | ... | ${latency_duration} | ${rate}pps | ${framesize}
+| | ... | ${traffic_profile} | ${traffic_directions}
+| | ${rate}= | Evaluate | 0.9 * ${pdr_per_stream}
+| | Measure and show latency at specified rate | Latency at 90% PDR:
+| | ... | ${latency_duration} | ${rate}pps | ${framesize}
+| | ... | ${traffic_profile} | ${traffic_directions}
+| | # Finally, a trial with runtime and other stats.
+| | Send traffic at specified rate
+| | ... | ${1.0} | ${ndr_per_stream}pps | ${framesize} | ${traffic_profile}
+| | ... | traffic_directions=${traffic_directions}