ath10k: extend debug code for RX path
Print sequence number, AMSDU_MORE flag and AC when additional debug enabled in RX path. This is usefull for debugging purpose. Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
parent
72bdeb8655
commit
76f5329a3d
@ -819,19 +819,55 @@ static bool ath10k_htt_rx_h_channel(struct ath10k *ar,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char * const tid_to_ac[] = {
|
||||||
|
"BE",
|
||||||
|
"BK",
|
||||||
|
"BK",
|
||||||
|
"BE",
|
||||||
|
"VI",
|
||||||
|
"VI",
|
||||||
|
"VO",
|
||||||
|
"VO",
|
||||||
|
};
|
||||||
|
|
||||||
|
static char *ath10k_get_tid(struct ieee80211_hdr *hdr, char *out, size_t size)
|
||||||
|
{
|
||||||
|
u8 *qc;
|
||||||
|
int tid;
|
||||||
|
|
||||||
|
if (!ieee80211_is_data_qos(hdr->frame_control))
|
||||||
|
return "";
|
||||||
|
|
||||||
|
qc = ieee80211_get_qos_ctl(hdr);
|
||||||
|
tid = *qc & IEEE80211_QOS_CTL_TID_MASK;
|
||||||
|
if (tid < 8)
|
||||||
|
snprintf(out, size, "tid %d (%s)", tid, tid_to_ac[tid]);
|
||||||
|
else
|
||||||
|
snprintf(out, size, "tid %d", tid);
|
||||||
|
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
static void ath10k_process_rx(struct ath10k *ar,
|
static void ath10k_process_rx(struct ath10k *ar,
|
||||||
struct ieee80211_rx_status *rx_status,
|
struct ieee80211_rx_status *rx_status,
|
||||||
struct sk_buff *skb)
|
struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
struct ieee80211_rx_status *status;
|
struct ieee80211_rx_status *status;
|
||||||
|
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
|
||||||
|
char tid[32];
|
||||||
|
|
||||||
status = IEEE80211_SKB_RXCB(skb);
|
status = IEEE80211_SKB_RXCB(skb);
|
||||||
*status = *rx_status;
|
*status = *rx_status;
|
||||||
|
|
||||||
ath10k_dbg(ATH10K_DBG_DATA,
|
ath10k_dbg(ATH10K_DBG_DATA,
|
||||||
"rx skb %p len %u %s%s%s%s%s %srate_idx %u vht_nss %u freq %u band %u flag 0x%x fcs-err %imic-err %i\n",
|
"rx skb %p len %u peer %pM %s %s sn %u %s%s%s%s%s %srate_idx %u vht_nss %u freq %u band %u flag 0x%x fcs-err %i mic-err %i amsdu-more %i\n",
|
||||||
skb,
|
skb,
|
||||||
skb->len,
|
skb->len,
|
||||||
|
ieee80211_get_SA(hdr),
|
||||||
|
ath10k_get_tid(hdr, tid, sizeof(tid)),
|
||||||
|
is_multicast_ether_addr(ieee80211_get_DA(hdr)) ?
|
||||||
|
"mcast" : "ucast",
|
||||||
|
(__le16_to_cpu(hdr->seq_ctrl) & IEEE80211_SCTL_SEQ) >> 4,
|
||||||
status->flag == 0 ? "legacy" : "",
|
status->flag == 0 ? "legacy" : "",
|
||||||
status->flag & RX_FLAG_HT ? "ht" : "",
|
status->flag & RX_FLAG_HT ? "ht" : "",
|
||||||
status->flag & RX_FLAG_VHT ? "vht" : "",
|
status->flag & RX_FLAG_VHT ? "vht" : "",
|
||||||
@ -843,7 +879,8 @@ static void ath10k_process_rx(struct ath10k *ar,
|
|||||||
status->freq,
|
status->freq,
|
||||||
status->band, status->flag,
|
status->band, status->flag,
|
||||||
!!(status->flag & RX_FLAG_FAILED_FCS_CRC),
|
!!(status->flag & RX_FLAG_FAILED_FCS_CRC),
|
||||||
!!(status->flag & RX_FLAG_MMIC_ERROR));
|
!!(status->flag & RX_FLAG_MMIC_ERROR),
|
||||||
|
!!(status->flag & RX_FLAG_AMSDU_MORE));
|
||||||
ath10k_dbg_dump(ATH10K_DBG_HTT_DUMP, NULL, "rx skb: ",
|
ath10k_dbg_dump(ATH10K_DBG_HTT_DUMP, NULL, "rx skb: ",
|
||||||
skb->data, skb->len);
|
skb->data, skb->len);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user