Re: [PATCH net v2 1/4] ipv4: no CHECKSUM_PARTIAL on MSG_MORE corked sockets
From: Tom Herbert <hidden>
Date: 2015-10-27 16:41:47
On Tue, Oct 27, 2015 at 9:34 AM, Hannes Frederic Sowa [off-list ref] wrote:
On Tue, Oct 27, 2015, at 17:04, Tom Herbert wrote:quoted
On Tue, Oct 27, 2015 at 8:02 AM, Hannes Frederic Sowa [off-list ref] wrote:quoted
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.The probability is that we are going to fragment if MSG_MORE is set, because exceeding link mtu is quite probable, see e.g. NFS use case. Why not simply use the csum functions during copy-in in that case? It makes much more sense to me.
For datagram sockets MSG_MORE means that more datagrams will be sent, it's not used to incrementally add data to a datagram already queued (SEQPACKET with EOR is for that).
I don't see a reason to test for fragment length at all, then. Bye, Hannes