2 * Copyright (c) 2016 Quantenna Communications, Inc.
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version 2
7 * of the License, or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
16 #ifndef QLINK_COMMANDS_H_
17 #define QLINK_COMMANDS_H_
19 #include <linux/nl80211.h>
24 int qtnf_cmd_send_init_fw(struct qtnf_bus
*bus
);
25 void qtnf_cmd_send_deinit_fw(struct qtnf_bus
*bus
);
26 int qtnf_cmd_get_hw_info(struct qtnf_bus
*bus
);
27 int qtnf_cmd_get_mac_info(struct qtnf_wmac
*mac
);
28 int qtnf_cmd_send_add_intf(struct qtnf_vif
*vif
, enum nl80211_iftype iftype
,
30 int qtnf_cmd_send_change_intf_type(struct qtnf_vif
*vif
,
31 enum nl80211_iftype iftype
, u8
*mac_addr
);
32 int qtnf_cmd_send_del_intf(struct qtnf_vif
*vif
);
33 int qtnf_cmd_band_info_get(struct qtnf_wmac
*mac
,
34 struct ieee80211_supported_band
*band
);
35 int qtnf_cmd_send_regulatory_config(struct qtnf_wmac
*mac
, const char *alpha2
);
36 int qtnf_cmd_send_start_ap(struct qtnf_vif
*vif
,
37 const struct cfg80211_ap_settings
*s
);
38 int qtnf_cmd_send_stop_ap(struct qtnf_vif
*vif
);
39 int qtnf_cmd_send_register_mgmt(struct qtnf_vif
*vif
, u16 frame_type
, bool reg
);
40 int qtnf_cmd_send_mgmt_frame(struct qtnf_vif
*vif
, u32 cookie
, u16 flags
,
41 u16 freq
, const u8
*buf
, size_t len
);
42 int qtnf_cmd_send_mgmt_set_appie(struct qtnf_vif
*vif
, u8 frame_type
,
43 const u8
*buf
, size_t len
);
44 int qtnf_cmd_get_sta_info(struct qtnf_vif
*vif
, const u8
*sta_mac
,
45 struct station_info
*sinfo
);
46 int qtnf_cmd_send_phy_params(struct qtnf_wmac
*mac
, u16 cmd_action
,
48 int qtnf_cmd_send_add_key(struct qtnf_vif
*vif
, u8 key_index
, bool pairwise
,
49 const u8
*mac_addr
, struct key_params
*params
);
50 int qtnf_cmd_send_del_key(struct qtnf_vif
*vif
, u8 key_index
, bool pairwise
,
52 int qtnf_cmd_send_set_default_key(struct qtnf_vif
*vif
, u8 key_index
,
53 bool unicast
, bool multicast
);
54 int qtnf_cmd_send_set_default_mgmt_key(struct qtnf_vif
*vif
, u8 key_index
);
55 int qtnf_cmd_send_add_sta(struct qtnf_vif
*vif
, const u8
*mac
,
56 struct station_parameters
*params
);
57 int qtnf_cmd_send_change_sta(struct qtnf_vif
*vif
, const u8
*mac
,
58 struct station_parameters
*params
);
59 int qtnf_cmd_send_del_sta(struct qtnf_vif
*vif
,
60 struct station_del_parameters
*params
);
62 int qtnf_cmd_resp_parse(struct qtnf_bus
*bus
, struct sk_buff
*resp_skb
);
63 int qtnf_cmd_resp_check(const struct qtnf_vif
*vif
,
64 const struct sk_buff
*resp_skb
, u16 cmd_id
,
65 u16
*result
, const u8
**payload
, size_t *payload_size
);
66 int qtnf_cmd_send_scan(struct qtnf_wmac
*mac
);
67 int qtnf_cmd_send_connect(struct qtnf_vif
*vif
,
68 struct cfg80211_connect_params
*sme
);
69 int qtnf_cmd_send_disconnect(struct qtnf_vif
*vif
,
71 int qtnf_cmd_send_updown_intf(struct qtnf_vif
*vif
,
73 int qtnf_cmd_reg_notify(struct qtnf_bus
*bus
, struct regulatory_request
*req
);
74 int qtnf_cmd_get_chan_stats(struct qtnf_wmac
*mac
, u16 channel
,
75 struct qtnf_chan_stats
*stats
);
76 int qtnf_cmd_send_chan_switch(struct qtnf_vif
*vif
,
77 struct cfg80211_csa_settings
*params
);
78 int qtnf_cmd_get_channel(struct qtnf_vif
*vif
, struct cfg80211_chan_def
*chdef
);
79 int qtnf_cmd_start_cac(const struct qtnf_vif
*vif
,
80 const struct cfg80211_chan_def
*chdef
,
82 int qtnf_cmd_set_mac_acl(const struct qtnf_vif
*vif
,
83 const struct cfg80211_acl_data
*params
);
85 #endif /* QLINK_COMMANDS_H_ */