qcacmn: Support SW retries in Tx capture
Changes to include SW retries in Tx capture. Change-Id: I2bee277107356a6dca6f8a6cc52cded73aca6c7a
This commit is contained in:

committed by
nshrivas

parent
8e25a3077a
commit
6342933715
@@ -1272,6 +1272,7 @@ struct cdp_delayed_tx_completion_ppdu_user {
|
|||||||
* @completion_status: completion status - OK/Filter/Abort/Timeout
|
* @completion_status: completion status - OK/Filter/Abort/Timeout
|
||||||
* @tid: TID number
|
* @tid: TID number
|
||||||
* @peer_id: Peer ID
|
* @peer_id: Peer ID
|
||||||
|
* @ba_size: Block-Ack size
|
||||||
* @frame_ctrl: frame control field in 802.11 header
|
* @frame_ctrl: frame control field in 802.11 header
|
||||||
* @qos_ctrl: QoS control field in 802.11 header
|
* @qos_ctrl: QoS control field in 802.11 header
|
||||||
* @mpdu_tried: number of mpdus tried
|
* @mpdu_tried: number of mpdus tried
|
||||||
@@ -1321,12 +1322,14 @@ struct cdp_delayed_tx_completion_ppdu_user {
|
|||||||
* @sa_max_rates: smart antenna tx feedback info max rates
|
* @sa_max_rates: smart antenna tx feedback info max rates
|
||||||
* @sa_goodput: smart antenna tx feedback info goodput
|
* @sa_goodput: smart antenna tx feedback info goodput
|
||||||
* @current_rate_per: Moving average per
|
* @current_rate_per: Moving average per
|
||||||
|
* @last_enq_seq: last equeue sequence number
|
||||||
*/
|
*/
|
||||||
struct cdp_tx_completion_ppdu_user {
|
struct cdp_tx_completion_ppdu_user {
|
||||||
uint32_t completion_status:8,
|
uint32_t completion_status:8,
|
||||||
tid:8,
|
tid:8,
|
||||||
peer_id:16;
|
peer_id:16;
|
||||||
uint8_t mac_addr[6];
|
uint8_t mac_addr[6];
|
||||||
|
uint16_t ba_size;
|
||||||
uint32_t frame_ctrl:16,
|
uint32_t frame_ctrl:16,
|
||||||
qos_ctrl:16;
|
qos_ctrl:16;
|
||||||
uint32_t mpdu_tried_ucast:16,
|
uint32_t mpdu_tried_ucast:16,
|
||||||
@@ -1404,6 +1407,7 @@ struct cdp_tx_completion_ppdu_user {
|
|||||||
* of no use. It is just for Host computation.
|
* of no use. It is just for Host computation.
|
||||||
*/
|
*/
|
||||||
uint32_t current_rate_per;
|
uint32_t current_rate_per;
|
||||||
|
uint32_t last_enq_seq;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1491,6 +1495,7 @@ struct cdp_tx_indication_info {
|
|||||||
* @vdev_id: VAP Id
|
* @vdev_id: VAP Id
|
||||||
* @bar_num_users: BA response user count, based on completion common TLV
|
* @bar_num_users: BA response user count, based on completion common TLV
|
||||||
* @num_users: Number of users
|
* @num_users: Number of users
|
||||||
|
* @pending_retries: pending MPDUs (retries)
|
||||||
* @num_mpdu: Number of MPDUs in PPDU
|
* @num_mpdu: Number of MPDUs in PPDU
|
||||||
* @num_msdu: Number of MSDUs in PPDU
|
* @num_msdu: Number of MSDUs in PPDU
|
||||||
* @frame_type: frame SU or MU
|
* @frame_type: frame SU or MU
|
||||||
@@ -1504,6 +1509,7 @@ struct cdp_tx_indication_info {
|
|||||||
* @delayed_ba: Delayed ba flag
|
* @delayed_ba: Delayed ba flag
|
||||||
* @user: per-User stats (array of per-user structures)
|
* @user: per-User stats (array of per-user structures)
|
||||||
* @mpdu_q: queue of mpdu in a ppdu
|
* @mpdu_q: queue of mpdu in a ppdu
|
||||||
|
* @mpdus: MPDU list based on enqueue sequence bitmap
|
||||||
*/
|
*/
|
||||||
struct cdp_tx_completion_ppdu {
|
struct cdp_tx_completion_ppdu {
|
||||||
uint32_t ppdu_id;
|
uint32_t ppdu_id;
|
||||||
@@ -1512,6 +1518,7 @@ struct cdp_tx_completion_ppdu {
|
|||||||
uint16_t bar_num_users;
|
uint16_t bar_num_users;
|
||||||
uint32_t num_users;
|
uint32_t num_users;
|
||||||
uint8_t last_usr_index;
|
uint8_t last_usr_index;
|
||||||
|
uint32_t pending_retries;
|
||||||
uint32_t num_mpdu:9,
|
uint32_t num_mpdu:9,
|
||||||
num_msdu:16;
|
num_msdu:16;
|
||||||
uint16_t frame_type;
|
uint16_t frame_type;
|
||||||
@@ -1526,6 +1533,7 @@ struct cdp_tx_completion_ppdu {
|
|||||||
bool delayed_ba;
|
bool delayed_ba;
|
||||||
struct cdp_tx_completion_ppdu_user user[CDP_MU_MAX_USERS];
|
struct cdp_tx_completion_ppdu_user user[CDP_MU_MAX_USERS];
|
||||||
qdf_nbuf_queue_t mpdu_q;
|
qdf_nbuf_queue_t mpdu_q;
|
||||||
|
qdf_nbuf_t *mpdus;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -2500,6 +2500,7 @@ static void dp_process_ppdu_stats_user_compltn_ba_bitmap_64_tlv(
|
|||||||
ppdu_user_desc->ba_seq_no = dp_stats_buf->ba_seq_no;
|
ppdu_user_desc->ba_seq_no = dp_stats_buf->ba_seq_no;
|
||||||
qdf_mem_copy(&ppdu_user_desc->ba_bitmap, &dp_stats_buf->ba_bitmap,
|
qdf_mem_copy(&ppdu_user_desc->ba_bitmap, &dp_stats_buf->ba_bitmap,
|
||||||
sizeof(uint32_t) * CDP_BA_64_BIT_MAP_SIZE_DWORDS);
|
sizeof(uint32_t) * CDP_BA_64_BIT_MAP_SIZE_DWORDS);
|
||||||
|
ppdu_user_desc->ba_size = CDP_BA_64_BIT_MAP_SIZE_DWORDS * 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -2540,6 +2541,7 @@ static void dp_process_ppdu_stats_user_compltn_ba_bitmap_256_tlv(
|
|||||||
ppdu_user_desc->ba_seq_no = dp_stats_buf->ba_seq_no;
|
ppdu_user_desc->ba_seq_no = dp_stats_buf->ba_seq_no;
|
||||||
qdf_mem_copy(&ppdu_user_desc->ba_bitmap, &dp_stats_buf->ba_bitmap,
|
qdf_mem_copy(&ppdu_user_desc->ba_bitmap, &dp_stats_buf->ba_bitmap,
|
||||||
sizeof(uint32_t) * CDP_BA_256_BIT_MAP_SIZE_DWORDS);
|
sizeof(uint32_t) * CDP_BA_256_BIT_MAP_SIZE_DWORDS);
|
||||||
|
ppdu_user_desc->ba_size = CDP_BA_256_BIT_MAP_SIZE_DWORDS * 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -1318,6 +1318,7 @@ struct ppdu_info {
|
|||||||
* @last_msdu - last msdu indication
|
* @last_msdu - last msdu indication
|
||||||
* @msdu_part_of_amsdu - msdu part of amsdu
|
* @msdu_part_of_amsdu - msdu part of amsdu
|
||||||
* @transmit_cnt - retried count
|
* @transmit_cnt - retried count
|
||||||
|
* @status - transmit status
|
||||||
* @tsf - timestamp which it transmitted
|
* @tsf - timestamp which it transmitted
|
||||||
*/
|
*/
|
||||||
struct msdu_completion_info {
|
struct msdu_completion_info {
|
||||||
@@ -1328,6 +1329,7 @@ struct msdu_completion_info {
|
|||||||
last_msdu:1,
|
last_msdu:1,
|
||||||
msdu_part_of_amsdu:1;
|
msdu_part_of_amsdu:1;
|
||||||
uint8_t transmit_cnt;
|
uint8_t transmit_cnt;
|
||||||
|
uint8_t status;
|
||||||
uint32_t tsf;
|
uint32_t tsf;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user