aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/qca-vendor.h
diff options
context:
space:
mode:
authorArif Hussain <c_arifh@qca.qualcomm.com>2014-01-24 14:14:29 (GMT)
committerJouni Malinen <j@w1.fi>2014-01-27 09:49:05 (GMT)
commit253f2e37957e726677d545f5598aad56d7d33bf5 (patch)
tree08b770d19c906a85220aefd1cf224804e2f537b1 /src/common/qca-vendor.h
parent1682c6236017f28b8fdb3b791565c835e988a559 (diff)
downloadhostap-253f2e37957e726677d545f5598aad56d7d33bf5.zip
hostap-253f2e37957e726677d545f5598aad56d7d33bf5.tar.gz
hostap-253f2e37957e726677d545f5598aad56d7d33bf5.tar.bz2
P2P: Apply unsafe frequency rules to available channels
This adds a QCA vendor specific nl80211 event to allow the driver to indicate a list of frequency ranges that should be avoided due to interference or possible known co-existance constraints. Such frequencies are marked as not allowed for P2P use to force groups to be formed on different channels. If a P2P GO is operating on a channel that the driver recommended not to use, a notification about this is sent on the control interface and upper layer code may decide to tear down the group and optionally restart it on another channel. As a TODO item, this could also be changed to use CSA to avoid removing the group. Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Diffstat (limited to 'src/common/qca-vendor.h')
-rw-r--r--src/common/qca-vendor.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/common/qca-vendor.h b/src/common/qca-vendor.h
index 6e2f0c0..0d83920 100644
--- a/src/common/qca-vendor.h
+++ b/src/common/qca-vendor.h
@@ -24,10 +24,28 @@
* @QCA_NL80211_VENDOR_SUBCMD_UNSPEC: Reserved value 0
*
* @QCA_NL80211_VENDOR_SUBCMD_TEST: Test command/event
+ *
+ * @QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY: Recommendation of frequency
+ * ranges to avoid to reduce issues due to interference or internal
+ * co-existence information in the driver. The event data structure is
+ * defined in struct qca_avoid_freq_list.
*/
enum qca_nl80211_vendor_subcmds {
QCA_NL80211_VENDOR_SUBCMD_UNSPEC = 0,
QCA_NL80211_VENDOR_SUBCMD_TEST = 1,
+ /* subcmds 2..9 not yet allocated */
+ QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY = 10,
};
+
+struct qca_avoid_freq_range {
+ u32 start_freq;
+ u32 end_freq;
+} STRUCT_PACKED;
+
+struct qca_avoid_freq_list {
+ u32 count;
+ struct qca_avoid_freq_range range[0];
+} STRUCT_PACKED;
+
#endif /* QCA_VENDOR_H */