qcacmn: debug prints for monitor mode TLVs

Add prints to track:
* Incoming TLVs in the monitor mode status ring.
* HE, HE-MU and HE-MU-Other values being passed to the
  stack.

Change-Id: Ib23336353dc4a2253a62444b767d2a706ce372ea
CRs-Fixed: 2242514
This commit is contained in:
Mohit Khanna
2018-02-21 18:50:38 -08:00
committed by nshrivas
parent 6c22db3b45
commit 4b3b7e7110
4 changed files with 337 additions and 329 deletions

View File

@@ -2505,59 +2505,57 @@ static inline void hal_rx_dump_rx_attention_tlv(struct rx_attention *rx_attn,
uint8_t dbg_level)
{
QDF_TRACE(QDF_MODULE_ID_DP, dbg_level,
"\n--------------------\n"
"rx_attention tlv \n"
"\n--------------------\n"
"rxpcu_mpdu_filter_in_category : %d\n"
"sw_frame_group_id : %d\n"
"reserved_0 : %d\n"
"phy_ppdu_id : %d\n"
"first_mpdu : %d\n"
"reserved_1a : %d\n"
"mcast_bcast : %d\n"
"ast_index_not_found : %d\n"
"ast_index_timeout : %d\n"
"power_mgmt : %d\n"
"non_qos : %d\n"
"null_data : %d\n"
"mgmt_type : %d\n"
"ctrl_type : %d\n"
"more_data : %d\n"
"eosp : %d\n"
"a_msdu_error : %d\n"
"fragment_flag : %d\n"
"order : %d\n"
"cce_match : %d\n"
"overflow_err : %d\n"
"msdu_length_err : %d\n"
"tcp_udp_chksum_fail : %d\n"
"ip_chksum_fail : %d\n"
"sa_idx_invalid : %d\n"
"da_idx_invalid : %d\n"
"reserved_1b : %d\n"
"rx_in_tx_decrypt_byp : %d\n"
"encrypt_required : %d\n"
"directed : %d\n"
"buffer_fragment : %d\n"
"mpdu_length_err : %d\n"
"tkip_mic_err : %d\n"
"decrypt_err : %d\n"
"unencrypted_frame_err : %d\n"
"fcs_err : %d\n"
"flow_idx_timeout : %d\n"
"flow_idx_invalid : %d\n"
"wifi_parser_error : %d\n"
"amsdu_parser_error : %d\n"
"sa_idx_timeout : %d\n"
"da_idx_timeout : %d\n"
"msdu_limit_error : %d\n"
"da_is_valid : %d\n"
"da_is_mcbc : %d\n"
"sa_is_valid : %d\n"
"decrypt_status_code : %d\n"
"rx_bitmap_not_updated : %d\n"
"reserved_2 : %d\n"
"msdu_done : %d\n",
"rx_attention tlv="
"rxpcu_mpdu_filter_in_category: %d "
"sw_frame_group_id: %d "
"reserved_0: %d "
"phy_ppdu_id: %d "
"first_mpdu : %d "
"reserved_1a: %d "
"mcast_bcast: %d "
"ast_index_not_found: %d "
"ast_index_timeout: %d "
"power_mgmt: %d "
"non_qos: %d "
"null_data: %d "
"mgmt_type: %d "
"ctrl_type: %d "
"more_data: %d "
"eosp: %d "
"a_msdu_error: %d "
"fragment_flag: %d "
"order: %d "
"cce_match: %d "
"overflow_err: %d "
"msdu_length_err: %d "
"tcp_udp_chksum_fail: %d "
"ip_chksum_fail: %d "
"sa_idx_invalid: %d "
"da_idx_invalid: %d "
"reserved_1b: %d "
"rx_in_tx_decrypt_byp: %d "
"encrypt_required: %d "
"directed: %d "
"buffer_fragment: %d "
"mpdu_length_err: %d "
"tkip_mic_err: %d "
"decrypt_err: %d "
"unencrypted_frame_err: %d "
"fcs_err: %d "
"flow_idx_timeout: %d "
"flow_idx_invalid: %d "
"wifi_parser_error: %d "
"amsdu_parser_error: %d "
"sa_idx_timeout: %d "
"da_idx_timeout: %d "
"msdu_limit_error: %d "
"da_is_valid: %d "
"da_is_mcbc: %d "
"sa_is_valid: %d "
"decrypt_status_code: %d "
"rx_bitmap_not_updated: %d "
"reserved_2: %d "
"msdu_done: %d ",
rx_attn->rxpcu_mpdu_filter_in_category,
rx_attn->sw_frame_group_id,
rx_attn->reserved_0,
@@ -2626,94 +2624,92 @@ uint8_t dbg_level)
struct rx_mpdu_info *mpdu_info =
(struct rx_mpdu_info *) &mpdu_start->rx_mpdu_info_details;
QDF_TRACE(QDF_MODULE_ID_DP, dbg_level,
"\n--------------------\n"
"rx_mpdu_start tlv \n"
"--------------------\n"
"rxpcu_mpdu_filter_in_category: %d\n"
"sw_frame_group_id: %d\n"
"ndp_frame: %d\n"
"phy_err: %d\n"
"phy_err_during_mpdu_header: %d\n"
"protocol_version_err: %d\n"
"ast_based_lookup_valid: %d\n"
"phy_ppdu_id: %d\n"
"ast_index: %d\n"
"sw_peer_id: %d\n"
"mpdu_frame_control_valid: %d\n"
"mpdu_duration_valid: %d\n"
"mac_addr_ad1_valid: %d\n"
"mac_addr_ad2_valid: %d\n"
"mac_addr_ad3_valid: %d\n"
"mac_addr_ad4_valid: %d\n"
"mpdu_sequence_control_valid: %d\n"
"mpdu_qos_control_valid: %d\n"
"mpdu_ht_control_valid: %d\n"
"frame_encryption_info_valid: %d\n"
"fr_ds: %d\n"
"to_ds: %d\n"
"encrypted: %d\n"
"mpdu_retry: %d\n"
"mpdu_sequence_number: %d\n"
"epd_en: %d\n"
"all_frames_shall_be_encrypted: %d\n"
"encrypt_type: %d\n"
"mesh_sta: %d\n"
"bssid_hit: %d\n"
"bssid_number: %d\n"
"tid: %d\n"
"pn_31_0: %d\n"
"pn_63_32: %d\n"
"pn_95_64: %d\n"
"pn_127_96: %d\n"
"peer_meta_data: %d\n"
"rxpt_classify_info.reo_destination_indication: %d\n"
"rxpt_classify_info.use_flow_id_toeplitz_clfy: %d\n"
"rx_reo_queue_desc_addr_31_0: %d\n"
"rx_reo_queue_desc_addr_39_32: %d\n"
"receive_queue_number: %d\n"
"pre_delim_err_warning: %d\n"
"first_delim_err: %d\n"
"key_id_octet: %d\n"
"new_peer_entry: %d\n"
"decrypt_needed: %d\n"
"decap_type: %d\n"
"rx_insert_vlan_c_tag_padding: %d\n"
"rx_insert_vlan_s_tag_padding: %d\n"
"strip_vlan_c_tag_decap: %d\n"
"strip_vlan_s_tag_decap: %d\n"
"pre_delim_count: %d\n"
"ampdu_flag: %d\n"
"bar_frame: %d\n"
"mpdu_length: %d\n"
"first_mpdu: %d\n"
"mcast_bcast: %d\n"
"ast_index_not_found: %d\n"
"ast_index_timeout: %d\n"
"power_mgmt: %d\n"
"non_qos: %d\n"
"null_data: %d\n"
"mgmt_type: %d\n"
"ctrl_type: %d\n"
"more_data: %d\n"
"eosp: %d\n"
"fragment_flag: %d\n"
"order: %d\n"
"u_apsd_trigger: %d\n"
"encrypt_required: %d\n"
"directed: %d\n"
"mpdu_frame_control_field: %d\n"
"mpdu_duration_field: %d\n"
"mac_addr_ad1_31_0: %d\n"
"mac_addr_ad1_47_32: %d\n"
"mac_addr_ad2_15_0: %d\n"
"mac_addr_ad2_47_16: %d\n"
"mac_addr_ad3_31_0: %d\n"
"mac_addr_ad3_47_32: %d\n"
"mpdu_sequence_control_field: %d\n"
"mac_addr_ad4_31_0: %d\n"
"mac_addr_ad4_47_32: %d\n"
"mpdu_qos_control_field: %d\n"
"mpdu_ht_control_field: %d\n",
"rx_mpdu_start tlv - "
"rxpcu_mpdu_filter_in_category: %d "
"sw_frame_group_id: %d "
"ndp_frame: %d "
"phy_err: %d "
"phy_err_during_mpdu_header: %d "
"protocol_version_err: %d "
"ast_based_lookup_valid: %d "
"phy_ppdu_id: %d "
"ast_index: %d "
"sw_peer_id: %d "
"mpdu_frame_control_valid: %d "
"mpdu_duration_valid: %d "
"mac_addr_ad1_valid: %d "
"mac_addr_ad2_valid: %d "
"mac_addr_ad3_valid: %d "
"mac_addr_ad4_valid: %d "
"mpdu_sequence_control_valid: %d "
"mpdu_qos_control_valid: %d "
"mpdu_ht_control_valid: %d "
"frame_encryption_info_valid: %d "
"fr_ds: %d "
"to_ds: %d "
"encrypted: %d "
"mpdu_retry: %d "
"mpdu_sequence_number: %d "
"epd_en: %d "
"all_frames_shall_be_encrypted: %d "
"encrypt_type: %d "
"mesh_sta: %d "
"bssid_hit: %d "
"bssid_number: %d "
"tid: %d "
"pn_31_0: %d "
"pn_63_32: %d "
"pn_95_64: %d "
"pn_127_96: %d "
"peer_meta_data: %d "
"rxpt_classify_info.reo_destination_indication: %d "
"rxpt_classify_info.use_flow_id_toeplitz_clfy: %d "
"rx_reo_queue_desc_addr_31_0: %d "
"rx_reo_queue_desc_addr_39_32: %d "
"receive_queue_number: %d "
"pre_delim_err_warning: %d "
"first_delim_err: %d "
"key_id_octet: %d "
"new_peer_entry: %d "
"decrypt_needed: %d "
"decap_type: %d "
"rx_insert_vlan_c_tag_padding: %d "
"rx_insert_vlan_s_tag_padding: %d "
"strip_vlan_c_tag_decap: %d "
"strip_vlan_s_tag_decap: %d "
"pre_delim_count: %d "
"ampdu_flag: %d "
"bar_frame: %d "
"mpdu_length: %d "
"first_mpdu: %d "
"mcast_bcast: %d "
"ast_index_not_found: %d "
"ast_index_timeout: %d "
"power_mgmt: %d "
"non_qos: %d "
"null_data: %d "
"mgmt_type: %d "
"ctrl_type: %d "
"more_data: %d "
"eosp: %d "
"fragment_flag: %d "
"order: %d "
"u_apsd_trigger: %d "
"encrypt_required: %d "
"directed: %d "
"mpdu_frame_control_field: %d "
"mpdu_duration_field: %d "
"mac_addr_ad1_31_0: %d "
"mac_addr_ad1_47_32: %d "
"mac_addr_ad2_15_0: %d "
"mac_addr_ad2_47_16: %d "
"mac_addr_ad3_31_0: %d "
"mac_addr_ad3_47_32: %d "
"mpdu_sequence_control_field: %d "
"mac_addr_ad4_31_0: %d "
"mac_addr_ad4_47_32: %d "
"mpdu_qos_control_field: %d "
"mpdu_ht_control_field: %d ",
mpdu_info->rxpcu_mpdu_filter_in_category,
mpdu_info->sw_frame_group_id,
mpdu_info->ndp_frame,
@@ -2813,42 +2809,40 @@ static void hal_rx_dump_msdu_start_tlv(struct rx_msdu_start *msdu_start,
uint8_t dbg_level)
{
QDF_TRACE(QDF_MODULE_ID_DP, dbg_level,
"\n--------------------\n"
"rx_msdu_start tlv \n"
"--------------------\n"
"rxpcu_mpdu_filter_in_category: %d\n"
"sw_frame_group_id: %d\n"
"phy_ppdu_id: %d\n"
"msdu_length: %d\n"
"ipsec_esp: %d\n"
"l3_offset: %d\n"
"ipsec_ah: %d\n"
"l4_offset: %d\n"
"msdu_number: %d\n"
"decap_format: %d\n"
"ipv4_proto: %d\n"
"ipv6_proto: %d\n"
"tcp_proto: %d\n"
"udp_proto: %d\n"
"ip_frag: %d\n"
"tcp_only_ack: %d\n"
"da_is_bcast_mcast: %d\n"
"ip4_protocol_ip6_next_header: %d\n"
"toeplitz_hash_2_or_4: %d\n"
"flow_id_toeplitz: %d\n"
"user_rssi: %d\n"
"pkt_type: %d\n"
"stbc: %d\n"
"sgi: %d\n"
"rate_mcs: %d\n"
"receive_bandwidth: %d\n"
"reception_type: %d\n"
"rx_msdu_start tlv - "
"rxpcu_mpdu_filter_in_category: %d "
"sw_frame_group_id: %d "
"phy_ppdu_id: %d "
"msdu_length: %d "
"ipsec_esp: %d "
"l3_offset: %d "
"ipsec_ah: %d "
"l4_offset: %d "
"msdu_number: %d "
"decap_format: %d "
"ipv4_proto: %d "
"ipv6_proto: %d "
"tcp_proto: %d "
"udp_proto: %d "
"ip_frag: %d "
"tcp_only_ack: %d "
"da_is_bcast_mcast: %d "
"ip4_protocol_ip6_next_header: %d "
"toeplitz_hash_2_or_4: %d "
"flow_id_toeplitz: %d "
"user_rssi: %d "
"pkt_type: %d "
"stbc: %d "
"sgi: %d "
"rate_mcs: %d "
"receive_bandwidth: %d "
"reception_type: %d "
#if !defined(QCA_WIFI_QCA6290_11AX)
"toeplitz_hash: %d\n"
"nss: %d\n"
"toeplitz_hash: %d "
"nss: %d "
#endif
"ppdu_start_timestamp: %d\n"
"sw_phy_meta_data: %d\n",
"ppdu_start_timestamp: %d "
"sw_phy_meta_data: %d ",
msdu_start->rxpcu_mpdu_filter_in_category,
msdu_start->sw_frame_group_id,
msdu_start->phy_ppdu_id,
@@ -2896,55 +2890,53 @@ static inline void hal_rx_dump_msdu_end_tlv(struct rx_msdu_end *msdu_end,
uint8_t dbg_level)
{
QDF_TRACE(QDF_MODULE_ID_DP, dbg_level,
"\n--------------------\n"
"rx_msdu_end tlv \n"
"--------------------\n"
"rxpcu_mpdu_filter_in_category: %d\n"
"sw_frame_group_id: %d\n"
"phy_ppdu_id: %d\n"
"ip_hdr_chksum: %d\n"
"tcp_udp_chksum: %d\n"
"key_id_octet: %d\n"
"cce_super_rule: %d\n"
"cce_classify_not_done_truncat: %d\n"
"cce_classify_not_done_cce_dis: %d\n"
"ext_wapi_pn_63_48: %d\n"
"ext_wapi_pn_95_64: %d\n"
"ext_wapi_pn_127_96: %d\n"
"reported_mpdu_length: %d\n"
"first_msdu: %d\n"
"last_msdu: %d\n"
"sa_idx_timeout: %d\n"
"da_idx_timeout: %d\n"
"msdu_limit_error: %d\n"
"flow_idx_timeout: %d\n"
"flow_idx_invalid: %d\n"
"wifi_parser_error: %d\n"
"amsdu_parser_error: %d\n"
"sa_is_valid: %d\n"
"da_is_valid: %d\n"
"da_is_mcbc: %d\n"
"l3_header_padding: %d\n"
"ipv6_options_crc: %d\n"
"tcp_seq_number: %d\n"
"tcp_ack_number: %d\n"
"tcp_flag: %d\n"
"lro_eligible: %d\n"
"window_size: %d\n"
"da_offset: %d\n"
"sa_offset: %d\n"
"da_offset_valid: %d\n"
"sa_offset_valid: %d\n"
"rule_indication_31_0: %d\n"
"rule_indication_63_32: %d\n"
"sa_idx: %d\n"
"da_idx: %d\n"
"msdu_drop: %d\n"
"reo_destination_indication: %d\n"
"flow_idx: %d\n"
"fse_metadata: %d\n"
"cce_metadata: %d\n"
"sa_sw_peer_id: %d\n",
"rx_msdu_end tlv - "
"rxpcu_mpdu_filter_in_category: %d "
"sw_frame_group_id: %d "
"phy_ppdu_id: %d "
"ip_hdr_chksum: %d "
"tcp_udp_chksum: %d "
"key_id_octet: %d "
"cce_super_rule: %d "
"cce_classify_not_done_truncat: %d "
"cce_classify_not_done_cce_dis: %d "
"ext_wapi_pn_63_48: %d "
"ext_wapi_pn_95_64: %d "
"ext_wapi_pn_127_96: %d "
"reported_mpdu_length: %d "
"first_msdu: %d "
"last_msdu: %d "
"sa_idx_timeout: %d "
"da_idx_timeout: %d "
"msdu_limit_error: %d "
"flow_idx_timeout: %d "
"flow_idx_invalid: %d "
"wifi_parser_error: %d "
"amsdu_parser_error: %d "
"sa_is_valid: %d "
"da_is_valid: %d "
"da_is_mcbc: %d "
"l3_header_padding: %d "
"ipv6_options_crc: %d "
"tcp_seq_number: %d "
"tcp_ack_number: %d "
"tcp_flag: %d "
"lro_eligible: %d "
"window_size: %d "
"da_offset: %d "
"sa_offset: %d "
"da_offset_valid: %d "
"sa_offset_valid: %d "
"rule_indication_31_0: %d "
"rule_indication_63_32: %d "
"sa_idx: %d "
"da_idx: %d "
"msdu_drop: %d "
"reo_destination_indication: %d "
"flow_idx: %d "
"fse_metadata: %d "
"cce_metadata: %d "
"sa_sw_peer_id: %d ",
msdu_end->rxpcu_mpdu_filter_in_category,
msdu_end->sw_frame_group_id,
msdu_end->phy_ppdu_id,
@@ -3005,26 +2997,24 @@ static inline void hal_rx_dump_mpdu_end_tlv(struct rx_mpdu_end *mpdu_end,
uint8_t dbg_level)
{
QDF_TRACE(QDF_MODULE_ID_DP, dbg_level,
"\n--------------------\n"
"rx_mpdu_end tlv \n"
"--------------------\n"
"rxpcu_mpdu_filter_in_category: %d\n"
"sw_frame_group_id: %d\n"
"phy_ppdu_id: %d\n"
"unsup_ktype_short_frame: %d\n"
"rx_in_tx_decrypt_byp: %d\n"
"overflow_err: %d\n"
"mpdu_length_err: %d\n"
"tkip_mic_err: %d\n"
"decrypt_err: %d\n"
"unencrypted_frame_err: %d\n"
"pn_fields_contain_valid_info: %d\n"
"fcs_err: %d\n"
"msdu_length_err: %d\n"
"rxdma0_destination_ring: %d\n"
"rxdma1_destination_ring: %d\n"
"decrypt_status_code: %d\n"
"rx_bitmap_not_updated: %d\n",
"rx_mpdu_end tlv - "
"rxpcu_mpdu_filter_in_category: %d "
"sw_frame_group_id: %d "
"phy_ppdu_id: %d "
"unsup_ktype_short_frame: %d "
"rx_in_tx_decrypt_byp: %d "
"overflow_err: %d "
"mpdu_length_err: %d "
"tkip_mic_err: %d "
"decrypt_err: %d "
"unencrypted_frame_err: %d "
"pn_fields_contain_valid_info: %d "
"fcs_err: %d "
"msdu_length_err: %d "
"rxdma0_destination_ring: %d "
"rxdma1_destination_ring: %d "
"decrypt_status_code: %d "
"rx_bitmap_not_updated: %d ",
mpdu_end->rxpcu_mpdu_filter_in_category,
mpdu_end->sw_frame_group_id,
mpdu_end->phy_ppdu_id,

View File

@@ -436,6 +436,7 @@ void hal_rx_mon_hw_desc_get_mpdu_status(void *hw_desc_addr,
reg_value = HAL_RX_GET(rx_msdu_start, RX_MSDU_START_5, RECEPTION_TYPE);
rs->beamformed = (reg_value == HAL_RX_RECEPTION_TYPE_MU_MIMO) ? 1 : 0;
/* TODO: rs->beamformed should be set for SU beamforming also */
hal_rx_dump_pkt_tlvs((uint8_t *)rx_desc, QDF_TRACE_LEVEL_DEBUG);
}
struct hal_rx_ppdu_user_info {
@@ -578,6 +579,8 @@ hal_rx_status_get_tlv_info(void *rx_tlv_hdr, struct hal_rx_ppdu_info *ppdu_info)
uint16_t he_gi = 0;
uint16_t he_ltf = 0;
void *rx_tlv;
bool unhandled = false;
tlv_tag = HAL_RX_GET_USER_TLV32_TYPE(rx_tlv_hdr);
user_id = HAL_RX_GET_USER_TLV32_USERID(rx_tlv_hdr);
@@ -587,9 +590,6 @@ hal_rx_status_get_tlv_info(void *rx_tlv_hdr, struct hal_rx_ppdu_info *ppdu_info)
switch (tlv_tag) {
case WIFIRX_PPDU_START_E:
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
"[%s][%d] ppdu_start_e len=%d",
__func__, __LINE__, tlv_len);
ppdu_info->com_info.ppdu_id =
HAL_RX_GET(rx_tlv, RX_PPDU_START_0,
PHY_PPDU_ID);
@@ -1356,12 +1356,17 @@ hal_rx_status_get_tlv_info(void *rx_tlv_hdr, struct hal_rx_ppdu_info *ppdu_info)
return HAL_TLV_STATUS_PPDU_DONE;
default:
unhandled = true;
break;
}
if (!unhandled)
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
"%s TLV type: %d, TLV len:%d",
__func__, tlv_tag, tlv_len);
"%s TLV type: %d, TLV len:%d %s",
__func__, tlv_tag, tlv_len,
unhandled == true ? "unhandled" : "");
qdf_trace_hex_dump(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG, rx_tlv, tlv_len);
return HAL_TLV_STATUS_PPDU_NOT_DONE;
}

View File

@@ -37,6 +37,7 @@
/* Type declarations */
#define FL(x) "%s: %d: " x, __func__, __LINE__
#define QDF_TRACE_BUFFER_SIZE (512)
#ifdef CONFIG_MCL

View File

@@ -3784,7 +3784,11 @@ qdf_nbuf_update_radiotap_he_flags(struct mon_rx_status *rx_status,
put_unaligned_le16(rx_status->he_data6, &rtap_buf[rtap_len]);
rtap_len += 2;
qdf_info("he data %x %x %x %x %x %x",
rx_status->he_data1,
rx_status->he_data2, rx_status->he_data3,
rx_status->he_data4, rx_status->he_data5,
rx_status->he_data6);
return rtap_len;
}
@@ -3824,6 +3828,11 @@ qdf_nbuf_update_radiotap_he_mu_flags(struct mon_rx_status *rx_status,
rtap_buf[rtap_len] = rx_status->he_RU[3];
rtap_len += 1;
qdf_info("he_flags %x %x he-RU %x %x %x %x",
rx_status->he_flags1,
rx_status->he_flags2, rx_status->he_RU[0],
rx_status->he_RU[1], rx_status->he_RU[2],
rx_status->he_RU[3]);
return rtap_len;
}
@@ -3857,7 +3866,10 @@ qdf_nbuf_update_radiotap_he_mu_other_flags(struct mon_rx_status *rx_status,
rtap_buf[rtap_len] = rx_status->he_per_user_known;
rtap_len += 1;
qdf_info("he_per_user %x %x pos %x knwn %x",
rx_status->he_per_user_1,
rx_status->he_per_user_2, rx_status->he_per_user_position,
rx_status->he_per_user_known);
return rtap_len;
}