On Fri, 2014-10-10 at 20:55 +0300, Jouni Malinen wrote: > * @mac: MAC address of the station to remove or NULL to remove all stations > + * @subtype: Management frame subtype to use for indicating removal > + * (0 = no guidance on whether to indicate the removal to the station is > + * provided, 10 = Disassociation, 12 = Deauthentication) > + * @reason_code: Reason code for the Disassociation/Deauthentication frame > */ > struct station_del_parameters { > const u8 *mac; > + u8 subtype; > + u16 reason_code; the reason_code could end up being zero right now, if userspace doesn't specify the attribute. > + if (info->attrs[NL80211_ATTR_MGMT_SUBTYPE]) { > + params.subtype = > + nla_get_u8(info->attrs[NL80211_ATTR_MGMT_SUBTYPE]); > + if (params.subtype != IEEE80211_STYPE_DISASSOC >> 4 && > + params.subtype != IEEE80211_STYPE_DEAUTH >> 4) > + return -EINVAL; > + } > + > + if (info->attrs[NL80211_ATTR_REASON_CODE]) { > + params.reason_code = > + nla_get_u16(info->attrs[NL80211_ATTR_REASON_CODE]); > + if (params.reason_code == 0) > + return -EINVAL; /* 0 is reserved */ > + } I think you should probably force a reason code to be given when specifying the subtype. And I'm thinking that defaulting to deauth/3 would be better than leaving it up to the driver(s)? johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html