Summary:
Before any CID is available, the source address routing
table might be the only owner of the transport. Removing the transport from
there deletes the transport. connectionIdData param is a const ref to a member
of the connection state owned by the transport. So deleting transport also
deletes this vector, which makes the const ref invalidated.
Reviewed By: vchynarov
Differential Revision: D18253200
fbshipit-source-id: 728b15d0872164ba6549a32e10a5a3611e808f27
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:
If the server connection is never generated, source address map may
have the only shared_ptr to the transport. Erase from the map then use the
transport is clearly a use-after-free bug.
Reviewed By: udippant, lnicco
Differential Revision: D17733297
fbshipit-source-id: 80d141293458920a0ba6c5eaed14dcbeec17d3ff
Summary:
mvfst will need to handle pmtu in an app specific way. So just set DF bits but
not pmtu.
Reviewed By: siyengar
Differential Revision: D17624134
fbshipit-source-id: 14f445bbb6a971efb8a3d550c84c3d4af53f8517
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:
This parameter duplicates the one in the QuicConnectionStateBase.
It is set everywhere the canonical one is, and it isn't used directly in any
manner that is separate from QuicConnectionStateBase::clientConnId.
This diff changes the following:
* removed clientConnId from ServerConnIdParams
* add setter to directly initialize clientConnId on the transport from the
connection
* update tests
Reviewed By: udippant
Differential Revision: D16711180
fbshipit-source-id: 63e667aa0df8a79757f18fb3ffc178c7c9613e1a
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