Hi,
| if (!sk->sk_filter && skb->ip_summed != CHECKSUM_UNNECESSARY) {
|
| IPv6 doesn't do this, so I think delete condition 'sk->sk_filter' is better.
| Do you think so?
I think the sk->sk_filter is there for a good reason. If you delete it, that
routine
is forced to always compute UDP checksums, even if the only receiving
application is
a tcpdump process. I may be wrong here, but I think that deleting the sk_filter
statement
is not at a good idea.
The other alternatives discussed (afaik) so far were:
1) Move the increment of UDP_MIB_INDATAGRAMS from udp_queue_rcv_skb() to
udp_recvmsg()
(first patch uploaded to http://bugzilla.kernel.org/show_bug.cgi?id=6660).
This
was discussed: not a good idea, since in-kernel applications may use the
data_ready
handler rather than udp_recvmsg().
2) Decrement UDP_MIB_INDATAGRAMS in udp_recvmsg() when the checksum turns out
to be
wrong (second patch uploaded to above address). This would be a fix to the
problem
you are stating, it also solves the problem of missing out the data_ready
handlers in
(1), and was suggested earlier on this mailing list.
-- Gerrit
-
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