Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(348)

Unified Diff: webrtc/modules/remote_bitrate_estimator/test/bwe_test.h

Issue 1237393002: Evaluation tests (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Comments addressed [3] Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/remote_bitrate_estimator/test/bwe_test.h
diff --git a/webrtc/modules/remote_bitrate_estimator/test/bwe_test.h b/webrtc/modules/remote_bitrate_estimator/test/bwe_test.h
index 303aca528c50afe4b14ab139138c67bd768fb26f..3dca0abc25c2bde5e8acb0ca704f68f0ebf852ff 100644
--- a/webrtc/modules/remote_bitrate_estimator/test/bwe_test.h
+++ b/webrtc/modules/remote_bitrate_estimator/test/bwe_test.h
@@ -67,8 +67,49 @@ class Link : public PacketProcessorListener {
class BweTest {
public:
BweTest();
+ explicit BweTest(bool plot_capacity);
~BweTest();
+ void RunChoke(BandwidthEstimatorType bwe_type,
+ std::vector<int> capacities_kbps);
+
+ void RunVariableCapacity1SingleFlow(BandwidthEstimatorType bwe_type);
+ void RunVariableCapacity2MultipleFlows(BandwidthEstimatorType bwe_type,
+ size_t num_flows);
+ void RunBidirectionalFlow(BandwidthEstimatorType bwe_type);
+ void RunSelfFairness(BandwidthEstimatorType bwe_type);
+ void RunRoundTripTimeFairness(BandwidthEstimatorType bwe_type);
+ void RunLongTcpFairness(BandwidthEstimatorType bwe_type);
+ void RunMultipleShortTcpFairness(BandwidthEstimatorType bwe_type,
+ std::vector<int> tcp_file_sizes_bytes,
+ std::vector<int64_t> tcp_starting_times_ms);
+ void RunPauseResumeFlows(BandwidthEstimatorType bwe_type);
+
+ void RunFairnessTest(BandwidthEstimatorType bwe_type,
+ size_t num_media_flows,
+ size_t num_tcp_flows,
+ int64_t run_time_seconds,
+ uint32_t capacity_kbps,
+ int64_t max_delay_ms,
+ int64_t rtt_ms,
+ int64_t max_jitter_ms,
+ const int64_t* offsets_ms);
+
+ void RunFairnessTest(BandwidthEstimatorType bwe_type,
+ size_t num_media_flows,
+ size_t num_tcp_flows,
+ int64_t run_time_seconds,
+ uint32_t capacity_kbps,
+ int64_t max_delay_ms,
+ int64_t rtt_ms,
+ int64_t max_jitter_ms,
+ const int64_t* offsets_ms,
+ const std::string& title,
+ const std::string& flow_name);
+
+ static std::vector<int> GetFileSizesBytes(int num_files);
+ static std::vector<int64_t> GetStartingTimesMs(int num_files);
+
protected:
void SetUp();
@@ -87,13 +128,6 @@ class BweTest {
std::map<int, Stats<double>> flow_delay_ms,
std::map<int, Stats<double>> flow_throughput_kbps);
- void RunFairnessTest(BandwidthEstimatorType bwe_type,
- size_t num_media_flows,
- size_t num_tcp_flows,
- int64_t run_time_seconds,
- int capacity_kbps,
- int max_delay_ms);
-
Link downlink_;
Link uplink_;
@@ -107,9 +141,53 @@ class BweTest {
int64_t simulation_interval_ms_;
std::vector<Link*> links_;
Packets packets_;
+ bool plot_total_available_capacity_;
DISALLOW_COPY_AND_ASSIGN(BweTest);
};
+
+// Default Evaluation parameters:
+// Link capacity: 4000ms;
+// Queueing delay capacity: 300ms.
+// One-Way propagation delay: 50ms.
+// Jitter model: Truncated gaussian.
+// Maximum end-to-end jitter: 30ms = 2*standard_deviation.
+// Bottleneck queue type: Drop tail.
+// Path loss ratio: 0%.
+
+const int kOneWayDelayMs = 50;
+const int kMaxQueueingDelayMs = 300;
+const int kMaxCapacityKbps = 4000;
+const int kMaxJitterMs = 15;
+
+struct DefaultEvaluationFilter {
+ DefaultEvaluationFilter(PacketProcessorListener* listener, int flow_id)
+ : choke(listener, flow_id),
+ delay(listener, flow_id),
+ jitter(listener, flow_id) {
+ SetDefaultParameters();
+ }
+
+ DefaultEvaluationFilter(PacketProcessorListener* listener,
+ const FlowIds& flow_ids)
+ : choke(listener, flow_ids),
+ delay(listener, flow_ids),
+ jitter(listener, flow_ids) {
+ SetDefaultParameters();
+ }
+
+ void SetDefaultParameters() {
+ delay.SetOneWayDelayMs(kOneWayDelayMs);
+ choke.set_max_delay_ms(kMaxQueueingDelayMs);
+ choke.set_capacity_kbps(kMaxCapacityKbps);
+ jitter.SetMaxJitter(kMaxJitterMs);
+ }
+
+ ChokeFilter choke;
+ DelayFilter delay;
+ JitterFilter jitter;
+};
+
} // namespace bwe
} // namespace testing
} // namespace webrtc

Powered by Google App Engine
This is Rietveld 408576698