Squash merge v1.0.3 branch onto master

This commit is contained in:
Qi Luo 2017-08-01 20:51:10 +00:00
parent b6efe438b5
commit 618b25f18c
20 changed files with 44 additions and 59 deletions

View File

@ -11,17 +11,6 @@ rm -f /var/run/rsyslogd.pid
supervisorctl start rsyslogd supervisorctl start rsyslogd
# Wait for syncd to start
while true; do
RESULT=$(echo -en "SELECT 1\nHLEN HIDDEN" | redis-cli | sed -n 2p)
if [ "$RESULT" != "0" ]; then
break
fi
sleep 1
done
supervisorctl start orchagent supervisorctl start orchagent
supervisorctl start portsyncd supervisorctl start portsyncd

View File

@ -40,17 +40,18 @@ HWSKU=`sonic-cfggen -m /etc/sonic/minigraph.xml -v minigraph_hwsku`
SWSSCONFIG_ARGS="00-copp.config.json ipinip.json mirror.json " SWSSCONFIG_ARGS="00-copp.config.json ipinip.json mirror.json "
if [ "$HWSKU" == "Force10-S6000" ]; then # FIXME: Temporarily disable QOS/buffer configurations for further debugging
SWSSCONFIG_ARGS+="td2.32ports.buffers.json td2.32ports.qos.json " # if [ "$HWSKU" == "Force10-S6000" ]; then
elif [ "$HWSKU" == "Force10-S6000-Q32" ]; then # SWSSCONFIG_ARGS+="td2.32ports.buffers.json td2.32ports.qos.json "
SWSSCONFIG_ARGS+="td2.32ports.buffers.json td2.32ports.qos.json " # elif [ "$HWSKU" == "Force10-S6000-Q32" ]; then
elif [ "$HWSKU" == "Arista-7050-QX32" ]; then # SWSSCONFIG_ARGS+="td2.32ports.buffers.json td2.32ports.qos.json "
SWSSCONFIG_ARGS+="td2.32ports.buffers.json td2.32ports.qos.json " # elif [ "$HWSKU" == "Arista-7050-QX32" ]; then
elif [ "$HWSKU" == "ACS-MSN2700" ]; then # SWSSCONFIG_ARGS+="td2.32ports.buffers.json td2.32ports.qos.json "
SWSSCONFIG_ARGS+="msn2700.32ports.buffers.json msn2700.32ports.qos.json " # elif [ "$HWSKU" == "ACS-MSN2700" ]; then
elif [ "$HWSKU" == "ACS-MSN2740" ]; then # SWSSCONFIG_ARGS+="msn2700.32ports.buffers.json msn2700.32ports.qos.json "
SWSSCONFIG_ARGS+="msn2740.32ports.buffers.json msn2740.32ports.qos.json " # elif [ "$HWSKU" == "ACS-MSN2740" ]; then
fi # SWSSCONFIG_ARGS+="msn2740.32ports.buffers.json msn2740.32ports.qos.json "
# fi
for file in $SWSSCONFIG_ARGS; do for file in $SWSSCONFIG_ARGS; do
swssconfig /etc/swss/config.d/$file swssconfig /etc/swss/config.d/$file

View File

@ -18,6 +18,7 @@ ExecStartPre=/usr/bin/docker exec database redis-cli -n 1 FLUSHDB
ExecStartPre=/usr/bin/docker exec database redis-cli -n 2 FLUSHDB ExecStartPre=/usr/bin/docker exec database redis-cli -n 2 FLUSHDB
{% if sonic_asic_platform == 'mellanox' %} {% if sonic_asic_platform == 'mellanox' %}
Environment=FAST_BOOT=1
TimeoutStartSec=3min TimeoutStartSec=3min
ExecStartPre=/usr/bin/mst start ExecStartPre=/usr/bin/mst start
ExecStartPre=/usr/bin/mlnx-fw-upgrade.sh ExecStartPre=/usr/bin/mlnx-fw-upgrade.sh

View File

@ -4,4 +4,4 @@ DOCKER_PTF_BRCM = docker-ptf-brcm.gz
$(DOCKER_PTF_BRCM)_PATH = $(DOCKERS_PATH)/docker-ptf-saithrift $(DOCKER_PTF_BRCM)_PATH = $(DOCKERS_PATH)/docker-ptf-saithrift
$(DOCKER_PTF_BRCM)_DEPENDS += $(PYTHON_SAITHRIFT_BRCM) $(DOCKER_PTF_BRCM)_DEPENDS += $(PYTHON_SAITHRIFT_BRCM)
$(DOCKER_PTF_BRCM)_LOAD_DOCKERS += $(DOCKER_PTF) $(DOCKER_PTF_BRCM)_LOAD_DOCKERS += $(DOCKER_PTF)
SONIC_DOCKER_IMAGES += $(DOCKER_PTF_BRCM) #SONIC_DOCKER_IMAGES += $(DOCKER_PTF_BRCM)

View File

@ -4,4 +4,4 @@ LIBSAITHRIFT_DEV_BRCM = libsaithrift-dev_0.9.4_amd64.deb
$(LIBSAITHRIFT_DEV_BRCM)_SRC_PATH = $(SRC_PATH)/SAI $(LIBSAITHRIFT_DEV_BRCM)_SRC_PATH = $(SRC_PATH)/SAI
$(LIBSAITHRIFT_DEV_BRCM)_DEPENDS += $(LIBTHRIFT) $(LIBTHRIFT_DEV) $(THRIFT_COMPILER) $(BRCM_SAI) $(BRCM_SAI_DEV) $(LIBSAITHRIFT_DEV_BRCM)_DEPENDS += $(LIBTHRIFT) $(LIBTHRIFT_DEV) $(THRIFT_COMPILER) $(BRCM_SAI) $(BRCM_SAI_DEV)
$(LIBSAITHRIFT_DEV_BRCM)_RDEPENDS += $(LIBTHRIFT) $(BRCM_SAI) $(LIBSAITHRIFT_DEV_BRCM)_RDEPENDS += $(LIBTHRIFT) $(BRCM_SAI)
SONIC_DPKG_DEBS += $(LIBSAITHRIFT_DEV_BRCM) #SONIC_DPKG_DEBS += $(LIBSAITHRIFT_DEV_BRCM)

View File

@ -3,4 +3,4 @@
PYTHON_SAITHRIFT_BRCM = python-saithrift_0.9.4_amd64.deb PYTHON_SAITHRIFT_BRCM = python-saithrift_0.9.4_amd64.deb
$(PYTHON_SAITHRIFT_BRCM)_SRC_PATH = $(SRC_PATH)/SAI $(PYTHON_SAITHRIFT_BRCM)_SRC_PATH = $(SRC_PATH)/SAI
$(PYTHON_SAITHRIFT_BRCM)_DEPENDS += $(BRCM_SAI_DEV) $(THRIFT_COMPILER) $(PYTHON_THRIFT) $(LIBTHRIFT_DEV) $(PYTHON_SAITHRIFT_BRCM)_DEPENDS += $(BRCM_SAI_DEV) $(THRIFT_COMPILER) $(PYTHON_THRIFT) $(LIBTHRIFT_DEV)
SONIC_DPKG_DEBS += $(PYTHON_SAITHRIFT_BRCM) #SONIC_DPKG_DEBS += $(PYTHON_SAITHRIFT_BRCM)

View File

@ -25,12 +25,10 @@ $(DSSERVE)_URL = "https://sonicstorage.blob.core.windows.net/packages/20170518/d
SONIC_ONLINE_FILES += $(BCMCMD) $(DSSERVE) SONIC_ONLINE_FILES += $(BCMCMD) $(DSSERVE)
SONIC_ALL += $(SONIC_ONE_IMAGE) $(SONIC_ONE_ABOOT_IMAGE) \ SONIC_ALL += $(SONIC_ONE_IMAGE) $(SONIC_ONE_ABOOT_IMAGE) \
$(DOCKER_FPM) \ $(DOCKER_FPM)
$(DOCKER_PTF_BRCM) \
$(DOCKER_SYNCD_BRCM_RPC)
# Inject brcm sai into sairedis # Inject brcm sai into sairedis
$(LIBSAIREDIS)_DEPENDS += $(BRCM_OPENNSL) $(BRCM_SAI) $(BRCM_SAI_DEV) $(LIBSAITHRIFT_DEV_BRCM) $(LIBSAIREDIS)_DEPENDS += $(BRCM_OPENNSL) $(BRCM_SAI) $(BRCM_SAI_DEV) #$(LIBSAITHRIFT_DEV_BRCM)
# Runtime dependency on brcm sai is set only for syncd # Runtime dependency on brcm sai is set only for syncd
$(SYNCD)_RDEPENDS += $(BRCM_OPENNSL) $(BRCM_SAI) $(SYNCD)_RDEPENDS += $(BRCM_OPENNSL) $(BRCM_SAI)

View File

@ -1,9 +1,11 @@
BRCM_SAI = libsaibcm_2.1.5.1-16-20170712202323.49_amd64.deb BRCM_SAI = libsaibcm_3.0.2.2_amd64.deb
$(BRCM_SAI)_URL = "https://sonicstorage.blob.core.windows.net/packages/libsaibcm_2.1.5.1-16-20170712202323.49_amd64.deb?sv=2015-04-05&sr=b&sig=jsPXiAoSyKqZ1SmiyeEj73W8tRlri8ysExnWvc%2BWSi4%3D&se=2031-03-21T22%3A49%3A32Z&sp=r" # TODO: upload new SAI build to blob
$(BRCM_SAI)_URL = "https://sonicstorage.blob.core.windows.net/packages/libsaibcm_3.0.2.2_amd64.deb"
BRCM_SAI_DEV = libsaibcm-dev_2.1.5.1-16-20170712202323.49_amd64.deb BRCM_SAI_DEV = libsaibcm-dev_3.0.2.2_amd64.deb
$(eval $(call add_derived_package,$(BRCM_SAI),$(BRCM_SAI_DEV))) $(eval $(call add_derived_package,$(BRCM_SAI),$(BRCM_SAI_DEV)))
$(BRCM_SAI_DEV)_URL = "https://sonicstorage.blob.core.windows.net/packages/libsaibcm-dev_2.1.5.1-16-20170712202323.49_amd64.deb?sv=2015-04-05&sr=b&sig=azYZkCi%2FFGS4eELKhIozOok3qimfH%2FjdXlz%2BS2MRBco%3D&se=2031-03-21T22%3A49%3A57Z&sp=r" # TODO: upload new SAI build to blob
$(BRCM_SAI_DEV)_URL = "https://sonicstorage.blob.core.windows.net/packages/libsaibcm-dev_3.0.2.2_amd64.deb"
SONIC_ONLINE_DEBS += $(BRCM_SAI) $(BRCM_SAI_DEV) SONIC_ONLINE_DEBS += $(BRCM_SAI) $(BRCM_SAI_DEV)
$(BRCM_SAI)_DEPENDS += $(BRCM_OPENNSL) $(BRCM_SAI)_DEPENDS += $(BRCM_OPENNSL)

View File

@ -1,7 +1,9 @@
BRCM_OPENNSL = libopennsl_3.2.2.2-10-20170707181826.44_amd64.deb BRCM_OPENNSL = libopennsl_3.2.3.1_amd64.deb
$(BRCM_OPENNSL)_URL = "https://sonicstorage.blob.core.windows.net/packages/libopennsl_3.2.2.2-10-20170707181826.44_amd64.deb?sv=2015-04-05&sr=b&sig=hc4PbMQvfOu7p7E0MR1kn0OA6vu%2BPIdYOLeDU9hPJMY%3D&se=2031-03-19T21%3A20%3A15Z&sp=r" # TODO: upload new SDK build to blob
$(BRCM_OPENNSL)_URL = "https://sonicstorage.blob.core.windows.net/packages/libopennsl_3.2.3.1+0~20170605184634.7~1.gbp4a0717_amd64.deb"
BRCM_OPENNSL_KERNEL = opennsl-modules-3.16.0-4-amd64_3.2.2.2-10-20170707181826.44_amd64.deb BRCM_OPENNSL_KERNEL = opennsl-modules-3.16.0-4-amd64_3.2.3.1_amd64.deb
$(BRCM_OPENNSL_KERNEL)_URL = "https://sonicstorage.blob.core.windows.net/packages/opennsl-modules-3.16.0-4-amd64_3.2.2.2-10-20170707181826.44_amd64.deb?sv=2015-04-05&sr=b&sig=xtGLlxX5SspadCxaObMGGVMQliPGrTkuN0T6A4wLETA%3D&se=2031-03-19T21%3A21%3A43Z&sp=r" # TODO: upload new SDK build to blob
$(BRCM_OPENNSL_KERNEL)_URL = "https://sonicstorage.blob.core.windows.net/packages/opennsl-modules-3.16.0-4-amd64_3.2.3.1+0~20170605184634.7~1.gbp4a0717_amd64.deb"
SONIC_ONLINE_DEBS += $(BRCM_OPENNSL) $(BRCM_OPENNSL_KERNEL) SONIC_ONLINE_DEBS += $(BRCM_OPENNSL) $(BRCM_OPENNSL_KERNEL)

View File

@ -4,4 +4,4 @@ DOCKER_PTF_MLNX = docker-ptf-mlnx.gz
$(DOCKER_PTF_MLNX)_PATH = $(DOCKERS_PATH)/docker-ptf-saithrift $(DOCKER_PTF_MLNX)_PATH = $(DOCKERS_PATH)/docker-ptf-saithrift
$(DOCKER_PTF_MLNX)_DEPENDS += $(PYTHON_SAITHRIFT_MLNX) $(DOCKER_PTF_MLNX)_DEPENDS += $(PYTHON_SAITHRIFT_MLNX)
$(DOCKER_PTF_MLNX)_LOAD_DOCKERS += $(DOCKER_PTF) $(DOCKER_PTF_MLNX)_LOAD_DOCKERS += $(DOCKER_PTF)
SONIC_DOCKER_IMAGES += $(DOCKER_PTF_MLNX) #SONIC_DOCKER_IMAGES += $(DOCKER_PTF_MLNX)

View File

@ -1,6 +1,6 @@
# mellanox firmware # mellanox firmware
MLNX_FW = fw-SPC-rel-13_1224_0140-EVB.mfa MLNX_FW = fw-SPC-rel-13_1400_0126-EVB.mfa
$(MLNX_FW)_URL = $(MLNX_SDK_BASE_URL)/$(MLNX_FW) $(MLNX_FW)_URL = $(MLNX_SDK_BASE_URL)/$(MLNX_FW)
SONIC_ONLINE_FILES += $(MLNX_FW) SONIC_ONLINE_FILES += $(MLNX_FW)

View File

@ -4,4 +4,4 @@ LIBSAITHRIFT_DEV_MLNX = libsaithrift-dev_0.9.4_amd64.deb
$(LIBSAITHRIFT_DEV_MLNX)_SRC_PATH = $(SRC_PATH)/SAI $(LIBSAITHRIFT_DEV_MLNX)_SRC_PATH = $(SRC_PATH)/SAI
$(LIBSAITHRIFT_DEV_MLNX)_DEPENDS += $(LIBTHRIFT) $(LIBTHRIFT_DEV) $(THRIFT_COMPILER) $(MLNX_SAI) $(MLNX_SAI_DEV) $(LIBSAITHRIFT_DEV_MLNX)_DEPENDS += $(LIBTHRIFT) $(LIBTHRIFT_DEV) $(THRIFT_COMPILER) $(MLNX_SAI) $(MLNX_SAI_DEV)
$(LIBSAITHRIFT_DEV_MLNX)_RDEPENDS += $(LIBTHRIFT) $(MLNX_SAI) $(LIBSAITHRIFT_DEV_MLNX)_RDEPENDS += $(LIBTHRIFT) $(MLNX_SAI)
SONIC_DPKG_DEBS += $(LIBSAITHRIFT_DEV_MLNX) #SONIC_DPKG_DEBS += $(LIBSAITHRIFT_DEV_MLNX)

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
query_retry_count_max="10" query_retry_count_max="10"
required_fw_version="13.1224.0140" required_fw_version="13.1400.0126"
fw_file=/etc/mlnx/fw-SPC.mfa fw_file=/etc/mlnx/fw-SPC.mfa
run_or_fail() { run_or_fail() {

View File

@ -1,7 +1,7 @@
# Mellanox SAI # Mellanox SAI
MLNX_SAI_VERSION = 161120 MLNX_SAI_VERSION = SAIRel1.8.2-master
MLNX_SAI_REVISION = ba3ccd6de8e5b82fa2cdfc30f9b8b1f1882bfede MLNX_SAI_REVISION = 852ef62c021dad6a1fec932a9c89df0e7f19460e
export MLNX_SAI_VERSION MLNX_SAI_REVISION export MLNX_SAI_VERSION MLNX_SAI_REVISION

View File

@ -3,4 +3,4 @@
PYTHON_SAITHRIFT_MLNX = python-saithrift_0.9.4_amd64.deb PYTHON_SAITHRIFT_MLNX = python-saithrift_0.9.4_amd64.deb
$(PYTHON_SAITHRIFT_MLNX)_SRC_PATH = $(SRC_PATH)/SAI $(PYTHON_SAITHRIFT_MLNX)_SRC_PATH = $(SRC_PATH)/SAI
$(PYTHON_SAITHRIFT_MLNX)_DEPENDS += $(MLNX_SAI_DEV) $(MLNX_SAI) $(THRIFT_COMPILER) $(PYTHON_THRIFT) $(LIBTHRIFT_DEV) $(PYTHON_SAITHRIFT_MLNX)_DEPENDS += $(MLNX_SAI_DEV) $(MLNX_SAI) $(THRIFT_COMPILER) $(PYTHON_THRIFT) $(LIBTHRIFT_DEV)
SONIC_DPKG_DEBS += $(PYTHON_SAITHRIFT_MLNX) #SONIC_DPKG_DEBS += $(PYTHON_SAITHRIFT_MLNX)

View File

@ -12,12 +12,10 @@ include $(PLATFORM_PATH)/python-saithrift.mk
include $(PLATFORM_PATH)/docker-ptf-mlnx.mk include $(PLATFORM_PATH)/docker-ptf-mlnx.mk
SONIC_ALL += $(SONIC_ONE_IMAGE) \ SONIC_ALL += $(SONIC_ONE_IMAGE) \
$(DOCKER_FPM) \ $(DOCKER_FPM)
$(DOCKER_PTF_MLNX) \
$(DOCKER_SYNCD_MLNX_RPC)
# Inject mlnx sai into sairedis # Inject mlnx sai into sairedis
$(LIBSAIREDIS)_DEPENDS += $(MLNX_SAI) $(LIBSAITHRIFT_DEV_MLNX) $(LIBSAIREDIS)_DEPENDS += $(MLNX_SAI) #$(LIBSAITHRIFT_DEV_MLNX)
# Runtime dependency on mlnx sai is set only for syncd # Runtime dependency on mlnx sai is set only for syncd
$(SYNCD)_RDEPENDS += $(MLNX_SAI) $(SYNCD)_RDEPENDS += $(MLNX_SAI)

View File

@ -1,5 +1,5 @@
MLNX_SDK_BASE_URL = https://github.com/Mellanox/SAI-Implementation/raw/ba3ccd6de8e5b82fa2cdfc30f9b8b1f1882bfede/sdk MLNX_SDK_BASE_URL = https://github.com/Mellanox/SAI-Implementation/raw/sonicv1.0.2/sdk
MLNX_SDK_VERSION = 4.2.3130 MLNX_SDK_VERSION = 4.2.5008
MLNX_SDK_RDEBS += $(APPLIBS) $(IPROUTE2) $(SX_ACL_RM) $(SX_COMPLIB) \ MLNX_SDK_RDEBS += $(APPLIBS) $(IPROUTE2) $(SX_ACL_RM) $(SX_COMPLIB) \
$(SX_EXAMPLES) $(SX_GEN_UTILS) $(SX_SCEW) $(SX_SDN_HAL) \ $(SX_EXAMPLES) $(SX_GEN_UTILS) $(SX_SCEW) $(SX_SDN_HAL) \
$(SXD_LIBS) $(TESTX) $(SXD_LIBS) $(TESTX)
@ -20,8 +20,6 @@ $(eval $(call add_derived_package,$(IPROUTE2),$(IPROUTE2_DEV)))
SX_COMPLIB = sx-complib_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb SX_COMPLIB = sx-complib_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
SX_COMPLIB_DEV = sx-complib-dev_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb SX_COMPLIB_DEV = sx-complib-dev_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
$(eval $(call add_derived_package,$(SX_COMPLIB),$(SX_COMPLIB_DEV))) $(eval $(call add_derived_package,$(SX_COMPLIB),$(SX_COMPLIB_DEV)))
SX_COMPLIB_DEV_STATIC = sx-complib-dev-static_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
$(eval $(call add_derived_package,$(SX_COMPLIB),$(SX_COMPLIB_DEV_STATIC)))
SX_EXAMPLES = sx-examples_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb SX_EXAMPLES = sx-examples_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
$(SX_EXAMPLES)_DEPENDS += $(APPLIBS) $(SX_SCEW) $(SXD_LIBS) $(SX_EXAMPLES)_DEPENDS += $(APPLIBS) $(SX_SCEW) $(SXD_LIBS)
SX_EXAMPLES_DEV = sx-examples-dev_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb SX_EXAMPLES_DEV = sx-examples-dev_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
@ -33,13 +31,9 @@ $(eval $(call add_derived_package,$(SX_GEN_UTILS),$(SX_GEN_UTILS_DEV)))
SX_SCEW = sx-scew_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb SX_SCEW = sx-scew_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
SX_SCEW_DEV = sx-scew-dev_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb SX_SCEW_DEV = sx-scew-dev_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
$(eval $(call add_derived_package,$(SX_SCEW),$(SX_SCEW_DEV))) $(eval $(call add_derived_package,$(SX_SCEW),$(SX_SCEW_DEV)))
SX_SCEW_DEV_STATIC = sx-scew-dev-static_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
$(eval $(call add_derived_package,$(SX_SCEW),$(SX_SCEW_DEV_STATIC)))
SXD_LIBS = sxd-libs_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb SXD_LIBS = sxd-libs_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
SXD_LIBS_DEV = sxd-libs-dev_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb SXD_LIBS_DEV = sxd-libs-dev_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
$(eval $(call add_derived_package,$(SXD_LIBS),$(SXD_LIBS_DEV))) $(eval $(call add_derived_package,$(SXD_LIBS),$(SXD_LIBS_DEV)))
SXD_LIBS_DEV_STATIC = sxd-libs-dev-static_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
$(eval $(call add_derived_package,$(SXD_LIBS),$(SXD_LIBS_DEV_STATIC)))
#packages that are required for runtime only #packages that are required for runtime only
PYTHON_SDK_API = python-sdk-api_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb PYTHON_SDK_API = python-sdk-api_1.mlnx.$(MLNX_SDK_VERSION)_amd64.deb
$(PYTHON_SDK_API)_DEPENDS += $(APPLIBS) $(SXD_LIBS) $(PYTHON_SDK_API)_DEPENDS += $(APPLIBS) $(SXD_LIBS)

@ -1 +1 @@
Subproject commit b865912105f2f80ee2516899e6367f863d5f6235 Subproject commit f0a32153728f7e2de6d4624a1d352ae85c8a4406

@ -1 +1 @@
Subproject commit 27c49a0bf3a71556b553aa30fe2a7c1cdb996142 Subproject commit 72cd3f6c4c174d7341f95dbd3b5ecc4f5debf362

@ -1 +1 @@
Subproject commit 4f917f2cc345c54d1bf9d9f01d96e4c01071ac9a Subproject commit 2716292fdd78dcbc8587a2c8d192d10465ec7225