From 7982c3a2a8e2b5d0f0198e3d25f7b7305c6b65d8 Mon Sep 17 00:00:00 2001 From: Samuel Angebault Date: Wed, 25 Oct 2023 09:39:03 +0200 Subject: [PATCH] Add some config options to make gbsyncd optional (#16840) Why I did it In an effort to allow people to build a slim version of SONiC to fit on devices to small storage, there is a need to disable some unneeded features. The docker-gbsyncd are only applicable to devices with external gearboxes and might not apply to devices that need a small image. It is therefore desirable to have a knob to not include these gbsyncd containers. Work item tracking Microsoft ADO (number only): How I did it Add a new config INCLUDE_GBSYNCD which is enabled by default to retain the previous behavior. Setting it to n will not include the platform/components/docker-gbsyncd-*.mk. How to verify it Set INCLUDE_GBSYNCD = n and witness that docker-gbsyncd images are not present in the final image. --- platform/broadcom/one-aboot.mk | 2 ++ platform/broadcom/rules.dep | 2 ++ platform/broadcom/rules.mk | 2 ++ rules/config | 3 +++ 4 files changed, 9 insertions(+) diff --git a/platform/broadcom/one-aboot.mk b/platform/broadcom/one-aboot.mk index d8e502ea98..b3dd74b597 100644 --- a/platform/broadcom/one-aboot.mk +++ b/platform/broadcom/one-aboot.mk @@ -4,7 +4,9 @@ SONIC_ONE_ABOOT_IMAGE = sonic-aboot-broadcom.swi $(SONIC_ONE_ABOOT_IMAGE)_MACHINE = broadcom $(SONIC_ONE_ABOOT_IMAGE)_DEPENDENT_MACHINE = broadcom-dnx $(SONIC_ONE_ABOOT_IMAGE)_IMAGE_TYPE = aboot +ifeq ($(INCLUDE_GBSYNCD), y) $(SONIC_ONE_ABOOT_IMAGE)_INSTALLS += $(PHY_CREDO) +endif $(SONIC_ONE_ABOOT_IMAGE)_INSTALLS += $(FLASHROM) $(SONIC_ONE_ABOOT_IMAGE)_INSTALLS += $(SYSTEMD_SONIC_GENERATOR) $(SONIC_ONE_ABOOT_IMAGE)_LAZY_BUILD_INSTALLS = $(BRCM_OPENNSL_KERNEL) $(BRCM_DNX_OPENNSL_KERNEL) diff --git a/platform/broadcom/rules.dep b/platform/broadcom/rules.dep index 075636a8de..47f7f849ed 100644 --- a/platform/broadcom/rules.dep +++ b/platform/broadcom/rules.dep @@ -29,5 +29,7 @@ include $(PLATFORM_PATH)/one-aboot.dep include $(PLATFORM_PATH)/libsaithrift-dev.dep include $(PLATFORM_PATH)/docker-syncd-brcm-dnx.dep include $(PLATFORM_PATH)/docker-syncd-brcm-dnx-rpc.dep +ifeq ($(INCLUDE_GBSYNCD), y) include $(PLATFORM_PATH)/../components/docker-gbsyncd-credo.dep include $(PLATFORM_PATH)/../components/docker-gbsyncd-broncos.dep +endif diff --git a/platform/broadcom/rules.mk b/platform/broadcom/rules.mk index dde11b58f5..5fa7bfca74 100755 --- a/platform/broadcom/rules.mk +++ b/platform/broadcom/rules.mk @@ -29,8 +29,10 @@ include $(PLATFORM_PATH)/one-aboot.mk include $(PLATFORM_PATH)/libsaithrift-dev.mk include $(PLATFORM_PATH)/docker-syncd-brcm-dnx.mk include $(PLATFORM_PATH)/docker-syncd-brcm-dnx-rpc.mk +ifeq ($(INCLUDE_GBSYNCD), y) include $(PLATFORM_PATH)/../components/docker-gbsyncd-credo.mk include $(PLATFORM_PATH)/../components/docker-gbsyncd-broncos.mk +endif BCMCMD = bcmcmd $(BCMCMD)_URL = "https://sonicstorage.blob.core.windows.net/packages/20190307/bcmcmd?sv=2015-04-05&sr=b&sig=sUdbU7oVbh5exbXXHVL5TDFBTWDDBASHeJ8Cp0B0TIc%3D&se=2038-05-06T22%3A34%3A19Z&sp=r" diff --git a/rules/config b/rules/config index dbc76fa594..00249a9661 100644 --- a/rules/config +++ b/rules/config @@ -170,6 +170,9 @@ ENABLE_NATIVE_WRITE = y # INCLUDE_MACSEC - build docker-macsec for macsec support INCLUDE_MACSEC = y +# INCLUDE_GBSYNCD - build docker-gbsyncd-* for gearbox support +INCLUDE_GBSYNCD ?= y + # INCLUDE_TEAMD - build docker-teamd for LAG protocol support INCLUDE_TEAMD ?= y