2178 Commits

Author SHA1 Message Date
Dirkjan Ochtman 88cca7890c Fix bounds 2020-04-28 16:47:23 +02:00
Dirkjan Ochtman a98d8fe4dd wip 2020-04-27 14:32:10 +02:00
Dirkjan Ochtman 943da5771c Tweaks to error types 2020-04-27 14:31:59 +02:00
stammw 71e78c046c H3: refactor header receiving code into RecvData 2020-04-26 11:57:39 +02:00
stammw 057e988cb6 H3: restore canceling API 2020-04-26 11:57:39 +02:00
stammw bf066504f5 H3: remove old Body IO structs 2020-04-26 11:57:39 +02:00
stammw 0b1600516c H3: HttpBody implementation on the receive side 2020-04-26 11:57:39 +02:00
stammw 4ed5b988e3 H3: remove old Body struct 2020-04-26 11:57:39 +02:00
stammw ab8b29ed20 H3: rewrite client to use SendData<HttpBody, _> 2020-04-26 11:57:39 +02:00
stammw 24ec32cd94 H3: spurious reformat 2020-04-26 11:57:39 +02:00
stammw 71fb7a410a H3: poll method for header decoding 2020-04-26 11:57:39 +02:00
stammw 3940340853 H3: make streams reset() take &mut, not ownership 2020-04-26 11:57:39 +02:00
stammw 268db0b0a9 H3: HttpBody server integration in SendRequest 2020-04-26 11:57:39 +02:00
stammw 0b00b3d4a3 H3: helper to create HttpBody impl from bytes 2020-04-24 12:42:47 +02:00
stammw d964ac94fd H3: accept any type of error for body Polling
This is perparing the HttpBody integration: Error::Body(HttpBody::Error)
2020-04-24 12:42:47 +02:00
stammw 9f4f3f83a3 H3: make payload-frames carry a Buf impl
The HttpBody trait make use of `bytes::Buf` to reference the data. As
the code was holding `Bytes`, a copy would have been necessary.
Introduces a parameter type bound on Buf instead of Bytes for
payload-frames transmits.
2020-04-24 12:42:42 +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