Refactor the hdd_vdev_create() API to move device mode
based VDEV config to a new API.
The new API calls required configuration functions
based on the device mode.
Change-Id: I54c5412577b70d92652cb16fcfb10e4d69e6f6fd
CRs-Fixed: 3445149
Check if TDLS is allowed for the current existing concurrency
combination. In below combinations, TDLS is not allowed:
1. MCC on STA vdev
2. STA + STA
3. Total connection count > 3
4. No STA vdev exists
If existing TDLS connection exists when 4th port is coming up,
then teardown the TDLS connection and disable off channel.
Change-Id: Iabe174bedecfa6147bd9de3cb2a3716b63145456
CRs-Fixed: 3435864
Currently SIFS burst configuration is done from
osif layer though there isn't any dependency on
the osif layer.
Move the configuration of SIFS burst to post
vdev create.
Change-Id: Id1e6064164c0ea9d6ab5c5b1217c7c275fb45832
CRs-Fixed: 3297656
Introduce a new API to configure the rtt and ftm
parameters for the VDEV.
The API can later be used to configure the
rtt and ftm parameters on per VDEV of the adapter.
Change-Id: I9d7411fa76520b0a1876f38c27122a14a91826b7
CRs-Fixed: 3297665
Introduce a new API and use it to configure
the station context of the adapter.
Change-Id: Iee2af060ec3c74782127bd0f202719b4bfe3dab2
CRs-Fixed: 3297636
Currently, rssi, rssi_send, rssi_on_disconnect and snr members
are part of hdd_adapter.
Move following fields to link info
1) rssi
2) snr
3) rssi_on_disconnect
4) rssi_send
Change-Id: Iec76cdf51ed72adefacc4b77a6a2d1d8a28e96b6
CRs-Fixed: 3294941
In SAE roam offload case, the SSID of the candidate is
retrieved from the roam candidate frame, and this SSID
is sent to the userspace for initiating SAE authentication.
However, if roam candidate frame is an MBSS beacon and the
candidate BSSID is present in non-tx profile, still the
SSID from tx profile is sent to the userspace, which leads
to authentication failure.
To fix this:
a) Save the BSSID in addition to the SSID during the roam
candidate frame extraction.
b) During roam auth offload event, get the SSID from the
scan cache only if the existing BSSID cache(filled in #a)
doesn't match with the BSSID received in roam offload event.
This would prevent the time expensive scan table lookup
operation for non-MBSSID cases.
Change-Id: Ib8cc0408cba7ccfc8c2b3e2d657f7b40f8a4d421
CRs-Fixed: 3437698
When fast reassoc command is received with bssid
and channel frequency set to zero, if no candidate
found, STA DUT should disconnect.
Currently STA is disconnecting from current AP but
the also when FW aborts roam.
To fix this add additional check for roaming source and bssid.
Change-Id: I6ee3f5cea6ef3976b9cc5549ab113e4af30484d7
CRs-Fixed: 3441770
Refactor tgt_mc_cp_stats_send_raw_station_stats into
vdev_mc_cp_stats and peer_mc_cp_stats functions to
improve code readability.
Change-Id: I5b313a84f4dd758d0b166940f055153bfae345a6
CRs-Fixed: 3442881
In multi link connection, for partner link vdev power save
is not set if not associated.
So, check if the adapter is multi link instead of the vdev and
set power save for partner link vdev's as well.
Change-Id: I483a75ed0ab631e535d06d9bd4d08b8de986cd07
CRs-Fixed: 3417368
In CFG_SAP_PS_WITH_TWT and CFG_DISABLE_SAP_BCN_PROT,
passing value as string instead of numeric.
Causes wrong value while macro expansion.
Passing enum value of false in CFG_SAP_PS_WITH_TWT and
CFG_DISABLE_SAP_BCN_PROT.
Change-Id: Ib8b297ef69cebb71c1e6645f49a75e79393b8c94
CRs-Fixed: 3440741
Currently in wma_unified_link_peer_stats_event_handler, the host
updates peer's rx_mpdu value by querying dp_peer stats, using
peer mac address and vdev_id sent by firmware.
In case of MLO connection, the dp_peer stats query fails for
partner link peer, since the vdev_id sent by firmware is for
assoc link. So, the rx_mpdu value for partner link peer is not
updated. To fix this issue, update correct vdev_id for the peer.
Change-Id: I5f45f1cba6399c6ab810d3d94272d035259317a8
CRs-Fixed: 3438061
In STA + SAP / GO DFS SCC concurrency, switch SAP / GO's operating
channel before STA's switch upon received very first CSA on STA
interface from peer AP.
Once STA moves to new channel, enforce SCC with existing SAP / GO
if its in MCC. This is done to allow traffic on SAP / GO side
during CSA period.
Change-Id: Icb4a15ad21ae96faff1fe338985aa734a4398cd2
CRs-Fixed: 3431386
To support multiple VDEVs in single adapter, the VDEV
specific fields in hdd_adapter needs to be moved to
link specific data structure.
Move the following fields from hdd_adapter structure to
wlan_hdd_link_info structure.
1) vdev_id
2) vdev_lock
3) vdev
4) vdev_destroy_event
Change-Id: I80d0ed167ca31bff7445b9c7788c86ef6f776018
CRs-Fixed: 3291070
To support multiple links in single adapter, create a new
structure to hold per link info inside the hdd_adapter.
Create a new member in hdd_adapter to point to link zero
of this array of link info.
Move STA and AP context fields into per link info.
Change-Id: Ia1f01865277c3e08254f44a39ba6675a9fea6c65
CRs-Fixed: 3354572
In dual STA case, driver will avoid selecting candidates causing
MCC, but the current hw mode may have some delay updated from firmware.
So the API policy_mgr_are_2_freq_on_same_mac may not get correct
DBS or SBS channel state of two channel frequency.
Fix it by do not depending on current hw mode by using API
policy_mgr_2_freq_always_on_same_mac to check potential MCC or
not of two channel frequency.
Change-Id: I7d5382e786c421d5f99578e08b62b07864f48974
CRs-Fixed: 3441024
Subnet change status field is obtained from bits 4 & 5 of the
roam_reason field in roam synch indication. But in
cm_fill_roam_info() the subnet_change_status is received from
the masked roam reason field and is always 0. So after
roaming to AP with different subnet wrong subnet change
indication is sent to userspace and ultimately NUD failure is
triggered.
Get the subnet_change_status directly from the roam synch
indication
Change-Id: I708276750c0aa3f1586cf9501f55f742d42ebf3f
CRs-Fixed: 3438725
As now throttle level is extended to THROTTLE_LEVEL_5,
previous array 'dutycycle_level' of size 4 may use index
value 4..5 during initialization. Change the array size to
THROTTLE_LEVEL_MAX to avoid out of bound accessing.
Change-Id: I5f9f8cb15e6fbdd8e5b4deccddca954fc73cd8e3
CRs-Fixed: 3433333
Add support for new TDLS off-channel mode type:
DISABLE_ACTIVE_CHANSWITCH. With this
off channel mode, the TDLS off-channel will be disabled
completely without passive disable mode.
DISABLE_CHANSWITCH -> Passive channel switch can be done i.e if
peer requests channel switch then firmware can do channel switch
DISABLE_ACTIVE_CHANSWITCH -> Disable all off-channel switches.
Add support to send peer channel lists based on concurrency
combination. Override the ini configured frequency to the
supported frequency based on the current concurrency.
Change-Id: Ie3210178eb8b57d6ab126a730ed91895b70edaa1
CRs-Fixed: 3416213
Add support to compile new dp_rings_main.c file.
This new file is having refactored code of all the DP rings.
Change-Id: I7cd467df8d3f7c4b60d448c88b5cedc76cd62b07
CRs-Fixed: 3423636
wmi_handle is retrieved from psoc handle, validate the same before
dereferencing to avoid any invalid access.
Change-Id: I58c566e1b94c5ba2cd4d74ad4406545ffb39e36e
CRs-Fixed: 3434869