qcacld-3.0: Send service id in NDP indication
Send service from wmi_ndp_indication_event_id to the userspace via the new vendor attribute QCA_WLAN_VENDOR_ATTR_NDP_SERVICE_ID as part of ndp indication. Change-Id: I90b4540d5f3c72bbb7e8b542406561daf2a7a869 CRs-fixed: 3128874
This commit is contained in:

committed by
Madan Koyyalamudi

parent
199787e599
commit
7fd14302fe
@@ -51,7 +51,7 @@ struct wlan_objmgr_vdev;
|
|||||||
#define NAN_PSEUDO_VDEV_ID CFG_TGT_NUM_VDEV
|
#define NAN_PSEUDO_VDEV_ID CFG_TGT_NUM_VDEV
|
||||||
|
|
||||||
#define NAN_SER_CMD_TIMEOUT 4000
|
#define NAN_SER_CMD_TIMEOUT 4000
|
||||||
|
#define NDP_SERVICE_ID_LEN 6
|
||||||
/**
|
/**
|
||||||
* enum nan_discovery_msg_type - NAN msg type
|
* enum nan_discovery_msg_type - NAN msg type
|
||||||
* @NAN_GENERIC_REQ: Type for all the NAN requests other than enable/disable
|
* @NAN_GENERIC_REQ: Type for all the NAN requests other than enable/disable
|
||||||
@@ -713,6 +713,8 @@ struct nan_datapath_confirm_event {
|
|||||||
* @scid: security context identifier
|
* @scid: security context identifier
|
||||||
* @is_ipv6_addr_present: indicates if following ipv6 address is valid
|
* @is_ipv6_addr_present: indicates if following ipv6 address is valid
|
||||||
* @ipv6_addr: ipv6 address address used by ndp
|
* @ipv6_addr: ipv6 address address used by ndp
|
||||||
|
* @is_service_id_present: indicates if service id is present
|
||||||
|
* @service_id: NDP service id
|
||||||
*/
|
*/
|
||||||
struct nan_datapath_indication_event {
|
struct nan_datapath_indication_event {
|
||||||
struct wlan_objmgr_vdev *vdev;
|
struct wlan_objmgr_vdev *vdev;
|
||||||
@@ -728,6 +730,8 @@ struct nan_datapath_indication_event {
|
|||||||
struct nan_datapath_scid scid;
|
struct nan_datapath_scid scid;
|
||||||
bool is_ipv6_addr_present;
|
bool is_ipv6_addr_present;
|
||||||
uint8_t ipv6_addr[QDF_IPV6_ADDR_SIZE];
|
uint8_t ipv6_addr[QDF_IPV6_ADDR_SIZE];
|
||||||
|
bool is_service_id_present;
|
||||||
|
uint8_t service_id[NDP_SERVICE_ID_LEN];
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -164,6 +164,10 @@ const struct nla_policy vendor_attr_policy[
|
|||||||
.type = NLA_U8,
|
.type = NLA_U8,
|
||||||
.len = sizeof(uint8_t)
|
.len = sizeof(uint8_t)
|
||||||
},
|
},
|
||||||
|
[QCA_WLAN_VENDOR_ATTR_NDP_SERVICE_ID] = {
|
||||||
|
.type = NLA_U8,
|
||||||
|
.len = NDP_SERVICE_ID_LEN
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1288,7 +1292,9 @@ static inline uint32_t osif_ndp_get_ndp_req_ind_len(
|
|||||||
data_len += nla_total_size(event->scid.scid_len);
|
data_len += nla_total_size(event->scid.scid_len);
|
||||||
if (event->ndp_info.ndp_app_info_len)
|
if (event->ndp_info.ndp_app_info_len)
|
||||||
data_len += nla_total_size(event->ndp_info.ndp_app_info_len);
|
data_len += nla_total_size(event->ndp_info.ndp_app_info_len);
|
||||||
|
if (event->is_service_id_present)
|
||||||
|
data_len += nla_total_size(vendor_attr_policy[
|
||||||
|
QCA_WLAN_VENDOR_ATTR_NDP_SERVICE_ID].len);
|
||||||
return data_len;
|
return data_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1430,6 +1436,12 @@ static void os_if_ndp_indication_handler(struct wlan_objmgr_vdev *vdev,
|
|||||||
goto ndp_indication_nla_failed;
|
goto ndp_indication_nla_failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (event->is_service_id_present) {
|
||||||
|
if (nla_put(vendor_event, QCA_WLAN_VENDOR_ATTR_NDP_SERVICE_ID,
|
||||||
|
NDP_SERVICE_ID_LEN, event->service_id))
|
||||||
|
goto ndp_indication_nla_failed;
|
||||||
|
}
|
||||||
|
|
||||||
cfg80211_vendor_event(vendor_event, GFP_ATOMIC);
|
cfg80211_vendor_event(vendor_event, GFP_ATOMIC);
|
||||||
return;
|
return;
|
||||||
ndp_indication_nla_failed:
|
ndp_indication_nla_failed:
|
||||||
|
Reference in New Issue
Block a user