diff --git a/dp/inc/cdp_txrx_cmn_struct.h b/dp/inc/cdp_txrx_cmn_struct.h index 9799c8bf65e1..42e05b7bb9d8 100644 --- a/dp/inc/cdp_txrx_cmn_struct.h +++ b/dp/inc/cdp_txrx_cmn_struct.h @@ -375,6 +375,30 @@ enum wlan_op_mode { wlan_op_mode_ndi, }; +/** + * connectivity_stats_pkt_status - data pkt type + * @PKT_TYPE_REQ: Request packet + * @PKT_TYPE_RSP: Response packet + * @PKT_TYPE_TX_DROPPED: TX packet dropped + * @PKT_TYPE_RX_DROPPED: RX packet dropped + * @PKT_TYPE_RX_DELIVERED: RX packet delivered + * @PKT_TYPE_RX_REFUSED: RX packet refused + * @PKT_TYPE_TX_HOST_FW_SENT: TX packet FW sent + * @PKT_TYPE_TX_ACK_CNT:TC packet acked + * @PKT_TYPE_NONE: Invalid packet + */ +enum connectivity_stats_pkt_status { + PKT_TYPE_REQ, + PKT_TYPE_RSP, + PKT_TYPE_TX_DROPPED, + PKT_TYPE_RX_DROPPED, + PKT_TYPE_RX_DELIVERED, + PKT_TYPE_RX_REFUSED, + PKT_TYPE_TX_HOST_FW_SENT, + PKT_TYPE_TX_ACK_CNT, + PKT_TYPE_NONE, +}; + /** * cdp_mgmt_tx_cb - tx management delivery notification * callback function @@ -435,6 +459,18 @@ typedef bool (*ol_txrx_tx_flow_control_is_pause_fp)(void *osif_dev); */ typedef QDF_STATUS(*ol_txrx_rx_fp)(void *osif_dev, qdf_nbuf_t msdu_list); +/** + * ol_txrx_stats_rx_fp - receive function to hand batches of data + * frames from txrx to OS shim + * @skb: skb data + * @osif_dev: the virtual device's OS shim object + * @action: data packet type + * @pkt_type: packet data type + */ +typedef void (*ol_txrx_stats_rx_fp)(struct sk_buff *skb, + void *osif_dev, enum connectivity_stats_pkt_status action, + uint8_t *pkt_type); + /** * ol_txrx_get_key_fp - function to gey key based on keyix and peer * mac address @@ -561,6 +597,7 @@ struct ol_txrx_ops { ol_txrx_rx_fp rx; ol_txrx_rx_check_wai_fp wai_check; ol_txrx_rx_mon_fp mon; + ol_txrx_stats_rx_fp stats_rx; ol_txrx_rsim_rx_decap_fp rsim_rx_decap; } rx;