At least for TCP reception, the architecture is in place:
[net/ipv4/tcp_ipv4.c]
/* Try to use the device checksum if provided. */
switch (skb->ip_summed) {
case CHECKSUM_NONE:
skb->csum = csum_partial((char *)th, len, 0);
case CHECKSUM_HW:
if(tcp_v4_check(th,len,skb->nh.iph->saddr,skb->nh ......
(meaning that it skips the csum_partial on incoming fragments if it knows
the network driver already has filled in a value in skb->csum)
Anyway, if noone seems to be working on the zero-copy framework, I'll just
have to go ahead and try to hack it in :) But I'm very sure that I saw
exactly this in the slides from last years USENIX, in a speech by someone
about future Linux network development.
/bjorn
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/