Summary:
This introduces a rate limit to new connections created by a worker.
Right now it will simply send a VN, but eventually this will only issue a RETRY for unverified initials.
Reviewed By: udippant
Differential Revision: D21614905
fbshipit-source-id: 1832fbdad525c53fb1cb810aa9d7bae868c267d6
Summary: Extract out logging of all relavent routing info into a separate method
Reviewed By: sharmafb
Differential Revision: D21217339
fbshipit-source-id: 7982a4d9a3f3549a470e543e0a14aac1c6dec5f0
Summary: This can happen more often than we'd like, and there's no reason to force throwing the exception when we can instead validate the length first.
Reviewed By: udippant
Differential Revision: D20770869
fbshipit-source-id: 93e2349b02d6d2067f345b5fa9decee800c84ea6
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
Summary:
The CID Algo can possibly generate a CID that's already in the map.
This diff adds a mechanism to reject such CID and try another one.
ServerStateMachine will loop encoding CIDs until either QuicServerWorker no
longer rejects, or encode fails
Reviewed By: udippant, vchynarov
Differential Revision: D20251043
fbshipit-source-id: a38e4e8b33007779a9710c32057d47f32f7d1774
Summary: generic API for setting socket Options on both client and server
Reviewed By: yangchi
Differential Revision: D19763928
fbshipit-source-id: 7078eb8738aebc192bbace2498aaf9489526efff
Summary: We've seen good results with F14, and while these don't show up much in profiles, there's not much reason to keep them as the STL variants.
Reviewed By: yangchi
Differential Revision: D18702489
fbshipit-source-id: 829f7e17107a8962cd7b4dad9b3b5e3df01318e6
Summary:
This adds checks for forwarded data on all the possible branches that lead to
forwarding of packets to another process
Reviewed By: mjoras
Differential Revision: D18416971
fbshipit-source-id: 22dc3fd63de615904a411f90164a138bf0ef56e0
Summary:
This diff is the one that introduces+passes the test of multiple server conn
ids routing to a single transport.
Currently, there is still only one time in non-test code that more than one
server connection id is added. This diff ensures when we call connectionUnbound
we remove all associated connection ids.
Reviewed By: udippant
Differential Revision: D17479563
fbshipit-source-id: 8d0ebbf26251f7bef44cdea53dfd4ff93ab465ae
Summary:
Currently, there is a 1:1 relationship between conn Id and transports. So for
all connections with a bound connection id, we iterate over all
connectionIdMap_ entries and delete the associate transport.
This won't work if connectionIdMap_ will map multiple conn ids to a single
transport.
Reviewed By: JunqiWang
Differential Revision: D17456965
fbshipit-source-id: 8923540abf205cfd10ad09d637e8c05790b4acf9
Summary: Simplify a bit of the server handling logic.
Reviewed By: sharma95
Differential Revision: D17194278
fbshipit-source-id: 356b3e2673d5befead571b2d0bae8418fb9629da
Summary: Enable/disable partial reliability in transport settings of a QUIC server run-time.
Reviewed By: yangchi
Differential Revision: D16135672
fbshipit-source-id: 93c1175263ec03dc707764520ee73c1c2fd449c9
Summary:
I've added in some plumbing to enable us to override transport settings based on a specific `(datacenter, vip, server port, client prefix)` tuple.
+-------------------------------------+
| HTTPRevProxyService |
+-------------------------------------+
| Get the vip name, the datacenter,
| and the server port. Create a lambda that
| takes in the client IP address and applies
V overrides to the transport settings.
+-------------------------------------+
| ProxygenHQServer |
+-------------------------------------+
|
| Pass on the lambda
|
V
+-------------------------------------+
| QuicServer |
+-------------------------------------+
|
| Pass on the lambda
|
V
+-------------------------------------+
| QuicServerWorker |
+-------------------------------------+
| Call the lambda (passing in the
| client IP address) when we create
| a QuicSocket, and set the transport
V settings apprpriately
+-------------------------------------+
| QuicServerTransport |
+-------------------------------------+
Reviewed By: udippant
Differential Revision: D15227915
fbshipit-source-id: 23c94aa558b381eae13f98ae06c6a97125c1a071
Summary: Replace hard coded stateless reset token with a token from the stateless reset token generator.
Reviewed By: yangchi
Differential Revision: D15481858
fbshipit-source-id: 30c96843c38c616600466b2fabb6defd5fcc5799