Skip to content

Commit 0921211

Browse files
stepanblyschakyxieca
authored andcommitted
[mellanox|ffb] ISSU version check (#2437)
* Revert "[mellanox]: Integrate CRIU tool to SYNCD docker container (#2061)" This reverts commit 514b38f. Conflicts: platform/mellanox/docker-syncd-mlnx.mk sonic-slave/Dockerfile * [mellanox|ffb] remove unused scripts Signed-off-by: Stepan Blyschak <[email protected]> * [mellanox|ffb] ISSU version check Signed-off-by: Stepan Blyschak <[email protected]> * [mlnx|ffb] remove extra ';' Signed-off-by: Stepan Blyschak <[email protected]>
1 parent 81467ae commit 0921211

File tree

17 files changed

+46
-271
lines changed

17 files changed

+46
-271
lines changed

files/build_templates/sonic_debian_extension.j2

+1-1
Original file line numberDiff line numberDiff line change
@@ -319,9 +319,9 @@ sudo cp {{src}} $FILESYSTEM_ROOT/{{dst}}
319319
{% if sonic_asic_platform == "mellanox" %}
320320
sudo mkdir -p $FILESYSTEM_ROOT/etc/mlnx/
321321
sudo cp target/files/$MLNX_FW_FILE $FILESYSTEM_ROOT/etc/mlnx/fw-SPC.mfa
322+
sudo cp target/files/$ISSU_VERSION_FILE $FILESYSTEM_ROOT/etc/mlnx/issu-version
322323
sudo cp target/files/$MLNX_FFB_SCRIPT $FILESYSTEM_ROOT/usr/bin/mlnx-ffb.sh
323324
j2 platform/mellanox/mlnx-fw-upgrade.j2 | sudo tee $FILESYSTEM_ROOT/usr/bin/mlnx-fw-upgrade.sh
324-
j2 platform/mellanox/sdk-version.j2 | sudo tee $FILESYSTEM_ROOT/etc/mlnx/sdk-version
325325
sudo chmod 755 $FILESYSTEM_ROOT/usr/bin/mlnx-fw-upgrade.sh
326326
{% endif %}
327327

platform/mellanox/criu.mk

-8
This file was deleted.

platform/mellanox/criu/Makefile

-14
This file was deleted.

platform/mellanox/docker-syncd-mlnx-rpc.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
DOCKER_SYNCD_MLNX_RPC = docker-syncd-mlnx-rpc.gz
44
$(DOCKER_SYNCD_MLNX_RPC)_PATH = $(PLATFORM_PATH)/docker-syncd-mlnx-rpc
5-
$(DOCKER_SYNCD_MLNX_RPC)_DEPENDS += $(SYNCD_RPC) $(LIBTHRIFT) $(MLNX_SFPD) $(MLNX_ISSU)
5+
$(DOCKER_SYNCD_MLNX_RPC)_DEPENDS += $(SYNCD_RPC) $(LIBTHRIFT) $(MLNX_SFPD)
66
$(DOCKER_SYNCD_MLNX_RPC)_LOAD_DOCKERS += $(DOCKER_SYNCD_MLNX)
77
SONIC_DOCKER_IMAGES += $(DOCKER_SYNCD_MLNX_RPC)
88
ifeq ($(ENABLE_SYNCD_RPC),y)

platform/mellanox/docker-syncd-mlnx.mk

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
DOCKER_SYNCD_MLNX = docker-syncd-mlnx.gz
44
$(DOCKER_SYNCD_MLNX)_PATH = $(PLATFORM_PATH)/docker-syncd-mlnx
5-
$(DOCKER_SYNCD_MLNX)_DEPENDS += $(SYNCD) $(PYTHON_SDK_API) $(MLNX_SFPD) $(CRIU) $(MLNX_ISSU)
5+
$(DOCKER_SYNCD_MLNX)_DEPENDS += $(SYNCD) $(PYTHON_SDK_API) $(MLNX_SFPD)
66
$(DOCKER_SYNCD_MLNX)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE)
77
SONIC_DOCKER_IMAGES += $(DOCKER_SYNCD_MLNX)
88
ifneq ($(ENABLE_SYNCD_RPC),y)
@@ -14,4 +14,4 @@ $(DOCKER_SYNCD_MLNX)_RUN_OPT += --net=host --privileged -t
1414
$(DOCKER_SYNCD_MLNX)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
1515
$(DOCKER_SYNCD_MLNX)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
1616
$(DOCKER_SYNCD_MLNX)_RUN_OPT += -v /host/warmboot:/var/warmboot
17-
$(DOCKER_SYNCD_MLNX)_RUN_OPT += --tmpfs /run/criu
17+

platform/mellanox/docker-syncd-mlnx/Dockerfile.j2

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ debs/{{ deb }}{{' '}}
1414
{%- endfor -%}
1515
debs/
1616

17-
RUN apt-get install -y --no-install-recommends libxml2 iptables libbsd0 protobuf-c-compiler protobuf-compiler python-protobuf libprotobuf-c1 python-future python-ipaddr libnet1 pkg-config asciidoc xmlto
17+
RUN apt-get install -y libxml2
1818

1919
RUN dpkg -i \
2020
{% for deb in docker_syncd_mlnx_debs.split(' ') -%}

platform/mellanox/issu-version.mk

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# ISSU version
2+
3+
ISSU_VERSION_FILE = issu-version
4+
$(ISSU_VERSION_FILE)_SRC_PATH = $(PLATFORM_PATH)/issu-version
5+
$(ISSU_VERSION_FILE)_DEPENDS += $(APPLIBS)
6+
SONIC_MAKE_FILES += $(ISSU_VERSION_FILE)
7+
8+
export ISSU_VERSION_FILE
9+
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
.ONESHELL:
2+
SHELL = /bin/bash
3+
.SHELLFLAGS += -e
4+
5+
MAIN_TARGET = issu-version
6+
7+
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
8+
sx_sdk --version | egrep -o 'ISSU [0-9]+' > $(DEST)/$(MAIN_TARGET) || {
9+
echo "ISSU version is undefined: $(sx_sdk --version)"
10+
rm $(DEST)/$(MAIN_TARGET)
11+
exit 1
12+
}

platform/mellanox/mlnx-ffb.sh

+18-32
Original file line numberDiff line numberDiff line change
@@ -37,21 +37,26 @@ check_sdk_upgrade()
3737
mkdir -p "${FS_MOUNTPOINT}"
3838
mount -t squashfs "${FS_PATH}" "${FS_MOUNTPOINT}" || {
3939
>&2 echo "Failed to mount next SONiC image"
40-
break;
40+
break
4141
}
4242

43-
SDK_VERSION_FILE_PATH="${FS_MOUNTPOINT}/etc/mlnx/sdk-version"
43+
ISSU_VERSION_FILE_PATH="/etc/mlnx/issu-version"
4444

45-
[ -f "${SDK_VERSION_FILE_PATH}" ] && {
46-
NEXT_SDK_VERSION="$(cat ${FS_MOUNTPOINT}/etc/mlnx/sdk-version)"
47-
} || {
48-
>&2 echo "No SDK version file ${SDK_VERSION_FILE_PATH}"
49-
break;
45+
[ -f "${SDK_VERSION_FILE_PATH}" ] || {
46+
>&2 echo "No ISSU version file found ${ISSU_VERSION_FILE_PATH}"
47+
break
5048
}
5149

52-
ISSU_CHECK_CMD="docker exec -t syncd issu --check ${NEXT_SDK_VERSION}"
50+
CURRENT_ISSU_VERSION="$(cat ${ISSU_VERSION_FILE_PATH})"
51+
NEXT_ISSU_VERSION="$(cat ${FS_MOUNTPOINT}/${ISSU_VERSION_FILE_PATH})"
5352

54-
${ISS_CHECK_CMD} > /dev/null && CHECK_RESULT="${FFB_SUCCESS}"
53+
if [[ "${CURRENT_ISSU_VERSION}" == "${NEXT_ISSU_VERSION}" ]]; then
54+
CHECK_RESULT="${FFB_SUCCESS}"
55+
else
56+
>&2 echo "Current and next ISSU version do not match:"
57+
>&2 echo "Current ISSU version: ${CURRENT_ISSU_VERSION}"
58+
>&2 echo "Next ISSU version: ${NEXT_ISSU_VERSION}"
59+
fi
5560

5661
break
5762
done
@@ -65,34 +70,15 @@ check_sdk_upgrade()
6570
check_ffb()
6671
{
6772
check_issu_enabled || {
68-
echo "ISSU is not enabled on this HWSKU"
73+
>&2 echo "ISSU is not enabled on this HWSKU"
6974
return "${FFB_FAILURE}"
7075
}
76+
7177
check_sdk_upgrade || {
72-
echo "SDK upgrade check failued"
78+
>&2 echo "SDK upgrade check failued"
7379
return "${FFB_FAILURE}"
7480
}
75-
return "${FFB_SUCCESS}";
76-
}
77-
78-
# Perform ISSU start
79-
issu_start()
80-
{
81-
ISSU_START_CMD="docker exec -t syncd issu --start"
82-
${ISSU_START_CMD} > /dev/null
83-
84-
EXIT_CODE=$?
8581

86-
return $EXIT_CODE
82+
return "${FFB_SUCCESS}"
8783
}
8884

89-
# Perform ISSU end
90-
issu_end()
91-
{
92-
ISSU_END_CMD="docker exec -t syncd issu --end"
93-
${ISSU_END_CMD} > /dev/null
94-
95-
EXIT_CODE=$?
96-
97-
return $EXIT_CODE
98-
}

platform/mellanox/mlnx-issu.mk

-5
This file was deleted.

platform/mellanox/mlnx-issu/scripts/issu

-176
This file was deleted.

platform/mellanox/mlnx-issu/setup.py

-14
This file was deleted.

platform/mellanox/one-image.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ $(SONIC_ONE_IMAGE)_MACHINE = mellanox
55
$(SONIC_ONE_IMAGE)_IMAGE_TYPE = onie
66
$(SONIC_ONE_IMAGE)_INSTALLS += $(SX_KERNEL) $(KERNEL_MFT) $(MFT_OEM) $(MFT) $(MLNX_HW_MANAGEMENT)
77
$(SONIC_ONE_IMAGE)_DOCKERS += $(SONIC_INSTALL_DOCKER_IMAGES)
8-
$(SONIC_ONE_IMAGE)_FILES += $(MLNX_FW_FILE) $(MLNX_FFB_SCRIPT)
8+
$(SONIC_ONE_IMAGE)_FILES += $(MLNX_FW_FILE) $(MLNX_FFB_SCRIPT) $(ISSU_VERSION_FILE)
99
SONIC_INSTALLERS += $(SONIC_ONE_IMAGE)

platform/mellanox/rules.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ include $(PLATFORM_PATH)/libsaithrift-dev.mk
1212
include $(PLATFORM_PATH)/docker-ptf-mlnx.mk
1313
include $(PLATFORM_PATH)/mlnx-sfpd.mk
1414
include $(PLATFORM_PATH)/mlnx-ffb.mk
15-
include $(PLATFORM_PATH)/mlnx-issu.mk
15+
include $(PLATFORM_PATH)/issu-version.mk
1616

1717
SONIC_ALL += $(SONIC_ONE_IMAGE) \
1818
$(DOCKER_FPM)

platform/mellanox/sdk-version.j2

-1
This file was deleted.

platform/mellanox/sdk.mk

-1
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,3 @@ $(eval $(foreach deb,$(PYTHON_SDK_API) $(SX_KERNEL) $(SX_KERNEL_DEV),$(call make
5656

5757
SONIC_ONLINE_DEBS += $(MLNX_SDK_RDEBS) $(PYTHON_SDK_API) $(SX_KERNEL)
5858

59-
export MLNX_SDK_VERSION

0 commit comments

Comments
 (0)