diff --git a/fw/htt_ppdu_stats.h b/fw/htt_ppdu_stats.h index 1ea2c7690c..4dc7487ce5 100644 --- a/fw/htt_ppdu_stats.h +++ b/fw/htt_ppdu_stats.h @@ -452,6 +452,42 @@ typedef struct { chan_mhz: 16; }; }; + + /* + * The cca_delta_time_us reports the time the tx PPDU in question + * was waiting in the HW tx queue for the clear channel assessment + * to indicate that the transmission could start. + * If this CCA delta time is zero or small, this indicates that the + * air interface was unused prior to the transmission, and thus it's + * improbable that there was a collision with some other transceiver's + * transmission. + * In contrast, a large CCA delta time means that this transceiver had + * to wait a long time for the air interface to be available; it's + * possible that other transceivers were also waiting for the air + * interface to become available, and if the other waiting transceiver's + * CW backoff aligned with this one, to have a transmit collision. + */ + A_UINT32 cca_delta_time_us; + + /* + * The rxfrm_delta_time_us reports the time the tx PPDU in question + * was waiting in the HW tx queue while there was an ongoing rx, + * either because the rx was already ongoing at the time the tx PPDU + * was enqueued, or because the rx (i.e. the peer's tx) won the air + * interface contention over the local vdev's tx. + */ + A_UINT32 rxfrm_delta_time_us; + + /* + * The txfrm_delta_time_us reports the time from when the tx PPDU + * in question was enqueued into the HW tx queue until the time the + * tx completion interrupt for the PPDU occurred. + * Thus, the txfrm_delta_time_us incorporates any time the tx PPDU + * had to wait for the air interface to become available, the PPDU + * duration, the block ack reception, and the tx completion interrupt + * latency. + */ + A_UINT32 txfrm_delta_time_us; } htt_ppdu_stats_common_tlv; #define HTT_PPDU_STATS_USER_COMMON_TLV_TID_NUM_M 0x000000ff