-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
quiche: make quic proof source and crypto stream pluggable #16658
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>
Signed-off-by: Dan Zhang <danzh@google.com>
/assign @alyssawilk |
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>
@@ -48,4 +63,12 @@ message QuicProtocolOptions { | |||
// bound by 6000, regardless of this field or how many connections there are. | |||
google.protobuf.UInt32Value packets_to_read_to_connection_count_ratio = 5 | |||
[(validate.rules).uint32 = {gte: 1}]; | |||
|
|||
// The crypto server stream implementation used for this listener. | |||
// If not specified the :ref:`QUICHE defaul one<envoy_v3_api_field_extensions.quic.v3.CryptoServerStreamConfig>` will be used. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: should this say "default" instead of "defaul"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
@@ -48,4 +63,12 @@ message QuicProtocolOptions { | |||
// bound by 6000, regardless of this field or how many connections there are. | |||
google.protobuf.UInt32Value packets_to_read_to_connection_count_ratio = 5 | |||
[(validate.rules).uint32 = {gte: 1}]; | |||
|
|||
// The crypto server stream implementation used for this listener. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this the C++ name of a class, or something else?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, added quic class names instead.
Signed-off-by: Dan Zhang <danzh@google.com>
Signed-off-by: Dan Zhang <danzh@google.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
API looks good, but one question to verify that this is intentional:
Why do you set the extension name to be different than the extension path in both extensions (e.g., you use envoy.quic.server.crypto_stream.quiche
instead of envoy.quic.crypto_stream
)?
Yes, that's intentional. "server" and "quiche" is the unique to this extensions. We might add client or non-quiche-default extensions in the future. |
/retest |
Retrying Azure Pipelines: |
Signed-off-by: Dan Zhang <danzh@google.com>
And I will fix their ordering as a follow up. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm api
Can this be merged? |
import "envoy/config/core/v3/protocol.proto"; | ||
|
||
import "google/protobuf/any.proto"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is unused - could you remove it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@danzh2010 ive added a couple of docs nits
@@ -48,4 +50,14 @@ message QuicProtocolOptions { | |||
// bound by 6000, regardless of this field or how many connections there are. | |||
google.protobuf.UInt32Value packets_to_read_to_connection_count_ratio = 5 | |||
[(validate.rules).uint32 = {gte: 1}]; | |||
|
|||
// Configure which implementation of quic::QuicCryptoClientStreamBase to be used for this listener. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
could you surround quic::QuicCryptoClientStreamBase
with ``
as its a literal
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
// [#extension-category: envoy.quic.server.crypto_stream] | ||
core.v3.TypedExtensionConfig crypto_stream_config = 6; | ||
|
||
// Configure which implementation of quic::ProofSource to be used for this listener. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please make quic::ProofSource
a literal also
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm api
Signed-off-by: Dan Zhang <danzh@google.com>
Signed-off-by: Dan Zhang <danzh@google.com>
/lgtm api |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Looks like CI flaked though - I'll kick off another run but feel free to ping me if you notice it's green before I do :-)
…y#16658) Commit Message: make quic proof source and crypto streams extensions. Add config for default ones. If not specified in config, the default ones will be used. Risk Level: low Testing: existing tests passed Part of envoyproxy#2557 Co-authored-by: Dan Zhang <danzh@google.com>
Commit Message: make quic proof source and crypto streams extensions. Add config for default ones. If not specified in config, the default ones will be used.
Risk Level: low
Testing: existing tests passed
Part of #2557