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
52#define NL80211_MULTICAST_GROUP_NAN "nan"52#define NL80211_MULTICAST_GROUP_NAN "nan"
53#define NL80211_MULTICAST_GROUP_TESTMODE "testmode"53#define NL80211_MULTICAST_GROUP_TESTMODE "testmode"
54 54
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
55/**60/**
56 * DOC: Station handling61 * DOC: Station handling
57 *62 *
@@ -2361,6 +2366,13 @@ enum nl80211_commands { · 2303 unmodified lines
2361 * @NL80211_ATTR_HE_OBSS_PD: nested attribute for OBSS Packet Detection2366 * @NL80211_ATTR_HE_OBSS_PD: nested attribute for OBSS Packet Detection
2362 * functionality.2367 * functionality.
2363 *2368 *
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 *
2364 * @NUM_NL80211_ATTR: total number of nl80211_attrs available2376 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
2365 * @NL80211_ATTR_MAX: highest attribute number currently defined2377 * @NL80211_ATTR_MAX: highest attribute number currently defined
2366 * @__NL80211_ATTR_AFTER_LAST: internal use2378 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2820,6 +2832,9 @@ enum nl80211_attrs { · 453 unmodified lines
2820 2832
2821 NL80211_ATTR_HE_OBSS_PD,2833 NL80211_ATTR_HE_OBSS_PD,
2822 2834
2835 NL80211_ATTR_WIPHY_EDMG_CHANNELS,
2836 NL80211_ATTR_WIPHY_EDMG_BW_CONFIG,
2837
2823 /* add attributes here, update the policy in nl80211.c */2838 /* add attributes here, update the policy in nl80211.c */
2824 2839
2825 __NL80211_ATTR_AFTER_LAST,2840 __NL80211_ATTR_AFTER_LAST,
@@ -3431,6 +3446,12 @@ enum nl80211_band_iftype_attr { · 605 unmodified lines
3431 * @NL80211_BAND_ATTR_VHT_CAPA: VHT capabilities, as in the HT information IE3446 * @NL80211_BAND_ATTR_VHT_CAPA: VHT capabilities, as in the HT information IE
3432 * @NL80211_BAND_ATTR_IFTYPE_DATA: nested array attribute, with each entry using3447 * @NL80211_BAND_ATTR_IFTYPE_DATA: nested array attribute, with each entry using
3433 * attributes from &enum nl80211_band_iftype_attr3448 * 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.
3434 * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined3455 * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined
3435 * @__NL80211_BAND_ATTR_AFTER_LAST: internal use3456 * @__NL80211_BAND_ATTR_AFTER_LAST: internal use
3436 */3457 */
@@ -3448,6 +3469,9 @@ enum nl80211_band_attr { · 11 unmodified lines
3448 NL80211_BAND_ATTR_VHT_CAPA,3469 NL80211_BAND_ATTR_VHT_CAPA,
3449 NL80211_BAND_ATTR_IFTYPE_DATA,3470 NL80211_BAND_ATTR_IFTYPE_DATA,
3450 3471
3472 NL80211_BAND_ATTR_EDMG_CHANNELS,
3473 NL80211_BAND_ATTR_EDMG_BW_CONFIG,
3474
3451 /* keep last */3475 /* keep last */
3452 __NL80211_BAND_ATTR_AFTER_LAST,3476 __NL80211_BAND_ATTR_AFTER_LAST,
3453 NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 13477 NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1