Commit Graph

304 Commits

Author SHA1 Message Date
Krunal Soni
53993f7939 qcacld-3.0: Sessionize VHT Capability
Sessionize VHT Capability by updating the session
entry at join request or start bss and read the same
capablities at LIM instead of reading from global VHT
CFG items.

Following CFG items are taken care as part of this change.
WNI_CFG_VHT_SU_BEAMFORMER_CAP,
WNI_CFG_VHT_SU_BEAMFORMEE_CAP,
WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED,
WNI_CFG_VHT_MU_BEAMFORMER_CAP,
WNI_CFG_VHT_MU_BEAMFORMEE_CAP

Change-Id: I7c33de1180416db0027b4690170060549847dd9a
CRs-Fixed: 1029145
2016-08-13 18:26:59 -07:00
Sandeep Puligilla
9891743c1e qcacld-3.0: Sessionize VHT Capability
Sessionize VHT Capability by updating the session
entry at join request or start bss and read the same
capablities at LIM instead of reading from global VHT
CFG items .

Change-Id: Idef009d4c76cfc6939359dc09379fc1f0d820589
CRs-Fixed: 1029145
2016-08-13 18:26:47 -07:00
Naveen Rawat
64e477ea40 qcacld-3.0: Add support for 5/10 MHz for STA and SAP role
Add support for 5/10 MHz channel width for STA and SAP role. To
enable/disable feature, following ini parameter will be used:
 * gSub20ChannelWidth=0: indicates do not use Sub 20 MHz bandwidth
   this is also the default value.
 * gSub20ChannelWidth=1: Bring up SAP/STA in 5 MHz bandwidth
 * gSub20ChannelWidth=2: Bring up SAP/STA in 10 MHz bandwidth

Change-Id: Ic6d534dc1eae60fcd2fb7533c934b9ea28e6dd78
CRs-Fixed: 1013211
2016-08-13 14:07:29 -07:00
Rakesh Sunki
1f0553fd55 qcacld-3.0: Fix NAN APIs when NAN data path feature is disabled
qcacld-2.0 to qcacld-3.0 propagation

Add NAN API wrapper function definitions and also fix compilation
failure when NAN data path feature is disabled.

Change-Id: Ib4a3133568eee0c2257c65bb0a8905c44048f0c2
CRs-Fixed: 1049546
2016-08-13 14:07:29 -07:00
Rakesh Sunki
ae936b6a50 qcacld-3.0: Delete peer(if needed) in ndp end indication
qcacld-2.0 to qcacld-3.0 propagation

Take action to delete peer in NDP_END Indication, rather than
NDP_END Response event from firmware. Earlier, device initiating
NDP_END will only get NDP_END_Response event from firmware, but
that behavior is changed now and both self and peer device will get
NDP_END_indication with peer map for ndp end.

Change-Id: I7316cc3864052eef4c7bbe9bbac01f0333909c59
CRs-Fixed: 962367
2016-08-13 14:07:29 -07:00
Krunal Soni
cbda8555e6 qcacld-3.0: Remove deprecated API csr_isconcurrentsession_valid
In current driver, there is already an API called cds_allow_concurrency
which is functionally similar to csr_isconcurrentsession_valid. Remove old
API csr_isconcurrentsession_valid to have single API.

Change-Id: If81900af5cb7291917fe915b44af5cf763f16d46
CRs-Fixed: 1047054
2016-08-13 14:07:28 -07:00
Krishna Kumaar Natarajan
c1fa17d047 qcacld-3.0: Remove usage of typedef for oem related structures
Remove the usage of typedef for oem data request and oem
data response data structure.

Change-Id: I94f05833baa9b6baaf2272f63a33236437a96bbf
CRs-Fixed: 1038872
2016-08-04 12:35:36 -07:00
Krishna Kumaar Natarajan
bbbf2ef17b qcacld-3.0: Remove unused data structures related to OEM message
Remove unused data structures related to OEM message

Change-Id: I33c5190b78ffff2bf160e57a6edaf4b67189062c
CRs-Fixed: 1038872
2016-08-04 12:35:34 -07:00
Krishna Kumaar Natarajan
ad79826137 qcacld-3.0: Remove global oem data request/response buffer
Remove global oem data request/response buffer.

Change-Id: I95078c985c5034d9d530ad542ace129309d79886
CRs-Fixed: 1038872
2016-08-04 12:35:33 -07:00
Krishna Kumaar Natarajan
73ea9f2259 qcacld-3.0: Remove oem data rsp passing over multiple layers
Remove oem data rsp passing over multiple layers.

This change set sends the OEM data response directly to
SME from WMA instead of going through LIM/MLM.

Change-Id: I3cff10ff7bdbcee39b39bd9ba03b5eff8444b017
CRs-Fixed: 1038872
2016-08-04 12:35:30 -07:00
Krishna Kumaar Natarajan
c5e06accd6 qcacld-3.0: Remove oem data request passing over multiple layers
Remove oem data request passing over multiple layers.

This change set sends the OEM data request directly from
SME to WMA instead of going through LIM/MLM.

Change-Id: I151fa771544e9f74b1b69b18d689176752760621
CRs-Fixed: 1038872
2016-08-04 12:35:28 -07:00
Selvaraj, Sridhar
258594ca59 qcacld-3.0: Fix uninitialized heap and stack usage
qcacld-2.0 to qcacld-3.0 propagation

Fix uninitialized stack use in csrRoamReadTSF by initializing
variable of struct type tCsrNeighborRoamBSSInfo to zero.

Git-commit: d39cf92e69222e03f89238313f5b8c100ecd4ecc
Change-Id: I4211b41b5e30d414e45691a5bab4048587cc8499
CRs-Fixed: 1018486
2016-08-03 18:57:35 -07:00
Selvaraj, Sridhar
bc950df65f qcacld-3.0: Fix stack corruption issue in sme_RrmProcessNeighborReport
qcacld-2.0 to qcacld-3.0 propagation

When STA process Neighbor report from AP, session_id is declared
as one byte variable and its overwritten with four bytes value
in csrRoamGetSessionIdFromBSSID. This is observed on enabling stack
protection in kernel config(CONFIG_CC_STACKPROTECTOR).

Fix is to declare session_id as four bytes variable.

Git-commit: 96646d1eb48c4f3bf45555b8f636f90cf925b8b8
Change-Id: I6b2fd40a5466fe5dd72d394abb682229a550e0b1
CRs-Fixed: 1025272
2016-08-03 18:57:16 -07:00
Rajeev Kumar
348ed99339 qcacld-3.0: Add memory allocation failure check for BPF instructions
Add check for BPF instructions memory allocation failure and fail
the request gracefully if memory allocation fails.

Change-Id: Ifa6cab73c59aa4a7c587fa0b7d38e9b8523a3b1c
CRs-Fixed: 1047209
2016-08-03 18:57:10 -07:00
Rajeev Kumar
e5a1682c3e qcacld-3.0: memset bpf load to zero, update the bpf enabled correctly
Propagation from qcacld-2.0 to qcacld-3.0

- Current length of bpf is not set during the reset filter. set offload
  is allocated through malloc, so invalid values for current_length
  are recieved during reset. Memset set_bpfload to zero after
  allocation.
- update the bpf service to hdd correctly depending on the
  wmi service bitmap recieved from the firmware.

Change-Id: Iaf4774865cf0698a2deebac5cea62c873146e838
CRs-Fixed: 985562
2016-08-03 18:55:55 -07:00
Arif Hussain
d3bf1115ef qcacld-3.0: Fix memory leak in csr_update_lost_link1_cmd
In function csr_update_lost_link1_cmd, memory is allocated to
local variable struct scan_filter, further we passing this
variable to csr_roam_prepare_filter_from_profile function and
allocating memory to the members of the scan_filter. At some
point in the function we are returning without freeing memory
allocated to scan_filter, which causes memory leak.

Make sure to free scan_filter’s memory before returning.

Change-Id: I448cf0d4bb16d4769b50c96495038684909e0739
CRs-Fixed: 1048116
2016-08-03 18:34:39 -07:00
Krunal Soni
35b404c206 qcacld-3.0: Fix to avoid checking PCL when BSSID is given by upper layer
New flavor of OS is sending bssid along with STA connect command. When
connect command comes with bssids then don't allow Preferred channel
list algorithm as it won't be of any use and skipping the algorithm will
improve initial scan time.

Add log to inform whether BSSID hint is given by upper layer.

Change-Id: I9c1f41a0e00f9b2afc19629558b93a2482da6581
CRs-Fixed: 1047052
2016-07-29 18:15:21 -07:00
Ravi Joshi
4f447cb765 qcacld-3.0: Configure multicast filters for nan data interface
Configure multicast filters for the nan data interface.
Request to configure multicast filters is not honored for the
NAN data interface in the current implementation.

Integration from qcacld-2.0 to qcacld-3.0.

CRs-Fixed: 1046519
Change-Id: I48a4a30fd9f6369fe398254184d0016a35c0a6b3
2016-07-29 18:15:12 -07:00
Arun Khandavalli
4b55da70d6 qcacld-3.0: Refactor hdd callback (de)registration into a single function
As part of "load once unload never" architecture, cds modules can
be opened and closed several times. Refactor the hdd callback registration/
de-registration into hdd_register_cb/hdd_deregister_cb which can
be invoked during the open/close of the modules respectively.

Change-Id: I2da9018ff2fa6188e61e007c896bc13e8fddcb7d
CRs-Fixed: 1026817
2016-07-28 15:33:50 +05:30
Naveen Rawat
48f51d04e9 qcacld-3.0: Fix NPD of ies_local in csr_roam_join_handle_profile
In csr_roam_join_handle_profile variable ies_local is populated if input
argument result is not NULL. We cannot proceed to with roaming if IE parsing
fails, so abort roaming if input argument "result" passed to function
csr_roam_join_handle_profile is NULL.

Change-Id: I52c35a44598028115c48aff7827f3fc90bd48cb1
CRs-Fixed: 1038237
2016-07-28 15:32:46 +05:30
Varun Reddy Yeturu
3e91dad283 qcacld-3.0: Use Reassociation during BSS Transition
This is qcacld-2.0 to qcacld-3.0 propagation

The BSS transition request is handled by the supplicant.
The supplicant upon receiving the request will issue a
connect request to the driver with a hint of prev_bssid
telling the driver to perform a re-association.
Use this hint in the driver and initiate a re-association.
While doing the re-association, there is no need to do a
scan if the target AP is already present in the scan cache.
Optimize the re-association code to not do a scan if not
necessary in this particular case.

Change-Id: Idf1a7058009a8d2082bc1742dca1364cf59c405b
CRs-Fixed: 1010596
2016-07-28 15:31:44 +05:30
Anurag Chouhan
5de8d17671 qcacld-3.0: Add BSS status caching
Add BSS status caching to get the BSS Information
when disconnect happens.

Change-Id: I41b74700b161277bc454d8bb8978f4e1e92faea8
CRs-Fixed: 1013475
2016-07-15 04:23:12 -07:00
Naveen Rawat
696a930c25 qcacld-3.0: Fix start BSS failure
In function csr_roam_join_handle_profile, add NULL pointer check for
"result" after call to csr_roam_select_bss rather than before
csr_roam_join_handle_profile, since it is called for BSS role as well.

Change-Id: I800891fd66d5c851537968515e43eadbe38a2ae8
CRs-Fixed: 1038237
2016-07-14 18:50:50 -07:00
Naveen Rawat
a395d25d53 qcacld-3.0: Fix NULL pointer dereference in csr_roam_join_next_bss
Add NULL pointer check for "result" after call to csr_roam_select_bss.
This function can return a NULL value for variable "result", which is
later dereference in the function csr_roam_join_handle_profile.

Change-Id: I5e1f017de49301a14b899692b888f7694e979bf1
CRs-Fixed: 1027725
2016-07-14 18:50:50 -07:00
Gupta, Kapil
8a605e1b59 qcacld-3.0: Correct len size of oem data request
qcacld-2.0 to qcacld-3.0 propagation.

oem data request len size should be of 4 byte instead of
1 byte.
Add changes to correct len size in oem data structure across the
layers.

Change-Id: I9b377420c50ff1160964f94be5eaa0072df0f63d
CRs-Fixed: 1013488
2016-07-13 15:27:49 -07:00
Tushnim Bhattacharyya
f44a9d86cd qcacld-3.0: Fix chain mask & nss in policy manager connection table
The chain mask in policy manager connection table needs to be updated
with the capability that HW advertises at load time intersected with
related ini configuration on host. The dynamic change of the chain
mask & NSS values will be handled only by chain mask manager in
firmware.

Change-Id: I250668c93920a63c9278aefe93491cb5aaa91ca7
CRs-Fixed: 1037816
2016-07-12 10:02:49 -07:00
Kabilan Kannan
44f6586a20 qcacld-3.0: Add validation to avoid buffer overflow
Buffer overflow condition is not validated correctly in function
sme_update_tdls_peer_state(). This may result in erratic program
behavior.
Add buffer over flow validation to avoid memory access errors,
incorrect results, a crash, or a breach of system security.

Change-Id: I793bd056b32924b484ce7cb264b22c74c8c4cca4
CRs-Fixed: 1035656
2016-07-08 17:26:54 -07:00
Manjeet Singh
f82ed071d0 qcacld-3.0: Add support for WMI_PDEV_WAL_POWER_DEBUG_CMD
Add support for WMI POWER DEBUG command to control mac_core power features
for run time debugging.

Change-Id: I77ad747843cae31de1705b7ce8fa80e18c9ca53e
CRs-Fixed: 1007598
2016-07-08 05:14:42 -07:00
Sandeep Puligilla
707386ec00 qcacld-3.0: Update log level related to PNO
PNO kernel debug logs are too frequent.

Reduced the log level of PNO messages from error to info

Change-Id: I27166f542889e0d5071ae8c558e0227c51064c5f
CRs-Fixed: 1022820
2016-07-07 22:15:23 -07:00
Naveen Rawat
8d63a59f3b qcacld-3.0: Add NDP reason codes in deferred rsp sent for NDP commands
This is qcacld-2.0 to qcacld-3.0 propagation.

Add NDP reason codes in deferred response sent for NDP commands so that
failure during processing of NDP cmds can be notified to service layer.

Change-Id: I731b520fde226c351464d94033a1ced2888a4d18
CRs-Fixed: 962367
2016-07-06 13:31:56 -07:00
Naveen Rawat
64a9a1a5b3 qcacld-3.0: Free up ndp sme command resources at sme close
This is qcacld-2.0 to qcacld-3.0 propagation

Free up memory allocated for NDP SME commands at sme_close, so that in
the event of unload while NDP command response was awaited, resources
can be freed.

Change-Id: I287ad77cbdca4b816f38bea436173b88e6eafc93
CRs-Fixed: 962367
2016-07-06 13:31:38 -07:00
Deepak Dhamdhere
a6d2f4cec4 qcacld-3.0: Process NDP data end indication
qcacld-2.0 to qcacld-3.0 propagation

Firmware sends an array of:
    {ndp instance id, vdev id, active ndp num, peer mac address}
for the NDP instances that are to be terminated.
Host driver deletes the peers that have 0 active ndp instances and
sends the entire list of ndp instance id's to the service layer.

Change-Id: I325843ce7fb8198466cb66ce66710cef999d4581
CRs-Fixed: 962367
2016-07-06 13:31:29 -07:00
Naveen Rawat
f28315cd66 qcacld-3.0: Add support for NAN Data End Request
This is qcacld-2.0 to qcacld-3.0 propagation.

Add implementation of NAN Data End request.

Change-Id: Iddd22a83b0763dab2e7398f4d2cf5b9ada58225a
CRs-Fixed: 962367
2016-07-06 13:31:24 -07:00
Abhishek Singh
4fef747c51 qcacld-3.0: Add support for NDP Responder Request
This is qcacld-2.0 to qcacld-3.0 propagation

Add implementation for non-auto accept NDP responder request.

Change-Id: I2ced33cfa0faf487d8e31275493e8d85251e8c59
CRs-Fixed: 962367
2016-07-06 13:31:11 -07:00
Deepak Dhamdhere
0f076bd0db qcacld-3.0: Add support for NDP data initiator request
qcacld-2.0 to qcacld-3.0 propagation

Add host side changes to handle INITIATOR_REQ, INITIATOR_RSP,
NEW_PEER_IND and NDP_CONFIRM_IND to support NDP data initiator
request.

Change-Id: I10bf88d3fff27e1f842b720a598c923983c06c90
CRs-Fixed: 962367
2016-07-06 13:31:04 -07:00
Peng Xu
8fdaa49618 qcacld-3.0: Implement P2P listen offload feature
To lower the power consumption caused by the P2P listen operation,
it is offloaded from supplicant and host driver to firmware,
so that supplicant and host driver can be in power save mode during the
listen operation.

Change-Id: Iedd990427afe22842faecc7b29e4f38220c75684
CRs-fixed: 1032877
2016-07-06 13:30:23 -07:00
Krunal Soni
3091bcc07d qcacld-3.0: Remove deprecated gPolicyManagerEnable INI item
gPolicyManagerEnable INI item is no longer needed. Remove this
INI item and make policy manager code enabled by default.

Change-Id: I57822f47325c03e940b2802fb02900c64d3587e1
CRs-Fixed: 1034888
2016-07-06 13:30:12 -07:00
Naveen Rawat
9598f5edb9 qcacld-3.0: Fix NULL pointer dereference in csr_is_p2p_session_connected
Check pSession->pCurRoamProfile against NULL before dereferencing it in
function csr_is_p2p_session_connected.

Change-Id: I61f681dfd4ff3c7fd2e443f54f6b1713db088250
CRs-Fixed: 1034255
2016-06-30 11:06:22 -07:00
Naveen Rawat
7ecf53d0ae qcacld-3.0: Add for NULL pointer check in sme/csr functions
Check for NULL pointer before accessing pointers in function:
 * csr_roam_join_handle_profile
 * csr_roam_process_results_default
 * csr_roam_process_start_bss_success
 * csr_roam_process_join_res
 * csr_process_nss_update_req
 * csr_is_p2p_session_connected

Change-Id: I9bf83a2641a4523713b9180679648202ea9c9eef
CRs-Fixed: 1034255
2016-06-30 11:06:16 -07:00
Naveen Rawat
cf684760d6 qcacld-3.0: Fix NULL pointer dereference in sme_register_ftm_msg_processor
In function sme_register_ftm_msg_processor, remove access to mac_ctx which is
dereferencing a NULL pointer.

Change-Id: I6e2db08703b3beff23f9398d9d1c88e1c6bcb229
CRs-Fixed: 1034255
2016-06-30 11:06:14 -07:00
Gupta, Kapil
7122125d16 qcacld-3.0: Set initial dense status in case of dense roaming
In case of dense roam scenario, Host should set initial dense
status if roamable AP count is more than minimum dense AP count.

Add changes to set the flag if roamable AP count is more than
configured value.

CRs-Fixed: 1023078
Change-Id: I25bd26ae1292c0a829c1b1634df3ab975ab562c1
2016-06-29 21:02:37 -07:00
Deepak Dhamdhere
13983f2571 qcacld-3.0: Handle request to delete NAN Data Interface (NDI)
qcacld-2.0 to qcacld-3.0 propagation

Add changes to handle request to delete NAN datapath interface.

Change-Id: I3efef6adf6c7a974d3e344a7609f8517cd1aa752
CRs-Fixed: 962367
2016-06-29 19:42:08 -07:00
Deepak Dhamdhere
5cdce8429e qcacld-3.0: Add support for NDP vendor commands and NDI Create
Add support for NDP vendor commands and implement NAN Data Interface
create.

Propagation from qcacld-2.0 to qcacld-3.0

CRs-Fixed: 962367
Change-Id: I84e9ac5ccfe8faaa00dfc448defb81fb792263d5
2016-06-29 19:42:07 -07:00
Deepak Dhamdhere
e2dd5440bf qcacld-3.0: Implement NAN datapath interface create
qcacld-2.0 to qcacld-3.0 propagation

Add changes to support session and BSS creation in NDI mode.

CRs-Fixed: 962367
Change-Id: I585cd89702a2c412783ae93fb1558ed5bfe31fd9
2016-06-29 19:42:05 -07:00
Ravi Joshi
412f23deb2 qcacld-3.0: Add interface changes for supporting NAN data path
Add interface changes to enable NAN data path feature

Propagation from qcacld-2.0 to qcacld-3.0

CRs-Fixed: 962367
Change-Id: I12a1d0cf37db22ff0bcb8165cb3f6b3847f8bf5b
2016-06-29 19:42:04 -07:00
Deepak Dhamdhere
c9acc447ea qcacld-3.0: Add messaging interface to support NAN datapath
qcacld-2.0 to qcacld-3.0 propagation

Add messaging interface to support NAN datapath.
"NAN" terminology is used for referencing NAN discovery.
"NDI" and "NDP" are for NAN datapath.

CRs-Fixed: 962367
Change-Id: I1f42c8dab17b3a300db61756c29fc02d3d3bc504
2016-06-29 19:42:02 -07:00
Archana Ramachandran
63f64ddbaf qcacld-3.0: Skip DSRC channels in TDLS operation
qcacld-2.0 to qcacld-3.0 propagation

We do not support TDLS on DSRC AND DFS channels so skip
these channels in the TDLS frames.

Change-Id: I3ad523ab21d1383df189d3856f6e0759b1a2bb6a
CRs-Fixed: 975657
2016-06-29 18:41:31 -07:00
Archana Ramachandran
5041b2579e qcacld-3.0: Support NSS configuration for TDLS from user space
qcacld-2.0 to qcacld-3.0 propagation

TDLS NSS can be changed dynamically by the user, if that happens
the newer NSS value needs to be recorded in the MAC context and
should be used to form TDLS management frames.
Update driver to keep the user configured NSS value in the MAC
context and uses the NSS value in the tdls protocol engine
to construct management frames.

Change-Id: I4098e3c5e3a03c4de6ae40c837a5616613623979
CRs-Fixed: 968106
2016-06-29 18:41:25 -07:00
Sandeep Puligilla
607f34a72e qcacld-3.0: Cleanup HT capability global configurations
UMAC maintains CFG item for each individual field of the HT
capability IE along with the global CFG item for HT cap IE.
This leads to update two global CFG items whenever there
is a change in HT capability IE field.

Remove the duplicate configuration items.
Update LIM code to read the capablities from the session
not from the globals.

Change-Id: Idf5c4358ab67983778a56e2fe3a2f21d1adc19e1
CRs-Fixed: 1029145
2016-06-29 12:11:46 -07:00
Manishekar Chandrasekaran
1db3abe6cc qcacld-3.0: Use mandatory channel list during SAP operation
Ensure that the SAP operations make use of the mandatory
channel list during SAP channel selection with INI option
'gWlanMccToSccSwitchMode' set to the value of '4' which
will make use of this channel list while trying to avoid
MCC scenarios.

Change-Id: Ia43ee1d2c598c81a5ef0add9246c400577f6f694
CRs-Fixed: 1014128
2016-06-27 18:19:59 -07:00