-
Notifications
You must be signed in to change notification settings - Fork 845
QUIC: Add support to configure UDP max payload limit. #9486
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
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -4667,6 +4667,23 @@ removed in the future without prior notice. | |
| that |TS| is willing to store. The value MUST be at least 2. | ||
| Transport Parameter. | ||
|
|
||
| .. ts:cv:: CONFIG proxy.config.quic.max_recv_udp_payload_size_in INT 65527 | ||
|
|
||
| This value will be advertised as ``max_udp_payload_size`` Transport Parameter. | ||
|
|
||
| .. ts:cv:: CONFIG proxy.config.quic.max_recv_udp_payload_size_out INT 65527 | ||
|
|
||
| This value will be advertised as ``max_udp_payload_size`` Transport Parameter. | ||
|
|
||
| .. ts:cv:: CONFIG proxy.config.quic.max_send_udp_payload_size_in INT 65527 | ||
|
|
||
| Specified the maximum outgoing UDP payload size. | ||
|
|
||
| .. ts:cv:: CONFIG proxy.config.quic.max_send_udp_payload_size_out INT 65527 | ||
|
|
||
| Specified the maximum outgoing UDP payload size. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ditto. |
||
|
|
||
|
|
||
| UDP Configuration | ||
| ===================== | ||
|
|
||
|
|
@@ -4680,6 +4697,7 @@ UDP Configuration | |
| Enables (``1``) or disables (``0``) UDP GSO. When enabled, |TS| tries to use UDP GSO, | ||
| and disables it automatically if it causes send errors. | ||
|
|
||
|
|
||
| Plug-in Configuration | ||
| ===================== | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -90,8 +90,8 @@ QUICNetProcessor::start(int, size_t stacksize) | |
| } | ||
|
|
||
| quiche_config_set_max_idle_timeout(this->_quiche_config, params->no_activity_timeout_in()); | ||
| quiche_config_set_max_recv_udp_payload_size(this->_quiche_config, 16384); | ||
| quiche_config_set_max_send_udp_payload_size(this->_quiche_config, 16384); | ||
| quiche_config_set_max_recv_udp_payload_size(this->_quiche_config, params->get_max_recv_udp_payload_size_in()); | ||
| quiche_config_set_max_send_udp_payload_size(this->_quiche_config, params->get_max_send_udp_payload_size_in()); | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. in or out?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Seems a bit odd that the default value for these config variables is (about) double the previous hard-coded value.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It seems to be the default for this transport parameter.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The hard-coded value means nothing. It could be 12000 or 32768 if I made the commit on a different day.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. And
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. From the names of the the Quiche API functions, it doesn't look like you can set different max packet sizes when the near end is the server versus the client.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Although MTU always limits packet sizes on both direction, what these settings mean are:
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, that's what I thought. But I don't see how Quiche is allowing us to configure those values differently depending on whether the near end is the client or the server. If we can't, we only need two new config variables, not four.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Oh you mean different packet sizes for inbound connection and outbound connection? We'll need another quiche_config object for outbound connections. That is why we use |
||
| quiche_config_set_initial_max_data(this->_quiche_config, params->initial_max_data_in()); | ||
| quiche_config_set_initial_max_stream_data_bidi_local(this->_quiche_config, params->initial_max_stream_data_bidi_local_in()); | ||
| quiche_config_set_initial_max_stream_data_bidi_remote(this->_quiche_config, params->initial_max_stream_data_bidi_remote_in()); | ||
|
|
||
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.
Two configs with exactly the same description.
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, they reference to the same transport parameter. I think this eventually will contain more details, or even a link to the current rfc definition.