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