Commit Graph

361 Commits

Author SHA1 Message Date
Karthik Gengan
91b1948b17 [devices]: DellEmc: Z9264f Pre-emphasis and Led settings (#2959) 2019-05-31 08:23:27 -07:00
Stephen
cfa14ce1a6 [Mellanox]Fix issue #2720 Not able to read out values of voltage/temp/power on some cables (#2957)
* [device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfputil.py]
purpose and restrictions
1. reading eeprom via ethtool.
2. avoid changing common codes shared by all the manufacture (sonic-platform-common), contrain all the modifications with Mellanox-specific code.
current implementation
A new class based on SfpUtilBase and a new method _read_eeprom_specific_bytes_via_ethtool have been introduced in order to change the way the eprom DOM data is read. Typically the best practice to do this kind of thing is to contrain the modification within the function which execute reading operations only and keep other stuffs (especially the interface) untouched. However, this can hardly be achieved since the original reading function takes the file object as input parameter to represent the port. It is done by having the file object to point to /var/run/hwmanagement files, which will not be maintained in the future. As a result, a new interface has to be introduced with a port number/name as input parameter in order to get rid of the dependency on the those files:
_read_eeprom_specific_bytes_via_ethtool
Since the interface changed, all methods that call the interface should also be overwritten in order to call the new interface, including:
_read_eeprom_devid
get_transceiver_info_dict
get_transceiver_dom_info_dict
Only interface used to read eeprom DOM has been replaced and the main logic has not been changed except the following mentioned.
1. reading DOM data for sfp port, which is implementioned in get_transceiver_dom_info_dict. In this case a "calibration" should be firstly read from eeprom before other values like temperature, voltage, rx/tx power, can be parsed. However, this has been ignored in the original code, resulting in that the data cann't be parsed.
2. In the original implemention the data area containing the data are read from DOM separatedly in order to avoid read uncessary data and achieve a better performance. Having used ethtool to read DOM data, the performance gap between reading all the area and reading the spot data separatedly has been narrowed to almost zero. To make the code neat and readable, we change the way to read this data.

* [sfputil] Returns dict with all data set to N/A for ports without dom support
Currently, the way in which dom data is read has been changed from using sysfs to using ethtool.
The ethtool returns None for ports without dom support, resulting in None being returned. However, this fails xcvrd to add the TRANSCEIVER_DOM_SENSOR table entry of associated port to CONFIG_DB and then causes SNMP fail.
To address this issue a default dict is initialized with all data set to 'N/A' and is returned is the above case.
BTW, in the original implementation which sysfs is used to read dom data, even though non-None data is returned for ports without dom support, it does not contain valid data. This can result in wrong data in TRANSCEIVER_DOM_SENSOR table.

* [sfputil]
removing unnecessary empty lines
removing redundent code
replacing hardcoding strings/numbers with predefined const variables
2019-05-31 08:22:47 -07:00
Roy Lee
4d212debc7 [device][platform] add platform as5812-54x, accton. (#2889)
* Add new device accton_as5812_54x.
Signed-off-by: roy_lee <roy_lee@accton.com>

* Rename 5812's config.bcm.
Signed-off-by: roy_lee <roy_lee@accton.com>

* Change fan module to support lm-sensors.
Validate for thermal policy.
Signed-off-by: roy_lee <roy_lee@accton.com>

* Add bask reset and lpmode control of 6 QSFP ports.
Signed-off-by: roy_lee <roy_lee@accton.com>

* Get currect duty of fan for comparing. Instead of by stored duty from previous iteration.
Signed-off-by: roy_lee <roy_lee@accton.com>

* Roll back the mistakes to update mellanox submodules.
Signed-off-by: roy_lee <roy_lee@accton.com>

* Rollback for misoperation on submodule platform/p4/SAI-P4-BM.
Signed-off-by: roy_lee <roy_lee@accton.com>

* Change indexes of ports to start from 1, as them on the front panel.
Add low-power mode control of the transciever's eeprom, follows SFF-8436.
Signed-off-by: roy_lee <roy_lee@accton.com>
2019-05-28 22:44:32 -07:00
Harish Venkatraman
10a6157c83 [DellEMC-Z9264f-Q64] Add PFC support for 40G z9264f (#2940)
This commit adds new code and JAON file to support PFC
and MMU setting for PFC feature on z9264f-Q64 (40G) T0
and T1 support. The buffers_defaults_t0.json and
buffers_defaults_t1.json file has the recommended values
for T0 and T1 configuration.
Unit tested and verified by running JSON file and checking
the hardware registers and table in broadcom. THe settings
in hardware are reflecting the JSON values.

Signed-off-by: Harish Venkatraman <harish_venkatraman@dell.com>
2019-05-28 08:42:22 -07:00
Karthik Gengan
38fb90d7da [devices]: DellEmc Z9264f: Adding port speed entry in port_config.ini. (#2949) 2019-05-27 23:27:21 -07:00
Kebo Liu
0cdc22d3cb [devices]: enable ISSU on 2410 (#2937) 2019-05-25 18:00:52 -07:00
jostar-yang
b44eef9822 Add support as4630-54pe device and sdk cfg (#2928)
* Add to support as4630-54pe platform

* Add as4630 monitor psu/fan status

* Add support as4630-54pe device and sdk cfg
2019-05-24 02:40:44 -07:00
Karthik Gengan
154a88331d [devices]: DellEmc-Z9264f:Interrupt based Optic OIR (#2926) 2019-05-22 22:09:53 -07:00
brandonchuang
77919507f2 [Accton AS7326]: Add lpmode in sfputil.py (#2905)
Signed-off-by: brandon_chuang <brandon_chuang@CicadaBuildServer.accton.com.tw>
2019-05-18 10:36:58 -07:00
Samuel Angebault
aac0c24312 [device/Arista] Add support for the 7280CR3-32P4 (#2910)
* Add boot0 support for the 7280CR3

* Add platform and plugins for 7280CR3

* Add port config for 7280CR3

* Add platform_reboot for 7280CR3

* Add support for 7280CR3-32D4 based on the 7280CR3-32P4

* Update arista driver submodules

 - Introduce new 7280CR3-32P4
 - Improve to the led plugin for OSFP
2019-05-18 10:34:07 -07:00
Harish Venkatraman
68ccfaaade [DellEMC-Z9264f-C64] Add PFC support for z9264f (#2893)
This commit adds new code and JSON file to support PFC and
broadcom recommended MMU setting for PFC feaure on z9264f
(100G) T1 support. The buffers_defaults_t1.json file has
the broadcom recommended values for T1 configuration.
Unit tested and verified by running the JSON file and checking
the hardware registers and table in broadcom. The settings in
the hardware is reflecting the broadcom recommended values.

Signed-off-by: Harish Venkatraman <harish_venkatraman@dell.com>
2019-05-16 18:49:30 -07:00
Sudharsan D.G
d67b440c44 [devices]: Added index for dell z9100 c32 (#2892) 2019-05-16 09:27:13 -07:00
Samuel Angebault
77cde50541 [device/Arista] Improvements to the boot of Arista devices. (#2898)
* Fix showing systemd shutdown sequence when verbose is set

* Fix creation of kernel-cmdline file

Sometimes boot0 prints error
"mv: can't preserve ownership of '/mnt/flash/image-arsonic.xxxx/kernel-cmdline': Operation not permitted"

* Improve flash space usage during installation

Some older systems only have 2GB of flash available. Installing a second
image on these can prove to be challenging.
The new installation process moves the installer swi to memory in order
to avoid free up space from the flash before uncompressing it there.
It removes all the flash space usage spike and also improves the IO
since the installation is no more reading and writting to the flash at
the same time.

* Add support of 7060CX-32S-SSD

* 7260CX3: use inventory powerCycle procedures

* 7050QX-32S: use inventory powerCycle procedures

* 7050QX-32: use inventory powerCycle procedures

* platform: arista: add common platform_reboot

Replace platform_reboot by a link to new common for devices already
using a similar script.

* 7060CX-32S: use inventory powerCycle procedures

* Install python smbus in pmon

Some platform plugin need the python smbus library to perform some actions.
This installs the dependency.
2019-05-15 12:45:05 -07:00
brandonchuang
e6691c2a34 [Accton AS7712]: Add lpmode in sfputil.py (#2896)
Signed-off-by: brandon_chuang <brandon_chuang@CicadaBuildServer.accton.com.tw>
2019-05-15 07:49:02 -07:00
paavaanan
d5d51c0369 LED Supprot For DellEMC Z9100 (#2799) 2019-05-14 16:07:40 -07:00
Sudharsan D.G
db7c42f750 [devices]: Adding new SKU to DELL Z9264f (#2891)
correcting default sku

Changes for adding tiers

Adding new SKU to Z9264f

correcting default sku

Changes for adding tiers

Modified reboot script

Adding new SKU to Z9264f

correcting default sku

Changes for adding tiers

Adding new SKU to Z9264f

correcting default sku

Changes for adding tiers

Modified reboot script

Renaming sai.profile

UT Fixes

Fixing z9100 c32

Modifying c64 sku

Changing default sku

Fixing typo
2019-05-13 13:36:25 -07:00
Andriy Kokhan
77b9feaa1f [bfn] fixed build failure (#2883)
* fixed barefoot platform build
* added TNA config
* updated port_config.ini

Signed-off-by: Andriy Kokhan <akokhan@barefootnetworks.com>
2019-05-11 11:54:30 -07:00
Wirut Getbamrung
38ad2a8dad [platform-celestica] - Implement FAN APIs based on the new platform API (#2739)
* [platform/cel] Implement FAN APIs based on the new platform API

* [platform/cel] Move platform api to under device platform

* [platform/cel] Remove rule to build platform api python wheel
2019-05-09 00:57:17 -07:00
zzhiyuan
b7235fc949 [Arista] Add QoS needed files for Arista 7170 (#2814) 2019-05-09 00:25:09 -07:00
paavaanan
b1862f4372 [devices]: DellEMC S6100/Z9100 sensor.conf update (#2861) 2019-05-09 00:22:18 -07:00
paavaanan
818bbe8b68 [devices]: DellEMC S6000 xcvrd support (#2560)
* DellEMC S6000, xcvrd support

* sleep 1 second to avoid busy looping

* removal of dead code

* Correct typo error to 1 second

* Introduced 1 second sleep

* Revamped script with blocking call support

* get_transceiver_change_event api definition update

* adding timeout support for get_transceiver_change_event
2019-04-29 18:30:36 -07:00
Pradchaya Phucharoen
9525f862fa [devices]: Haliburton xcvrd event support (#2486)
* [platform/broadcom] Add xcvr event interrupt for haliburton

* [device/celestica] Sfputil implement xcvr event monitor on haliburton

* Codes cleanup, remove gpio_ich module unload line
2019-04-18 02:30:50 -07:00
michealylj1
7ed5a92fc0 [Devices] Add new device CIG CS6436-56P (#2587)
* Add new device CIG CS6436-56P

* Delete minigraph.xml

It isn't necessary in the current system, just delete it

* Update qos.json.j2

* Update port_config.ini

Add the speed column. The cmd to show interface status as:

root@switch1:~# show interface status             
  Interface            Lanes    Speed    MTU         Alias    Oper    Admin    Type    Asym PFC
-----------  ---------------  -------  -----  ------------  ------  -------  ------  ----------
  Ethernet0                8      25G   9100   Ethernet1/1      up       up     SFP         N/A
  Ethernet1                9      25G   9100   Ethernet2/1      up       up     SFP         N/A
  Ethernet2               10      25G   9100   Ethernet3/1    down     down     N/A         N/A
  Ethernet3               11      25G   9100   Ethernet4/1    down     down     N/A         N/A
  Ethernet4               12      25G   9100   Ethernet5/1    down     down     N/A         N/A
  Ethernet5               13      25G   9100   Ethernet6/1    down     down     N/A         N/A
  Ethernet6               14      25G   9100   Ethernet7/1    down     down     N/A         N/A
  Ethernet7               15      25G   9100   Ethernet8/1    down     down     N/A         N/A
  Ethernet8               16      25G   9100   Ethernet9/1    down     down     N/A         N/A
  Ethernet9               17      25G   9100  Ethernet10/1    down     down     N/A         N/A
 Ethernet10               18      25G   9100  Ethernet11/1    down     down     N/A         N/A
 Ethernet11               19      25G   9100  Ethernet12/1    down     down     N/A         N/A
 Ethernet12               20      25G   9100  Ethernet13/1    down     down     N/A         N/A
 Ethernet13               21      25G   9100  Ethernet14/1    down     down     N/A         N/A
 Ethernet14               22      25G   9100  Ethernet15/1    down     down     N/A         N/A
 Ethernet15               23      25G   9100  Ethernet16/1    down     down     N/A         N/A
 Ethernet16               32      25G   9100  Ethernet17/1    down     down     N/A         N/A
 Ethernet17               33      25G   9100  Ethernet18/1    down     down     N/A         N/A
 Ethernet18               34      25G   9100  Ethernet19/1    down     down     N/A         N/A
 Ethernet19               35      25G   9100  Ethernet20/1    down     down     N/A         N/A
 Ethernet20               40      25G   9100  Ethernet21/1    down     down     N/A         N/A
 Ethernet21               41      25G   9100  Ethernet22/1    down     down     N/A         N/A
 Ethernet22               42      25G   9100  Ethernet23/1    down     down     N/A         N/A
 Ethernet23               43      25G   9100  Ethernet24/1    down     down     N/A         N/A
 Ethernet24               48      25G   9100  Ethernet25/1    down     down     N/A         N/A
 Ethernet25               49      25G   9100  Ethernet26/1    down     down     N/A         N/A
 Ethernet26               50      25G   9100  Ethernet27/1    down     down     N/A         N/A
 Ethernet27               51      25G   9100  Ethernet28/1    down     down     N/A         N/A
 Ethernet28               56      25G   9100  Ethernet29/1    down     down     N/A         N/A
 Ethernet29               57      25G   9100  Ethernet30/1    down     down     N/A         N/A
 Ethernet30               58      25G   9100  Ethernet31/1    down     down     N/A         N/A
 Ethernet31               59      25G   9100  Ethernet32/1    down     down     N/A         N/A
 Ethernet32               64      25G   9100  Ethernet33/1    down     down     N/A         N/A
 Ethernet33               65      25G   9100  Ethernet34/1    down     down     N/A         N/A
 Ethernet34               66      25G   9100  Ethernet35/1    down     down     N/A         N/A
 Ethernet35               67      25G   9100  Ethernet36/1    down     down     N/A         N/A
 Ethernet36               68      25G   9100  Ethernet37/1    down     down     N/A         N/A
 Ethernet37               69      25G   9100  Ethernet38/1    down     down     N/A         N/A
 Ethernet38               70      25G   9100  Ethernet39/1    down     down     N/A         N/A
 Ethernet39               71      25G   9100  Ethernet40/1    down     down     N/A         N/A
 Ethernet40               72      25G   9100  Ethernet41/1    down     down     N/A         N/A
 Ethernet41               73      25G   9100  Ethernet42/1    down     down     N/A         N/A
 Ethernet42               74      25G   9100  Ethernet43/1    down     down     N/A         N/A
 Ethernet43               75      25G   9100  Ethernet44/1    down     down     N/A         N/A
 Ethernet44               76      25G   9100  Ethernet45/1    down     down     N/A         N/A
 Ethernet45               77      25G   9100  Ethernet46/1    down     down     N/A         N/A
 Ethernet46               78      25G   9100  Ethernet47/1    down     down     N/A         N/A
 Ethernet47               79      25G   9100  Ethernet48/1    down     down     N/A         N/A
 Ethernet48      84,85,86,87     100G   9100  Ethernet49/1      up       up  QSFP28         N/A
 Ethernet49      80,81,82,83     100G   9100  Ethernet50/1      up       up  QSFP28         N/A
 Ethernet50      92,93,94,95     100G   9100  Ethernet51/1    down     down     N/A         N/A
 Ethernet51      88,89,90,91     100G   9100  Ethernet52/1    down     down     N/A         N/A
 Ethernet52  108,109,110,111     100G   9100  Ethernet53/1    down     down     N/A         N/A
 Ethernet53  104,105,106,107     100G   9100  Ethernet54/1    down     down     N/A         N/A
 Ethernet54  116,117,118,119     100G   9100  Ethernet55/1    down     down     N/A         N/A
 Ethernet55  112,113,114,115     100G   9100  Ethernet56/1    down     down     N/A         N/A
root@switch1:~#
2019-04-18 02:27:39 -07:00
Pavlo Yadvichuk
b0b0862d54 [barefoot]: Add warm-boot feature processing for wedge100bf_32x/65x platforms (#2687) 2019-04-17 00:05:24 -07:00
Mykola F
d993d6f3ac [Mellanox] build one image for Mellanox & Mellanox SimX (#2664)
Signed-off-by: Mykola Faryma <mykolaf@mellanox.com>
2019-04-10 21:55:14 -07:00
Wirut Getbamrung
4fcb3321b2 [platform-celestica]: Add new fancontrol service for haliburton device (#2736) 2019-04-10 19:13:30 -07:00
Sudharsan D.G
357923d6ea [devices]: Fixing get_transceiver_change_event for z9100 (#2712) 2019-03-27 18:38:01 -07:00
Andriy Moroz
3a3a221a95 [devices]: Add support of HwSKU Mellanox-SN2700-C28D8 (#2700)
Signed-off-by: Andriy Moroz <c_andriym@mellanox.com>
2019-03-27 18:36:52 -07:00
Pradchaya Phucharoen
957d8f541b [device/celestica] haliburton add gpio_ich driver module blacklist (#2704) 2019-03-27 18:35:35 -07:00
Pradchaya P
6cec850c0a [device/celestica] seastone add gpio_ich driver module blacklist (#2691) 2019-03-25 15:49:35 -07:00
Pradchaya P
42d79a1cf5 Revert "[device/celestica] haliburton add gpio_ich driver module blacklist (#2692)" (#2697)
This reverts commit e06e7dc007.
2019-03-25 15:48:56 -07:00
Polly Hsu
b36b84fc5a [device/accton]: Update Accton-AS7326-54X (#2482) 2019-03-23 12:28:24 -07:00
Polly Hsu
af111aa836 [device/accton]: Add Accton-AS7726-32X (#2483) 2019-03-23 12:22:08 -07:00
Pradchaya P
e06e7dc007 [device/celestica] haliburton add gpio_ich driver module blacklist (#2692) 2019-03-22 16:39:24 -07:00
Kebo Liu
84b46bb0e0 [Pmon] dynamically load pmon daemons (#2654)
* dynamically load pmon daemons
2019-03-22 02:49:35 -07:00
Kebo Liu
80af5e179c [Mellanox] fix sfp lpmode set failure caused by extra nv port (#2671)
* fix lpmode set failure issue by skipping nvport
2019-03-19 11:43:25 -07:00
Michel Moriniaux
62e994d8ec [HWSKU] add Arista-7060CX-32S-T96C8 and Arista-7060CX-32S-Q24C8 (#2617)
* [HWSKU] Added Arista-7060CX-32S-Q24C8 HWSKU

Added an Arista HWSKU with 24x40G + 8x100G ports
The ports are distributed along core lines

Signed-off-by: Michel Moriniaux <m.moriniaux@criteo.com>

* [HWSKU] Added Arista-7060CX-32S-T96C8 HWSKU

Added the bcm config files for a 96x25G+8x100G ToR

Signed-off-by: Michel Moriniaux <m.moriniaux@criteo.com>

* [HWSKU] Added Arista-7060CX-32S-Q24C8 HWSKU

Added an Arista HWSKU with 24x40G + 8x100G ports
The ports are distributed along core lines

Signed-off-by: Michel Moriniaux <m.moriniaux@criteo.com>
2019-03-15 09:45:17 -07:00
Roy Lee
802d5ef55a [devices] add new accton platform minipack (#2670)
[devices] add new accton platform minipack.

Add support for new platform, minipack.
It has
CPU: Broadwell DE – D1527
MAC: Tomahawk3(BCM56980).
PHY:Broadcom BCM81724, 4 pcs, Gearbox for PIM-16Q
BMC:AST2520
8 hot-swappable Port-Interface-Modules, each of them has 16*100G QSFP.

- What I did
Add device and platform files for minipack.
- How I did it
Add as SONiC Porting Guide.
- How to verify it
decode-syseeprom
sensors
psuutil
sfputil
thermal monitor
bcmsh on port status
(port LEDs may not working)
2019-03-15 09:40:38 -07:00
Nazarii Hnydyn
b22fe37670 [mellanox]: Upgraded hw-management V.2.0.0160. (#2643)
Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>
2019-03-06 18:51:46 -08:00
zzhiyuan
4361c2d758 [devices]: Add autoneg to 7170-Q59S20 (#2636) 2019-03-06 00:18:48 -08:00
Kebo Liu
c05220b33e [devices]: sfputil support more mellanox sku (#2645) 2019-03-06 00:16:24 -08:00
zzhiyuan
637e435fd2 [devices]: Fix sfputil indexing for Arista 7170-Q59S20 (#2623) 2019-03-01 12:47:50 -08:00
zzhiyuan
4d863fa032 Fix port_config for 7170-Q59S20 (#2618) 2019-02-28 15:04:04 -08:00
sridhar-ravindran
be92a250d3 [devices]: Reset I2C MUX in S6000 while invoking platform reboot (#2567) 2019-02-16 11:50:15 -08:00
Harish Venkatraman
43aa19ca9b [dell/Z9100] Fix for optics not detected in fanout mode (#2496)
* [dell/Z9100] Fix for optics not detected in fanout mode

This commit fixes the issue of optics not detected
error while running sfputil show eeprom command. The root
casuse was the value of port index from port_config.ini for
fan out scenario. The port index should be starting from 0
and not 1. Platform cpld registers are assuming the port
numbers to start from 0 (lowermost bit), sfputils.py uses this
port number in get_presence function. Since the indexing passed
is wrong the optics was not detected and gave SFP EEPROM not
detected message.

Signed-off-by: Harish Venkatraman <Harish_Venkatraman@Dell.com>

* [dell/z9100] Fix for optics not detected in fanout mode

This commit fixes the issue of optics not detected error
while running sfputil show eeprom command. The root cause
was wrong port_index in fan out scenarios. Earlier fix of
changing the port_config.ini is reverted and changes made
in z9100 platform specific sfputil.py file. The port number
is decrement and tested for both 100G and 50G fanout cases.
Tested for the following show commands and test was succesful
show interfaces status, show interfaces transceiver eeprom,
show interfaces transceiver lpmode, show interface tranceiver
presence.

Signed-off-by: Harish Venkatraman <Harish_Venkatraman@Dell.com>
2019-02-16 09:59:51 -08:00
Ying Xie
f98bec41c7
[HWSKU] Define HWSKU Arista-7260CX3-Q64 and Arista-7260CX3-Q44 (#2562)
Signed-off-by: Ying Xie <ying.xie@microsoft.com>
2019-02-14 11:27:15 -08:00
Nazarii Hnydyn
a5a8d28d83 Updated SAI XML config for SN2010. (#2561)
Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>
2019-02-14 09:09:55 +02:00
Nazarii Hnydyn
d53df059d4 [devices]: Added new SN3700/SN3700C Mellanox platforms (#2548)
* [mlnx-msn3700]: Added MSN3700 platform.

Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>

* [mlnx-msn3700]: Upgrade FW burn: use ASIC auto detect.

Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>

* [mlnx-msn3700]: Updated HW-MGMT/FW/MFT/SAI/SDK.

Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>

* [mlnx-msn3700]: Added MSN3700C platform.

Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>
2019-02-13 23:08:04 -08:00
zzhiyuan
6037707abc [devices]: Add device data for Arista 7060PX/DX4-32 (#2534)
* Add boot0 definition for Arista 7060PX4-32 and 7060DX4-32

* Add port configuration for Arista 7060PX4-32

* Add plugins for Arista 7060PX4-32

* Add platform_reboot for Arista 7060PX4-32

* Add Arista 7060DX4-32 as symlink of 7060PX4-32

* Add sensors configuration and fancontrol for Arista 7060PX4-32

* Update arista-driver submodules for barefoot/broadcom

* Add platform_reboot script for Alhambra

* Rook fancontrol CPLD rename
2019-02-08 22:02:01 -08:00
Wenda Ni
1cc6afc9a9 [QoS]: fix size and xoff value on a7050-QX-32S, -QX32, and s6000(#2527)
Signed-off-by: Wenda <wenni@microsoft.com>
2019-02-04 22:27:01 -08:00