Re: [PATCH net-next v3 1/4] ipv4: no CHECKSUM_PARTIAL on MSG_MORE corked sockets
From: Tom Herbert <hidden>
Date: 2015-10-27 22:22:55
On Tue, Oct 27, 2015 at 2:40 PM, Hannes Frederic Sowa [off-list ref] wrote:
quoted hunk ↗ jump to hunk
We cannot reliable calculate packet size on MSG_MORE corked sockets and thus cannot decide if they are going to be fragmented later on, so better not use CHECKSUM_PARTIAL in the first place. Cc: Eric Dumazet <edumazet@google.com> Cc: Vlad Yasevich <redacted> Cc: Benjamin Coddington <redacted> Cc: Tom Herbert <redacted> Signed-off-by: Hannes Frederic Sowa <redacted> --- net/ipv4/ip_output.c | 1 + 1 file changed, 1 insertion(+)diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index 50e2973..0b02417 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c@@ -911,6 +911,7 @@ static int __ip_append_data(struct sock *sk, if (transhdrlen && length + fragheaderlen <= mtu && rt->dst.dev->features & NETIF_F_V4_CSUM && + !(flags & MSG_MORE) &&
I still don't understand this. It seems like the effect is to disable checksum offload for all UDP messages sent with MSG_MORE flag set.
!exthdrlen)
csummode = CHECKSUM_PARTIAL;
--
2.5.0