This fixes a cosmetic issue:
tcpdump -n -i athn0 -y IEEE802_11_RADIO shows a SHORTPRE flag on most frames
sent from athn0. Even for OFDM frames. Which is bogus because short preamble
only applies to non-OFDM frames with Tx rates 2, 5.5, and 11 MBit/s.
This is handled correctly when Tx configuration is provided to hardware
where we check Tx rate _and_ PHY type. But the PHY type check is missing
from the bpf tap code path, so add it there as well.
Index: ar5008.c
===================================================================
RCS file: /cvs/src/sys/dev/ic/ar5008.c,v
retrieving revision 1.46
diff -u -p -r1.46 ar5008.c
--- ar5008.c 28 Nov 2017 04:35:39 -0000 1.46
+++ ar5008.c 1 Feb 2019 13:52:55 -0000
@@ -1393,7 +1393,8 @@ ar5008_tx(struct athn_softc *sc, struct
tap->wt_chan_freq = htole16(ic->ic_bss->ni_chan->ic_freq);
tap->wt_chan_flags = htole16(ic->ic_bss->ni_chan->ic_flags);
tap->wt_hwqueue = qid;
- if (ridx[0] != ATHN_RIDX_CCK1 &&
+ if (athn_rates[ridx[0]].phy == IEEE80211_T_DS &&
+ ridx[0] != ATHN_RIDX_CCK1 &&
(ic->ic_flags & IEEE80211_F_SHPREAMBLE))
tap->wt_flags |= IEEE80211_RADIOTAP_F_SHORTPRE;
mb.m_data = (caddr_t)tap;
Index: ar9003.c
===================================================================
RCS file: /cvs/src/sys/dev/ic/ar9003.c,v
retrieving revision 1.46
diff -u -p -r1.46 ar9003.c
--- ar9003.c 19 May 2017 11:42:48 -0000 1.46
+++ ar9003.c 1 Feb 2019 13:54:04 -0000
@@ -1482,7 +1482,8 @@ ar9003_tx(struct athn_softc *sc, struct
tap->wt_chan_freq = htole16(ic->ic_bss->ni_chan->ic_freq);
tap->wt_chan_flags = htole16(ic->ic_bss->ni_chan->ic_flags);
tap->wt_hwqueue = qid;
- if (ridx[0] != ATHN_RIDX_CCK1 &&
+ if (athn_rates[ridx[0]].phy == IEEE80211_T_DS &&
+ ridx[0] != ATHN_RIDX_CCK1 &&
(ic->ic_flags & IEEE80211_F_SHPREAMBLE))
tap->wt_flags |= IEEE80211_RADIOTAP_F_SHORTPRE;
mb.m_data = (caddr_t)tap;