From: Salil Mehta <salil.me...@huawei.com> Date: Tue, 6 Dec 2016 11:09:46 +0000
> This patch introduces the RX checksum function to check the > status of the hardware calculated checksum and its error and > appropriately convey status to the upper stack in skb->ip_summed > field. > > In hardware, we only support checksum for the following > protocols: > 1) IPv4, > 2) TCP(over IPv4 or IPv6), > 3) UDP(over IPv4 or IPv6), > 4) SCTP(over IPv4 or IPv6) > but we support many L3(IPv4, IPv6, MPLS, PPPoE etc) and > L4(TCP, UDP, GRE, SCTP, IGMP, ICMP etc.) protocols. > > Hardware limitation: > Our present hardware RX Descriptor lacks L3/L4 checksum > "Status & Error" bit (which usually can be used to indicate whether > checksum was calculated by the hardware and if there was any error > encountered during checksum calculation). > > Software workaround: > We do get info within the RX descriptor about the kind of > L3/L4 protocol coming in the packet and the error status. These > errors might not just be checksum errors but could be related to > version, length of IPv4, UDP, TCP etc. > Because there is no-way of knowing if it is a L3/L4 error due > to bad checksum or any other L3/L4 error, we will not (cannot) > convey hardware checksum status(CHECKSUM_UNNECESSARY) for such > cases to upper stack and will not maintain the RX L3/L4 checksum > counters as well. > > Signed-off-by: Salil Mehta <salil.me...@huawei.com> Applied.