[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20140617.215854.1779406060920309523.davem@davemloft.net>
Date: Tue, 17 Jun 2014 21:58:54 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: b38611@...escale.com
Cc: netdev@...r.kernel.org, linux@....linux.org.uk
Subject: Re: [PATCH] net: fec: Don't clear IPV6 header checksum field when
IP accelerator enable
From: Fugang Duan <b38611@...escale.com>
Date: Wed, 18 Jun 2014 08:33:52 +0800
> The commit 96c50caa5148 (net: fec: Enable IP header hardware checksum)
> enable HW IP header checksum for IPV4 and IPV6, which causes IPV6 TCP/UDP
> cannot work. (The issue is reported by Russell King)
>
> For FEC IP header checksum function: Insert IP header checksum. This "IINS"
> bit is written by the user. If set, IP accelerator calculates the IP header
> checksum and overwrites the IINS corresponding header field with the calculated
> value. The checksum field must be cleared by user, otherwise the checksum
> always is 0xFFFF.
>
> So the previous patch clear IP header checksum field regardless of IP frame
> type.
>
> In fact, IP HW detect the packet as IPV6 type, even if the "IINS" bit is set,
> the IP accelerator is not triggered to calculates IPV6 header checksum because
> IPV6 frame format don't have checksum.
>
> So this results in the IPV6 frame being corrupted.
>
> The patch just add software detect the current packet type, if it is IPV6
> frame, it don't clear IP header checksum field.
>
> Cc: Russell King <linux@....linux.org.uk>
> Reported-and-tested-by: Russell King <linux@....linux.org.uk>
> Signed-off-by: Fugang Duan <B38611@...escale.com>
Applied, thank you.
--
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