-
Notifications
You must be signed in to change notification settings - Fork 5.3k
quiche: quic client codec and setup integration test #8496
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
Merged
Merged
Changes from all commits
Commits
Show all changes
89 commits
Select commit
Hold shift + click to select a range
edfbf4b
merged all commits
danzh1989 f574a58
fix mem slice warning
danzh1989 5cc1622
remove broken include
danzh1989 469dc2a
cryptoConnect
danzh1989 68b6501
fix xfcc test
danzh1989 3a42546
remove stream libs
danzh1989 c0ede9a
fix asan
danzh1989 3e39fbe
revert non-HCM change
danzh1989 d7c610b
Revert "revert non-HCM change"
danzh1989 013701b
Merge branch 'master' into quicintegration
danzh1989 95eb51d
revert HCM, client and integration test
danzh1989 c4d2bad
Revert "revert HCM, client and integration test"
danzh1989 e040f72
remove unrelated change
danzh1989 29128aa
fix asan
danzh1989 31340f2
typo
danzh1989 88ebd06
add test for readDisable
danzh1989 8a2740d
rename var
danzh1989 e43a1fe
typo
danzh1989 438a8d7
bufferLimit
danzh1989 4056e85
typo
danzh1989 b6b10ac
add more
danzh1989 f7eb6e3
adjust send buffer threshold, modify doc
danzh1989 75e36e0
above watermark upon stream creation
danzh1989 92068a4
fix clang_tidy
danzh1989 c6c2177
typo
danzh1989 6175a34
remove debug log
danzh1989 35d4539
add test for simulated buffer
danzh1989 2c3551c
Merge branch 'master' into quicintegration
danzh1989 1200a32
watermark for each stream
danzh1989 07400f2
fix proto error
danzh1989 b06844f
doc
danzh1989 6c53df8
Merge branch 'master' into quicencode
danzh1989 8d637bc
add test util
danzh1989 20fe85c
add test util
danzh1989 484ffba
fix typos in doc
danzh1989 e967b46
add test for client stream and session
danzh1989 90a6953
improve comment
danzh1989 bddb942
code cleanup in test
danzh1989 3cad65e
Merge branch 'master' into quicencode
danzh1989 81e2fa9
fix quiche_copts
danzh1989 e1436e5
Merge branch 'master' into quicintegration
danzh1989 9f00be6
add quic codec factory
danzh1989 497cf1e
fix clang format
danzh1989 00fceea
fix client stream test
danzh1989 9b72210
remove AtMost EXPECT_CALL
danzh1989 6c03488
comment in watermark buffer
danzh1989 86c8ec1
comment about buffer limit
danzh1989 a23de7f
fix namespace
danzh1989 6f33c26
format
danzh1989 e1e9fa4
add tracking issue
danzh1989 2d7f6ac
comments
danzh1989 dddd250
Merge branch 'quicencode' into quicintegration
danzh1989 c3b2133
fix readDisable test
danzh1989 c37b29d
remove ConnectionPtr
danzh1989 783850b
Merge branch 'master' into quicintegration
danzh1989 552c3bd
code clean up
danzh1989 3a713db
fix typo
danzh1989 669a5f7
add category
danzh1989 1852966
Merge branch 'master' into quicintegration
danzh1989 2be9d32
use readPacketsFromSocket
danzh1989 adeb9b4
seperate codec factory
danzh1989 afb85f5
add alarm test
danzh1989 b77973b
move blocking event loop to IntegrationCodecClient
danzh1989 e193ebb
metadata no-op
danzh1989 8033b1e
remove dynamic_cast
danzh1989 34bdc2d
typo
danzh1989 6c5f5bf
Merge branch 'master' into quicintegration
danzh1989 65bf87e
Merge branch 'master' into quicintegration
danzh1989 391704c
udp listener test
danzh1989 9e8e2c7
Merge branch 'master' into quicintegration
danzh1989 183a1f9
debug udp listener test
danzh1989 476e52f
debug coverage test
danzh1989 9c762c6
fix quic namespace
danzh1989 e770972
adjust client handshake idle timeout
danzh1989 5036296
debug coverage test
danzh1989 0850f1a
coverage test
danzh1989 a28f76b
Merge branch 'master' into quicintegration
danzh1989 05f33c4
fix client side
danzh1989 3840dce
fix interface change
danzh1989 b52be05
adjust coverage log level
danzh1989 bcbc147
re-enable trace logging in coverage test
danzh1989 b10639f
revert bazel coverage script
danzh1989 2855ae9
disable quic logging
danzh1989 a2282a4
revert handshake timeout to 5s
danzh1989 bf2669e
Merge branch 'master' into quicintegration
danzh1989 88780bb
address comments
danzh1989 88530b2
revert bazelrc
danzh1989 1a42c05
factory rename
danzh1989 cd58540
typo
danzh1989 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| licenses(["notice"]) # Apache 2 | ||
|
|
||
| load( | ||
| "//bazel:envoy_build_system.bzl", | ||
| "envoy_cc_library", | ||
| "envoy_package", | ||
| ) | ||
|
|
||
| envoy_package() | ||
|
|
||
| envoy_cc_library( | ||
| name = "quic_codec_factory_lib", | ||
| hdrs = ["quic_codec_factory.h"], | ||
| deps = ["//include/envoy/http:codec_interface"], | ||
| ) | ||
|
|
||
| envoy_cc_library( | ||
| name = "well_known_names", | ||
| hdrs = ["well_known_names.h"], | ||
| deps = ["//source/common/singleton:const_singleton"], | ||
| ) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,38 @@ | ||
| #pragma once | ||
|
|
||
| #include <string> | ||
|
|
||
| #include "envoy/http/codec.h" | ||
| #include "envoy/network/connection.h" | ||
|
|
||
| namespace Envoy { | ||
| namespace Http { | ||
|
|
||
| // A factory to create Http::ServerConnection instance for QUIC. | ||
| class QuicHttpServerConnectionFactory { | ||
| public: | ||
| virtual ~QuicHttpServerConnectionFactory() {} | ||
|
|
||
| virtual std::string name() const PURE; | ||
|
|
||
| virtual std::unique_ptr<ServerConnection> | ||
| createQuicServerConnection(Network::Connection& connection, ConnectionCallbacks& callbacks) PURE; | ||
|
|
||
| static std::string category() { return "quic_client_codec"; } | ||
| }; | ||
|
|
||
| // A factory to create Http::ClientConnection instance for QUIC. | ||
| class QuicHttpClientConnectionFactory { | ||
| public: | ||
| virtual ~QuicHttpClientConnectionFactory() {} | ||
|
|
||
| virtual std::string name() const PURE; | ||
|
|
||
| virtual std::unique_ptr<ClientConnection> | ||
| createQuicClientConnection(Network::Connection& connection, ConnectionCallbacks& callbacks) PURE; | ||
|
|
||
| static std::string category() { return "quic_server_codec"; } | ||
| }; | ||
|
|
||
| } // namespace Http | ||
| } // namespace Envoy |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| #pragma once | ||
|
|
||
| #include <string> | ||
|
|
||
| #include "common/singleton/const_singleton.h" | ||
|
|
||
| namespace Envoy { | ||
| namespace Http { | ||
|
|
||
| class QuicCodecNameValues { | ||
| public: | ||
| // QUICHE is the only QUIC implementation for now. | ||
| const std::string Quiche = "quiche"; | ||
| }; | ||
|
|
||
| using QuicCodecNames = ConstSingleton<QuicCodecNameValues>; | ||
|
|
||
| } // namespace Http | ||
| } // namespace Envoy |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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: similar TODO here for config. Please add this in a follow up.