Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

wifi: nl80211: Add more NAN capabilities

Add better break down for NAN capabilities, as NAN has multiple optional
features. This allows to better indicate which features are supported or
or offloaded to the device.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250908140015.bb02cd8c1596.I01fb2e8dc3662b847f3c27117bc4e199fc96d0a3@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

authored by

Andrei Otcheretianski and committed by
Johannes Berg
3cbadd84 1ccfd8db

+55
+55
include/uapi/linux/nl80211.h
··· 2964 2964 * @NL80211_ATTR_NAN_NEW_CLUSTER: Flag attribute indicating that a new 2965 2965 * NAN cluster has been created. This is used with 2966 2966 * %NL80211_CMD_NAN_CLUSTER_JOINED 2967 + * @NL80211_ATTR_NAN_CAPABILITIES: Nested attribute for NAN capabilities. 2968 + * This is used with %NL80211_CMD_GET_WIPHY to indicate the NAN 2969 + * capabilities supported by the driver. See &enum nl80211_nan_capabilities 2970 + * for details. 2967 2971 * 2968 2972 * @NUM_NL80211_ATTR: total number of nl80211_attrs available 2969 2973 * @NL80211_ATTR_MAX: highest attribute number currently defined ··· 3533 3529 NL80211_ATTR_BSS_PARAM, 3534 3530 NL80211_ATTR_NAN_CONFIG, 3535 3531 NL80211_ATTR_NAN_NEW_CLUSTER, 3532 + NL80211_ATTR_NAN_CAPABILITIES, 3536 3533 3537 3534 /* add attributes here, update the policy in nl80211.c */ 3538 3535 ··· 8365 8360 __NL80211_S1G_SHORT_BEACON_ATTR_LAST, 8366 8361 NL80211_S1G_SHORT_BEACON_ATTR_MAX = 8367 8362 __NL80211_S1G_SHORT_BEACON_ATTR_LAST - 1 8363 + }; 8364 + 8365 + /** 8366 + * enum nl80211_nan_capabilities - NAN (Neighbor Aware Networking) 8367 + * capabilities. 8368 + * 8369 + * @__NL80211_NAN_CAPABILITIES_INVALID: Invalid. 8370 + * @NL80211_NAN_CAPA_CONFIGURABLE_SYNC: Flag attribute indicating that 8371 + * the device supports configurable synchronization. If set, the device 8372 + * should be able to handle %NL80211_ATTR_NAN_CONFIG 8373 + * attribute in the %NL80211_CMD_START_NAN (and change) command. 8374 + * @NL80211_NAN_CAPA_USERSPACE_DE: Flag attribute indicating that 8375 + * NAN Discovery Engine (DE) is not offloaded and the driver assumes 8376 + * user space DE implementation. When set, %NL80211_CMD_ADD_NAN_FUNCTION, 8377 + * %NL80211_CMD_DEL_NAN_FUNCTION and %NL80211_CMD_NAN_MATCH commands 8378 + * should not be used. In addition, the device/driver should support 8379 + * sending discovery window (DW) notifications using 8380 + * %NL80211_CMD_NAN_NEXT_DW_NOTIFICATION and handling transmission and 8381 + * reception of NAN SDF frames on NAN device interface during DW windows. 8382 + * (%NL80211_CMD_FRAME is used to transmit SDFs) 8383 + * @NL80211_NAN_CAPA_OP_MODE: u8 attribute indicating the supported operation 8384 + * modes as defined in Wi-Fi Aware (TM) specification Table 81 (Operation 8385 + * Mode field format). 8386 + * @NL80211_NAN_CAPA_NUM_ANTENNAS: u8 attribute indicating the number of 8387 + * TX and RX antennas supported by the device. Lower nibble indicates 8388 + * the number of TX antennas and upper nibble indicates the number of RX 8389 + * antennas. Value 0 indicates the information is not available. 8390 + * See table 79 of Wi-Fi Aware (TM) specification (Number of 8391 + * Antennas field). 8392 + * @NL80211_NAN_CAPA_MAX_CHANNEL_SWITCH_TIME: u16 attribute indicating the 8393 + * maximum time in microseconds that the device requires to switch 8394 + * channels. 8395 + * @NL80211_NAN_CAPA_CAPABILITIES: u8 attribute containing the 8396 + * capabilities of the device as defined in Wi-Fi Aware (TM) 8397 + * specification Table 79 (Capabilities field). 8398 + * @__NL80211_NAN_CAPABILITIES_LAST: Internal 8399 + * @NL80211_NAN_CAPABILITIES_MAX: Highest NAN capability attribute. 8400 + */ 8401 + enum nl80211_nan_capabilities { 8402 + __NL80211_NAN_CAPABILITIES_INVALID, 8403 + 8404 + NL80211_NAN_CAPA_CONFIGURABLE_SYNC, 8405 + NL80211_NAN_CAPA_USERSPACE_DE, 8406 + NL80211_NAN_CAPA_OP_MODE, 8407 + NL80211_NAN_CAPA_NUM_ANTENNAS, 8408 + NL80211_NAN_CAPA_MAX_CHANNEL_SWITCH_TIME, 8409 + NL80211_NAN_CAPA_CAPABILITIES, 8410 + /* keep last */ 8411 + __NL80211_NAN_CAPABILITIES_LAST, 8412 + NL80211_NAN_CAPABILITIES_MAX = __NL80211_NAN_CAPABILITIES_LAST - 1, 8368 8413 }; 8369 8414 8370 8415 #endif /* __LINUX_NL80211_H */