Commit Graph

80 Commits

Author SHA1 Message Date
Deeksha Gupta
0f667d9495 qcacld-3.0: Skip ROC req if TX action frame freq is same as current vdev freq
Currently, in case of Tx action frame driver start the ROC req based on
the offchannel is set. Due to this, if the TX action freq is same as
current vdev freq then also driver started the ROC req on the same
channel.

Fix is, even offchannel is set, but current vdev freq is same as
that of the channel for the tx frame. Driver will skip the ROC.

Change-Id: I7ab2ade0f01ad5035f7b156ded7eb7af7c826b9e
CRs-Fixed: 3366671
2023-01-05 00:44:43 -08:00
Jeff Johnson
a24656423c qcacld-3.0: Fix P2P Documentation
The kernel-doc script identified a few documentation issues in
components/p2p, so fix them.

Change-Id: I24e612e8976e721281a6ede4afefd20de0622599
CRs-Fixed: 3359593
2022-12-27 19:09:38 -08:00
Aravind Kishore Sukla
d73ef71ceb qcacld-3.0: Rate limit P2P OTA logs
P2P OTA rx frame indications are logged in info level.
This causes excessive logs to kernel logging when peer
sends multiple frames back to back. Rate limit the logs
to avoid excessive logs to kernel logging.

Change-Id: Ia97aef1490b8dbb759c27ba60c48c93ad7831497
CRs-Fixed: 3352880
2022-12-07 00:20:09 -08:00
Pragaspathi Thilagaraj
3a49e2cdfe qcacld-3.0: Converge p2p_set_mac_filter for management frame tx
In management frame TX path from userspace, the
p2p_set_mac_filter structure is used and is defined under P2P
converged macro.

Converge this p2p_set_mac_filter structure to set_rx_mac_filter
structure in qca-wifi-host-cmn to use this by all components

Change-Id: Iefcf36f8b327458b2418bd364ae84b28ca56e7f9
CRs-Fixed: 3306700
2022-10-12 08:18:35 -07:00
abhinav kumar
83d3138157 qcacld-3.0: Drop TX MGMT Frame if no ROC
In case if supplicant issues probe request without ROC,
Host should drop it for STA mode.

Change-Id: I290f441f6ddc41dd8d7434ad7d4fd1b4fcc0c22e
CRs-Fixed: 3296264
2022-10-11 17:35:07 -07:00
Jeff Johnson
ef20cc3a0e qcacld-3.0: components: p2p: Fix misspellings
Fix misspellings in components/p2p/...

Change-Id: I220faae813cd79d7b5fe656158768d1eff4718de
CRs-Fixed: 3303638
2022-10-03 02:00:58 -07:00
Rahul Gusain
dcd308a6c0 qcacld-3.0: Add support for MLO self peer in tx mgmt path
During ANQP query, supplicant sends the action frames to firmware
and currently, host driver drops tx mgmt frames as peer is not
available. This is because in tx mgmt path, it retrieves the self
peer from non-MLO mac addr but driver creates the peer of type
AP(PEER_AP) with MLD mac addr when MLD mac addr is non-zero and for
non-MLO case, it creates self peer with non-MLD mac addr.
So, to fix this, in case of MLO mac addr, create the self peer while
creating vdev and retrieves that peer with MLD address in tx mgmt path.

Change-Id: Id7ef97668fbd1bf1914d37d09682119eb79be465
CRs-Fixed: 3297288
2022-09-22 21:19:36 -07:00
Meng Yuan
0fce1cafb7 qcacld-3.0: Support RRM action frame for SAP mode
Support neighbor response and beacon request
transmit from driver and deliver received
neighbor request and beacon report to hostapd.

Change-Id: I6a27d04ab4b558c4af799cc185b92f011194233d
CRs-Fixed: 3279625
2022-09-16 14:58:52 -07:00
Jianmin Zhu
56608e95ec qcacld-3.0: Fix assert for race condition
When disconnect from wpa_supplicant and cm event from F/W happen at same
time, supplicant holds cm cm_req_lock and wait rsp of p2p cleanup roc from
scheduler thread until 2 sec timeout, sheduler thread is blocked to wait
for cm_req_lock.

When wmi peer delete of vdev0 is not sent within 1.2 sec after host send
wmi peer delete of vdev1, firmware will assert.

To fix it, don't wait rsp of p2p cleanup roc when disconnect by async way.

Change-Id: I877b7a446dfd12f621dad5049a67574359bdd322
CRs-Fixed: 3285115
2022-09-08 14:00:06 -07:00
Rahul Gusain
a73503ed1d qcacld-3.0: Add support for NAN iface in tx mgmt frames
Currently, host drivers drops NAN tx mgmt frames while transmitting
it to firmware as it is unable to find the peer for NAN and
also, random mac check is false because tx channel is not available
for NAN (kernel sends channel as null).
As peer does not exist for NAN, creates self peer while creating
vdev.
So, to fix this, add check for NAN iface to retrieve peer from vdev
mac address and use this peer in tx mgmt frames.

Change-Id: I8ef9e3502397a667841eb6e852ed5755049af44d
CRs-Fixed: 3275426
2022-08-27 18:20:14 -07:00
Rahul Gusain
58e429e53e qcacld-3.0: Add NAN iface for random mac support
Currently, host driver supports random mac for tx mgmt frames
in STA, P2P and P2P CLI opmode only.
Add NAN iface to support for random mac for NAN vdev in NAN 
pairing protocol.
This allows to transmit the NAN tx frames to the lower layer.

Change-Id: I06b9340cf9bfd9f6a5e77ff02d19d8a87baea0ff
CRs-Fixed: 3257667
2022-08-02 15:21:43 -07:00
Pragaspathi Thilagaraj
85754a03ca qcacld-3.0: Allow RX filter configuration for vdev mac address
For PASN authentication, the mgmt frame TX happens before
vdev is started. Firmware configures RX filter for the vdev
mac address during vdev start only. So if firmware sends PASN
initiate request with source mac address as vdev mac address,
then the RX filter willnot be configured since vdev mac is same
as source mac, this causes the PASN M2 frame from SAP to be
dropped and No ack is sent.

Configure RX filter for vdev mac address when vdev is not up.

Change-Id: I52c9e50a250be1935d1097d45753fa941ae73bea
CRs-Fixed: 3254628
2022-07-29 02:37:22 -07:00
David Oladunjoye
21cbc33036 qcacld-3.0: p2p: Replace fallthrough comment with attribute
-Wimplicit-fallthrough is being enabled by default. Some compilers
such as clang require the attribute instead of just a fallthrough comment.

Change-Id: Ie800ea60a4e12deff2ba2b0462de70e2b252082d
CRs-Fixed: 3217411
2022-06-24 09:26:12 -07:00
Rahul Gusain
4bb21dde9e qcacld-3.0: Fix random mac addr set issue
For every random mac addr set/clear command to firmware,
driver gets reply from firmware whether success or fail.
But sometimes, if the response event is delayed by more
than 100ms by firmware then timeout happens in HDD.
Upon timeout, driver sends clear random mac command which
gets dropped in p2p_process_set_rand_mac API as prev command
status from firmware is pending.

So fix is to increase the timeout value to 1000ms

Change-Id: I6116259b5d34269a8c98712d978957cfd374cdc1
CRs-Fixed: 3199989
2022-05-20 07:37:48 -07:00
Abhishek Singh
810795a323 qcacld-3.0: Use wlan_scan_* API instead of ucfg_scan_* API from umac
Use wlan_scan_* API instead of ucfg_scan_* API for scan calles from
umac.

Change-Id: Ib48ee01443ca9ff9ec66a931a95c152376c5027e
CRs-Fixed: 3192125
2022-05-13 01:08:07 -07:00
Utkarsh Bhatnagar
fc883a2f9b qcacld-3.0: Optimize logging for Tx frame Path
Optimize logging by decreasing number of log
lines printed for the Tx frame path.

Change-Id: Iff24346a6b20286b68ee18451155495f624da316
CRs-Fixed: 3168409
2022-04-06 23:43:13 -07:00
Amruta Kulkarni
08bcbf1eca qcacld-3.0: Change file names to cfg_*.h
Change file names from wlan_cfg_*.h to cfg_*.h

Change-Id: If0d12efdea21513826553b8bcee88d7161482591
CRs-Fixed: 2856357
2022-03-28 10:47:43 -07:00
Liangwei Dong
ea23c5f897 qcacld-3.0: Process MCC quota target event
Add and Register target if API to process MCC
quota wmi event. Deliver the event to existing
interfaces.

Change-Id: Ib044a336af2f5093dffbb053e65a52a174b85154
CRs-Fixed: 3101870
2022-03-24 13:18:12 -07:00
Chaoli Zhou
c2fe56b756 qcacld-3.0: Support send BTM-REQ on SAP mode from driver
Filter out the BSS Transition Management Request frame
and allow it to be sent out from driver to firmware.

Change-Id: I6672c55421b0aa5cf186c82bec977848fdaddc2b
CRs-Fixed: 3154042
2022-03-22 23:25:25 -07:00
Rachit Kankane
5a17d9e4e9 qcacld-3.0: Update GENERIC_DATA length and Kbuild
Update Kbuild with SON binaries based on SON config flag
and GENERIC_DATA policy with proper length

Change-Id: I60d06b3bdcc600095d7e9ad779e9b779f5477e33
CRs-Fixed: 3136142
2022-03-04 13:44:45 -08:00
sheenam monga
b7899f448d qcacld-3.0: Limit max ROC time for NAN and NDI
Currently, for DBS HW fw goes off channel for
400 ms in case of NDP and 450 ms in case of NAN
due to which beacon is not sent in DW window.

Fix is to Limit max ROC duration to 350 ms in case
of NAN and NDI for DBS hardware to improve NDP
setup time.

Change-Id: Iaf5c90a386d2742cdc8f24305756a3691ac70431
CRs-Fixed: 3141393
2022-03-02 11:05:54 -08:00
Liangwei Dong
a185d29d1b qcacld-3.0: Add INI to configure MGMT frame HW retry count
Add INI - mgmt_frame_hw_tx_retry_count to configure MGMT
frame HW tx retry count for certain frame types.
The INI String format:
frame_hw_tx_retry_count="<frame type>,<retry count>,..."

The supported frame types are defined by enum mlme_cfg_frame_type.
Retry count max value is 127.
For example:
mgmt_frame_hw_tx_retry_count="0,64,2,32"
The above input string means:
For p2p go negotiation request fame, hw retry count 64
For p2p provision discovery request, hw retry count 32

Change-Id: I32f6c7d83ede9b28484c7a0b29824bde32e06422
CRs-Fixed: 3082532
2021-12-08 12:41:18 -08:00
Liangwei Dong
e2527e2aa4 qcacld-3.0: Use API p2p_status_update to update p2p conn status
Refine p2p connection status update, use API p2p_status_update
to update p2p connection status.

Change-Id: Ica1b1cfc56c09e10664cd9130d5bfacc83e2763a
CRs-Fixed: 3076205
2021-11-18 18:20:54 -08:00
sheenam monga
14a98fd26d qcacld-3.0: Handle user initiate CSA in p2p go+go concurrency
If p2p go+go concurrency exist and g_enable_go_force_scc ini sets
to 2(liberal mode) then 1st p2p go channel should move to 2nd
p2p go channel after set key. Again, when user initiates CSA to
one p2p go then the force SCC doesn't happen to other p2p go.
But the expectation is all p2p go should move to same channel
which is initiated by user.

As part of fix, move all p2p go to same channel when user
initiates.

Change-Id: I1664e5a7d545d29c32b94e8e4831c71a9cc0ae23
CRs-Fixed: 3064245
2021-11-18 17:05:02 -08:00
Wu Gao
a0b8df549b qcacld-3.0: Reduce log level when get unexpected action frame
There is frequent output when get unexpected vendor specific action
frame. So, add this change and reduce the log level.

Change-Id: I9d832546a4436bdf7dd25cb00a7de5cce1295b31
CRs-Fixed: 3060750
2021-10-22 20:49:17 -07:00
Srinivas Dasari
3d0e41cad1 qcacld-3.0: Abort any ongoing p2p scans while enabling NAN
Framework disables p2p before enabling NAN as P2P+NAN concurrency
is not supported. NAN operations happens through wifihal and p2p
operations happen through wpa_supplicant which are two different
userspace components. Wifihal call to enable NAN may come to host
driver before disabling p2p through wpa_supplicant. There are high
chances for p2p scan to be in running state while NAN enable is
received. Firmware NAN state machine goes to inconsistent state
and disables NAN as p2p scan is running in such cases.
So, stop the ongoing p2p scan before enabling NAN as P2P+NAN
concurrency is not supported currently.
Also, forward the pdev to NAN component inorder to iterate through
all P2P vdevs.

Change-Id: Ibe30a5ebe90514aee4f6721cdc5476570524cad8
CRs-Fixed: 3054576
2021-10-19 16:25:15 -07:00
Deeksha Gupta
1bdf606dab qcacld-3.0: Limit ROC for listen if NAN or NDI present
In P2P, if NDP is present, limit max ROC duration to
400ms on DBS and 250ms on non-DBS case.
If NAN is present, limit max ROC duration to 450ms on DBS
and 300ms on non-DBS case.

Change-Id: I2e943d2f55984464812bba16ca78dfab8681cf30
CRs-Fixed: 3046904
2021-10-07 07:05:30 -07:00
Will Huang
a54bb30ccb qcacld-3.0: Rename variables name chan to chan_freq of wlan_hdd_mgmt_tx
We have fixed using channel number as internal parameter instead of
chan frequency with change I60fe37d7d716eeaceaa00f3fb59c77b629ebacac,
but variables name are still chan which might cause confused to reader.

Rename all places where "chan" to "chan_freq", which actually channel
frequency used. And alter miss APIs which still expect channel number.

Change-Id: I948cbad133a17093f49384b563966d2c53b51707
CRs-Fixed: 3033951
2021-09-15 08:40:19 -07:00
Will Huang
7b2c4923c7 qcacld-3.0: Fix mgmt tx from supplicant failed on 6Ghz chan
Currently wlan_hdd_mgmt_tx path is still using legacy API to convert
channel frequency to number, it is not applicable for 6Ghz channel if
convert it back from number to frequency.

Fix it by replace all places where using legacy API to convert channel
and use channel frequency from supplicant directly. It can fix mgmt tx
from supplicant on 6Ghz channel.

Change-Id: I60fe37d7d716eeaceaa00f3fb59c77b629ebacac
CRs-Fixed: 3024898
2021-09-09 06:30:38 -07:00
sheenam monga
446effff96 qcacld-3.0: Limit ROC for listen to max 600 if GO present
Add fixed 300ms extra ROC time instead of multiplying the
ROC duration by 6 as this causes the ROC to be upto 1.5 secs
if GO is present. Firmware will advertize NOA of 1.5 secs
and if supplicant cancels ROC after 200 or 300ms then
firmware cannot cancel NOA. So when supplicant sends next
ROC it will be delayed as firmware already is running previous
NOA which may cause p2p find issues if GO is present.

Fix this by capping the max ROC time to 600ms when GO is present.

Change-Id: I0774b06ff4db1fae7efc387388fdf3059505150e
CRs-Fixed: 3025870
2021-09-07 10:42:41 -07:00
Deeksha Gupta
9457734236 qcacld-3.0: Reset rand mac addr filter after tx frame cancel
Currently, If supplicant sends tx_mgmt request with random
mac_addr then driver adds the random mac_addr and sets this
random mac_addr to firmware via
WMI_VDEV_ADD_MAC_ADDR_TO_RX_FILTER_CMDID command. Driver waits
for tx_ack or tx cancel wait to complete and then remove the
cookies and start timer to delete the random mac_addr.
In case after receiving tx_ack, driver removes the cookie and
starts timer and before timeout supplicant sends the
tx_cancel_wait request. But driver can't update the timer
duration as the cookie was already deleted as part action frame
tx completion.

Fix is driver will remove the cookie with below condition:
1. If driver receives the tx_ack and the wait duration = 0 then
no need to start the timer, remove the cookie and also remove the
random mac_addr from firmware
2. If driver receives the tx_ack and the wait duration != 0 then
start the timer
3. If driver receives tx_cancel_wait then stop the timer and
remove the randon mac_addr from firmware
4. If timeout happens then remove all the cookies for the random
mac_addr and also remove the random mac_addr from firmware

Change-Id: I3e227213239e865582e5d8674260d049c437aa9b
CRs-Fixed: 3002851
2021-08-12 23:52:29 -07:00
Mohammed Ahmed
9f6f22ca98 qcacld-3.0: Fix incorrect layering in scan component
Replace ucfg api call with wlan api calls for internal components.

CRs-Fixed: 2980401

Change-Id: I286a4cc78b637ae1c32ac8e7c30ef182f06e0a44
2021-08-09 20:03:36 -07:00
Jyoti Kumari
08eb756a51 qcacld-3.0: Don't use wlan_chan_to_freq
As part of regulatory cleanup, wlan_chan_to_freq() is removed.

Use wlan_reg_legacy_chan_to_freq()/wlan_reg_chan_band_to_freq()
instead of wlan_chan_to_freq().

Change-Id: I9d105863f8d6384c97e8219b89a230c863e29d19
CRs-Fixed: 2933440
2021-06-08 01:08:27 -07:00
Abhishek Ambure
f0cc4d0d06 qcacld-3.0: Update protected bit for mgmt action frames
Host checks RMF enable and robust action frame category, if both are
true then sets protected bit in mac header of management action frame.

Change-Id: I2d57c52b66ff7abd44dd02b73ad18f13fbdef009
CRs-Fixed: 2917058
2021-04-18 10:43:01 -07:00
Deeksha Gupta
2a315a42ef qcacld-3.0: Update the P2P restart roc timer duration
In off channel P2P GO neg resp tx frame, supplicant sends
roc duration (suppose 100ms) to sends the frame and as
this is not sufficient to receive the GO confimation frame,
driver internally adds 500ms more duration. So, new roc
duration is 600ms (100+500). But currently, restart
of the roc timer happens with old roc duration instead
of newly calculated roc.

Send the extended roc timer duration in restart roc timer
to fix this.

Change-Id: I1238d69d1d8b03578d74ef6ad0895f11cfac0178
CRs-Fixed: 2890951
2021-03-11 00:54:41 -08:00
Bapiraju Alla
2bd65bf01f qcacld-3.0: Add support to generate random sequence numbers
As per specification sequence numbers of action frames also needs
to be randomized when the source MAC address is randomized. Currently
this feature is not implemented in the driver as a result corresponding
test case is failing.

To address this, add support to sequence number randomization in the
driver. Also add a INI param to control this feature.

Change-Id: Icd7b6fd55b324a8d6b1226d89f19be0ad9385e0a
CRs-Fixed: 2829032
2021-01-21 23:23:39 -08:00
gaurank kathpalia
f8a769a7b6 qcacld-3.0: Add cnx mgr logic for connect and disconnect ext ind
Add connection manager logic to handle p2p/tdls/policy mgr logics
on connect/disconnect start and complete ext indication. And
add the call to csr to update the legacy structs.

Change-Id: I218a1d193dd62ad041e84078bd2509b82ec11363
CRs-Fixed: 2846663
2020-12-30 11:24:34 -08:00
hqu
f88549090b qcacld-3.0: Fix implicit-fallthrough compile error casued by gcc 9.3
Compiling with gcc 9.3 will cause many implicit-fallthrough
compile errors.

Fix is to add keyword fallthrough to resolve such compile error.

Change-Id: I3fdc48b1a9ab2345a47ae644e3217b4d29238364
CRs-Fixed: 2785172
2020-10-01 12:28:39 -07:00
Srinivas Girigowda
d36054fbd2 qcacld-3.0: components: Remove logs for qdf_mem_malloc() checks
qdf_mem_malloc() function already takes care of logging the
caller function name and line number in case of any allocation error.
Hence there is no need to add the error log again.

Getting rid of these unnecessary logs reduces driver memory footprint.

Change-Id: If0b9425f82f9ed793c7639c0ed09eb1f868b6d5c
CRs-Fixed: 2781932
2020-09-25 12:59:42 -07:00
Srinivas Girigowda
f375188704 qcacld-3.0: components: Change %pM/QDF_MAC_ADDR_STR/ARRAY to QDF_MAC_ADDR_FMT/REF
Change %pM/QDF_MAC_ADDR_STR/ARRAY to QDF_MAC_ADDR_FMT/REF.

CRs-Fixed: 2752355
Change-Id: I2d776be789df3e83e0c13211844b66d595498829
2020-08-22 16:00:40 -07:00
Gururaj Pandurangi
1f00e9ccd1 qcacld-3.0: Change Internal/External to External
Change the usage of cfg parameters from Internal/External
to External in .h description for mlme, p2p, and
policy manager files.
External means that both internal teams and external
customers can modify the parameters.

Change-Id: Ic1e68d5a90be2c898ce66aa18e8d91f16561b408
CRs-Fixed: 2712773
2020-07-29 00:23:16 -07:00
Wu Gao
a68714fc61 qcacld-3.0: Drop action frames for SAP mode
For SAP mode, FW doesn't support tx action on different band, and
shouldn't send on DFS channel. So drop action frames for SAP mode.

Change-Id: I2015957346824787d0d902b2d21746d10e2cc9c0
CRs-Fixed: 2718417
2020-06-25 21:27:07 -07:00
Abhishek Singh
2281c2d6bb qcacld-3.0: remove dependency of public files from wlan_objmgr_psoc_obj.h
Remove dependency of wlan_lmac_if_def headerfiles from
wlan_objmgr_psoc_obj.h

Change-Id: I5f6120a97be3ae6835023ceaef455088820809de
CRs-Fixed: 2657771
2020-05-15 10:41:20 -07:00
Abhishek Ambure
48b790c62d qcacld-3.0: Add INI support to disable STA roaming
Use INI "sta_disable_roam" to disable roaming on STA interface if
connection on other interfaces ex. p2p, ndp comes up. Each bit of
the INI "sta_disable_roam" represents an interface.
ex. LFR3_STA_ROAM_DISABLE_BY_P2P BIT(0)
    LFR3_STA_ROAM_DISABLE_BY_NAN BIT(1)

As INI "sta_disable_roam" is generic for all the interfaces, cleanup
for INI "p2p_disable_roam" done.

Change-Id: Icd05a97c640ca07978d9960a33de036ed6fe38df
CRs-Fixed: 2637555
2020-03-13 19:22:14 -07:00
Pankaj Singh
8cf6c634b6 qcacld-3.0: Disable all roam scan in case p2p connection is present
Glitches seen after the STA disconnection because of the roam scan
triggered on a heartbeat failure ( beacon miss ).STA does a partial
scan followed by full scan causing the DUT to go off-channel from
the STA and P2P home channel, causing the music BLIP.

Fix is to disable roaming irrespective of data traffic present
or not on P2P interface and enabled again once P2P is disconnected.

Change-Id: I5ddf946adbfbe99d5b20c23c46b2b4ac0bfac47f
CRs-Fixed: 2632939
2020-03-04 15:31:46 -08:00
Pankaj Singh
ab580fb1fb qcacld-3.0: Remove wait for event from p2p_cleanup_param
Currently the driver waits for cancel roc request in the
API p2p_cleanup_param which gets executed in the scheduler context.
Scan cancel requests also executes in the scheduler context, so
the wait would fail as the scheduler thread is waiting for
the message to get processed which it would only process, which
would in turn cause a latency in P2P connection.

Fix is to remove the wait which is mentioned above.

Change-Id: I12a1a7e4896ecf3a9c6e8f138e18637690cbd049
CRs-Fixed: 2622051
2020-02-27 06:28:59 -08:00
Abhishek Singh
6d5bac846a qcacld-3.0: Optimize logs in STA disconnect path
Optimize logs in STA disconnect path

Change-Id: I3534f3ab89ebbdd919c02120328013e42d2894f4
CRs-Fixed: 2623124
2020-02-18 01:53:50 -08:00
Abhishek Singh
3c56fdd796 qcacld-3.0: Optimize logs in TX assoc req and RX assoc rsp
Optimize logs while sending assoc req and assoc rsp handling
frame by dumping the assoc req frame and not printing each
params separately. Also avoid multiple dump of same frame.

Change-Id: Ibcf2d9aa8de292b9b9f4b4c6a53a0f694d69475c
CRs-Fixed: 2619553
2020-02-13 22:08:33 -08:00
Pankaj Singh
a740a9a310 qcacld-3.0: Reduce excessive logging in P2P module
Currently there are lot of duplicate logging. Identify and
reduce those logs that are not absolutely necessary.

Change-Id: Ia2df5a46610b885be5e27455aef7f7281c7c3c55
CRs-Fixed: 2617719
2020-02-13 08:11:31 -08:00
Pankaj Singh
134bb1fe06 qcacld-3.0: Reduce excessive logging in P2P module
Currently there are lot of duplicate logging. Identify and
reduce those logs that are not absolutely necessary.

Change-Id: I649ce3bec8c3c8542fe9edd08907da9ab01fa948
CRs-Fixed: 2617504
2020-02-07 14:13:03 -08:00