diff options
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/cfg80211.h | 24 | ||||
-rw-r--r-- | include/net/mac80211.h | 43 |
2 files changed, 32 insertions, 35 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 |