aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/cfg80211.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-04-02 23:53:45 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-04-02 23:53:45 -0400
commitcd6362befe4cc7bf589a5236d2a780af2d47bcc9 (patch)
tree3bd4e13ec3f92a00dc4f6c3d65e820b54dbfe46e /include/net/cfg80211.h
parent0f1b1e6d73cb989ce2c071edc57deade3b084dfe (diff)
parentb1586f099ba897542ece36e8a23c1a62907261ef (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Pull networking updates from David Miller: "Here is my initial pull request for the networking subsystem during this merge window: 1) Support for ESN in AH (RFC 4302) from Fan Du. 2) Add full kernel doc for ethtool command structures, from Ben Hutchings. 3) Add BCM7xxx PHY driver, from Florian Fainelli. 4) Export computed TCP rate information in netlink socket dumps, from Eric Dumazet. 5) Allow IPSEC SA to be dumped partially using a filter, from Nicolas Dichtel. 6) Convert many drivers to pci_enable_msix_range(), from Alexander Gordeev. 7) Record SKB timestamps more efficiently, from Eric Dumazet. 8) Switch to microsecond resolution for TCP round trip times, also from Eric Dumazet. 9) Clean up and fix 6lowpan fragmentation handling by making use of the existing inet_frag api for it's implementation. 10) Add TX grant mapping to xen-netback driver, from Zoltan Kiss. 11) Auto size SKB lengths when composing netlink messages based upon past message sizes used, from Eric Dumazet. 12) qdisc dumps can take a long time, add a cond_resched(), From Eric Dumazet. 13) Sanitize netpoll core and drivers wrt. SKB handling semantics. Get rid of never-used-in-tree netpoll RX handling. From Eric W Biederman. 14) Support inter-address-family and namespace changing in VTI tunnel driver(s). From Steffen Klassert. 15) Add Altera TSE driver, from Vince Bridgers. 16) Optimizing csum_replace2() so that it doesn't adjust the checksum by checksumming the entire header, from Eric Dumazet. 17) Expand BPF internal implementation for faster interpreting, more direct translations into JIT'd code, and much cleaner uses of BPF filtering in non-socket ocntexts. From Daniel Borkmann and Alexei Starovoitov" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1976 commits) netpoll: Use skb_irq_freeable to make zap_completion_queue safe. net: Add a test to see if a skb is freeable in irq context qlcnic: Fix build failure due to undefined reference to `vxlan_get_rx_port' net: ptp: move PTP classifier in its own file net: sxgbe: make "core_ops" static net: sxgbe: fix logical vs bitwise operation net: sxgbe: sxgbe_mdio_register() frees the bus Call efx_set_channels() before efx->type->dimension_resources() xen-netback: disable rogue vif in kthread context net/mlx4: Set proper build dependancy with vxlan be2net: fix build dependency on VxLAN mac802154: make csma/cca parameters per-wpan mac802154: allow only one WPAN to be up at any given time net: filter: minor: fix kdoc in __sk_run_filter netlink: don't compare the nul-termination in nla_strcmp can: c_can: Avoid led toggling for every packet. can: c_can: Simplify TX interrupt cleanup can: c_can: Store dlc private can: c_can: Reduce register access can: c_can: Make the code readable ...
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r--include/net/cfg80211.h90
1 files changed, 62 insertions, 28 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index b1f84b05c67e..f3539a15c411 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -151,6 +151,7 @@ enum ieee80211_channel_flags {
151 * @dfs_state: current state of this channel. Only relevant if radar is required 151 * @dfs_state: current state of this channel. Only relevant if radar is required
152 * on this channel. 152 * on this channel.
153 * @dfs_state_entered: timestamp (jiffies) when the dfs state was entered. 153 * @dfs_state_entered: timestamp (jiffies) when the dfs state was entered.
154 * @dfs_cac_ms: DFS CAC time in milliseconds, this is valid for DFS channels.
154 */ 155 */
155struct ieee80211_channel { 156struct ieee80211_channel {
156 enum ieee80211_band band; 157 enum ieee80211_band band;
@@ -165,6 +166,7 @@ struct ieee80211_channel {
165 int orig_mag, orig_mpwr; 166 int orig_mag, orig_mpwr;
166 enum nl80211_dfs_state dfs_state; 167 enum nl80211_dfs_state dfs_state;
167 unsigned long dfs_state_entered; 168 unsigned long dfs_state_entered;
169 unsigned int dfs_cac_ms;
168}; 170};
169 171
170/** 172/**
@@ -1394,10 +1396,12 @@ struct cfg80211_scan_request {
1394/** 1396/**
1395 * struct cfg80211_match_set - sets of attributes to match 1397 * struct cfg80211_match_set - sets of attributes to match
1396 * 1398 *
1397 * @ssid: SSID to be matched 1399 * @ssid: SSID to be matched; may be zero-length for no match (RSSI only)
1400 * @rssi_thold: don't report scan results below this threshold (in s32 dBm)
1398 */ 1401 */
1399struct cfg80211_match_set { 1402struct cfg80211_match_set {
1400 struct cfg80211_ssid ssid; 1403 struct cfg80211_ssid ssid;
1404 s32 rssi_thold;
1401}; 1405};
1402 1406
1403/** 1407/**
@@ -1420,7 +1424,8 @@ struct cfg80211_match_set {
1420 * @dev: the interface 1424 * @dev: the interface
1421 * @scan_start: start time of the scheduled scan 1425 * @scan_start: start time of the scheduled scan
1422 * @channels: channels to scan 1426 * @channels: channels to scan
1423 * @rssi_thold: don't report scan results below this threshold (in s32 dBm) 1427 * @min_rssi_thold: for drivers only supporting a single threshold, this
1428 * contains the minimum over all matchsets
1424 */ 1429 */
1425struct cfg80211_sched_scan_request { 1430struct cfg80211_sched_scan_request {
1426 struct cfg80211_ssid *ssids; 1431 struct cfg80211_ssid *ssids;
@@ -1433,7 +1438,7 @@ struct cfg80211_sched_scan_request {
1433 u32 flags; 1438 u32 flags;
1434 struct cfg80211_match_set *match_sets; 1439 struct cfg80211_match_set *match_sets;
1435 int n_match_sets; 1440 int n_match_sets;
1436 s32 rssi_thold; 1441 s32 min_rssi_thold;
1437 1442
1438 /* internal */ 1443 /* internal */
1439 struct wiphy *wiphy; 1444 struct wiphy *wiphy;
@@ -1701,8 +1706,14 @@ struct cfg80211_ibss_params {
1701 * 1706 *
1702 * @channel: The channel to use or %NULL if not specified (auto-select based 1707 * @channel: The channel to use or %NULL if not specified (auto-select based
1703 * on scan results) 1708 * on scan results)
1709 * @channel_hint: The channel of the recommended BSS for initial connection or
1710 * %NULL if not specified
1704 * @bssid: The AP BSSID or %NULL if not specified (auto-select based on scan 1711 * @bssid: The AP BSSID or %NULL if not specified (auto-select based on scan
1705 * results) 1712 * results)
1713 * @bssid_hint: The recommended AP BSSID for initial connection to the BSS or
1714 * %NULL if not specified. Unlike the @bssid parameter, the driver is
1715 * allowed to ignore this @bssid_hint if it has knowledge of a better BSS
1716 * to use.
1706 * @ssid: SSID 1717 * @ssid: SSID
1707 * @ssid_len: Length of ssid in octets 1718 * @ssid_len: Length of ssid in octets
1708 * @auth_type: Authentication type (algorithm) 1719 * @auth_type: Authentication type (algorithm)
@@ -1725,11 +1736,13 @@ struct cfg80211_ibss_params {
1725 */ 1736 */
1726struct cfg80211_connect_params { 1737struct cfg80211_connect_params {
1727 struct ieee80211_channel *channel; 1738 struct ieee80211_channel *channel;
1728 u8 *bssid; 1739 struct ieee80211_channel *channel_hint;
1729 u8 *ssid; 1740 const u8 *bssid;
1741 const u8 *bssid_hint;
1742 const u8 *ssid;
1730 size_t ssid_len; 1743 size_t ssid_len;
1731 enum nl80211_auth_type auth_type; 1744 enum nl80211_auth_type auth_type;
1732 u8 *ie; 1745 const u8 *ie;
1733 size_t ie_len; 1746 size_t ie_len;
1734 bool privacy; 1747 bool privacy;
1735 enum nl80211_mfp mfp; 1748 enum nl80211_mfp mfp;
@@ -1768,6 +1781,7 @@ struct cfg80211_bitrate_mask {
1768 u32 legacy; 1781 u32 legacy;
1769 u8 ht_mcs[IEEE80211_HT_MCS_MASK_LEN]; 1782 u8 ht_mcs[IEEE80211_HT_MCS_MASK_LEN];
1770 u16 vht_mcs[NL80211_VHT_NSS_MAX]; 1783 u16 vht_mcs[NL80211_VHT_NSS_MAX];
1784 enum nl80211_txrate_gi gi;
1771 } control[IEEE80211_NUM_BANDS]; 1785 } control[IEEE80211_NUM_BANDS];
1772}; 1786};
1773/** 1787/**
@@ -2194,7 +2208,12 @@ struct cfg80211_qos_map {
2194 * @set_cqm_txe_config: Configure connection quality monitor TX error 2208 * @set_cqm_txe_config: Configure connection quality monitor TX error
2195 * thresholds. 2209 * thresholds.
2196 * @sched_scan_start: Tell the driver to start a scheduled scan. 2210 * @sched_scan_start: Tell the driver to start a scheduled scan.
2197 * @sched_scan_stop: Tell the driver to stop an ongoing scheduled scan. 2211 * @sched_scan_stop: Tell the driver to stop an ongoing scheduled scan. This
2212 * call must stop the scheduled scan and be ready for starting a new one
2213 * before it returns, i.e. @sched_scan_start may be called immediately
2214 * after that again and should not fail in that case. The driver should
2215 * not call cfg80211_sched_scan_stopped() for a requested stop (when this
2216 * method returns 0.)
2198 * 2217 *
2199 * @mgmt_frame_register: Notify driver that a management frame type was 2218 * @mgmt_frame_register: Notify driver that a management frame type was
2200 * registered. Note that this callback may not sleep, and cannot run 2219 * registered. Note that this callback may not sleep, and cannot run
@@ -2453,7 +2472,8 @@ struct cfg80211_ops {
2453 2472
2454 int (*tdls_mgmt)(struct wiphy *wiphy, struct net_device *dev, 2473 int (*tdls_mgmt)(struct wiphy *wiphy, struct net_device *dev,
2455 u8 *peer, u8 action_code, u8 dialog_token, 2474 u8 *peer, u8 action_code, u8 dialog_token,
2456 u16 status_code, const u8 *buf, size_t len); 2475 u16 status_code, u32 peer_capability,
2476 const u8 *buf, size_t len);
2457 int (*tdls_oper)(struct wiphy *wiphy, struct net_device *dev, 2477 int (*tdls_oper)(struct wiphy *wiphy, struct net_device *dev,
2458 u8 *peer, enum nl80211_tdls_operation oper); 2478 u8 *peer, enum nl80211_tdls_operation oper);
2459 2479
@@ -2485,7 +2505,8 @@ struct cfg80211_ops {
2485 2505
2486 int (*start_radar_detection)(struct wiphy *wiphy, 2506 int (*start_radar_detection)(struct wiphy *wiphy,
2487 struct net_device *dev, 2507 struct net_device *dev,
2488 struct cfg80211_chan_def *chandef); 2508 struct cfg80211_chan_def *chandef,
2509 u32 cac_time_ms);
2489 int (*update_ft_ies)(struct wiphy *wiphy, struct net_device *dev, 2510 int (*update_ft_ies)(struct wiphy *wiphy, struct net_device *dev,
2490 struct cfg80211_update_ft_ies_params *ftie); 2511 struct cfg80211_update_ft_ies_params *ftie);
2491 int (*crit_proto_start)(struct wiphy *wiphy, 2512 int (*crit_proto_start)(struct wiphy *wiphy,
@@ -2598,9 +2619,12 @@ struct ieee80211_iface_limit {
2598 * only in special cases. 2619 * only in special cases.
2599 * @radar_detect_widths: bitmap of channel widths supported for radar detection 2620 * @radar_detect_widths: bitmap of channel widths supported for radar detection
2600 * 2621 *
2601 * These examples can be expressed as follows: 2622 * With this structure the driver can describe which interface
2623 * combinations it supports concurrently.
2624 *
2625 * Examples:
2602 * 2626 *
2603 * Allow #STA <= 1, #AP <= 1, matching BI, channels = 1, 2 total: 2627 * 1. Allow #STA <= 1, #AP <= 1, matching BI, channels = 1, 2 total:
2604 * 2628 *
2605 * struct ieee80211_iface_limit limits1[] = { 2629 * struct ieee80211_iface_limit limits1[] = {
2606 * { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), }, 2630 * { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), },
@@ -2614,7 +2638,7 @@ struct ieee80211_iface_limit {
2614 * }; 2638 * };
2615 * 2639 *
2616 * 2640 *
2617 * Allow #{AP, P2P-GO} <= 8, channels = 1, 8 total: 2641 * 2. Allow #{AP, P2P-GO} <= 8, channels = 1, 8 total:
2618 * 2642 *
2619 * struct ieee80211_iface_limit limits2[] = { 2643 * struct ieee80211_iface_limit limits2[] = {
2620 * { .max = 8, .types = BIT(NL80211_IFTYPE_AP) | 2644 * { .max = 8, .types = BIT(NL80211_IFTYPE_AP) |
@@ -2628,7 +2652,8 @@ struct ieee80211_iface_limit {
2628 * }; 2652 * };
2629 * 2653 *
2630 * 2654 *
2631 * Allow #STA <= 1, #{P2P-client,P2P-GO} <= 3 on two channels, 4 total. 2655 * 3. Allow #STA <= 1, #{P2P-client,P2P-GO} <= 3 on two channels, 4 total.
2656 *
2632 * This allows for an infrastructure connection and three P2P connections. 2657 * This allows for an infrastructure connection and three P2P connections.
2633 * 2658 *
2634 * struct ieee80211_iface_limit limits3[] = { 2659 * struct ieee80211_iface_limit limits3[] = {
@@ -2778,7 +2803,7 @@ struct wiphy_vendor_command {
2778 * @perm_addr: permanent MAC address of this device 2803 * @perm_addr: permanent MAC address of this device
2779 * @addr_mask: If the device supports multiple MAC addresses by masking, 2804 * @addr_mask: If the device supports multiple MAC addresses by masking,
2780 * set this to a mask with variable bits set to 1, e.g. if the last 2805 * set this to a mask with variable bits set to 1, e.g. if the last
2781 * four bits are variable then set it to 00:...:00:0f. The actual 2806 * four bits are variable then set it to 00-00-00-00-00-0f. The actual
2782 * variable bits shall be determined by the interfaces added, with 2807 * variable bits shall be determined by the interfaces added, with
2783 * interfaces not matching the mask being rejected to be brought up. 2808 * interfaces not matching the mask being rejected to be brought up.
2784 * @n_addresses: number of addresses in @addresses. 2809 * @n_addresses: number of addresses in @addresses.
@@ -2875,6 +2900,11 @@ struct wiphy_vendor_command {
2875 * @n_vendor_commands: number of vendor commands 2900 * @n_vendor_commands: number of vendor commands
2876 * @vendor_events: array of vendor events supported by the hardware 2901 * @vendor_events: array of vendor events supported by the hardware
2877 * @n_vendor_events: number of vendor events 2902 * @n_vendor_events: number of vendor events
2903 *
2904 * @max_ap_assoc_sta: maximum number of associated stations supported in AP mode
2905 * (including P2P GO) or 0 to indicate no such limit is advertised. The
2906 * driver is allowed to advertise a theoretical limit that it can reach in
2907 * some cases, but may not always reach.
2878 */ 2908 */
2879struct wiphy { 2909struct wiphy {
2880 /* assign these fields before you register the wiphy */ 2910 /* assign these fields before you register the wiphy */
@@ -2990,6 +3020,8 @@ struct wiphy {
2990 const struct nl80211_vendor_cmd_info *vendor_events; 3020 const struct nl80211_vendor_cmd_info *vendor_events;
2991 int n_vendor_commands, n_vendor_events; 3021 int n_vendor_commands, n_vendor_events;
2992 3022
3023 u16 max_ap_assoc_sta;
3024
2993 char priv[0] __aligned(NETDEV_ALIGN); 3025 char priv[0] __aligned(NETDEV_ALIGN);
2994}; 3026};
2995 3027
@@ -3127,8 +3159,8 @@ struct cfg80211_cached_keys;
3127 * @identifier: (private) Identifier used in nl80211 to identify this 3159 * @identifier: (private) Identifier used in nl80211 to identify this
3128 * wireless device if it has no netdev 3160 * wireless device if it has no netdev
3129 * @current_bss: (private) Used by the internal configuration code 3161 * @current_bss: (private) Used by the internal configuration code
3130 * @channel: (private) Used by the internal configuration code to track 3162 * @chandef: (private) Used by the internal configuration code to track
3131 * the user-set AP, monitor and WDS channel 3163 * the user-set channel definition.
3132 * @preset_chandef: (private) Used by the internal configuration code to 3164 * @preset_chandef: (private) Used by the internal configuration code to
3133 * track the channel to be used for AP later 3165 * track the channel to be used for AP later
3134 * @bssid: (private) Used by the internal configuration code 3166 * @bssid: (private) Used by the internal configuration code
@@ -3151,6 +3183,7 @@ struct cfg80211_cached_keys;
3151 * @p2p_started: true if this is a P2P Device that has been started 3183 * @p2p_started: true if this is a P2P Device that has been started
3152 * @cac_started: true if DFS channel availability check has been started 3184 * @cac_started: true if DFS channel availability check has been started
3153 * @cac_start_time: timestamp (jiffies) when the dfs state was entered. 3185 * @cac_start_time: timestamp (jiffies) when the dfs state was entered.
3186 * @cac_time_ms: CAC time in ms
3154 * @ps: powersave mode is enabled 3187 * @ps: powersave mode is enabled
3155 * @ps_timeout: dynamic powersave timeout 3188 * @ps_timeout: dynamic powersave timeout
3156 * @ap_unexpected_nlportid: (private) netlink port ID of application 3189 * @ap_unexpected_nlportid: (private) netlink port ID of application
@@ -3192,9 +3225,7 @@ struct wireless_dev {
3192 3225
3193 struct cfg80211_internal_bss *current_bss; /* associated / joined */ 3226 struct cfg80211_internal_bss *current_bss; /* associated / joined */
3194 struct cfg80211_chan_def preset_chandef; 3227 struct cfg80211_chan_def preset_chandef;
3195 3228 struct cfg80211_chan_def chandef;
3196 /* for AP and mesh channel tracking */
3197 struct ieee80211_channel *channel;
3198 3229
3199 bool ibss_fixed; 3230 bool ibss_fixed;
3200 bool ibss_dfs_possible; 3231 bool ibss_dfs_possible;
@@ -3208,6 +3239,7 @@ struct wireless_dev {
3208 3239
3209 bool cac_started; 3240 bool cac_started;
3210 unsigned long cac_start_time; 3241 unsigned long cac_start_time;
3242 unsigned int cac_time_ms;
3211 3243
3212#ifdef CONFIG_CFG80211_WEXT 3244#ifdef CONFIG_CFG80211_WEXT
3213 /* wext data */ 3245 /* wext data */
@@ -3640,7 +3672,7 @@ void cfg80211_sched_scan_stopped(struct wiphy *wiphy);
3640 * cfg80211_inform_bss_width_frame - inform cfg80211 of a received BSS frame 3672 * cfg80211_inform_bss_width_frame - inform cfg80211 of a received BSS frame
3641 * 3673 *
3642 * @wiphy: the wiphy reporting the BSS 3674 * @wiphy: the wiphy reporting the BSS
3643 * @channel: The channel the frame was received on 3675 * @rx_channel: The channel the frame was received on
3644 * @scan_width: width of the control channel 3676 * @scan_width: width of the control channel
3645 * @mgmt: the management frame (probe response or beacon) 3677 * @mgmt: the management frame (probe response or beacon)
3646 * @len: length of the management frame 3678 * @len: length of the management frame
@@ -3655,18 +3687,18 @@ void cfg80211_sched_scan_stopped(struct wiphy *wiphy);
3655 */ 3687 */
3656struct cfg80211_bss * __must_check 3688struct cfg80211_bss * __must_check
3657cfg80211_inform_bss_width_frame(struct wiphy *wiphy, 3689cfg80211_inform_bss_width_frame(struct wiphy *wiphy,
3658 struct ieee80211_channel *channel, 3690 struct ieee80211_channel *rx_channel,
3659 enum nl80211_bss_scan_width scan_width, 3691 enum nl80211_bss_scan_width scan_width,
3660 struct ieee80211_mgmt *mgmt, size_t len, 3692 struct ieee80211_mgmt *mgmt, size_t len,
3661 s32 signal, gfp_t gfp); 3693 s32 signal, gfp_t gfp);
3662 3694
3663static inline struct cfg80211_bss * __must_check 3695static inline struct cfg80211_bss * __must_check
3664cfg80211_inform_bss_frame(struct wiphy *wiphy, 3696cfg80211_inform_bss_frame(struct wiphy *wiphy,
3665 struct ieee80211_channel *channel, 3697 struct ieee80211_channel *rx_channel,
3666 struct ieee80211_mgmt *mgmt, size_t len, 3698 struct ieee80211_mgmt *mgmt, size_t len,
3667 s32 signal, gfp_t gfp) 3699 s32 signal, gfp_t gfp)
3668{ 3700{
3669 return cfg80211_inform_bss_width_frame(wiphy, channel, 3701 return cfg80211_inform_bss_width_frame(wiphy, rx_channel,
3670 NL80211_BSS_CHAN_WIDTH_20, 3702 NL80211_BSS_CHAN_WIDTH_20,
3671 mgmt, len, signal, gfp); 3703 mgmt, len, signal, gfp);
3672} 3704}
@@ -3675,7 +3707,7 @@ cfg80211_inform_bss_frame(struct wiphy *wiphy,
3675 * cfg80211_inform_bss - inform cfg80211 of a new BSS 3707 * cfg80211_inform_bss - inform cfg80211 of a new BSS
3676 * 3708 *
3677 * @wiphy: the wiphy reporting the BSS 3709 * @wiphy: the wiphy reporting the BSS
3678 * @channel: The channel the frame was received on 3710 * @rx_channel: The channel the frame was received on
3679 * @scan_width: width of the control channel 3711 * @scan_width: width of the control channel
3680 * @bssid: the BSSID of the BSS 3712 * @bssid: the BSSID of the BSS
3681 * @tsf: the TSF sent by the peer in the beacon/probe response (or 0) 3713 * @tsf: the TSF sent by the peer in the beacon/probe response (or 0)
@@ -3694,7 +3726,7 @@ cfg80211_inform_bss_frame(struct wiphy *wiphy,
3694 */ 3726 */
3695struct cfg80211_bss * __must_check 3727struct cfg80211_bss * __must_check
3696cfg80211_inform_bss_width(struct wiphy *wiphy, 3728cfg80211_inform_bss_width(struct wiphy *wiphy,
3697 struct ieee80211_channel *channel, 3729 struct ieee80211_channel *rx_channel,
3698 enum nl80211_bss_scan_width scan_width, 3730 enum nl80211_bss_scan_width scan_width,
3699 const u8 *bssid, u64 tsf, u16 capability, 3731 const u8 *bssid, u64 tsf, u16 capability,
3700 u16 beacon_interval, const u8 *ie, size_t ielen, 3732 u16 beacon_interval, const u8 *ie, size_t ielen,
@@ -3702,12 +3734,12 @@ cfg80211_inform_bss_width(struct wiphy *wiphy,
3702 3734
3703static inline struct cfg80211_bss * __must_check 3735static inline struct cfg80211_bss * __must_check
3704cfg80211_inform_bss(struct wiphy *wiphy, 3736cfg80211_inform_bss(struct wiphy *wiphy,
3705 struct ieee80211_channel *channel, 3737 struct ieee80211_channel *rx_channel,
3706 const u8 *bssid, u64 tsf, u16 capability, 3738 const u8 *bssid, u64 tsf, u16 capability,
3707 u16 beacon_interval, const u8 *ie, size_t ielen, 3739 u16 beacon_interval, const u8 *ie, size_t ielen,
3708 s32 signal, gfp_t gfp) 3740 s32 signal, gfp_t gfp)
3709{ 3741{
3710 return cfg80211_inform_bss_width(wiphy, channel, 3742 return cfg80211_inform_bss_width(wiphy, rx_channel,
3711 NL80211_BSS_CHAN_WIDTH_20, 3743 NL80211_BSS_CHAN_WIDTH_20,
3712 bssid, tsf, capability, 3744 bssid, tsf, capability,
3713 beacon_interval, ie, ielen, signal, 3745 beacon_interval, ie, ielen, signal,
@@ -3876,6 +3908,7 @@ void cfg80211_michael_mic_failure(struct net_device *dev, const u8 *addr,
3876 * 3908 *
3877 * @dev: network device 3909 * @dev: network device
3878 * @bssid: the BSSID of the IBSS joined 3910 * @bssid: the BSSID of the IBSS joined
3911 * @channel: the channel of the IBSS joined
3879 * @gfp: allocation flags 3912 * @gfp: allocation flags
3880 * 3913 *
3881 * This function notifies cfg80211 that the device joined an IBSS or 3914 * This function notifies cfg80211 that the device joined an IBSS or
@@ -3885,7 +3918,8 @@ void cfg80211_michael_mic_failure(struct net_device *dev, const u8 *addr,
3885 * with the locally generated beacon -- this guarantees that there is 3918 * with the locally generated beacon -- this guarantees that there is
3886 * always a scan result for this IBSS. cfg80211 will handle the rest. 3919 * always a scan result for this IBSS. cfg80211 will handle the rest.
3887 */ 3920 */
3888void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid, gfp_t gfp); 3921void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid,
3922 struct ieee80211_channel *channel, gfp_t gfp);
3889 3923
3890/** 3924/**
3891 * cfg80211_notify_new_candidate - notify cfg80211 of a new mesh peer candidate 3925 * cfg80211_notify_new_candidate - notify cfg80211 of a new mesh peer candidate