-
Notifications
You must be signed in to change notification settings - Fork 2.1k
QUIC support #5706
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
Open
vietj
wants to merge
14
commits into
master
Choose a base branch
from
quic-refactoring
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
QUIC support #5706
Conversation
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
b995822
to
1675ba4
Compare
9a84e2a
to
20c87a8
Compare
309c187
to
9ac3236
Compare
Motivation: TCPSSLOptions is an aggregate of state that carries TCP configuration (as the name says) among others. In sight of having a NetServer being capable of using a QUIC transport, we should encapsulate the TCP portion of the state in a specific class. Changes: Extract the TCP portion of the TCPSSLOptions and NetworkOptions in a TcpOptions class as a transportOptions field, it is possible to get this field with a getter. The TCPSSLOptions now delegates to the transportOptions field its getters/setters. The Transport SPI is updated to only use the TcpOptions configuration. The Transport SPI now only handle the TCP configuration and leaves the general channel config to the caller.
Motivation: Our implementation has maintained a VertxSslContext wrapping an SslContext to configure a few aspects of the SSL engine. This does not seem necessary anymore since SslContext has all the necessary configuration options on the SslContextBuilder. Changes: Update the SslContextFactory to handle the configuration aspects VertxSslContext was implementing. Remove VertxSslContext wrapper and configure the options instead on the SslContextFactory.
…nection Motivation: ConnectionBase carries a reason/timeout set of interactions for closing a connection that is superfluous for ConnectionBase since users of it are subclasseing VertxConnection. We aim to have ConnectionBase more reusable and universal for non vertx based connections (such as HTTP/2) yet retain this for vertx based connections (HTTP/1.1, WebSocket).
…t part of NetSocket which is a TCP socket
9ac3236
to
e6a643e
Compare
Motivation: Letting VertxConnection subclasses manage the shutdown handler gives more flexibility and is a concerned removed from the VertxConnection that focuses on its state management and control flow without caring about interactions.
…class. Motivation: Since only WebSocket use an effective close reason, we should move this generic part of the VertxConnection to WebSocketConnection implementation to simplify unclutter VertxConnection and keep it focus on its responsibitlies.
cb07fb5
to
a5658c9
Compare
Motivation: The VertxConnection relies on Netty channel close, instead it should be separate and keep channel close as short as possible.
…ionGroup class Motivation: NetServer and NetClient both combine a close sequence with a channel group to implement graceful shutdown of an endpoint. We should encapsulate it to share the code between NetServer and NetClient and reuse it in Quic.
a5658c9
to
b98a64c
Compare
eef66ea
to
a3a8965
Compare
a3a8965
to
a4a47cc
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Introduce QUIC server/client which can be used as basis for application protocols.
While the purpose is similar to
NetClient
/NetServer
there are a few significant differences that would make theio.vertx.core.net
API reuse.Todo