1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-04-18 17:24:03 +03:00

8461 Commits

Author SHA1 Message Date
Open Source Bot
dc02bfd4b3 Updating hashes
Summary:
GitHub commits:

3a44871183
a2787c2d8a
78d25786ac
e3795d7e20
53a8ea035e
335bd3d07b
5d0eaead0e
bee6d28f23
5bb551c392
849252b2e7

Reviewed By: ajb85

fbshipit-source-id: d78132c32fcb57e307e3ef3fdf30dafd9ed7d3f8
2025-03-05 09:33:59 -08:00
Yedidya Feldblum
53a8ea035e fix unit-tests use of socket/client in wrong threads
Summary: The `AsyncSocket` suite of classes expect all accesses to occur in the IO threads driving the `EventBase` instances to which they are attached.

Reviewed By: hanidamlaj

Differential Revision: D70574137

fbshipit-source-id: 5d38a2a9bc5e78bf6f90466a90580ad4145a6b17
2025-03-04 18:35:18 -08:00
Open Source Bot
9b41ab4d98 Updating hashes
Summary:
GitHub commits:

c3749d80b5
b636a4eead
a7dafaf9a3
9527a33d8e
5b4e1d73aa
523517e000
788029d7a1
0b95fb3431
06c66a7c4a
56eff859db
731ba4e998
6392428993

Reviewed By: ajb85

fbshipit-source-id: d6dcba43edbd4be51c3a0e519bd2f9734baf3f72
2025-03-04 09:31:56 -08:00
Joseph Beshay
523517e000 Use max inflight of all acked packets when tracking inflightLatest
Summary:
The maximum inflight for acked packets in an ack event may not necessarily come from the same acked packet that produces the maximum bandwidth sample.

Previously we assumed they are the same, now we don't.

Reviewed By: ritengupta

Differential Revision: D70412764

fbshipit-source-id: 64f577d9b8f5251d237dfe07b6e3a6b2940f948b
2025-03-03 18:12:31 -08:00
Pieter De Baets
8b0ea6bab8 Use updated fast_float::parse_options
Summary:
X-link: https://github.com/facebookincubator/zstrong/pull/1216

`str_to_floating_fast_float_from_chars` can be simplified using the new upstream option `allow_leading_plus`. It does mean that we also support parsing `+nan` and `+infinity` which we previously didn't.

Mapping to `Inf` is also handled by the parsing logic, so this custom branch can be removed.

Reviewed By: Gownta

Differential Revision: D70392258

fbshipit-source-id: 62972a6cadd1547d8ff0a3162510ae5e979d459f
2025-03-03 09:33:30 -08:00
Open Source Bot
470e4b766b Updating hashes
Summary:
GitHub commits:

904f9b957f
9c90f01540
444ea56794
85d7ded94d
fac5da6041
16bd499064
283c211a46
a45bd15ca1
0c632b604c
c4074f191c
bc749d6a52

Reviewed By: zpao

fbshipit-source-id: d152f7f684ad009a3f0c1397bcf49a9e61635946
2025-03-03 09:32:50 -08:00
Open Source Bot
fac5da6041 Updating hashes
Summary:
GitHub commits:

e040484442
6c7eb7db8a
4885040ef5
7881d1e785
a9783ab82a
e586312034
799a48aa56
ee25d0ef77
7aeaa794bb
51a2669326

Reviewed By: JurjenLelifeld

fbshipit-source-id: 7f6d54a36f97d68886d0b8508d5e09a78861acaf
v2025.03.03.00
2025-03-02 09:32:38 -08:00
Open Source Bot
a9783ab82a Updating hashes
Summary:
GitHub commits:

8ead5b15c6
b7cf2c2726
4e8fa90dd7
a9a87890a0
8e8186f67d
2f35e33cbd
814ba29fa7
a8e85adde2
accca84f64
50e99e25b1
d124edfecb
23a7b4165b

GitHub releases:

https://github.com/facebook/buck2/releases/tag/2025-03-01

Reviewed By: JurjenLelifeld

fbshipit-source-id: 9efc5c870a69f3f9aa616e03f7f56abb7e77b752
2025-03-01 09:32:04 -08:00
Open Source Bot
2f35e33cbd Updating hashes
Summary:
GitHub commits:

eaf00146e0
5c6403fe12
6fcfeb2225
b5814d8f9d
ea62f9f2a7
8d0ddb8783
9c99ae53bd
8dc3b5e775
4a9e780ecc
3d54b9cbb2
55a85eb8fe
0ec8412ff2

Reviewed By: JurjenLelifeld

fbshipit-source-id: dac9180b518eca81fd0d3736ae70c443ea2ab3f6
2025-02-28 09:34:33 -08:00
Cullen Walsh
8d0ddb8783 Unbreak generate-release-yml.rs, update Ubuntu/Fedora Docker bases
Summary:
X-link: https://github.com/facebookincubator/zstrong/pull/1211

* Seems like rust-script is picky with the comment format for cargo dependencies. Switching from /* */ to //! allows is to correctly build the script.
* Remove Ubuntu 20.04 (gcc too old)
* Add Ubuntu 24.04 (latest LTS)
* Remove Fedora 36/37/38 (38 support ended 2024-05-21)
* Add Fedora 40/41/42 (42 to be released 2025-04-22)

X-link: https://github.com/facebook/watchman/pull/1275

Reviewed By: chadaustin

Differential Revision: D70350468

fbshipit-source-id: f5a29743da5b381fadeba2ed35a440b4054ca453
2025-02-27 15:54:29 -08:00
Joseph Beshay
b53767aefc Attempt to parse ack receive timestamps whenever available
Summary: ACK_EXTENDED frames could also include recieve timestamps. We should not limit the use of receive timestamps to a certain frame type.

Reviewed By: sharmafb

Differential Revision: D70272387

fbshipit-source-id: dd89d4d6994ef17b0fdd50f894d3ccc9e1ce03cc
2025-02-27 09:48:49 -08:00
Open Source Bot
6b3a58b2b5 Updating hashes
Summary:
GitHub commits:

4adfc8a53b
9c06d5c3b9
dd5fa64404
fa877f5f58
48940bb429
bfdd58cfec
5fe1807f14
48ba01e3d6
63ad39b105
f91130c1f8
0634ab95e7
90516fba0f
f10afc840e

Reviewed By: JurjenLelifeld

fbshipit-source-id: 05f136b5758cbda02d88be0919e913a1c142db3c
2025-02-27 09:32:10 -08:00
Joseph Beshay
bfdd58cfec New config to experiment with scaling down pacer bursts for early writes
Summary: As title.

Reviewed By: ritengupta

Differential Revision: D70217108

fbshipit-source-id: 85a74bb6e486179fdfc1ca38b75b48f9c7374d4b
2025-02-26 10:44:59 -08:00
Open Source Bot
ca47eeaf02 Updating hashes
Summary:
GitHub commits:

afbcd915ee
50a1857747
053dc1405b
380a30c451
c27d532fe5
07f91b0698
c42077a47b
3ded98846d
2b173b8ad8
dc0d04f245
a1c8b3dea3
4c39f558ea

Reviewed By: JurjenLelifeld

fbshipit-source-id: 90dd3b580a18366cba2142da09ebb17b3eaccfe7
2025-02-26 09:32:39 -08:00
Aman Sharma
07f91b0698 Move ByteEventCallback to QuicCallbacks.h
Summary:
The purpose of this is so that we can import this header from the WebTransport implementation and use the `ByteEventCallback` directly instead of creating a wrapper, thereby saving an allocation.

There's no functional change in this commit, it's just moving things around.

Relevant files:
* quic/api/QuicCallbacks.h
* quic/api/QuicSocketLite.h

Reviewed By: hanidamlaj

Differential Revision: D70000563

fbshipit-source-id: 9523cc788f50b4ba218be33e84f7d5b4f44a73c2
2025-02-25 17:58:37 -08:00
Open Source Bot
00d442b8bc Updating hashes
Summary:
GitHub commits:

77fbbe3f34
f764648a89
83c05311be
02e291c7f8
b028517fc5
d119184a1e
f991c3f8c7
505cebbff3
822f7343b9
bedadd6459

Reviewed By: JurjenLelifeld

fbshipit-source-id: 90560a43dcdb7333038f964b889f4cd27dec25a8
2025-02-25 09:37:17 -08:00
Konstantin Tsoy
bb94b7429c Lift throws out of decodeAckFrameWithECN()
Summary: Lift throws out of decodeAckFrameWithECN()

Reviewed By: hanidamlaj

Differential Revision: D70019758

fbshipit-source-id: cdafcede8119b3fc5285511fd68c4aea2bbe660f
2025-02-25 09:02:01 -08:00
Konstantin Tsoy
ff748b3712 Lift throws out of decodeAckFrameWithReceivedTimestamps()
Summary: Lift throws out of decodeAckFrameWithReceivedTimestamps()

Reviewed By: hanidamlaj

Differential Revision: D70018154

fbshipit-source-id: 483452bc8161b6af9664071a67b12d35db59014f
2025-02-25 09:02:01 -08:00
Konstantin Tsoy
ea83ae121b Lift throws out of decodeAckFrequencyFrame()
Summary: Lift throws out of decodeAckFrequencyFrame()

Reviewed By: hanidamlaj

Differential Revision: D70017603

fbshipit-source-id: 7b435d58cb1a391d8ef9a312c3fe32f2b5d34a9b
2025-02-25 09:02:01 -08:00
Konstantin Tsoy
94572dcfed Lift throws out of decodeKnobFrame()
Summary: Lift throws out of decodeKnobFrame()

Reviewed By: hanidamlaj

Differential Revision: D70017055

fbshipit-source-id: e4b77d6edf7d175a17bbce03be693bf5b25fdb0c
2025-02-25 09:02:01 -08:00
Konstantin Tsoy
31bcd3fdd1 Lift throws out of decodeAckFrame()
Summary: Lift throws out of decodeAckFrame()

Reviewed By: jbeshay

Differential Revision: D70015167

fbshipit-source-id: b47af9cc8ad4e3cf267576eda3479d2885ae3d39
2025-02-25 09:02:01 -08:00
Konstantin Tsoy
7ba66a2d77 Elevate exceptions out of writeStreamFrameHeader
Summary: Return an error and throw in callers instead.

Reviewed By: sharmafb

Differential Revision: D70011330

fbshipit-source-id: 9dc16d0f67ac13c58c3d89132d3bdc0c99e0cdd9
2025-02-25 09:02:01 -08:00
Aman Sharma
71b4e1c613 Use correct value for messageSizes in SendmmsgInplacePacketBatchWriter
Summary: `messageSizes` is supposed to be the number of iovecs in each message, and not the length of the iovec. This was causing crashes in Edgeray (T215909454).

Reviewed By: jbeshay

Differential Revision: D70129535

fbshipit-source-id: 6d79e6ac0789402674e753297984b3691d371338
2025-02-25 08:40:14 -08:00
Konstantin Tsoy
d119184a1e Update somerge maps after a new target
Summary: added in D69933311

Reviewed By: jbeshay

Differential Revision: D70127440

fbshipit-source-id: 9a658616257ff0e619d773d8a2d1c08d9b9c9015
2025-02-24 15:54:07 -08:00
Joseph Beshay
7f65f36b62 Cache the negotiated config for ACKs once the transport parameters are received
Summary: Cache the negotiated config for what ACK type to write and which fields to use once the peer transport parameters are available. This avoids computing the config with every ack frame being written.

Reviewed By: sharmafb

Differential Revision: D70004436

fbshipit-source-id: 79354f5137c77353c3a97d4c41782a700622e986
2025-02-24 12:32:50 -08:00
Joseph Beshay
c6d8f76e67 Refactor AckScheduler to use it in both PacketScheduler and PacketRebuilder
Summary: The logic for deciding which ACK type to write was duplicated in QuicPacketScheduler and QuicPacketRebuilder. This refactors the logic out into a separate QuicAckScheduler so it can be tested for correction and reused in both places.

Reviewed By: sharmafb

Differential Revision: D69933311

fbshipit-source-id: e4f45688a5d258dd2a57f9f7844407f3efad5f49
2025-02-24 12:32:50 -08:00
Joseph Beshay
aac108ddc7 Write ACK_EXTENDED frame when supported by peer
Summary:
Write the new ACK_EXTENDED frame. When any of the ACK_EXTENDED features are enabled locally and supported by the peer, this frame type will take precedence over ACK_ECN and ACK_RECEIVETIMESTAMPS. See first diff in the stack for the features.

Frame format:
```
ACK_EXTENDED Frame {
  Type (i) = 0xB1
  // Fields of the existing ACK (type=0x02) frame:
  Largest Acknowledged (i),
  ACK Delay (i),
  ACK Range Count (i),
  First ACK Range (i),
  ACK Range (..) ...,
  Extended Ack Features (i),
  // Optional ECN counts (if bit 0 is set in Features)
  [ECN Counts (..)],
  // Optional Receive Timestamps (if bit 1 is set in Features)
  [Receive Timestamps (..)]
}
// Fields from the existing ACK_ECN frame
ECN Counts {
  ECT0 Count (i),
  ECT1 Count (i),
  ECN-CE Count (i),
}
// Fields from the existing ACK_RECEIVE_TIMESTAMPS frame
Receive Timestamps {
  Timestamp Range Count (i),
  Timestamp Ranges (..) ...,
}
Timestamp Range {
  Gap (i),
  Timestamp Delta Count (i),
  Timestamp Delta (i) ...,
}
```

Reviewed By: sharmafb

Differential Revision: D68931148

fbshipit-source-id: 0fb4bac23e121f82a11602daabc1ec7084db43dd
2025-02-24 12:32:50 -08:00
Joseph Beshay
31fbb343d1 Decode ACK_EXTENDED frame
Summary:
Add functionality for decoding the new ACK_EXTENDED frame.

Frame format:
```
ACK_EXTENDED Frame {
  Type (i) = 0xB1
  // Fields of the existing ACK (type=0x02) frame:
  Largest Acknowledged (i),
  ACK Delay (i),
  ACK Range Count (i),
  First ACK Range (i),
  ACK Range (..) ...,
  Extended Ack Features (i),
  // Optional ECN counts (if bit 0 is set in Features)
  [ECN Counts (..)],
  // Optional Receive Timestamps (if bit 1 is set in Features)
  [Receive Timestamps (..)]
}
// Fields from the existing ACK_ECN frame
ECN Counts {
  ECT0 Count (i),
  ECT1 Count (i),
  ECN-CE Count (i),
}
// Fields from the existing ACK_RECEIVE_TIMESTAMPS frame
Receive Timestamps {
  Timestamp Range Count (i),
  Timestamp Ranges (..) ...,
}
Timestamp Range {
  Gap (i),
  Timestamp Delta Count (i),
  Timestamp Delta (i) ...,
}
```

Reviewed By: sharmafb

Differential Revision: D68931149

fbshipit-source-id: 7eab52449db60fc41a5bf9aa48c0f695ccaca3f0
2025-02-24 12:32:50 -08:00
Joseph Beshay
b45c82b884 ACK_EXTENDED frame support
Summary:
This introduces a new frame type for acks (ACK_EXTENDED) that can carry optional fields depending on the features supported by the peer. The currently supported features set will include ECN count fields, and Receive Timstamp fields. This enables a quic connection to report both ECN counts and receive timestamps, which is not possible otherwise because they use different frame types.

Support for the extended ack as well as the set of features that can be included in it is negotiated through a new transport parameter (extended_ack_supported = 0xff0a004). Its value indicates which features are supported by the local transport. The value is an integer which is evaluated against the following bitmasks:
```
  ECN_COUNTS = 0x01,
  RECEIVE_TIMESTAMPS = 0x02,
```

This diff introduces the transport parameter and negotiates the supported features between the peers of the connection. The parameter is cached in the psk cache so the client can remember the server config. It is also encoded inside the 0-rtt ticket so the server can reject it if its local config has changed.

The following diffs add reading and writing the frame itself.

The ACK_EXTENDED frame itself will have the following format
```
ACK_EXTENDED Frame {
  Type (i) = 0xB1
  // Fields of the existing ACK (type=0x02) frame:
  Largest Acknowledged (i),
  ACK Delay (i),
  ACK Range Count (i),
  First ACK Range (i),
  ACK Range (..) ...,
  Extended Ack Features (i),
  // Optional ECN counts (if bit 0 is set in Features)
  [ECN Counts (..)],
  // Optional Receive Timestamps (if bit 1 is set in Features)
  [Receive Timestamps (..)]
}

// Fields from the existing ACK_ECN frame
ECN Counts {
  ECT0 Count (i),
  ECT1 Count (i),
  ECN-CE Count (i),
}

// Fields from the existing ACK_RECEIVE_TIMESTAMPS frame
Receive Timestamps {
  Timestamp Range Count (i),
  Timestamp Ranges (..) ...,
}

Timestamp Range {
  Gap (i),
  Timestamp Delta Count (i),
  Timestamp Delta (i) ...,
}
```

Reviewed By: sharmafb

Differential Revision: D68931151

fbshipit-source-id: 44c8c83d2f434abca97c4e85f0fa7502736cddc1
2025-02-24 12:32:50 -08:00
Open Source Bot
466d304058 Updating hashes
Summary:
GitHub commits:

1f6603102a
753394eade
107e3cb8af
7c585fde64
31507b95ee
bf472d915e
4cde3a4d94
d153a52bbb
6e015ed304
f411773834

Reviewed By: JurjenLelifeld

fbshipit-source-id: d45e6c774d159a826d79ab0c09450ee9b9723da7
2025-02-24 09:33:14 -08:00
Open Source Bot
31507b95ee Updating hashes
Summary:
GitHub commits:

ba4bd7430b
150a927ac1
7a627285b3
ba25f8853f
cae5286756
2f7148be5a
5adbaca044
c9d9cf7028
5927f8b231
557b068383
638a7d0ac9

Reviewed By: bigfootjon

fbshipit-source-id: 5432b6490892f200afd9b84695c4d08800cbcd2f
v2025.02.24.00
2025-02-23 09:32:06 -08:00
Open Source Bot
cae5286756 Updating hashes
Summary:
GitHub commits:

3d9936fc6b
2788e21d7b
f20ed2e40e
8dd8df7c82
cd373ad6bb
373bc7f756
ef038bdba2
818ed2b7b5
c5f62c631f
185b9909c8
990670bc15

Reviewed By: bigfootjon

fbshipit-source-id: c17ba8e2cc4a3770df2e8aa23dea78830bc854cb
2025-02-22 09:32:52 -08:00
Riten Gupta
cd373ad6bb Write to qlog after ack or loss is processed
Summary: Bbr.cpp places the call to qlogger's addCongestionMetricUpdate in onPacketAcked in a SCOPE_EXIT macro, causing the qlog update to happen at the end of the method. Bbr2.cpp should do the same in onPacketAckOrLoss.

Reviewed By: jbeshay

Differential Revision: D69890778

fbshipit-source-id: 5492f7252605c680fd8e2d1a1c5a0278163ab0a5
2025-02-21 19:56:51 -08:00
Open Source Bot
7c36377085 Updating hashes
Summary:
GitHub commits:

6f87d82788
1f6baec9df
70a14ea606
477fd6cdde
b0e7f77aa4
81eb4cb80b
9f9fcea68e
5d9c329d09
2cf1b9fdf2
e548207ef0
fdd9424587

Reviewed By: bigfootjon

fbshipit-source-id: 486ab932c8a082e1bd01bd628503585d2658c6f0
2025-02-21 09:32:46 -08:00
Alan Frindell
b0e7f77aa4 Priority Queue Benchmarks
Summary:
Refactored the existing benchmark to measure more of what is actually happening:

1. Insert writable streams
2. Get the head writable stream for a while
3. Erase the head stream

Addeed a few benchmarks for insert/erase and different queue sizes

Reviewed By: mjoras

Differential Revision: D69100615

fbshipit-source-id: 209a4d1eccf15b482fd1880a3f09706f1361c53b
2025-02-20 11:13:36 -08:00
Alan Frindell
f9e9ad0443 HTTPPriorityQueue
Summary:
This is a reimplementation of the HTTP priority queue with the new API. The new design is:

A single vector-based heap for sequential streams across all levels and an array of 8 RoundRobin's that hold incremental streams.

Getting the highest priority element doesn't require iterating through empty levels - it's right at the front of `heap_` or `roundRobins_[lowestRoundRobin_]`.

There's an index map which incremental streams always use, the value is an index into roundRobins_.  When there are a large number of sequential streams in the heap_, we also index those (with their array index).

The benchmarks (next diff) show that this is 2x faster for 8 streams and 20% slower for large numbers of sequential streams (96).  The break-even point is 40 streams.

Reviewed By: mjoras

Differential Revision: D68641759

fbshipit-source-id: 30ea5c719e998ead20d8762ee5ddad10111ea7e5
2025-02-20 11:13:36 -08:00
Nicholas Ormrod
484898f61b facebook-unused-include-check in fbcode/quic
Summary:
Remove headers flagged by facebook-unused-include-check over fbcode.quic.

+ format and autodeps

This is a codemod. It was automatically generated and will be landed once it is approved and tests are passing in sandcastle.
You have been added as a reviewer by Sentinel or Butterfly.

Autodiff project: uiq
Autodiff partition: fbcode.quic
Autodiff bookmark: ad.uiq.fbcode.quic

Reviewed By: hanidamlaj

Differential Revision: D69864370

fbshipit-source-id: fb8f85599e1e12429f00dc2817dfc5ecf55bc482
2025-02-20 10:03:44 -08:00
Open Source Bot
33d5edfefb Updating hashes
Summary:
GitHub commits:

6b46db75a9
4b03aeadd1
3341f5c52c
4b2646cdcc
c098e5bb98
1ef62a80f0
6c27e6f6b9
438754e20b
1ff0059fd6
b4fe516294
66dbe8759c

Reviewed By: bigfootjon

fbshipit-source-id: 6f39a787788a30755004509204813ac7f5bb6046
2025-02-20 09:33:21 -08:00
Yedidya Feldblum
c098e5bb98 migrate uses of legacy alias folly::io::CodecType in quic/
Reviewed By: hanidamlaj

Differential Revision: D69791883

fbshipit-source-id: e840c4dd7b4982d28935698e4bd6300896461b9e
2025-02-19 15:51:09 -08:00
Alex Hornby
0cf27c0e92 fix test execution when building OSS repo with tpx on path
Summary:
X-link: https://github.com/facebookincubator/fizz/pull/160

X-link: https://github.com/facebookincubator/zstrong/pull/1192

Fix case when testing a github repo checkout, wth tpx on path, where --no-testpilot not specified.

As workaround before this lands, if in this situation pass --no-testpilot

Reviewed By: bigfootjon

Differential Revision: D69852662

fbshipit-source-id: 5065cdf3acae3bc9c90df89ed96eab3fc3e19906
2025-02-19 13:18:31 -08:00
Open Source Bot
3a9c3eb1fc Updating hashes
Summary:
GitHub commits:

37da918737
15b019be0b
564f58101e
ed95b0497c
7d22b2cabf
a6eceafdb1
ae4ed91329
d417eebdef
6050ace0dc
a2f0389235
20bfa5a8a7

Reviewed By: bigfootjon

fbshipit-source-id: a9d0ebdadd39b09e7360d3491e445a73856815d7
2025-02-19 09:32:50 -08:00
Open Source Bot
7d22b2cabf Updating hashes
Summary:
GitHub commits:

3f752d6e0a
08cb5595c7
b7ad881bb1
18a3523b77
b5690231db
b306c188c9
d25e573116
c942fa7db0
b0184e76b8
4452436283
e6473eeefe
849a8a6b52
a647d88288
430ca6630b

Reviewed By: bigfootjon

fbshipit-source-id: 12c5480b889ec5ffb03addbd5f2759319b758043
2025-02-18 11:40:09 -08:00
Open Source Bot
b306c188c9 Updating hashes
Summary:
GitHub releases:

https://github.com/facebook/buck2/releases/tag/2025-02-15

Reviewed By: JurjenLelifeld

fbshipit-source-id: 121c990fe36ce30694365625be97775b83676cfe
2025-02-15 09:32:21 -08:00
Joseph Beshay
8ceacfcec9 Ensure bandwidth plateau is 3 full round trips
Summary: Updating the fullBw_ in the middle of the round means that the bandwidth plateau for exiting startup could be shorter than 3 full round trips.

Reviewed By: mjoras

Differential Revision: D69667059

fbshipit-source-id: 59b9aa035b6ff7465615a9404cb598ae8da4ff6a
2025-02-14 21:11:27 -08:00
Joseph Beshay
7d4aef9380 Improve recovery handling
Summary: This change adds a loss recovery approach similar to the one we're using in bbr1. It reduces the congestion window to inflight bytes and reduces it by lost bytes as long as losses continue. This is a configurable option that can be selectively enabled/disabled for both Startup and non-Startup states of bbr2.

Reviewed By: mjoras

Differential Revision: D69557715

fbshipit-source-id: 12ee20106e57af83a2b4e52caf6254204a91da6f
2025-02-14 21:11:27 -08:00
Joseph Beshay
5b152f1a1c Use app limited signal from last acked packet when advancing state machine
Summary:
Previously, bbr2 used its current app limited state to make decisions on advancing the state machine, this can lead to delayed responses to losses in some cases. This diff changes it to use the appLimited state from the last acked packet.

This diff also refactors how the state related to the current ackEvent is accessed in order to simply the code a little bit.

Reviewed By: mjoras

Differential Revision: D69199424

fbshipit-source-id: e66898cd2347e0d997479b5d50b825c242ef34aa
2025-02-14 21:11:27 -08:00
Joseph Beshay
e30db9f1ba Respect transport setting for avoiding ack aggregation in startup
Summary: Fix ack aggregation behavior during startup.

Reviewed By: ritengupta

Differential Revision: D69217884

fbshipit-source-id: 1ee61cfa692af283fc4fb32a98548d5eb3d59040
2025-02-14 21:11:27 -08:00
Konstantin Tsoy
93aff1cc9c Remove FrameType from QuicException
Summary: Not used

Reviewed By: hanidamlaj

Differential Revision: D69569612

fbshipit-source-id: 72e6c6a52dacbc06e825bc4123022dbc3c8af785
2025-02-14 19:21:05 -08:00
Konstantin Tsoy
7edd37b537 Remove useless include
Summary: Remove useless include

Reviewed By: JunqiWang

Differential Revision: D69568927

fbshipit-source-id: d635777f899915867d3538efe6bd31cb23755591
2025-02-14 19:21:05 -08:00
Konstantin Tsoy
b34e9e2a80 processUdpPacket() to return an error instead of throwing
Summary: processUdpPacket() to return an error instead of throwing

Reviewed By: sharmafb

Differential Revision: D69568271

fbshipit-source-id: 1b5b2255a0b435ac67261042cb023f7d6832122b
2025-02-14 19:21:05 -08:00