summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNaveen Rawat <naveenrawat@codeaurora.org>2016-10-19 14:17:07 -0700
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-11-11 19:56:30 +0530
commit0cf5561c43c89ef1054e1f51aca8375b36b9744e (patch)
tree4a6b202f40bf8933a6483700929a446e0e1ef68f
parent9f767618ca467b936a25ada256ac216a2435a406 (diff)
qcacld-2.0: Remove channel parameter check from ndp request
Parameter channel is not a mandatory argument for NDP requerst. 1) Do not fail NDP request if channel parameter is not present. 2) Add channel config parameter in NDP_Initiator_Request, which indicates if channel provided is optional, force or not provided at all. Change-Id: I4d8dc4b3104cfe36c4bb1fdd0d44da5c6406d6b7 CRs-Fixed: 1079900
-rw-r--r--CORE/HDD/src/wlan_hdd_nan_datapath.c14
-rw-r--r--CORE/HDD/src/wlan_hdd_nan_datapath.h2
-rw-r--r--CORE/MAC/inc/sirApi.h2
-rw-r--r--CORE/SERVICES/WMA/wma_nan_datapath.c1
4 files changed, 13 insertions, 6 deletions
diff --git a/CORE/HDD/src/wlan_hdd_nan_datapath.c b/CORE/HDD/src/wlan_hdd_nan_datapath.c
index 96f54e74b1d3..64d4513ece18 100644
--- a/CORE/HDD/src/wlan_hdd_nan_datapath.c
+++ b/CORE/HDD/src/wlan_hdd_nan_datapath.c
@@ -60,6 +60,7 @@ qca_wlan_vendor_ndp_policy[QCA_WLAN_VENDOR_ATTR_NDP_PARAMS_MAX + 1] = {
.len = NDP_NUM_INSTANCE_ID },
[QCA_WLAN_VENDOR_ATTR_NDP_DRV_RETURN_TYPE] = { .type = NLA_U32 },
[QCA_WLAN_VENDOR_ATTR_NDP_DRV_RETURN_VALUE] = { .type = NLA_U32 },
+ [QCA_WLAN_VENDOR_ATTR_NDP_CHANNEL_CONFIG] = { .type = NLA_U32 },
};
/**
@@ -519,12 +520,13 @@ static int hdd_ndp_initiator_req_handler(hdd_context_t *hdd_ctx,
req.transaction_id =
nla_get_u16(tb[QCA_WLAN_VENDOR_ATTR_NDP_TRANSACTION_ID]);
- if (!tb[QCA_WLAN_VENDOR_ATTR_NDP_CHANNEL]) {
- hddLog(LOGE, FL("NDP channel is unavailable"));
- return -EINVAL;
- }
- req.channel =
- nla_get_u16(tb[QCA_WLAN_VENDOR_ATTR_NDP_CHANNEL]);
+ if (tb[QCA_WLAN_VENDOR_ATTR_NDP_CHANNEL])
+ req.channel =
+ nla_get_u32(tb[QCA_WLAN_VENDOR_ATTR_NDP_CHANNEL]);
+
+ if (tb[QCA_WLAN_VENDOR_ATTR_NDP_CHANNEL_CONFIG])
+ req.channel_cfg =
+ nla_get_u32(tb[QCA_WLAN_VENDOR_ATTR_NDP_CHANNEL_CONFIG]);
if (!tb[QCA_WLAN_VENDOR_ATTR_NDP_SERVICE_INSTANCE_ID]) {
hddLog(LOGE, FL("NDP service instance ID is unavailable"));
diff --git a/CORE/HDD/src/wlan_hdd_nan_datapath.h b/CORE/HDD/src/wlan_hdd_nan_datapath.h
index 0ee46a119eac..833cdea4cd52 100644
--- a/CORE/HDD/src/wlan_hdd_nan_datapath.h
+++ b/CORE/HDD/src/wlan_hdd_nan_datapath.h
@@ -74,6 +74,7 @@ struct wireless_dev;
* @QCA_WLAN_VENDOR_ATTR_NDP_NDI_MAC_ADDR: NDI mac address
* @QCA_WLAN_VENDOR_ATTR_NDP_DRV_RETURN_TYPE: Driver return status
* @QCA_WLAN_VENDOR_ATTR_NDP_DRV_RETURN_VALUE: Driver return value
+ * @QCA_WLAN_VENDOR_ATTR_NDP_CHANNEL_CONFIG: Channel config request type
*/
enum qca_wlan_vendor_attr_ndp_params {
QCA_WLAN_VENDOR_ATTR_NDP_PARAM_INVALID = 0,
@@ -92,6 +93,7 @@ enum qca_wlan_vendor_attr_ndp_params {
QCA_WLAN_VENDOR_ATTR_NDP_NDI_MAC_ADDR,
QCA_WLAN_VENDOR_ATTR_NDP_DRV_RETURN_TYPE,
QCA_WLAN_VENDOR_ATTR_NDP_DRV_RETURN_VALUE,
+ QCA_WLAN_VENDOR_ATTR_NDP_CHANNEL_CONFIG,
QCA_WLAN_VENDOR_ATTR_NDP_PARAMS_AFTER_LAST,
QCA_WLAN_VENDOR_ATTR_NDP_PARAMS_MAX =
diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h
index d9cf4d6e9d37..c9f5829fb6be 100644
--- a/CORE/MAC/inc/sirApi.h
+++ b/CORE/MAC/inc/sirApi.h
@@ -7773,6 +7773,7 @@ struct ndp_app_info {
* @transaction_id: unique identifier
* @vdev_id: session id of the interface over which ndp is being created
* @channel: suggested channel for ndp creation
+ * @channel_cfg: channel config, 0=no channel, 1=optional, 2=mandatory
* @service_instance_id: Service identifier
* @peer_discovery_mac_addr: Peer's discovery mac address
* @self_ndi_mac_addr: self NDI mac address
@@ -7784,6 +7785,7 @@ struct ndp_initiator_req {
uint32_t transaction_id;
uint32_t vdev_id;
uint32_t channel;
+ uint32_t channel_cfg;
uint32_t service_instance_id;
v_MACADDR_t peer_discovery_mac_addr;
v_MACADDR_t self_ndi_mac_addr;
diff --git a/CORE/SERVICES/WMA/wma_nan_datapath.c b/CORE/SERVICES/WMA/wma_nan_datapath.c
index f0d85b639466..6e473d5ecc74 100644
--- a/CORE/SERVICES/WMA/wma_nan_datapath.c
+++ b/CORE/SERVICES/WMA/wma_nan_datapath.c
@@ -96,6 +96,7 @@ VOS_STATUS wma_handle_ndp_initiator_req(tp_wma_handle wma_handle, void *req)
cmd->ndp_cfg_len = ndp_req->ndp_config.ndp_cfg_len;
cmd->ndp_app_info_len = ndp_req->ndp_info.ndp_app_info_len;
+ cmd->ndp_channel_cfg = ndp_req->channel_cfg;
ch_tlv = (wmi_channel *)&cmd[1];
WMITLV_SET_HDR(ch_tlv, WMITLV_TAG_STRUC_wmi_channel,