@@ -1284,6 +1284,7 @@ enum nl80211_meshconf_params {
* @NL80211_TXQ_ATTR_CWMAX: Maximum contention window [a value of the form
* 2^n-1 in the range 1..32767]
* @NL80211_TXQ_ATTR_AIFS: Arbitration interframe space [0..255]
+ * @NL80211_TXQ_ATTR_UAPSD: U-APSD enabled [0..1]
* @__NL80211_TXQ_ATTR_AFTER_LAST: Internal
* @NL80211_TXQ_ATTR_MAX: Maximum TXQ attribute number
*/
@@ -1294,6 +1295,7 @@ enum nl80211_txq_attr {
NL80211_TXQ_ATTR_CWMIN,
NL80211_TXQ_ATTR_CWMAX,
NL80211_TXQ_ATTR_AIFS,
+ NL80211_TXQ_ATTR_UAPSD,
/* keep last */
__NL80211_TXQ_ATTR_AFTER_LAST,
@@ -556,6 +556,7 @@ struct ieee80211_txq_params {
u16 cwmin;
u16 cwmax;
u8 aifs;
+ bool uapsd;
};
/* from net/wireless.h */
@@ -670,6 +670,9 @@ static int parse_txq_params(struct nlattr *tb[],
txq_params->cwmax = nla_get_u16(tb[NL80211_TXQ_ATTR_CWMAX]);
txq_params->aifs = nla_get_u8(tb[NL80211_TXQ_ATTR_AIFS]);
+ if (tb[NL80211_TXQ_ATTR_UAPSD])
+ txq_params->uapsd = nla_get_u8(tb[NL80211_TXQ_ATTR_UAPSD]);
+
return 0;
}