mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-15 01:01:56 -04:00
qcacmn: add wildcard search support for peer_hash_find
Add option to ignore vdev_id match to peer hash lookup API when vdev_id is passed as 0xff to the API, it ignores vdev_id argument This option is needed for usecases like peer level statistics display where only MAC address is known and vdev_id is not known Also add the missing accounting of rx broadcast frames in the overall statistics Change-Id: I9939ac8bf30f6be3d216f9aa28d52560bf445e06
This commit is contained in:
parent
6d34c7fb1f
commit
3b0f9169c5
4 changed files with 18 additions and 10 deletions
|
|
@ -301,19 +301,21 @@ while (0)
|
|||
DP_STATS_AGGR(_tgtobj, _srcobj, rx.non_amsdu_cnt); \
|
||||
DP_STATS_AGGR(_tgtobj, _srcobj, rx.amsdu_cnt); \
|
||||
DP_STATS_AGGR_PKT(_tgtobj, _srcobj, rx.to_stack); \
|
||||
DP_STATS_AGGR_PKT(_tgtobj, _srcobj, rx.bcast);\
|
||||
\
|
||||
for (i = 0; i < CDP_MAX_RX_RINGS; i++) \
|
||||
DP_STATS_AGGR_PKT(_tgtobj, _srcobj, rx.rcvd_reo[i]); \
|
||||
\
|
||||
_srcobj->stats.rx.unicast.num = \
|
||||
_srcobj->stats.rx.to_stack.num - \
|
||||
_srcobj->stats.rx.multicast.num; \
|
||||
(_srcobj->stats.rx.multicast.num + \
|
||||
_srcobj->stats.rx.bcast.num); \
|
||||
_srcobj->stats.rx.unicast.bytes = \
|
||||
_srcobj->stats.rx.to_stack.bytes - \
|
||||
_srcobj->stats.rx.multicast.bytes; \
|
||||
(_srcobj->stats.rx.multicast.bytes + \
|
||||
_srcobj->stats.rx.bcast.bytes); \
|
||||
DP_STATS_AGGR_PKT(_tgtobj, _srcobj, rx.unicast); \
|
||||
DP_STATS_AGGR_PKT(_tgtobj, _srcobj, rx.multicast); \
|
||||
DP_STATS_AGGR_PKT(_tgtobj, _srcobj, rx.bcast); \
|
||||
DP_STATS_AGGR_PKT(_tgtobj, _srcobj, rx.raw); \
|
||||
DP_STATS_AGGR_PKT(_tgtobj, _srcobj, rx.intra_bss.pkts); \
|
||||
DP_STATS_AGGR_PKT(_tgtobj, _srcobj, rx.intra_bss.fail); \
|
||||
|
|
|
|||
|
|
@ -4923,9 +4923,11 @@ static void dp_pdev_getstats(struct cdp_pdev *pdev_handle,
|
|||
stats->tx_dropped = stats->tx_errors;
|
||||
|
||||
stats->rx_packets = pdev->stats.rx.unicast.num +
|
||||
pdev->stats.rx.multicast.num;
|
||||
pdev->stats.rx.multicast.num +
|
||||
pdev->stats.rx.bcast.num;
|
||||
stats->rx_bytes = pdev->stats.rx.unicast.bytes +
|
||||
pdev->stats.rx.multicast.bytes;
|
||||
pdev->stats.rx.multicast.bytes +
|
||||
pdev->stats.rx.bcast.bytes;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -5098,9 +5100,11 @@ dp_print_pdev_rx_stats(struct dp_pdev *pdev)
|
|||
pdev->stats.rx.to_stack.bytes);
|
||||
DP_PRINT_STATS("Multicast/Broadcast:");
|
||||
DP_PRINT_STATS(" Packets = %d",
|
||||
pdev->stats.rx.multicast.num);
|
||||
(pdev->stats.rx.multicast.num +
|
||||
pdev->stats.rx.bcast.num));
|
||||
DP_PRINT_STATS(" Bytes = %llu",
|
||||
pdev->stats.rx.multicast.bytes);
|
||||
(pdev->stats.rx.multicast.bytes +
|
||||
pdev->stats.rx.bcast.bytes));
|
||||
DP_PRINT_STATS("Errors:");
|
||||
DP_PRINT_STATS(" Rxdma Ring Un-inititalized = %d",
|
||||
pdev->stats.replenish.rxdma_err);
|
||||
|
|
|
|||
|
|
@ -714,7 +714,8 @@ struct dp_peer *dp_peer_find_hash_find(struct dp_soc *soc,
|
|||
* modified find will take care of finding the correct BSS peer.
|
||||
*/
|
||||
if (dp_peer_find_mac_addr_cmp(mac_addr, &peer->mac_addr) == 0 &&
|
||||
(peer->vdev->vdev_id == vdev_id)) {
|
||||
((peer->vdev->vdev_id == vdev_id) ||
|
||||
(vdev_id == DP_VDEV_ALL))) {
|
||||
#else
|
||||
if (dp_peer_find_mac_addr_cmp(mac_addr, &peer->mac_addr) == 0) {
|
||||
#endif
|
||||
|
|
@ -1081,7 +1082,7 @@ void *dp_find_peer_by_addr(struct cdp_pdev *dev, uint8_t *peer_mac_addr,
|
|||
struct dp_pdev *pdev = (struct dp_pdev *)dev;
|
||||
struct dp_peer *peer;
|
||||
|
||||
peer = dp_peer_find_hash_find(pdev->soc, peer_mac_addr, 0, 0);
|
||||
peer = dp_peer_find_hash_find(pdev->soc, peer_mac_addr, 0, DP_VDEV_ALL);
|
||||
|
||||
if (!peer)
|
||||
return NULL;
|
||||
|
|
@ -2041,7 +2042,7 @@ QDF_STATUS dp_peer_state_update(struct cdp_pdev *pdev_handle, uint8_t *peer_mac,
|
|||
struct dp_peer *peer;
|
||||
struct dp_pdev *pdev = (struct dp_pdev *)pdev_handle;
|
||||
|
||||
peer = dp_peer_find_hash_find(pdev->soc, peer_mac, 0, 0);
|
||||
peer = dp_peer_find_hash_find(pdev->soc, peer_mac, 0, DP_VDEV_ALL);
|
||||
if (NULL == peer) {
|
||||
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
|
||||
"Failed to find peer for: [%pM]", peer_mac);
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@
|
|||
#define DP_QOS_TID 0x0f
|
||||
#define DP_IPV6_PRIORITY_SHIFT 20
|
||||
#define MAX_MON_LINK_DESC_BANKS 2
|
||||
#define DP_VDEV_ALL 0xff
|
||||
|
||||
#if defined(CONFIG_MCL)
|
||||
#define MAX_PDEV_CNT 1
|
||||
|
|
|
|||
Loading…
Reference in a new issue