Summary: We're removing the underlying priority that triggered the congestion controller background mode so it's not usable anymore. This cleans it up.
Reviewed By: afrind
Differential Revision: D68721476
fbshipit-source-id: 3dabcdda7eca2605529b24b36e10402d944e3ce8
Summary: I'm making a `checkpoint` function in the QUIC API. This is to be used in conjunction with reliable resets. When we send data on a stream and want to mark which offset will constitute the reliable size in a future call to resetStreamReliably, we call this function. This function can potentially be called multiple times on a stream to advance the offset, but it is an error to call it after sending a reset.
Reviewed By: jbeshay
Differential Revision: D68592906
fbshipit-source-id: e301385a04dffdb9f23daa805ee74c574e4393c2
Summary: This is just a name change that makes it more clear what we're passing in.
Reviewed By: jbeshay
Differential Revision: D68642799
fbshipit-source-id: 89d1ee34b6cbff73d765596f05c57f590ace2274
Summary: This was linear for no particular reason?
Reviewed By: sharmafb
Differential Revision: D68718158
fbshipit-source-id: 2fd93820a8c81dbf1a5e02a4fc3586b8e5ab4d02
Summary: These aren't used anywhere and we're going to start refactoring the priority implementation.
Reviewed By: jbeshay, hanidamlaj
Differential Revision: D68657305
fbshipit-source-id: e4a3a5a991bac99afef1362adb2663a50766d2c7
Summary: There was so much boilerplate in these tests they were very hard to read and reason about.
Reviewed By: mjoras
Differential Revision: D68677041
fbshipit-source-id: 162c80021ee6db5baacd6999a2958242b906e83a
Summary:
When deciding whether its time to switch from ProbeBW_UP to down, the cwndBytes_ value is already limited by the inflightHi_.
This improves the logic by waiting for a target inflight that is 1.25x the current measured BDP and making sure we've hit it (i.e. we've been recently cwndLimited).
We will also exit ProbeBW_Up if the loss level crosses the threshold at any point.
Reviewed By: mjoras
Differential Revision: D68656316
fbshipit-source-id: c95c00e8e7b922dd22e07d58f8bda0ed6ee850b3
Summary:
Initializing cwndLimitedInRound_ to false at roundStart before the rest of the ack handling logic prevents inflightHi slope from increasing. This initializes it after all the logic to ensure inflightHi slope is updated.
This improves bbr2's ability to probe for newly available bandwidth during ProbeBW_UP.
Reviewed By: mjoras
Differential Revision: D68546412
fbshipit-source-id: da85a1be0624790edcd29a8ca5554786f0b5c32d
Summary:
All the functionality is a duplicated from `updateWritableStreams`.
Btw the only callsites were inside UT.
Reviewed By: kvtsoy
Differential Revision: D68351972
fbshipit-source-id: 7e17f38ffcffecea23a64f5d2d5c1dec7a8c43f5
Summary: These are all duplicated from `removeWritable`.
Reviewed By: meleshuk, mjoras
Differential Revision: D68017903
fbshipit-source-id: 5f780a0b7d7f2d2d5d4c6430510501dd11eae2a2
Summary:
X-link: https://github.com/facebookincubator/zstrong/pull/1145
This diff contains a few changes to the xz and libiberty getdeps builds that are required
in order for folly to build as a shared library, which in turn is needed for folly's Python
extensions to build correctly.
Reviewed By: hyuen
Differential Revision: D68252093
fbshipit-source-id: 036bc4a0e7bf9a11f0a4aa6ec0014f7935afbb5b
Summary:
From section 5.1 of https://datatracker.ietf.org/doc/html/draft-ietf-quic-reliable-stream-reset-06,
> When sending another RESET_STREAM_AT, RESET_STREAM or STREAM frame carrying a FIN bit for the same stream, the initiator MUST NOT change the Application Error Code or the Final Size. If the receiver detects a change in those fields, it MUST close the connection with a connection error of type STREAM_STATE_ERROR.
Reviewed By: afrind
Differential Revision: D67726347
fbshipit-source-id: 79a0bd34f5b0a5a8dff10e22860154e5251f7241
Summary:
The fix which was made in D63044682 was unintentionally reverted in D64490333.
This brings the fix back in both TARGETS and BUCK using a select(). I manually changed the BUCK file because the boilerplate generation script doesn't support the select().
Reviewed By: mzlee, kvtsoy
Differential Revision: D68236376
fbshipit-source-id: c651d8cd4fe5f14b70802d81f5d28bf449752d84
Summary:
We should only transition the `recvState` to `Closed` once we receive all of the reliable data, otherwise we'll drop all incoming data for that stream. This can happen in one of the two cases:
* We get a reset stream frame, and the reliable size in that frame is such that we've received all of the reliable data.
* We get a read stream frame, and that puts us in a situation where we've received all of the reliable data.
Reviewed By: jbeshay
Differential Revision: D67658440
fbshipit-source-id: b37786c7720014f3598b3c8c0a88084b06c5261e
Summary: Restore the buggy version of `cloneAllPacketsWithCryptoFrame`, which did allow up to two packets to be cloned in the same PTO flight but would only clone them at most once, as an optional mode of operation.
Reviewed By: mjoras
Differential Revision: D67994014
fbshipit-source-id: 16f66fd48a9a4410427ba21dea6e7f6d1eee48e6
Summary: Startup pacing gain had been changed for experimentation. Need to revert to the original value.
Reviewed By: jbeshay
Differential Revision: D68035989
fbshipit-source-id: 190f1c2699fa32eda533b04d059a712bc2ae9136
Summary: The long term cwnd model (inflightHi) should only be updated when BBR is probing for more bandwidth. Prior to this change, the update could happen once per probe round but it was allowed to happen at any stage.
Reviewed By: mjoras
Differential Revision: D68041579
fbshipit-source-id: 94b1728d889cbdc265175ddbc3e5c0a70b9f0981
Summary:
- The burstSize should only be scaled down if the write function is late. If it’s early, the write should proceed, since it’s not triggered by the timer.
- When scaling the burstSize up, rounding should not be used. Instead whenever a partial packet can be sent, we go ahead and send it, then scale down future bursts if feasible.
Reviewed By: mjoras
Differential Revision: D67944934
fbshipit-source-id: cba79843fe77b54343f92edfa5fc09404f4c7cf7
Summary:
Demonstrate feasibility of merging fbcode and xplat copies of thrift on a single target, `thrift/compiler/detail/mustache:mustache`. To this end:
* Switch fbcode_builder from fbcode to xplat.
* Map dependencies to the correct variants for fbcode.
* Exclude mustache directory from target remapping. Once the merge is complete remapping rules will no longer be necessary at all, further reducing maintenance burden and complexity.
* Remove one copy of mustache (~2.6kLOC).
This also demonstrates that autodeps are working as expected after the fix in D67919546.
Reviewed By: yoney
Differential Revision: D67676056
fbshipit-source-id: ba3854c0997c4dd10f47a5e623381c3dadef4ecc
Summary: As title. The existing format is awkward to read.
Reviewed By: sharmafb
Differential Revision: D67944933
fbshipit-source-id: 05802a9c86077ba5ff0d73d57e5c14c4ecc104d4
Summary:
Adds new Tperf parameters to use the static cwnd congestion controller with a fixed pacer. The pacer can have its interval updated from min, smoothed, or latest rtt.
This is an example for the tperf command with the static cwnd options:
```
tperf --host=fc00::200 -congestion=staticcwnd -pacing=true -pacer_interval_source=srtt -static_cwnd_bytes=625000
```
Reviewed By: sharmafb
Differential Revision: D67925269
fbshipit-source-id: 648a90c1a63619a140c64c3f41c34229aad1b965
Summary: The StaticCwnd congestion controller is useful for the transport with a constant cwnd. This change allows it to control the pacer to make it easier to test the transport and pacer performance at a fixed cwnd + fixed pace.
Reviewed By: sharmafb
Differential Revision: D67925271
fbshipit-source-id: 27eba6b33f05f82e052129aed0324afab9c8ab42
Summary:
Support using the pacing observer without qlogs.
The pacing observations are logged at v=2.
Reviewed By: sharmafb
Differential Revision: D67925268
fbshipit-source-id: de92e1c593160af059d9e62265c3c532793bf381