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:
parent
3a0a6899eb
commit
8506826348
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user