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
This commit is contained in:
Adil Saeed Musthafa
2019-12-12 14:34:44 -08:00
committed by nshrivas
parent ab1127c636
commit bbc4de06d7
10 changed files with 538 additions and 1 deletions

View File

@@ -667,6 +667,32 @@ typedef union cdp_peer_stats_buf {
uint32_t rx_avg_rssi;
} cdp_peer_stats_param_t; /* Max union size 16 bytes */
/**
* enum cdp_protocol_trace - Protocols supported by per-peer protocol trace
* @CDP_TRACE_ICMP: ICMP packets
* @CDP_TRACE_EAP: EAPOL packets
* @CDP_TRACE_ARP: ARP packets
*
* Enumeration of all protocols supported by per-peer protocol trace feature
*/
enum cdp_protocol_trace {
CDP_TRACE_ICMP,
CDP_TRACE_EAP,
CDP_TRACE_ARP,
CDP_TRACE_MAX
};
/**
* struct protocol_trace_count - type of count on per-peer protocol trace
* @egress_cnt: how many packets go out of host driver
* @ingress_cnt: how many packets come into the host driver
*
* Type of count on per-peer protocol trace
*/
struct protocol_trace_count {
uint16_t egress_cnt;
uint16_t ingress_cnt;
};
/* struct cdp_tx_stats - tx stats
* @cdp_pkt_info comp_pkt: Pkt Info for which completions were received
* @cdp_pkt_info ucast: Unicast Packet Count
@@ -675,6 +701,7 @@ typedef union cdp_peer_stats_buf {
* @cdp_pkt_info nawds_mcast: NAWDS Multicast Packet Count
* @cdp_pkt_info tx_success: Successful Tx Packets
* @nawds_mcast_drop: NAWDS Multicast Drop Count
* @protocol_trace_cnt: per-peer protocol counter
* @tx_failed: Total Tx failure
* @ofdma: Total Packets as ofdma
* @stbc: Packets in STBC
@@ -749,6 +776,9 @@ struct cdp_tx_stats {
struct cdp_pkt_info mcast;
struct cdp_pkt_info bcast;
struct cdp_pkt_info nawds_mcast;
#ifdef VDEV_PEER_PROTOCOL_COUNT
struct protocol_trace_count protocol_trace_cnt[CDP_TRACE_MAX];
#endif
struct cdp_pkt_info tx_success;
uint32_t nawds_mcast_drop;
uint32_t tx_failed;
@@ -842,6 +872,7 @@ struct cdp_tx_stats {
* @pkts: Intra BSS packets received
* @fail: Intra BSS packets failed
* @mdns_no_fwd: Intra BSS MDNS packets not forwarded
* @protocol_trace_cnt: per-peer protocol counters
* @mic_err: Rx MIC errors CCMP
* @decrypt_err: Rx Decryption Errors CRC
* @fcserr: rx MIC check failed (CCMP)
@@ -905,6 +936,9 @@ struct cdp_rx_stats {
struct cdp_pkt_info fail;
uint32_t mdns_no_fwd;
} intra_bss;
#ifdef VDEV_PEER_PROTOCOL_COUNT
struct protocol_trace_count protocol_trace_cnt[CDP_TRACE_MAX];
#endif
struct {
uint32_t mic_err;