Stepan Blyshchak
d29a496dbc
[mlnx] refactor and fix mlnx-sfpd shutdown ( #2907 )
...
* [mlnx] fix mlnx-sfpd shutdown
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
* fix type and handle only EINTR and EAGAIN errors from select
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
* handle select.error as well during init/run
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2019-05-16 18:49:00 -07:00
lguohan
2519048184
[sairedis]: Update sonic-sairedis pointer and Broadcom/Mellanox SAI/SDK/FW ( #2826 )
...
[sairedis]: Update sonic-sairedis pointer and Broadcom/Mellanox SAI/SDK/FW
2019-05-06 11:45:50 -07:00
Volodymyr Samotiy
2ceceac883
[mellanox]: Update SAI, SDK and FW
...
* SAI: v1.14.0 (API v1.4.1)
* SDK: v4.3.1104
* FW: v13.2000.1140/v29.2000.1140
Signed-off-by: Volodymyr Samotiy <volodymyrs@mellanox.com>
2019-05-03 10:50:14 +00:00
Nazarii Hnydyn
d33ed17da4
Update Mellanox MFT packedge. ( #2825 )
...
[mellanox] Update Mellanox MFT packedge
2019-04-25 18:22:33 +03:00
Renuka Manavalan
3a6d7be27e
[build]: syncd-rpc.mk: Fix stretch dockers build failure ( #2812 )
...
The base syncd dockers follow a template, which defines the base docker as DOCKER_SYNCD_BASE instead of DOCKER_SYNCD_. Fix the docker-syncd-<mlnx, bfn>.mk to use the new one.
2019-04-23 17:23:17 -07:00
Kebo Liu
818ba436a9
[Mellanox] Implement new fan platform API ( #2747 )
2019-04-21 14:34:28 -07:00
Renuka Manavalan
ba0ca01ee0
[build]: Makefile: Extend to build debug docker images for all stretch dockers ( #2789 )
...
Overall goal: Build debug images for every stretch docker.
An earlier PR (#2789 ) made the first cut, by transforming broadcom/orchagent to build target/docker-orhagent-dbg.gz.
Changes in this PR:
Made docker-orchagent build to be platform independent.
1.1) Created rules/docker_orchagent.mk
1.2) Removed platform//docker-orchagent-*.mk
1.3) Removed the corresponding entry from platform//rules.mk
Extended the debug docker image build to stretch based syncd dockers.
2.1) For now, only mellanox & barefoot are stretch based.
2.2) All the common variable definitions are put in one place platform/template/docker-syncd-base.mk
2.3) platform/[mellanox, bfn]/docker-syncd-[mlnx, bfn].mk are updated as detailed below.
2.3.1) Set platform code and include template base file
2.3.2) Add the dependencies & debug dependencies and any update over what base template offers.
Extended all stretch based non-platform dockers to build debug dockers too.
3.1) Affected are:
docker-database.mk,
docker-platform-monitor.mk,
docker-router-advertiser.mk,
docker-teamd.mk,
docker-telemetry.mk
Next: Build debug flavor of final images with regular dockers replaced with debug dockers where available.
2019-04-19 18:49:21 -07:00
Stepan Blyshchak
ea078e7823
[buildsystem] Install debug packages in syncd when INSTALL_DEBUG_TOOLS=y ( #2702 )
...
* [buildsystem] Install debug packages in syncd when INSTALL_DEBUG_TOOLS=y
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2019-04-18 02:25:51 -07:00
Kebo Liu
e797bf8516
[mellanox]: Update hw-mgmt pakcage to V.2.0.0.0172 ( #2798 )
2019-04-18 02:25:10 -07:00
Mykola F
1aa258d3cb
[fw-upgrade] fix issue with fw-upgrade ( #2785 )
...
Signed-off-by: Mykola Faryma <mykolaf@mellanox.com>
2019-04-16 10:06:10 -07:00
Mykola F
c5fecea247
[Mellanox-SAI] update Mellanox SAI submodule pointer ( #2777 )
...
Signed-off-by: Mykola Faryma <mykolaf@mellanox.com>
2019-04-13 17:23:21 -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
Stepan Blyshchak
ded4fe27ff
[mlnx] fix url inconsistency in fw.mk ( #2761 )
...
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2019-04-10 17:57:34 +03:00
lguohan
b73f9a5b1d
[swss]: update swss docker to stretch ( #2714 )
...
* [swss]: update swss docker to stretch
sonic-swss update:
* aa92326 2019-03-29 | fix c++ 11 build complaint for destructors default to noexcept (#822 ) (HEAD, origin/master, origin/HEAD) [lguohan]
* a304007 2019-03-28 | Allow ACL entry creation without ACL counter (#818 ) [Wenda Ni]
* 60a8a0d 2019-03-28 | [orchagent]: Cast enum class variable to int (#819 ) (HEAD, origin/master, origin/HEAD) [Shuotian Cheng]
* 3dd37a4 2019-03-26 | [vnetorch]: Add VNET/tunnel/route removal flows for Bitmap VNET implementation (#816 ) [Volodymyr Samotiy]
* a937f92 2019-03-22 | [VS]: fix occasional test_fdb_notifications vs test failure (#813 ) [Jipan Yang]
* ea54825 2019-03-21 | [portsorch] Fix inconsistent return value in bindAclTable (#791 ) [yorke]
* 5984e3a 2019-03-07 | Fix orchagent SEGV when PortConfigDone not set (#803 ) [Ramesh Santhanakrishnan]
Signed-off-by: Guohan Lu <gulv@microsoft.com>
2019-03-30 11:57:25 -07:00
Stepan Blyshchak
8ebfc3a115
[mellanox] Make mellanox SAI-Implementation as submodule ( #2711 )
...
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2019-03-28 09:44:15 -07:00
Stepan Blyshchak
0e01ff557b
[mellanox] add makefiles to build Mellanox SDK from sources ( #2701 )
...
* [.gitignore] add missing directories to .gitignore
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
* [buildsystem] add ability to override make variables from root Makefile
To override any make variable during build use SONIC_OVERRIDE_BUILD_VARS, e.g:
"make SONIC_OVERRIDE_BUILD_VARS="PARAM1=A PARAM2=B" all"
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
* [mellanox] add SDK build from sources
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
* [mellanox] pass -j$(SONIC_CONFIG_MAKE_JOBS) when building SDK
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
* [mellanox] Add MLNX_SAI_REPO, MLNX_FW_BASE_URL variables
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
* [mellanox] if MLNX_SDK_BASE_SOURCE_URL is not empty then build SDK from sources
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2019-03-27 18:32:25 -07:00
Andriy Moroz
5cfd97a65f
[Mellanox] Update SAI ( #2685 )
...
New SAI fixes getting of queue buffer profile
Signed-off-by: Andriy Moroz <c_andriym@mellanox.com>
2019-03-21 10:47:08 -07:00
Stepan Blyshchak
c0caf0c372
[dockers] Build stretch dockers only once and only in stretch slave docker ( #2678 )
...
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2019-03-19 09:16:33 -07:00
Stepan Blyshchak
a45f41ec1b
[mellanox] Fix in mlnx-ffb.sh ( #2676 )
...
Fixes "No ISSU version file found /etc/mlnx/issu-version"
when rebooting to different image;
Add aditional check condition.
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2019-03-18 08:53:35 -07:00
Andriy Moroz
383d52956e
[mellanox]: Update SDK, FW and SAI ( #2669 )
...
MLNX_SDK_VERSION = 4.3.0136
SPC_FW_VERSION = 13.1910.0920
MLNX_SAI_VERSION = SAIRel1.13.7-master
Signed-off-by: Andriy Moroz <c_andriym@mellanox.com>
2019-03-15 00:25:19 -07:00
Stepan Blyshchak
8b7fc8db65
[dockers] Upgrade Mellanox syncd docker to stretch ( #2640 )
...
* [dockers] Upgrade Mellanox syncd docker to stretch
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2019-03-12 21:38:25 -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
Stepan Blyshchak
f06c67b456
[mellanox] Implement Watchdog API based on the new platform API ( #2607 )
...
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2019-02-28 15:57:38 -08:00
Mykola F
16b5560328
[Mellanox] update SAI to 1.13.6-master ( #2604 )
...
Signed-off-by: Mykola Faryma <mykolaf@mellanox.com>
2019-02-26 13:00:11 +02:00
Mykola F
8300408b47
[submodule] update mellanox hw-mgmgt pointer (V.2.0.0061) ( #2592 )
...
Signed-off-by: Mykola Faryma <mykolaf@mellanox.com>
2019-02-22 16:54:55 +02:00
Mykola F
da3c0814b6
[submodule] Update the Mellanox hw-mgmt pointer (back to 344e819) ( #2588 )
...
Signed-off-by: Mykola Faryma <mykolaf@mellanox.com>
2019-02-19 18:03:26 +02:00
Ying Xie
0846654585
[sai and sairedis] advance sairedis sub-module and upgrade to matching Broadcom SAI build ( #2488 )
...
* [Broadcom SAI] upgrade Broadcom SAI to 3.3.4.3m-3
This is SAI 3.3.4.3m-3 compiled with SAI header file at commit ID
6ad3382217ec22f64cd268faefcbc2ff7caba4fd of SAI repo.
Signed-off-by: Ying Xie <ying.xie@microsoft.com>
* change libsaithrift version to 0.9.4
Signed-off-by: Guohan Lu <gulv@microsoft.com>
* [submodule]: update swss, sairedis, swss-common, sonic-utilities
swss
* a6d60f2 2019-02-15 | Create egress ACL table group during the PFCWD stats list installment (#787 ) (HEAD, origin/master, origin/HEAD) [Wenda Ni]
* 52de963 2019-02-15 | [fpmsyncd] Add VNET routes support (#772 ) [Wei Bai]
* d27f49e 2019-02-13 | Move warm_restart enable/disable config to stateDB WARM_RESTART_ENABLE_TABLE (#786 ) [Jipan Yang]
* 6363985 2019-02-08 | [vstest]: Potential fix for timing issue in warm_reboot's routing UT (#788 ) [Rodny Molina]
* 6d5424d 2019-02-07 | VNet/Vxlan delete handling (#766 ) [Prince Sunny]
* d680ce2 2019-02-07 | [neighsyncd] increase neighbor syncd restore timeout to 110 seconds (#745 ) [Ying Xie]
* b78cc8d 2019-02-01 | support 8 lanes for a physical port (#778 ) [lguohan]
* 73b620c 2019-02-01 | Increase the watermark polling interval to 10s (#777 ) [Wenda Ni]
* a2b987b 2019-02-01 | [vstest]: fix test_speed.py (#780 ) [lguohan]
* cef4bd0 2019-02-01 | [vstest]: fix test_port_an_warm.py test (#779 ) [lguohan]
* 9f20eda 2019-02-01 | fix a unstable swss egress acl test (#776 ) [Kebo Liu]
* 316ae6c 2019-01-30 | portsorch ports init done flag should means buffer, autoneg, speed, m… (#747 ) [Jipan Yang]
* 4280036 2019-01-30 | [teammgrd] Fix inconsistent port admin status (#755 ) [Jipan Yang]
* cf12bdf 2019-01-30 | Remove AclTableGroup upon removal of port/lag/vlan (#751 ) [Jipan Yang]
* 5779c1a 2019-01-29 | [aclorch] Remove L4 port range support limitation on egress ACL table and add new SWSS virtual test. (#741 ) [Kebo Liu]
* 36e85eb 2019-01-29 | On a routing vlan, the neighbor entry in the /31 subnet is not added to hardware (#771 ) [Kiran Kumar Kella]
* 882ccc6 2019-01-24 | [vnetorch] Change logic for adding VNet interface (#761 ) [Marian Pritsak]
* f637557 2019-01-25 | [vrfmgrd] Fix VRF is not set to VRF_TABLE in APP_DB correctly (#768 ) [yorke]
* e84a6ab 2019-01-24 | use sai_stat_id_t for new SAI header file (#769 ) [lguohan]
sairedis
* d685e35 2019-02-15 | Add support for fdb_event MOVE and check fdb event oids (#420 ) (HEAD, origin/master, origin/HEAD) [Kamil Cudnik]
* 2b91013 2019-02-15 | [vslib] add missing port attributes for virtual switch (#419 ) [Stepan Blyshchak]
* dcc8688 2019-02-14 | Add more specific logic for ingress ACL and buffer profile (#421 ) [Kamil Cudnik]
* c0b39ea 2019-02-12 | Move warm_restart enable/disable config to stateDB WARM_RESTART_ENABLE_TABLE (#418 ) [Jipan Yang]
* ab35dfa 2019-02-11 | Add support for vlan tagged frames in virtual switch (#417 ) [Kamil Cudnik]
* 145ea44 2019-02-02 | [flex counter] handle router interface stats (#410 ) [Mykola F]
* c03d639 2019-02-02 | Add more information on failed map sizes (#416 ) [Kamil Cudnik]
* 29f1e3c 2019-01-31 | Update SAI pointer (#414 ) [Marian Pritsak]
* c0a948d 2019-01-30 | Add WRED specific comparison logic (#413 ) [Kamil Cudnik]
* 1b6a661 2019-01-24 | install SAI extension header files into /usr/include/sai (#412 ) [lguohan]
* 849525a 2019-01-24 | Initialize notification queue pointer before switch create (#411 ) [Kamil Cudnik]
* 02d92f1 2019-01-23 | Add log info for not matching SG/IPG/QUEUES (#409 ) [Kamil Cudnik]
* 8793562 2019-01-18 | Update SAI pointer to latest master (#408 ) [Marian Pritsak]
swss-common
* ec04a5a 2019-02-14 | Add support for WarmStart::setDataCheckState() (#242 ) [Jipan Yang]
* 56bd73f 2019-02-13 | Force only supported commands on consumer table (#261 ) [Kamil Cudnik]
* 414de0f 2019-02-12 | Move warm_restart enable/disable config to stateDB WARM_RESTART_ENABLE_TABLE (#260 ) [Jipan Yang]
* 88de725 2019-02-05 | [pyext] enable types in stdint.h (#259 ) [Ying Xie]
* f457ae8 2019-02-05 | Optimized ProducerStateTable set/del notification processing to avoid… (#257 ) [Jipan Yang]
* e5286fd 2019-01-30 | [rif counters] Rif counter schema update (#256 ) [Mykola F]
sonic-utilities
* b44b462 2019-02-14 | Move warm_restart enable/disable config to stateDB WARM_RESTART_ENABL… (#458 ) (HEAD, origin/master, origin/HEAD) [Jipan Yang]
* e856b8b 2019-02-11 | [aclshow] output only counters per table/rule (#442 ) [Roman Kachur]
Signed-off-by: Guohan Lu <gulv@microsoft.com>
* [mlnx] update mellanox sai
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2019-02-16 10:14:18 -08: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
Kevin(Shengkai) Wang
a9d2bf37e1
[mellanox] Implement PSU related APIs based on the new platform API ( #2460 )
...
* Implement part of PSU related APIs including get_status(), get_presence()
Signed-off-by: Kevin Wang <kevinw@mellanox.com>
2019-02-13 15:21:07 +02:00
lguohan
f008fc8a35
[docker-syncd-mlnx-rpc]: fix mellanox syncd docker build ( #2551 )
...
Signed-off-by: Guohan Lu <gulv@microsoft.com>
2019-02-11 21:28:55 -08:00
lguohan
f20665008c
[build]: put stretch debian packages under target/debs/stretch/ ( #2519 )
...
* [build]: put stretch debian packages under target/debs/stretch/
* in stretch build phase, all debian packages built in that stage are placed under target/debs/stretch directory.
* for python-based debian packages, since they are really the same for jessie and stretch, they are placed under target/python-debs directory.
Signed-off-by: Guohan Lu <gulv@microsoft.com>
2019-02-04 22:06:37 -08:00
lguohan
4ccd35bc25
[kernel]: update sonic kernel to 4.9.0-8-2 ( #2468 )
...
* [kernel]: update sonic kernel to 4.9.0-8-2
* 3b2114d 2019-01-20 | [sonic-linux-kernel] add udp_l3mdev_accept kernel upstream patch (#70 ) (HEAD, azure/master) [Harish Venkatraman]
* 37734aa 2019-01-10 | L3mdev cgroup (#73 ) [lguohan]
* d631eeb 2018-12-15 | yet another uart race condition fix (#75 ) [lguohan]
Signed-off-by: Guohan Lu <gulv@microsoft.com>
* Update Mellanox SDK
Signed-off-by: Guohan Lu <gulv@microsoft.com>
* Update arista platform driver to match 4.9.0-8-2 kernel
Signed-off-by: Guohan Lu <gulv@microsoft.com>
2019-01-25 00:46:09 -08:00
stepanblyschak
20dfb03359
[mellanox|ffb] ISSU version check ( #2437 )
...
* Revert "[mellanox]: Integrate CRIU tool to SYNCD docker container (#2061 )"
This reverts commit 514b38f348
.
Conflicts:
platform/mellanox/docker-syncd-mlnx.mk
sonic-slave/Dockerfile
* [mellanox|ffb] remove unused scripts
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
* [mellanox|ffb] ISSU version check
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
* [mlnx|ffb] remove extra ';'
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2019-01-17 14:41:32 -08:00
stepanblyschak
a58b606df0
[mellanox] Update SDK to 4.3.0134 ( #2447 )
...
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2019-01-15 11:27:24 -08:00
stepanblyschak
ff526dd103
[mellanox|ffb] use system level warm reboot for Mellanox fastfast boot ( #2374 )
...
* [mellanox|ffb] use system level warm reboot for Mellanox fastfast boot
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
* [mellanox|ffb] add comments for mellanox start/stop drivers section
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2019-01-10 14:09:03 -08:00
stepanblyschak
ae190725ff
[mellanox] Update SDK to 4.3.0132 ( #2430 )
...
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2019-01-09 21:11:03 -08:00
stepanblyschak
363951fe0c
[mellanox] update SAI,SDK,FW pointers ( #2410 )
...
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2019-01-03 17:17:56 +02:00
Volodymyr Samotiy
011ede9b9f
[Mellanox]: Update SDK for 4.9.0-8 kernel ( #2383 )
...
Signed-off-by: Volodymyr Samotiy <volodymyrs@mellanox.com>
2018-12-14 13:24:16 -08:00
Volodymyr Samotiy
75b41233d2
[Mellanox|FFB]: Add support for Mellanox fast-fast boot ( #2294 )
...
* [mlnx|ffb] Add support for mellanox fast-fast boot
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
* [mlnx|ffb]: Add support of "config end" event for mlnx fast-fast boot
Signed-off-by: Volodymyr Samotiy <volodymyrs@mellanox.com>
* [Mellanox|FFB]: Fix review comments
* Change naming convention from "fast-fast" to "fastfast"
Signed-off-by: Volodymyr Samotiy <volodymyrs@mellanox.com>
2018-12-04 10:11:24 -08:00
Volodymyr Samotiy
de0238d673
[Mellanox]: Update SAI/SDK/FW pointers ( #2324 )
...
* SAI 1.13.1
* SDK 4.2.9108
* FW 13.1910.0608
Signed-off-by: Volodymyr Samotiy <volodymyrs@mellanox.com>
2018-11-30 14:37:03 -08:00
lguohan
9f6f3e4046
[docker-saiserver]: build docker-saiserver ( #2244 )
...
* build docker-saiserver
Signed-off-by: Guohan Lu <gulv@microsoft.com>
* add docker saiserver mlnx/bfn/cavm
* set nephos to 1.3.5
Signed-off-by: Guohan Lu <gulv@microsoft.com>
2018-11-14 01:15:31 -08:00
Andriy Moroz
3aa321480a
[mellanox]: Update MFT to v4.9.0 ( #2232 )
...
Signed-off-by: Andriy Moroz <c_andriym@mellanox.com>
2018-11-07 21:58:59 -08:00
Andriy Moroz
1ab23016fb
[mellanox]: Update SDK to v4.2.9102 ( #2204 )
...
Signed-off-by: Andriy Moroz <c_andriym@mellanox.com>
2018-10-28 20:20:15 -07:00
lguohan
9078377028
[build]: install debug symbols packages when INSTALL_DEBUG_TOOLS=y ( #2175 )
...
[build]: install debug symbols packages when INSTALL_DEBUG_TOOLS=y
2018-10-21 17:20:27 -07:00
Kevin(Shengkai) Wang
ea4b4bd650
[mellanox]: Update recipe for hw-mgmt according to latest changes ( #2128 )
...
Update the hw-mgmt to latest release V.2.0.0060.
Update the related files according to the latest hw-mgmt.
Signed-off-by: Kevin Wang <kevinw@mellanox.com>
2018-10-08 18:33:44 -07:00
Nazarii Hnydyn
a1715a15e3
Fixed FW upgrade sequence. ( #2111 )
...
* Fixed FW upgrade sequence.
* Removed code duplication.
2018-10-05 10:33:40 -07:00
stepanblyschak
22f631ad13
[mellanox] SAI pointer update ( #2079 )
...
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2018-09-25 11:05:45 -07:00
Volodymyr Samotiy
514b38f348
[mellanox]: Integrate CRIU tool to SYNCD docker container ( #2061 )
...
Signed-off-by: Volodymyr Samotiy <volodymyrs@mellanox.com>
2018-09-19 13:14:10 -07:00
Marian Pritsak
51a8d8ecfa
[docker-orchagent]: Upgrade iproute2 to v4.9 ( #2052 )
...
Signed-off-by: Marian Pritsak <marianp@mellanox.com>
2018-09-16 17:10:03 -07:00
lguohan
860de856a8
[rsyslog]: use # to separate container name and program name in syslog message for syncd containers ( #2031 )
...
previous commit f3ca7c422f
missed syncd containers
Signed-off-by: Guohan Lu <gulv@microsoft.com>
2018-09-11 14:57:29 -07:00