This has been raised earlier, cf. http://bugzilla.kernel.org/show_bug.cgi?id=6660
Wei Yongjun wrote: | When I send a UDP datagrams with checksum error to target, I found that: | Under IPv6, counter udpInErrors increased, but under IPv4 counter | udpInDatagrams increased. I lookup into the source code, and found that, | under IPv4 UDP datagrams with checksum error will be delivered to UDP | receive queue, but IPv6 does not. IPv4 delivered into UDP receive queue, | increased udpInDatagrams, then discard it before delivered to UDP user. | RFC said udpInDatagrams is the total number of UDP datagrams delivered | to UDP users, so udpInDatagrams should not be increased while UDP | datagrams with checksum error received. | | Refer to RFC2013: | udpInDatagrams OBJECT-TYPE | SYNTAX Counter32 | MAX-ACCESS read-only | STATUS current | DESCRIPTION | "The total number of UDP datagrams delivered to UDP | users." | ::= { udp 1 } | | Following is my patch: | | --- a/net/ipv4/udp.c 2006-07-31 09:33:45.392479344 -0400 | +++ b/net/ipv4/udp.c 2006-07-31 09:34:26.430240656 -0400 | @@ -1018,7 +1018,7 @@ static int udp_queue_rcv_skb(struct sock | /* FALLTHROUGH -- it's a UDP Packet */ | } | | - if (sk->sk_filter && skb->ip_summed != CHECKSUM_UNNECESSARY) { | + if (skb->ip_summed != CHECKSUM_UNNECESSARY) { | if (__udp_checksum_complete(skb)) { | UDP_INC_STATS_BH(UDP_MIB_INERRORS); | kfree_skb(skb); | | Signed-off-by: Wei Yongjun <[EMAIL PROTECTED]> | | | - | To unsubscribe from this list: send the line "unsubscribe netdev" in | the body of a message to [EMAIL PROTECTED] | More majordomo info at http://vger.kernel.org/majordomo-info.html | | - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html