Commit Graph

29 Commits

Author SHA1 Message Date
Naveen Rawat
6b44ef3460 qcacmn: Use NDP vendor attribute from qca_vendor.h
Update qca_vendor.h with latest NDP vendor attribute definitions
and use those definitions in NAN component.

Change-Id: I43f0457690b1c4027adcd0abe4ef2ac2a8f9b068
CRs-Fixed: 2239047
2018-05-14 16:50:48 -07:00
Jeff Johnson
6500e56b38 qcacmn: Fix NDP Config QoS policy
The qca_wlan_vendor_ndp_policy for the attribute
QCA_WLAN_VENDOR_ATTR_NDP_CONFIG_QOS currently specifies type
NLA_BINARY with a maximum length of NDP_QOS_INFO_LEN (255). However
this attribute is defined to be an unsigned 32 bit value, and
nla_get_u32() is used to read the value, so change the policy to use
type NLA_U32 so that nla_parse() can properly verify that the TLV
payload has (at least) 4 bytes of data.

Change-Id: Iee5b620ef199b731fc6a449d0055db328430921b
CRs-Fixed: 2237660
2018-05-14 16:50:46 -07:00
Jeff Johnson
e30a7f5b7d qcacmn: Fix NDP Response Code policy
The qca_wlan_vendor_ndp_policy for the attribute
QCA_WLAN_VENDOR_ATTR_NDP_RESPONSE_CODE currently specifies type
NLA_U16. However this attribute is defined to be an unsigned 32 bit
value, and nla_get_u32() is used to read the value, so change the
policy to use type NLA_U32 so that nla_parse() can properly verify
that the TLV payload has (at least) 4 bytes of data.

Change-Id: I915a94e7449c2bc1abde64e2a7f5df6a58488ed6
CRs-Fixed: 2237659
2018-05-14 13:58:58 -07:00
Jeff Johnson
444703f75f qcacmn: Fix NDP Discovery MAC address policy
The current qca_wlan_vendor_ndp_policy for attribute
QCA_WLAN_VENDOR_ATTR_NDP_PEER_DISCOVERY_MAC_ADDR uses type NLA_BINARY.
Unfortunately this type uses the len as a maximum length and not a
minimum length which means that nla_parse() cannot guarantee that 6
bytes of MAC address are present.  Change the policy to use type
NLA_UNSPEC so that nla_parse() will ensure that the NDP Discovery MAC
address TLV contains (at least) 6 bytes.

Change-Id: I2c7e1efdb413dbd2f79c36ed1626c006b86e8b5b
CRs-Fixed: 2237658
2018-05-14 13:58:54 -07:00
Naveen Rawat
9fdd4f55e6 qcacmn: Re-factor buffer len calculation for NDP events
Re-factor vendor event buffer length calculation for NDP events
to a separate function call.

Change-Id: I6828067d0e81987d7c903fd7f7df05b3a4eadbe3
CRs-Fixed: 2183658
2018-05-02 18:46:14 -07:00
Ravi Joshi
4d577e4c2b qcacmn: Fix issue while handling ndp response without iface name
Check for interface name only when ndp response is "accept" from user. In
case of "reject" discard interface name provided and instead use first NDI
available.

CRs-Fixed: 2222041
Change-Id: Ib02fe7d5b93f8e388658e511317664a4999b5fa6
2018-04-19 14:15:24 -07:00
Ravi Joshi
295cfd1a85 qcacmn: Accept nan responder request without iface name
The service layer need not provide the iface name in the
responder request to the driver if the request is being rejected.
The service layer maps the ndp_instance_id only after accepting
the request, if the ndp indication is rejected, the user space
has no knowledge of the iface name on which the NDP would have
gotten mapped if it were successful

CRs-Fixed: 2222041
Change-Id: I94a7de0c98c14dbe2389dd8364b6dd78858a9d0a
2018-04-19 14:15:21 -07:00
Dustin Brown
2cd4bfb104 qcacmn: Include qdf_str.h
The qdf_str APIs have recently been moved from qdf_mem. Reference the
new qdf_str.h header file where appropriate.

Change-Id: If97c9c37a7d720a7b93e50ec228da67a8e980c2e
CRs-Fixed: 2196129
2018-03-01 11:39:20 -08:00
Dustin Brown
013ae979a6 qcacmn: Use size_t for qdf_str_len() return type
A recent commit changed the return type for qdf_str_len() to size_t from
int32_t. Update call sites for qdf_str_len() to store the return value
as size_t to match.

Change-Id: Ib8bfad2c1fc7de1f6fc601d1be69e734d3a49dcf
CRs-Fixed: 2196858
2018-02-28 13:22:36 -08:00
Naveen Rawat
68805125fd qcacmn: Avoid WMI TLV structures in NAN target_if
Refactor NAN target_if to make it wmi-type agnostic. Specifically
do not access wmi structures in NAN target_if. All the access to
wmi structures should happen in tlv and non-tlv specific wmi files.

Change-Id: I944b678fc501723d7cd26c9b21c4cc6ddb7fda4e
CRs-Fixed: 2159876
2018-01-09 06:12:48 -08:00
Naveen Rawat
7b5cffe84f qcacmn: Avoid null pointer dereference and OOB access
Avoid possible null pointer dereferece and out of bound access
in NAN component.

Change-Id: I40ba4e340e34e8975c782c0a6329322e3c151326
CRs-Fixed: 2160751
2018-01-04 15:34:36 -08:00
Dustin Brown
1b57dba257 qcacmn: Add wrapper for nla_parse()
The Linux kernel version 4.12 introduced an API change to nla_parse().
Add conditional compilation to call nla_parse with the correct
parameters based on the version of the linux kernel being compiled
against.

Change-Id: Ie904d217a42a2396f8245251a9c90a15dac2c0c9
CRs-Fixed: 2093354
2017-09-15 15:26:31 -07:00
Linux Build Service Account
dcc4bb25d8 Merge "qcacmn: Check NAN iface with same name before creating another one" 2017-07-25 21:59:25 -07:00
Naveen Rawat
b948a1f9ad qcacmn: Check NAN iface with same name before creating another one
There were some corner cases reported in which NDIs are getting
created with same name. Providing fix for the same.

Change-Id: I84ea80580faa44809e257d3b17645808637b5d51
CRs-Fixed: 2072509
2017-07-25 13:33:54 -07:00
Naveen Rawat
2171e391a8 qcacmn: Enable support for multiple NAN Data Interfaces
Enable support for multiple nan data interfaces. The usespace
may need to create multiple NDIs depending on whether it
requires IP isolation or not.

Change-Id: I4391f2efdc6bdede52a73915531d39dd7798c39d
CRs-Fixed: 2072501
2017-07-25 13:33:53 -07:00
Linux Build Service Account
2f4d5e4f54 Merge "qcacmn: Fix transaction id descrepancy during NDI create" 2017-07-21 02:05:06 -07:00
Linux Build Service Account
90ac7473ba Merge "qcacmn: Allow nan data interface delete with peers attached" 2017-07-21 02:05:05 -07:00
Naveen Rawat
eac514c1a9 qcacmn: Make ndp channel config parameter optional
The ndp channel config has no meaning if ndp channel itself
is optional. Host will send ndp channel config as "optional"
to FW if it is missing in the ndp command.

Change-Id: I59e245f3fb05ae35aa185fba7bad09608f5334c8
CRs-Fixed: 2072502
2017-07-18 23:35:12 -07:00
Naveen Rawat
fa96ab6601 qcacmn: Fix transaction id descrepancy during NDI create
Driver truncated the transaction id to 8-bits from 16-bit
value causing the descrepancy in transaction id exchange
during NDI create.

Change-Id: I502f422620411c39bd0e75f06e9b7200bfea24ae
CRs-Fixed: 2072511
2017-07-10 10:03:02 -07:00
Naveen Rawat
26cac01ab2 qcacmn: Allow nan data interface delete with peers attached
Service layer was not allowed to delete NDI if there are active
NDP sessions (peers). Service layer is expected to delete the
active NDP sessions before issuing NDI delete. However, that
is not guaranteed to happen. Hence allowing internal cleanup
to happen by allowing the command to firmware.

Change-Id: Iab9bc3bca431475792c164d16cdd18be2f346188
CRs-Fixed: 2072505
2017-07-10 10:02:36 -07:00
Naveen Rawat
7b62aff6c7 qcacmn: Add Passphrase and Service Name parameter to NDP cmds
Add Passphrase and Service Name to NDP initiator request and NDP
responder request.

Change-Id: I6a189747760a15393fcbac9dc382847fef789ab1
CRs-Fixed: 2072498
2017-07-08 01:45:00 -07:00
Jeff Johnson
a7acc98b0d qcacmn: Properly validate QCA_WLAN_VENDOR_ATTR_NDP_IFACE_STR
Currently the QCA_WLAN_VENDOR_ATTR_NDP_IFACE_STR nla_policy specifies
a type of NLA_STRING, but the underlying implementation expects a
NUL-terminated string. Update the policy to correctly use a type of
NLA_NUL_STRING with the len updated to remove the allocation needed
for the terminating NUL.

Change-Id: Ic73241511ab73ae63fd7c1a8d6422da91931919c
CRs-Fixed: 2063588
2017-06-26 19:34:12 -07:00
Naveen Rawat
52e9bb6d6f qcacmn: NDP_END_REQ implementation
Add implementation of NDP_END_REQ.

Change-Id: Ifa0bdcdee09c15c68bb12c63ba1157c71650c5bc
CRs-Fixed: 2014795
2017-04-11 11:04:24 -07:00
Naveen Rawat
f2bc82eb18 qcacmn: NDP_RESPONDER_REQ implementation
Add implementation for NDP_RESPONDER_REQ.

Change-Id: I27029eae88e0bc545c8444adf1342b2ec95f4d60
CRs-Fixed: 2014795
2017-04-11 11:04:23 -07:00
Naveen Rawat
06a5eb5071 qcacmn: NDP_INITIATOR_REQ implementation
Add implementation for NDP_INITIATOR_REQ.

Change-Id: Ieb4cb79d500fd75b23b4a3f8bfa414d14eb6fe18
CRs-Fixed: 2014795
2017-04-11 11:04:22 -07:00
Naveen Rawat
e830e98bcf qcacmn: Add implementation for NDI Create/Delete
Implement NDI create and NDI delete commands.

Change-Id: Icd4c745f4d25c0f10f12271fd4fcd7720ad85860
CRs-Fixed: 2014795
2017-04-11 11:04:21 -07:00
Naveen Rawat
7358d18e39 qcacmn: Add framework for NDP cmd execution
Add NDP command execution framework:
1) Define UCFG apis, that will be called from OS_IF layer
2) Define request proccessing functions to post to scheduler and callback.
3) Define request proccessing functions to post to serializer and callback.
4) Define functions handling activated, cancelled and timed out NDP req.

Change-Id: Ibc6fe32c65f8de0c24e0537f2eb538f806cf5284
CRs-Fixed: 2014795
2017-04-11 11:04:20 -07:00
Naveen Rawat
5b3602a617 qcacmn: Define NDP structures and enums and private obj
1) Define NDP structures and enum.
2) Define PSOC and VDEV private object

Change-Id: I3cb3c0e357f8b4598a0e4ec8abbd5b69e5de5180
CRs-Fixed: 2014795
2017-04-11 11:04:10 -07:00
Naveen Rawat
2a1033ce7d qcacmn: Add new files for new NAN component
Add new files for new NAN component.

Change-Id: I817723e518d53e9348d817746fc8318171d6ddf3
CRs-Fixed: 2014795
2017-03-23 00:49:33 -07:00