On 7/19/2017 11:19 PM, Olivier Bonaventure wrote:
>> How do you know you're using the converter? Is the initial connection to
>> that converter? Or does the converter hijack (the latter is the
>> implication of the text, AFAICT).
>
> Consider a simple implementation using LD_PRELOAD to overload the
> connect system call on Linux. When the application issues connect, it
> has already set the required socket options that apply for this new
> connection. The converter implementation uses the destination address
> of the connect system call to create the TLV message and sets the TFO
> socket option to send it during its own connect with the converter. If
> the application had requested TFO, then the converter library simply
> uses the regular connect call and everything is fine. 
The Linux API is not the TCP API. The TCP API is a generic,
implementation-independent interface to upper layer protocols and
applications.

This mechanism needs to be described in terms of the TCP API.

Yes, the app can SEND data to the socketpair before the connection is
established, per RFC793 (note - I'm using 793 terms, not unix terms
here). There's nothing in RFC7413 (TFO) that confirms that TFO will
succeed on a new connection and that RFC explicitly admits it did not
introduce an API extension by which an application can read (RECEIVE)
SYN data before the connection is established:

   But the client's socket may have data available to read before it's
   connected.  This document does not cover the corresponding API
   change.

I.e., it's important to explain what you're doing using the TCP API, not
the features of an implementation (the latter can be helpful as an
example, e.g., in an appendix, though).

Joe
_______________________________________________
Int-area mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/int-area

Reply via email to