|
|
@@ -3083,6 +3083,24 @@ struct wiphy_vendor_command {
|
|
|
unsigned long *storage);
|
|
|
};
|
|
|
|
|
|
+/**
|
|
|
+ * struct wiphy_iftype_ext_capab - extended capabilities per interface type
|
|
|
+ * @iftype: interface type
|
|
|
+ * @extended_capabilities: extended capabilities supported by the driver,
|
|
|
+ * additional capabilities might be supported by userspace; these are the
|
|
|
+ * 802.11 extended capabilities ("Extended Capabilities element") and are
|
|
|
+ * in the same format as in the information element. See IEEE Std
|
|
|
+ * 802.11-2012 8.4.2.29 for the defined fields.
|
|
|
+ * @extended_capabilities_mask: mask of the valid values
|
|
|
+ * @extended_capabilities_len: length of the extended capabilities
|
|
|
+ */
|
|
|
+struct wiphy_iftype_ext_capab {
|
|
|
+ enum nl80211_iftype iftype;
|
|
|
+ const u8 *extended_capabilities;
|
|
|
+ const u8 *extended_capabilities_mask;
|
|
|
+ u8 extended_capabilities_len;
|
|
|
+};
|
|
|
+
|
|
|
/**
|
|
|
* struct wiphy - wireless hardware description
|
|
|
* @reg_notifier: the driver's regulatory notification callback,
|
|
|
@@ -3203,9 +3221,14 @@ struct wiphy_vendor_command {
|
|
|
* additional capabilities might be supported by userspace; these are
|
|
|
* the 802.11 extended capabilities ("Extended Capabilities element")
|
|
|
* and are in the same format as in the information element. See
|
|
|
- * 802.11-2012 8.4.2.29 for the defined fields.
|
|
|
+ * 802.11-2012 8.4.2.29 for the defined fields. These are the default
|
|
|
+ * extended capabilities to be used if the capabilities are not specified
|
|
|
+ * for a specific interface type in iftype_ext_capab.
|
|
|
* @extended_capabilities_mask: mask of the valid values
|
|
|
* @extended_capabilities_len: length of the extended capabilities
|
|
|
+ * @iftype_ext_capab: array of extended capabilities per interface type
|
|
|
+ * @num_iftype_ext_capab: number of interface types for which extended
|
|
|
+ * capabilities are specified separately.
|
|
|
* @coalesce: packet coalescing support information
|
|
|
*
|
|
|
* @vendor_commands: array of vendor commands supported by the hardware
|
|
|
@@ -3305,6 +3328,9 @@ struct wiphy {
|
|
|
const u8 *extended_capabilities, *extended_capabilities_mask;
|
|
|
u8 extended_capabilities_len;
|
|
|
|
|
|
+ const struct wiphy_iftype_ext_capab *iftype_ext_capab;
|
|
|
+ unsigned int num_iftype_ext_capab;
|
|
|
+
|
|
|
/* If multiple wiphys are registered and you're handed e.g.
|
|
|
* a regular netdev with assigned ieee80211_ptr, you won't
|
|
|
* know whether it points to a wiphy your driver has registered
|