Commit Graph

152 Commits

Author SHA1 Message Date
Srinivas Dasari
f1e2971dd9 qcacld-3.0: Don't repost ROAM event to scheduler thread
Currently, the ROAM event is posted to scheduler thread when it's
received from firmware. This is done to avoid processing the
complete event in IRQ context as the same callback gets called
from IRQ context for WOW events(WOW_REASON_LOW_RSSI and
WOW_REASON_HO_FAIL). Posting the ROAM event to scheduler
thread may introduce some additional delay in processing it back
as there would be a context switch.
If this ROAM event carries ROAM_START which is followed by a
ROAM_SYNC event, there is chance to process the ROAM_SYNC
before ROAM_START as ROAM_SYNC would be processed in the same
context whereas ROAM_START needs a context switch. This results
into an invalid connection manager state after processing
ROAM_START event, which results a connection failure.
Same is applicable for ROAM_PMKID_REQ_EVENT and
ROAM_VDEV_DISCONNECT_EVENT. Avoid reposting the same to scheduler
thread.

Change-Id: Ic4fc1b3baf12e4ceee9a0975ebfee77fb88ab6f0
CRs-Fixed: 3033657
2021-09-19 04:50:33 -07:00
Wu Gao
943e48a155 qcacld-3.0: Correct tx power value
It's 0.5 db unit from halphy, so correct the tx power in host side.

Change-Id: I119f86814310d402a8bf4c200c92a680488e5731
CRs-Fixed: 3030628
2021-09-18 19:26:55 -07:00
abhinav kumar
3173789d99 qcacld-3.0: Add new BT Coex roam trigger reason
Send additional roam trigger TLV for BTC in
WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID
command, to support a new roaming trigger
"WMI_ROAM_TRIGGER_REASON_BTC".

Change-Id: Ib767bd6bcf005c187b0fb58986ad287fe8753c1b
CRs-Fixed: 3009788
2021-09-10 20:09:34 -07:00
Srinivas Dasari
9a4a9a493e qcacld-3.0: Send psoc also in roam events to target_if
target_if expects psoc as part of roam events which is used for
event extraction. Send the same as it's missing currently.

Change-Id: I04729df90d8e64e07427fe47926a8a92a24aaf23
CRs-Fixed: 3027055
2021-09-03 05:50:36 -07:00
Srinivas Dasari
3aeaeefe07 qcacld-3.0: wma to target_if migration of roam pmkid request evt
Currently, wmi_roam_pmkid_request_event_id data is extracted and
processing is also done in wma. This is not inline with component
model where target_if takes care of data extraction and handover
the extracted data to corresponding component(connection mgr in
this case). Add changes to support the same.

Change-Id: I3fad4e4d7ceeb85c632723e161809bf980d5375f
CRs-Fixed: 3014248
2021-08-28 00:29:22 -07:00
Vijay Patil
23999e417d qcacld-3.0: wma to target_if migration of roam_auth_offload_event
Currently, wmi_roam_auth_offload_event_id data is extracted and
processing is also done in wma. This is not inline with component
model where target_if takes care of data extraction and handover
the extracted data to corresponding component(connection mgr in
this case). Add changes to support the same.

Change-Id: I128db23077d423c5e5ecf27636bc3af35cbbc58f
CRs-Fixed: 3010419
2021-08-28 00:29:16 -07:00
Utkarsh Bhatnagar
ac66479f44 qcacld-3.0: Add support to get thermal throttle stats
Add support for sending WMI_REQUEST_THERMAL_STATS_CMDID
to request for the thermal stats via vendor cmd:
QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_THERMAL_STATS
This vendor cmd can either be used to clear the thermal
stats or to request for the thermal stats.
Added ini gThermalStatsTempOffset, which can
configure thermal temperature offset value for capturing
thermal stats in  thermal range such as Thermal STATS
starts capturing from temperature threshold to temperature
threshold + offset.
If this ini is set to 0, then the events are disabled.
Also, add support for the FW event where the requested
thermal stats are sent in FW event
WMI_THERM_THROT_STATS_EVENTID().
The following attributes are sent in the events for every
level:
	STATS_MIN_TEMPERATURE
	STATS_MAX_TEMPERATURE
	STATS_DWELL_TIME
	STATS_TEMP_LEVEL_COUNTER

Change-Id: If8acdeec5bde33be346332ccaf39d78d0151203d
CRs-Fixed: 3016818
2021-08-27 10:23:21 -07:00
Sai Pavan Akhil Remella
b35419136e qcacld-3.0: wma to target_if migration of roam_stats_event
Currently, wmi_roam_stats_event_id data is extracted and
processing is also done in wma. This is not inline with component
model where target_if takes care of data extraction and handover
the extracted data to corresponding component(connection mgr in
this case). Add changes to support the same.

Change-Id: I5e336b01e1a2183e49b3e6eeb125c7c9fd0fd73c
CRs-Fixed: 3003125
2021-08-24 13:12:34 -07:00
Aditya Kodukula
e5d87bf5d6 qcacld-3.0: Support Multicast Domain Name Server Offload
The purpose of the multicast Domain Name System (mDNS) is to resolve
host names to IP addresses within small networks that do not include
a local name server.

It utilizes essentially the same programming interfaces, packet formats
and operating semantics as the unicast DNS, and the advantage is zero
configuration service while no need for central or global server.
Based on mDNS, the DNS-SD (Service Discovery) allows clients to discover
a named list of services by type in a specified domain using standard
DNS queries.

Here, we provide the ability to advertise the available services by
responding to mDNS queries.

Change-Id: Id2a0468d49237c21062cfd1988e34903658cdad9
CRs-Fixed: 3008549
2021-08-20 22:02:01 -07:00
Srinivas Dasari
461669908f qcacld-3.0: Revert "Move cp stats to scheduler thread from kwork"
This reverts change Id8134003e6f7a3e0368b20c496f650e0b7025b9e

Moving cp stats to scheduler thread is breaking the
synchronization in stats collection. Currently, when a get stats
command is issued from framework, host driver sends the same to
firmware and wait for both llstats and get_station related stats.
The expectation is to receive get_stats first and then llstats.
Host driver has a wait for the last llstats event to return the
stats to userspace. As the cp stats(get_station stats) are moved
to scheduler thread, the order of these events can't be ensured
as llstats are still running in kworker thread. llstats event gets
processed before cp stats mostly and stats are returned
immediately to framework. Framework may issue the get stats
command again and the same is sent to firmware, which may result
in synchronization issue in firmware as well.
Moving llstats also to scheduler thread may not be optimal as these
are aggressive and can be queried by framework multiple times with
a milliseconds gap.
So, move back the cp stats to kworker thread to maintain
synchronization.

Change-Id: I8dc518f0de37e7cc203cb1f6e67045d74b304d93
CRs-Fixed: 3002534
2021-08-07 07:22:56 -07:00
Amruta Kulkarni
c71017d971 qcacld-3.0: Roam sync event migration
Wma to target_if migration for ROAM SYNC EVENT

Change-Id: Id2e9d5697f12f709cfdd665dabf1095863d87277
CRs-Fixed: 2990767
2021-08-07 02:58:54 -07:00
Srinivas Dasari
f39f703609 qcacld-3.0: wma to target_if migration of roam_scan_ch list_event
Currently, wmi_roam_scan_chan_list_id data is extracted and
processing is also done in wma. This is not inline with component
model where target_if takes care of data extraction and handover
the extracted data to corresponding component(connection mgr in
this case). Add changes to support the same.

Change-Id: I8f59f9ebfe1bbdc7ef37ccc1f10178fe8128e912
CRs-Fixed: 2990376
2021-07-30 21:50:44 -07:00
Srinivas Dasari
a655f5e64e qcacld-3.0: wma to target_if migration of vdev_disconnect_event
Currently, wmi_vdev_disconnect_event_id data is extracted and
processing is also done in wma. This is not inline with component
model where target_if takes care of data extraction and handover
the extracted data to corresponding component(connection mgr in
this case). Add changes to support the same.

Change-Id: I2486cc3f63c4b35305b60ac55cd0a622c7185323
CRs-Fixed: 2990373
2021-07-30 21:50:40 -07:00
Srinivas Dasari
cb5b2dde46 qcacld-3.0: wma to target_if migration of btm_blacklist_event
Currently, wmi_roam_blacklist_event_id data is extracted and
processing is also done in wma. This is not inline with component
model where target_if takes care of data extraction and handover
the extracted data to corresponding component(connection mgr in
this case). Add changes to support the same.

Change-Id: I41d2ef6c228acd8f86f24107c02d11f1a8ac6dea
CRs-Fixed: 2990369
2021-07-30 21:50:35 -07:00
Srinivas Dasari
78cb3008e6 qcacld-3.0: wma to target_if migration of wmi_roam_event
Currently, wmi_roam_event_id data is extracted and processing is
also done in wma. This is not inline with component model where
target_if takes care of data extraction and handover the extracted
data to corresponding component(connection mgr in this case).
Add changes to support the same. As the legacy CSR/LIM is not
yet converged, have a wrapper from connection mgr to wma to call
these legacy APIs.

Change-Id: I0e22bbccfe21200b90771a01f9ee7454f4ecb119
CRs-Fixed: 2990355
2021-07-30 14:29:36 -07:00
Amruta Kulkarni
0c30cb8f04 qcacld-3.0: Roam sync frame event Wma cleanup
Wma to target_if migration for ROAM SYNC FRAME EVENT

Change-Id: I2a56dadf7f45a13a577bdf49bc9514ab2e6dee29
CRs-Fixed: 2968404
2021-07-12 19:12:01 -07:00
Li Feng
4548644d92 qcacld-3.0: Set moddtim dynamically in the li offload mode
Extend hdd_config_modulated_dtim() to configure moddtim
dynamically in the both non li offload and li offload mode.

Change-Id: I8669ec618d4aa9cd87c4c234972ca500c98119b6
CRs-Fixed: 2970090
2021-07-01 04:24:12 -07:00
Abhishek Singh
046eb026ea qcacld-3.0: Code cleanup for connection manager in LIM/WMA
Remove unused code related to ndef FEATURE_CM_ENABLE in LIM/WMA.

Change-Id: I1697f0a6c9102e3b70ce6f7a1c78ea895d4d160b
CRs-Fixed: 2977902
2021-06-28 12:24:29 -07:00
Surabhi Vishnoi
9686432f2c qcacld-3.0: Add function to fill rssi received from target in vdev_priv
Add function to populate the rx average rssi received from target in
pkt_capture vdev_priv structure. The rx average rssi is received in
wmi smart monitor event.

Change-Id: I9206669b418a2245bb8d53920040fddea77ce06c
CRs-Fixed: 2969242
2021-06-25 14:15:01 -07:00
Surabhi Vishnoi
1954f6e25e qcacld-3.0: Register handler for wmi smart monitor event
Register handler for wmi smart monitor event in packet capture
mode in lithium. Currently, wmi smart monitor event provides
average rssi of last ten received data packets.

Change-Id: Ieeea5cbef328b04f139f54e7a42d52a3cf25824b
CRs-Fixed: 2969245
2021-06-25 09:40:17 -07:00
Huashan Qu
f75e881d71 qcacld-3.0: Return success when firmware doesn't support 11k offload
Return success when firmware doesn't support 11k offload, or else
subsequent roaming related wmi commands have no chance to issue.

Change-Id: I69d55cca63f2b7ab4787295a2825159395cf2a11
CRs-Fixed: 2976163
2021-06-24 11:41:18 -07:00
Vulupala Shashank Reddy
01b4e695dd qcacld-3.0: Pkt capture config for qos null and trigger frames
Provide ucfg api to configure qos null and trigger frames.

Ucfg api will send configuration to FW. Below configuration values
are allowed.

PACKET_CAPTURE_CONFIG_TRIGGER_QOS_DISABLE: disable capture for
trigger and qos frames.
PACKET_CAPTURE_CONFIG_TRIGGER_ENABLE: enable capture for trigger
frames only.
PACKET_CAPTURE_CONFIG_QOS_ENABLE: enable capture for qos frames only.
PACKET_CAPTURE_CONFIG_TRIGGER_QOS_ENABLE: enable capture for both
trigger and qos frames.

The packet capture config old value will be over written by new value.
For example, first if we configure value as
PACKET_CAPTURE_CONFIG_TRIGGER_ENABLE and then if we send config as
PACKET_CAPTURE_CONFIG_QOS_ENABLE then config is enabled only for qos.

Change-Id: I02dcd4372c7194ec3e477694ad0e2c045fe6c942
CRs-Fixed: 2967824
2021-06-22 23:04:21 -07:00
Srinivas Dasari
10e2a002a8 qcacld-3.0: Move NAN log events to RX_WORK context
Firmware sends NAN log events to driver and these are logged
with info level to capture complete NAN state machine logs in kmsg.
Currently, these events are received/processed in soft IRQ context
and causes performance issues as logs introduce delays. Move the
event registration to RX_WORK context to avoid delays.

Change-Id: I15ba20059f55f002cfe276d62e68e3cc09136a23
CRs-Fixed: 2960359
2021-06-09 19:43:09 -07:00
Srikanth Marepalli
e4323e039d qcacld-3.0: Enhance the EAPOL handshake offload INI per AKM
Existing INI disable_4way_hs_offload is defined as a boolean
that controls the EAPOL Handshake to be offloaded to Firmware or
Not. There is no way to specify the EAPOL offload per AKM.

Hence extended the support of EAPOL handshake offload to firmware
per AKM by converting this INI to a bitmap integer.
With ini value as 0 by default Firmware takes care of 4-way HS
during roam for all AKMs except for SAE and OWE. If
this ini value is 1 then Host takes care of EAPOL for all AKMs.

Having the backward compatibility, added a new value to ini.
If this ini value is set to 2 and also if the SAE EAPOL offload
service bit is set by Firmware then the behavior is same as ini
with 0 except that Firmware takes care of 4-way HS for SAE roam
as well. And for OWE it is still handled by supplicant.

To achieve this, new roam offload flag is introduced to indicate
Firmware about SAE roam EAPOL offload, So that in Roam sync
indication Firmware will inform the status as connected but not
authenticated so that supplicant can take care of 4-way EAPOL HS.

Change-Id: I8b65a1768fad91fac7e427712d3ccf4586176f5f
CRs-Fixed: 2955029
2021-06-07 22:54:32 -07:00
Srinivas Dasari
a51f024cd9 qcacld-3.0: Move cp stats to scheduler thread from kworker thread
Currently, cp stats are received through kworker thread context.
This causes race conditions/out of sync issues if any common data
structures are handled in parallel in scheduler thread context.
There is no need to receive the cp stats on kworker thread as per
current design. So, move the cp stats event handling to scheduler
thread to avoid any race conditions.

Change-Id: Id8134003e6f7a3e0368b20c496f650e0b7025b9e
CRs-Fixed: 2928876
2021-05-31 05:36:02 -07:00
Paul Zhang
84c234f62f qcacld-3.0: Support congestion report on multiple interfaces
Support congestion report on multiple interfaces

Change-Id: Iff650519c5b0e48ad63bb0a05d1c736ec40b385d
CRs-Fixed: 2832477
2021-04-14 05:34:12 -07:00
sheenam monga
6e6c139e05 qcacld-3.0: Add support to offload igmp feature to fw
offload igmp feature to fw in case of suspended state
to avoid high power consumption.

Change-Id: I05fbf23dc2836f8f5dc6e2f45b35bf2d30c39790
CRs-Fixed: 2907644
2021-04-05 15:22:23 -07:00
Amruta Kulkarni
15ac4a4e5a qcacld-3.0: Support roam sync indication in CM
Add change to support roam synch indication
in connection manager.

Change-Id: I06b23ae085a5a86caf4fe04fe5929b86d8d5c543
CRs-Fixed: 2901858
2021-03-24 09:47:46 -07:00
Jyoti Kumari
6308349a61 qcacld-3.0: Check NULL value of wmi_handle
In target_if_register_mgmt_data_offload_event(), check NULL value of
wmi_handle before it's used by wmi_service_enabled()

Change-Id: Iea51c59770258fd10468bb439f559094b563851f
CRs-Fixed: 2900533
2021-03-22 04:54:49 -07:00
Abdul Muqtadeer Ahmed
70ee3f70fd qcacld-3.0: Add new WMI wakeup reason
Add the new WMI wakeup reason “WOW_REASON_FATAL_EVENT_WAKE".

Change-Id: I93b530f78f568fa88cb310c5d78cd950451fc441
CRs-Fixed: 2868523
2021-03-17 18:33:16 -07:00
Abdul Muqtadeer Ahmed
e751855624 qcacld-3.0: Add a new feature to support forced dtim
Add vendor command interface/feature through which the user
or vendor can set the dtim count as per their requirement.

Change-Id: I26010948c4ed7e3c49bfe0453119235d4f438c6f
CRs-Fixed: 2894349
2021-03-11 11:58:42 -08:00
sheenam monga
72c7917fa9 qcacld-3.0: Add support for big data stats
Add support of big data stats in the cpstats
component.

Change-Id: I3642035d9f25237c80b529da78c51bb1ccf0035a
CRs-Fixed: 2868949
2021-03-11 09:48:12 -08:00
Amruta Kulkarni
999081053f qcacld-3.0: Add new files for CM roaming
New files added for handling FW based roaming
in connection manager.

Change-Id: Ibb5b74475699719cb901bf067f5d498ad16e0a60
CRs-Fixed: 2864490
2021-03-02 14:22:26 -08:00
gaurank kathpalia
758f6c8bc3 qcacld-3.0: Refactor the roaming code
Refactor the roaming code by moving to component.

Change-Id: I566967482ec3eb0d15d3ff357855b58b9579d3cf
CRs-Fixed: 2887126
2021-02-26 11:50:20 -08:00
Amruta Kulkarni
e4df806aa6 qcacld-3.0: Support roam invoke request in connection manager
Add change to support roam invoke request in connection manager

Change-Id: I87bd39263c7c210fa87250aca59ef5f2f89d4c67
CRs-Fixed: 2869211
2021-02-18 03:12:04 -08:00
Dundi Raviteja
3b0a146c82 qcacld-3.0: Reduce stack frame size while extracting pdev stats
Reduce stack frame size of target_if_cp_stats_extract_pdev_stats()
by allocating dynamic memory to wmi_host_pdev_stats.

Change-Id: I83a73f2973b54fbc28399c106ea52a0b6c1988f3
CRs-Fixed: 2868500
2021-02-06 12:46:55 -08:00
Dundi Raviteja
38f98292e3 qcacld-3.0: Reduce stack frame size while extracting vdev stats
Reduce stack frame size of
target_if_cp_stats_extract_vdev_summary_stats()
by allocating dynamic memory to wmi_host_vdev_stats.

Change-Id: I3922f2b61bcde5d5aa90e71f55a884075742147b
CRs-Fixed: 2868487
2021-02-06 10:42:46 -08:00
Dundi Raviteja
f814c5b5f5 qcacld-3.0: Reduce stack frame size while handling mc_cp_stats
Reduce stack frame size of target_if_mc_cp_stats_stats_event_handler()
by allocating dynamic memory to struct stats_event.

Change-Id: Ieaf99efece75080fe7ff6cf2cf70858ca5f8740f
CRs-Fixed: 2868456
2021-02-06 10:42:41 -08:00
Dundi Raviteja
eb2dc5ceca qcacld-3.0: Reduce stack frame size while clearing mc filter
Reduce stack frame size of target_if_pmo_clear_multiple_mc_filter_req()
by allocating dynamic memory to struct pmo_mcast_filter_params.

Change-Id: I0078ef0c84b33de209551dccd91aff70699eca80
CRs-Fixed: 2864938
2021-02-01 09:59:20 -08:00
Dundi Raviteja
537baf822a qcacld-3.0: Reduce stack frame size while setting multiple mc filter
Reduce stack frame size of target_if_pmo_set_multiple_mc_filter_req()
by allocating dynamic memory to struct pmo_mcast_filter_params.

Change-Id: Ib1ffb61aae30eda42340856a04cbbbf5a8162935
CRs-Fixed: 2864893
2021-02-01 09:59:12 -08:00
gaurank kathpalia
4abae1f448 qcacld-3.0: Move code from CSR to new RSO structs
Move code from CSR to roam scan offload to use new converged
structures.

Change-Id: Iaef2e4b08853f559a2da2c26b774ea29ecde04aa
CRs-Fixed: 2857072
2021-01-18 21:45:16 -08:00
Rajasekaran Kalidoss
05b4328025 qcacld-3.0: Register cp stats legacy ops
Support has been added in common code to register both
common tx ops and MC/WIN specific tx ops. Add support to
register and tx ops for MC specific stats.

Change-Id: I4e5263e4685a707008ec3c5e96f50c707b071fe9
CRs-Fixed: 2851256
2021-01-13 10:17:12 -08:00
Saket Jha
6599516554 qcacld-3.0: Request fw stats for monitor mode
Periodically request pdev stats from FW to receive channel noise floor
information after monitor vdev has been brought up, based on the band
currently being sniffed. Use the band information as a secondary parameter
when sending periodic request to fw so a single noise floor value is sent
to host. Pass this noise floor information to dp_pdev to be populated in
radiotap header.

Change-Id: I488e4985392cb646ffdee914359fa995dbeb025e
CRs-Fixed: 2833458
2020-12-17 19:38:27 -08:00
Bapiraju Alla
19f4eb9bb6 qcacld-3.0: Request stats over qmi only when target suspend is success
Currently, Stats request commands are sent over qmi right from the
target suspend request is sent to FW. This is leading to a crash in
FW since it is trying to access PCI when it is in suspend state.

To address this, send stats request over QMI only after the ack is
received for the target suspend command.

Change-Id: I1b2b6a60c5d8c7ec4375d328e58a66d749794e3f
CRs-Fixed: 2835903
2020-12-17 13:39:50 -08:00
Liangwei Dong
349b0b002c qcacld-3.0: Use serialize context for thermal event
Use WMI_RX_SERIALIZER_CTX context for thermal event handler.
The default context is tasklet, it may cause issue when interact
with OS interface.

Change-Id: I349412c2afee9a081f0d38704541f77b5e4569f4
CRs-Fixed: 2824461
2020-11-24 10:55:20 -08:00
Amruta Kulkarni
65fe69ff37 qcacld-3.0: Add support for STA + monitor mode
In mission mode, add support for virtual add/del monitor
mode interface. In addition to STA vdev, create and maintain
a new vdev for monitor interface.

Change-Id: I91ea8e56976cce92f9b1ae308d4bd0fb30815366
CRs-Fixed: 2818499
2020-11-19 22:45:53 -08:00
Yu Wang
6088e94490 qcacld-3.0: move component 'coex' to qcacld project
'coex' component is MCC specific, move to qcacld project.

CRs-Fixed: 2721758
Change-Id: Ic1769ddf7eab6a6acc96349c020a6f311cda6bff
2020-11-18 14:19:13 -08:00
Abdul Muqtadeer Ahmed
1eb57fce21 qcacld-3.0: Add new WMI wakeup reason
Add the new WMI wakeup reason “WOW_REASON_LOCAL_DATA_UC_DROP".

Change-Id: Ibae5d98de8e63b03930837de8ce3062fef319718
CRs-Fixed: 2798184
2020-11-09 03:03:09 -08:00
hqu
ad188263dd qcacld-3.0: Remove old rso path code [PART 5]
Since new rso ROAM_OFFLOAD_V1 path is enabled, remove
the old rso path code for cm/wmi roam related files.

Change-Id: Iec350f032c3e037204f560199d4a6e258ac02688
CRs-Fixed: 2810145
2020-11-03 00:55:29 -08:00
Jianmin Zhu
0837cb4583 qcacld-3.0: Fix roaming between different PMF option APs failure
Roaming between different PMF option APs has following issues:

1. Roaming between Optional -> Disabled -> Optional
When STA roam to optional, PMF is set to False from STA in reassoc
request and all management pkt not secured.

2. Roaming between Required -> Disabled -> Required
STA not able to find candidate AP when tried to roam to AP with PMF
Required.

Root cause: When LFR3 roam happens,  vdev_crypto_params will be reset
including rsn_caps 11w PMF, if new AP hasn't enabled PMF, vdev rsn_caps
11w PMF is disabled too, and  passed to F/W. Then F/W think DUT STA
doesn'tsupport PMF, then failed to roam to AP with PMF Required and
enabled.

Fix:
Get self-capability of 11w PMF from connected profile and pass to F/W in
WMI_ROAM_SCAN_MODE by wmi_fill_rso_tlvs after roaming.

Move target_if_cm_roam_fill_11w_params to csr_cm_roam_fill_11w_params,
put protocol part to csr connection manager.

Change-Id: I543799385ec8c0ec7afdf64e2310c24758305095
CRs-Fixed: 2807454
2020-11-03 00:55:25 -08:00