diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-02 23:53:45 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-02 23:53:45 -0400 |
commit | cd6362befe4cc7bf589a5236d2a780af2d47bcc9 (patch) | |
tree | 3bd4e13ec3f92a00dc4f6c3d65e820b54dbfe46e /include/net/cfg80211.h | |
parent | 0f1b1e6d73cb989ce2c071edc57deade3b084dfe (diff) | |
parent | b1586f099ba897542ece36e8a23c1a62907261ef (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.h | 90 |
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 | */ |
155 | struct ieee80211_channel { | 156 | struct 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 | */ |
1399 | struct cfg80211_match_set { | 1402 | struct 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 | */ |
1425 | struct cfg80211_sched_scan_request { | 1430 | struct 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 | */ |
1726 | struct cfg80211_connect_params { | 1737 | struct 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 | */ |
2879 | struct wiphy { | 2909 | struct 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 | */ |
3656 | struct cfg80211_bss * __must_check | 3688 | struct cfg80211_bss * __must_check |
3657 | cfg80211_inform_bss_width_frame(struct wiphy *wiphy, | 3689 | cfg80211_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 | ||
3663 | static inline struct cfg80211_bss * __must_check | 3695 | static inline struct cfg80211_bss * __must_check |
3664 | cfg80211_inform_bss_frame(struct wiphy *wiphy, | 3696 | cfg80211_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 | */ |
3695 | struct cfg80211_bss * __must_check | 3727 | struct cfg80211_bss * __must_check |
3696 | cfg80211_inform_bss_width(struct wiphy *wiphy, | 3728 | cfg80211_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 | ||
3703 | static inline struct cfg80211_bss * __must_check | 3735 | static inline struct cfg80211_bss * __must_check |
3704 | cfg80211_inform_bss(struct wiphy *wiphy, | 3736 | cfg80211_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 | */ |
3888 | void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid, gfp_t gfp); | 3921 | void 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 |