1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-11-09 10:00:57 +03:00
Commit Graph

162 Commits

Author SHA1 Message Date
Matt Joras
4e55f8272a Implicit ack Initial space on receiving a Handshake packet.
Summary:
This should be safe, as by the time we have successfully decrypted a handshake packet there's no more initial data.

The caveat here, I suppose, is that we are now relying on an implicit ACK of the initial instead of an explicit RTT signal.

Reviewed By: yangchi

Differential Revision: D22667820

fbshipit-source-id: 8d34e063d4bf4bb435db09694153fbaa0f061be1
2020-07-22 17:26:22 -07:00
Yang Chi
344e028687 Close quic client connection upon read error
Summary: set this to be default behavior

Reviewed By: vchynarov

Differential Revision: D22432915

fbshipit-source-id: 3ac527b206ccb798d63336bf559f7d164e2959c7
2020-07-08 13:01:34 -07:00
Matt Joras
70f40cc1c2 Add some sanity checks around cipher dropping.
Summary: As in title, these shouldn't happen.

Reviewed By: oesh, yangchi

Differential Revision: D22138561

fbshipit-source-id: cb51f3e795a1784e3f2ece675a95ac18a4be2701
2020-06-22 09:10:22 -07:00
Yang Chi
51b917b0b3 PingFrame is not a simple frame
Summary:
The problem with Ping being a simple frame:
(1) All SimpleFrames are in the same scheduler. So sending ping means we may
also send other frames which can be problematic if we send in Initial or
Handshake space
(2) Ping isn't retranmisttable. But other Simple frames are. So we are
certainly setting this wrong when we send pure Ping packet today.

That being said, there are cases where we need to treat Ping as retransmittable.
One is when it comes to update ack state: If peer sends us Ping, we may want to
Ack early rather than late. so it makes sense to treat Ping as retransmittable.
Another place is insertion into OutstandingPackets list. When our API user sends
Ping, then also add a Ping timeout. Without adding pure Ping packets into OP list,
we won't be able to track the acks to our Pings.

Reviewed By: mjoras

Differential Revision: D21763935

fbshipit-source-id: a04e97b50cf4dd4e3974320a4d2cc16eda48eef9
2020-06-18 15:30:44 -07:00
Yang Chi
b8fef40c6d Clone Quic handshake packets
Summary:
On loss timer, currently we knock all handshake packets out of the OP
list and resend everything. This means miss RTT sampling opportunities during
handshake if loss timer fires, and given our initial loss timer is likely not a
good fit for many networks, it probably fires a lot.

This diff keeps handshake packets in the OP list, and add packet cloning
support to handshake packets so we can clone them and send as probes.

With this, the handshake alarm is finally removed. PTO will take care of all
packet number space.

The diff also fixes a bug in the CloningScheduler where we missed cipher
overhead setting. That broke a few unit tests once we started to clone
handshake packets.

The writeProbingDataToSocket API is also changed to support passing a token to
it so when we clone Initial, token is added correctly. This is because during
packet cloning, we only clone frames. Headers are fresh built.

The diff also changed the cloning behavior when there is only one outstanding
packet. Currently we clone it twice and send two packets. There is no point of
doing that. Now when loss timer fires and when there is only one outstanding
packet, we only clone once.

The PacketEvent, which was an alias of PacketNumber, is now a real type that
has both PacketNumber and PacketNumberSpace to support cloning of handshake
packets. I think in the long term we should refactor PacketNumber itself into a
real type.

Reviewed By: mjoras

Differential Revision: D19863693

fbshipit-source-id: e427bb392021445a9388c15e7ea807852ddcbd08
2020-06-18 15:30:44 -07:00
Andrii Vasylevskyi
adb48de101 Add client side packet drop stats bumps
Summary:
^

(Note: this ignores all push blocking failures!)

Differential Revision: D22042953

fbshipit-source-id: e435065210e5f21dd2c8d4a1e1c9ac3013c9d41e
2020-06-18 09:51:24 -07:00
Matt Joras
42bba01005 Draft-29 support.
Summary:
This implements the connection ID validation via transport parameters. Note we don't do anything with the retry transport parameter yet.

This will probably require further surgery to tests when we want the MVFST version to do this, but for now I'm punting on that test plumbing.

This retains support for h3-27.

Reviewed By: yangchi

Differential Revision: D22045631

fbshipit-source-id: e93841e734c0683655c751d808fd90b3b391eb3e
2020-06-16 17:05:41 -07:00
Matt Joras
25176175bc Randomize src and dest initial CIDs for clients.
Summary: Additionally, it's not actually valid to have an initial CID < 8 in length.

Reviewed By: lnicco

Differential Revision: D22008057

fbshipit-source-id: 4e65c8f939705d116b252199bf048da43269a663
2020-06-16 17:05:41 -07:00
Andrii Vasylevskyi
5d89358075 Add client side onRead/onPacketReceived stats callbacks
Summary: Invoking callbacks onRead and onPacketReceived in QuicClientTransport when reading UDP packets.

Reviewed By: mjoras

Differential Revision: D21904927

fbshipit-source-id: b2bdee6330a0ddebbdbe677a6779b14d36b15f07
2020-06-09 12:14:52 -07:00
Yang Chi
b18ffd1b6a Limit Quic Client close to be one close per RTT
Summary: I think this is still within specs requirement

Reviewed By: mjoras

Differential Revision: D21648049

fbshipit-source-id: 990e84740e1022955d7dd8957ce9131602536a63
2020-05-19 19:37:57 -07:00
Matt Joras
18e0bc9202 Remove MSG_WAITFORONE.
Summary: This isn't relevant for non-blocking sockets.

Reviewed By: lnicco

Differential Revision: D21492522

fbshipit-source-id: cd2c717c493f1447d39cf9eadc7013261321e119
2020-05-11 11:29:23 -07:00
Matt Joras
50d5c29346 Cipher dropping take 2
Summary:
Now we won't have a zero PTO and we will properly clear out the outstanding packets.

Note that this cipher dropping is not what the draft prescribes, instead dropping both the initial and handshake ciphers when we know 1-rtt communication is functioning.

Reviewed By: yangchi

Differential Revision: D20388737

fbshipit-source-id: 0b89eb80c8faa796ab09eda3eaa10a00dcf7bae9
2020-05-06 11:14:20 -07:00
Matt Joras
f795324507 Manually backout remove recvmsg polling.
Summary: We may have a bug in recvmmsg usage, so keep this around.

Reviewed By: lnicco

Differential Revision: D21246413

fbshipit-source-id: e39d74b8e856339d0022ba403969b83dc29ff63f
2020-04-25 15:29:45 -07:00
Matt Joras
6df3348483 Recycle recvmmsg storage
Summary:
When we can recvmmsg, we have to provide the full number of buffers we could potentially receive. This could be fewer than are actually returned. Without this diff those buffers are immediately freed. Instead store them in a vector, and reuse them the next time.

Additionally move the storage to be per-QuicClientTransport, as there is no need to recreate these each time wee call recvmmsg.

Reviewed By: yangchi

Differential Revision: D21158571

fbshipit-source-id: 21daa3d06e58b0156cc785e1ec0013773aeb4360
2020-04-21 23:29:05 -07:00
Matt Joras
fcc6efe68d Remove recvmsg polling.
Summary: This is essentially duplicated code, as if recvmmsg is not available the netops wrapper will simulate it with multiple calls.

Reviewed By: yangchi

Differential Revision: D21150890

fbshipit-source-id: 0e48e8a80f4ddc90df69c3e57cecc96dbc3f0913
2020-04-21 23:29:04 -07:00
Aman Sharma
4a7ddd92af Add "RetryPacket" QLogger event
Summary:
This adds a QLog event for Retry packets. There are three fields:
- packetType: This is always "RETRY"
- packetSize: The size of the entire packet
- tokenSize: The size of the retry token

Reviewed By: mjoras

Differential Revision: D20910017

fbshipit-source-id: feb4abbf0d15ff7b24fd11f00634e9da84bf8333
2020-04-21 13:40:53 -07:00
Dan Melnic
1cbdf1cd0a Add quic client and server GRO support
Summary: Add quic client and server GRO support

Reviewed By: mjoras

Differential Revision: D20876123

fbshipit-source-id: d32f8ea8b6ede3df56465746166907b1e1754c57
2020-04-20 13:11:56 -07:00
Matt Joras
2ea00a3439 Skip empty datagrams in recvmmsg.
Summary: The other two receive paths already do this. Our packet parsing code assumes we don't have a zero length payload.

Reviewed By: yangchi

Differential Revision: D20987674

fbshipit-source-id: d4c23b5575c64e9ef436fa9f3695d08d493a1a5a
2020-04-12 14:16:15 -07:00
Luca Niccolini
c441fab1ca setTransportStatsCallback for QUIC client transport
Summary:
client side stats

(Note: this ignores all push blocking failures!)

Reviewed By: yangchi

Differential Revision: D20858243

fbshipit-source-id: 38db4a81ce3f5700a3437372967fead532430165
2020-04-11 11:16:52 -07:00
Aman Sharma
a84d2e5fcb Make client use new stateless retry
Summary: This makes the change for the client to use stateless retries

Reviewed By: mjoras

Differential Revision: D19657433

fbshipit-source-id: d4b34087d15e49153860a7833ed54e28c6cd6777
2020-04-08 20:58:41 -07:00
Amaury Séchet
dba77af4fd Move onNewCachedPsk down to FizzClientHandshake (#118)
Summary:
This is the last step toward separating fizz from the generic client code.

Depends on https://github.com/facebookincubator/mvfst/issues/114
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/118

Test Plan:
Imported from GitHub, without a `Test Plan:` line.

 ---
## Proxygen Canary
Traffic Canary: https://our.intern.facebook.com/intern/traffic/canary?fbid=653014055531081
* elb.prod.arn2c01 - binary - 2020-04-01 11:39 - https://fburl.com/dyndash/mn1jjuu2
* flb.prod.fcgh39c01 - binary - 2020-04-01 11:39 - https://fburl.com/dyndash/xqxjihp8
* olb.prod.rrva0c01.p2 - binary - 2020-04-01 11:39 - https://fburl.com/dyndash/tgvjvt8x
* slb.prod_regional.rlla0c00 - binary - 2020-04-01 11:39 - https://fburl.com/dyndash/3v0a34l3
* slb.regional.rprn0c01.p2 - binary - 2020-04-01 11:39 - https://fburl.com/dyndash/vhzk6mp2
 ---

Reviewed By: yangchi

Differential Revision: D20748840

Pulled By: mjoras

fbshipit-source-id: 02ef07d2561e09196b0cb5bb7d22ffe7cb807fcf
2020-04-01 12:43:32 -07:00
Yang Chi
f9458d9627 Close QuicClientTransport upon read error
Summary:
When read error happens, the QuicClientTransport currently ignore it,
which means we may have a un-readable transport and keep reusnig it. This diff
close it without draining. This is behind a transprot setting flag.

Reviewed By: mjoras

Differential Revision: D20678062

fbshipit-source-id: 5253940c973dfedf8cb02fe0e4cb331ee7ce4539
2020-03-27 23:52:34 -07:00
Amaury Séchet
8efe70e953 Move getPsk uses down to FizzClientHandshake (#114)
Summary:
This is fizz dependent so it belong there.

Depends on https://github.com/facebookincubator/mvfst/issues/109 , https://github.com/facebookincubator/mvfst/issues/111 and https://github.com/facebookincubator/mvfst/issues/117
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/114

Reviewed By: mjoras

Differential Revision: D20535928

Pulled By: yangchi

fbshipit-source-id: b2b99aed45e05014f24664f9e14b57241492da19
2020-03-25 08:48:50 -07:00
Amaury Séchet
6c115007ab Do post connect update of cached server params in the handshake rather than the transport (#113)
Summary:
The cache entry contains the key itself, which is fizz dependent and crypto agnostic infos. We are moving the crypto agnostic infos to the Handshake. Next step is to move the crypto specific infos to the proper handshake subclass.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/113

Reviewed By: mjoras

Differential Revision: D20469126

Pulled By: yangchi

fbshipit-source-id: 25db463ef8d0e982ef5e47ef147e7e9b6c859cb5
2020-03-24 15:13:31 -07:00
Amaury Séchet
7a1b58e5e8 Move early app data params getter and validator to QuicConnectionStateBase (#117)
Summary:
This ensures they are available to the whole stack rather than the transport only. The validator needs it in the server case, and will soon need it in the client case, so that seems appropriate to make it available.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/117

Reviewed By: yangchi

Differential Revision: D20536366

Pulled By: mjoras

fbshipit-source-id: a76d369c0a82b9be1f985aed1f33f7a6b338a2ae
2020-03-23 10:55:01 -07:00
Amaury Séchet
bfadaf4985 Use the PskCache from the context rather than the transport (#111)
Summary:
The cache is obviously dependent on the crypto that is used. It's management needs to be moved down to part of the code that are specific to the crypto used. As a first step, we remove the cache from the transport, and use the one from the fizz context - if available - through the handshake.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/111

Reviewed By: mjoras

Differential Revision: D20463307

Pulled By: yangchi

fbshipit-source-id: c14908a10c80a977096f1ec145359f60899f8777
2020-03-18 02:58:49 -07:00
Yedidya Feldblum
ace2cc78a6 Unqualify uses of folly::AsyncUDPSocket::ReadCallback::OnDataAvailableParams
Summary: Unqualify nearly all uses of `folly::AsyncUDPSocket::ReadCallback::OnDataAvailableParams` since nearly all uses already have `OnDataAvailableParams` in scope.

Differential Revision: D20450063

fbshipit-source-id: c0fd49a7eace44a6edc8086762c44753224788dd
2020-03-16 02:57:30 -07:00
Amaury Séchet
9f91bb4b95 Move the caching of server parameters to ClientStateMachine (#109)
Summary:
All the state already moved there anyways, and this is closely related to the Psk cache management, which is also moving away from QuicClientTransport.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/109

Reviewed By: mjoras

Differential Revision: D20463300

Pulled By: yangchi

fbshipit-source-id: e9f0dc6285ccc6fd8cdc98d0e3579e6af8b00306
2020-03-15 23:57:24 -07:00
Amaury Séchet
050a584a14 Move 1RTT write cipher to the handshake. (#102)
Summary:
This is a continuation of https://github.com/facebookincubator/mvfst/issues/101
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/102

Test Plan:
Imported from GitHub, without a `Test Plan:` line.

 ---
## Proxygen Canary
Traffic Canary: https://our.intern.facebook.com/intern/traffic/canary?fbid=3593373427403977
* elb.prod.bom1c01 - binary - 2020-03-14 13:18 - https://fburl.com/dyndash/yv327msu
* flb.prod.flhe3c01 - binary - 2020-03-14 13:18 - https://fburl.com/dyndash/h8l2uq4z
* slb.prod_regional.rash0c00 - binary - 2020-03-14 13:18 - https://fburl.com/dyndash/s44dmkr4
 ---

Differential Revision: D20398160

Pulled By: mjoras

fbshipit-source-id: d9e07fce83ba14c56f2dae217dea1b8f67bffa1f
2020-03-14 16:40:17 -07:00
Dan Melnic
ba5ef797a5 Add UDP GRO support
Summary: Add UDP GRO support

Reviewed By: mjoras

Differential Revision: D20347326

fbshipit-source-id: be3c31f070c4f2c1ef84f9e2df60f49a5fcabd93
2020-03-13 10:12:22 -07:00
Amaury Séchet
3c5a3a2420 Populate QuicReadCodec's cipher from the client's handshake directly (#101)
Summary:
This is a continuation of https://github.com/facebookincubator/mvfst/issues/98 and depends on it.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/101

Test Plan:
Imported from GitHub, without a `Test Plan:` line.

 ---
## Proxygen Canary
Traffic Canary: https://our.intern.facebook.com/intern/traffic/canary?fbid=1081862622194120
* elb.prod.eze1c01 - binary - 2020-03-12 08:37 - https://fburl.com/dyndash/7zk4wokz
* flb.prod.fgdl5c03 - binary - 2020-03-12 08:37 - https://fburl.com/dyndash/cp8fkdkc
* slb.prod_regional.rprn0c00 - binary - 2020-03-12 08:37 - https://fburl.com/dyndash/j1cfe45e
 ---

Differential Revision: D20398127

Pulled By: mjoras

fbshipit-source-id: 16a7f5fab193edb25c7d241ce34fa6e710cc014f
2020-03-12 16:05:35 -07:00
Amaury Séchet
6654b307d9 Move peer advertised transport parameter to QuicClientConnectionState (#104)
Summary:
Some of these parameters are already there. The other need to be move so that the can be accessed when caching new public keys.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/104

Differential Revision: D20250783

Pulled By: mjoras

fbshipit-source-id: 3e8b6c9e8945fb5ae1ea71a8af1512bfe0616736
2020-03-12 15:17:06 -07:00
Zachary Weinberger
88e3fdadc0 Add streaming option for FileQLogger
Summary: In the constructor of FileQlogger adds a bool that sets streaming mode. If it's set it creates a thread that reads events from the log and immediatly outputs them to an output file.

Reviewed By: mjoras

Differential Revision: D20250881

fbshipit-source-id: 2af3ff0aeaa5b62f90b0c01570c96c92fdab4412
2020-03-12 13:47:35 -07:00
Amaury Séchet
ef5d39152f Move handshake write cipher to the handshake. (#98)
Summary:
This is similar to https://github.com/facebookincubator/mvfst/issues/97 and depends on it.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/98

Test Plan:
Imported from GitHub, without a `Test Plan:` line.

 ---
## Proxygen Canary
* elb.prod.hkg3c01 - binary - 2020-03-09 20:15 - https://fburl.com/dyndash/in7s8dml
* flb.prod.fbsb8c02 - binary - 2020-03-09 20:15 - https://fburl.com/dyndash/cr6myln4
* slb.prod_regional.rvll0c00 - binary - 2020-03-09 20:15 - https://fburl.com/dyndash/jaj9flmq
* slb.regional.rcln0c01.p2 - binary - 2020-03-09 20:15 - https://fburl.com/dyndash/5ezx6w63
 ---

Reviewed By: mjoras

Differential Revision: D19873742

Pulled By: sharmafb

fbshipit-source-id: 1469e36781eb7d8a0b1bf74eca45864cf208dcbd
2020-03-11 11:34:42 -07:00
Amaury Séchet
63e9b70ce6 Move 0RTT cipher management to the handshake. (#97)
Summary:
Make sure that trigger on error is performed when running connect.

This avoids some bucket brigading around the connect function and helps to isolate QuicClientTransport pskCache management, reduce the memory footprint of the handhsake and reduce temporal coupling.
Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/97

Test Plan:
Imported from GitHub, without a `Test Plan:` line.

 ---
## Proxygen Canary
Traffic Canary: https://our.intern.facebook.com/intern/traffic/canary?fbid=212582886632633
* elb.prod.sof1c01 - binary - 2020-03-04 10:31 - https://fburl.com/dyndash/cu6glbvv
* flb.prod.fisb3c02 - binary - 2020-03-04 10:31 - https://fburl.com/dyndash/qaozda7o
* olb.prod.rlla0c01.p2 - binary - 2020-03-04 10:31 - https://fburl.com/dyndash/m7des08a
* slb.prod_regional.rfrc0c00 - binary - 2020-03-04 10:31 - https://fburl.com/dyndash/j2ftlr65
* slb.regional.rlla0c01.p2 - binary - 2020-03-04 10:31 - https://fburl.com/dyndash/98by8k4u
 ---

Reviewed By: mjoras

Differential Revision: D19873714

Pulled By: sharmafb

fbshipit-source-id: 7b0980e9d2590227bec5426560f5dd5d6a34ae85
2020-03-10 11:46:19 -07:00
Victor Zverovich
96b36ec31f Make errnoStr return std::string instead of fbstring
Summary:
The result of `errnoStr` is often converted to `std::string` so returning `fbstring` adds an extra copy. Make it return `std::string` instead. This will also allow removing dependency between `String.h` and `FBString.h`.

(Note: this ignores all push blocking failures!)

Reviewed By: yfeldblum

Differential Revision: D20195395

fbshipit-source-id: 0dc65f1566911156be3fcb715dd105c58f2a8822
2020-03-10 10:49:15 -07:00
Matt Joras
ef92376cb0 Support draft-27 transport parameters
Summary:
The transport parameters format changed in draft 27. It is now self describing via varints.

This diff retains support for the old encoding and does not iterate the mvfst version.

Reviewed By: lnicco

Differential Revision: D20149977

fbshipit-source-id: c6fa9c226f859ed81ca83ada5a8bc5832b4a3388
2020-03-04 22:08:34 -08:00
Yang Chi
fa1fae0d26 Introduce empty read loop detection callback in Quic
Summary:
Similar to the exiting empty write loop callback. The new API will
trigger when we read from socket but back with empty hands.

Reviewed By: lnicco

Differential Revision: D20130432

fbshipit-source-id: 9b61310b4ea4c5c7999742c5a8761a831f20f7b7
2020-03-03 18:52:17 -08:00
Matt Joras
61cd1a7289 Back out "Implement handshake done and cipher dropping."
Summary: This caused an increase in client errors.

Reviewed By: yangchi, lnicco

Differential Revision: D20186386

fbshipit-source-id: 737122a94c97498efba61292a6c292cfe482925c
2020-03-01 18:31:40 -08:00
Matt Joras
2b3b76cc4d Remove support for MVFST_OLD.
Summary:
This eliminatees some tech debt by completely removing the notion of version from the core transport parameters structure and the app token for zero rtt.

Note that for the draft-27 changes we will need to temporarily re-introduce it, but to a different layer (the extension encoding itself).

Reviewed By: JunqiWang

Differential Revision: D20073578

fbshipit-source-id: 2b55af621566bf1c20e21dd17251116de1788fa0
2020-02-28 09:52:34 -08:00
Matt Joras
472e40a902 Implement handshake done and cipher dropping.
Summary: This implements the handshake done signal and also cipher dropping.

Reviewed By: yangchi

Differential Revision: D19584922

fbshipit-source-id: a98bec8f1076393b051ff65a2d8aae7d572b42f5
2020-02-27 12:25:52 -08:00
TJ Yin
a396f62335 Replace folly::Optional::hasValue() by has_value()
Differential Revision: D19882830

fbshipit-source-id: 031217f9890351022bc8d171f0ccd7e045dd6972
2020-02-26 08:40:44 -08:00
Luca Niccolini
39db4700c0 allow custom socket options
Summary: generic API for setting socket Options on both client and server

Reviewed By: yangchi

Differential Revision: D19763928

fbshipit-source-id: 7078eb8738aebc192bbace2498aaf9489526efff
2020-02-21 22:11:40 -08:00
Amaury Séchet
e6e6196c86 Move the delayed destruction from Handshake to QuicConnectionStateBase
Summary: Pull Request resolved: https://github.com/facebookincubator/mvfst/pull/88

Test Plan:
Imported from GitHub, without a `Test Plan:` line.

 ---
## Proxygen Canary
Traffic Canary: https://our.intern.facebook.com/intern/traffic/canary?fbid=224323975233396
* elb.prod.ham3c01 - binary_asan - 2020-02-05 02:00 - https://fburl.com/dyndash/u2q12hwq
* elb.prod.mia3c02 - binary - 2020-01-31 09:40 - https://fburl.com/dyndash/vmv34rpa
* elb.prod.otp1c01 - binary - 2020-02-05 02:26 - https://fburl.com/dyndash/0zttm61b
* flb.prod.fath4c02 - binary - 2020-02-05 02:26 - https://fburl.com/dyndash/6o1nqsti
* flb.prod.fgye3c01 - binary - 2020-01-31 09:40 - https://fburl.com/dyndash/nu3i5ahw
* olb.prod.rfrc0c01.p2 - binary - 2020-01-31 09:40 - https://fburl.com/dyndash/c1o6hpqw
* olb.prod.rftw0c01.p2 - binary - 2020-02-05 02:26 - https://fburl.com/dyndash/xg6qbyru
* slb.prod_regional.rcln0c00 - binary - 2020-02-05 02:26 - https://fburl.com/dyndash/e4qkbzcz
* slb.prod_regional.rfrc0c00 - binary - 2020-01-31 09:40 - https://fburl.com/dyndash/j0yxofty
* slb.prod_regional.rrva0c00 - binary_asan - 2020-02-05 02:00 - https://fburl.com/dyndash/4hsg02uj
* slb.regional.rfrc0c01.p2 - binary - 2020-01-31 09:40 - https://fburl.com/dyndash/1njxzbgf
* slb.regional.rvll0c01.p2 - binary - 2020-02-05 02:26 - https://fburl.com/dyndash/056xdmzn
 ---

Reviewed By: lnicco

Differential Revision: D19551142

Pulled By: mjoras

fbshipit-source-id: b0d14146d14384b8c37887b3e9d8fed7d6181d88
2020-02-05 06:13:33 -08:00
Luca Niccolini
90f0aa9665 add advertisedInitialMaxStreamsBidi and advertisedInitialMaxStreamsUni to transport params
Reviewed By: JunqiWang

Differential Revision: D19718461

fbshipit-source-id: 2a51f8e6c88663deb3a0d85402b53a9e3c1ffe61
2020-02-04 09:24:34 -08:00
Yang Chi
591f27c6f1 Remove a few quic traces
Summary:
Remove all the stream events, packet/udp recv event and ack event.
They are >40%  of  the  events.

Reviewed By: mjoras

Differential Revision: D19466165

fbshipit-source-id: 3a20b201e630527e6d25d1a14f0f520728190d50
2020-01-29 17:10:32 -08:00
Konstantin Tsoy
73eb060bfa Add recvmmsg to client
Summary: Add recvmmsg to client

Reviewed By: mjoras

Differential Revision: D18928493

fbshipit-source-id: 548a8cd2a6b7a7bbfd2ba6772816f8fae708c880
2020-01-24 22:24:31 -08:00
Udip Pant
21a7efb2e3 remove constraints of 4-bytes minimum len for connection-id
Summary:
New QUIC draft no longer has this limitation for connection-id, and allows
connid of len 0 -> 20.

This diff removes the constraints. I still kept the requirement for
*server-chosen* conn-id

Reviewed By: mjoras, lnicco

Differential Revision: D19507366

fbshipit-source-id: 4c73f45617f40b29d47d2d86b7598f6c95588d0a
2020-01-23 21:59:49 -08:00
Yang Chi
2405111e88 New QuicSocket::ConnectionCallback for first peer packet processed
Summary: as title

Reviewed By: JunqiWang

Differential Revision: D19434037

fbshipit-source-id: 7f2b6491fcce68840dc6ff57f99657dd5d535e9f
2020-01-18 13:36:04 -08:00
Yang Chi
fb999ff34b Back out "New TransportSetting option to let client deliver onTransportReady at first Ack"
Summary: Original commit changeset: 6714630c5a49

Reviewed By: mjoras

Differential Revision: D19432294

fbshipit-source-id: d756413eeed2bc50e8124abbbe750580e396e216
2020-01-17 01:45:12 -08:00