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

20 Commits

Author SHA1 Message Date
Andrii Vasylevskyi
8e785bbfc2 Add -Wextra-semi compiler flag
Summary: Cleaned up extra semicolons for compatibility with other projects enforcing the flag, included flag in build

Reviewed By: lnicco, JunqiWang

Differential Revision: D21794945

fbshipit-source-id: ae2ee637aadeef35a99d89f9b8deaa2e7d636ed7
2020-05-30 07:39:59 -07:00
Matt Joras
30bff94e85 Introduce new connection rate limits.
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
2020-05-18 16:40:43 -07:00
Udip Pant
72bd5ba5bf keep worker-id and socket-id in sync with the given order of worker threads
Reviewed By: dddmello, lnicco

Differential Revision: D20240116

fbshipit-source-id: a85049d6cbc3a20c8cc86d70d6715f31384895be
2020-04-12 00:33:24 -07:00
Luca Niccolini
5ca21a5278 rename infoCallback to statsCallback
Summary:
```
find ./quic | xargs -I{} sed -i "s/infoCallback/statsCallback/g" {}
find ./quic | xargs -I{} sed -i "s/InfoCallback/StatsCallback/g" {}
```

(Note: this ignores all push blocking failures!)

Reviewed By: mjoras

Differential Revision: D20860675

fbshipit-source-id: 4fe99a375b5983da51b6727d7f40788f89083ab3
2020-04-11 11:16:51 -07:00
Luca Niccolini
f7d2680483 QuicStatsFactory does not depend on evb
Summary: cleanup unused extra argument

Reviewed By: dddmello

Differential Revision: D20884241

fbshipit-source-id: 5de241e5cff0c79b13f170f5764cb8c62dd4eeab
2020-04-08 14:40:07 -07: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
Yang Chi
5f51f4436f Exception-free Quic ConnIdAlgo
Summary: no more surprises in upper layer

Reviewed By: mjoras

Differential Revision: D19976510

fbshipit-source-id: 3487e9aa2cb28d7bc748f13bc2bbc393216b4a8a
2020-02-19 15:54:11 -08:00
Udip Pant
5478be7a65 make sure all workers bind to the same address when using
Summary:
This is a bug where each worker can potentially bind to different address if no
address is supplied

Reviewed By: mjoras

Differential Revision: D19533888

fbshipit-source-id: 6f1258f09564d44ebb9843789d441c1fdecbdacc
2020-01-28 13:37:01 -08:00
Udip Pant
887e3b467b synchronously run operations on QuicServer to start / stop packet forwarding
Summary:
The async nature of the set up results in flakiness in unit tests.
For example, in QuicServerTest::TakeoverTest, clients send packets to server
right after setup, such as start / stop packetForwarding or pauseReads()
On the other hand, making them synchronous should be fine, since these are
called only during startup

Reviewed By: yangchi

Differential Revision: D19343423

fbshipit-source-id: 43cc169983d7f764b74c87f2188a9f8372007d84
2020-01-10 12:12:16 -08:00
Udip Pant
ba79292fa9 reset existing (takeover) socket when rebinding to different address
Reviewed By: afrind

Differential Revision: D18925452

fbshipit-source-id: dc431cbf899eb8e21a18d421a640e4f0649743cb
2019-12-20 17:29:28 -08:00
Subodh Iyengar
ed15255982 deliver evb data immediately
Summary:
If we are on the evb, process the packet on the evb immediately.

Previously evb would schedule a runInLoop in another event loop.
This saves 1 event loop to be able to process a packet in the common
case.

Reviewed By: mjoras

Differential Revision: D18897493

fbshipit-source-id: 91c073ae0aef58e999f001e64f13612c3788869f
2019-12-09 23:16:59 -08:00
Udip Pant
80b3a9f393 add more checks for internally forwarded data
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
2019-11-18 11:05:36 -08:00
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
Konstantin Tsoy
f5c9737766 Add a transport settings getter to QUIC server
Summary: Add a transport settings getter to QUIC server.

Reviewed By: udippant

Differential Revision: D16786324

fbshipit-source-id: 8dabed4a3ff13dac0bafc4850c546657a9c2fd6f
2019-08-13 17:37:20 -07:00
Yang Chi
9d146d7bcf Do not crash if worker evb isn't running when shutdowning QuicServer
Summary:
Currently this check is will fail if worker evb isn't running yet. I'm
changing it so that if worker evb isn't running, just let it pass.

Reviewed By: mjoras

Differential Revision: D16668689

fbshipit-source-id: ad0873f0eb1c2824d3ea143b9f08f3efdb890a45
2019-08-07 21:07:44 -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
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