From b6986ffd68ad93a5e51e9b83f7921c615a7f4a94 Mon Sep 17 00:00:00 2001 From: Kebo Liu Date: Sat, 15 Jul 2023 06:03:33 +0800 Subject: [PATCH] [Mellanox] Update SAI build procedure (#15728) = Why I did it To optimize Mellanox platform SAI build - How I did it SAI debs are now downloaded as Spectrum-SDK-Drivers-SONiC-Bins release. - How to verify it Configure/build for Mellanox platform, check the image and ensure that correct SAI debs are included. --- .gitmodules | 3 --- platform/mellanox/.gitignore | 2 -- platform/mellanox/mlnx-sai.mk | 27 ++++++++++++++++++- platform/mellanox/mlnx-sai/.gitignore | 6 +++++ platform/mellanox/mlnx-sai/Makefile | 4 +-- platform/mellanox/mlnx-sai/SAI-Implementation | 1 - 6 files changed, 34 insertions(+), 9 deletions(-) create mode 100644 platform/mellanox/mlnx-sai/.gitignore delete mode 160000 platform/mellanox/mlnx-sai/SAI-Implementation diff --git a/.gitmodules b/.gitmodules index 5455f6d77..56fcd2eb0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -65,9 +65,6 @@ [submodule "src/scapy"] path = src/scapy url = https://github.com/secdev/scapy.git -[submodule "platform/mellanox/mlnx-sai/SAI-Implementation"] - path = platform/mellanox/mlnx-sai/SAI-Implementation - url = https://github.com/Mellanox/SAI-Implementation [submodule "src/sonic-mgmt-framework"] path = src/sonic-mgmt-framework url = https://github.com/sonic-net/sonic-mgmt-framework diff --git a/platform/mellanox/.gitignore b/platform/mellanox/.gitignore index 1f3d15d64..9fc0ece98 100644 --- a/platform/mellanox/.gitignore +++ b/platform/mellanox/.gitignore @@ -1,6 +1,4 @@ # Subdirectories -mlnx-sai/* -!mlnx-sai/Makefile hw-management/* !hw-management/Makefile !hw-management/*.patch diff --git a/platform/mellanox/mlnx-sai.mk b/platform/mellanox/mlnx-sai.mk index 2714d4739..1c0718616 100644 --- a/platform/mellanox/mlnx-sai.mk +++ b/platform/mellanox/mlnx-sai.mk @@ -1,8 +1,21 @@ # Mellanox SAI MLNX_SAI_VERSION = SAIBuild2305.24.0.1 +MLNX_SAI_ASSETS_GITHUB_URL = https://github.com/Mellanox/Spectrum-SDK-Drivers-SONiC-Bins +MLNX_SAI_ASSETS_RELEASE_TAG = sai-$(MLNX_SAI_VERSION)-$(BLDENV)-$(CONFIGURED_ARCH) +MLNX_SAI_ASSETS_URL = $(MLNX_ASSETS_GITHUB_URL)/releases/download/$(MLNX_SAI_ASSETS_RELEASE_TAG) +MLNX_SAI_DEB_VERSION = $(subst -,.,$(subst _,.,$(MLNX_SAI_VERSION))) -export MLNX_SAI_VERSION +# Place here URL where SAI sources exist +MLNX_SAI_SOURCE_BASE_URL = + +ifneq ($(MLNX_SAI_SOURCE_BASE_URL), ) +SAI_FROM_SRC = y +else +SAI_FROM_SRC = n +endif + +export MLNX_SAI_VERSION MLNX_SAI_SOURCE_BASE_URL MLNX_SAI = mlnx-sai_1.mlnx.$(MLNX_SAI_VERSION)_$(CONFIGURED_ARCH).deb $(MLNX_SAI)_SRC_PATH = $(PLATFORM_PATH)/mlnx-sai @@ -11,4 +24,16 @@ $(MLNX_SAI)_RDEPENDS += $(MLNX_SDK_RDEBS) $(MLNX_SDK_DEBS) $(eval $(call add_conflict_package,$(MLNX_SAI),$(LIBSAIVS_DEV))) MLNX_SAI_DBGSYM = mlnx-sai-dbgsym_1.mlnx.$(MLNX_SAI_VERSION)_$(CONFIGURED_ARCH).deb $(eval $(call add_derived_package,$(MLNX_SAI),$(MLNX_SAI_DBGSYM))) + +define make_url + $(1)_URL = $(MLNX_SAI_ASSETS_URL)/$(1) + +endef + +$(eval $(foreach deb,$(MLNX_SAI) $(MLNX_SAI_DBGSYM),$(call make_url,$(deb)))) + +ifeq ($(SAI_FROM_SRC), y) SONIC_MAKE_DEBS += $(MLNX_SAI) +else +SONIC_ONLINE_DEBS += $(MLNX_SAI) +endif diff --git a/platform/mellanox/mlnx-sai/.gitignore b/platform/mellanox/mlnx-sai/.gitignore new file mode 100644 index 000000000..7e5cb7d26 --- /dev/null +++ b/platform/mellanox/mlnx-sai/.gitignore @@ -0,0 +1,6 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore +!Makefile + diff --git a/platform/mellanox/mlnx-sai/Makefile b/platform/mellanox/mlnx-sai/Makefile index 55c453e77..6731bd836 100644 --- a/platform/mellanox/mlnx-sai/Makefile +++ b/platform/mellanox/mlnx-sai/Makefile @@ -6,7 +6,8 @@ MAIN_TARGET = mlnx-sai_1.mlnx.$(MLNX_SAI_VERSION)_$(CONFIGURED_ARCH).deb DERIVED_TARGETS = mlnx-sai-dbgsym_1.mlnx.$(MLNX_SAI_VERSION)_$(CONFIGURED_ARCH).deb $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : - pushd SAI-Implementation + rm -rf mlnx_sai + wget -c $(MLNX_SAI_SOURCE_BASE_URL)/$(MLNX_SAI_VERSION).tar.gz -O - | tar -xz pushd mlnx_sai chmod a+x autogen.sh @@ -14,4 +15,3 @@ $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : popd mv $(DERIVED_TARGETS) $* $(DEST)/ - popd diff --git a/platform/mellanox/mlnx-sai/SAI-Implementation b/platform/mellanox/mlnx-sai/SAI-Implementation deleted file mode 160000 index ec7fa674f..000000000 --- a/platform/mellanox/mlnx-sai/SAI-Implementation +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ec7fa674f143809e602a56b6ef5d279ade8b77d2