diff options
| author | Naveen Rawat <naveenrawat@codeaurora.org> | 2016-10-19 14:17:07 -0700 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2016-11-11 19:56:30 +0530 |
| commit | 0cf5561c43c89ef1054e1f51aca8375b36b9744e (patch) | |
| tree | 4a6b202f40bf8933a6483700929a446e0e1ef68f | |
| parent | 9f767618ca467b936a25ada256ac216a2435a406 (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.c | 14 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_nan_datapath.h | 2 | ||||
| -rw-r--r-- | CORE/MAC/inc/sirApi.h | 2 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma_nan_datapath.c | 1 |
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, |
