[wlanstats] Add the per-node amsdu hardware decap'ed receive stats.
This is useful for tracking hardware provided AMSDU frames to see when we're (a) seeing them, and (b) seeing the split between intermediary and final frames. Tested: * QCA9880 (athp) - AP mode
This commit is contained in:
parent
a67acf111f
commit
26a6f76a31
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=362085
@ -63,7 +63,7 @@ static struct {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"amsdu",
|
"amsdu",
|
||||||
"input,output,amsdu_tooshort,amsdu_split,amsdu_decap,amsdu_encap,rssi,rate"
|
"input,output,amsdu_tooshort,amsdu_split,amsdu_decap,amsdu_encap,rx_amsdu_more,rx_amsdu_more_end,rssi,rate"
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -276,7 +276,11 @@ static const struct fmt wlanstats[] = {
|
|||||||
{ 8, "amsdu_decap", "decap", "A-MSDU frames received" },
|
{ 8, "amsdu_decap", "decap", "A-MSDU frames received" },
|
||||||
#define S_AMSDU_ENCAP AFTER(S_AMSDU_DECAP)
|
#define S_AMSDU_ENCAP AFTER(S_AMSDU_DECAP)
|
||||||
{ 8, "amsdu_encap", "encap", "A-MSDU frames transmitted" },
|
{ 8, "amsdu_encap", "encap", "A-MSDU frames transmitted" },
|
||||||
#define S_AMPDU_REORDER AFTER(S_AMSDU_ENCAP)
|
#define S_AMSDU_RX_MORE AFTER(S_AMSDU_ENCAP)
|
||||||
|
{ 13, "rx_amsdu_more", "rx_amsdu_more", "A-MSDU HW intermediary decap'ed received" },
|
||||||
|
#define S_AMSDU_RX_MORE_END AFTER(S_AMSDU_RX_MORE)
|
||||||
|
{ 17, "rx_amsdu_more_end", "rx_amsdu_more_end", "A-MSDU HW end decap'ed received" },
|
||||||
|
#define S_AMPDU_REORDER AFTER(S_AMSDU_RX_MORE_END)
|
||||||
{ 8, "ampdu_reorder", "reorder","A-MPDU frames held in reorder q" },
|
{ 8, "ampdu_reorder", "reorder","A-MPDU frames held in reorder q" },
|
||||||
#define S_AMPDU_FLUSH AFTER(S_AMPDU_REORDER)
|
#define S_AMPDU_FLUSH AFTER(S_AMPDU_REORDER)
|
||||||
{ 8, "ampdu_flush", "flush", "A-MPDU frames sent up from reorder q" },
|
{ 8, "ampdu_flush", "flush", "A-MPDU frames sent up from reorder q" },
|
||||||
@ -778,6 +782,8 @@ wlan_get_curstat(struct bsdstat *sf, int s, char b[], size_t bs)
|
|||||||
case S_AMSDU_SPLIT: STAT(amsdu_split);
|
case S_AMSDU_SPLIT: STAT(amsdu_split);
|
||||||
case S_AMSDU_DECAP: STAT(amsdu_decap);
|
case S_AMSDU_DECAP: STAT(amsdu_decap);
|
||||||
case S_AMSDU_ENCAP: STAT(amsdu_encap);
|
case S_AMSDU_ENCAP: STAT(amsdu_encap);
|
||||||
|
case S_AMSDU_RX_MORE: NSTAT(rx_amsdu_more);
|
||||||
|
case S_AMSDU_RX_MORE_END: NSTAT(rx_amsdu_more_end);
|
||||||
case S_AMPDU_REORDER: STAT(ampdu_rx_reorder);
|
case S_AMPDU_REORDER: STAT(ampdu_rx_reorder);
|
||||||
case S_AMPDU_FLUSH: STAT(ampdu_rx_flush);
|
case S_AMPDU_FLUSH: STAT(ampdu_rx_flush);
|
||||||
case S_AMPDU_BARBAD: STAT(ampdu_bar_bad);
|
case S_AMPDU_BARBAD: STAT(ampdu_bar_bad);
|
||||||
@ -941,6 +947,8 @@ wlan_get_totstat(struct bsdstat *sf, int s, char b[], size_t bs)
|
|||||||
case S_AMSDU_SPLIT: STAT(amsdu_split);
|
case S_AMSDU_SPLIT: STAT(amsdu_split);
|
||||||
case S_AMSDU_DECAP: STAT(amsdu_decap);
|
case S_AMSDU_DECAP: STAT(amsdu_decap);
|
||||||
case S_AMSDU_ENCAP: STAT(amsdu_encap);
|
case S_AMSDU_ENCAP: STAT(amsdu_encap);
|
||||||
|
case S_AMSDU_RX_MORE: NSTAT(rx_amsdu_more);
|
||||||
|
case S_AMSDU_RX_MORE_END: NSTAT(rx_amsdu_more_end);
|
||||||
case S_AMPDU_REORDER: STAT(ampdu_rx_reorder);
|
case S_AMPDU_REORDER: STAT(ampdu_rx_reorder);
|
||||||
case S_AMPDU_FLUSH: STAT(ampdu_rx_flush);
|
case S_AMPDU_FLUSH: STAT(ampdu_rx_flush);
|
||||||
case S_AMPDU_BARBAD: STAT(ampdu_bar_bad);
|
case S_AMPDU_BARBAD: STAT(ampdu_bar_bad);
|
||||||
|
Loading…
Reference in New Issue
Block a user