Commit Graph

373 Commits

Author SHA1 Message Date
Rajeev Kumar
6f16cee318 qcacld-3.0: Clean up packet parsing log messages in WMA
When FW wakes up APPS processor from power collapse it sends 120
bytes of payload piggy backed to wake up event handler. There are
some types of frames for which packet stats is not maintained.
Clean up log messages in WMA such that error message is not logged
to console.

Change-Id: I31d032874e5c9b8773a4e8d5067923c1dd20e23a
CRs-Fixed: 1065309
2016-09-12 21:46:01 -07:00
Naveen Rawat
17dccbee18 qcacld-3.0: Change NDP WOW event handling to confirm with existing code
Currently in wma_wow_wakeup_host_event, NDP WOW handler code is doing manual
pointer arthematics followed conversion to event tlv. This is duplicate effort
as necessary wmi event struct is already available. Remove this and directly
use wmi event struct.

Change-Id: I90da473d773781d007f4932d6ffbec389d5a2766
CRs-Fixed: 1058503
2016-09-12 19:03:33 -07:00
Anurag Chouhan
bf5e0e2457 qcacld-3.0: Add fw_test command
Add an Iwpriv command to update fw test params.

Change-Id: I7017fedbe8eddfa6b0f93f1d6129b12f22a462bb
CRs-Fixed: 1045265
2016-09-12 12:54:09 +05:30
Selvaraj, Sridhar
a7fc763e16 qcacld-3.0: Update Assoc IEs to firmware after STA connects
As part of MBO(Multiband Operations), the Assoc IE's including
MBO IE need to be sent to FW as part of Roam Scan Offload command
so that these IE's can be used later in firmware initiated roams

Change-Id: Ia873c65a7813ae63d8e53d7445095990b0c2fed7
CRs-Fixed: 1039969
(cherry picked from commit 0af3520421400b65002604e0a3a9c7c714cc1e21)
2016-09-11 17:37:17 -07:00
Selvaraj, Sridhar
171e225474 qcacld-3.0: Check if vdev is created before LL stats query
qcacld-2.0 to qcacld-3.0 propagation

As part of "change iface" in HDD, host does close session (VDEV DELETE) and
as part of "start ap", host invokes open session(VDEV CREATE).
Link Layer(LL) stats query is received in host driver in a corner/race
condition between the events "change iface" and "start ap" which leads
to an exception issue in firmware since FW receives REQUEST_LINK_STATS WMI
for a deleted VDEV.

This fix adds a boolean variable vdev_active to vdev structure(wma_txrx_node),
which is set to true once vdev is created. vdev_active is checked for TRUE
before sending LL stats query to FW with WMI command.

Git-commit: cf7bf99eb9a71b1043cd230aee704c44c62c98ff
Change-Id: Ifcc986c3352e4e66da35b8d6c489d98dbe61401d
CRs-Fixed: 987734
(cherry picked from commit b82c03d8686a57b120f991ffbb9b9801c908aac8)
2016-09-11 17:03:09 -07:00
Naveen Rawat
03e8d95c9e qcacld-3.0: Send HT/VHT CAPs IE to firmware per band
Send HT/VHT CAPs IE to firmware per band. This will allow certain
features like LDPC to be configured per band.

Change-Id: I21c83af984f9be3ade46121ef148b52568c3ad0f
CRs-Fixed: 1055774
(cherry picked from commit 2a94c5666ea0c66477d0086c8d5a401db8e4afcf)
2016-09-11 16:49:46 -07:00
qcabuildsw
b8c8051a05 Merge "Revert "qcacld-3.0: Fix race condition between PM suspend and fw irq"" into wlan-cld3.driver.lnx.1.1-dev 2016-09-11 16:21:55 -07:00
qcabuildsw
f5a36a2095 Revert "qcacld-3.0: Fix race condition between PM suspend and fw irq"
This reverts commit Change-Id: Ib16a4e86f2378a8ca3f7eaada54fc7a3d67a886b
WLAN driver is blocked from promotion as the dependent kernel
change is not merged yet. Race condition between PM suspend and fw
irq will occur again after reverting.

Change-Id: Ida519d607df1e1e183c7af445d48be2f50101ce7
CRs-Fixed: 1060748
2016-09-11 15:44:40 -07:00
Manjunathappa Prakash
fff753c12e qcacld-3.0: Add option to control Rx flow steering
Add ini configuration to enable/disable Rx flow steering.
Add HTT message to configure RX flow steering.

Change-Id: I80aab262c754716b28bfdae561d1cbf5e1d38e4d
CRs-Fixed: 1055179
2016-09-11 15:23:53 -07:00
Mukul Sharma
4d1eb2bd58 qcacld-3.0: Avoid ipa cmd to firmware during driver unload
qcacld-2.0 to qcacld-3.0 propagation

Host should not send the ipa_enable_disable cmd to firmware
during driver unload.
As a part of this fix, Host discards ipa enable/disable
commands during driver unload.

Change-Id: Ib7fe63463eaaa2f124428c73857f19e65bce67a3
CRs-Fixed: 994677
(cherry picked from commit 67c30cf80f9ff7e05637a08f5b25cec6fa20c38e)
2016-09-10 19:08:32 -07:00
Mukul Sharma
93206a4dff qcacld-3.0: Reset target suspend flag when wow ack time out
qcacld-2.0 to qcacld-3.0 propagation

During suspend request host send wow cmd to fwr and set
target suspend true so other wmi cmd won't send to fwr.
While waiting for wow ack/nack from fwr, if time out
happens then host inject crash and start self recovery.
But inject cmd is getting dropped due to target suspend is
set.

As a part of this fix, reset target suspend flag if timeout
occur for wow ack so self recovery can be triggered.

Change-Id: I1db556f9aa83fbf1324ddc1c1d205b0217b11bc2
CRs-Fixed: 983694
(cherry picked from commit 7aa878de9ba001e573cb63b52ddf4d78543bb673)
2016-09-10 19:08:12 -07:00
Mukul Sharma
dfc804c0e5 qcacld-3.0: Wait for download complete only when OTA required
qcacld-2.0 to qcacld-3.0 propagation

Currently for low latency target, host is waiting for 1 sec for download
complete, which is blocking MC thread. Due to this MC thread is not
serving the SME queue and which triggers the active cmd time out.

As a part of this fix, MC thread waits for download complete only
for those frame which needs OTA.

Change-Id: I25f45e969dd5bbf2341d586265d84919755f6ed3
CRs-Fixed: 967842
(cherry picked from commit c54a6f76ec228eaca7fa5f1f529d29011a83c445)
2016-09-10 19:08:07 -07:00
Anurag Chouhan
04dbf6de4d qcacld-3.0: Disable RA filter when BPF is enabled
qcacld-2.0 to qcacld-3.0 propagation.

In current implementation, RA filter is enabled irrespective of the
BPF filter status. This change checks if BPF configuration in ini as
well as in target config is enabled, then RA will be disabled.

Change-Id: I85df0828af665d2bcc13c865b0ba40ebf882fffe
CRs-Fixed: 1058884
(cherry picked from commit 8dda6e83eb85ef9f0342ab23954e093c6dfebe2e)
2016-09-10 19:06:41 -07:00
Kondabattini, Ganesh
b72e25cb7f qcacld-3.0: Define data structures for new AP requirements
qcacld-2.0 to qcacld-3.0 propagation

Defining data structures for below new requirements.
        - beacon_tx_rate
        - vendor_ie
        - vendor_ie_len
        - vendor_ie_assoc_policy
        - sta_inactivity_timeout
        - tx_pkt_fail_cnt_threshold
        - short_retry_limit
        - long_retry_limit
        - ampdu_size
        - supp_rate_set
        - extended_rate_set

Change-Id: I9d05cd7b8e051c4e9e4912cf866206ae32ec293d
CRs-Fixed: 1020078
(cherry picked from commit 8f57eee853baff54397c68c8cd71aeb50610a56a)
2016-09-10 19:06:29 -07:00
Krishna Kumaar Natarajan
e1a59839df qcacld-3.0: Update tlv_check_required() to handle all WoW reason
Update tlv_check_required() to handle all WoW reason to prevent failure
of parsing the wow packet buffer.

WOW event AP_LOST_ASSOC reason is not handled in tlv_check_required function
which returns true to parse the wow packet buffer which is incorrect. Enhance
the tlv_check_required function by adding only the reasons that require
tlv parsing and return false for others.

Change-Id: I4079086c4a49279921f6af8dda72b32d923022c2
CRs-Fixed: 1064249
(cherry picked from commit 1cc8d077fb321e2b83a5f15bcd2a3bdb7d8ccb19)
2016-09-10 19:05:40 -07:00
Sandeep Puligilla
2ff3ebe4a7 qcacld-3.0: Dont send response to LIM during roam sync
WMA is sending response to ADD_STA and
ADD_BSS request during failure scenario.

Add conditions not to send the response to LIM
during the roam sync indication operation.

Change-Id: Iad9a8b28e1029ebd12e2022fb38d2aa01a03e9aa
CRs-fixed: 1061963
(cherry picked from commit b23176083295303da6847274120af8ab48e62730)
2016-09-10 19:05:31 -07:00
Naveen Rawat
cb186cf882 qcacld-3.0: Fix nan data interface create
1) In function wma_update_hdd_cfg update tgt_cfg before calling hdd callback
   function.
2) In function hdd_init_nan_data_mode correct check for status returned from
   sme_open_session

Change-Id: Ibf86c348f95c6f5589c2089600dbe176b1fda5fe
CRs-Fixed: 962367
(cherry picked from commit c6e52d750fee0675efdbe08d7e6f0c274887cb65)
2016-09-10 19:05:19 -07:00
Anurag Chouhan
01cfa4e859 qcacld-3.0: Remove ani_global.h from qca-cmn
Currently ani_global.h is included in qca-cmn,
The change removes ani_global.h and there are
corresponding changes in Driver

Change-Id: I59684e475406386e250635bde88390797835c95f
CRs-Fixed: 1012452
2016-09-10 14:19:48 -07:00
Abhishek Singh
779a55cfaa qcacld-3.0: Print qpower enable/disable depending on the config value
qcacld-2.0 to qcacld-3.0 propagation

Driver prints qpower disabled even if command for qpower enabled
is sent to firmware.

To avoid confusion print qpower enable/disable depending on the cmd
sent to firmware.

Change-Id: Ifb135d4ad1691d0e5024aa2ef31880be271cac9e
CRs-Fixed: 1044603
2016-09-10 14:10:42 -07:00
Dustin Brown
1817984b6f qcacld-3.0: Apps cannot power collapse while wifi is on
Under error conditions while suspending FW, the target-suspended flag
was not being cleared properly. This caused a situation where FW was
thought to be suspended, but was not. This prevented Apps from
suspending. Properly unsetting this flag under error conditions was
added in this change.

Change-Id: I77c57b3ee7a3327c181e3cc350a59cd1ee46df68
CRs-Fixed: 1063089
2016-09-07 11:48:52 -07:00
Deepak Dhamdhere
94580ee4ea qcacld-3.0: Fix memory leaks in wma_pno_start()
Clean up the exit path to free the channel list and params buffers.

CRs-Fixed: 1056031
Change-Id: I2d7910169e9535ae03c37c9ffe07fd2a7b763350
2016-09-06 16:27:08 -07:00
Deepak Dhamdhere
f2a7d8be0e qcacld-3.0: Use OkcEnabled .ini flag to control firmware OKC
Turn off opportunistic key caching (OKC) in firmware based on
"OkcEnabled" parameter in WCNSS_qcom_cfg.ini.
It is enabled by default and can be turned off with value 0.
Remove FEATURE_WLAN_OKC compilation option because OKC is always
compiled in for cld3.0. Remove underlying empty routine
cb_notify_set_okc_feature_enabled().

CRs-Fixed: 1057181
Change-Id: I174e860abef0532d62517635fe56927d8c3c9fd3
2016-09-02 21:27:00 -07:00
Sreelakshmi Konamki
9d866dfe20 qcacld-3.0: Fix suspicious dereference of pointer
qcacld-2.0 to qcacld-3.0 propagation

Fix to add NULL check before dereferencing of pointer

Change-Id: I6cfbb5cb6a434a924e988bab50a5a062a2499ccf
CRs-Fixed: 1039152
2016-09-02 18:26:39 -07:00
Rakesh Sunki
88d9c5a0bb qcacld-3.0: Fix src and dest MAC address in WOW wake up event print
When WOW wakeup host event is received with reason code
PATTERN_MATCH_FOUND the host and destination mac addresses
parsed are printed interchanged.

Fix by correctly ordering the source and destination MAC
addresses in the print.

Change-Id: Iea7853d75de4f60d394704de7ba0d5d64925c78f
CRs-Fixed: 1059498
2016-09-02 18:25:14 -07:00
Rajeev Kumar
fa4d902036 qcacld-3.0: Fix race condition between PM suspend and fw irq
PM suspend and FW interrupt handler is running at same time
which is leading to multiple race conditions and host is missing
FW wake up interrupt which is causing APPS not waking up reliably.

Define .suspend_noirq and .resume_noirq callbacks and make
sure there is no pending FW interrupt before allowing PM
suspend to complete. Kernel PM suspend framework gives guarantee
that suspend_noirq and device interrupt handler can't run
simultaneously. This helps WLAN driver to reliably detect FW
wake up interrupt during PM suspend and fail PM suspend gracefully
if FW has requested for initial wake up.

Change-Id: I9e55f58aee29017fe09efeb5231b8be23053f7b7
CRs-Fixed: 1060748
2016-09-02 18:23:58 -07:00
Dustin Brown
75d02343f7 qcacld-3.0: add wakeup stats for BPF wakeup
Currently, for BPF wakeup reason, there is no log statistics.
Add BPF wakeup reason stats.

Change-Id: I469370fc576b83c8118bb73a5679d0f529555047
CRs-Fixed: 1060615
2016-09-02 17:24:10 -07:00
Kapil Gupta
e29ab4a9b0 qcacld-3.0: Initialize re_flag of dfs_event
qcacld-2.0 to qcacld-3.0 propagation

It may be possible to have random data in re_flag which may
cause extra processing of the phy error in case of dfs event.

Add change to initialize re_flag variable with zero.

Change-Id: I1f38bed9471de60cb32da3ac31eb1e08011c2074
CRs-Fixed: 1028556
2016-09-02 17:23:12 -07:00
Selvaraj, Sridhar
aecc49fabb qcacld-3.0: Indicate FW to include TPC IE in probe request
qcacld-2.0 to qcacld-3.0 propagation

Add TPC IE by default in probe requests of STA scans as this
required for VE cert.

Git-commit: e50d4b5c607d4d563d6c85f4e8e9a21859c940c4
Change-Id: I196e22e3e5ceea2a18bfd5137589b16c5e6d8e08
CRs-Fixed: 1006608
2016-09-02 17:22:44 -07:00
Rajeev Kumar
4c42662c10 qcacld-3.0: Fail PM suspend if target has sent initial wake up
Host is not handling target initial wake up properly which is
leading to resume failure. Fail PM suspend request if target
has sent initial wake up message.

Change-Id: I7ac757dd7968f541935519da0689d7672f72d19b
CRs-Fixed: 1059543
2016-09-02 17:22:13 -07:00
Rajeev Kumar
2e58d6e054 qcacld-3.0: Remove duplicate wake up reason logging
wma_wow_wakeup_host_event already logs wake up reason at
the begining of the function. Remove duplicate logging for
wake up reason.

Change-Id: I1b3a3099c395dcf050e0c1c42677686c2c4911ef
CRs-Fixed: 1059065
2016-08-27 16:13:28 -07:00
Rajeev Kumar
2c892fe7e9 qcacld-3.0: Do not try to free if wmi tlv is null after wake up
Trying to free a null WMI TLV struct leads to confusing error message.
Do not try to free WMI TLV struct if it was not allocated.

Change-Id: Ic9607179aa5b7dd517f3187716279d0c02199117
CRs-Fixed: 1059077
2016-08-27 16:12:47 -07:00
Rajeev Kumar
29eb82ad1c qcacld-3.0: Avoid TLV check for non WMI wake up reasons
APPS wake can happen:
1) For a piggy backed WMI event ID for example SCAN, ROAM etc
2) OR for a wake up reason which does not have a piggy backed
   event ID for example BPF, pattern match, auth/assoc/deauth
   wake up.
3) Auth/Assoc/Deauth etc management wake up reasons do not carry
piggy backed WMI event ID. Actual management WMI event ID comes
as a separate WMI event from target.

Change-Id: Ie7b2b902b646375f21467211f1a4a61361144f3f
CRs-Fixed: 1059088
2016-08-27 16:12:04 -07:00
Mukul Sharma
f7cb3ab22e qcacld-3.0: Move buckets_scanned mask for extscan get cache result
qcacld-2.0 to qcacld-3.0 propagation

If host issues extscan get cache results, while gscan is not in
progress then buckets_scanned mask comes as zero. To handle this
issue now firmware sends the buckets_scanned mask as part of
wmi_extscan_rssi_info instead of fixed_param.

Change-Id: I5923a5fc642dd722bf6cc9f5496c7cedcf75e1a5
CRs-Fixed: 1001733
2016-08-27 16:08:13 -07:00
Himanshu Agarwal
19141bb676 qcacld-3.0: Add capability based logic to mark first packet after wakeup
Propagation from qcacld-2.0 to qcacld-3.0.

Add a capability in service bitmask to indicate that fw also supports
this feature of marking first packet after wow wakeup to maintain backward
compatibility.

Change-Id: I3d41f5425e3a170c046941a439d17e06df0c6bef
CRs-Fixed: 1021382
2016-08-27 16:02:41 -07:00
Kapil Gupta
0a2477b23f 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.
Current implementation checks for the number of channels in roam
cache list instead of AP count.

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

Change-Id: I4d5f7c6c69b1a9a527aace1677050373065af213
CRs-Fixed: 1058211
2016-08-27 15:52:52 -07:00
Manishekar Chandrasekaran
b82554d382 qcacld-3.0: Map internal PCL weight to the FW weight representation
Map the internal PCL weights to the weights that the FW can
understand.

Change-Id: Ib7b2a67305ddec991fe94016cea09a834e5b4cb5
CRs-Fixed: 1050438
2016-08-27 15:34:44 -07:00
Abhishek Singh
5a33171128 qcacld-3.0: Fix scan failure issue due to stale PE session
qcacld-2.0 to qcacld-3.0 propagation

If roaming is initiated by firmware, after getting the candidate
list the CSR will start preauth with the candidates and thus
preauth will be the active command in SME.

Now if at the same time connect is issued from supplicant,
HDD will queue disconnect cmd in SME queue and wait for disconnect
to get complete for 2 sec. Now there is a chance that channel
change along with preauth timeout can take more than 2 secs.
In this scenareo the disconnect will timeout in HDD and will
return connect failure to supplicant. Next supplicant will issue
disconnect which is ignored by HDD as disconnect is already been
queued in SME. Now if supplicant again sends the connect command,
as part of connect command CSR will remove the disconnect command
from the SME queue and queue this connect command.

On preauth timeout the preauth state machine checks if disconnect
is queued and if it is queued it will abort preauth. But in this
case disconnect is removed by the connect request and thus preauth
retry continues and if preauth is success handoff will be queued
in SME queue.

Now the connect request is processed and if this connect request's
BSSID is same as the BSSID of the roam candidate, as all the CSR
states for this BSSID session indicate roaming, instead of
join it will try to reassociate and continue changing the CSR states
again. Eventually this connect will fail. Next the handoff command
is processed and as part of handoff it will try to cleanup
original session, but as CSR states are changed by connect request
the original session is not cleaned up properly. This results in
stale PE session entry which does not allow the scan to be sent to
firmware, returning the cached results and thus 0 scan results.

To fix this:
- Increase the WLAN_WAIT_TIME_DISCONNECT to 5 sec to make sure all
  sessions are cleaned up before allowing the new connect to proceed.
- Increase the priority of preauth scans.

Change-Id: Id7cc1e6f3c31df8a8c8955eb3ff48cb60e5b5ab2
CRs-Fixed: 1048394
2016-08-27 15:29:57 -07:00
Deepak Dhamdhere
c47cfe8fa7 Revert "qcacld-3.0: Force delete peer entry during LFR3 roaming"
This reverts commit-id: "Ib028c29863d4e95ccac434f7d47bfedd59ef883f"
It caused peer object memory access after it was freed.

CRs-Fixed: 1057347
Change-Id: I99842eb646371e186ade3b126ea0e8f84b7f2187
2016-08-22 12:44:49 -07:00
Sandeep Puligilla
58c84ef0cd Revert "qcacld-3.0: Check if vdev is up before sending vdev down to FW"
Auth request is not sent out due to which assoc reject is observed.

As part of the vdev down firmware clears the software tx queue which
is blocked due to the "Ia5394390d376c638b3976d446a6ecc98d0584159"
change. So reverting this change will enable
the vdev down and clears the tx queue.

This reverts commit-id "Ia5394390d376c638b3976d446a6ecc98d0584159"

Change-Id: If7d7ca5939f7586b12d84d6e070e94bb5e7e6c2c
CRs-Fixed: 1057329
2016-08-21 18:04:12 -07:00
Srinivas Girigowda
c34f11dfd8 qcacld-3.0: Add support to enable/disable packetlog using iwpriv
Add support to enable/disable packetlog using
iwpriv wlan0 pktlog command.

Change-Id: Ia17f659e16221985be5cd9e75ebf0c46f2dc5693
CRs-Fixed: 970647
2016-08-20 10:36:55 -07:00
Nirav Shah
dcc4c875c4 qcacld-3.0: Changes to support WDI_EVENT_SW_EVENT for packetlog
Changes in host to support WDI_EVENT_SW_EVENT for packetlog.

Change-Id: I8936a408a7da21ad293b6da7af146298c049052d
CRs-fixed: 1047382
2016-08-20 10:36:52 -07:00
Deepak Dhamdhere
363c6bc5bf qcacld-3.0: Force delete peer entry during LFR3 roaming
While processing ROAM_OFFLOAD_SYNCH_IND, delete the peer entry
even if reference count is non-zero sine firmware has already
deleted that peer. It allows addition of new peer without waiting
for peer_unmap events. Fix the logic error in checking the timeout
in ol_txrx_peer_attach().

Change-Id: Ib028c29863d4e95ccac434f7d47bfedd59ef883f
CRs-Fixed: 1046754
2016-08-19 19:25:46 -07:00
Krunal Soni
0193b6f143 qcacld-3.0: Provide support enable RX LDPC in certain cases
In following conditions RX LDPC support needs to be enabled
1) when STA is coming up in 5G band
2) when IBSS is coming up in 5G band

for anyother cases RX LDPC needs to be disabled. If user has
choosen RX LDPC to be disabled from INI file then it needs to
be disabled for all the cases including above mentioned cases.

To achieve this, take the intersection of global, INI, and harware
specific RX LDPC settings.

Change-Id: Iae10aa4a8c0931cdb796cd9c8ff558d4bc8e0aed
CRs-Fixed: 1050004
2016-08-19 18:52:48 -07:00
Himanshu Agarwal
b56ad2e5c1 qcacld-3.0: Change structure names for WIN compilation fix
Change structure names to fix WIN compilation when used in
coexistence with MCL codebase.

Change-Id: Ife09989e1f0f0c4d619f73c5960968d3a6721b6e
Acked-by: prgandhi@qti.qualcomm.com
CRs-Fixed: 1008872
2016-08-19 18:52:45 -07:00
Mohit Khanna
0fe6167c19 qcacld-3.0: Add USB bus support (WMA)
Add WMA specific changes for USB bus support.

Change-Id: I4186d22e4f0af258ee92fb269db9a987cdd0c933
CRs-Fixed: 1023663
2016-08-19 18:33:23 -07:00
Himanshu Agarwal
11a08c08db qcacld-3.0: Add check to find IPV6 mcast packet
Propagation from qcacld-2.0 to qcacld-3.0.

1) Add check to find IPV6 mcast packet embedded in a
   link layer unicast packet in wma_wow_wake_up_stats.
2) Add extra length check for IPV4 packets.

Change-Id: Ic2af69032262237b8751019817ae181913346818
CRs-Fixed: 1049254
2016-08-19 18:33:14 -07:00
Himanshu Agarwal
4574e28362 qcacld-3.0: Correct wow wakeup counters
Propagation from qcacld-2.0 to qcacld-3.0.

Correct the updation of various wow wakeup counts.
Change wow_icmpv6_uc_bc_count to wow_icmpv6_count
as there is no broadcast in case of ipv6.

Change-Id: Iceaf1226edbf909ca3881e049c33f7d121860ef2
CRs-fixed: 1049254
2016-08-19 18:33:12 -07:00
Himanshu Agarwal
77e1b31e0d qcacld-3.0: Add ipv4 and ipv6 packet checks
Propagation from qcacld-2.0 to qcacld-3.0.

Presently in updating wma_wow_wake_up_stats, icmpv4 and icmpv6
counts are increased just by checking ICMP protocol offset byte
and ICMPV6 protocol offset byte without checking for whether it
is a IPV4 or IPV6 packet. So it is possible that for ICMPV6 packet,
the IPV4 protol offset byte is equal to ICMP protocol or for some
ICMP packet, the IPV6 protocol byte is equal to ICMPV6 protocol and
thus both the icmpv4 and icmpv6 counts will get increased for that packet.

Add ipv4 and ipv6 packet checks as well in addition to the present checks
to avoid wrong increment in the counts.

Change-Id: I2d6e5d095d2f4b2dd474b9338bfc830b04bfa533
CRs-fixed: 1048651
2016-08-19 18:33:11 -07:00
Arun Khandavalli
d454d42793 qcacld-3.0: Increase WMA_STA_WOW_DEFAULT_PTRN_MAX to 5
qcacld-2.0 to qcacld-3.0 propagation

The problem with the existing code is:
* WMA_STA_WOW_DEFAULT_PTRN_MAX is set to 4 and in wma_wow_sta()
  we make sure atleast WMA_STA_WOW_DEFAULT_PTRN_MAX free slots are
  available before configuring the default wow pattern. But after this
  check we are actually configuring 5 default wow patterns.
* If BPF is enabled, we are limiting the Max WoW patterns to 2,
  because the free slots are 2 which is less than the expected default
  free slots WMA_STA_WOW_DEFAULT_PTRN_MAX. we are not configuring
  default STA mode wow pattern and hence no wakeups observed for
  incoming packets.
Address this issue by changing the WMA_STA_WOW_DEFAULT_PTRN_MAX to 5 and
MAX WoW filters to WMA_STA_WOW_DEFAULT_PTRN_MAX if BPF is enabled.

Change-Id: If433cff18ce511e7fdffadff69ee13b762a1719b
CRs-Fixed: 973054
2016-08-19 18:33:05 -07:00
Arun Khandavalli
3dd06deb03 qcacld-3.0: BPF fixes for check connection state, set maxwow filter
qcacld-2.0 to qcacld-3.0 propagation

* Set BPF filter only if the station/p2p client is in the connected
  state.
* Depending on the BPF service enabled in firmware dynamically
  configure the number of wow filters.
    - If bpf enabled maxwowfilter is 2.
    - If bpf is disabled maxwowfilter is read from ini.

Change-Id: I14c722c9a1189f4ba4fbc2c8a554ae85b7a61fa8
CRs-Fixed: 967535
2016-08-19 18:33:04 -07:00