Thread (23 messages) 23 messages, 3 authors, 2015-10-28

Re: [PATCH net v2 1/4] ipv4: no CHECKSUM_PARTIAL on MSG_MORE corked sockets

From: Tom Herbert <hidden>
Date: 2015-10-27 16:05:00

On Tue, Oct 27, 2015 at 8:02 AM, Hannes Frederic Sowa
[off-list ref] wrote:
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.
MSG_MORE should be independent of checksum offload. If packet is
fragmented the fix in ip_output will ensure that skb_checksum_help is
properly called.
quoted hunk ↗ jump to hunk
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) &&
            !exthdrlen)
                csummode = CHECKSUM_PARTIAL;

--
2.5.0
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help