qcacmn: Add counters for IP, TCP/UDP checksum errors
Add counters for IP, TCP/UDP checksum errors reported by hardware. Change-Id: Iaeb9280bc1ad4a287eee409d92ad0c95dc9f2c77
This commit is contained in:

committed by
nshrivas

parent
e2137870de
commit
51198fc4ee
@@ -770,6 +770,10 @@ struct cdp_pdev_stats {
|
|||||||
struct {
|
struct {
|
||||||
/* desc alloc failed errors */
|
/* desc alloc failed errors */
|
||||||
uint32_t desc_alloc_fail;
|
uint32_t desc_alloc_fail;
|
||||||
|
/* ip csum errors */
|
||||||
|
uint32_t ip_csum_err;
|
||||||
|
/* tcp/udp csum errors */
|
||||||
|
uint32_t tcp_udp_csum_err;
|
||||||
} err;
|
} err;
|
||||||
|
|
||||||
/* buffers added back in freelist */
|
/* buffers added back in freelist */
|
||||||
|
@@ -5190,6 +5190,10 @@ dp_print_pdev_rx_stats(struct dp_pdev *pdev)
|
|||||||
pdev->stats.replenish.rxdma_err);
|
pdev->stats.replenish.rxdma_err);
|
||||||
DP_PRINT_STATS(" Desc Alloc Failed: = %d",
|
DP_PRINT_STATS(" Desc Alloc Failed: = %d",
|
||||||
pdev->stats.err.desc_alloc_fail);
|
pdev->stats.err.desc_alloc_fail);
|
||||||
|
DP_PRINT_STATS("IP checksum error = %d",
|
||||||
|
pdev->stats.err.ip_csum_err);
|
||||||
|
DP_PRINT_STATS("TCP/UDP checksum error = %d",
|
||||||
|
pdev->stats.err.tcp_udp_csum_err);
|
||||||
|
|
||||||
/* Get bar_recv_cnt */
|
/* Get bar_recv_cnt */
|
||||||
dp_aggregate_pdev_ctrl_frames_stats(pdev);
|
dp_aggregate_pdev_ctrl_frames_stats(pdev);
|
||||||
|
@@ -1061,15 +1061,20 @@ static inline void dp_rx_deliver_to_stack(struct dp_vdev *vdev,
|
|||||||
*
|
*
|
||||||
* Return: void
|
* Return: void
|
||||||
*/
|
*/
|
||||||
static inline void dp_rx_cksum_offload(qdf_nbuf_t nbuf, uint8_t *rx_tlv_hdr)
|
static inline void dp_rx_cksum_offload(struct dp_pdev *pdev,
|
||||||
|
qdf_nbuf_t nbuf,
|
||||||
|
uint8_t *rx_tlv_hdr)
|
||||||
{
|
{
|
||||||
qdf_nbuf_rx_cksum_t cksum = {0};
|
qdf_nbuf_rx_cksum_t cksum = {0};
|
||||||
|
bool ip_csum_err = hal_rx_attn_ip_cksum_fail_get(rx_tlv_hdr);
|
||||||
|
bool tcp_udp_csum_er = hal_rx_attn_tcp_udp_cksum_fail_get(rx_tlv_hdr);
|
||||||
|
|
||||||
if (qdf_likely(!hal_rx_attn_tcp_udp_cksum_fail_get(rx_tlv_hdr) &&
|
if (qdf_likely(!ip_csum_err && !tcp_udp_csum_er)) {
|
||||||
!hal_rx_attn_ip_cksum_fail_get(rx_tlv_hdr))) {
|
|
||||||
cksum.l4_result = QDF_NBUF_RX_CKSUM_TCP_UDP_UNNECESSARY;
|
cksum.l4_result = QDF_NBUF_RX_CKSUM_TCP_UDP_UNNECESSARY;
|
||||||
|
|
||||||
qdf_nbuf_set_rx_cksum(nbuf, &cksum);
|
qdf_nbuf_set_rx_cksum(nbuf, &cksum);
|
||||||
|
} else {
|
||||||
|
DP_STATS_INCC(pdev, err.ip_csum_err, 1, ip_csum_err);
|
||||||
|
DP_STATS_INCC(pdev, err.tcp_udp_csum_err, 1, tcp_udp_csum_er);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1561,7 +1566,7 @@ done:
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
dp_rx_cksum_offload(nbuf, rx_tlv_hdr);
|
dp_rx_cksum_offload(vdev->pdev, nbuf, rx_tlv_hdr);
|
||||||
|
|
||||||
dp_set_rx_queue(nbuf, ring_id);
|
dp_set_rx_queue(nbuf, ring_id);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user