summaryrefslogtreecommitdiff
path: root/legacy/qcwcn/wifi_hal/nan_cert.h
diff options
context:
space:
mode:
Diffstat (limited to 'legacy/qcwcn/wifi_hal/nan_cert.h')
-rw-r--r--legacy/qcwcn/wifi_hal/nan_cert.h216
1 files changed, 216 insertions, 0 deletions
diff --git a/legacy/qcwcn/wifi_hal/nan_cert.h b/legacy/qcwcn/wifi_hal/nan_cert.h
new file mode 100644
index 0000000..85b7073
--- /dev/null
+++ b/legacy/qcwcn/wifi_hal/nan_cert.h
@@ -0,0 +1,216 @@
+/*
+ * Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
+
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * * Neither the name of The Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __NAN_CERT_H__
+#define __NAN_CERT_H__
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+#ifndef PACKED
+#define PACKED __attribute__((packed))
+#endif
+#define NAN_CERT_VERSION 5
+#define NAN_MAX_DEBUG_MESSAGE_DATA_LEN 100
+#define NAN_MAX_ALLOWED_DW_AWAKE_INTERVAL 16
+
+typedef struct {
+ /* NAN master rank being advertised by DE */
+ u64 master_rank;
+ /* NAN master preference being advertised by DE */
+ u8 master_pref;
+ /* random value being advertised by DE */
+ u8 random_factor;
+ /* hop_count from anchor master */
+ u8 hop_count;
+ u32 beacon_transmit_time;
+ /* NDP channel Frequency */
+ u32 ndp_channel_freq;
+} NanStaParameter;
+
+/* NAN Data Path Supported Band */
+typedef enum {
+ NAN_DATA_PATH_SUPPORTED_BAND_2G = 1,
+ NAN_DATA_PATH_SUPPORTED_BAND_5G = 2,
+ NAN_DATA_PATH_SUPPORT_DUAL_BAND = 3
+} NdpSupportedBand;
+
+/* NAN Responder mode policy */
+typedef enum {
+ NAN_DATA_RESPONDER_MODE_AUTO = 0,
+ NAN_DATA_RESPONDER_MODE_ACCEPT = 1,
+ NAN_DATA_RESPONDER_MODE_REJECT = 2,
+ NAN_DATA_RESPONDER_MODE_COUNTER = 3,
+ NAN_DATA_RESPONDER_MODE_COUNTER_NO_CHANNEL_CHANGE = 4
+} NanDataResponderMode;
+
+/* NAN Data Path M4 response type */
+typedef enum {
+ NAN_DATA_PATH_M4_RESPONSE_ACCEPT = 1,
+ NAN_DATA_PATH_M4_RESPONSE_REJECT = 2,
+ NAN_DATA_PATH_M4_RESPONSE_BADMIC = 3
+} NdpM4ResponseType;
+
+/* NAN NMF Security Clear type */
+typedef enum {
+ NAN_NMF_CLEAR_DISABLE = 0,
+ NAN_NMF_CLEAR_ENABLE = 1
+} NanNmfClearConfig;
+
+/* NAN Schedule type */
+typedef enum {
+ NAN_SCHED_VALID = 0,
+ NAN_SCHED_INVALID_BAD_FA = 1,
+ NAN_SCHED_INVALID_BAD_NDC = 2,
+ NAN_SCHED_INVALID_BAD_IMMU = 3
+} NanSchedType;
+
+/* NAN device type */
+typedef enum {
+ NAN_DEVICE_TYPE_TEST_BED = 1,
+ NAN_DEVICE_TYPE_DUT = 2
+} NanDeviceType;
+
+/* NAN NDPE absent or present */
+typedef enum {
+ NAN_NDPE_ATTR_PRESENT = 0,
+ NAN_NDPE_ATTR_ABSENT = 1
+} NanNdpeAttrType;
+
+/* NAN NDP absent or present */
+typedef enum {
+ NAN_NDP_ATTR_ABSENT = 0,
+ NAN_NDP_ATTR_PRESENT = 1
+} NanNdpAttrType;
+
+ /*
+ * Definitions of debug subcommand type for the
+ * generic debug command.
+ */
+typedef enum {
+ NAN_TEST_MODE_CMD_NAN_AVAILABILITY = 1,
+ NAN_TEST_MODE_CMD_NDP_INCLUDE_IMMUTABLE = 2,
+ NAN_TEST_MODE_CMD_NDP_AVOID_CHANNEL = 3,
+ NAN_TEST_MODE_CMD_NAN_SUPPORTED_BANDS = 4,
+ NAN_TEST_MODE_CMD_AUTO_RESPONDER_MODE = 5,
+ NAN_TEST_MODE_CMD_M4_RESPONSE_TYPE = 6,
+ NAN_TEST_MODE_CMD_NAN_SCHED_TYPE = 7,
+ NAN_TEST_MODE_CMD_NAN_NMF_CLEAR_CONFIG = 8,
+ NAN_TEST_MODE_CMD_NAN_SCHED_UPDATE_ULW_NOTIFY = 9,
+ NAN_TEST_MODE_CMD_NAN_SCHED_UPDATE_NDL_NEGOTIATE = 10,
+ NAN_TEST_MODE_CMD_NAN_SCHED_UPDATE_NDL_NOTIFY = 11,
+ NAN_TEST_MODE_CMD_NAN_AVAILABILITY_MAP_ORDER = 12,
+ NAN_TEST_MODE_CMD_CONFIG_QOS = 13,
+ NAN_TEST_MODE_CMD_DEVICE_TYPE = 14,
+ NAN_TEST_MODE_CMD_DISABLE_NDPE = 15,
+ NAN_TEST_MODE_CMD_ENABLE_NDP = 16,
+} NanDebugModeCmd;
+
+/*
+ * This debug command carries any one command type
+ * followed by corresponding command data content
+ * as indicated below.
+ *
+ * command: NAN_TEST_MODE_CMD_NAN_AVAILABILITY
+ * content: NAN Avaiability attribute blob
+ *
+ * command: NAN_TEST_MODE_CMD_NDP_INCLUDE_IMMUTABLE
+ * content: u32 value (0 - Ignore 1 - Include immuatable,
+ * 2 - Don't include immutable)
+ *
+ * command: NAN_TEST_MODE_CMD_NDP_AVOID_CHANNEL
+ * content: u32 channel_frequency; (0 - Ignore)
+ *
+ * command: NAN_TEST_MODE_CMD_NAN_SUPPORTED_BANDS
+ * content: u32 supported_bands; (0 . Ignore, 1 . 2g,
+ * 2 . 5g, 3 . 2g & 5g)
+ *
+ * command: NAN_TEST_MODE_CMD_AUTO_RESPONDER_MODE
+ * content: u32 auto_resp_mode; (0 . Auto, 1 . Accept,
+ * 2 . Reject, 3 . Counter)
+ *
+ * command: NAN_TEST_MODE_CMD_M4_RESPONSE_TYPE
+ * content: u32 m4_response_type; (0.Ignore, 1.Accept,
+ * 2.Reject, 3.BadMic)
+ *
+ * command: NAN_TEST_MODE_CMD_NAN_SCHED_TYPE
+ * content: u32 invalid_nan_schedule; (0. Valid sched,
+ * 1.Invalid Sched bad FA,
+ * 2.Invalid schedbad NDC,
+ * 3.Invalid sched bad Immutable)
+ *
+ * command: NAN_TEST_MODE_CMD_NAN_NMF_CLEAR_CONFIG
+ * content: u32 nmf_security_config_val;(0:NAN_NMF_CLEAR_DISABLE,
+ * 1:NAN_NMF_CLEAR_ENABLE)
+ *
+ * command: NAN_TEST_MODE_CMD_NAN_SCHED_UPDATE_ULW_NOTIFY
+ * content: u32 channel_availability;(0/1)
+ *
+ * command: NAN_TEST_MODE_CMD_NAN_SCHED_UPDATE_NDL_NEGOTIATE
+ * content: responder_nmi_mac (Responder NMI Mac Address)
+ *
+ * command: NAN_TEST_MODE_CMD_NAN_SCHED_UPDATE_NDL_NOTIFY
+ * content: NONE
+ *
+ * command: NAN_TEST_MODE_CMD_NAN_AVAILABILITY_MAP_ORDER
+ * content: u32 map_order_val; (0/1)
+ *
+ */
+typedef struct PACKED {
+ /*
+ * To indicate the debug command type.
+ */
+ u32 cmd;
+ /*
+ * To hold the data for the above command
+ * type.
+ */
+ u8 debug_cmd_data[NAN_MAX_DEBUG_MESSAGE_DATA_LEN];
+} NanDebugParams;
+
+/*
+ Function to get the sta_parameter expected by Sigma
+ as per CAPI spec.
+*/
+wifi_error nan_get_sta_parameter(transaction_id id,
+ wifi_interface_handle iface,
+ NanStaParameter* msg);
+
+wifi_error nan_debug_command_config(transaction_id id,
+ wifi_interface_handle iface,
+ NanDebugParams msg,
+ int debug_msg_length);
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* __NAN_CERT_H__ */
+