1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-11-03 12:33:15 +03:00
Commit Graph

74 Commits

Author SHA1 Message Date
Brian Ecker
fdad915c67 Add postwrite method to packet processor
Summary: This diff adds a `postwrite` method that is called at the end of each write loop invocation to allow users to customize writeloops with a before/after type of pattern. This is used for the implementation of request-cost tracking at the protocol layer as tracked in T235176826. This was previously discussed with Joseph Beshay on that task.

Reviewed By: jbeshay

Differential Revision: D84533955

fbshipit-source-id: ae1598040494c2cfc02b225972b39e6d2312bd5f
2025-10-14 12:16:17 -07:00
Sandarsh Srivastava
a65d7d46cf Fix use-after-free in QuicTransportBaseLite::DrainTimeout
Summary:
*   Added an explicit destructor to `QuicTransportBaseLite` that is the same as its derived  QuicTransportBase.

*   Simplified `QuicTransportBase` destructor to `= default` since the parent class now handles all cleanup.

Reviewed By: mjoras, jbeshay

Differential Revision: D84391365

fbshipit-source-id: 61034b46283c8e13eec26c473a597337e4868a17
2025-10-13 23:37:53 -07:00
Nishant Nori
54c014c735 Configure QUIC keepalive timeout independently of idle timeout
Summary:
In mvfst, currently, keep alive frequency is 0.85 times the idle timeout.

I want to see if decoupling keep alives from idle timeout helps with long-living mobile connections like DGW where there are a lot of variables like app backgrounding, NAT rebindings etc.

I added my general thoughts in [this doc](https://docs.google.com/document/d/1WSpzsVlDsv_xQvyN0Wv-_Q2pqh7Jk4KITB3jzh6Vf6U/edit?tab=t.0#heading=h.4i12opxnysp2).

Reviewed By: jbeshay

Differential Revision: D83571470

fbshipit-source-id: 76e109e80ef94d7e42a0382346038c02f6dd8179
2025-10-08 14:38:36 -07:00
Nishant Nori
cf54180df3 Change idle timeout error logging
Summary: Remove "num non control streams" from the idle timeout error message. Instead add the value of the timeout.

Differential Revision: D83587812

fbshipit-source-id: df9de80534575ac4c255b6c4ec7447cf1764e5f1
2025-10-02 07:30:37 -07:00
Joseph Beshay
9ff8b2b9dd Ensure transport is not destroyed while handling path validation timeouts
Summary:
When path validation fails for the current path and without a valid fallback path, the path validation timeout unbinds the server transport from the worker. This can destroy the transport while the path manager is still operating on it.

Using the shared guard in the pathValidationTimeoutExpired callback prevents this from happening.

Reviewed By: kvtsoy

Differential Revision: D83602778

fbshipit-source-id: 850d5a0d584f399fc1a5699a868e02e3647527af
2025-09-30 18:40:42 -07:00
Joseph Beshay
8cd8790f5c Handle connection migration on the server
Summary:
This is a major change that adds support for handling path probes in the QuicServerTransport. To that end, this change:
- Incorporates the new QuicPathManager into the read and write paths of the QuicTransportBaseLite.
- Separates the connection migration logic from path probing to enable handling probe-only packets that could fail or succeed without impacting the active path.
- Tracks the path information in the outstanding packets and when updating the connection state for probing packets.
- Makes minor changes for the client transport to be able to accommodate the previous changes.

This change does NOT include:
- Client logic to initiate or handle path probes
- Server logic to rotate CIDs on migration.

Reviewed By: mjoras

Differential Revision: D79122987

fbshipit-source-id: 8db01b007b7312f51d7431cb10abb35b43d42794
2025-09-29 09:43:17 -07:00
Joseph Beshay
9e3a535a5d Make localAddress available to the read path for the client and the server
Summary:
This diff is the first in the stack to add QUIC active connection migration support to Mvfst.

This adds the local address as a parameter to the functions in the read path for the client and server. This is necessary to allow the client to differentiate packets arriving on different sockets and handle them correctly. The different paths are paths being probed vs. the primary path, which is the one carrying non-probing packets.

Reviewed By: mjoras

Differential Revision: D80222873

fbshipit-source-id: 0d1ecd82b1c704280243047143ffb5b58cee4fd3
2025-09-08 10:06:43 -07:00
Joseph Beshay
f0a662331a Enable writing a CloseConnection on Idle Timeout
Summary: As title.

Reviewed By: sharmafb

Differential Revision: D80748558

fbshipit-source-id: b489c94e6edeb99becb3f56f6e1cdaf7c925fe1f
2025-08-26 10:22:02 -07:00
Luca Niccolini
71525f55b3 On server: skip writes and close connection early from server for MVFST_PRIMING version
Summary:
Meta:
Special handling for MVFST_PRIMING connections on QUIC Server
* Do not write any packets back to the client
* Close connection early: as soon as data for the client is ready on a bidirectional stream -- using that as a proxy for "HTTP request stream"
* Do not bump the "connection closed with zero bytes written" counter to not add noise to current monitoring

Reviewed By: kvtsoy

Differential Revision: D79491915

fbshipit-source-id: c914968f37816d725790a12f3c1c136777c94d00
2025-08-07 14:49:48 -07:00
Luca Niccolini
973e1c4986 Use consistent packet size for priming connections on IPv4 and IPv6
Summary:
Meta:
Fix for D68804551 comment about handling v4/v6 in QUIC 0-RTT priming.

The issue was that priming packets need to be generated ahead of time without knowing which address family (IPv4 or IPv6) they will be used on later.
Without this change we would set different length for ipv4 and ipv6
- IPv4: 1252 bytes (kDefaultV4UDPSendPacketLen)
- IPv6: 1232 bytes (kDefaultV6UDPSendPacketLen)

For priming connections, this change ensures we always use the smaller, conservative packet size (1232 bytes = kDefaultUDPSendPacketLen) that works on both IPv4 and IPv6 networks.

Used CCA mostly for the tests -- removed most of the text since it's way too verbose

Reviewed By: JunqiWang

Differential Revision: D78899669

fbshipit-source-id: 28efbb388c1b251936b019aab8f69a840de70768
2025-07-30 15:22:13 -07:00
Luca Niccolini
e7aa93db72 Fix duplicated initial
Summary:
Meta:

The priming data vector vector ownerhip was not moved, that made us save duplicate packets.

For example: the onPrimingDataAvailable callbacks is currently invoked twice
* 1 - after "writing" the initial
* 2 - after "writing" the first flight of 0-RTT packets

If primingData is not moved correctly the callbacks would look like this:
1. onPrimingDataAvailable([initial])
2. onPrimingDataAvailable([initial, 0RTT packets])

so we would end up with a duplicate initial. This is why the tests were originally written with relaxed checks "CHECK_GE(packets.size(), 2)" instead of "CHECK_EQ(packets.size(),2)"

Reviewed By: mjoras

Differential Revision: D78054738

fbshipit-source-id: 5779d6b0513473c9d37416ca5686726144bd3a37
2025-07-10 17:10:48 -07:00
Matt Joras
4601c4bdae Migrate folly::Expected to quic::Expected
Summary:
This migrates the quic code to use quic::Expected instead of folly::Expected. quic::Expected is a vendored wrapper for expected-lite, which itself matches std::expected. std::expected is not available to us, but once it is, we would be able to further simplify to the std version.

This migration is almost entirely mechanical.
 ---
> Generated by [Confucius Code Assist (CCA)](https://www.internalfb.com/wiki/Confucius/Analect/Shared_Analects/Confucius_Code_Assist_(CCA)/)
[Session](https://www.internalfb.com/confucius?session_id=7044a18e-4d22-11f0-afeb-97de80927172&tab=Chat), [Trace](https://www.internalfb.com/confucius?session_id=7044a18e-4d22-11f0-afeb-97de80927172&tab=Trace)
 ---
> Generated by [RACER](https://www.internalfb.com/wiki/RACER_(Risk-Aware_Code_Editing_and_Refactoring)/), powered by [Confucius](https://www.internalfb.com/wiki/Confucius/Analect/Shared_Analects/Confucius_Code_Assist_(CCA)/)
[Session](https://www.internalfb.com/confucius?session_id=1fea6620-4d30-11f0-a206-ad0241db9ec9&tab=Chat), [Trace](https://www.internalfb.com/confucius?session_id=1fea6620-4d30-11f0-a206-ad0241db9ec9&tab=Trace)
[Session](https://www.internalfb.com/confucius?session_id=2bdbabba-505a-11f0-a21b-fb3d40195e00&tab=Chat), [Trace](https://www.internalfb.com/confucius?session_id=2bdbabba-505a-11f0-a21b-fb3d40195e00&tab=Trace)
[Session](https://www.internalfb.com/confucius?session_id=eb689fd2-5114-11f0-ade8-99c0fe2f80f2&tab=Chat), [Trace](https://www.internalfb.com/confucius?session_id=eb689fd2-5114-11f0-ade8-99c0fe2f80f2&tab=Trace)
[Session](https://www.internalfb.com/confucius?session_id=9bc2dcec-51f8-11f0-8604-7bc1f5225a86&tab=Chat), [Trace](https://www.internalfb.com/confucius?session_id=9bc2dcec-51f8-11f0-8604-7bc1f5225a86&tab=Trace)
[Session](https://www.internalfb.com/confucius?session_id=46b187ea-5cdd-11f0-9bab-7b6b886e8a09&tab=Chat), [Trace](https://www.internalfb.com/confucius?session_id=46b187ea-5cdd-11f0-9bab-7b6b886e8a09&tab=Trace)

Reviewed By: kvtsoy

Differential Revision: D76488955

fbshipit-source-id: 92b9cbeac85a28722a6180464b47d84696b1e81b
2025-07-10 15:57:07 -07:00
Luca Niccolini
0ea0f1ceea Make priming feature force a new QUIC version
Summary: [QUIC] Make priming feature force a new QUIC version

Reviewed By: hanidamlaj

Differential Revision: D76637472

fbshipit-source-id: a242212fe46d024c0dd07cd387bc8d49c9648458
2025-07-06 10:06:07 -07:00
Konstantin Tsoy
813f6a6cd1 folly::to<std::string> -> fmt::format
Reviewed By: sharmafb

Differential Revision: D74672231

fbshipit-source-id: d8f4fc542de10f26cf06df7ca42518865e8bba3a
2025-05-14 08:46:52 -07:00
Matt Joras
9a9dcca57c Mostly remove folly::Optional
Summary:
This is an API break, but it should mostly be a manageable one. We want to be able to compile mvfst internally without exceptions, and folly::Optional is one dependency that makes this challenging. Additionally, we already have an imported secondary optional type for performance/struct size reasons, tiny-optional.

This second optional interface is mostly compatible in an API sense (including the use of std::nullopt) with std::optional. Thus our approach is to remove the dependency on folly::Optional, and offer a quic::Optional instead.

The next diff will properly vendor tiny-optional so that quic::Optional is an independent version of it.

Reviewed By: sharmafb, kvtsoy

Differential Revision: D74133131

fbshipit-source-id: 715f8bb5043ba3bb876cacfe54236887e0686b30
2025-05-07 23:01:49 -07:00
Paul Farcasanu
c6a141bf80 Support transport isPriming
Summary:
When the transport is in priming mode it saves all packets instead of writing them on the wire, and feeds them to a callback for the caller to get the data.

Meta:
Priming mode is used to get all packets before 1-RTT cipher is available, in order for them to get replayed later.

Reviewed By: kvtsoy

Differential Revision: D71290230

fbshipit-source-id: 230650cb1e5901069dda4ef850c9c724bf33b6be
2025-05-07 09:32:06 -07:00
Joseph Beshay
48f026f49b Allow BBRv2 to use the configured startup rtt factor for the pacer
Summary: As title.

Reviewed By: sharmafb

Differential Revision: D74190392

fbshipit-source-id: 30a9cbd3959a35c559efe6fa0352076e01d79e72
2025-05-06 12:26:26 -07:00
Konstantin Tsoy
79fc230929 use std::function in runOnEvbAsync()
Summary: use std::function in runOnEvbAsync()

Reviewed By: mjoras

Differential Revision: D73380172

fbshipit-source-id: 73f364bd39e70cb13efc32eb2c9640b179fc3de5
2025-04-22 20:44:16 -07:00
Aman Sharma
41667ff7c5 Change Buf -> BufPtr and RawBuf -> Buf
Summary:
Previously,
* `RawBuf` was a typealias for `std::unique_ptr<folly::IOBuf>`
* `Buf` was a typealias for `folly::IOBuf`

In this diff,
* `Buf` is a typealias for `folly::IOBuf`
* `BufPtr` is a typealias for `std::unique_ptr<folly::IOBuf>`

Reviewed By: hanidamlaj

Differential Revision: D73206576

fbshipit-source-id: 454bf6ccfce3d6571e5e931889263ed98cc24af3
2025-04-21 20:14:02 -07:00
Matt Joras
089bf581a7 Remove throws from socket layer
Summary: More in the theme of returning Expected instead of throwing. For the folly case, we keep the try/catches in there and translate to Expected. For Libev, we convert directly to Expected.

Reviewed By: kvtsoy

Differential Revision: D73217128

fbshipit-source-id: d00a978f24e3b29a77a8ac99a19765ae49f64df8
2025-04-19 15:20:15 -07:00
Alan Frindell
1e1c7defef Use new priority queue implementation
Summary:
This adds the new priority queue implementation and a TransportSetting that controls whether it should be used or not.  The default is still the old priority queue, so this diff should not introduce any functional changes in production code.

One key difference is that with the new queue, streams with new data that become connection flow control blocked are *removed* from the queue, and added back once more flow control comes.  I think this will make the scheduler slightly more efficient at writing low-priority loss streams when there's high-pri data and no connection flow control, since it doesn't need to skip over those streams when building the packet.

If this diff regresses build size, D72476484 should get it back.

Reviewed By: mjoras

Differential Revision: D72476486

fbshipit-source-id: 9665cf3f66dcdbfd57d2199d5c832529a68cfac0
2025-04-17 08:43:19 -07:00
Alan Frindell
444a0f261b Use new PriorityQueue interface
Summary:
Migrating mvfst priority API to be abstract, based on new classes is quic/priority.  For now, it requires applications use `HTTPPriorityQueue::Priority`, to be compatible with the hardcoded `deprecated::PriorityQueue` implementation and apps cannot yet change the queue impl.  Eventually the application will have full control of the queue.

There are minor functional changes in this diff:

1. Priority QLog types changed from int/bool to string
2. Any PAUSED stream has priority `u=7,i` if paused streams are disabled (previously explicitly settable to any priority)

Reviewed By: jbeshay

Differential Revision: D68696110

fbshipit-source-id: 5a4721b08248ac75d725f51b5cb3e5d5de206d86
2025-04-09 13:54:27 -07:00
Matt Joras
2a8fba588f Propagate error in scheduleFramesForPacket and writeData
Summary: As in title, this is more of a theme on adding an Expected return.

Reviewed By: kvtsoy

Differential Revision: D72579218

fbshipit-source-id: 25735535368838f1a4315667cd7e9e9b5df1c485
2025-04-08 21:06:35 -07:00
Matt Joras
67ce39cfdd Remove exception throwing from the stream manager and flow control.
Summary: I started with the QuicStreamManager, but it turns out that the path from the manager up to the close path touches a LOT, and so this is a big diff. The strategy is basically the same everywhere, add a folly::Expected and check it on every function and enforce that with [[nodiscard]]

Reviewed By: kvtsoy

Differential Revision: D72347215

fbshipit-source-id: 452868b541754d2ecab646d6c3cbd6aacf317d7f
2025-04-07 23:45:33 -07:00
Abdulbaki Aydin
9805b1f24d Add more initial packet and tls handshake logging
Summary:
Adds more logging for:
- Number of initial packets received
- Number of unique crypto frames received
- Time elapsed to get the last meaningful initial crypto frame.
- named groups, psk status, and ech status from TLS layer.

Reviewed By: mjoras

Differential Revision: D71910754

fbshipit-source-id: ea8524213ba296727079800bb167ec080143c10b
2025-04-04 15:48:09 -07:00
Paul Farcasanu
aa90d99d76 move qlog to transport lite
Summary:
Context: T210787480

I want to add a client-side qlog that will allow us to inspect client behavior during the 0rtt bug.

Reviewed By: jbeshay

Differential Revision: D71145234

fbshipit-source-id: 7816f0a759ba4f60107aaf40c4376ced7c5d03f8
2025-04-01 20:10:07 -07: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
Konstantin Tsoy
d98c90c48d Change onReadData() to return an error
Summary:
All according to plan: https://fburl.com/gdoc/pebccgi1
Changing function definitions to return errors while still throwing.

Reviewed By: sharmafb

Differential Revision: D69567329

fbshipit-source-id: 5d40ee32fe185d5674785632a9a13e4cef996988
2025-02-14 19:21:05 -08:00
Konstantin Tsoy
476607c217 Clean up inline writes param
Summary: Clean up inline writes param

Differential Revision: D68977602

fbshipit-source-id: 4edb4ca08605fab76b56e706c2ccc85836018594
2025-02-04 23:51:44 -08:00
Konstantin Tsoy
14d8a46842 Clean up mvfstCheckIdleTimerOnWrites param
Summary: Clean up mvfstCheckIdleTimerOnWrites param

Reviewed By: sharmafb

Differential Revision: D68972795

fbshipit-source-id: f19f9947fa8a8affe4c4411c22d893cb95d71fe0
2025-02-04 23:51:44 -08:00
Matt Joras
b4b50d198e Add some logs to getStream CHECKs
Summary: As in title.

Reviewed By: jbeshay

Differential Revision: D68779912

fbshipit-source-id: 8161c8ab2d579a43c7283c70a8f1e231304b5b7e
2025-01-28 14:32:09 -08:00
Aman Sharma
6800a7511e API for reliable resets
Reviewed By: jbeshay

Differential Revision: D67360862

fbshipit-source-id: 163f030b866a5ba6fa89f8b97bb15875f8bbf2a0
2025-01-28 12:37:29 -08:00
Aman Sharma
29f6071b75 Make a checkpoint function for reliable resets
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
2025-01-28 10:52:55 -08:00
Aman Sharma
9e8fa06fb7 Fire readError and remove readCb only when reliable data has been read
Summary: See title

Reviewed By: afrind

Differential Revision: D67766485

fbshipit-source-id: 7283b438317f7b750e274414790777c7dd1572e9
2025-01-16 16:00:15 -08:00
Aman Sharma
2795a0d760 Make a more generic cancelByteEventCallbacksForStreamInternal
Summary:
With reliable resets, we'll want to cancel byte events where the offset is beyond what needs to be reliably delivered. Right now, we only have the functionality to cancel all byte events, or only those up to a certain point.

I'm adding a more generic `cancelByteEventCallbacksForStreamInternal` that takes in a function that can be used to determine which byte events need to be removed.

Reviewed By: afrind

Differential Revision: D67353621

fbshipit-source-id: fa7e758ee6cd40d247392108c28118b604ad6dbc
2024-12-23 13:21:30 -08:00
Aman Sharma
b7449f8385 Make a resetStreamInternal
Summary: I'm moving the implementation of `resetStream` to `resetStreamInternal` so that we can reuse a large chunk of the functionality when we implement reliable resets.

Reviewed By: kvtsoy

Differential Revision: D67303220

fbshipit-source-id: 16efce46570a0742e570d9b0b34a9477f9efbbdc
2024-12-18 12:42:38 -08:00
Aman Sharma
683b982c15 Remove superfluous looping through all resets
Summary: There's no need to loop through all the streams if we're just resetting one.

Reviewed By: hanidamlaj

Differential Revision: D67304631

fbshipit-source-id: 4817459ca7d1c1fd906b7640a0089c1c52e6e485
2024-12-17 22:29:50 -08:00
Aman Sharma
1528cf4d1a Modify sendRstSMHandler for reliable resets
Summary: This is just some additional plumbing that we need in order to send reliable resets. It's still not hooked up end-to-end, so we can't yet send reliable resets.

Reviewed By: mjoras

Differential Revision: D66772108

fbshipit-source-id: ee189959751ed03e294c6ef418d75d8ad4959690
2024-12-06 03:06:50 -08:00
Alan Frindell
900e22e18d Allow unset read callback during connection close
Summary:
setReadCallback didn't function properly during shutdown

1) it was completely ignored when state_ == CLOSING
2) cancelAllAppCallbacks made a copy of readCallbacks_

This is problematic for application constructs that use groups of streams -- eg: HTTP WebTransport.  When one stream (the WebTransport session) is reset during shutdown, it needs to clean up any dependent streams as well, including preventing them from getting error callbacks.

The fix is to use only the streamId's from readCallbacksCopy for iteration, but look up the actual callback value from readCallbacks_.

Note: there's an as yet unhandled corner case which is that a readError callback installs a new stream read callback, but it seems far fetched enough I'm not including a fix here.

Reviewed By: sharmafb

Differential Revision: D48159644

fbshipit-source-id: c9d522a6b200538193969d60d242a505831e4cd0
2024-12-04 14:05:11 -08:00
Joseph Beshay
816ac9089e Enable the experimental pacer for bbr2/bbr_testing
Summary:
This re-enables the experimental pacer for bbr2 and bbr_testing, and removes fireLoopEarly by default.

FireLoopEarly can still be enabled via a knob.

Reviewed By: ritengupta, kvtsoy

Differential Revision: D65919713

fbshipit-source-id: e5d08a807be091c11326e9705601bd9e6bf79991
2024-11-15 20:28:26 -08:00
Uri Hindri
b92b3232f4 fix wrong lambda call bug
Summary:
When using msvc and compiling quic with C++20 there's a weird issue that the Looper is initialized with the wrong callbacks.

I suspect that this is because the constructor was creating the lambda as part of the header file.
Moving the constructor code to the cpp file fixed the issue

Reviewed By: hanidamlaj, kvtsoy

Differential Revision: D65994029

fbshipit-source-id: 9c5f47b62d0e0c74b5bce05f926e437e6aa2a3ab
2024-11-15 13:34:22 -08:00
Aman Sharma
1cc00f77a4 Move core functionality to QuicTransportBaseLite [24/n]
Summary:
There are many files in this diff, but the relevant ones are:
* quic/api/QuicSocket.h
* quic/api/QuicSocketLite.h
* quic/api/QuicTransportBase.h
* quic/api/QuicTransportBaseLite.cpp
* quic/observer/SocketObserverContainer.h

The purpose of this is to include the observer functionality within the Lite class. Ideally, we'd remove it from the Lite class, but that's going to require some more detailed changes to the interfaces we're using, because observers are used quite a lot within common code (for example, AckHandlers.cpp).

I'll make those changes some time after the QuicTransportBase split, as they're going to take a while.

Reviewed By: jbeshay, mjoras, kvtsoy

Differential Revision: D65685667

fbshipit-source-id: feb07bcf35d6af2e5c2b538ff463b01b67c6aff9
2024-11-14 13:02:10 -08:00
Crystal Jin
95898ef8b7 Fall back to evb timer if no pacer timer set
Reviewed By: kvtsoy

Differential Revision: D65848549

fbshipit-source-id: 38c1e9b8c820dbe2848cb132d7e49079c45eb67d
2024-11-13 16:57:21 -08:00
Crystal Jin
a5fd828b90 Move setPacingFunction to when pacer is set
Reviewed By: hanidamlaj

Differential Revision: D65845962

fbshipit-source-id: 9d14e9845c6232b9825c20c7c67e2f49ac2fed73
2024-11-13 10:39:16 -08:00
Aman Sharma
c10bf16cfc Move core functionality to QuicTransportBaseLite [23/n][take 2]
Summary: This is pretty much the same as D65605100, which was reverted due to a cycle detection ([link](https://fb.workplace.com/groups/mobile.sheriffs/posts/27342968238658432/?comment_id=27343054638649792)). It turns out that the issue was that I didn't run `xplat/cross_plat_devx/somerge_maps/compute_merge_maps.py`.

Reviewed By: jbeshay

Differential Revision: D65761171

fbshipit-source-id: fc852ec13e54ea6ea45b4fda6b4556a78f38fc7f
2024-11-11 18:44:57 -08:00
Alex Jackson Lambert
f8a5876111 Revert D65605100: Move core functionality to QuicTransportBaseLite [23/n]
Differential Revision:
D65605100

Original commit changeset: aaa7f394b669

Original Phabricator Diff: D65605100

fbshipit-source-id: a087043af67d5ea30ab6d040162d1e72fdf67425
2024-11-08 19:24:37 -08:00
Aman Sharma
3f7555ae98 Move core functionality to QuicTransportBaseLite [23/n]
Summary: See title.

Reviewed By: hanidamlaj

Differential Revision: D65605100

fbshipit-source-id: aaa7f394b6699401ff84c1e5ed010e42670e39f0
2024-11-08 18:08:32 -08:00
Matt Joras
65bc1417f3 Add alpn to transport summary event
Summary: As in title, useful.

Reviewed By: kvtsoy

Differential Revision: D65508296

fbshipit-source-id: f068611399797df4dd422828373b1ddbbceec7df
2024-11-05 18:12:45 -08:00
Aman Sharma
a4247ec4d5 Move core functionality to QuicTransportBaseLite [21/n]
Summary: See title.

Reviewed By: mjoras

Differential Revision: D65282152

fbshipit-source-id: 273a2df9aca0aa84b2e1137d99a473e02de0953b
2024-11-01 11:46:43 -07:00
Aman Sharma
ae605980c5 Move core functionality to QuicTransportBaseLite [20/n]
Summary: See title.

Reviewed By: kvtsoy

Differential Revision: D64971971

fbshipit-source-id: 91c9fddcf77bbf26fa86bb00a1fa7f6c3b6f55dc
2024-10-30 10:53:30 -07:00