qcacld-2.0 to qcacld-3.0 propagation
The firmware reports the Enhanced Green AP (EGAP) service
(EGAP_SERVICE) feature flag to indicate the support of EGAP
feature.
The EGAP is to offload the legacy Green AP feature to firmware
in order to aggressively enable the Green AP other than wait
for host control latency.
Add the knob to hold the EGAP infomation when firmware support
it, also populate the information up to hdd target config.
And then add a SME interface to allow hdd layer to configure
the EGAP configuration.
Change-Id: I9be927369e7cf07731f8e9ba49d65224e05c340b
CRs-fixed: 929063
The condition #ifdef WLAN_FEATURE_LFR is used to include some of
the roaming code. It has been defined for all the recent driver
builds. Roaming code underneath is permanent part of the driver.
Remove #ifdef FEATURE_WLAN_LFR compiler flag from SME so that the code
will always be compiled in.
CRs-Fixed: 936683
Change-Id: I86b9e3dee6b92c89a54de6df769800c31fc3ad17
The condition #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING is used to include
some of the roaming code. It has been defined for all the recent driver
builds. Roaming code underneath is permanent part of the driver.
Remove #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING compiler flag from SME
and CSR so that the code will always be compiled in.
CRs-Fixed: 936683
Change-Id: I63a43b7cfd9360341d4ac4126cbf9fc8ac89071a
The condition #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING is used to include
some of the roaming code. It has been defined for all the recent driver
builds. Roaming code underneath is permanent part of the driver.
Remove #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING compiler flag from HDD so
that the code will always be compiled in.
CRs-Fixed: 936683
Change-Id: I777d48f26aea36383747281bd4fef2eadc7beefb
qcacld-2.0 to qcacld-3.0 propagation
The preauth session is not deleted if the deauth is from host
(eCsrForcedDeauth).
Adds the check to delete the preauth session and stop the
preAuthReassocIntvlTimer timer, in case of deauth from host.
Change-Id: I181344b0f3a41ff5c3a77f30b4c8cf80557c23b5
CRs-fixed: 649521
qcacld-2.0 to qcacld-3.0 propagation
Set TX_USAGE flag for default key (BSS key) when using WEP40 or
WEP140 encryption in AP mode.
Change-Id: Icb4411410d84b05a47f193ffbd632445f736246e
CRs-Fixed: 940725
qcacld-2.0 to qcacld-3.0 propagation
if AP has RSN IE and supports AES, driver goes on to check
WPA IE and if it contains only TKIP in unicast cipher, it
sets cbmode to 0 (20Mhz).
Added a check to ignore the WPA IE if RSN IE is present and take
decision on cbmode with respect to RSN IE only.
Change-Id: I4eaf8a2d6a9f3a43e74e606045af995fbaa800ad
CRs-Fixed: 739345
qcacld-2.0 to qcacld-3.0 propagation
In limSendSmeJoinReassocRsp API, assoc req, assoc rsp, ricData, tspecIes
are sent to SME layer if corresponding pointer in psessionEntry is
not NULL. There is bug here where the pointer is NULL but the length is
non zero. Because of this data is copied at incorrect offset and data
at SME layer is not at right offset leading to corrupted IE in
next re-assoc request.
Fix this by making length as zero whenever we free the data.
Change-Id: I4ba4ff49e56bc2f2758d869eae8ff9370b0c0489
CRs-Fixed: 932712
qcacld-2.0 to qcacld-3.0 propagation
Before transmitting the tdls mgmt frames the STA should be
connected to AP and it should be in authenticated state.
Change-Id: Id79d4e6ad55a6b80e2fac2369f48bedf6551bcd6
CRs-Fixed: 893784
qcacld-2.0 to qcacld-3.0 propagation
Currently, MTRACE logs are not captured for the events posted
from SME to HDD. So, add missing MTRACE log in hdd_smeRoamCallback()
and also add missing eRoamCmdStatus enums in get_eRoamCmdStatus_str().
Change-Id: I26ef8c651b7b873939341b643056ff977a40ea19
CRs-Fixed: 855875
qcacld-2.0 to qcacld-3.0 propagation
As a part of logging enhancement,to make logs more
interactive, changed pmcstate,scanType etc from
numerical values to human readable string in
Protocol stack.
Change-Id: I589088c2c5fd0afa106a1d0773a2ff525b0dd083
CRs-Fixed: 638916
qcacld-2.0 to qcacld-3.0 propagation
Currently for sta mode while sending management
frames such as auth, assoc, reasssoc,deauth,
diassoc driver sends selfStaId. This results
in frames going on the air with the self data
rate and not the data rate supported by peer.
As a part of fix, make sure that the peerStaId is
used for sending above management frames.
Change-Id: Ia368ff13aed1002600f5fb3ad55c3d20106d586a
CRs-Fixed: 826260
qcacld-2.0 to qcacld-3.0 propagation
Even though ADD_BSS fails the driver tries to send DEL BSS to
firmware which will crash upon receiving DEL BSS.
To avoid this crash do not send DEL BSS to Firmware if ADD BSS
fails and just do cleanup.
Change-Id: Ieabf241c8277ae76bb5f491f9d8a2b783d8ea47e
CRs-Fixed: 929249
Qcacld-2.0 to qcacld-3.0 propagation.
This fix contains the following changes
1. Ensure rx mgmt packet is freed in all cases.
2. Fail preauth if the pre-auth response timer
failed to start.
3. Correct some logging and remove unnecessary code.
Change-Id: Icd3a12ba8878de5bad7ff1125ba8be123dfae4eb
CRs-Fixed: 808756
Check if PE session passed to pe_delete_session is valid
before proceeding with the deletion.
Change-Id: Icfe54e8bc286f14ea757b0619c067cc74ce87492
CRs-Fixed: 948924
Initialize PMF comeback timer in PE create session.
Currenlty PMF comeback timer is initialized in join request and
destroyed in delete session. In offload cases, PE session is
created without join request resulting in destruction of timer
which was not initialized. Add timer initialization in
pe_create_session.
Change-Id: I3dba6713b2bf64cc69f0f2d8322293ff763c0989
CRs-Fixed: 948924
qcacld-2.0 to qcacld-3.0 propagation.
Log the RSSI info of the disconnect if the STA disconnection is
due to STA kick out event from FW.
Change-Id: I0fad3f8d0e7990f4211b7840bed7605a4b97f3cb
CRs-Fixed: 874197
qcacld-2.0 to qcacld-3.0 propagation
Add check to validate if non-DFS channel is passed as
TDLS off channel via driver command and INI config.
Change-Id: I6696c47d438bdcc1b8733241e60ca5c52fb1022f
CRs-Fixed: 915972
qcacld-2.0 to qcacld-3.0 propagation.
Ignore HT IE change if RoC is in progress because as
part of HT IE change we will try to change the channel
parameters which use the same callback as RoC. So if
we try to change the channel parameters if RoC is in
progress we will overwrite the callback causing problems
in the upper layers which are expecting a notification.
Change-Id: I6bace6dd2bd40728ece94e3efe59f3e7038a4e6a
CRs-Fixed: 710027
This is a qcacld-2.0 to qcacld-3.0 propagation.
A crash was observed internally where wlan_hdd_ipv6_changed() was
accessing unmapped memory. This function has logic which looks at key
fields in the netdev's private data area to make sure the netdev
belongs to this driver before it further utilizes the netdev. The
problem with this logic is when it is invoked with non-wlan netdevs,
if those netdevs were created with small private data areas, then the
offsets at which the key fields would exist in the wlan netdev may
fall outside the memory mapped for those other netdevs. In order to
avoid accessing unmapped memory in those cases, relocate the key wlan
netdev fields to the beginning of the wlan adapter structure.
Change-Id: Idb830fd18e5724a684505c9d110f6f1de5622eac
CRs-Fixed: 946373
HDD has a completion variable which is used to synchronize the sending
of an action frame with the send confirmation. Proper use of a
completion variable requires a specific sequence of steps:
- Initialize the completion variable
- Perform the activity that has asynchronous processing
- Wait on the completion variable
Currently HDD does not correctly follow this model for sending action
frames; it incorrectly initializes the completion variable after it
has invoked the UMAC function which sends the frame. This creates a
race condition whereby the TX could complete and set the completion
variable before the completion variable is initialized, and then when
the completion variable is initialized the fact that the activity has
already completed will be lost.
In order to prevent this race condition and conform to the sequence of
steps required for proper completion variable usage, relocate the
initialization of tx_action_cnf_event.
Change-Id: Ibc54b8dd62c3a828d1a43922d89e7970af325f6e
CRs-Fixed: 950132
qcacld-2.0 to qcacld-3.0 propagation.
The SME OEM DATA request API supports a callback function pointer,
however this callback functionality is obsolete. Therefore remove
this functionality.
Change-Id: Id06910841ad625412ba1f3222407e471f4d7edd7
CRs-Fixed: 911404
Remove the usage of fixed broadcast sta id of 1 for IBSS.
Fixed broadcast std id of 1 was getting used for IBSS since
no concurrency was supported for IBSS earlier and sta id 1
was always used as broadcast sta id. Now with concurrency
being allowed with IBSS, this fixed broadcast sta id cannot
be used. Make the broadcast sta id dynamic.
Change-Id: I79222e276fbdd41a8938a3a26e58af9335f17ade
CRs-Fixed: 953523
Ensure that wait for MC thread clean-up happens as part
of IBSS leave so that by the time upper stack calls the
change interface, we are all set to proceed further.
CRs-Fixed: 949956
Change-Id: Ib0ee79fe38cbf3c462bd8157c4e014c086f5c29f
With current code, as soon as change interface command comes to
convert interface type to AP, it removes p2p device adapter which
is not required. In new platform, various concurrencies are supported
which includes SAP+GO, SAP+STA+GO, and so on. To make these
concurrencies work properly, no longer remove the p2p device adapter
when SAP comes up.
Change-Id: Icb1729f25e0604e0c342a136d9b4cf332e50d7c8
CRs-Fixed: 953788
As per the requirement when IBSS connection co-exist with STA
connection and scan request is coming from STA adapter,
don't include those channels which fall in same band as IBSS
channel's band.
Change-Id: Ifb42ea6b463bd5020bf544eee504b9c3ceefcfc2
CRs-Fixed: 953788
Provide necessary code changes to support IBSS+SAP concurrency for
emulation platform only.
Change-Id: I76dc023bd48ee79ba706f5a7009b1d8462c6b712
CRs-Fixed: 953796
Make necessary changes to support IBSS+STA concurrency for SCC and
2G+5G MCC. Don't support intraband MCC due to known limitation
for this specific concurrency.
Change-Id: I325b5f51abeee3da0a75f90723c8b882f71dbef2
CRs-Fixed: 953788
During processing of rx mgmt frame, host try to get the
vdev using destination address but for BC frame it can't
find the vdev and iface too, so desired functionality will
not work.
As a part of this fix, host is getting vdev using bssid.
Change-Id: I52884faffc8c5fc8c2f9dcb4308e6f0739f80fe7
CRs-Fixed: 945583
Enable single queue NAPI by default on HTT rx path only.
As multi-queue NAPI is being delayed per dependencies, we would
like to enable multi-queue NAPI by default tgo give it a soak time.
Preliminary results show equivalent results with non-NAPI case.
This update does not disable rx-thread or change RPS settings. Eventually
with multi-queue NAPI, rx-threads are expected to be removed and RPS
will be re-evaluated (it is expectyed that there would be no need for it).
Change-Id: Id11e459ea2c0d47428ce7fbcaf628b16d015d70d
CRs-Fixed: 953232
Check for VHT caps in vendor specific IE only if the dot11mode
is set to 11ac or auto, so that the vht caps are included in
association reuest frame only if the dot11 mode is 11ac.
Change-Id: If72117e5a46a754ae602dabd596a2ad8aac33d2e
CRs-Fixed: 952134
Perform cfg download before the SME config update since the
SME config update operation accesses the cfg database.
Change-Id: Ic2d5b6d192ed164b20011b3eeaea6126951b87e8
CRs-Fixed: 948896
Currently the HDD code uses a variety of logging APIs. In qcacld-3.0
HDD should converge on a unified set of logging APIs. Due to the large
number of changes required, this will have to be done in a phased
approach, with conversions occurring one source file at a time.
One potential problem that could occur, in the absence of any
protection, is that once a particular source file has been converted
to the unified set of logging APIs, someone could introduce new code,
either as a new feature or as a change propagation from qcacld-2.0,
which re-introduces invocations of legacy logging APIs. In order to
help prevent this, add conditional compilation to the hddLog() API so
that it will not be available to source files which have been
converted to the unified set of logging APIs. This will cause a
compilation error if hddLog() is called from source files which have
been converted.
Once all of the source files have been converted, the hddLog() macro
itself can be removed from the source code.
Change-Id: I5debb0eb9cd89c08fdfcc4fc117776160ed34501
CRs-Fixed: 949529
qcacld-2.0 to qcacld-3.0 propagation
When transmitting a packet in OCB mode, the station does not need to
be associated to an access point.
CRs-Fixed: 863620
Change-Id: I71b7ad6afa10321a7c7cde597a727bed7454f644
qcacld-2.0 to qcacld-3.0 propagation
Process TX frame only when STA state is in Connected state
otherwise drop the frame.
Change-Id: Id384bb4a11bc2783b8017a8b4fac67ba4f708cb5
CRs-Fixed: 778274
qcacld-2.0 to qcacld-3.0 propagation
Driver would get the tx rate info from firmware and converts it
to mcs index or legacy rate for userspace.
The problem here is when firmware creates a valid ratesets,
it includes all the subset of lower grade rates.
e.g
- VHT80 would include VHT80/VHT40/VHT20, VHT40 include VHT40/HT20
- HT40 would include HT40/HT20
- NSS2 would include NSS2 and NSS1
So that firmware would not only use one rateset, but would use all
other valid rates, the fix is to go through all other possibilities
to make sure the rate look up can find the correct mcs index.
Change-Id: I5df9059b73954951c4adec56002a3eba80915752
CRs-fixed: 936078
Clean up the hddLog API and CDF_MODULE_ID_HDD with CDS_TRACE
misused in CDS module.
Change-Id: I786fa1ba216b42a6218f7eadba60ee7e5e82ebe5
CRs-fixed: 948327
This is a qcacld-2.0 to qcacld-3.0 propagation.
Currently WOW wake up event is processed in work thread which may be
delayed to schedule. Directly complete the event in tasklet in order
to proceed it in time. Also make sure the WOW wake up event handler
is in atomic context.
Change-Id: Ie6015d39321c7759b35f05acc7833ef8974c0157
CRs-Fixed: 900629
Record CE interrupt in CE event history since the interrupts
may come separately for the different interrupts.
Change-Id: I269a103054d3ab2015d67370c43f4af598871b8d
CRs-Fixed: 951569
qcacld-2.0 to qcacld-3.0 propagation
Record when descriptors are posted to or completed by the copy engine
in SLUB_DEBUG builds.
Change-Id: I78ee028a7a61ffd253092cbb530ce9ec2e5022d3
CRs-Fixed: 938120
qcacld-2.0 to qcacld-3.0 propagation.
WMM should be enabled if HT caps are present even if WMM ie is
not present in beacons/probe response frames. In few places it
is not taken care. This commit will address the issue.
CRs-fixed: 873761
Change-Id: I985b7721fc28c9b7d087123c6cff9d76f93696d5
qcacld-2.0 to qcacld-3.0 propagation.
Send tdls mgmt frames with VI tid to give more priority
to tdls mgmt frames.
CRs-Fixed: 873749
Change-Id: I9196680f09678185c1010b472851c1aca00b1635
We already know kernel version is more than equal to 3.10.
So remove static checks for any previous kernel.
Change-Id: I4e17614fae47782a02dd528c7b4adf3d2802ec69
CRs-Fixed: 920681