While processing stats event there is an invalid debug
log which is always getting printed and resulting in
confusing loging.
Remove this invalid log from the stats event handling.
Change-Id: I5c60bf73b6b01afce82ebf93e19254f6e302042f
CRs-Fixed: 2493076
When driver requests for stats to FW, FW sends response with
all the requested stats, in this case if the FW buffer gets
filled it sends the remaining stats in next event and FW keeps
sending the stats event until it sends all the requested stats.
FW sets is_last_event field in the response event if the event
is the last event for the requested stats.
Currently driver is parsing only first event and completing the
request from all these events and not checking the last event
bit when it requests for peer stats because of which some of the
stats are getting dropped.
To avoid above issue, add a logic to check the last event bit set
by FW and complete the request only if FW sets the last event bit
in the response event.
Change-Id: Ia3a2f2b4960579ac67bbf1354755af9c2098975a
CRs-Fixed: 2470910
Reduce log level in tgt_mc_cp_stats_process_stats_event,
tgt_mc_cp_stats_update_peer_adv_stats &
tgt_mc_cp_stats_extract_peer_stats from error to debug because
a stats event can be received unsolicited.
Change-Id: I5ad216034eefd8197f80c2a50e8ae0833b149d06
CRs-Fixed: 2471465
Reduce log level from error to debug because a stats event can be
received unsolicited.
Change-Id: I11f3800594c6d623e72a214d832caa29666565a8
CRs-Fixed: 2466944
Currently peer_extd_stats is present in peer_cp_stats structure
which is shared between WIN and MCL and only common features
should be part of this structure as peer_cp_stats is an
abstraction structure for WIN and MCL for cp stats component.
Since peer_extd_stats is MCL specific structure, this should be
moved to peer_mc_cp_stats which is MCL specific feature for
cp stats component.
Change-Id: I18c30db36d34dd3fb3e4f8ad2d3c553c4648548b
CRs-fixed: 2427126
Add dummy implementation of CP stats PMO handler in case
QCA_SUPPORT_CP_STATS is not defined.
Change-Id: Ibe6fe863b0aa31bfda4431887a4f9dae5e74ae69
CRs-Fixed: 2439858
Move some stats from tgt_mc_cp_stats_extract_vdev_summary_stats
and target_if_cp_stats_extract_vdev_chain_rssi_stats, from kernel
to driver
Change-Id: I3475421828b51a229af4ac3ff6087d7ebb311c33
CRs-Fixed: 2430565
Currently capability information and RX multicast broadcast
packet count of the connected peer is not getting
cached.
Add support to cache the capability info from assoc request and
RX multicast broadcast packets from FW.
Change-Id: I105e055b1e440852e8e6b508c25e45f79db2d062
CRs-Fixed: 2409521
Currently, clearing the TYPE_CONNECTION_TX_POWER is
doing after the callback get_tx_power_cb.
Timeout issue happens because:
1\ the callback get_tx_power_cb is interrupted
after invoking osif_request_complete.
2\ __wlan_hdd_cfg80211_get_txpower is called again
and setting TYPE_CONNECTION_TX_POWER.
3\ the callback is rescheduled and clears the bit
TYPE_CONNECTION_TX_POWER.
4\ Because the bit TYPE_CONNECTION_TX_POWER is cleared,
and callback won't be invoke.
Change-Id: I6a5b155d2274551b637dc22095d292a70f836700
CRs-Fixed: 2418587
Presently, the driver doesnot extract the peer extended2 stats
(rx_bytes, rx_count, fcs_err) that are received from firmware.
Provide the support to extract and populate the peer extended stats2 at
the driver level.
Change-Id: If1f1bb1ef2d1202581744dd509d0da1da718d8c1
CRs-Fixed: 2397638
Due to unknown legacy reason, the rates received by the driver from the
firmware are currently divided by 500 to convert it into units of
500kbps. This division by 500 is later compensated by a multiplication
with 5 to maintain units of 100kbps before being sent to the upper
layer. This division and then subsequent multiplication results in the
loss of precision (in the case the rate is not divisible by 5).
Consequently, the rate being sent to the upper layer becomes inaccurate.
Also the calculation of the MCS rate flags is affected.
Do not carry out the unnecessary division and multiplication by 5.
Instead just convert the rates into units of 100kbps (which is as
mandated by the kernel) when driver receives the rate from the firmware.
Change-Id: Iab7b825f4067ad51174a0c545cf4a7d0ab426171
CRs-Fixed: 2378167
Add host support for db2dbm RSSI changes. Firmware
indicates this capability when underlying hardware
has RSSI reporting feature. Based on this capability
host will know if firmware sends SNR or RSSI. If no
capablity is present then host will convert SNR to
rssi using a fixed offset of -96. If capability is
present host will directly use the rssi as it is.
Change-Id: I9058f16c6280d466feb96cf88a8a0d8cd7b02032
CRs-Fixed: 2364025
In wlan_cp_stats_psoc_obj_create_handler() multiple error paths
lead to label wlan_cp_stats_psoc_obj_create_handler_return.
In the label, posc_cs is not null checked before passing to the
csc->cp_stats_psoc_obj_deinit() causing NULL pointer dereference.
Change-Id: I82a48cee7d2734a96960aeedff42fc4cdf94bf9c
CRs-Fixed: 2336830
wlan_vdev_get_bsspeer doesn't hold ref
count on peer.
Use wlan_objmgr_get_peer to get peer
to avoid peer free race condition.
Change-Id: I04bfcf8ca20fa49d81a9e59aafc31caab98374a1
CRs-Fixed: 2337868
Add new fields tx_tooshort, tx and rx discard
control plane stats at vdev level
CRs-Fixed: 2327398
Change-Id: I9f3ae1f4d043319fec8f08752d9112ab5e9f6ef9
As a part of the cfg80211_get_station command, the driver sends TX stats
(tx rate, MCS index, NSS and flags). Currently there is no support to
send the similar RX stats.
Add support to send RX stats to the framework.
Change-Id: Ic66596d118ad1395706db7638da1b4fdef7dc2d5
CRs-Fixed: 2303308
Validate type which is used as index of req array to avoid any
out of bond access issue.
Change-Id: I75d08054b94b7066f7bdc030cf9896469c923a65
CRs-Fixed: 2305555
Add implementation to enhance structure
corresponding to WMI_DCS_INTERFERENCE_EVENT_ID
handler in cp stats component which hold
secondary 40 and 80MHz utilization
which are required parameters of Extended BSS IE
Change-Id: I1c471608394d5c395632742098d2c92fc02ec238
CRs-Fixed: 2298073
Provide support for following channel utilization stats:
self_bss_util,obss_util,ap_rx_util,free_medium,
ap_tx_util,obss_rx_util,non_wifi_util
Change-Id: Ib1358988ae0b5794e70ba4348a78646e9d2a6cba
CRs-Fixed: 2298865
Duplicate stats buffer in the callback so that all
allocations get freed by its owner, this will avoid
memory leak issue because of race condition between
umac and upper layer.
Change-Id: Id18d75eb9adc46a6147634eb5b1e0babe32c7c37
CRs-Fixed: 2289355
Add change to provide API to get DCS chan stats
structure from within cp stats component
Change-Id: Ie67725931f8c9b4870c711e560b06b41854a1af0
CRs-Fixed: 2236328
Add change to provide API to get ATF peer
cp stats structure from within cp stats component
Change-Id: I8465bd04e915419abb8de2d35d039ab812727ab1
CRs-Fixed: 2236328
Add change to define pdev cp stats structure
and provide APIs to set cp stats fields
into cp stats component
Change-Id: I6559a19e11771d16e9207fb0a2fee96f620273b0
CRs-Fixed: 2236328
Add change to define vdev ucast and mcast cp stats
structure and provide APIs of set/get cp stats fields
to/from within cp stats component
Change-Id: I341ca6188c052438e1fea4f9326428b59a1db660
CRs-Fixed: 2236328
Add change to alloc memory for WIN specific cp stats
structures, provide get/set API in cp stats component
for other umac component, reorganize files according
to usage inclusion in other header files
Change-Id: I8b4e4435f60cc0587917ad09ac99659f83f2cb10
CRs-Fixed: 2236328
Fix compilation error in CP_STATs due to change in definition
of of wlan_objmgr_get_peer.
Change-Id: I15753d942dd3932fbf0d2c8a361e5e507fd38b8e
CRs-Fixed: 2244161
Remove DA specific init APIs from common cp_stats and
change logic to not return callback status for psoc close
and disable to override devpool issue for DA arch
CRs-Fixed: 2224153
Change-Id: Ie5bfb7cb7773d3fc09237a9d14ec3611e78cc06f
Add changes to support get congestion stats(arp stats) from
within cp_stats component.
Change-Id: Ieff7df33dd8f3a8a80cda57952eb8d5941ccaedc
CRs-Fixed: 2222781
Add a pdev_id parameter to following API
For peer:
a. wlan_objmgr_get_peer()
b. wlan_objmgr_get_peer_by_mac_n_vdev()
c. wlan_objmgr_get_peer_by_mac_n_vdev_no_state()
d. wlan_objmgr_get_peer_no_state()
e. wlan_objmgr_get_peer_nolock()
f. wlan_objmgr_populate_logically_
deleted_peerlist_by_mac_n_vdev()
For vdev:
wlan_objmgr_get_vdev_by_macaddr_from_psoc()
Change-Id: I7480c5e17e24b5dfb1a7846cfa773821a86a27ca
CRs-Fixed: 2210118
Define ucfg api to free stats_event, since it will be called from
osif and hdd.
Change-Id: Ifeea3e970ddca1ed508960c39a2a39f0ed755bd9
CRs-Fixed: 2231150
Fix CP_STATS rx_ops registration in wlan_lmac_if.c, by including
dispatcher header and directly referencing public dispatcher tgt
APIs.
Change-Id: Id42aac8d2a7f1311d4319c77db05eadd75ee4aa0
CRs-Fixed: 2228934
Avoid un-initialized pointer access by initializing pointer to NULL
or valid value that is address of another variable.
Change-Id: I0666e7cebf9f39928b6b095fa4f7f017b5b2a837
CRs-Fixed: 2219381
Control plane statistics is converged central
component which maintains all control plane stats
and provides necessary support to access statistics
through public APIs
Add framework necessary to create,destroy cp stats
objects corresponding to common object on receiving
event notifications from obj mgr and provide framework
to interact with southbound and northbound
CRs-Fixed: 2192386
Change-Id: I76ec50c1203aa56c4aefc23cbfa03e828b0d7bfd