LinuxKPI: 802.11: fill in two more TODOs

Implement ieee80211_is_data_present() and a subset of
ieee80211_is_bufferable_mmpdu() which hopefully is good enough in
the compat code for now.
This is partly in preparation for some TXQ changes coming up soon.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
This commit is contained in:
Bjoern A. Zeeb 2022-04-30 08:00:04 +00:00
parent 3540911bfd
commit 00614c9c2d

View File

@ -1102,8 +1102,13 @@ ieee80211_is_disassoc(__le16 fc)
static __inline bool
ieee80211_is_data_present(__le16 fc)
{
TODO();
return (false);
__le16 v;
/* If it is a data frame and NODATA is not present. */
fc &= htole16(IEEE80211_FC0_TYPE_MASK | IEEE80211_FC0_SUBTYPE_NODATA);
v = htole16(IEEE80211_FC0_TYPE_DATA);
return (fc == v);
}
static __inline bool
@ -1166,7 +1171,19 @@ ieee80211_is_back_req(__le16 fc)
static __inline bool
ieee80211_is_bufferable_mmpdu(__le16 fc)
{
TODO();
/* 11.2.2 Bufferable MMPDUs, 80211-2020. */
/* XXX we do not care about IBSS yet. */
if (!ieee80211_is_mgmt(fc))
return (false);
if (ieee80211_is_action(fc)) /* XXX FTM? */
return (true);
if (ieee80211_is_disassoc(fc))
return (true);
if (ieee80211_is_deauth(fc))
return (true);
return (false);
}