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