-
Notifications
You must be signed in to change notification settings - Fork 5.1k
basic support for TCP fast open #99490
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
d63bd81
e0ab1d1
cbb8a2b
e52bd29
d8c735a
b1dabaf
945e565
eee978c
c158933
44bb951
c7cc356
12d5d08
606038a
6c0d648
8e24573
277d914
4724360
a2d5bed
850bdbb
a80fbff
390db80
f2dce6e
d6a0fa9
615de25
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 |
---|---|---|
|
@@ -132,12 +132,34 @@ public enum SocketOptionName | |
#endregion | ||
|
||
#region SocketOptionLevel.Tcp | ||
// Disables the Nagle algorithm for send coalescing. | ||
/// <summary> | ||
/// Disables the Nagle algorithm for send coalescing. | ||
/// </summary> | ||
NoDelay = 1, | ||
/// <summary> | ||
/// Use urgent data as defined in RFC-1222. This option can be set only once; after it is set, it cannot be turned off. | ||
/// </summary> | ||
BsdUrgent = 2, | ||
/// <summary> | ||
/// Use expedited data as defined in RFC-1222. This option can be set only once; after it is set, it cannot be turned off. | ||
/// </summary> | ||
Expedited = 2, | ||
/// <summary> | ||
/// This enables TCP Fast Open as defined in RFC-7413. The actual observed behavior depend on OS configuration and state of kernel TCP cookie cache. | ||
/// Enabling TFO can impact interoperability and casue connectivity issues. | ||
/// </summary> | ||
FastOpen = 15, | ||
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. We should document the concerns (=fully controlled datapath needed) and the limitations around this flag. 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, I have no problem with good description. Even the man page for Linux talks about differences based on cookie availability. |
||
/// <summary> | ||
/// The number of TCP keep alive probes that will be sent before the connection is terminated. | ||
/// </summary> | ||
TcpKeepAliveRetryCount = 16, | ||
/// <summary> | ||
/// The number of seconds a TCP connection will remain alive/idle before keepalive probes are sent to the remote. | ||
/// </summary> | ||
TcpKeepAliveTime = 3, | ||
/// <summary> | ||
/// The number of seconds a TCP connection will wait for a keepalive response before sending another keepalive probe. | ||
/// </summary> | ||
TcpKeepAliveInterval = 17, | ||
#endregion | ||
|
||
|
Uh oh!
There was an error while loading. Please reload this page.
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.
I strongly believe that we need to document the risks of TFO in an easily discoverable way, including the fact that it's only recommended for fully controlled datapaths. I think this summary - or if it's valid for enum members - a remarks section would be a good place.
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.
What dog you suggest? Remarks probably should be edited directly in doc repo...?
I was thinking about it more and perps we can add something like
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.
I would be ok with changing the
summary
to the text above & opening an issue against https://github.com/dotnet/dotnet-api-docs/ to track adding more detailed information to an appropriate place,SocketOptionName
enum remarks maybe.