]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
9bb7e0f2 JB |
2 | /* |
3 | * Portions of this file | |
3bb02143 | 4 | * Copyright (C) 2018, 2020 Intel Corporation |
9bb7e0f2 | 5 | */ |
55682965 JB |
6 | #ifndef __NET_WIRELESS_NL80211_H |
7 | #define __NET_WIRELESS_NL80211_H | |
8 | ||
9 | #include "core.h" | |
10 | ||
dad82330 JB |
11 | int nl80211_init(void); |
12 | void nl80211_exit(void); | |
9bb7e0f2 | 13 | |
9bb7e0f2 JB |
14 | void *nl80211hdr_put(struct sk_buff *skb, u32 portid, u32 seq, |
15 | int flags, u8 cmd); | |
16 | bool nl80211_put_sta_rate(struct sk_buff *msg, struct rate_info *info, | |
17 | int attr); | |
18 | ||
19 | static inline u64 wdev_id(struct wireless_dev *wdev) | |
20 | { | |
21 | return (u64)wdev->identifier | | |
22 | ((u64)wiphy_to_rdev(wdev->wiphy)->wiphy_idx << 32); | |
23 | } | |
24 | ||
25 | int nl80211_prepare_wdev_dump(struct netlink_callback *cb, | |
26 | struct cfg80211_registered_device **rdev, | |
27 | struct wireless_dev **wdev); | |
28 | ||
29 | int nl80211_parse_chandef(struct cfg80211_registered_device *rdev, | |
30 | struct genl_info *info, | |
31 | struct cfg80211_chan_def *chandef); | |
32 | int nl80211_parse_random_mac(struct nlattr **attrs, | |
33 | u8 *mac_addr, u8 *mac_addr_mask); | |
34 | ||
3bb20556 JB |
35 | void nl80211_notify_wiphy(struct cfg80211_registered_device *rdev, |
36 | enum nl80211_commands cmd); | |
896ff063 DK |
37 | void nl80211_notify_iface(struct cfg80211_registered_device *rdev, |
38 | struct wireless_dev *wdev, | |
39 | enum nl80211_commands cmd); | |
dad82330 | 40 | void nl80211_send_scan_start(struct cfg80211_registered_device *rdev, |
fd014284 | 41 | struct wireless_dev *wdev); |
f9d15d16 JB |
42 | struct sk_buff *nl80211_build_scan_msg(struct cfg80211_registered_device *rdev, |
43 | struct wireless_dev *wdev, bool aborted); | |
505a2e88 AVS |
44 | void nl80211_send_scan_msg(struct cfg80211_registered_device *rdev, |
45 | struct sk_buff *msg); | |
96b08fd6 | 46 | void nl80211_send_sched_scan(struct cfg80211_sched_scan_request *req, u32 cmd); |
b0d7aa59 JD |
47 | void nl80211_common_reg_change_event(enum nl80211_commands cmd_id, |
48 | struct regulatory_request *request); | |
49 | ||
50 | static inline void | |
51 | nl80211_send_reg_change_event(struct regulatory_request *request) | |
52 | { | |
53 | nl80211_common_reg_change_event(NL80211_CMD_REG_CHANGE, request); | |
54 | } | |
55 | ||
56 | static inline void | |
57 | nl80211_send_wiphy_reg_change_event(struct regulatory_request *request) | |
58 | { | |
59 | nl80211_common_reg_change_event(NL80211_CMD_WIPHY_REG_CHANGE, request); | |
60 | } | |
61 | ||
dad82330 JB |
62 | void nl80211_send_rx_auth(struct cfg80211_registered_device *rdev, |
63 | struct net_device *netdev, | |
e6d6e342 | 64 | const u8 *buf, size_t len, gfp_t gfp); |
dad82330 JB |
65 | void nl80211_send_rx_assoc(struct cfg80211_registered_device *rdev, |
66 | struct net_device *netdev, | |
b0b6aa2c | 67 | const u8 *buf, size_t len, gfp_t gfp, |
4d9ec73d JM |
68 | int uapsd_queues, |
69 | const u8 *req_ies, size_t req_ies_len); | |
dad82330 JB |
70 | void nl80211_send_deauth(struct cfg80211_registered_device *rdev, |
71 | struct net_device *netdev, | |
3bb02143 JB |
72 | const u8 *buf, size_t len, |
73 | bool reconnect, gfp_t gfp); | |
dad82330 JB |
74 | void nl80211_send_disassoc(struct cfg80211_registered_device *rdev, |
75 | struct net_device *netdev, | |
3bb02143 JB |
76 | const u8 *buf, size_t len, |
77 | bool reconnect, gfp_t gfp); | |
dad82330 JB |
78 | void nl80211_send_auth_timeout(struct cfg80211_registered_device *rdev, |
79 | struct net_device *netdev, | |
e6d6e342 | 80 | const u8 *addr, gfp_t gfp); |
dad82330 | 81 | void nl80211_send_assoc_timeout(struct cfg80211_registered_device *rdev, |
53b46b84 | 82 | struct net_device *netdev, |
e6d6e342 | 83 | const u8 *addr, gfp_t gfp); |
b23aa676 | 84 | void nl80211_send_connect_result(struct cfg80211_registered_device *rdev, |
5349a0f7 VK |
85 | struct net_device *netdev, |
86 | struct cfg80211_connect_resp_params *params, | |
3093ebbe | 87 | gfp_t gfp); |
b23aa676 | 88 | void nl80211_send_roamed(struct cfg80211_registered_device *rdev, |
29ce6ecb AS |
89 | struct net_device *netdev, |
90 | struct cfg80211_roam_info *info, gfp_t gfp); | |
503c1fb9 AS |
91 | void nl80211_send_port_authorized(struct cfg80211_registered_device *rdev, |
92 | struct net_device *netdev, const u8 *bssid); | |
b23aa676 SO |
93 | void nl80211_send_disconnected(struct cfg80211_registered_device *rdev, |
94 | struct net_device *netdev, u16 reason, | |
667503dd | 95 | const u8 *ie, size_t ie_len, bool from_ap); |
b23aa676 | 96 | |
dad82330 | 97 | void |
a3b8b056 JM |
98 | nl80211_michael_mic_failure(struct cfg80211_registered_device *rdev, |
99 | struct net_device *netdev, const u8 *addr, | |
100 | enum nl80211_key_type key_type, | |
e6d6e342 | 101 | int key_id, const u8 *tsc, gfp_t gfp); |
55682965 | 102 | |
dad82330 | 103 | void |
6bad8766 LR |
104 | nl80211_send_beacon_hint_event(struct wiphy *wiphy, |
105 | struct ieee80211_channel *channel_before, | |
106 | struct ieee80211_channel *channel_after); | |
107 | ||
04a773ad JB |
108 | void nl80211_send_ibss_bssid(struct cfg80211_registered_device *rdev, |
109 | struct net_device *netdev, const u8 *bssid, | |
110 | gfp_t gfp); | |
111 | ||
2e161f78 | 112 | int nl80211_send_mgmt(struct cfg80211_registered_device *rdev, |
71bbc994 | 113 | struct wireless_dev *wdev, u32 nlpid, |
804483e9 | 114 | int freq, int sig_dbm, |
19504cf5 | 115 | const u8 *buf, size_t len, u32 flags, gfp_t gfp); |
04f39047 SW |
116 | |
117 | void | |
118 | nl80211_radar_notify(struct cfg80211_registered_device *rdev, | |
d2859df5 | 119 | const struct cfg80211_chan_def *chandef, |
04f39047 SW |
120 | enum nl80211_radar_event event, |
121 | struct net_device *netdev, gfp_t gfp); | |
122 | ||
348baf0e JB |
123 | void nl80211_send_ap_stopped(struct wireless_dev *wdev); |
124 | ||
be29b99a AK |
125 | void cfg80211_rdev_free_coalesce(struct cfg80211_registered_device *rdev); |
126 | ||
9bb7e0f2 JB |
127 | /* peer measurement */ |
128 | int nl80211_pmsr_start(struct sk_buff *skb, struct genl_info *info); | |
129 | int nl80211_pmsr_dump_results(struct sk_buff *skb, struct netlink_callback *cb); | |
130 | ||
55682965 | 131 | #endif /* __NET_WIRELESS_NL80211_H */ |