[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1286548577.2959.412.camel@edumazet-laptop>
Date: Fri, 08 Oct 2010 16:36:17 +0200
From: Eric Dumazet <eric.dumazet@...il.com>
To: Breno Leitao <leitao@...ux.vnet.ibm.com>
Cc: davem@...emloft.net, netdev@...r.kernel.org,
Jay Vosburgh <fubar@...ibm.com>
Subject: Re: [PATCH] ehea: Fix a checksum issue on the receive path
Le vendredi 08 octobre 2010 à 11:14 -0300, Breno Leitao a écrit :
> Hi Eric
>
> On 10/08/2010 01:45 AM, Eric Dumazet wrote:
> > Just to be clear : packets with wrong checksums are not given to upper
> > stack, so a tcpdump can not display them ? I am not sure many drivers do
> > that.
> Well, what my code does is: 1) if the current packet is a UDP/TCP, then
> the checksum is not necessary, since we would check the checksum on
> ehea_proc_rwqes(), specific at this part of the code:
>
> if (!ehea_check_cqe(cqe, &rq)) {
> // Send the packet to the up layers
>
> And ehea_check_cqe() checks for wrong checksumed packets on:
>
> if ((cqe->status & EHEA_CQE_STAT_ERR_MASK) == 0)
> return 0;
>
>
> Botton line, TCP/UDP packets with wrong checksums are dropped by
> ehea_proc_rwqes(), others go to the up layer.
>
> So, back to your question, you are saying that we shouldn't do that,
> meaning that we should send to the upper layers all packets ? even those
> that have the wrong checksum ?
>
I am pretty sure most (if not all) netdev drivers pass the packet with
invalid checksum to upper stack, so that we can increment appropriate
SNMP counters, in IP stack or UDP/TCP/whatever stack.
tg3, bnx2, e1000, skge, sky2, bnx2x, niu, r8169, igb, ... seems to do
that.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists