quiche: make flow control configurable#15865
Conversation
Signed-off-by: Dan Zhang <danzh@google.com>
Signed-off-by: Dan Zhang <danzh@google.com>
Signed-off-by: Dan Zhang <danzh@google.com>
Signed-off-by: Dan Zhang <danzh@google.com>
Signed-off-by: Dan Zhang <danzh@google.com>
Signed-off-by: Dan Zhang <danzh@google.com>
Signed-off-by: Dan Zhang <danzh@google.com>
Signed-off-by: Dan Zhang <danzh@google.com>
Signed-off-by: Dan Zhang <danzh@google.com>
|
CC @envoyproxy/api-shepherds: Your approval is needed for changes made to |
Signed-off-by: Dan Zhang <danzh@google.com>
Signed-off-by: Dan Zhang <danzh@google.com>
|
/retest |
|
Retrying Azure Pipelines: |
Signed-off-by: Dan Zhang <danzh@google.com>
Signed-off-by: Dan Zhang <danzh@google.com>
Signed-off-by: Dan Zhang <danzh@google.com>
|
/retest |
|
Retrying Azure Pipelines: |
Signed-off-by: Dan Zhang <danzh@google.com>
|
/assign @antoniovicente @alyssawilk |
|
Retrying Azure Pipelines: |
|
/retest |
|
Retrying Azure Pipelines: |
|
@antoniovicente you still doing passes here or should I take this back now I've returned? |
antoniovicente
left a comment
There was a problem hiding this comment.
I think this looks good except for a few nits. Off to you.
| *dispatcher_, | ||
| /*send_buffer_limit=*/2 * | ||
| Http3::Utility::OptionsLimits::DEFAULT_INITIAL_STREAM_WINDOW_SIZE); | ||
| // Use smaller window then the configured one to have test coverage of client codec buffer |
There was a problem hiding this comment.
change "configured" to "default"
alyssawilk
left a comment
There was a problem hiding this comment.
Looks great! Thanks for first pass Antonio - I literally had to delete 2 comments when I saw you'd asked the same questions already :-P
| void EnvoyQuicClientStream::encodeMetadata(const Http::MetadataMapVector& /*metadata_map_vector*/) { | ||
| // Metadata Frame is not supported in QUIC. | ||
| // TODO(danzh): add stats for metadata not supported error. | ||
| ENVOY_BUG(false, "METADATA is not supported in Http3."); |
There was a problem hiding this comment.
I think HTTP/1.1 just swallows it with a stat increase. I'd mildly prefer that to crashing in debug mode.
There was a problem hiding this comment.
okay, I downgrade it to debug log and incremented the stats.
| ->config() | ||
| ->GetInitialSessionFlowControlWindowToSend()); | ||
| // IETF Quic supports low flow control limit. But Google Quic only supports flow control window no | ||
| // smaller than 16kB. |
There was a problem hiding this comment.
do we have a test for setting below 16k making sure that gQUIC ends up 16k? Basically if "upstream" ever changes the default I'd like to make sure we catch it.
|
|
||
| // Adjust the upstream route with larger timeout if running tsan. This is the duration between | ||
| // whole request being processed and whole response received. | ||
| static void adjustUpstreamTimeoutForTsan( |
There was a problem hiding this comment.
Can you file a tracking bug for this one? I'm concerned about QUIC being slower, both on tsan and not and I'd like us to look into it at some point.
Signed-off-by: Dan Zhang <danzh@google.com>
alyssawilk
left a comment
There was a problem hiding this comment.
LGTM, modulo any remaining comments from Antonio :-)
|
(oh, and making sure CI is happy) |
|
Windows CI fails with irrelevant test, filed #16214 |
|
/retest |
|
Retrying Azure Pipelines: |
|
/retest |
|
Retrying Azure Pipelines: |
antoniovicente
left a comment
There was a problem hiding this comment.
Looks good. Thanks Dan.
|
Argh, looks like this conflicts with the headers PR. Can you do a main merge, and we'll need another stamp from @envoyproxy/api-shepherds but otherwise this is good to go! |
Signed-off-by: Dan Zhang <danzh@google.com>
ef1f953
Signed-off-by: Dan Zhang <danzh@google.com>
Signed-off-by: Dan Zhang <danzh@google.com>
Commit Message: Add initial stream and connection level flow control windows to envoy.config.core.v3.QuicProtocolOptions which is be used in QUIC listener config and Http3 upstream cluster config. Risk Level: low Testing: re-enable more Http3 downstream protocol test. Part of envoyproxy#2557 envoyproxy#12930 envoyproxy#14829 Signed-off-by: Dan Zhang <danzh@google.com> Co-authored-by: Dan Zhang <danzh@google.com> Signed-off-by: Gokul Nair <gnair@twitter.com>
Commit Message: Add initial stream and connection level flow control windows to envoy.config.core.v3.QuicProtocolOptions which is be used in QUIC listener config and Http3 upstream cluster config. Risk Level: low Testing: re-enable more Http3 downstream protocol test. Part of envoyproxy#2557 envoyproxy#12930 envoyproxy#14829 Signed-off-by: Dan Zhang <danzh@google.com> Co-authored-by: Dan Zhang <danzh@google.com> Signed-off-by: Gokul Nair <gnair@twitter.com>
Commit Message: Add initial stream and connection level flow control windows to envoy.config.core.v3.QuicProtocolOptions which is be used in QUIC listener config and Http3 upstream cluster config. Risk Level: low Testing: re-enable more Http3 downstream protocol test. Part of envoyproxy#2557 envoyproxy#12930 envoyproxy#14829 Signed-off-by: Dan Zhang <danzh@google.com> Co-authored-by: Dan Zhang <danzh@google.com> Signed-off-by: Gokul Nair <gnair@twitter.com>
Commit Message: Add initial stream and connection level flow control windows to envoy.config.core.v3.QuicProtocolOptions which is be used in QUIC listener config and Http3 upstream cluster config.
Risk Level: low
Testing: re-enable more Http3 downstream protocol test.
Part of #2557 #12930 #14829