Commit Graph

1844 Commits

Author SHA1 Message Date
pavannaregundi
89b7f46486 [Marvell] Update armhf driver version (#15138)
Changes in MRVL_PRESTERA_DRIVER_1.4:
- Memory leak fixed by releasing pci device after retrieval.
- Fixes for 5.10 kernel porting.

Change-Id: I1d7ee4ec02ec17a29ddb8473725ab68ca399748b

Signed-off-by: Pavan Naregundi <pnaregundi@marvell.com>
2023-06-16 09:54:50 +08:00
Ikki Zhu
340a6f68a8 [celestica/e1031]: enable emc2305 fan controller timeout feature (#14401)
Why I did it
There is rare condition, emc2305 hold SMBus and cause SMBus completion wait timed out.

How I did it
Enable EMC2305 SMBus timeout feature, 30ms period of inactivity will reset the interface.

How to verify it
Use 'i2cget -y -f 23 0x4d 0x20 b' to read EMC2305 configuration register and check DIS_TO bit not set.

Signed-off-by: Eric Zhu <erzhu@celestica.com>
2023-06-16 09:54:43 +08:00
James An
a1ee45d7d6
Update cisco-8000.ini (#15465)
Why I did it

Release Notes for Cisco 8101-32FH-O:
• Fixed a FEC lane related error message
• Implemented 'show platform npu mac-state -i ' CLI for NPU MAC information and save-state dump.
• Fixed a Mac Port SerDes credit mismatch error message
• Configurable drop counter support for SAI_DEBUG_COUNTER_ATTR_TYPE (MIGSMSFT-197)
• Removed eth1-midplane creation rule that is not needed for this platform.
• Fix to move control packets from queue 0 to queue 7

How I did it

Update platform version to 202205.2.2.5
2023-06-15 10:27:03 -07:00
James An
47e7c4bdab
Update cisco-8000.ini (#15408)
Why I did it
Release Notes for Cisco 8102-64H-O:
T0 / DualTor - Pre-GA

How I did it
Update platform version to 202205.2.2.4
2023-06-12 13:27:24 -07:00
Samuel Angebault
88820b14f2
[202205][Arista] Update platform library submodules (#15406)
fix pcied leak on chassis
fix fan status led setting on fixed systems
misc fixes
2023-06-12 13:26:46 -07:00
mssonicbld
36b1341b11
[Mellanox] Update hw-mgmt to 7.0020.4301 (#15260) (#15281) 2023-06-01 01:53:59 +08:00
mssonicbld
f6bd817c72
[armhf][Nokia-7215] changes fstrim.timer to daily (#14723) (#15126) 2023-05-18 08:45:13 +08:00
Song Yuan
578cd38f27 Install ptf afpacket module required by ptf_nn_agent. (#14503)
Why I did it
ptf_nn_agent failed to start in dnx rpc syncd because module afpacket was not installed.
Please see issue sonic-net/sonic-mgmt#7822

How I did it
Add downloading ptf afpacket module in docker file.

How to verify it
Verified that ptf_nn_agent was started successfully in dnx rpc syncd with the change.
2023-05-18 06:32:26 +08:00
Hua Liu
5206fcd097
[S6100] Improve S6100 serial-getty monitor, wait and re-check when getty not running to avoid false alert. (#14402) (#15032)
[S6100] Improve S6100 serial-getty monitor, wait and re-check when getty not running to avoid false alert. 

#### Why I did it
On S6100, the serial-getty service some time can't auto-restart by systemd. So there is a monit unit to check serial-getty service status and restart it.

However, this monit will report false alert, because in most case when serial-getty not running, systemd can restart it successfully.

To avoid the false alert, improve the monitor to wait and re-check.

Steps to reproduce this issue:
1. User login to device via console, and keep the connection.
2. User login to device via SSH, check the serial-getty@ttyS1.service service, it's running.
3. Run 'monit reload' from SSH connection.
4. Check syslog 1 minutes later, there will be false alert: ' 'serial-getty' process is not running'

#### How I did it
Add check-getty.sh script to recheck again later when getty service not running.
And update monit unit to check serial-getty service status with this script to avoid false alert.

#### How to verify it
Pass all UT.
Manually check fixed code work correctly:


```
admin@***:~$ sudo systemctl stop  serial-getty@ttyS1.service
admin@***:~$ sudo /usr/local/bin/check-getty.sh 
admin@***:~$ echo $?
1
admin@***:~$ sudo systemctl status serial-getty@ttyS1.serviceserial-getty@ttyS1.service - Serial Getty on ttyS1
     Loaded: loaded (/lib/systemd/system/serial-getty@.service; enabled-runtime; vendor preset: enabled)
     Active: inactive (dead) since Tue 2023-03-28 07:15:21 UTC; 1min 13s ago

admin@***:~$ sudo /usr/local/bin/check-getty.sh 
admin@***:~$ echo $?
0
admin@***:~$ sudo systemctl status serial-getty@ttyS1.serviceserial-getty@ttyS1.service - Serial Getty on ttyS1
     Loaded: loaded (/lib/systemd/system/serial-getty@.service; enabled-runtime; vendor preset: enabled)
```

syslog:
```
Mar 28 07:10:37.597458 *** INFO systemd[1]: serial-getty@ttyS1.service: Succeeded.
Mar 28 07:12:43.010550 *** ERR monit[593]: 'serial-getty' status failed (1) -- no output
Mar 28 07:12:43.010744 *** INFO monit[593]: 'serial-getty' trying to restart
Mar 28 07:12:43.010846 *** INFO monit[593]: 'serial-getty' stop: '/bin/systemctl stop serial-getty@ttyS1.service'
Mar 28 07:12:43.132172 *** INFO monit[593]: 'serial-getty' start: '/bin/systemctl start serial-getty@ttyS1.service'
Mar 28 07:13:43.286276 *** INFO monit[593]: 'serial-getty' status succeeded (0) -- no output
```

#### Description for the changelog
[S6100] Improve S6100 serial-getty monitor.

#### Ensure to add label/tag for the feature raised. example - PR#2174 under sonic-utilities repo. where, Generic Config and Update feature has been labelled as GCU.
2023-05-17 13:09:04 -07:00
Marty Y. Lok
d99999de73 [Nokia7250][sonic-platform] Update sonic-platform submodule for Nokia-7150IXRE platform (#14548)
Why I did it

Update sonic-platform submodule for Nokia-7250IXRE Platform. This requires the new NDK 22.9.8 and above

How I did it
Update submodule sonic-platform for Nokia-7250IXRE platform.
c9f316e Disparate process and thread-safe protection for MDIPC transport, and refactored presence logic to better align with SfpStateUpdateTask operation
a3486cc Added _get_module_bulk_info() and cache the info for 5 seconds to optimize the chassisd update.
4b2e729 Fixed the nokia_cmd show qfpga help display
7b87049 Fixed the nokia_cmd show midplane helper dispaly.
83eabea Add "nokia_cmd set ndk-monitor-action" and "nokia_cmd set ndk-log-level" commands
8aad7de Add nokia_cmd show ndk-version
d2c55e3 Modify the psu.py and module.py to optimize the psud running time


Signed-off-by: mlok <marty.lok@nokia.com>
2023-05-17 12:32:37 +08:00
James An
1b503a1ebe
Update cisco-8000.ini (#15078) 2023-05-16 20:34:42 -07:00
Rajkumar-Marvell
d04b81cd9c
[Marvell] Update armhf sai debian (#15043)
1. SONIC 20220531.25 OC Failure: Everflow testcases failing due to SAI orchagent crash
2. SONIC 20220531.25 OC Failure: ACL IPv6 testcases.
3. TPID support

Signed-off-by: rajkumar38 <rpennadamram@marvell.com>
2023-05-16 16:02:41 -07:00
Samuel Angebault
2e26d965b9
[202205][Arista] Update platform library submodules (#14829)
Fix watchdog reboot cause for wolverine linecard
Fix PSU fan speed of 0% by adding max RPM to most psu descriptions
Add product DCS-7060DX5-64
Add product DCS-7060DX5-32
2023-05-03 17:08:55 -07:00
James An
f2a687b337
Update cisco-8000.ini (#14833)
Why I did it
Release Notes for Cisco 8101-32FH-O:
· Enable CMIS
· Enable Subport for Static Breakout

How I did it
Update platform version to 202205.2.2.2 (equivalent to 202205-v0.16)
2023-04-25 15:59:25 -07:00
xumia
1a9d6cdc5a
Support to add SONiC OS Version in device info (#14601) (#14624)
Why I did it
Support to add SONiC OS Version in device info.
It will be used to display the version info in the SONiC command "show version". The version is used to do the FIPS certification. We do not do the FIPS certification on a specific release, but on the SONiC OS Version.

SONiC Software Version: SONiC.master-13812.218661-7d94c0c28
SONiC OS Version: 11
Distribution: Debian 11.6
Kernel: 5.10.0-18-2-amd64
How I did it
2023-04-17 17:30:49 -07:00
Pavan-Nokia
f6f060f49d
[armhf][Nokia-7215]Add SFP refactor support for Nokia-7215 platform (#14551)
Why I did it
Add support for SFP refactor on Nokia-7215 Marvell armhf platform.

Platform: armhf-nokia_ixs7215_52x-r0
HwSKU: Nokia-7215
ASIC: marvell
Port Config: 48x1G + 4x10G (SFP+)
How I did it
Modify sfp.py to support SFP refactor optoe driver and platform.json to facilitate proper OC test completion.

How to verify it
Build armhf target for Nokia-7215 and verify proper Xcvrd and SFP refactor operation.
2023-04-17 17:26:15 -07:00
Tejaswini Chadaga
980301a6bc
[202205] Update Broadcom SAI version to 7.1.42.4 (#14555)
To include the following DNX changes:

Revert patch and add official SDK/SAI fix for the below CSPs
a. CS00012282080 : syncd crashes after a speed change due to "cosq src vsqs gport get" failure
b. CS00012281200 : J2C+ : Scope of config.bcm SOC property bcm_stat_interval

Fixes for:
a. CS00012278343: SONiC J2c+ Macsec: Shutting down LAG members which have macsec cause
remaining active LAG members to go down
b. CS00012279717: Instance_id printed in SAI syslog messages are truncated to 9 bytes
2023-04-13 14:11:33 -07:00
James An
46fb9b4382
Update cisco-8000.ini (#14569)
Why I did it
Release Notes for Cisco 8808 platform:

Thermal sensor driver support
Release Notes for Cisco 8101-32FH-O:

Support for unwanted Alarm Suppression
How I did it
Update platform version to 202205.2.2.1 (v0.15)

How to verify it
2023-04-13 20:37:36 +08:00
Rajkumar-Marvell
fec29540a6
[Marvell] Update armhf sai debian (#14413)
Why I did it
Fixed syncd syslog errors reported in issue sonic-net/SONiC#1248
Fixes sonic-net/SONiC#1248

How I did it
Compile and load the SAI debian in SONiC 202205 image.

How to verify it
Verify PTF autorestart testcase passes.

Signed-off-by: rajkumar38 <rpennadamram@marvell.com>
2023-04-05 11:16:21 -07:00
mssonicbld
b6774b3775
[marvell-armhf][uboot-setting] Fix the print menu for marvell-armhf print menu on Nokia-7215 (#13933) (#14481) 2023-04-01 11:56:03 +08:00
andywongarista
1cf4c84c43
[Arista] Update platform library submodules (#14452)
implement chassis platform API reboot
fix rpc powercycle on linecard
fix psu/fan LED logic in arista daemon
remove psu LED for PikeZ
2023-03-30 11:53:37 -07:00
jhli-cisco
f620052715
Update cisco-8000.ini (#14448)
Why I did it
Updated the port_alias name as per the SONiC HLD [b70bb0c7da/doc/sonic-port-name.md]
Updated channel number to breakout interfaces

How I did it
update platform version to 0.13
2023-03-28 22:00:49 -07:00
Junchao-Mellanox
f74c69e876
[202205] [Mellanox] Fix issue: user must set admin down before toggling LPM (#14370)
* Fix issue: user must set admin down before toggling LPM
2023-03-24 11:05:49 -07:00
zitingguo-ms
3ea789928a
upgrade SAI xgs to 7.1.36.4 (#14289)
Why I did it
Update SAI xgs version to 7.1.36.4 to include the following changes.

JIRA# SONIC-69731 (7.1.33.4)
Issue Summary: SAI_SWITCH_ATTR_SWITCH_HARDWARE_INFO brcm_sai_get_switch_attribute returns null.
Root Cause: Not implemented.
Fix Description: Get support for SAI switch attr SAI_SWITCH_ATTR_SWITCH_HARDWARE_INFO added
JIRA# SONIC-70737 (7.1.34.4)
Issue Summary: ECN being marked as CE even without congestion
Root Cause: ecn_thresh was set to very low value and packets were 100% marked.
Fix Description: ecn_thresh set to correct value
backport SONIC-70081 to SAI7.1 (7.1.35.4)
egress lossy queue PFC Rx fix:ignore PFC signals from egress
Update git submodules (7.1.36.4)
Update sdk-src/hsdk_6.5.24_SAI_7.1.0_GA from branch 'hsdk_6.5.24_SAI_7.1.0_GA'
to 57d0e360269c4ab659c4790ae471aa4dba2532b4
[SAI_BRANCH rel_ocp_sai_7_1] Broadcom image build failed with SAI 7.1 in DMZ repo (on bullseye)
How I did it
Update SAI xgs code.

How to verify it
Run the SONiC and SAI test with the 7.1 SAI pipeline.

Signed-off-by: zitingguo-ms <zitingguo@microsoft.com>
2023-03-24 11:04:50 -07:00
Saikrishna Arcot
932d0f5391
[202205] Remove apt package lists and make macro to clean up apt and python cache (#14377)
* Remove apt package lists and make macro to clean up apt and python cache

Remove the apt package lists (`/var/lib/apt/lists`) from the docker
containers. This saves about 100MB.

Also, make a macro to clean up the apt and python cache that can then be
used in all of the containers. This helps make the cleanup be consistent
across all containers.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-03-22 14:51:25 -07:00
jhli-cisco
2926314998
Update cisco-8000.ini (#14272)
Why I did it
Chassis:

Fixed Multiple orchagent crashes due to BULK create failure
added new line card support
Addressed T2 snmp test failures
Addressed reboot issues
Chassis and Fixed:

Addressed dshell client issues
HWSKU name update from Cisco-8101-T32/Cisco-8101-C48T8 to Cisco-8101-O32/Cisco-8101-C48O8

How I did it
update to cisco version 0.12
2023-03-17 09:35:15 -07:00
Liu Shilong
19d6f3029c
Revert "Upgrade SAI xgs to 7.1.36.4 and migrate to dmz repo (#14210)" (#14268)
This reverts commit a3ea2e7a17.
2023-03-16 10:19:01 -07:00
Jemston Fernando
f39bdaecf8
Fix Belgite platform issues (#14035)
As part of platform hardening this commit fixes several platform issues
in various components like PSU, FAN, Temperature, LED.
Cherrypick PR#13389
2023-03-15 19:29:00 +00:00
Junhua Zhai
3a70892ca4 [gearbox] use credo sai v0.9.0 (#14149)
Update credo sai package to the latest v0.9.0.
2023-03-16 02:36:18 +08:00
zitingguo-ms
a3ea2e7a17
Upgrade SAI xgs to 7.1.36.4 and migrate to dmz repo (#14210)
Why I did it
Update SAI xgs version to 7.1.36.4 to include the following changes and migrate xgs to DMZ repo.

JIRA# SONIC-69731 (7.1.33.4)
Issue Summary: SAI_SWITCH_ATTR_SWITCH_HARDWARE_INFO brcm_sai_get_switch_attribute returns null.
Root Cause: Not implemented.
Fix Description: Get support for SAI switch attr SAI_SWITCH_ATTR_SWITCH_HARDWARE_INFO added
JIRA# SONIC-70737 (7.1.34.4)
Issue Summary: ECN being marked as CE even without congestion
Root Cause: ecn_thresh was set to very low value and packets were 100% marked.
Fix Description: ecn_thresh set to correct value
backport SONIC-70081 to SAI7.1 (7.1.35.4)
egress lossy queue PFC Rx fix:ignore PFC signals from egress
Update git submodules (7.1.36.4)
Update sdk-src/hsdk_6.5.24_SAI_7.1.0_GA from branch 'hsdk_6.5.24_SAI_7.1.0_GA'
to 57d0e360269c4ab659c4790ae471aa4dba2532b4
[SAI_BRANCH rel_ocp_sai_7_1] Broadcom image build failed with SAI 7.1 in DMZ repo (on bullseye)

How I did it
Update SAI xgs code.

How to verify it
Run the SONiC and SAI test with the 7.1 SAI pipeline.

Signed-off-by: zitingguo-ms <zitingguo@microsoft.com>
2023-03-14 19:02:38 -07:00
mssonicbld
2eb06b1a40
[Mellanox]Fix lpmode set when logical port is larger than 64 (#14138) (#14242) 2023-03-15 08:05:12 +08:00
Tejaswini Chadaga
2366cba05c
Update DNX BRCM SAI version to 7.1.36.4-2 (#14175)
Why I did it
To include DNX fix

Temp workaround for CS00012281200: J2C+ : Scope of config.bcm SOC property bcm_stat_interval
How I did it
Updated SAI version

How to verify it
Basic validation on DNX platform
2023-03-09 10:22:26 -08:00
mssonicbld
5776f30025
[Mellanox] Update MFT to 4.22.1-15 (#14133) (#14168) 2023-03-09 03:36:36 +08:00
Dror Prital
c4e34452af
[Mellanox] Install python2 on syncd (#14151)
- Why I did it
Some scripts on syncd require Python2 support.

- How I did it
Add Python2 to syncd docker

- How to verify it
Run manually python scripts under Nvidia SDK debug to ensure they are working
2023-03-08 13:41:41 +02:00
Volodymyr Samotiy
9fa28a2533
[202205] [Mellanox] Update SAI 2205.24.0.2 & SDK/FW 4.5.4206/2010.4204 (#14136)
Signed-off-by: Volodymyr Samotiy <volodymyrs@nvidia.com>
2023-03-07 16:48:55 -08:00
Yakiv Huryk
1098f6ed4c
[Mellanox] update sdk/fw build procedure (#14104)
* sdk debs are now downloaded as Spectrum-SDK-Drivers-SONiC-Bins release
* sx kernel is downloaded as zip from Spectrum-SDK-Drivers

Signed-off-by: Yakiv Huryk <yhuryk@nvidia.com>
2023-03-06 10:33:06 -08:00
Ikki Zhu
3a8305d4b0 [Seastone] fix dx010 qsfp eeprom data write issue (#13930)
Why I did it
Platform cases test_tx_disable, test_tx_disable_channel, test_power_override failed in dx010.

How I did it
Add i2c access algorithm for CPLD i2c adapters.

How to verify it
Verify it with platform_tests/api/test_sfp.py::TestSfpApi test cases.
2023-03-06 16:39:26 +08:00
Tejaswini Chadaga
a0c127bb54
Update DNX SAI to version 7.1.36.4-1 (#14060) 2023-03-03 09:29:45 -08:00
Samuel Angebault
15916670d7
[202205][Arista] Update platform library submodules (#14039) 2023-03-01 17:43:56 -08:00
Junchao-Mellanox
740ae962b5
[Mellanox] [202205] Add sodimm sensor (#13841) 2023-03-01 12:14:53 +02:00
Stephen Sun
76a5c75b82 [Mellanox] Advance hw-mgmt to v.7.0020.4104 (#13372)
- Why I did it
Advance hw-mgmt service to V.7.0020.4100
Add missing thermal sensors that are supported by hw-mgmt package
Delay system health service before hw-mgmt has started on Mellanox platform in order to avoid reading some sensors before ready.
Depends on sonic-net/sonic-linux-kernel#305

- How I did it
1. Update hw mgmt version
2. Add missing sensors
3. Delay service 

- How to verify it
Regression test.

Signed-off-by: Stephen Sun <stephens@nvidia.com>
2023-03-01 12:38:50 +08:00
jhli-cisco
a100e250f6
Update cisco-8000.ini (#13794)
Why I did it
Code drop with incremental fixes for Cisco 8808 and Cisco 8101-32FH-O platforms
Support for ordered ECMP capability
Support for BFD Serviceability CLI
Support for VxLAN Serviceability CLI
Support for 200G Fabric port speed for Fabric Card 8808-FC0 and Line Card 88-LC0-36FH-M/88-LC0-36FH-MO
PFC support for Q200 ASIC based line cards
Support for Single-TOR and Dual-TOR on Cisco 8102-64H-O Platform

How I did it
update cisco 8000 tag

How to verify it
2023-02-27 14:41:25 +08:00
Tejaswini Chadaga
4345a556eb
Update DNX BRCM SAI version to 7.1.35.4 (#13907) 2023-02-22 14:43:39 -08:00
Stepan Blyshchak
70e2ea1e87
[202205][Mellanox] Place FW binaries under platform directory instead of squashfs (#13838)
Fixes #13568
Backport of #13837

Upgrade from old image always requires squashfs mount to get the next image FW binary. This can be avoided if we put FW binary under platform directory which is easily accessible after installation:

admin@r-spider-05:~$ ls /host/image-fw-new-loc.0-dirty-20230208.193534/platform/fw-SPC.mfa
/host/image-fw-new-loc.0-dirty-20230208.193534/platform/fw-SPC.mfa
admin@r-spider-05:~$ ls -al /tmp/image-fw-new-loc.0-dirty-20230208.193534-fs/etc/mlnx/fw-SPC.mfa
lrwxrwxrwx 1 root root 66 Feb  8 17:57 /tmp/image-fw-new-loc.0-dirty-20230208.193534-fs/etc/mlnx/fw-SPC.mfa -> /host/image-fw-new-loc.0-dirty-20230208.193534/platform/fw-SPC.mfa

- Why I did it
202211 and above uses different squashfs compression type that 201911 kernel can not handle. Therefore, we avoid mounting squashfs altogether with this change.

- How I did it
Place FW binary under /host/image-/platform/mlnx/, soft links in /etc/mlnx are created to avoid breaking existing scripts/automation.
/etc/mlnx/fw-SPCX.mfa is a soft link always pointing to the FW that should be used in current image
mlnx-fw-upgrade.sh is updated to prefer /host/image-/platform/mlnx location and fallback to /etc/mlnx in squashfs in case new location does not exist. This is necessary to do image downgrade.

- How to verify it
Upgrade from 201911 to 202205
202205 to 201911 downgrade
202205 -> 202205 reboot
ONIE -> 202205 boot (First FW burn)

Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
2023-02-22 17:40:50 +02:00
mssonicbld
1e15f00a4f
[Mellanox] Check system eeprom existence in a retry manner (#13884) (#13915) 2023-02-22 13:43:03 +08:00
mssonicbld
b3bcd3d08b
[Mellanox] Fix issue: cannot find label port for logical port when logical port number is larger than 64 (#13710) (#13908)
- Why I did it
sfp_event.py gets a PMPE message when a cable event is available. In PMPE message, there is no label port available. Current sfp_event.py is using sx_api_port_device_get to get 64 logical ports attributes, and find the label port from those 64 attributes. However, if there are more than 64 ports, sfp_event.py might not be able to find the label port and drop the PMPE message.

- How I did it
Don't use hardcoded 64, get logical port number instead.

- How to verify it
Manual test

Co-authored-by: Junchao-Mellanox <57339448+Junchao-Mellanox@users.noreply.github.com>
2023-02-21 18:15:06 -08:00
mssonicbld
cfb9877372
[Nokia][sonic-platform] Update Nokia sonic-platform submodule (#13522) (#13909) 2023-02-22 07:18:09 +08:00
mssonicbld
e86f8fa31e
Add PYTHON3_SWSSCOMMON as build time dependency to Mellanox platform API (#13847) (#13905) 2023-02-22 02:34:55 +08:00
Samuel Angebault
aa912ec925
[202205][Arista] Update platform library submodules (#13871)
add SEU reporting on chassis
fix fallback logic for Clearlake eeprom identification
fix fan speed reporting for a specific model
move pcie timeout configuration for Upperlake in platform code (deprecates hwsku-init)
2023-02-17 13:52:14 -08:00
Richard.Yu
cf5ca9d27c
[SAI-PTF][mlnx]Enable saiserver test container on mlnx platforms (#13311)
* Why I did it
Enable Test sai api on bfn container with a lightweight container(saiserver).
[SAI-PTF][mlnx]Enable saiserver test container on mlnx container

How I did it
enable saiserver container on mlnx platform.

add docker-saiserver-mlnx.mk for building saiserver container
in platform/barefoot/docker-saiserver-mlnx, add necessary files that needs in saiserver container
How to verify it

Signed-off-by: richardyu-ms <richard.yu@microsoft.com>
2023-02-16 15:42:12 -08:00