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
Summary: This introduces a more generic typealias so that we can, for instance, write `BufHelpers::createCombined` instead of `folly::IOBuf::createCombined`.
Reviewed By: jbeshay
Differential Revision: D73127508
fbshipit-source-id: d585790904efc8e9f92d79cbf766bafe0e84a69f
Summary:
Previously, none of the read paths supported by QuicClienTransport had support for reaching the ToS field on Windows.
This change adds support for reading ToS fields in the `shouldUseWrapperRecvmmsgForBatchRecv` read path on Windows.
This facilitates running and testing ECN/L4S in a Windows-only environment.
Reviewed By: kvtsoy, sharmafb
Differential Revision: D66045131
fbshipit-source-id: 440cf99b5b97d852286630668abac906ea696950
Summary: We'll be using this logic in numerous places (for instance, in QuicClientTransport, where we call `recvMsg` which doesn't currently set the `maybeSoftwareTs` field), so I'm factoring it out.
Reviewed By: mjoras
Differential Revision: D61480314
fbshipit-source-id: f2465712d2ae94e42e52d49add2212994c5b397f
Summary:
The idea here is to make it so we can swap out the type we are using for optionality. In the near term we are going to try swapping towards one that more aggressively tries to save size.
For now there is no functional change and this is just a big aliasing diff.
Reviewed By: sharmafb
Differential Revision: D57633896
fbshipit-source-id: 6eae5953d47395b390016e59cf9d639f3b6c8cfe
Summary: Adds new field `tosValue` to ReceivedUdpPacket so it is accessible in the rest of the read path.
Reviewed By: kvtsoy
Differential Revision: D54912161
fbshipit-source-id: ea4714fa2374d38e915fc850387e1094d1fb8adf
Summary: As title. This adds support for the quic client and server transports reading the tos/tclass field for incoming packets.
Reviewed By: mjoras, kvtsoy
Differential Revision: D54912164
fbshipit-source-id: e4dc4d778dce66f8d5539e9742433e0996f98c0c
Summary:
This adds a new abstract class for a QuicAsyncUDPSocket abstraction that will be used by Mvfst instead of directly using folly objects. This will allow plugging in different implementations. The two that are currently planned are:
- folly-based
- pure libev based
Reviewed By: mjoras, sharmafb
Differential Revision: D50809223
fbshipit-source-id: 3852c9a7459b45d79e39ff24e7fc725e8703d3b8