Re: [PATCH net] rxrpc: Fix DATA Tx to disable nofrag for UDP on AF_INET6 socket

From: David Miller
Date: Tue Apr 14 2020 - 19:28:37 EST


From: David Howells <dhowells@xxxxxxxxxx>
Date: Mon, 13 Apr 2020 13:57:14 +0100

> Fix the DATA packet transmission to disable nofrag for UDPv4 on an AF_INET6
> socket as well as UDPv6 when trying to transmit fragmentably.
>
> Without this, packets filled to the normal size used by the kernel AFS
> client of 1412 bytes be rejected by udp_sendmsg() with EMSGSIZE
> immediately. The ->sk_error_report() notification hook is called, but
> rxrpc doesn't generate a trace for it.
>
> This is a temporary fix; a more permanent solution needs to involve
> changing the size of the packets being filled in accordance with the MTU,
> which isn't currently done in AF_RXRPC. The reason for not doing so was
> that, barring the last packet in an rx jumbo packet, jumbos can only be
> assembled out of 1412-byte packets - and the plan was to construct jumbos
> on the fly at transmission time.
>
> Also, there's no point turning on IPV6_MTU_DISCOVER, since IPv6 has to
> engage in this anyway since fragmentation is only done by the sender. We
> can then condense the switch-statement in rxrpc_send_data_packet().
>
> Fixes: 75b54cb57ca3 ("rxrpc: Add IPv6 support")
> Signed-off-by: David Howells <dhowells@xxxxxxxxxx>

Applied, thanks David.