Messages in this thread | | | Date | Thu, 12 Apr 2007 18:31:30 +0800 | From | "Aubrey Li" <> | Subject | udp checksum issue in netpoll mode. |
| |
I think we discussed this issue before.
The current checksum function doesn't consider the kind of packet which is padded to reach a specific minimum length. I believe that's the problem caused my test case failed. Is this issue fixed? Or is it acceptable if I make a patch not calculating this kind of packet?
Thanks, -Aubrey =============================================== static __sum16 checksum_udp(struct sk_buff *skb, struct udphdr *uh, unsigned short ulen, __be32 saddr, __be32 daddr) { __wsum psum;
if (uh->check == 0 || skb->ip_summed == CHECKSUM_UNNECESSARY) return 0;
psum = csum_tcpudp_nofold(saddr, daddr, ulen, IPPROTO_UDP, 0); if (skb->ip_summed == CHECKSUM_COMPLETE && !csum_fold(csum_add(psum, skb->csum))) return 0;
skb->csum = psum;
return __skb_checksum_complete(skb); } =============================================== - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |