Commit Graph

1494 Commits

Author SHA1 Message Date
Bala Venkatesh
46e2903f11 qcacld-3.0: Refactor SAP CFG items
Refactor SAP CFG items gMaxLIModulatedDTIM,
gCountryCodePriority, gSapPreferredChanLocation.

Change-Id: I52a1b3f782c440b12a2f2dcf82d9dad6cf6e76e0
CRs-Fixed: 2351237
2018-11-17 08:00:20 -08:00
gaurank kathpalia
651abcd134 qcacld-3.0: Legacy vdev type nss inis cleanup
With the introduction of new 32 bit ini for per vdev
nss and chains, the legacy inis are no longer required.

Cleanup the legacy inis of per vdev nss for both the
bands.

Change-Id: Ia4c8301062457a15a9bda49dca4a4a36a4372f88
CRs-Fixed: 2349204
2018-11-16 05:09:50 -08:00
gaurank kathpalia
24ed0f4056 qcacld-3.0: Infra for mlme_priv_obj with VDEV_SM enable/disable
Define two different mlme priv obj structures
based upon the flag CONFIG_VDEV_SM, for the
support of dynamic nss, chains update.

Change-Id: I00f39eb82973da86233ddfc8bdcc94b6ca8a439a
CRs-Fixed: 2349200
2018-11-16 05:09:40 -08:00
gaurank kathpalia
b414bce3b7 qcacld-3.0: Add prefix NSS_CHAINS to band info
Add prefix NSS_CHAINS to band info to remove duplicate band
info in driver, and minor code cleanup.

Change-Id: I3a8446af6b6c272cfcb19583540e2384f64e3a1a
CRs-Fixed: 2347624
2018-11-16 05:09:35 -08:00
gaurank kathpalia
db87c0d648 qcacld-3.0: Update dynamic config with user config
After the command to update the user params is sent to FW
update the dynamic config with user config.

Change-Id: I31ac19a86f68d9c2f8f4ce71f88eb12eb2d9b2f0
CRs-Fixed: 2347497
2018-11-16 05:09:07 -08:00
gaurank kathpalia
748c7274d3 qcacld-3.0: Send vdev nss params to fw
Infra to send vdev nss chain user params to the fw.

Change-Id: I907ffe0906712b328e276527412530225c23b68e
CRs-Fixed: 2347499
2018-11-16 05:08:58 -08:00
gaurank kathpalia
2b32de0c58 qcacld-3.0: Validate nss configuration from user
Validate the nss set by the user and then
send the user config to the firmware

Change-Id: Ia1292e428e0c5b30ff0b96f2387ea29ceec9c97c
CRs-Fixed: 2347502
2018-11-16 05:08:50 -08:00
gaurank kathpalia
78af193878 qcacld-3.0: Populate the ini and dynamic params
Populate the ini and dynamic params from the mlme
component and store them to the respective
vdev component in mlme priv obj during vdev create.

Change-Id: Ic80526e51ba97c24b5340843fc97406a6ba4c7ef
CRs-Fixed: 2347504
2018-11-16 05:08:46 -08:00
Jeff Johnson
b460dd7685 qcacld-3.0: Replace hHal in sme_api
Recently all instances of tHalHandle were replaced with mac_handle_t
to align with current usage and the Linux coding standard. To align
with the new naming now replace all instances of hHal with mac_handle
in sme_api.

Change-Id: Idd66679290567e9ed27b5c7e1a5401f36229d9a7
CRs-Fixed: 2349571
2018-11-15 17:19:21 -08:00
Jeff Johnson
fe8aa4ffe8 qcacld-3.0: Replace hHal in sme_ft_api
Recently all instances of tHalHandle were replaced with mac_handle_t
to align with current usage and the Linux coding standard. To align
with the new naming now replace all instances of hHal with mac_handle
in sme_ft_api.

Change-Id: I5e41d0767b97bf698dbb14834f2080bd82577035
CRs-Fixed: 2349570
2018-11-15 17:19:18 -08:00
Jeff Johnson
d32f3622dc qcacld-3.0: Replace hHal in sme_qos
Recently all instances of tHalHandle were replaced with mac_handle_t
to align with current usage and the Linux coding standard. To align
with the new naming now replace all instances of hHal with mac_handle
in sme_qos.

Change-Id: I067ec7d921888cc8f743561810f9163bb4ea9008
CRs-Fixed: 2349569
2018-11-15 17:19:14 -08:00
Abhinav Kumar
9b4f4ba969 Revert "qcacld-3.0: Acquire wake lock timeout for rrm scan"
FW does not assert when wow is enabled in presence of active
scans. Only requirement is to abort the scans while suspending.
So holding wakelock till scan is complete may introduce power
side effects.

Aborting the scan while suspending is already taken care by
the CR-2343385.

Fix is to revert the
Change Id: I02ddc9b5e6ba5f1782d00e34f044ace34c54d0b0 and
cleanup the channel list from rrm context in case of failure
of rrm scan req.

Change-Id: I844210a6a11f1d882bf42340b80b386856d9b87b
CRs-Fixed: 2349857
2018-11-15 10:08:24 -08:00
Bala Venkatesh
4a72b06fc9 qcacld-3.0: Avoid redefination of tdls_add_oper enum
Enums tdls_add_oper and TdlsAddOper are same. Instead redefining
use the same enum across different files.

Change-Id: Ibb71b0f80e156e4bd3a345a56c7b4d99ce770ef7
CRs-Fixed: 2349616
2018-11-15 08:20:30 -08:00
Arif Hussain
ca0fbb7d93 qcacld-3.0: Fix memory leak issue in csr_roam_issue_ft_preauth_req()
Make sure to free BSS descriptor buffer in case of failure to
send message. In failure case only message body buffer is freed.

Change-Id: I1919ed25d98808fad47f455820b760d96d18f4b2
CRs-Fixed: 2332101
2018-11-15 08:20:19 -08:00
Abhishek Singh
cdd3d4c1d1 qcacld-3.0: Use objmgr API to get 1st vdev from pdev
If Vdev id is not present driver tries to get vdev with vdev id 0
from pdev. Vdev with vdev_id 0 might not be present on pdev so use
objmgr API wlan_objmgr_pdev_get_first_vdev to get the first vdev.

Change-Id: I2ae0d6056709339a8167582ec327269aa84c93f4
CRs-Fixed: 2349702
2018-11-14 20:30:06 -08:00
Jeff Johnson
1f2dabcfb1 qcacld-3.0: Replace tHalHandle in sme_api
I9d0d7d109621237f29d66f7b06c5b63c38f63fb2 (qcacld-3.0: Introduce
mac_handle_t) introduced a "better" name for tHalHandle, so replace
tHalHandle with mac_handle_t in sme_api.

Change-Id: I46690f8913a8ca34f7494e7baf38188c11073f7b
CRs-Fixed: 2348552
2018-11-13 14:24:52 -08:00
Jeff Johnson
8d8172119c qcacld-3.0: Replace tHalHandle in sme_rrm
I9d0d7d109621237f29d66f7b06c5b63c38f63fb2 (qcacld-3.0: Introduce
mac_handle_t) introduced a "better" name for tHalHandle, so replace
tHalHandle with mac_handle_t in sme_rrm.

Change-Id: I289a11a5e0e4a788f512bcb2a6095e2070be73f9
CRs-Fixed: 2348551
2018-11-13 14:24:52 -08:00
Jeff Johnson
adbe0c50eb qcacld-3.0: Replace tHalHandle in sme_qos
I9d0d7d109621237f29d66f7b06c5b63c38f63fb2 (qcacld-3.0: Introduce
mac_handle_t) introduced a "better" name for tHalHandle, so replace
tHalHandle with mac_handle_t in sme_qos.

Change-Id: I47f4e41e7d8cceafd2232392f00fc0dad64fa842
CRs-Fixed: 2348550
2018-11-13 14:24:51 -08:00
Jeff Johnson
b98ee39c0a qcacld-3.0: Replace tHalHandle in sme_ft_api
I9d0d7d109621237f29d66f7b06c5b63c38f63fb2 (qcacld-3.0: Introduce
mac_handle_t) introduced a "better" name for tHalHandle, so replace
tHalHandle with mac_handle_t in sme_ft_api.

Change-Id: I0d185e15611597d396c00f7e6f2c3d27472426c9
CRs-Fixed: 2348549
2018-11-13 14:24:51 -08:00
Jeff Johnson
0aaecf6b60 qcacld-3.0: Replace tHalHandle in sme_power_save
I9d0d7d109621237f29d66f7b06c5b63c38f63fb2 (qcacld-3.0: Introduce
mac_handle_t) introduced a "better" name for tHalHandle, so replace
tHalHandle with mac_handle_t in sme_power_save.

Change-Id: I7030567c6f73abba10a3e0f29def78249fe91b5a
CRs-Fixed: 2348506
2018-11-13 14:24:51 -08:00
Nachiket Kukade
7dac923e1e qcacld-3.0: Return appropriate status code in sme_nan_request
After the NAN request message is posted to the SME queue in
sme_nan_request, the status of the scheduler API is ignored.
Success will be returned in the case of a failure during
posting the message. This may generate unexpected outcomes
during NAN testcases.

Return appropriate status code in sme_nan_request to the caller.

Change-Id: I31f518e7b90315c0f7c30ec2f5aeebec19d64813
CRs-Fixed: 2335734
2018-11-13 06:56:01 -08:00
Jeff Johnson
74df585cec qcacld-3.0: Use mac_handle_t in csr_packetdump_timer_stop()
Change "qcacld-3.0: Introduce mac_handle_t" introduced a modern
name for what was previously called the tHalHandle. Transition
csr_packetdump_timer_stop() to use the new naming.

Change-Id: I420949b9d4a88c9aaec7ee768914583f17fefadb
CRs-Fixed: 2347656
2018-11-13 02:43:37 -08:00
Jeff Johnson
54596d1df6 qcacld-3.0: Remove unused csr_check_ps_*() functions
The following functions are unused, so remove them:
- csr_check_ps_ready()
- csr_check_ps_offload_ready()

Change-Id: I72ea0c687080f6dff7c4de6b13b9bf0e86484fd7
CRs-Fixed: 2347130
2018-11-12 16:28:20 -08:00
Jeff Johnson
bfd2463a00 qcacld-3.0: Fix csr_get_current_band() context param
Currently csr_get_current_band() takes a tHalHandle context param.
However csr is internal to the UMAC, and hence it should be using the
"real" context pointer type instead of the opaque handle, so update
the API to expect a struct mac_context pointer..

This is part of an ongoing campaign to remove or replace all instances
of tHalHandle.

Change-Id: I93a3950b9ee26284ddfdf167b900d2f6983625f7
CRs-Fixed: 2347655
2018-11-09 19:43:22 -08:00
Jeff Johnson
2febb64e8f qcacld-3.0: Fix csr_init_operating_classes() context param
Currently csr_init_operating_classes() takes a tHalHandle context
param.  However this is a static internal function, and hence it
should be using the "real" context pointer type instead of the opaque
reference, so update the API to expect a struct mac_context pointer.

This is part of an ongoing campaign to remove or replace all instances
of tHalHandle.

Change-Id: Ib299d109489709b78a8d138987acf2379a341797
CRs-Fixed: 2347652
2018-11-09 18:21:49 -08:00
Kiran Kumar Lokere
efdbd0b267 qcacld-3.0: Add support to configure HE SU PPDU Tx
Add support to configure HE single user PPDU transmission.

Change-Id: I6bb2ead049f64c2ff2d28039f1658d66c4878f5f
CRs-Fixed: 2345247
2018-11-09 15:24:53 -08:00
Kiran Kumar Lokere
9463415ae2 qcacld-3.0: Add support for HE OM control configuration
Add support for configuring the HE OM control field

Change-Id: I2b934411d16f006f53d068a51af54a14dbd01a46
CRs-Fixed: 2311409
2018-11-09 15:24:48 -08:00
Paul Zhang
624f88de81 qcacld-3.0: Avoid race when uplayer triggers reassoc
When supplicant tries to reassoc AP, it will set PSK
before issue connection. In driver, it invokes function
__wlan_hdd_cfg80211_keymgmt_set_key and then
__wlan_hdd_cfg80211_connect.

__wlan_hdd_cfg80211_keymgmt_set_key puts
eWNI_SME_ROAM_SCAN_OFFLOAD_REQ to PE queue, then puts
WMA_ROAM_SCAN_OFFLOAD_REQ to WMA queue.

__wlan_hdd_cfg80211_connect puts SIR_HAL_ROAM_INVOKE to
WMA queue directly.

If the command SIR_HAL_ROAM_INVOKE is issued to fw before
WMA_ROAM_SCAN_OFFLOAD_REQ, then roaming scan is canceled
because scan mode is set.

To avoid this race, send SIR_HAL_ROAM_INVOKE to PE queue,
and then to WMA queue as well.

Change-Id: I08624efc466085e49fa4201deb221276ec5c260f
Rs-Fixed: 2344710
2018-11-08 22:37:56 -08:00
Jeff Johnson
009c40f1b7 qcacld-3.0: Rename struct sAniSirGlobal to mac_context
The primary data structure used within the protocol stack is currently
named sAniSirGlobal. This naming is problematic for two reasons.
First, the "Ani" and "Sir" are archaic references that should be
replaced throughout the driver. Second, camelCase is frowned upon by
the Linux coding style. In order to address these issues, rename
sAniSirGlobal to mac_context.

Change-Id: Ibaaeb5296e42a24c66d4adf4f720d32a9ae41888
CRs-Fixed: 2345128
2018-11-06 22:39:51 -08:00
Rajasekaran Kalidoss
54a07c9528 qcacld-3.0: Remove policy_mgr session in disassoc hdlr
In LFR2 roaming disassociation with old AP happens
immediately after preauth success. But policy_mgr
decrement this entry in association completion handler.
This results in policy_mgr assuming an extra connection
while checking hw mode. policy_mgr session for the
disassociated AP should be removed in disassoc success
response handler.

CRs-Fixed: 2316508
Change-Id: I41db1f5a365d3a510e27d10adcec2a7d765616d5
2018-11-06 18:02:43 -08:00
Vignesh Viswanathan
ddc89e5f41 qcacld-3.0: Add additional HT Caps related INI Items to MLME CFG
Add the following HT Caps related INI/CFG items to MLME component.

gShortPreamble, CFG_HT_AMPDU_PARAMS, CFG_EXT_HT_CAP_INFO,
CFG_HT_INFO_FIELD, gEnableAMPDUPS and gMaxAmsduNum.

Change-Id: I019961016a2f0e39c7c62066c04788d3bd3d37e7
CRs-Fixed: 2318579
2018-11-06 00:22:11 -08:00
Abhishek Singh
4e2676e7a3 qcacld-3.0: Cleanup the unused serialization commands
Cleanup the serialization commands that are not used now.

Change-Id: I340c52fb3180bec94508c5d5d36f43ba6efab143
CRs-Fixed: 2344570
2018-11-05 16:15:15 -08:00
Jeff Johnson
5bb786041f qcacld-3.0: Remove csr_set_phy_mode()
Function csr_set_phy_mode() is not used. Since it is apparently
obsolete, remove it.

Change-Id: I742060a27e6501ee894348d2a915f50f550ef6da
CRs-Fixed: 2344316
2018-11-05 14:47:47 -08:00
Tushnim Bhattacharyya
4a0de7ac35 qcacld-3.0: Free roam_info in sme_rrm_send_scan_result
Free roam_info in sme_rrm_send_scan_result for all error cases to
avoid memory leak.

Change-Id: I9a30c0c5e349d926092a881c4e2720100836e9d1
CRs-Fixed: 2344465
2018-11-05 14:47:44 -08:00
Abhinav Kumar
03522c2330 qcacld-3.0: Acquire wake lock timeout for rrm scan
Currently driver acquires wakelock for scans received from hdd.
But for RRM scan initiated from AP for beacon reports, the
wakelock is not acquired and if host goes to suspend while scan
is in progress,FW asserts.

Fix is to avoid the system suspend by taking the wakelock
before rrm scan start.

Change-Id: I02ddc9b5e6ba5f1782d00e34f044ace34c54d0b0
CRs-Fixed: 2331741
2018-11-02 10:52:59 -07:00
Abhishek Singh
d93a0b2d5c qcacld-3.0: Fix active cmd timeout for set_dual_mac_config during SSR
In error cases of set hw mode, set dual config etc are not handled
in all scenarios and thus the active cmd is not removed in this case
resulting in active cmd timeout.

Fix this by handling and sending failure resp for all the error
scenarios.

Change-Id: I21151798f58bf9816458430d96c7fd1d5f0ee07f
CRs-Fixed: 2341816
2018-10-31 13:21:10 -07:00
Pragaspathi Thilagaraj
3cf0f65518 qcacld-3.0: Remove legacy cfg items
Remove legacy cfg items definitions and related macros for the
converged CFG items.

Change-Id: I12944f50d68dafe989417dda777f29a6233c97a4
CRs-Fixed: 2340856
2018-10-29 15:19:08 -07:00
Pragaspathi Thilagaraj
cc823ae0cf qcacld-3.0: Fix OOB read in sme_rrm_process_beacon_report_req_ind
When beacon report request action frame is received,
rrm_process_beacon_report_req() is called and num_channels value
is calculated from the action frame directly from user. This
value is assigned to pSmeBcnReportReq->channelList.numChannels
and this num channels value along with the channel list is
posted to sme for further processing. The sme function
sme_rrm_process_beacon_report_req_ind() processes this sme
message eWNI_SME_BEACON_REPORT_REQ_IND. In this function,
the channels in channel list are looped through the received
value pBeaconReq->channelList.numChannels and is copied to the
destination pSmeRrmContext->channelList array from the
pBeaconReq->channelList.channelNumber[] array.
The maximum possible number of channels in channel list
BeaconReq->channelList.channelNumber[] allocated statically
in the definition of tSirChannelList is
SIR_ESE_MAX_MEAS_IE_REQS (8).
So when the pBeaconReq->channelList.numChannels, possible OOB
read occurs.

Validate the value of pBeaconReq->channelList.numChannels
received from the action frame against the maximum supported
number of channels in channel list SIR_ESE_MAX_MEAS_IE_REQS (8).
Place this validation inside the function
sme_rrm_process_beacon_report_req_ind() instead of validating it
at rrm_process_beacon_report_req() so that it defends from other
caller sme_set_ese_beacon_request() which is from user space
command through IOCTL.

Change-Id: I2074b04081328ceab7eeb29c33631a635e9d93c3
CRs-Fixed: 2335974
2018-10-29 12:18:39 -07:00
chenguo
92af4bfb01 qcacld-3.0: Fix incorrect valid pointer checking
There is an incorret valid pointer checking after memory
allocation for monitor mode, which will cause net device up
failure. Fix this incorrect checking.

CRs-Fixed: 2338747
Change-Id: Ib1dd4d85ce7e7cace1167a082c103fb0300eb16a
2018-10-28 23:27:05 -07:00
Abhinav Kumar
e057b4188a qcacld-3.0: Remove legacy VHT INI & CFG Items
Remove the definition of following INI & CFG Items
for VHT caps which is common for HT and HE caps.

CFG_VHT_LDPC_CODING_CAP
CFG_VHT_SHORT_GI_80MHZ
CFG_VHT_SHORT_GI_160_AND_80_PLUS_80MHZ
CFG_VHT_TXSTBC
CFG_VHT_RXSTBC
CFG_VHT_RX_MCS_MAP
CFG_VHT_TX_MCS_MAP
CFG_VHT_BASIC_MCS_SET

Change-Id: I55390c3391a0be272c609030dae232d767111fcf
CRs-Fixed: 2333183
2018-10-27 05:28:24 -07:00
Abhishek Singh
13bf0ce6cd qcacld-3.0: Purge all serialization commands on csr stop
During csr stop, csr_roam_close_session try to purge all the pending
commands for the vdev. But as vdev is already logically deleted,
the cmds are not purged as the purge by vdev API fails to get the
vdev ref.

As in csr stop, driver clean up all the sme session so instead of
calling purge commands for vdev, call purge cmd for all the vdev.

Also the active command timeout for the delete vdev is 30 sec while
HDD waits for 15 sec. The active command timeout should be less
than the HDD timeout. Thus set active cmd timeout as 10 sec and
HDD timeout as 11 sec

Change-Id: I1d45de261c50f1835379a9cc1df4631f3e32f459
CRs-Fixed: 2339694
2018-10-27 00:11:32 -07:00
Jeff Johnson
ceb233442a qcacld-3.0: Remove csr_set_band()
Change "qcacld-3.0: Remove sme_set_freq_band()" (Change-Id
I41eeda85754a4d2cb1971dd53eb07a86e5ff4b87") removed the only caller
of csr_set_band(). Since it is now apparently obsolete, remove it.

Change-Id: Ifcfbeecb28964aef82d6b51942436ba18282f1d7
CRs-Fixed: 2339197
2018-10-26 10:39:06 -07:00
Jeff Johnson
6885e9c64a qcacld-3.0: Remove sme_set_freq_band()
Function sme_set_freq_band() is not used. Since it is apparently
obsolete, remove it.

Change-Id: I41eeda85754a4d2cb1971dd53eb07a86e5ff4b87
CRs-Fixed: 2339196
2018-10-26 10:39:03 -07:00
Sandeep Puligilla
8345f3d0ec qcacld-3.0: Allocate scan filter memory from dynamic memory pool
csr_scan_get_result API defined 'struct scan_filter' of size
800bytes on stack and larger size memory blocks on stack is not
preferred because the stack size is limited.

Modified the memory allocation to dyanmic for scan filter.

Change-Id: I40cb0d97e0451d50aca3e9485327a4ce709e6020
CRs-Fixed: 2332496
2018-10-25 23:37:12 -07:00
Liangwei Dong
3774e5db94 qcacld-3.0: Add reason for opportunistic API
Add reason code return to caller to identify
the hw mode update reason.

Change-Id: I9c754626018ad7cd3f7dc1d287b834629e93dc17
CRs-Fixed: 2338089
2018-10-24 14:40:02 -07:00
stonez
26388d085a qcacld-3.0: Configure non aggr TX packet retransmission
Wireless application needs to tune parameters per AC based.
Such as VI/VO queue use the different re-transmission attempts
while other queue keeps the default value. It helps to improve
the video/audio performance in noisy environment. this change
add the ability to config re-transmission attempts of non
aggregation QOS packets.

Change-Id: I95404302463275803e3feff3038f04c900b14705
CRs-Fixed: 2323555
2018-10-24 09:53:32 -07:00
Abhishek Singh
fc740bed63 qcacld-3.0: Fix e_sme_command_nss_update stuck issue
Update NSS command is remove once driver receive the tx completion
event for the beacon. If SAP is in CAC wait state driver will not
get the tx completion for the beacon and the update NSS will timeout
after 30 sec and the serialization cmds queues will get stuck.

To avoid this remove the update NSS command from active queue as
soon as beacon is sent to firmware

Change-Id: I6f5b6bce91bdfacd4621020f313be25f74696b9d
CRs-Fixed: 2332302
2018-10-24 04:49:34 -07:00
Liangwei Dong
1ba994826c qcacld-3.0: Get proper channel after scan for SSID
If there is no scan cache available, csr_roam_connect
will trigger a scan and after scan complete csr will
call csr_roam_issue_connect to connect one of candidate BSS.
And driver only checks the first candidate BSS's channel
for HW mode change after scan complete.
The issue is if connect first candidate failed, the next
or other candidate BSS may require DBS in concurrency
condition and the check
policy_mgr_is_hwmode_set_for_given_chnl will be failed.
To avoid such the hw mode check failed, we need to change hw
mode early if any of BSS requires DBS mode before try to
connect the BSS candidate in list one by one.

Add API csr_scan_get_channel_for_hw_mode_change which returns
DBS required candidate channel in BSS list if available,
otherwise returns the first candidate's channel.

Change-Id: I42862f100ee56ada41d6397346937219d0e688df
CRs-Fixed: 2335075
2018-10-22 21:45:04 -07:00
Jeff Johnson
297a398c27 qcacld-3.0: Refine the SME NAN public interface
Update the SME NAN public interface as follows:
1) Move the sme_nan_event() prototype to nan_api.h
2) Fully document the interfaces (not the implementations)
3) Utilize the new mac_handle_t abstraction
4) Clean up local coding style violations

Change-Id: I7ae6fff6e4a44570463383e9f6f50731fa594192
CRs-Fixed: 2335643
2018-10-22 18:23:44 -07:00
Jeff Johnson
7272ea7cc0 qcacld-3.0: Refine the extscan stop scan logic
Make the following updates to the extscan stop scan logic:
1) Exclusively use the Unified WMI data structures.
2) Update the HDD<=>SME interface to enforce the contract that SME
   must not make any assumptions about the buffers provided by HDD.

Change-Id: Ie4a693b4a91d728a075cffad3ee368b22d9c5b2a
CRs-Fixed: 2335647
2018-10-19 13:09:50 -07:00