diff options
author | John W. Linville <linville@tuxdriver.com> | 2014-02-24 15:03:32 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-02-24 15:03:32 -0500 |
commit | c77986c78aa941af8266272841567e78b72d54cc (patch) | |
tree | cb30e1bd7d5799bfce5a3837bcfddee059a81733 /include | |
parent | 9e4b4269ecee426f1647425a24186dd1566db554 (diff) | |
parent | 6658ab80fd4ef940fc2366ddb66690a15ea69c18 (diff) |
Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
Diffstat (limited to 'include')
-rw-r--r-- | include/net/cfg80211.h | 24 | ||||
-rw-r--r-- | include/net/mac80211.h | 43 | ||||
-rw-r--r-- | include/uapi/linux/nl80211.h | 42 |
3 files changed, 62 insertions, 47 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 9f90554e88c4..8c9ba44fb7cf 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -2206,7 +2206,12 @@ struct cfg80211_qos_map { | |||
2206 | * @set_cqm_txe_config: Configure connection quality monitor TX error | 2206 | * @set_cqm_txe_config: Configure connection quality monitor TX error |
2207 | * thresholds. | 2207 | * thresholds. |
2208 | * @sched_scan_start: Tell the driver to start a scheduled scan. | 2208 | * @sched_scan_start: Tell the driver to start a scheduled scan. |
2209 | * @sched_scan_stop: Tell the driver to stop an ongoing scheduled scan. | 2209 | * @sched_scan_stop: Tell the driver to stop an ongoing scheduled scan. This |
2210 | * call must stop the scheduled scan and be ready for starting a new one | ||
2211 | * before it returns, i.e. @sched_scan_start may be called immediately | ||
2212 | * after that again and should not fail in that case. The driver should | ||
2213 | * not call cfg80211_sched_scan_stopped() for a requested stop (when this | ||
2214 | * method returns 0.) | ||
2210 | * | 2215 | * |
2211 | * @mgmt_frame_register: Notify driver that a management frame type was | 2216 | * @mgmt_frame_register: Notify driver that a management frame type was |
2212 | * registered. Note that this callback may not sleep, and cannot run | 2217 | * registered. Note that this callback may not sleep, and cannot run |
@@ -2465,7 +2470,8 @@ struct cfg80211_ops { | |||
2465 | 2470 | ||
2466 | int (*tdls_mgmt)(struct wiphy *wiphy, struct net_device *dev, | 2471 | int (*tdls_mgmt)(struct wiphy *wiphy, struct net_device *dev, |
2467 | u8 *peer, u8 action_code, u8 dialog_token, | 2472 | u8 *peer, u8 action_code, u8 dialog_token, |
2468 | u16 status_code, const u8 *buf, size_t len); | 2473 | u16 status_code, u32 peer_capability, |
2474 | const u8 *buf, size_t len); | ||
2469 | int (*tdls_oper)(struct wiphy *wiphy, struct net_device *dev, | 2475 | int (*tdls_oper)(struct wiphy *wiphy, struct net_device *dev, |
2470 | u8 *peer, enum nl80211_tdls_operation oper); | 2476 | u8 *peer, enum nl80211_tdls_operation oper); |
2471 | 2477 | ||
@@ -2610,9 +2616,12 @@ struct ieee80211_iface_limit { | |||
2610 | * only in special cases. | 2616 | * only in special cases. |
2611 | * @radar_detect_widths: bitmap of channel widths supported for radar detection | 2617 | * @radar_detect_widths: bitmap of channel widths supported for radar detection |
2612 | * | 2618 | * |
2613 | * These examples can be expressed as follows: | 2619 | * With this structure the driver can describe which interface |
2620 | * combinations it supports concurrently. | ||
2614 | * | 2621 | * |
2615 | * Allow #STA <= 1, #AP <= 1, matching BI, channels = 1, 2 total: | 2622 | * Examples: |
2623 | * | ||
2624 | * 1. Allow #STA <= 1, #AP <= 1, matching BI, channels = 1, 2 total: | ||
2616 | * | 2625 | * |
2617 | * struct ieee80211_iface_limit limits1[] = { | 2626 | * struct ieee80211_iface_limit limits1[] = { |
2618 | * { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), }, | 2627 | * { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), }, |
@@ -2626,7 +2635,7 @@ struct ieee80211_iface_limit { | |||
2626 | * }; | 2635 | * }; |
2627 | * | 2636 | * |
2628 | * | 2637 | * |
2629 | * Allow #{AP, P2P-GO} <= 8, channels = 1, 8 total: | 2638 | * 2. Allow #{AP, P2P-GO} <= 8, channels = 1, 8 total: |
2630 | * | 2639 | * |
2631 | * struct ieee80211_iface_limit limits2[] = { | 2640 | * struct ieee80211_iface_limit limits2[] = { |
2632 | * { .max = 8, .types = BIT(NL80211_IFTYPE_AP) | | 2641 | * { .max = 8, .types = BIT(NL80211_IFTYPE_AP) | |
@@ -2640,7 +2649,8 @@ struct ieee80211_iface_limit { | |||
2640 | * }; | 2649 | * }; |
2641 | * | 2650 | * |
2642 | * | 2651 | * |
2643 | * Allow #STA <= 1, #{P2P-client,P2P-GO} <= 3 on two channels, 4 total. | 2652 | * 3. Allow #STA <= 1, #{P2P-client,P2P-GO} <= 3 on two channels, 4 total. |
2653 | * | ||
2644 | * This allows for an infrastructure connection and three P2P connections. | 2654 | * This allows for an infrastructure connection and three P2P connections. |
2645 | * | 2655 | * |
2646 | * struct ieee80211_iface_limit limits3[] = { | 2656 | * struct ieee80211_iface_limit limits3[] = { |
@@ -2790,7 +2800,7 @@ struct wiphy_vendor_command { | |||
2790 | * @perm_addr: permanent MAC address of this device | 2800 | * @perm_addr: permanent MAC address of this device |
2791 | * @addr_mask: If the device supports multiple MAC addresses by masking, | 2801 | * @addr_mask: If the device supports multiple MAC addresses by masking, |
2792 | * set this to a mask with variable bits set to 1, e.g. if the last | 2802 | * set this to a mask with variable bits set to 1, e.g. if the last |
2793 | * four bits are variable then set it to 00:...:00:0f. The actual | 2803 | * four bits are variable then set it to 00-00-00-00-00-0f. The actual |
2794 | * variable bits shall be determined by the interfaces added, with | 2804 | * variable bits shall be determined by the interfaces added, with |
2795 | * interfaces not matching the mask being rejected to be brought up. | 2805 | * interfaces not matching the mask being rejected to be brought up. |
2796 | * @n_addresses: number of addresses in @addresses. | 2806 | * @n_addresses: number of addresses in @addresses. |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 4f0f29dce0aa..86faa413b37d 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -66,10 +66,6 @@ | |||
66 | * | 66 | * |
67 | * Secondly, when the hardware handles fragmentation, the frame handed to | 67 | * Secondly, when the hardware handles fragmentation, the frame handed to |
68 | * the driver from mac80211 is the MSDU, not the MPDU. | 68 | * the driver from mac80211 is the MSDU, not the MPDU. |
69 | * | ||
70 | * Finally, for received frames, the driver is able to indicate that it has | ||
71 | * filled a radiotap header and put that in front of the frame; if it does | ||
72 | * not do so then mac80211 may add this under certain circumstances. | ||
73 | */ | 69 | */ |
74 | 70 | ||
75 | /** | 71 | /** |
@@ -1507,8 +1503,6 @@ struct ieee80211_tx_control { | |||
1507 | * @IEEE80211_HW_CONNECTION_MONITOR: | 1503 | * @IEEE80211_HW_CONNECTION_MONITOR: |
1508 | * The hardware performs its own connection monitoring, including | 1504 | * The hardware performs its own connection monitoring, including |
1509 | * periodic keep-alives to the AP and probing the AP on beacon loss. | 1505 | * periodic keep-alives to the AP and probing the AP on beacon loss. |
1510 | * When this flag is set, signaling beacon-loss will cause an immediate | ||
1511 | * change to disassociated state. | ||
1512 | * | 1506 | * |
1513 | * @IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC: | 1507 | * @IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC: |
1514 | * This device needs to get data from beacon before association (i.e. | 1508 | * This device needs to get data from beacon before association (i.e. |
@@ -1644,10 +1638,6 @@ enum ieee80211_hw_flags { | |||
1644 | * the hw can report back. | 1638 | * the hw can report back. |
1645 | * @max_rate_tries: maximum number of tries for each stage | 1639 | * @max_rate_tries: maximum number of tries for each stage |
1646 | * | 1640 | * |
1647 | * @napi_weight: weight used for NAPI polling. You must specify an | ||
1648 | * appropriate value here if a napi_poll operation is provided | ||
1649 | * by your driver. | ||
1650 | * | ||
1651 | * @max_rx_aggregation_subframes: maximum buffer size (number of | 1641 | * @max_rx_aggregation_subframes: maximum buffer size (number of |
1652 | * sub-frames) to be used for A-MPDU block ack receiver | 1642 | * sub-frames) to be used for A-MPDU block ack receiver |
1653 | * aggregation. | 1643 | * aggregation. |
@@ -1701,7 +1691,6 @@ struct ieee80211_hw { | |||
1701 | int vif_data_size; | 1691 | int vif_data_size; |
1702 | int sta_data_size; | 1692 | int sta_data_size; |
1703 | int chanctx_data_size; | 1693 | int chanctx_data_size; |
1704 | int napi_weight; | ||
1705 | u16 queues; | 1694 | u16 queues; |
1706 | u16 max_listen_interval; | 1695 | u16 max_listen_interval; |
1707 | s8 max_signal; | 1696 | s8 max_signal; |
@@ -2471,6 +2460,7 @@ enum ieee80211_roc_type { | |||
2471 | * This process will continue until sched_scan_stop is called. | 2460 | * This process will continue until sched_scan_stop is called. |
2472 | * | 2461 | * |
2473 | * @sched_scan_stop: Tell the hardware to stop an ongoing scheduled scan. | 2462 | * @sched_scan_stop: Tell the hardware to stop an ongoing scheduled scan. |
2463 | * In this case, ieee80211_sched_scan_stopped() must not be called. | ||
2474 | * | 2464 | * |
2475 | * @sw_scan_start: Notifier function that is called just before a software scan | 2465 | * @sw_scan_start: Notifier function that is called just before a software scan |
2476 | * is started. Can be NULL, if the driver doesn't need this notification. | 2466 | * is started. Can be NULL, if the driver doesn't need this notification. |
@@ -2624,8 +2614,6 @@ enum ieee80211_roc_type { | |||
2624 | * callback. They must then call ieee80211_chswitch_done() to indicate | 2614 | * callback. They must then call ieee80211_chswitch_done() to indicate |
2625 | * completion of the channel switch. | 2615 | * completion of the channel switch. |
2626 | * | 2616 | * |
2627 | * @napi_poll: Poll Rx queue for incoming data frames. | ||
2628 | * | ||
2629 | * @set_antenna: Set antenna configuration (tx_ant, rx_ant) on the device. | 2617 | * @set_antenna: Set antenna configuration (tx_ant, rx_ant) on the device. |
2630 | * Parameters are bitmaps of allowed antennas to use for TX/RX. Drivers may | 2618 | * Parameters are bitmaps of allowed antennas to use for TX/RX. Drivers may |
2631 | * reject TX/RX mask combinations they cannot support by returning -EINVAL | 2619 | * reject TX/RX mask combinations they cannot support by returning -EINVAL |
@@ -2820,7 +2808,7 @@ struct ieee80211_ops { | |||
2820 | struct ieee80211_vif *vif, | 2808 | struct ieee80211_vif *vif, |
2821 | struct cfg80211_sched_scan_request *req, | 2809 | struct cfg80211_sched_scan_request *req, |
2822 | struct ieee80211_sched_scan_ies *ies); | 2810 | struct ieee80211_sched_scan_ies *ies); |
2823 | void (*sched_scan_stop)(struct ieee80211_hw *hw, | 2811 | int (*sched_scan_stop)(struct ieee80211_hw *hw, |
2824 | struct ieee80211_vif *vif); | 2812 | struct ieee80211_vif *vif); |
2825 | void (*sw_scan_start)(struct ieee80211_hw *hw); | 2813 | void (*sw_scan_start)(struct ieee80211_hw *hw); |
2826 | void (*sw_scan_complete)(struct ieee80211_hw *hw); | 2814 | void (*sw_scan_complete)(struct ieee80211_hw *hw); |
@@ -2884,7 +2872,6 @@ struct ieee80211_ops { | |||
2884 | void (*flush)(struct ieee80211_hw *hw, u32 queues, bool drop); | 2872 | void (*flush)(struct ieee80211_hw *hw, u32 queues, bool drop); |
2885 | void (*channel_switch)(struct ieee80211_hw *hw, | 2873 | void (*channel_switch)(struct ieee80211_hw *hw, |
2886 | struct ieee80211_channel_switch *ch_switch); | 2874 | struct ieee80211_channel_switch *ch_switch); |
2887 | int (*napi_poll)(struct ieee80211_hw *hw, int budget); | ||
2888 | int (*set_antenna)(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant); | 2875 | int (*set_antenna)(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant); |
2889 | int (*get_antenna)(struct ieee80211_hw *hw, u32 *tx_ant, u32 *rx_ant); | 2876 | int (*get_antenna)(struct ieee80211_hw *hw, u32 *tx_ant, u32 *rx_ant); |
2890 | 2877 | ||
@@ -3166,21 +3153,21 @@ void ieee80211_free_hw(struct ieee80211_hw *hw); | |||
3166 | */ | 3153 | */ |
3167 | void ieee80211_restart_hw(struct ieee80211_hw *hw); | 3154 | void ieee80211_restart_hw(struct ieee80211_hw *hw); |
3168 | 3155 | ||
3169 | /** ieee80211_napi_schedule - schedule NAPI poll | 3156 | /** |
3170 | * | 3157 | * ieee80211_napi_add - initialize mac80211 NAPI context |
3171 | * Use this function to schedule NAPI polling on a device. | 3158 | * @hw: the hardware to initialize the NAPI context on |
3172 | * | 3159 | * @napi: the NAPI context to initialize |
3173 | * @hw: the hardware to start polling | 3160 | * @napi_dev: dummy NAPI netdevice, here to not waste the space if the |
3174 | */ | 3161 | * driver doesn't use NAPI |
3175 | void ieee80211_napi_schedule(struct ieee80211_hw *hw); | 3162 | * @poll: poll function |
3176 | 3163 | * @weight: default weight | |
3177 | /** ieee80211_napi_complete - complete NAPI polling | ||
3178 | * | ||
3179 | * Use this function to finish NAPI polling on a device. | ||
3180 | * | 3164 | * |
3181 | * @hw: the hardware to stop polling | 3165 | * See also netif_napi_add(). |
3182 | */ | 3166 | */ |
3183 | void ieee80211_napi_complete(struct ieee80211_hw *hw); | 3167 | void ieee80211_napi_add(struct ieee80211_hw *hw, struct napi_struct *napi, |
3168 | struct net_device *napi_dev, | ||
3169 | int (*poll)(struct napi_struct *, int), | ||
3170 | int weight); | ||
3184 | 3171 | ||
3185 | /** | 3172 | /** |
3186 | * ieee80211_rx - receive frame | 3173 | * ieee80211_rx - receive frame |
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index a12e6cae5132..ff72cab3cd3a 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h | |||
@@ -303,8 +303,9 @@ | |||
303 | * passed, all channels allowed for the current regulatory domain | 303 | * passed, all channels allowed for the current regulatory domain |
304 | * are used. Extra IEs can also be passed from the userspace by | 304 | * are used. Extra IEs can also be passed from the userspace by |
305 | * using the %NL80211_ATTR_IE attribute. | 305 | * using the %NL80211_ATTR_IE attribute. |
306 | * @NL80211_CMD_STOP_SCHED_SCAN: stop a scheduled scan. Returns -ENOENT | 306 | * @NL80211_CMD_STOP_SCHED_SCAN: stop a scheduled scan. Returns -ENOENT if |
307 | * if scheduled scan is not running. | 307 | * scheduled scan is not running. The caller may assume that as soon |
308 | * as the call returns, it is safe to start a new scheduled scan again. | ||
308 | * @NL80211_CMD_SCHED_SCAN_RESULTS: indicates that there are scheduled scan | 309 | * @NL80211_CMD_SCHED_SCAN_RESULTS: indicates that there are scheduled scan |
309 | * results available. | 310 | * results available. |
310 | * @NL80211_CMD_SCHED_SCAN_STOPPED: indicates that the scheduled scan has | 311 | * @NL80211_CMD_SCHED_SCAN_STOPPED: indicates that the scheduled scan has |
@@ -1575,6 +1576,9 @@ enum nl80211_commands { | |||
1575 | * advertise values that cannot always be met. In such cases, an attempt | 1576 | * advertise values that cannot always be met. In such cases, an attempt |
1576 | * to add a new station entry with @NL80211_CMD_NEW_STATION may fail. | 1577 | * to add a new station entry with @NL80211_CMD_NEW_STATION may fail. |
1577 | * | 1578 | * |
1579 | * @NL80211_ATTR_TDLS_PEER_CAPABILITY: flags for TDLS peer capabilities, u32. | ||
1580 | * As specified in the &enum nl80211_tdls_peer_capability. | ||
1581 | * | ||
1578 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 1582 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
1579 | * @__NL80211_ATTR_AFTER_LAST: internal use | 1583 | * @__NL80211_ATTR_AFTER_LAST: internal use |
1580 | */ | 1584 | */ |
@@ -1908,6 +1912,8 @@ enum nl80211_attrs { | |||
1908 | 1912 | ||
1909 | NL80211_ATTR_MAX_AP_ASSOC_STA, | 1913 | NL80211_ATTR_MAX_AP_ASSOC_STA, |
1910 | 1914 | ||
1915 | NL80211_ATTR_TDLS_PEER_CAPABILITY, | ||
1916 | |||
1911 | /* add attributes here, update the policy in nl80211.c */ | 1917 | /* add attributes here, update the policy in nl80211.c */ |
1912 | 1918 | ||
1913 | __NL80211_ATTR_AFTER_LAST, | 1919 | __NL80211_ATTR_AFTER_LAST, |
@@ -2437,10 +2443,7 @@ enum nl80211_reg_type { | |||
2437 | * in KHz. This is not a center a frequency but an actual regulatory | 2443 | * in KHz. This is not a center a frequency but an actual regulatory |
2438 | * band edge. | 2444 | * band edge. |
2439 | * @NL80211_ATTR_FREQ_RANGE_MAX_BW: maximum allowed bandwidth for this | 2445 | * @NL80211_ATTR_FREQ_RANGE_MAX_BW: maximum allowed bandwidth for this |
2440 | * frequency range, in KHz. If not present or 0, maximum available | 2446 | * frequency range, in KHz. |
2441 | * bandwidth should be calculated base on contiguous rules and wider | ||
2442 | * channels will be allowed to cross multiple contiguous/overlapping | ||
2443 | * frequency ranges. | ||
2444 | * @NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN: the maximum allowed antenna gain | 2447 | * @NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN: the maximum allowed antenna gain |
2445 | * for a given frequency range. The value is in mBi (100 * dBi). | 2448 | * for a given frequency range. The value is in mBi (100 * dBi). |
2446 | * If you don't have one then don't send this. | 2449 | * If you don't have one then don't send this. |
@@ -2511,6 +2514,9 @@ enum nl80211_sched_scan_match_attr { | |||
2511 | * @NL80211_RRF_NO_IR: no mechanisms that initiate radiation are allowed, | 2514 | * @NL80211_RRF_NO_IR: no mechanisms that initiate radiation are allowed, |
2512 | * this includes probe requests or modes of operation that require | 2515 | * this includes probe requests or modes of operation that require |
2513 | * beaconing. | 2516 | * beaconing. |
2517 | * @NL80211_RRF_AUTO_BW: maximum available bandwidth should be calculated | ||
2518 | * base on contiguous rules and wider channels will be allowed to cross | ||
2519 | * multiple contiguous/overlapping frequency ranges. | ||
2514 | */ | 2520 | */ |
2515 | enum nl80211_reg_rule_flags { | 2521 | enum nl80211_reg_rule_flags { |
2516 | NL80211_RRF_NO_OFDM = 1<<0, | 2522 | NL80211_RRF_NO_OFDM = 1<<0, |
@@ -2522,6 +2528,7 @@ enum nl80211_reg_rule_flags { | |||
2522 | NL80211_RRF_PTMP_ONLY = 1<<6, | 2528 | NL80211_RRF_PTMP_ONLY = 1<<6, |
2523 | NL80211_RRF_NO_IR = 1<<7, | 2529 | NL80211_RRF_NO_IR = 1<<7, |
2524 | __NL80211_RRF_NO_IBSS = 1<<8, | 2530 | __NL80211_RRF_NO_IBSS = 1<<8, |
2531 | NL80211_RRF_AUTO_BW = 1<<11, | ||
2525 | }; | 2532 | }; |
2526 | 2533 | ||
2527 | #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR | 2534 | #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR |
@@ -3843,11 +3850,6 @@ enum nl80211_ap_sme_features { | |||
3843 | * @NL80211_FEATURE_CELL_BASE_REG_HINTS: This driver has been tested | 3850 | * @NL80211_FEATURE_CELL_BASE_REG_HINTS: This driver has been tested |
3844 | * to work properly to suppport receiving regulatory hints from | 3851 | * to work properly to suppport receiving regulatory hints from |
3845 | * cellular base stations. | 3852 | * cellular base stations. |
3846 | * @NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL: If this is set, an active | ||
3847 | * P2P Device (%NL80211_IFTYPE_P2P_DEVICE) requires its own channel | ||
3848 | * in the interface combinations, even when it's only used for scan | ||
3849 | * and remain-on-channel. This could be due to, for example, the | ||
3850 | * remain-on-channel implementation requiring a channel context. | ||
3851 | * @NL80211_FEATURE_SAE: This driver supports simultaneous authentication of | 3853 | * @NL80211_FEATURE_SAE: This driver supports simultaneous authentication of |
3852 | * equals (SAE) with user space SME (NL80211_CMD_AUTHENTICATE) in station | 3854 | * equals (SAE) with user space SME (NL80211_CMD_AUTHENTICATE) in station |
3853 | * mode | 3855 | * mode |
@@ -3889,7 +3891,7 @@ enum nl80211_feature_flags { | |||
3889 | NL80211_FEATURE_HT_IBSS = 1 << 1, | 3891 | NL80211_FEATURE_HT_IBSS = 1 << 1, |
3890 | NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2, | 3892 | NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2, |
3891 | NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3, | 3893 | NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3, |
3892 | NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 1 << 4, | 3894 | /* bit 4 is reserved - don't use */ |
3893 | NL80211_FEATURE_SAE = 1 << 5, | 3895 | NL80211_FEATURE_SAE = 1 << 5, |
3894 | NL80211_FEATURE_LOW_PRIORITY_SCAN = 1 << 6, | 3896 | NL80211_FEATURE_LOW_PRIORITY_SCAN = 1 << 6, |
3895 | NL80211_FEATURE_SCAN_FLUSH = 1 << 7, | 3897 | NL80211_FEATURE_SCAN_FLUSH = 1 << 7, |
@@ -4079,4 +4081,20 @@ struct nl80211_vendor_cmd_info { | |||
4079 | __u32 subcmd; | 4081 | __u32 subcmd; |
4080 | }; | 4082 | }; |
4081 | 4083 | ||
4084 | /** | ||
4085 | * enum nl80211_tdls_peer_capability - TDLS peer flags. | ||
4086 | * | ||
4087 | * Used by tdls_mgmt() to determine which conditional elements need | ||
4088 | * to be added to TDLS Setup frames. | ||
4089 | * | ||
4090 | * @NL80211_TDLS_PEER_HT: TDLS peer is HT capable. | ||
4091 | * @NL80211_TDLS_PEER_VHT: TDLS peer is VHT capable. | ||
4092 | * @NL80211_TDLS_PEER_WMM: TDLS peer is WMM capable. | ||
4093 | */ | ||
4094 | enum nl80211_tdls_peer_capability { | ||
4095 | NL80211_TDLS_PEER_HT = 1<<0, | ||
4096 | NL80211_TDLS_PEER_VHT = 1<<1, | ||
4097 | NL80211_TDLS_PEER_WMM = 1<<2, | ||
4098 | }; | ||
4099 | |||
4082 | #endif /* __LINUX_NL80211_H */ | 4100 | #endif /* __LINUX_NL80211_H */ |