History

Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next

John W. Linville says: ==================== This probably is the last big pull request for wireless bits for 3.9. Of course, I'm sure there will be a few stragglers here and there...surely a few bug fixes as well... :-) (In fact, I see that Johannes has already queued-up a few more for me while I was preparing this...) Included are a number of pulls... For mac80211-next, Johannes says: "The biggest change I have is undoubtedly Marco's mesh powersave implementation. Beyond that, I have a patch from Emmanuel to modify the DTIM period API in mac80211, scan improvements and a removal of some previous workaround code from Stanislaw, dynamic short slot time from Thomas and 64-bit station byte counters from Vladimir. I also made a number of changes myself, some related to WoWLAN, some auth/deauth improvements and most of them BSS list cleanups." "This time, I have relatively large number of fixes in various areas of the code (a memory leak in regulatory, an RX race in mac80211, the new radar checking caused a P2P device problem, some mesh issues with stations, an older bug in tracing and for kernel-doc) as well as a number of small new features. The biggest (in the diffstat) is my work on hidden SSID tracking." "Please pull to get * radar detection work from Simon * mesh improvements from Thomas * a connection monitoring/powersave fix from Wojciech * TDLS-related station management work from Jouni * VLAN crypto fixes from Michael Braun * CCK support in minstrel_ht from Felix * an SMPS (not SMSP, oops) related improvement in mac80211 (Emmanuel) * some WoWLAN work from Amitkumar Karwar: pattern match offset and a documentation fix * some WoWLAN work from myself (TCP connection wakeup feature API) * and a lot of VHT (and some HT) work (also from myself) And a number of more random cleanups/fixes. I merged mac80211/master to avoid a merge problem there." And regarding iwlwifi-next, Johannes says: "We continue work on our new driver, but I also have a WoWLAN and AP mode improvement for the previous driver and a change to use threaded interrupts to prepare us for working with non-PCIe devices." Regarding wl12xx, Luca says: "A few more patches intended for 3.9. Mostly some clean-ups I've been doing to make it easier to support device-tree. Also including one bug fix for wl12xx where the rates we advertise were wrong and an update in the wlconf structure to support newer firmwares." For the nfc-next bits, Samuel says: "This is the second NFC pull request for 3.9. We have: - A few pn533 fixes on top of Waldemar refactorization of the driver, one of them fixes target mode. - A new driver for Inside Secure microread chipset. It supports two physical layers: i2c and MEI. The MEI one depends on a patchset that's been sent to Greg Kroah-Hartman for inclusion into the 3.9 kernel [1]. The dependency is a KConfig one which means this code is not buildable as long as the MEI API is not usptream." "This 3rd NFC pull request for 3.9 contains a fix for the microread MEI physical layer support, as the MEI bus API changed. From the MEI code, we now pass the MEI id back to the driver probe routine, and we also pass a name and a MEI id table through the mei_bus_driver structure. A few renames as well like e.g. mei_bus_driver to mei_driver or mei_bus_client to mei_device in order to be closer to the driver model practices." For the ath6kl bits, Kalle says: "There's not anything special here, most of the patches are just code cleanup. The only functional changes are using the beacon interval from user space and fixing a crash which happens when inserting and removing the module in a loop." Also, I pulled the wireless tree in order to resolve some pending merge issues. On top of that, there is a bunch of work on brcmfmac that leads up to P2P support. Also, mwifiex, rtlwifi, and a variety of other drivers see some basic cleanups and minor enhancements. Please let me know if there are problems! ====================

David S. Miller committed 13 years ago

Commit 40d1ae52 parents 6cf1c5f 98d5fac189 files · +12387 −3236Browse files

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

Unified · Split

include/uapi/linux/nl80211.h+269−5
@@ -513,6 +513,12 @@ · 512 unmodified lines
513513 * command with the %NL80211_ATTR_WOWLAN_TRIGGERS attribute. For
514514 * more background information, see
515515 * http://wireless.kernel.org/en/users/Documentation/WoWLAN.
516+ * The @NL80211_CMD_SET_WOWLAN command can also be used as a notification
517+ * from the driver reporting the wakeup reason. In this case, the
518+ * @NL80211_ATTR_WOWLAN_TRIGGERS attribute will contain the reason
519+ * for the wakeup, if it was caused by wireless. If it is not present
520+ * in the wakeup notification, the wireless device didn't cause the
521+ * wakeup but reports that it was woken up.
516522 *
517523 * @NL80211_CMD_SET_REKEY_OFFLOAD: This command is used give the driver
518524 * the necessary information for supporting GTK rekey offload. This
@@ -597,6 +603,14 @@ · 78 unmodified lines
597603 * command is used in AP/P2P GO mode. Driver has to make sure to clear its
598604 * ACL list during %NL80211_CMD_STOP_AP.
599605 *
606+ * @NL80211_CMD_RADAR_DETECT: Start a Channel availability check (CAC). Once
607+ * a radar is detected or the channel availability scan (CAC) has finished
608+ * or was aborted, or a radar was detected, usermode will be notified with
609+ * this event. This command is also used to notify userspace about radars
610+ * while operating on this channel.
611+ * %NL80211_ATTR_RADAR_EVENT is used to inform about the type of the
612+ * event.
613+ *
600614 * @NL80211_CMD_MAX: highest used command number
601615 * @__NL80211_CMD_AFTER_LAST: internal use
602616 */
@@ -749,6 +763,8 @@ enum nl80211_commands { · 146 unmodified lines
749763
750764 NL80211_CMD_SET_MAC_ACL,
751765
766+ NL80211_CMD_RADAR_DETECT,
767+
752768 /* add new commands above here */
753769
754770 /* used to define NL80211_CMD_MAX below */
@@ -1336,6 +1352,22 @@ enum nl80211_commands { · 581 unmodified lines
13361352 * number of MAC addresses that a device can support for MAC
13371353 * ACL.
13381354 *
1355+ * @NL80211_ATTR_RADAR_EVENT: Type of radar event for notification to userspace,
1356+ * contains a value of enum nl80211_radar_event (u32).
1357+ *
1358+ * @NL80211_ATTR_EXT_CAPA: 802.11 extended capabilities that the kernel driver
1359+ * has and handles. The format is the same as the IE contents. See
1360+ * 802.11-2012 8.4.2.29 for more information.
1361+ * @NL80211_ATTR_EXT_CAPA_MASK: Extended capabilities that the kernel driver
1362+ * has set in the %NL80211_ATTR_EXT_CAPA value, for multibit fields.
1363+ *
1364+ * @NL80211_ATTR_STA_CAPABILITY: Station capabilities (u16) are advertised to
1365+ * the driver, e.g., to enable TDLS power save (PU-APSD).
1366+ *
1367+ * @NL80211_ATTR_STA_EXT_CAPABILITY: Station extended capabilities are
1368+ * advertised to the driver, e.g., to enable TDLS off channel operations
1369+ * and PU-APSD.
1370+ *
13391371 * @NL80211_ATTR_MAX: highest attribute number currently defined
13401372 * @__NL80211_ATTR_AFTER_LAST: internal use
13411373 */
@@ -1614,6 +1646,14 @@ enum nl80211_attrs { · 272 unmodified lines
16141646
16151647 NL80211_ATTR_MAC_ACL_MAX,
16161648
1649+ NL80211_ATTR_RADAR_EVENT,
1650+
1651+ NL80211_ATTR_EXT_CAPA,
1652+ NL80211_ATTR_EXT_CAPA_MASK,
1653+
1654+ NL80211_ATTR_STA_CAPABILITY,
1655+ NL80211_ATTR_STA_EXT_CAPABILITY,
1656+
16171657 /* add attributes here, update the policy in nl80211.c */
16181658
16191659 __NL80211_ATTR_AFTER_LAST,
@@ -1851,6 +1891,8 @@ enum nl80211_sta_bss_param { · 231 unmodified lines
18511891 * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs)
18521892 * @NL80211_STA_INFO_RX_BYTES: total received bytes (u32, from this station)
18531893 * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station)
1894+ * @NL80211_STA_INFO_RX_BYTES64: total received bytes (u64, from this station)
1895+ * @NL80211_STA_INFO_TX_BYTES64: total transmitted bytes (u64, to this station)
18541896 * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm)
18551897 * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute
18561898 * containing info as possible, see &enum nl80211_rate_info
@@ -1903,6 +1945,8 @@ enum nl80211_sta_info { · 46 unmodified lines
19031945 NL80211_STA_INFO_LOCAL_PM,
19041946 NL80211_STA_INFO_PEER_PM,
19051947 NL80211_STA_INFO_NONPEER_PM,
1948+ NL80211_STA_INFO_RX_BYTES64,
1949+ NL80211_STA_INFO_TX_BYTES64,
19061950
19071951 /* keep last */
19081952 __NL80211_STA_INFO_AFTER_LAST,
@@ -2012,6 +2056,20 @@ enum nl80211_band_attr { · 103 unmodified lines
20122056 * on this channel in current regulatory domain.
20132057 * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm
20142058 * (100 * dBm).
2059+ * @NL80211_FREQUENCY_ATTR_DFS_STATE: current state for DFS
2060+ * (enum nl80211_dfs_state)
2061+ * @NL80211_FREQUENCY_ATTR_DFS_TIME: time in miliseconds for how long
2062+ * this channel is in this DFS state.
2063+ * @NL80211_FREQUENCY_ATTR_NO_HT40_MINUS: HT40- isn't possible with this
2064+ * channel as the control channel
2065+ * @NL80211_FREQUENCY_ATTR_NO_HT40_PLUS: HT40+ isn't possible with this
2066+ * channel as the control channel
2067+ * @NL80211_FREQUENCY_ATTR_NO_80MHZ: any 80 MHz channel using this channel
2068+ * as the primary or any of the secondary channels isn't possible,
2069+ * this includes 80+80 channels
2070+ * @NL80211_FREQUENCY_ATTR_NO_160MHZ: any 160 MHz (but not 80+80) channel
2071+ * using this channel as the primary or any of the secondary channels
2072+ * isn't possible
20152073 * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
20162074 * currently defined
20172075 * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
@@ -2024,6 +2082,12 @@ enum nl80211_frequency_attr { · 6 unmodified lines
20242082 NL80211_FREQUENCY_ATTR_NO_IBSS,
20252083 NL80211_FREQUENCY_ATTR_RADAR,
20262084 NL80211_FREQUENCY_ATTR_MAX_TX_POWER,
2085+ NL80211_FREQUENCY_ATTR_DFS_STATE,
2086+ NL80211_FREQUENCY_ATTR_DFS_TIME,
2087+ NL80211_FREQUENCY_ATTR_NO_HT40_MINUS,
2088+ NL80211_FREQUENCY_ATTR_NO_HT40_PLUS,
2089+ NL80211_FREQUENCY_ATTR_NO_80MHZ,
2090+ NL80211_FREQUENCY_ATTR_NO_160MHZ,
20272091
20282092 /* keep last */
20292093 __NL80211_FREQUENCY_ATTR_AFTER_LAST,
@@ -2896,10 +2960,12 @@ enum nl80211_tx_power_setting { · 866 unmodified lines
28962960 * corresponds to the lowest-order bit in the second byte of the mask.
28972961 * For example: The match 00:xx:00:00:xx:00:00:00:00:xx:xx:xx (where
28982962 * xx indicates "don't care") would be represented by a pattern of
2899− * twelve zero bytes, and a mask of "0xed,0x07".
2963+ * twelve zero bytes, and a mask of "0xed,0x01".
29002964 * Note that the pattern matching is done as though frames were not
29012965 * 802.11 frames but 802.3 frames, i.e. the frame is fully unpacked
29022966 * first (including SNAP header unpacking) and then matched.
2967+ * @NL80211_WOWLAN_PKTPAT_OFFSET: packet offset, pattern is matched after
2968+ * these fixed number of bytes of received packet
29032969 * @NUM_NL80211_WOWLAN_PKTPAT: number of attributes
29042970 * @MAX_NL80211_WOWLAN_PKTPAT: max attribute number
29052971 */
@@ -2907,6 +2973,7 @@ enum nl80211_wowlan_packet_pattern_attr { · 1 unmodified line
29072973 __NL80211_WOWLAN_PKTPAT_INVALID,
29082974 NL80211_WOWLAN_PKTPAT_MASK,
29092975 NL80211_WOWLAN_PKTPAT_PATTERN,
2976+ NL80211_WOWLAN_PKTPAT_OFFSET,
29102977
29112978 NUM_NL80211_WOWLAN_PKTPAT,
29122979 MAX_NL80211_WOWLAN_PKTPAT = NUM_NL80211_WOWLAN_PKTPAT - 1,
@@ -2917,6 +2984,7 @@ enum nl80211_wowlan_packet_pattern_attr { · 4 unmodified lines
29172984 * @max_patterns: maximum number of patterns supported
29182985 * @min_pattern_len: minimum length of each pattern
29192986 * @max_pattern_len: maximum length of each pattern
2987+ * @max_pkt_offset: maximum Rx packet offset
29202988 *
29212989 * This struct is carried in %NL80211_WOWLAN_TRIG_PKT_PATTERN when
29222990 * that is part of %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED in the
@@ -2926,6 +2994,7 @@ struct nl80211_wowlan_pattern_support { · 3 unmodified lines
29262994 __u32 max_patterns;
29272995 __u32 min_pattern_len;
29282996 __u32 max_pattern_len;
2997+ __u32 max_pkt_offset;
29292998 } __attribute__((packed));
29302999
29313000 /**
@@ -2941,12 +3010,17 @@ struct nl80211_wowlan_pattern_support { · 9 unmodified lines
29413010 * @NL80211_WOWLAN_TRIG_PKT_PATTERN: wake up on the specified packet patterns
29423011 * which are passed in an array of nested attributes, each nested attribute
29433012 * defining a with attributes from &struct nl80211_wowlan_trig_pkt_pattern.
2944− * Each pattern defines a wakeup packet. The matching is done on the MSDU,
2945− * i.e. as though the packet was an 802.3 packet, so the pattern matching
2946− * is done after the packet is converted to the MSDU.
3013+ * Each pattern defines a wakeup packet. Packet offset is associated with
3014+ * each pattern which is used while matching the pattern. The matching is
3015+ * done on the MSDU, i.e. as though the packet was an 802.3 packet, so the
3016+ * pattern matching is done after the packet is converted to the MSDU.
29473017 *
29483018 * In %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, it is a binary attribute
29493019 * carrying a &struct nl80211_wowlan_pattern_support.
3020+ *
3021+ * When reporting wakeup. it is a u32 attribute containing the 0-based
3022+ * index of the pattern that caused the wakeup, in the patterns passed
3023+ * to the kernel when configuring.
29503024 * @NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED: Not a real trigger, and cannot be
29513025 * used when setting, used only to indicate that GTK rekeying is supported
29523026 * by the device (flag)
@@ -2957,8 +3031,36 @@ struct nl80211_wowlan_pattern_support { · 4 unmodified lines
29573031 * @NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE: wake up on 4-way handshake (flag)
29583032 * @NL80211_WOWLAN_TRIG_RFKILL_RELEASE: wake up when rfkill is released
29593033 * (on devices that have rfkill in the device) (flag)
3034+ * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211: For wakeup reporting only, contains
3035+ * the 802.11 packet that caused the wakeup, e.g. a deauth frame. The frame
3036+ * may be truncated, the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN
3037+ * attribute contains the original length.
3038+ * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN: Original length of the 802.11
3039+ * packet, may be bigger than the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211
3040+ * attribute if the packet was truncated somewhere.
3041+ * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023: For wakeup reporting only, contains the
3042+ * 802.11 packet that caused the wakeup, e.g. a magic packet. The frame may
3043+ * be truncated, the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN attribute
3044+ * contains the original length.
3045+ * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN: Original length of the 802.3
3046+ * packet, may be bigger than the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023
3047+ * attribute if the packet was truncated somewhere.
3048+ * @NL80211_WOWLAN_TRIG_TCP_CONNECTION: TCP connection wake, see DOC section
3049+ * "TCP connection wakeup" for more details. This is a nested attribute
3050+ * containing the exact information for establishing and keeping alive
3051+ * the TCP connection.
3052+ * @NL80211_WOWLAN_TRIG_TCP_WAKEUP_MATCH: For wakeup reporting only, the
3053+ * wakeup packet was received on the TCP connection
3054+ * @NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST: For wakeup reporting only, the
3055+ * TCP connection was lost or failed to be established
3056+ * @NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS: For wakeup reporting only,
3057+ * the TCP connection ran out of tokens to use for data to send to the
3058+ * service
29603059 * @NUM_NL80211_WOWLAN_TRIG: number of wake on wireless triggers
29613060 * @MAX_NL80211_WOWLAN_TRIG: highest wowlan trigger attribute number
3061+ *
3062+ * These nested attributes are used to configure the wakeup triggers and
3063+ * to report the wakeup reason(s).
29623064 */
29633065 enum nl80211_wowlan_triggers {
29643066 __NL80211_WOWLAN_TRIG_INVALID,
@@ -2971,12 +3073,130 @@ enum nl80211_wowlan_triggers { · 6 unmodified lines
29713073 NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST,
29723074 NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE,
29733075 NL80211_WOWLAN_TRIG_RFKILL_RELEASE,
3076+ NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211,
3077+ NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN,
3078+ NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023,
3079+ NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN,
3080+ NL80211_WOWLAN_TRIG_TCP_CONNECTION,
3081+ NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH,
3082+ NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST,
3083+ NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS,
29743084
29753085 /* keep last */
29763086 NUM_NL80211_WOWLAN_TRIG,
29773087 MAX_NL80211_WOWLAN_TRIG = NUM_NL80211_WOWLAN_TRIG - 1
29783088 };
29793089
3090+/**
3091+ * DOC: TCP connection wakeup
3092+ *
3093+ * Some devices can establish a TCP connection in order to be woken up by a
3094+ * packet coming in from outside their network segment, or behind NAT. If
3095+ * configured, the device will establish a TCP connection to the given
3096+ * service, and periodically send data to that service. The first data
3097+ * packet is usually transmitted after SYN/ACK, also ACKing the SYN/ACK.
3098+ * The data packets can optionally include a (little endian) sequence
3099+ * number (in the TCP payload!) that is generated by the device, and, also
3100+ * optionally, a token from a list of tokens. This serves as a keep-alive
3101+ * with the service, and for NATed connections, etc.
3102+ *
3103+ * During this keep-alive period, the server doesn't send any data to the
3104+ * client. When receiving data, it is compared against the wakeup pattern
3105+ * (and mask) and if it matches, the host is woken up. Similarly, if the
3106+ * connection breaks or cannot be established to start with, the host is
3107+ * also woken up.
3108+ *
3109+ * Developer's note: ARP offload is required for this, otherwise TCP
3110+ * response packets might not go through correctly.
3111+ */
3112+
3113+/**
3114+ * struct nl80211_wowlan_tcp_data_seq - WoWLAN TCP data sequence
3115+ * @start: starting value
3116+ * @offset: offset of sequence number in packet
3117+ * @len: length of the sequence value to write, 1 through 4
3118+ *
3119+ * Note: don't confuse with the TCP sequence number(s), this is for the
3120+ * keepalive packet payload. The actual value is written into the packet
3121+ * in little endian.
3122+ */
3123+struct nl80211_wowlan_tcp_data_seq {
3124+ __u32 start, offset, len;
3125+};
3126+
3127+/**
3128+ * struct nl80211_wowlan_tcp_data_token - WoWLAN TCP data token config
3129+ * @offset: offset of token in packet
3130+ * @len: length of each token
3131+ * @token_stream: stream of data to be used for the tokens, the length must
3132+ * be a multiple of @len for this to make sense
3133+ */
3134+struct nl80211_wowlan_tcp_data_token {
3135+ __u32 offset, len;
3136+ __u8 token_stream[];
3137+};
3138+
3139+/**
3140+ * struct nl80211_wowlan_tcp_data_token_feature - data token features
3141+ * @min_len: minimum token length
3142+ * @max_len: maximum token length
3143+ * @bufsize: total available token buffer size (max size of @token_stream)
3144+ */
3145+struct nl80211_wowlan_tcp_data_token_feature {
3146+ __u32 min_len, max_len, bufsize;
3147+};
3148+
3149+/**
3150+ * enum nl80211_wowlan_tcp_attrs - WoWLAN TCP connection parameters
3151+ * @__NL80211_WOWLAN_TCP_INVALID: invalid number for nested attributes
3152+ * @NL80211_WOWLAN_TCP_SRC_IPV4: source IPv4 address (in network byte order)
3153+ * @NL80211_WOWLAN_TCP_DST_IPV4: destination IPv4 address
3154+ * (in network byte order)
3155+ * @NL80211_WOWLAN_TCP_DST_MAC: destination MAC address, this is given because
3156+ * route lookup when configured might be invalid by the time we suspend,
3157+ * and doing a route lookup when suspending is no longer possible as it
3158+ * might require ARP querying.
3159+ * @NL80211_WOWLAN_TCP_SRC_PORT: source port (u16); optional, if not given a
3160+ * socket and port will be allocated
3161+ * @NL80211_WOWLAN_TCP_DST_PORT: destination port (u16)
3162+ * @NL80211_WOWLAN_TCP_DATA_PAYLOAD: data packet payload, at least one byte.
3163+ * For feature advertising, a u32 attribute holding the maximum length
3164+ * of the data payload.
3165+ * @NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ: data packet sequence configuration
3166+ * (if desired), a &struct nl80211_wowlan_tcp_data_seq. For feature
3167+ * advertising it is just a flag
3168+ * @NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN: data packet token configuration,
3169+ * see &struct nl80211_wowlan_tcp_data_token and for advertising see
3170+ * &struct nl80211_wowlan_tcp_data_token_feature.
3171+ * @NL80211_WOWLAN_TCP_DATA_INTERVAL: data interval in seconds, maximum
3172+ * interval in feature advertising (u32)
3173+ * @NL80211_WOWLAN_TCP_WAKE_PAYLOAD: wake packet payload, for advertising a
3174+ * u32 attribute holding the maximum length
3175+ * @NL80211_WOWLAN_TCP_WAKE_MASK: Wake packet payload mask, not used for
3176+ * feature advertising. The mask works like @NL80211_WOWLAN_PKTPAT_MASK
3177+ * but on the TCP payload only.
3178+ * @NUM_NL80211_WOWLAN_TCP: number of TCP attributes
3179+ * @MAX_NL80211_WOWLAN_TCP: highest attribute number
3180+ */
3181+enum nl80211_wowlan_tcp_attrs {
3182+ __NL80211_WOWLAN_TCP_INVALID,
3183+ NL80211_WOWLAN_TCP_SRC_IPV4,
3184+ NL80211_WOWLAN_TCP_DST_IPV4,
3185+ NL80211_WOWLAN_TCP_DST_MAC,
3186+ NL80211_WOWLAN_TCP_SRC_PORT,
3187+ NL80211_WOWLAN_TCP_DST_PORT,
3188+ NL80211_WOWLAN_TCP_DATA_PAYLOAD,
3189+ NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ,
3190+ NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN,
3191+ NL80211_WOWLAN_TCP_DATA_INTERVAL,
3192+ NL80211_WOWLAN_TCP_WAKE_PAYLOAD,
3193+ NL80211_WOWLAN_TCP_WAKE_MASK,
3194+
3195+ /* keep last */
3196+ NUM_NL80211_WOWLAN_TCP,
3197+ MAX_NL80211_WOWLAN_TCP = NUM_NL80211_WOWLAN_TCP - 1
3198+};
3199+
29803200 /**
29813201 * enum nl80211_iface_limit_attrs - limit attributes
29823202 * @NL80211_IFACE_LIMIT_UNSPEC: (reserved)
@@ -3234,6 +3454,8 @@ enum nl80211_ap_sme_features { · 251 unmodified lines
32343454 * Note that even for drivers that support this, the default is to add
32353455 * stations in authenticated/associated state, so to add unauthenticated
32363456 * stations the authenticated/associated bits have to be set in the mask.
3457+ * @NL80211_FEATURE_ADVERTISE_CHAN_LIMITS: cfg80211 advertises channel limits
3458+ * (HT40, VHT 80/160 MHz) if this flag is set
32373459 */
32383460 enum nl80211_feature_flags {
32393461 NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
@@ -3249,7 +3471,9 @@ enum nl80211_feature_flags { · 9 unmodified lines
32493471 NL80211_FEATURE_NEED_OBSS_SCAN = 1 << 10,
32503472 NL80211_FEATURE_P2P_GO_CTWIN = 1 << 11,
32513473 NL80211_FEATURE_P2P_GO_OPPPS = 1 << 12,
3252− NL80211_FEATURE_FULL_AP_CLIENT_STATE = 1 << 13,
3474+ /* bit 13 is reserved */
3475+ NL80211_FEATURE_ADVERTISE_CHAN_LIMITS = 1 << 14,
3476+ NL80211_FEATURE_FULL_AP_CLIENT_STATE = 1 << 15,
32533477 };
32543478
32553479 /**
@@ -3323,4 +3547,44 @@ enum nl80211_acl_policy { · 67 unmodified lines
33233547 NL80211_ACL_POLICY_DENY_UNLESS_LISTED,
33243548 };
33253549
3550+/**
3551+ * enum nl80211_radar_event - type of radar event for DFS operation
3552+ *
3553+ * Type of event to be used with NL80211_ATTR_RADAR_EVENT to inform userspace
3554+ * about detected radars or success of the channel available check (CAC)
3555+ *
3556+ * @NL80211_RADAR_DETECTED: A radar pattern has been detected. The channel is
3557+ * now unusable.
3558+ * @NL80211_RADAR_CAC_FINISHED: Channel Availability Check has been finished,
3559+ * the channel is now available.
3560+ * @NL80211_RADAR_CAC_ABORTED: Channel Availability Check has been aborted, no
3561+ * change to the channel status.
3562+ * @NL80211_RADAR_NOP_FINISHED: The Non-Occupancy Period for this channel is
3563+ * over, channel becomes usable.
3564+ */
3565+enum nl80211_radar_event {
3566+ NL80211_RADAR_DETECTED,
3567+ NL80211_RADAR_CAC_FINISHED,
3568+ NL80211_RADAR_CAC_ABORTED,
3569+ NL80211_RADAR_NOP_FINISHED,
3570+};
3571+
3572+/**
3573+ * enum nl80211_dfs_state - DFS states for channels
3574+ *
3575+ * Channel states used by the DFS code.
3576+ *
3577+ * @IEEE80211_DFS_USABLE: The channel can be used, but channel availability
3578+ * check (CAC) must be performed before using it for AP or IBSS.
3579+ * @IEEE80211_DFS_UNAVAILABLE: A radar has been detected on this channel, it
3580+ * is therefore marked as not available.
3581+ * @IEEE80211_DFS_AVAILABLE: The channel has been CAC checked and is available.
3582+ */
3583+
3584+enum nl80211_dfs_state {
3585+ NL80211_DFS_USABLE,
3586+ NL80211_DFS_UNAVAILABLE,
3587+ NL80211_DFS_AVAILABLE,
3588+};
3589+
33263590 #endif /* __LINUX_NL80211_H */