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

67 Commits

Author SHA1 Message Date
Udip Pant
024bbbba29 retry few times if there's a conflict in takeover handler address
Reviewed By: sharma95

Differential Revision: D17403844

fbshipit-source-id: 3084335be30e2376a6888ba24e21aa63bb040e3e
2019-11-18 11:05:36 -08:00
Yang Chi
97cfde6af3 Remove Quic transport from source address map after usage of Cid data
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
2019-11-01 11:32:25 -07:00
Konstantin Tsoy
553352c2e5 Always create pacer timer on server worker start
Summary: Always create pacing timer on server worker start.

Reviewed By: yangchi

Differential Revision: D18231097

fbshipit-source-id: 598bf6f746f3b07020fa9336ebe33ba2283767e1
2019-10-31 11:19:17 -07:00
Viktor Chynarov
27536bc1e4 Delete all transport connIds from server connIdMap on unbound [3/3]
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
2019-10-09 08:25:07 -07:00
Yang Chi
6b41822007 Fix use after free in QuicServerWorker
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
2019-10-02 23:00:49 -07:00
Udip Pant
e3b792e7f1 set IP_PMTUDISC_PROBE instead of dontFragment (i.e. PMTUDISC_DO)
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
2019-09-27 13:14:33 -07:00
Viktor Chynarov
2bd01800f3 Use set of transports instead of connIdMap for server shutdown [2/x]
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
2019-09-27 07:57:44 -07:00
Viktor Chynarov
4ace4b5c21 Create helper for version negotiation in QuicServerWorker [2/x]
Summary: Simplify a bit of the server handling logic.

Reviewed By: sharma95

Differential Revision: D17194278

fbshipit-source-id: 356b3e2673d5befead571b2d0bae8418fb9629da
2019-09-25 14:26:55 -07:00
Udip Pant
e22d2df950 avoid possibility of loop during packet forwarding
Reviewed By: lnicco

Differential Revision: D17401129

fbshipit-source-id: db255f313311acd462e7bee1a33c45191ef8c3df
2019-09-19 17:14:53 -07:00
Viktor Chynarov
b9bbc0d858 Remove clientConnId from ServerConnIdParams
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
2019-08-19 15:04:14 -07:00
Bonnie Xu
61bf94680a add QUIC_STATS for Stateless Reset
Summary: Added QUIC_STATS for stateless reset.

Reviewed By: afrind

Differential Revision: D16679632

fbshipit-source-id: a80179fd4f2f9b2cb1297af47687b4b8a190de84
2019-08-16 16:24:56 -07:00
Konstantin Tsoy
41d4c6afbe Add run-time partial reliability setting override
Summary: Enable/disable partial reliability in transport settings of a QUIC server run-time.

Reviewed By: yangchi

Differential Revision: D16135672

fbshipit-source-id: 93c1175263ec03dc707764520ee73c1c2fd449c9
2019-07-08 22:12:33 -07:00
Aman Sharma
a38d9157fd Plumbing to override transport parameters
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
2019-06-24 14:31:23 -07:00
Bonnie Xu
2762cc1597 Setup stateless reset token
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
2019-06-13 08:44:53 -07:00
Leonidas Kontothanassis
ddc845a855 Add connection drop logic for QUIC
Summary: Add connection drop logic for QUIC

Reviewed By: mjoras

Differential Revision: D15361528

fbshipit-source-id: 55d9bf9d818786f23c9c6d600ca928ba7b265d4f
2019-05-23 10:03:18 -07:00
udippant
163ce02a6f Sync changes to rename onNewStream and CongestionController factory 2019-04-24 17:44:31 -07:00
udippant
50d4939e9e Initial commit of mvfst 2019-04-22 23:42:46 -07:00