qcacmn: Set skb's ip_summed to CHECKSUM_NONE if checksum failure
Only if both IP and TCP/UDP checksum passed for TCP/UDP packets, then set ip_summed to CHECKSUM_UNNECESSARY, otherwise set it to CHECKSUM_NONE. Change-Id: Ic4973e32d622f66830dbd7a5bc03012cf6dd87bf CRs-Fixed: 3626292
This commit is contained in:

committato da
Rahul Choudhary

parent
5ebeb8ac41
commit
e0d7d004e0
@@ -2329,25 +2329,27 @@ void dp_rx_cksum_offload(struct dp_pdev *pdev,
|
||||
cksum.l4_result = QDF_NBUF_RX_CKSUM_TCP_UDP_UNNECESSARY;
|
||||
if (qdf_nbuf_is_ipv4_udp_pkt(nbuf) ||
|
||||
qdf_nbuf_is_ipv4_tcp_pkt(nbuf)) {
|
||||
if (qdf_likely(!tcp_udp_csum_er))
|
||||
if (qdf_likely(!tcp_udp_csum_er)) {
|
||||
cksum.csum_level = 1;
|
||||
else
|
||||
DP_STATS_INCC(pdev,
|
||||
err.tcp_udp_csum_err, 1,
|
||||
tcp_udp_csum_er);
|
||||
} else {
|
||||
cksum.l4_result =
|
||||
QDF_NBUF_RX_CKSUM_NONE;
|
||||
DP_STATS_INC(pdev,
|
||||
err.tcp_udp_csum_err, 1);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
DP_STATS_INCC(pdev, err.ip_csum_err, 1, ip_csum_err);
|
||||
DP_STATS_INC(pdev, err.ip_csum_err, 1);
|
||||
}
|
||||
} else if (qdf_nbuf_is_ipv6_udp_pkt(nbuf) ||
|
||||
qdf_nbuf_is_ipv6_tcp_pkt(nbuf)) {
|
||||
if (qdf_likely(!tcp_udp_csum_er))
|
||||
if (qdf_likely(!ip_csum_err && !tcp_udp_csum_er))
|
||||
cksum.l4_result = QDF_NBUF_RX_CKSUM_TCP_UDP_UNNECESSARY;
|
||||
else
|
||||
DP_STATS_INCC(pdev, err.tcp_udp_csum_err, 1,
|
||||
tcp_udp_csum_er);
|
||||
} else {
|
||||
cksum.l4_result = QDF_NBUF_RX_CKSUM_NONE;
|
||||
else if (ip_csum_err) {
|
||||
DP_STATS_INC(pdev, err.ip_csum_err, 1);
|
||||
} else {
|
||||
DP_STATS_INC(pdev, err.tcp_udp_csum_err, 1);
|
||||
}
|
||||
}
|
||||
|
||||
qdf_nbuf_set_rx_cksum(nbuf, &cksum);
|
||||
|
Fai riferimento in un nuovo problema
Block a user