Subject: Re: [PATCH 1/2] [IPV4] UDP: Always checksum even if without socket filter

From: Wang Chen <[email-masked]>
Date: Thu, 29 Nov 2007 15:55:38 +0800

David Miller said the following on 2007-11-21 9:39:
> From: Andi Kleen <[email-masked]>
> Date: Tue, 20 Nov 2007 15:05:18 +0100
> 
>> On Tue, Nov 20, 2007 at 12:29:45AM -0500, Bill Fink wrote:
>>> While I agree with your analysis that it could be worked around,
>>> who knows how all the various SNMP monitoring applications out there
>>> would interpret such an unusual event.  I liked Stephen's suggestion
>>> of a deferred decrement that would insure the counter didn't ever
>>> run backwards.  But the best approach seems to be just not to count
>>> it in the first place until tha application has actually received
>>> the packet, since as Herbert pointed out, that's what the RFC
>>> actually specifies for the meaning of the udpInDatagrams counter.
>> Together with another counter that counts "edge datagrams received"
>> that would be an excellent idea.
>>
>> Here's a patch.
> 
> NFS and friends that use the ->data_ready() callback needs to
> be updated as well.  Please fix this and resubmit, thanks.
> 

I tested nfsv3 & nfsv4. It seems that nfs calls recvmsg() like
following:nfsd()->svc_recv()->svc_udp_recvfrom()->udp_recvmsg().
So, I think putting the udpInDatagrams increment in udp_recvmsg()
is enough.

FYI:
http://www.mail-archive.com/[email-masked]/msg13817.html