Commit Graph

511 Commits

Author SHA1 Message Date
5c43150cb0 Makes BBR congestion window more similar to QUIC.
This CL makes the congestion window parameters, initial window, minimum
window, and maximum window more similar to the values for the
implementation in QUIC.

It also contains minor behavioral changes to better match the Quic
implementation.

Bug: webrtc:8415
Change-Id: I26f4b35b6cbb00178ea47a4aee871b1b700c153b
Reviewed-on: https://webrtc-review.googlesource.com/83587
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23630}
2018-06-15 12:51:11 +00:00
e61d72b37c Disables congestion window in pacer when CongestionWindowPushback is enabled.
Bug: None
Change-Id: I21a26fd6e32eadf1f2a619f6f3cc72da779fa0d3
Reviewed-on: https://webrtc-review.googlesource.com/83727
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23627}
2018-06-15 12:07:49 +00:00
f2fae875d5 Add min pushback target bitrate as a parameter that can be set in field trial string.
Bug: None
Change-Id: I9922abadba8164d19e06026fe363efdd337f068e
Reviewed-on: https://webrtc-review.googlesource.com/80122
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23484}
2018-06-01 09:58:36 +00:00
3d8dbcb686 Adds loss rate filter in BBR controller.
Adds a simple loss rate filter to the BBR network congestion controller.
The loss rate is used to control error correction. Previously the value
was reported as zero which would disable error correction.

Bug: webrtc:8415
Change-Id: Icec8f25fcc9509432ea91eaec30b39a024f92b42
Reviewed-on: https://webrtc-review.googlesource.com/78263
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23467}
2018-05-31 11:10:07 +00:00
f4d0afbb94 Always apply congestion window in pacer.
A previous change caused a regression in the congestion window behavior.
This CL restores previous behavior.

Bug: webrtc:8415
Change-Id: Id2e42d66bcfb58780c98da2227da39b970f26f0e
Reviewed-on: https://webrtc-review.googlesource.com/79483
Reviewed-by: Ying Wang <yinwa@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23428}
2018-05-29 12:02:04 +00:00
7645b18c04 Makes BBR more like the Quic implementation.
Bug: webrtc:8415
Change-Id: I2c21fbe88afec88726cbdd7c6e7626cccb07ce71
Reviewed-on: https://webrtc-review.googlesource.com/77762
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23420}
2018-05-28 17:13:09 +00:00
535bde3752 Adds data in flight information on send packet updates.
This prepares for making the BBR implementation more identical to the
implementation in Quic, this is to ensure that results are comparable.

Bug: webrtc:8415
Change-Id: I7b7e4769772d67cc5112969fefd4e56c6c72432e
Reviewed-on: https://webrtc-review.googlesource.com/76600
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23419}
2018-05-28 15:33:39 +00:00
66eaed0393 Adding direct congestion window pushback to encoders.
When CongestionWindowPushback experiment is enabled, the pacer is oblivious to the congestion window. The relation between outstanding data and the congestion window affects encoder allocations directly.

Bug: None
Change-Id: Iaacc1d460d44a4ff2d586934c4f9ceb067109337
Reviewed-on: https://webrtc-review.googlesource.com/74922
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23411}
2018-05-28 12:15:59 +00:00
1388b30661 Adds tracking of outstanding bytes in SendTimeHistory.
This saves having to iterate trough all packets in flight to compute the
number of outstanding bytes.

Bug: webrtc:8415
Change-Id: I35b135f37649a38b44a36d300af42a815f85192d
Reviewed-on: https://webrtc-review.googlesource.com/77727
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23398}
2018-05-25 14:19:48 +00:00
172fd8536e Replaces redundant congestion controller components
This CL replaces components in the congestion controller module
that are identical to equivalent components in the rtp and goog_cc
subfolder. Some redundant components are left as they were not
trivial to replace.

Bug: webrtc:8415
Change-Id: I86a1f164d7b100b8ec8ba7dbc1c9bda2128a4f37
Reviewed-on: https://webrtc-review.googlesource.com/78521
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23384}
2018-05-24 13:35:31 +00:00
9c26a0fb00 Adds reporting of bandwidth estimation periods in BBR.
Bug: webrtc:8415
Change-Id: Ia1e8808d0b446653df6f2e3ae9548161bacdac6b
Reviewed-on: https://webrtc-review.googlesource.com/78262
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23380}
2018-05-24 11:16:26 +00:00
6c7da5940b Fixes off by one error in BBR random cycle initialization.
Bug: webrtc:8415
Change-Id: I2055b10c8a99a9bde4152a7b3f66c695ab329f68
Reviewed-on: https://webrtc-review.googlesource.com/78441
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23367}
2018-05-23 13:36:40 +00:00
ccd1048498 Apply constraints on pacing rate in BBR controller.
This avoid sending more padding than required for the current target
constraints.

Bug: webrt:8415
Change-Id: I3a668990f026414ab78f8406248cde18b81123cc
Reviewed-on: https://webrtc-review.googlesource.com/77763
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23364}
2018-05-23 12:48:20 +00:00
67535428b4 Ensures that BBR always reports updated state.
The BBR controller did not properly report updates to congestion
windows. This was due to a check to avoid the overhead of callbacks.
In the current design without callbacks in the controller, the check can
be removed. If helpful for performance, it should live outside of the
controller.

Bug: webrtc:8415
Change-Id: Idf6d6e76fe6d0450841e706019110307e559c11d
Reviewed-on: https://webrtc-review.googlesource.com/78181
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23363}
2018-05-23 12:14:20 +00:00
72678e11cc Adds unwrapped sequence number to sent packet info.
This prepares for making the BBR implementation more identical to the
implementation in Quic, this is to ensure that results are comparable.

Bug: webrtc:8415
Change-Id: I6b182246c988dd4a95681c063dcaa779088d0e99
Reviewed-on: https://webrtc-review.googlesource.com/76481
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23356}
2018-05-23 07:03:50 +00:00
02c65869c3 Adds unwrapped sequence number to feedback info.
The Quic BBR implementation uses packet sequence numbers to keep track
of the time slots used for calculation of send receive rates. To avoid
protocol dependence the port were initially written to use send times
instead.

As there are issues with running BBR in WebRTC, it makes sense to
use an identical implementation as in Quic to ensure that there
aren't implementation issues causing bad behavior. This requires
providing sequence numbers.

This prepares for making the BBR implementation more identical to the
implementation in Quic, this is to ensure that results are comparable.

Bug: webrtc:8415
Change-Id: I2cd96bc6ffb88042bb2b91421bfe6cbf7c1ff8ac
Reviewed-on: https://webrtc-review.googlesource.com/76583
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23353}
2018-05-22 16:28:19 +00:00
65ec0fc81e Delete unneeded includes of basictypes.h.
This is a kitchen-sink header, some pieces should be moved to
byteorder.h, the rest likely deleted.

Delete most includes of basictypes.h. In leaf headers,
include stddef.h and stdint.h explicitly where needed.

Bug: webrtc:6853
Change-Id: Ibc809936a8f94d418e4eb650da1e89c1b9142073
Reviewed-on: https://webrtc-review.googlesource.com/77721
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23333}
2018-05-21 19:35:08 +00:00
dfce03af6e Allows injection of network controller factory into peer connection factory.
Bug: webrtc:9155
Change-Id: I0a17024042f154297aba20f5d2dc766feb27f3f7
Reviewed-on: https://webrtc-review.googlesource.com/73123
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23313}
2018-05-18 17:07:16 +00:00
dd3eae5f94 Revert "Configure and use max bitrate to limit the AIMD controller estimates."
This reverts commit 18d7c7ea7e56444d6d7e6c8fb95b5f426fd7b953.

Reason for revert: 
This seems to cause the auto roller to Chrome to fail on Linux and Mac on the browsertest
WebRtcSimulcastBrowserTest.TestVgaReturnsTwoSimulcastStreams

https://chromium-review.googlesource.com/c/chromium/src/+/1064736


Original change's description:
> Configure and use max bitrate to limit the AIMD controller estimates.
> 
> Bug: webrtc:9275
> Change-Id: I9625cd473e1cb198abe08020f5462f1bd64bf2a5
> Reviewed-on: https://webrtc-review.googlesource.com/77081
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Björn Terelius <terelius@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#23287}

TBR=terelius@webrtc.org,stefan@webrtc.org,srte@webrtc.org

Change-Id: I8ed827ab6b2f7d2b70b9889e5a88701bfb974d35
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9275
Reviewed-on: https://webrtc-review.googlesource.com/77660
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23291}
2018-05-18 07:12:26 +00:00
18d7c7ea7e Configure and use max bitrate to limit the AIMD controller estimates.
Bug: webrtc:9275
Change-Id: I9625cd473e1cb198abe08020f5462f1bd64bf2a5
Reviewed-on: https://webrtc-review.googlesource.com/77081
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23287}
2018-05-17 16:07:42 +00:00
a8bf169906 Adds BandwidthSampler for BBR.
This prepares for making the BBR implementation more identical to the
implementation in Quic, this is to ensure that results are comparable.

Bug: webrtc:8415
Change-Id: Ic2dc4394dc9923e5109ffa5f146c23b527f0c395
Reviewed-on: https://webrtc-review.googlesource.com/76582
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23262}
2018-05-16 16:11:21 +00:00
30bbbe8e79 Adds PacketNumberIndexedQueue for BBR.
This prepares for making the BBR implementation more identical to the
implementation in Quic, to ensure that results are comparable.

Bug: webrtc:8415
Change-Id: Icc66b748e52efb80b5c3ade85f83de6b224a4bd2
Reviewed-on: https://webrtc-review.googlesource.com/76581
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23227}
2018-05-15 07:09:50 +00:00
c6c44268bc Moves network control interface to API.
This prepares for allowing injection of a network controller.

Bug: webrtc:9155
Change-Id: I5624f47738db9c5cd4750eac76cb6289e06a7aa3
Reviewed-on: https://webrtc-review.googlesource.com/73100
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23188}
2018-05-09 11:01:36 +00:00
6fae6ec2ee Moves network unit types to API.
This prepares for being able to inject network congestion controllers.
And makes it easier to use the units in other parts of the code.

Bug: webrtc:9155
Change-Id: Ib8f9c1c97b06d791a01c3376046933d576ae46f9
Reviewed-on: https://webrtc-review.googlesource.com/70201
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23168}
2018-05-08 11:46:22 +00:00
ea562b40f8 Removes dependency on Optional for unit classes.
This makes the dependency graph simpler and prepares for moving the
unit classes to api/.

Bug: webrtc:9155
Change-Id: I1b36d5e05f75d70ba8951e880d76359f896f7741
Reviewed-on: https://webrtc-review.googlesource.com/74920
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23161}
2018-05-08 08:00:45 +00:00
bd9fe092ce Using shared task queue for congestion controller.
This simplifies the code and removes the need for a lot of bookkeeping
variables.

Bug: webrtc:9232
Change-Id: I0c9a4b0741ed5353caa22ba5acdcb166357441f2
Reviewed-on: https://webrtc-review.googlesource.com/74240
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23149}
2018-05-07 15:54:38 +00:00
3b69b196e4 Removes uninitialized constructors for units.
Bug: webrtc:9155
Change-Id: I6e95cf123e7a74b5911cc101571cb04bee152381
Reviewed-on: https://webrtc-review.googlesource.com/73370
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23142}
2018-05-07 12:41:14 +00:00
a4e37a8f82 Adds ability to disable initial startup mode for BBR.
Bug: webrtc:8415
Change-Id: I882248999ae0125f2436dc0f9b32c4bdab1069b2
Reviewed-on: https://webrtc-review.googlesource.com/74590
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23135}
2018-05-07 08:15:44 +00:00
ec6e550a8f Removes usage of uninitialized units in network control code.
This removes places where the units types are implicitly left
uninitialized in network_types.h and adds rtc::Optional where needed.

Also removing the change indicator in the NetworkEstimate struct as it
is not used in practice.

Bug: webrtc:9155
Change-Id: I7e30e338effba96bd466ae91e380e6a8e90f66e1
Reviewed-on: https://webrtc-review.googlesource.com/73369
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23126}
2018-05-04 16:19:14 +00:00
91c237e374 Removing usage of uninitialized units in BBR code.
Bug: webrtc:9155
Change-Id: Ib10f0a5ac6155364e9b5748002bad72ff21c083e
Reviewed-on: https://webrtc-review.googlesource.com/73368
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23124}
2018-05-04 15:08:34 +00:00
341bfca58c Removes uptr alias in network control code.
Bug: webrtc:9155
Change-Id: Ia3b79642a9477d9357a289f8f14bd2f53bc52e2e
Reviewed-on: https://webrtc-review.googlesource.com/73371
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23098}
2018-05-03 11:57:41 +00:00
9a0a935460 Makes protected destructor public in TargetTransferRateObserver.
Bug: webrtc:9155
Change-Id: Id459b18d0933e5b5be89df5f7547f080539d4508
Reviewed-on: https://webrtc-review.googlesource.com/73379
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23097}
2018-05-03 11:53:01 +00:00
66fa535e6e Prepares for moving units to API.
Cleanup based on review of move CL. Using separate CL to keep the
move clean.

Bug: webrtc:9155
Change-Id: Ie0b15c6d3efcd86e2fa5761f014d0daf72ccfa06
Reviewed-on: https://webrtc-review.googlesource.com/73367
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23068}
2018-04-30 15:53:20 +00:00
693b446eca Wiring up probe_rtt_congestion_window_gain in BBR.
Bug: webrtc:8415
Change-Id: I2535522baf9020f48a283efcd410b3bb23493346
Reviewed-on: https://webrtc-review.googlesource.com/72004
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23008}
2018-04-24 17:01:20 +00:00
3ccda74d21 Removes unneeded DCHECK in BBR DataTransferTracker.
If the packets are ordered by their ack time, their send
time can decrease in the case they have been reordered.

Bug: webrtc:8415
Change-Id: Ic9fca8d47de37b931085aeefcd62bbddd8869db9
Reviewed-on: https://webrtc-review.googlesource.com/72003
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22999}
2018-04-24 12:09:26 +00:00
9b20677c4e Moves PostUpdates from SSCC to ControlHandler.
This moves the PostUpdates function from SendSideCongestionController
to the ControlHandler class.

Bug: None
Change-Id: I4000484a1df9d5fae02573196153c24f4f940219
Reviewed-on: https://webrtc-review.googlesource.com/70223
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22987}
2018-04-23 15:32:32 +00:00
9fd6b98f44 Don't interrupt exponential probing when VideoStream bitrates are reconfigured.
Bug: chromium:834255, webrtc:8955
Change-Id: Iba316e940ddc2d0d5891e57c24b808c68e0bbcfe
Reviewed-on: https://webrtc-review.googlesource.com/70760
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22943}
2018-04-19 15:44:59 +00:00
0676f224f8 Probe on video encoder reconfiguration test.
This CL includes the changes from this CL:
https://webrtc-review.googlesource.com/c/src/+/63642

Bug: webrtc:8955
Change-Id: If95cdec59f25e97c6ff5ea45a52d6113128a0921
Reviewed-on: https://webrtc-review.googlesource.com/64822
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22910}
2018-04-17 16:54:14 +00:00
010eace381 Removes redundant members in congestion controller.
last_target_rate_ and current_target_rate_msg_ both kept track of the
same value. pacer_configured_ was not used at all. This CL removes
both last_target_rate_ and pacer_configured_.

Bug: None
Change-Id: Ieb15c38c7d0c44730bef95492e3e677d505f054e
Reviewed-on: https://webrtc-review.googlesource.com/70184
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22909}
2018-04-17 16:05:03 +00:00
0c87fe85b8 Removes frequent log messages from BBR Controller.
Bug: webrtc:8415
Change-Id: Ibe8b42f8e7c1174ba82d371493af5421665c5d22
Reviewed-on: https://webrtc-review.googlesource.com/70241
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22884}
2018-04-16 16:08:08 +00:00
324865a206 Removes common header for network units.
The code using the units now depends on specific targets to make the
dependencies more clear

Bug: None
Change-Id: I3200d57a2974b6981db68f05d84391cbbb06e981
Reviewed-on: https://webrtc-review.googlesource.com/70181
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22882}
2018-04-16 14:51:18 +00:00
f7ffd94ad2 Removes abbreviated seconds functions on network time classes.
Having only one name for seconds makes the interface more consistent.
The non-abbreviated was chosen since it's used less frequently than
ms() and us().

Bug: None
Change-Id: Ia29ff2f9f18f3dddcde9bac4f041695cef2c8f0f
Reviewed-on: https://webrtc-review.googlesource.com/69817
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22877}
2018-04-16 12:47:38 +00:00
e31be15d47 Moves data rate related operations to data_rate.h
This reduces the number of files.

Bug: None
Change-Id: Ia32b7b7cc3260fbecc2b9a3c75723dd4a76c6d5b
Reviewed-on: https://webrtc-review.googlesource.com/69816
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22874}
2018-04-16 11:24:08 +00:00
30bd4038cf Splits network units into separate headers.
This CL moves the network units files into a separate folder with a
separate BUILD file. It also splits the units into separate files.
This prepares for moving all or some of the units to somewhere that
can be accessed by more components.

Bug: None
Change-Id: I4ebbc19088b024ba920b0b3c64e5f57431f4f955
Reviewed-on: https://webrtc-review.googlesource.com/68660
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22861}
2018-04-13 13:24:28 +00:00
a73538828f Fixes potential crash in GoogCcNetworkController
UpdatePacingRates required that a bandwidth estimate was available and
would otherwise crash. This CL ensures that there is an initial bandwidth
estimate available from the beginning.

Bug: webrtc:8415
Change-Id: I20c3b444eac42326a78cfebee70b4c1aa370c867
Reviewed-on: https://webrtc-review.googlesource.com/69802
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22857}
2018-04-13 12:24:18 +00:00
7d3efacb61 Disable toggling of controller in SSCC.
This disables toggling between transport feedback based  controller and
the fall back controller in SendSideCongestionController. The toggling
seems to cause issues with the probing in certain circumstances. Since
it's feasible to run experiments without the toggling, disable it for now.

Bug: webrtc:8415
Change-Id: Ia4a827e95d730d651eaf3facbee7e9a5b0cb2562
Reviewed-on: https://webrtc-review.googlesource.com/69803
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22856}
2018-04-13 11:54:38 +00:00
70488de694 Check for controller in SSCC when route changed.
Fixes potential crash in SendSideCongestionController when route is
changed before network is available.

Bug: webrtc:8415
Change-Id: I781f0e342e5bb42fedbf96c9c5c6d2c199ab3192
Reviewed-on: https://webrtc-review.googlesource.com/69801
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22851}
2018-04-13 10:49:58 +00:00
e32bb50855 Adding missing #include in send_side_congestion_controller.
Not including <iterator> creates problems on some build systems because
std::back_inserter is defined there.

Bug: None
Change-Id: I27180f72dd327e3a0caab35d3a33907f1e0c4296
Reviewed-on: https://webrtc-review.googlesource.com/69323
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22825}
2018-04-11 14:33:27 +00:00
342695d068 Removes network ostream operators.
The ostream operators does not work consistently with gtest since the
definitions would have to be included before the first include of gtest.
This is tricky to ensure and the end result is that the operators will
sometimes work and sometimes not without obvious explanations.
To avoid causing confusing behavior, this CL removes the operators
pending a better solution.

Bug: None
Change-Id: I66bead0efb7246d368359ddf9e9bfad9d67c05da
Reviewed-on: https://webrtc-review.googlesource.com/68640
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22808}
2018-04-10 14:59:15 +00:00
a73f8161aa Removing static initializers for BBR.
The static initializers caused issues with chromium build. This should
fix it for now.

Bug: None
Change-Id: I4592df0e2bd02980421bb6319c24e7b6983d2252
Reviewed-on: https://webrtc-review.googlesource.com/69020
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22807}
2018-04-10 14:45:45 +00:00