Hello - Make sure we keep TF_NOPUSH set if TCP_NOPUSH was set.
FreeBSD has the same: https://github.com/freebsd/freebsd/blob/c9af4f2541fd437e0805365fbeec46d69e033310/sys/netinet/tcp_syncache.c#L860 Index: netinet/tcp_input.c =================================================================== RCS file: /cvs/src/sys/netinet/tcp_input.c,v retrieving revision 1.327 diff -u -p -r1.327 tcp_input.c --- netinet/tcp_input.c 15 Sep 2016 02:00:18 -0000 1.327 +++ netinet/tcp_input.c 18 Sep 2016 17:07:09 -0000 @@ -3798,7 +3798,7 @@ syn_cache_get(struct sockaddr *src, stru (void) m_free(am); tp = intotcpcb(inp); - tp->t_flags = sototcpcb(oso)->t_flags & TF_NODELAY; + tp->t_flags = sototcpcb(oso)->t_flags & (TF_NOPUSH|TF_NODELAY); if (sc->sc_request_r_scale != 15) { tp->requested_s_scale = sc->sc_requested_s_scale; tp->request_r_scale = sc->sc_request_r_scale;
