qcacmn: per-peer protocol count tracking
Maintain packet counters for each peer based on protocol. Following 3 protocols are supported * ICMP (IPv4) * ARP (IPv4) * EAP Change-Id: I56dd9bbedd7b6698b7d155a524b242e8cabd76c3 CRs-Fixed: 2604877
此提交包含在:
@@ -1070,6 +1070,31 @@ static void dp_tx_raw_prepare_unset(struct dp_soc *soc,
|
||||
} while (cur_nbuf);
|
||||
}
|
||||
|
||||
#ifdef VDEV_PEER_PROTOCOL_COUNT
|
||||
#define dp_vdev_peer_stats_update_protocol_cnt_tx(vdev_hdl, nbuf) \
|
||||
{ \
|
||||
qdf_nbuf_t nbuf_local; \
|
||||
struct dp_vdev *vdev_local = vdev_hdl; \
|
||||
do { \
|
||||
if (qdf_likely(!((vdev_local)->peer_protocol_count_track))) \
|
||||
break; \
|
||||
nbuf_local = nbuf; \
|
||||
if (qdf_unlikely(((vdev_local)->tx_encap_type) == \
|
||||
htt_cmn_pkt_type_raw)) \
|
||||
break; \
|
||||
else if (qdf_unlikely(qdf_nbuf_is_nonlinear((nbuf_local)))) \
|
||||
break; \
|
||||
else if (qdf_nbuf_is_tso((nbuf_local))) \
|
||||
break; \
|
||||
dp_vdev_peer_stats_update_protocol_cnt((vdev_local), \
|
||||
(nbuf_local), \
|
||||
NULL, 1, 0); \
|
||||
} while (0); \
|
||||
}
|
||||
#else
|
||||
#define dp_vdev_peer_stats_update_protocol_cnt_tx(vdev_hdl, skb)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* dp_tx_hw_enqueue() - Enqueue to TCL HW for transmit
|
||||
* @soc: DP Soc Handle
|
||||
@@ -1181,6 +1206,7 @@ static QDF_STATUS dp_tx_hw_enqueue(struct dp_soc *soc, struct dp_vdev *vdev,
|
||||
}
|
||||
|
||||
tx_desc->flags |= DP_TX_DESC_FLAG_QUEUED_TX;
|
||||
dp_vdev_peer_stats_update_protocol_cnt_tx(vdev, tx_desc->nbuf);
|
||||
|
||||
hal_tx_desc_sync(hal_tx_desc_cached, hal_tx_desc);
|
||||
DP_STATS_INC_PKT(vdev, tx_i.processed, 1, length);
|
||||
|
新增問題並參考
封鎖使用者