History

nl80211: Add support for EDMG channels

802.11ay specification defines Enhanced Directional Multi-Gigabit (EDMG) STA and AP which allow channel bonding of 2 channels and more. Introduce new NL attributes that are needed for enabling and configuring EDMG support. Two new attributes are used by kernel to publish driver's EDMG capabilities to the userspace: NL80211_BAND_ATTR_EDMG_CHANNELS - bitmap field that indicates the 2.16 GHz channel(s) that are supported by the driver. When this attribute is not set it means driver does not support EDMG. NL80211_BAND_ATTR_EDMG_BW_CONFIG - represent the channel bandwidth configurations supported by the driver. Additional two new attributes are used by the userspace for connect command and for AP configuration: NL80211_ATTR_WIPHY_EDMG_CHANNELS NL80211_ATTR_WIPHY_EDMG_BW_CONFIG New rate info flag - RATE_INFO_FLAGS_EDMG, can be reported from driver and used for bitrate calculation that will take into account EDMG according to the 802.11ay specification.

Alexei Avshalom Lazar committed 7 years ago

Commit 2a380751 parent 5db16ba8 files · +349 −9Browse files

Showing the changes to include/uapi/linux (1 of 8 files). Show all

Unified · Split

include/uapi/linux/nl80211.h+24−0
@@ -52,6 +52,11 @@ · 51 unmodified lines
5252 #define NL80211_MULTICAST_GROUP_NAN "nan"
5353 #define NL80211_MULTICAST_GROUP_TESTMODE "testmode"
5454
55+#define NL80211_EDMG_BW_CONFIG_MIN 4
56+#define NL80211_EDMG_BW_CONFIG_MAX 15
57+#define NL80211_EDMG_CHANNELS_MIN 1
58+#define NL80211_EDMG_CHANNELS_MAX 0x3c /* 0b00111100 */
59+
5560 /**
5661 * DOC: Station handling
5762 *
@@ -2361,6 +2366,13 @@ enum nl80211_commands { · 2303 unmodified lines
23612366 * @NL80211_ATTR_HE_OBSS_PD: nested attribute for OBSS Packet Detection
23622367 * functionality.
23632368 *
2369+ * @NL80211_ATTR_WIPHY_EDMG_CHANNELS: bitmap that indicates the 2.16 GHz
2370+ * channel(s) that are allowed to be used for EDMG transmissions.
2371+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251. (u8 attribute)
2372+ * @NL80211_ATTR_WIPHY_EDMG_BW_CONFIG: Channel BW Configuration subfield encodes
2373+ * the allowed channel bandwidth configurations. (u8 attribute)
2374+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
2375+ *
23642376 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
23652377 * @NL80211_ATTR_MAX: highest attribute number currently defined
23662378 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2820,6 +2832,9 @@ enum nl80211_attrs { · 453 unmodified lines
28202832
28212833 NL80211_ATTR_HE_OBSS_PD,
28222834
2835+ NL80211_ATTR_WIPHY_EDMG_CHANNELS,
2836+ NL80211_ATTR_WIPHY_EDMG_BW_CONFIG,
2837+
28232838 /* add attributes here, update the policy in nl80211.c */
28242839
28252840 __NL80211_ATTR_AFTER_LAST,
@@ -3431,6 +3446,12 @@ enum nl80211_band_iftype_attr { · 605 unmodified lines
34313446 * @NL80211_BAND_ATTR_VHT_CAPA: VHT capabilities, as in the HT information IE
34323447 * @NL80211_BAND_ATTR_IFTYPE_DATA: nested array attribute, with each entry using
34333448 * attributes from &enum nl80211_band_iftype_attr
3449+ * @NL80211_BAND_ATTR_EDMG_CHANNELS: bitmap that indicates the 2.16 GHz
3450+ * channel(s) that are allowed to be used for EDMG transmissions.
3451+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251.
3452+ * @NL80211_BAND_ATTR_EDMG_BW_CONFIG: Channel BW Configuration subfield encodes
3453+ * the allowed channel bandwidth configurations.
3454+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
34343455 * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined
34353456 * @__NL80211_BAND_ATTR_AFTER_LAST: internal use
34363457 */
@@ -3448,6 +3469,9 @@ enum nl80211_band_attr { · 11 unmodified lines
34483469 NL80211_BAND_ATTR_VHT_CAPA,
34493470 NL80211_BAND_ATTR_IFTYPE_DATA,
34503471
3472+ NL80211_BAND_ATTR_EDMG_CHANNELS,
3473+ NL80211_BAND_ATTR_EDMG_BW_CONFIG,
3474+
34513475 /* keep last */
34523476 __NL80211_BAND_ATTR_AFTER_LAST,
34533477 NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1