Commit Graph

2620 Commits

Author SHA1 Message Date
Dirkjan Ochtman a7a54bd778 Encode stream frames from inside Streams 2020-04-28 13:06:10 -07:00
Dirkjan Ochtman 9693504d94 Derive Default for Recv 2020-04-28 13:06:10 -07:00
Dirkjan Ochtman 403702c643 Derive Default for Assembler 2020-04-28 13:06:10 -07:00
Dirkjan Ochtman 1c45dfdeac Derive Default for SendBuffer 2020-04-28 13:06:10 -07:00
Dirkjan Ochtman f6904d6140 Apply suggestions from clippy 2020-04-25 09:43:13 -07:00
Dirkjan Ochtman 3a414cc288 Prevent rustfmt from mucking with macro call style 2020-04-25 09:43:13 -07:00
Jesse Lucas 11a7c77992 Add usage documentation to quinn/examples/server.rs 2020-04-25 18:06:04 +02:00
Benjamin Saunders ddc8d432e6 Fix broken doc link 2020-04-22 06:58:01 +02:00
Benjamin Saunders 8200c97522 Set FIN bit on all eligible stream frames
Improves performance when a frame bearing a FIN is lost but the loss
is not detected until after a trailing segment of data is
retransmitted due to prior loss.
2020-04-19 14:10:57 -07:00
Benjamin Saunders 8c0db7466a Simplify tracking of stream data acknowledgement completeness 2020-04-19 14:10:57 -07:00
Benjamin Saunders 703ab27cc6 Clarify logic when a blocked or finishing stream is stopped 2020-04-19 14:10:57 -07:00
Benjamin Saunders 1533cc45b1 Rearrange Streams methods 2020-04-19 14:10:57 -07:00
Benjamin Saunders 7c15b939dc Move connection-level flow control into streams module 2020-04-19 14:10:57 -07:00
Benjamin Saunders 784b40f4d4 Move stream finish logic into streams module 2020-04-19 14:10:57 -07:00
Benjamin Saunders 094029b7cc Privatize streams::Send.pending 2020-04-19 14:10:57 -07:00
Benjamin Saunders 4deb982483 Move stream-level flow control logic into streams module 2020-04-19 14:10:57 -07:00
Benjamin Saunders 6c1673104d Move stream transmit logic into Streams 2020-04-19 14:10:57 -07:00
Benjamin Saunders cb6c35526f Move stream frame ACK handling into Streams 2020-04-19 14:10:57 -07:00
Benjamin Saunders 14bd135d56 Buffer outgoing data separately per stream 2020-04-19 14:10:57 -07:00
Benjamin Saunders f757bfbb7e Update send window to account for reset streams immediately
Frees resources sooner and opens the way for per-stream send buffers
without compromising send window tracking when streams are destroyed.
2020-04-19 14:10:57 -07:00
Benjamin Saunders d438d9a041 Move stream send buffer into Streams 2020-04-19 14:10:57 -07:00
Benjamin Saunders 6c41446849 Move reset state transitions into streams module 2020-04-19 14:10:57 -07:00
Benjamin Saunders 71866632d5 More detailed logging for finish_acked test 2020-04-19 14:10:57 -07:00
Benjamin Saunders 632fba7d20 Clarify comment 2020-04-19 14:10:57 -07:00
stammw b524f6ac4c H3: request benchmarks 2020-04-19 21:47:53 +02:00
stammw 2aa424a3ce H3: impl default for bench context 2020-04-19 21:47:53 +02:00
stammw 10cde920f6 H3: build benchmark context with settings 2020-04-19 21:47:53 +02:00
stammw f3cc67601f H3: isolate throughput bench and helpers 2020-04-19 21:47:53 +02:00
stammw 963695db1d H3: upload benchmarks 2020-04-19 21:47:53 +02:00
stammw d6c290a641 H3: rename bench throughput -> download 2020-04-19 21:47:53 +02:00
stammw 050b6fdc3f H3: orthogonal bench server spawner 2020-04-19 21:47:53 +02:00
Dirkjan Ochtman 2bb4198b5b Replace bitlab dependency with homegrown bit twiddling
bitlab was a bit of an odd dependency, providing some convenience
wrappers for writing bits across byte slices. It additionally
pulled in the num crate. Replace it by writing our own version of
the bit reading/writing routines, which should amount to much less
code and is more optimized for our use case since a number of
checks can be elided and it has a simpler error path.
2020-04-19 10:57:51 -07:00
Dirkjan Ochtman 883148eb87 Remove unnecessary type annotations 2020-04-19 10:57:51 -07:00
stammw 8647b5c089 interop: send Alt-Svc from h2 and h1
This make browser talk to us in HTTP/3 !
2020-04-19 18:41:26 +02:00
stammw 690c29f135 H3: let the OS choose bench ports 2020-04-18 14:46:29 -07:00
stammw 416cca0935 H3: Fix comment style 2020-04-18 14:46:29 -07:00
stammw a1d538c7d3 H3: kill the server, fix bench 2020-04-18 14:46:29 -07:00
stammw 739719f884 H3: bench factorize server 2020-04-18 14:46:29 -07:00
stammw 3ec3612982 interop: doc for qif tool 2020-04-18 20:59:50 +02:00
stammw b3f9288c29 interop: rewrite qif tool error management 2020-04-18 20:59:50 +02:00
stammw a6398ddf1d interop: fix qif clippy warnings 2020-04-18 20:59:50 +02:00
stammw ea8237209f interop: make qif tool catch up qpack API 2020-04-18 20:59:50 +02:00
stammw 92123dc0c5 interop: make h2 accept self-signed certs 2020-04-15 19:54:30 +02:00
Benjamin Saunders 3a6d5fb480 Always run core test on its own 2020-04-14 11:02:28 +02:00
Benjamin Saunders 0191950331 Take IP address from opts rather than hardcoding IPv4 wildcard 2020-04-14 11:02:28 +02:00
stammw 48e2e80ac9 interop: custom header for dyn encoding from server 2020-04-14 10:07:43 +02:00
stammw 30c4e5fcfb interop: client d test 2020-04-14 10:07:43 +02:00
stammw 7f7354666c interop: h3 remembers decoding with a QPACK dyn ref 2020-04-14 10:07:43 +02:00
Benjamin Saunders b8c5eae443 Don't block application writes on congestion
May provide more consistent performance.
2020-04-14 07:29:59 +02:00
Benjamin Saunders c2b2446913 Make congestion tests independent of write blocking 2020-04-14 07:29:59 +02:00