> On Feb 13, 2023, at 5:22 PM, Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> wrote: > > On Mon, Feb 13, 2023 at 10:01:27AM -0800, Andy Lutomirski wrote: >> >> There's a difference between "kernel speaks TCP (or whatever) >> correctly" and "kernel does what the application needs it to do". > > Sure I get where you are coming from. It's just that the other > participants in the discussion were thinking of stability for the > sake of TCP (or TLS or some other protocol the kernel implements) > and that simply is a non-issue. I can certainly imagine TLS or similar protocols breaking if data changes if the implementation is too clever and retransmission happens. Suppose 2000 bytes are sent via splice using in-kernel TLS, and it goes out on the wire as two TCP segments. The first segment is dropped but the second is received. The kernel resends the first segment using different data. This really ought to cause an integrity check at the far end to fail. I don't know if any existing kTLS is clever enough to regenerate outgoing data when it needs to retransmit a segment, but it would be an interesting optimization for serving static content over TLS. > > Having a better way to communicate completion to the user would be > nice. The only way to do it right now seems to be polling with > SIOCOUTQ. > >