On Fri, Oct 23, 2015 at 4:50 PM, Bendik Rønning Opstad <bro.de...@gmail.com> wrote: >@@ -2409,6 +2412,15 @@ static int do_tcp_setsockopt(struct sock *sk, int level, ... > + case TCP_RDB: > + if (val < 0 || val > 1) { > + err = -EINVAL; > + } else { > + tp->rdb = val; > + tp->nonagle = val;
The semantics of the tp->nonagle bits are already a bit complex. My sense is that having a setsockopt of TCP_RDB transparently modify the nagle behavior is going to add more extra complexity and unanticipated behavior than is warranted given the slight possible gain in convenience to the app writer. What about a model where the application user just needs to remember to call setsockopt(TCP_NODELAY) if they want the TCP_RDB behavior to be sensible? I see your nice tests at https://github.com/bendikro/packetdrill/commit/9916b6c53e33dd04329d29b7d8baf703b2c2ac1b are already doing that. And my sense is that likewise most well-engineered "thin stream" apps will already be using setsockopt(TCP_NODELAY). Is that workable? neal -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html