mirror of
				https://github.com/Telecominfraproject/ols-nos.git
				synced 2025-10-30 17:48:09 +00:00 
			
		
		
		
	Update the database, teamd, and radv containers to Bookworm (#18108)
* Update Redis DB start options for multi-asic and chassis cases Starting with Redis 7.0 (specifically, redis/redis#9034), setting a custom `--bind` address on the command line no longer disables protected mode (which blocks connections from non-localhost IP addresses unless a password is set). For multi-asic and chassis database DBs, we currently specify a non-localhost IP address and do not specify any password, which means this change would break things there. To work around this, if we are specifying a non-localhost IP address on the command line, then disable protected mode. * Clean up debug pacakge list for docker-teamd The debug pacakges for swss and libswsscommon are already installed by docker-swss-layer-bookworm and docker-config-engine-bookworm, so they don't need to be specified here again. Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
This commit is contained in:
		| @@ -21,7 +21,7 @@ RUN apt-get install -y        \ | |||||||
| # Explicitly install pyangbind here, as pyangbind causes enum34 to be installed. | # Explicitly install pyangbind here, as pyangbind causes enum34 to be installed. | ||||||
| # enum34 causes Python 're' package to not work properly as it redefines an incompatible enum.py module | # enum34 causes Python 're' package to not work properly as it redefines an incompatible enum.py module | ||||||
| # https://github.com/robshakir/pyangbind/issues/232 | # https://github.com/robshakir/pyangbind/issues/232 | ||||||
| RUN pip3 install pyangbind==0.8.1 | RUN pip3 install pyangbind==0.8.2 | ||||||
| RUN pip3 uninstall -y enum34 | RUN pip3 uninstall -y enum34 | ||||||
|  |  | ||||||
| # Install python-redis | # Install python-redis | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} | {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} | ||||||
| FROM docker-config-engine-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} | FROM docker-config-engine-bookworm-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} | ||||||
|  |  | ||||||
| ARG docker_container_name | ARG docker_container_name | ||||||
|  |  | ||||||
|   | |||||||
| @@ -31,12 +31,16 @@ dependent_startup=true | |||||||
| {% if INSTANCES %} | {% if INSTANCES %} | ||||||
| {%     for redis_inst, redis_items in INSTANCES.items() %} | {%     for redis_inst, redis_items in INSTANCES.items() %} | ||||||
| [program:{{ redis_inst }}] | [program:{{ redis_inst }}] | ||||||
| {% if redis_items['hostname'] != '127.0.0.1' and redis_inst != 'redis_chassis' %} | {% if redis_items['hostname'] != '127.0.0.1' %} | ||||||
|  | {%- set ADDITIONAL_OPTS = '--protected-mode no' %} | ||||||
|  | {%- if redis_inst != 'redis_chassis' %} | ||||||
| {%- set LOOPBACK_IP = '127.0.0.1' -%} | {%- set LOOPBACK_IP = '127.0.0.1' -%} | ||||||
|  | {%- endif -%} | ||||||
| {%- else -%} | {%- else -%} | ||||||
| {%- set LOOPBACK_IP = '' -%} | {%- set LOOPBACK_IP = '' -%} | ||||||
|  | {%- set ADDITIONAL_OPTS = '' %} | ||||||
| {%- endif -%} | {%- endif -%} | ||||||
| command=/bin/bash -c "{ [[ -s /var/lib/{{ redis_inst }}/dump.rdb ]] || rm -f /var/lib/{{ redis_inst }}/dump.rdb; } && mkdir -p /var/lib/{{ redis_inst }} && exec /usr/bin/redis-server /etc/redis/redis.conf --bind {{ LOOPBACK_IP }} {{ redis_items['hostname'] }} --port {{ redis_items['port'] }} --unixsocket {{ redis_items['unix_socket_path'] }} --pidfile /var/run/redis/{{ redis_inst }}.pid --dir /var/lib/{{ redis_inst }}" | command=/bin/bash -c "{ [[ -s /var/lib/{{ redis_inst }}/dump.rdb ]] || rm -f /var/lib/{{ redis_inst }}/dump.rdb; } && mkdir -p /var/lib/{{ redis_inst }} && exec /usr/bin/redis-server /etc/redis/redis.conf --bind {{ LOOPBACK_IP }} {{ redis_items['hostname'] }} --port {{ redis_items['port'] }} --unixsocket {{ redis_items['unix_socket_path'] }} --pidfile /var/run/redis/{{ redis_inst }}.pid --dir /var/lib/{{ redis_inst }} {{ ADDITIONAL_OPTS }}" | ||||||
| priority=2 | priority=2 | ||||||
| user=redis | user=redis | ||||||
| autostart=true | autostart=true | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} | {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} | ||||||
| FROM docker-config-engine-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} | FROM docker-config-engine-bookworm-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} | ||||||
|  |  | ||||||
| ARG docker_container_name | ARG docker_container_name | ||||||
| ARG image_version | ARG image_version | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} | {% from "dockers/dockerfile-macros.j2" import install_debian_packages, install_python_wheels, copy_files %} | ||||||
| FROM docker-swss-layer-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} | FROM docker-swss-layer-bookworm-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}} | ||||||
|  |  | ||||||
| ARG docker_container_name | ARG docker_container_name | ||||||
|  |  | ||||||
|   | |||||||
| @@ -10,21 +10,21 @@ $(DOCKER_DATABASE)_DEPENDS += $(LIBSWSSCOMMON) \ | |||||||
|  |  | ||||||
| $(DOCKER_DATABASE)_PATH = $(DOCKERS_PATH)/$(DOCKER_DATABASE_STEM) | $(DOCKER_DATABASE)_PATH = $(DOCKERS_PATH)/$(DOCKER_DATABASE_STEM) | ||||||
|  |  | ||||||
| $(DOCKER_DATABASE)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_DEPENDS) | $(DOCKER_DATABASE)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_BOOKWORM)_DBG_DEPENDS) | ||||||
|  |  | ||||||
| $(DOCKER_DATABASE)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_IMAGE_PACKAGES) | $(DOCKER_DATABASE)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BOOKWORM)_DBG_IMAGE_PACKAGES) | ||||||
|  |  | ||||||
| $(DOCKER_DATABASE)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BULLSEYE) | $(DOCKER_DATABASE)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BOOKWORM) | ||||||
|  |  | ||||||
| $(DOCKER_DATABASE)_VERSION = 1.0.0 | $(DOCKER_DATABASE)_VERSION = 1.0.0 | ||||||
| $(DOCKER_DATABASE)_PACKAGE_NAME = database | $(DOCKER_DATABASE)_PACKAGE_NAME = database | ||||||
|  |  | ||||||
| SONIC_DOCKER_IMAGES += $(DOCKER_DATABASE) | SONIC_DOCKER_IMAGES += $(DOCKER_DATABASE) | ||||||
| SONIC_BULLSEYE_DOCKERS += $(DOCKER_DATABASE) | SONIC_BOOKWORM_DOCKERS += $(DOCKER_DATABASE) | ||||||
| SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_DATABASE) | SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_DATABASE) | ||||||
|  |  | ||||||
| SONIC_DOCKER_DBG_IMAGES += $(DOCKER_DATABASE_DBG) | SONIC_DOCKER_DBG_IMAGES += $(DOCKER_DATABASE_DBG) | ||||||
| SONIC_BULLSEYE_DBG_DOCKERS += $(DOCKER_DATABASE_DBG) | SONIC_BOOKWORM_DBG_DOCKERS += $(DOCKER_DATABASE_DBG) | ||||||
| SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_DATABASE_DBG) | SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_DATABASE_DBG) | ||||||
|  |  | ||||||
| $(DOCKER_DATABASE)_CONTAINER_NAME = database | $(DOCKER_DATABASE)_CONTAINER_NAME = database | ||||||
|   | |||||||
| @@ -6,12 +6,11 @@ DOCKER_ROUTER_ADVERTISER_DBG = $(DOCKER_ROUTER_ADVERTISER_STEM)-$(DBG_IMAGE_MARK | |||||||
|  |  | ||||||
| $(DOCKER_ROUTER_ADVERTISER)_PATH = $(DOCKERS_PATH)/$(DOCKER_ROUTER_ADVERTISER_STEM) | $(DOCKER_ROUTER_ADVERTISER)_PATH = $(DOCKERS_PATH)/$(DOCKER_ROUTER_ADVERTISER_STEM) | ||||||
|  |  | ||||||
| $(DOCKER_ROUTER_ADVERTISER)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_DEPENDS) | $(DOCKER_ROUTER_ADVERTISER)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_BOOKWORM)_DBG_DEPENDS) | ||||||
| $(DOCKER_ROUTER_ADVERTISER)_DBG_DEPENDS += $(RADVD_DBG) |  | ||||||
|  |  | ||||||
| $(DOCKER_ROUTER_ADVERTISER)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_IMAGE_PACKAGES) | $(DOCKER_ROUTER_ADVERTISER)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BOOKWORM)_DBG_IMAGE_PACKAGES) | ||||||
|  |  | ||||||
| $(DOCKER_ROUTER_ADVERTISER)_LOAD_DOCKERS = $(DOCKER_CONFIG_ENGINE_BULLSEYE) | $(DOCKER_ROUTER_ADVERTISER)_LOAD_DOCKERS = $(DOCKER_CONFIG_ENGINE_BOOKWORM) | ||||||
|  |  | ||||||
| $(DOCKER_ROUTER_ADVERTISER)_VERSION = 1.0.0 | $(DOCKER_ROUTER_ADVERTISER)_VERSION = 1.0.0 | ||||||
| $(DOCKER_ROUTER_ADVERTISER)_PACKAGE_NAME = radv | $(DOCKER_ROUTER_ADVERTISER)_PACKAGE_NAME = radv | ||||||
| @@ -28,8 +27,8 @@ ifeq ($(INCLUDE_ROUTER_ADVERTISER), y) | |||||||
| SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_ROUTER_ADVERTISER_DBG) | SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_ROUTER_ADVERTISER_DBG) | ||||||
| endif | endif | ||||||
|  |  | ||||||
| SONIC_BULLSEYE_DOCKERS += $(DOCKER_ROUTER_ADVERTISER) | SONIC_BOOKWORM_DOCKERS += $(DOCKER_ROUTER_ADVERTISER) | ||||||
| SONIC_BULLSEYE_DBG_DOCKERS += $(DOCKER_ROUTER_ADVERTISER_DBG) | SONIC_BOOKWORM_DBG_DOCKERS += $(DOCKER_ROUTER_ADVERTISER_DBG) | ||||||
|  |  | ||||||
| $(DOCKER_ROUTER_ADVERTISER)_CONTAINER_NAME = radv | $(DOCKER_ROUTER_ADVERTISER)_CONTAINER_NAME = radv | ||||||
| $(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += -t | $(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += -t | ||||||
|   | |||||||
| @@ -6,14 +6,13 @@ DOCKER_TEAMD_DBG = $(DOCKER_TEAMD_STEM)-$(DBG_IMAGE_MARK).gz | |||||||
|  |  | ||||||
| $(DOCKER_TEAMD)_PATH = $(DOCKERS_PATH)/$(DOCKER_TEAMD_STEM) | $(DOCKER_TEAMD)_PATH = $(DOCKERS_PATH)/$(DOCKER_TEAMD_STEM) | ||||||
|  |  | ||||||
| $(DOCKER_TEAMD)_DEPENDS += $(SWSS) $(LIBTEAMDCTL) $(LIBTEAM_UTILS) | $(DOCKER_TEAMD)_DEPENDS += $(LIBTEAMDCTL) $(LIBTEAM_UTILS) | ||||||
| $(DOCKER_TEAMD)_DBG_DEPENDS = $($(DOCKER_SWSS_LAYER_BULLSEYE)_DBG_DEPENDS) | $(DOCKER_TEAMD)_DBG_DEPENDS = $($(DOCKER_SWSS_LAYER_BOOKWORM)_DBG_DEPENDS) | ||||||
| $(DOCKER_TEAMD)_DBG_DEPENDS += $(SWSS_DBG) $(LIBSWSSCOMMON_DBG) |  | ||||||
| $(DOCKER_TEAMD)_DBG_DEPENDS += $(LIBTEAMDCTL_DBG) $(LIBTEAM_UTILS_DBG) | $(DOCKER_TEAMD)_DBG_DEPENDS += $(LIBTEAMDCTL_DBG) $(LIBTEAM_UTILS_DBG) | ||||||
|  |  | ||||||
| $(DOCKER_TEAMD)_DBG_IMAGE_PACKAGES = $($(DOCKER_SWSS_LAYER_BULLSEYE)_DBG_IMAGE_PACKAGES) | $(DOCKER_TEAMD)_DBG_IMAGE_PACKAGES = $($(DOCKER_SWSS_LAYER_BOOKWORM)_DBG_IMAGE_PACKAGES) | ||||||
|  |  | ||||||
| $(DOCKER_TEAMD)_LOAD_DOCKERS += $(DOCKER_SWSS_LAYER_BULLSEYE) | $(DOCKER_TEAMD)_LOAD_DOCKERS += $(DOCKER_SWSS_LAYER_BOOKWORM) | ||||||
|  |  | ||||||
| $(DOCKER_TEAMD)_VERSION = 1.0.0 | $(DOCKER_TEAMD)_VERSION = 1.0.0 | ||||||
| $(DOCKER_TEAMD)_PACKAGE_NAME = teamd | $(DOCKER_TEAMD)_PACKAGE_NAME = teamd | ||||||
| @@ -41,5 +40,5 @@ $(DOCKER_TEAMD)_RUN_OPT += -v /host/warmboot:/var/warmboot | |||||||
| $(DOCKER_TEAMD)_BASE_IMAGE_FILES += teamdctl:/usr/bin/teamdctl | $(DOCKER_TEAMD)_BASE_IMAGE_FILES += teamdctl:/usr/bin/teamdctl | ||||||
| $(DOCKER_TEAMD)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) | $(DOCKER_TEAMD)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT) | ||||||
|  |  | ||||||
| SONIC_BULLSEYE_DOCKERS += $(DOCKER_TEAMD) | SONIC_BOOKWORM_DOCKERS += $(DOCKER_TEAMD) | ||||||
| SONIC_BULLSEYE_DBG_DOCKERS += $(DOCKER_TEAMD_DBG) | SONIC_BOOKWORM_DBG_DOCKERS += $(DOCKER_TEAMD_DBG) | ||||||
|   | |||||||
| @@ -1,32 +1,34 @@ | |||||||
| # libteam packages | # libteam packages | ||||||
|  |  | ||||||
| LIBTEAM_VERSION = 1.30-1 | LIBTEAM_VERSION := 1.31 | ||||||
|  | LIBTEAM_VERSION_FULL := $(LIBTEAM_VERSION)-1 | ||||||
|  |  | ||||||
| export LIBTEAM_VERSION | export LIBTEAM_VERSION | ||||||
|  | export LIBTEAM_VERSION_FULL | ||||||
|  |  | ||||||
| LIBTEAM = libteam5_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb | LIBTEAM = libteam5_$(LIBTEAM_VERSION_FULL)_$(CONFIGURED_ARCH).deb | ||||||
| $(LIBTEAM)_SRC_PATH = $(SRC_PATH)/libteam | $(LIBTEAM)_SRC_PATH = $(SRC_PATH)/libteam | ||||||
| $(LIBTEAM)_DEPENDS += $(LIBNL_GENL3_DEV) $(LIBNL_CLI_DEV) | $(LIBTEAM)_DEPENDS += $(LIBNL_GENL3_DEV) $(LIBNL_CLI_DEV) | ||||||
| SONIC_MAKE_DEBS += $(LIBTEAM) | SONIC_MAKE_DEBS += $(LIBTEAM) | ||||||
|  |  | ||||||
| LIBTEAM_DBG = libteam5-dbgsym_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb | LIBTEAM_DBG = libteam5-dbgsym_$(LIBTEAM_VERSION_FULL)_$(CONFIGURED_ARCH).deb | ||||||
| $(eval $(call add_derived_package,$(LIBTEAM),$(LIBTEAM_DBG))) | $(eval $(call add_derived_package,$(LIBTEAM),$(LIBTEAM_DBG))) | ||||||
|  |  | ||||||
| LIBTEAM_DEV = libteam-dev_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb | LIBTEAM_DEV = libteam-dev_$(LIBTEAM_VERSION_FULL)_$(CONFIGURED_ARCH).deb | ||||||
| $(LIBTEAM_DEV)_DEPENDS += $(LIBTEAMDCTL) | $(LIBTEAM_DEV)_DEPENDS += $(LIBTEAMDCTL) | ||||||
| $(eval $(call add_derived_package,$(LIBTEAM),$(LIBTEAM_DEV))) | $(eval $(call add_derived_package,$(LIBTEAM),$(LIBTEAM_DEV))) | ||||||
|  |  | ||||||
| LIBTEAMDCTL = libteamdctl0_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb | LIBTEAMDCTL = libteamdctl0_$(LIBTEAM_VERSION_FULL)_$(CONFIGURED_ARCH).deb | ||||||
| $(eval $(call add_derived_package,$(LIBTEAM),$(LIBTEAMDCTL))) | $(eval $(call add_derived_package,$(LIBTEAM),$(LIBTEAMDCTL))) | ||||||
|  |  | ||||||
| LIBTEAMDCTL_DBG = libteamdctl0-dbgsym_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb | LIBTEAMDCTL_DBG = libteamdctl0-dbgsym_$(LIBTEAM_VERSION_FULL)_$(CONFIGURED_ARCH).deb | ||||||
| $(eval $(call add_derived_package,$(LIBTEAM),$(LIBTEAMDCTL_DBG))) | $(eval $(call add_derived_package,$(LIBTEAM),$(LIBTEAMDCTL_DBG))) | ||||||
|  |  | ||||||
| LIBTEAM_UTILS = libteam-utils_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb | LIBTEAM_UTILS = libteam-utils_$(LIBTEAM_VERSION_FULL)_$(CONFIGURED_ARCH).deb | ||||||
| $(LIBTEAM_UTILS)_DEPENDS += $(LIBTEAMDCTL) | $(LIBTEAM_UTILS)_DEPENDS += $(LIBTEAMDCTL) | ||||||
| $(eval $(call add_derived_package,$(LIBTEAM),$(LIBTEAM_UTILS))) | $(eval $(call add_derived_package,$(LIBTEAM),$(LIBTEAM_UTILS))) | ||||||
|  |  | ||||||
| LIBTEAM_UTILS_DBG = libteam-utils-dbgsym_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb | LIBTEAM_UTILS_DBG = libteam-utils-dbgsym_$(LIBTEAM_VERSION_FULL)_$(CONFIGURED_ARCH).deb | ||||||
| $(eval $(call add_derived_package,$(LIBTEAM),$(LIBTEAM_UTILS_DBG))) | $(eval $(call add_derived_package,$(LIBTEAM),$(LIBTEAM_UTILS_DBG))) | ||||||
|  |  | ||||||
| # The .c, .cpp, .h & .hpp files under src/{$DBG_SRC_ARCHIVE list} | # The .c, .cpp, .h & .hpp files under src/{$DBG_SRC_ARCHIVE list} | ||||||
|   | |||||||
| @@ -2,35 +2,32 @@ | |||||||
| SHELL = /bin/bash | SHELL = /bin/bash | ||||||
| .SHELLFLAGS += -e | .SHELLFLAGS += -e | ||||||
|  |  | ||||||
| MAIN_TARGET = libteam5_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb | MAIN_TARGET = libteam5_$(LIBTEAM_VERSION_FULL)_$(CONFIGURED_ARCH).deb | ||||||
| DERIVED_TARGETS = libteam-dev_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb \ | DERIVED_TARGETS = libteam-dev_$(LIBTEAM_VERSION_FULL)_$(CONFIGURED_ARCH).deb \ | ||||||
| 		  libteamdctl0_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb \ | 		  libteamdctl0_$(LIBTEAM_VERSION_FULL)_$(CONFIGURED_ARCH).deb \ | ||||||
| 		  libteam-utils_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb \ | 		  libteam-utils_$(LIBTEAM_VERSION_FULL)_$(CONFIGURED_ARCH).deb \ | ||||||
| 		  libteam5-dbgsym_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb \ | 		  libteam5-dbgsym_$(LIBTEAM_VERSION_FULL)_$(CONFIGURED_ARCH).deb \ | ||||||
| 		  libteamdctl0-dbgsym_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb \ | 		  libteamdctl0-dbgsym_$(LIBTEAM_VERSION_FULL)_$(CONFIGURED_ARCH).deb \ | ||||||
| 		  libteam-utils-dbgsym_$(LIBTEAM_VERSION)_$(CONFIGURED_ARCH).deb | 		  libteam-utils-dbgsym_$(LIBTEAM_VERSION_FULL)_$(CONFIGURED_ARCH).deb | ||||||
|  |  | ||||||
| $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : | $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : | ||||||
| 	# Obtain libteam | 	# Remove any stale files | ||||||
| 	rm -rf ./libteam | 	rm -rf ./libteam-$(LIBTEAM_VERSION) | ||||||
| 	git clone https://github.com/jpirko/libteam.git |  | ||||||
| 	pushd ./libteam |  | ||||||
| 	git checkout -b teamd -f c7237377dead39ae4a711297203bacf7edb9fa41 |  | ||||||
|  |  | ||||||
| 	# Apply patch series | 	# Get libteam release, debian files | ||||||
|  | 	dget -u https://deb.debian.org/debian/pool/main/libt/libteam/libteam_$(LIBTEAM_VERSION_FULL).dsc | ||||||
|  | 	pushd ./libteam-$(LIBTEAM_VERSION) | ||||||
|  |  | ||||||
|  | 	# Create a git repository here for stg to apply patches | ||||||
|  | 	git init | ||||||
|  | 	git add -f * | ||||||
|  | 	git commit -qm "initial commit" | ||||||
|  |  | ||||||
|  | 	# Apply patches | ||||||
| 	stg init | 	stg init | ||||||
| 	stg import -s ../patch/series | 	stg import -s ../patch/series | ||||||
| 	popd |  | ||||||
|  |  | ||||||
| 	# Obtain debian packaging | 	# Build source and Debian packages | ||||||
| 	git clone https://salsa.debian.org/debian/libteam.git tmp |  | ||||||
| 	pushd ./tmp |  | ||||||
| 	git checkout -f debian/1.30-1 |  | ||||||
| 	popd |  | ||||||
|  |  | ||||||
| 	mv tmp/debian libteam/ |  | ||||||
| 	rm -rf tmp |  | ||||||
| 	pushd ./libteam |  | ||||||
| ifeq ($(CROSS_BUILD_ENVIRON), y) | ifeq ($(CROSS_BUILD_ENVIRON), y) | ||||||
| 	dpkg-buildpackage -rfakeroot -b -us -uc -a$(CONFIGURED_ARCH) -Pcross,nocheck -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $(SONIC_DPKG_ADMINDIR) | 	dpkg-buildpackage -rfakeroot -b -us -uc -a$(CONFIGURED_ARCH) -Pcross,nocheck -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $(SONIC_DPKG_ADMINDIR) | ||||||
| else | else | ||||||
|   | |||||||
| @@ -667,7 +667,7 @@ index 955ef0c..782fc05 100644 | |||||||
|  	teamd_log_info("%s: Changed port state: \"%s\" -> \"%s\"", |  	teamd_log_info("%s: Changed port state: \"%s\" -> \"%s\"", | ||||||
|  		       lacp_port->tdport->ifname, |  		       lacp_port->tdport->ifname, | ||||||
|  		       lacp_port_state_name[lacp_port->state], |  		       lacp_port_state_name[lacp_port->state], | ||||||
| @@ -1097,34 +1402,23 @@ static int lacpdu_send(struct lacp_port *lacp_port) | @@ -1097,32 +1402,21 @@ static int lacpdu_send(struct lacp_port *lacp_port) | ||||||
|  	return err; |  	return err; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -691,11 +691,9 @@ index 955ef0c..782fc05 100644 | |||||||
| -	if (!teamd_port_present(lacp_port->ctx, lacp_port->tdport)) | -	if (!teamd_port_present(lacp_port->ctx, lacp_port->tdport)) | ||||||
| -		return 0; | -		return 0; | ||||||
|   |   | ||||||
| -	if (!lacpdu_check(&lacpdu)) { | -	if (!lacpdu_check(&lacpdu)) | ||||||
| +	if (!lacpdu_check(lacpdu)) { | +	if (!lacpdu_check(lacpdu)) | ||||||
|  		teamd_log_warn("malformed LACP PDU came."); |  | ||||||
|  		return 0; |  		return 0; | ||||||
|  	} |  | ||||||
|   |   | ||||||
| +	/* save received lacp pdu frame */ | +	/* save received lacp pdu frame */ | ||||||
| +	(void)memcpy(&lacp_port->last_pdu, lacpdu, sizeof(struct lacpdu)); | +	(void)memcpy(&lacp_port->last_pdu, lacpdu, sizeof(struct lacpdu)); | ||||||
|   | |||||||
| @@ -64,7 +64,7 @@ index 6b43916..3e8a0f6 100644 | |||||||
|  } |  } | ||||||
|   |   | ||||||
|  static bool lacpdu_check(struct lacpdu *lacpdu) |  static bool lacpdu_check(struct lacpdu *lacpdu) | ||||||
| @@ -100,14 +123,31 @@ static bool lacpdu_check(struct lacpdu *lacpdu) | @@ -100,12 +123,31 @@ static bool lacpdu_check(struct lacpdu *lacpdu) | ||||||
|  	/* |  	/* | ||||||
|  	 * According to 43.4.12 version_number, tlv_type and reserved fields |  	 * According to 43.4.12 version_number, tlv_type and reserved fields | ||||||
|  	 * should not be checked. |  	 * should not be checked. | ||||||
| @@ -74,33 +74,32 @@ index 6b43916..3e8a0f6 100644 | |||||||
| +	 * need to be checked. | +	 * need to be checked. | ||||||
|  	 */ |  	 */ | ||||||
|   |   | ||||||
| -	if (lacpdu->subtype		!= 0x01 || | -	if (lacpdu->actor_info_len	!= 0x14 || | ||||||
| -	    lacpdu->actor_info_len	!= 0x14 || |  | ||||||
| -	    lacpdu->partner_info_len	!= 0x14 || | -	    lacpdu->partner_info_len	!= 0x14 || | ||||||
| -	    lacpdu->collector_info_len	!= 0x10 || | -	    lacpdu->collector_info_len	!= 0x10 || | ||||||
| -	    lacpdu->terminator_info_len	!= 0x00) | -	    lacpdu->terminator_info_len	!= 0x00) { | ||||||
| +	if (lacpdu->subtype	!= 0x01) |  | ||||||
| +		return false; |  | ||||||
| +	if (lacpdu->version_number == 0x01) { | +	if (lacpdu->version_number == 0x01) { | ||||||
| +	    if (lacpdu->actor_info_len	!= 0x14 || | +	    if (lacpdu->actor_info_len	!= 0x14 || | ||||||
| +			lacpdu->partner_info_len	!= 0x14 || | +			lacpdu->partner_info_len	!= 0x14 || | ||||||
| +			lacpdu->collector_info_len	!= 0x10 || | +			lacpdu->collector_info_len	!= 0x10 || | ||||||
| +			lacpdu->v1.terminator_info_len	!= 0x00) | +			lacpdu->v1.terminator_info_len	!= 0x00) { | ||||||
|  | +			teamd_log_warn("malformed LACPv1 PDU came."); | ||||||
| +			return false; | +			return false; | ||||||
|  | +		} | ||||||
| +	} else if (lacpdu->version_number == 0xf1) { | +	} else if (lacpdu->version_number == 0xf1) { | ||||||
| +	    if (lacpdu->actor_info_len	!= 0x14 || | +	    if (lacpdu->actor_info_len	!= 0x14 || | ||||||
| +			lacpdu->partner_info_len	!= 0x14 || | +			lacpdu->partner_info_len	!= 0x14 || | ||||||
| +			lacpdu->collector_info_len	!= 0x10 || | +			lacpdu->collector_info_len	!= 0x10 || | ||||||
| +			lacpdu->v2.actor_retry_tlv_len != 0x04 || | +			lacpdu->v2.actor_retry_tlv_len != 0x04 || | ||||||
| +			lacpdu->v2.partner_retry_tlv_len != 0x04 || | +			lacpdu->v2.partner_retry_tlv_len != 0x04 || | ||||||
| +			lacpdu->v2.terminator_info_len	!= 0x00) | +			lacpdu->v2.terminator_info_len	!= 0x00) { | ||||||
|  | +			teamd_log_warn("malformed LACPv241 PDU came."); | ||||||
| +			return false; | +			return false; | ||||||
| +	} else { |  | ||||||
|  		return false; |  | ||||||
| +		} | +		} | ||||||
|  	return true; | +	} else { | ||||||
|  |  		teamd_log_warn("malformed LACP PDU came."); | ||||||
|  |  		return false; | ||||||
|  	} |  	} | ||||||
|   |  | ||||||
| @@ -154,6 +194,10 @@ struct lacp { | @@ -154,6 +194,10 @@ struct lacp { | ||||||
|  #define		LACP_CFG_DFLT_MIN_PORTS_MAX 1024 |  #define		LACP_CFG_DFLT_MIN_PORTS_MAX 1024 | ||||||
|  		enum lacp_agg_select_policy agg_select_policy; |  		enum lacp_agg_select_policy agg_select_policy; | ||||||
|   | |||||||
| @@ -58,8 +58,8 @@ index 3e8a0f6..b6a8647 100644 | |||||||
|  	int err; |  	int err; | ||||||
| +	struct timespec monotonic_time = {0}; | +	struct timespec monotonic_time = {0}; | ||||||
|   |   | ||||||
|  	if (!lacpdu_check(lacpdu)) { |  	if (!lacpdu_check(lacpdu)) | ||||||
|  		teamd_log_warn("malformed LACP PDU came."); |  		return 0; | ||||||
| @@ -1523,14 +1529,38 @@ static int lacpdu_process(struct lacp_port *lacp_port, struct lacpdu* lacpdu) | @@ -1523,14 +1529,38 @@ static int lacpdu_process(struct lacp_port *lacp_port, struct lacpdu* lacpdu) | ||||||
|  					lacp_port->partner_retry_count, |  					lacp_port->partner_retry_count, | ||||||
|  					lacpdu->v2.actor_retry_count); |  					lacpdu->v2.actor_retry_count); | ||||||
|   | |||||||
| @@ -1,13 +1,13 @@ | |||||||
| 0001-libteam-Temporarily-remove-redundant-debug-messages.patch | 0001-libteam-Temporarily-remove-redundant-debug-messages.patch | ||||||
| 0002-teamd-lacp-runner-will-send-lacp-update-right-after-.patch | 0002-teamd-lacp-runner-will-send-lacp-update-right-after-.patch | ||||||
| 0003-libteam-Add-fallback-support-for-single-member-port-.patch | 0003-libteam-Add-fallback-support-for-single-member-port-.patch | ||||||
| 0004-Skip-setting-the-same-hwaddr-to-lag-port-to-avoid-di.patch | #0004-Skip-setting-the-same-hwaddr-to-lag-port-to-avoid-di.patch | ||||||
| 0005-Increase-default-buffer-size-from-98304-to-983040.patch | 0005-Increase-default-buffer-size-from-98304-to-983040.patch | ||||||
| 0006-teamd-Administratively-shutdown-port-channel-has-mem.patch | 0006-teamd-Administratively-shutdown-port-channel-has-mem.patch | ||||||
| 0007-Send-LACP-PDU-immediately-if-our-state-changed.patch | #0007-Send-LACP-PDU-immediately-if-our-state-changed.patch | ||||||
| 0008-libteam-Add-warm_reboot-mode.patch | 0008-libteam-Add-warm_reboot-mode.patch | ||||||
| 0009-Fix-ifinfo_link_with_port-race-condition-with-newlink.patch | #0009-Fix-ifinfo_link_with_port-race-condition-with-newlink.patch | ||||||
| 0010-When-read-of-timerfd-returned-0-don-t-consider-this-.patch | #0010-When-read-of-timerfd-returned-0-don-t-consider-this-.patch | ||||||
| 0011-Remove-extensive-debug-output.patch | 0011-Remove-extensive-debug-output.patch | ||||||
| 0012-Increase-min_ports-upper-limit-to-1024.patch | 0012-Increase-min_ports-upper-limit-to-1024.patch | ||||||
| 0013-set-port-to-disabled-state-during-removal.patch | 0013-set-port-to-disabled-state-during-removal.patch | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Saikrishna Arcot
					Saikrishna Arcot