diff --git a/src/wiphy.c b/src/wiphy.c index a97b3522..4ff3085a 100644 --- a/src/wiphy.c +++ b/src/wiphy.c @@ -137,6 +137,7 @@ struct wiphy { bool registered : 1; bool self_managed : 1; bool ap_probe_resp_offload : 1; + bool supports_uapsd : 1; }; static struct l_queue *wiphy_list = NULL; @@ -910,6 +911,11 @@ bool wiphy_country_is_unknown(struct wiphy *wiphy) (cc[0] == 'X' && cc[1] == 'X')); } +bool wiphy_supports_uapsd(const struct wiphy *wiphy) +{ + return wiphy->supports_uapsd; +} + const uint8_t *wiphy_get_ht_capabilities(const struct wiphy *wiphy, enum band_freq band, size_t *size) @@ -1830,6 +1836,9 @@ static void wiphy_parse_attributes(struct wiphy *wiphy, case NL80211_ATTR_PROBE_RESP_OFFLOAD: wiphy->ap_probe_resp_offload = true; break; + case NL80211_ATTR_SUPPORT_AP_UAPSD: + wiphy->supports_uapsd = true; + break; } } } diff --git a/src/wiphy.h b/src/wiphy.h index 5cf22537..1056ac0c 100644 --- a/src/wiphy.h +++ b/src/wiphy.h @@ -137,6 +137,7 @@ const uint8_t *wiphy_get_rm_enabled_capabilities(struct wiphy *wiphy); bool wiphy_get_rsnxe(const struct wiphy *wiphy, uint8_t *buf, size_t len); void wiphy_get_reg_domain_country(struct wiphy *wiphy, char *out); bool wiphy_country_is_unknown(struct wiphy *wiphy); +bool wiphy_supports_uapsd(const struct wiphy *wiphy); const uint8_t *wiphy_get_ht_capabilities(const struct wiphy *wiphy, enum band_freq band,