Skip to content

Commit 4bdccbd

Browse files
[Marvell]: Upgrade syncd, syncd-rpc and saiserver to bookworm (#18740)
* [Marvell] syncd migration to bookworm Signed-off-by: Pavan Naregundi <[email protected]> * Add docker-saiserver-mrvl Signed-off-by: Pavan Naregundi <[email protected]> * [Marvell-armhf] Update SAI SDK version to 1.13.0-3 Signed-off-by: Pavan Naregundi <[email protected]> --------- Signed-off-by: Pavan Naregundi <[email protected]>
1 parent d7ae4cb commit 4bdccbd

File tree

11 files changed

+115
-35
lines changed

11 files changed

+115
-35
lines changed

platform/marvell/docker-saiserver-mrvl.mk

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# docker image for mrvl saiserver
22

3-
DOCKER_SAISERVER_MRVL = docker-saiserver-mrvl.gz
3+
DOCKER_SAISERVER_MRVL = docker-saiserver$(SAITHRIFT_VER)-mrvl.gz
44
$(DOCKER_SAISERVER_MRVL)_PATH = $(PLATFORM_PATH)/docker-saiserver-mrvl
55
$(DOCKER_SAISERVER_MRVL)_DEPENDS += $(SAISERVER)
6-
$(DOCKER_SAISERVER_MRVL)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BULLSEYE)
6+
$(DOCKER_SAISERVER_MRVL)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BOOKWORM)
77
SONIC_DOCKER_IMAGES += $(DOCKER_SAISERVER_MRVL)
8-
SONIC_BULLSEYE_DOCKERS += $(DOCKER_SAISERVER_MRVL)
8+
SONIC_BOOKWORM_DOCKERS += $(DOCKER_SAISERVER_MRVL)
99

10-
$(DOCKER_SAISERVER_MRVL)_CONTAINER_NAME = saiserver
10+
$(DOCKER_SAISERVER_MRVL)_CONTAINER_NAME = saiserver$(SAITHRIFT_VER)
1111
$(DOCKER_SAISERVER_MRVL)_RUN_OPT += --privileged -t
1212
$(DOCKER_SAISERVER_MRVL)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
1313
$(DOCKER_SAISERVER_MRVL)_RUN_OPT += -v /var/run/docker-saiserver:/var/run/sswsyncd
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{% from "dockers/dockerfile-macros.j2" import install_debian_packages %}
2+
FROM docker-config-engine-bookworm-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}}
3+
4+
ARG docker_container_name
5+
6+
## Make apt-get non-interactive
7+
ENV DEBIAN_FRONTEND=noninteractive
8+
9+
RUN apt-get update \
10+
&& apt-get -y install \
11+
libboost-atomic1.74.0 \
12+
libqt5core5a \
13+
libqt5network5 \
14+
gdb \
15+
libthrift-0.17.0
16+
17+
COPY \
18+
{% for deb in docker_saiserver_mrvl_debs.split(' ') -%}
19+
debs/{{ deb }}{{' '}}
20+
{%- endfor -%}
21+
debs/
22+
23+
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; } ; \
24+
{% for deb in docker_saiserver_mrvl_debs.split(' ') -%}
25+
dpkg_apt debs/{{ deb }}{{'; '}}
26+
{%- endfor %}
27+
28+
COPY ["start.sh", "/usr/bin/"]
29+
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
30+
31+
## Clean up
32+
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
33+
RUN rm -rf /debs
34+
35+
ENTRYPOINT ["/usr/local/bin/supervisord"]
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/usr/bin/env bash
2+
3+
rm -f /var/run/rsyslogd.pid
4+
5+
supervisorctl start rsyslogd
6+
7+
supervisorctl start saiserver
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
[supervisord]
2+
logfile_maxbytes=1MB
3+
logfile_backups=2
4+
nodaemon=true
5+
6+
[program:start.sh]
7+
command=/usr/bin/start.sh
8+
priority=1
9+
autostart=true
10+
autorestart=false
11+
stdout_logfile=syslog
12+
stderr_logfile=syslog
13+
14+
[program:rsyslogd]
15+
command=/usr/sbin/rsyslogd -n
16+
priority=2
17+
autostart=false
18+
autorestart=false
19+
stdout_logfile=syslog
20+
stderr_logfile=syslog
21+
22+
[program:saiserver]
23+
command=/usr/sbin/saiserver -p /usr/share/sonic/hwsku/sai.profile -f /usr/share/sonic/hwsku/port_config.ini
24+
priority=3
25+
autostart=false
26+
autorestart=false
27+
stdout_logfile=syslog
28+
stderr_logfile=syslog

platform/marvell/docker-syncd-mrvl-rpc.mk

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
DOCKER_SYNCD_MRVL_RPC = docker-syncd-mrvl-rpc.gz
44
$(DOCKER_SYNCD_MRVL_RPC)_PATH = $(PLATFORM_PATH)/docker-syncd-mrvl-rpc
5-
$(DOCKER_SYNCD_MRVL_RPC)_DEPENDS += $(SYNCD_RPC) $(LIBTHRIFT) $(PTF)
5+
$(DOCKER_SYNCD_MRVL_RPC)_DEPENDS += $(SYNCD_RPC)
6+
$(DOCKER_SYNCD_MRVL_RPC)_PYTHON_WHEELS += $(PTF_PY3)
67
$(DOCKER_SYNCD_MRVL_RPC)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT)
78
ifeq ($(INSTALL_DEBUG_TOOLS), y)
89
$(DOCKER_SYNCD_MRVL_RPC)_DEPENDS += $(SYNCD_RPC_DBG) \
@@ -25,4 +26,4 @@ $(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
2526
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
2627
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += -v /host/warmboot:/var/warmboot
2728

28-
SONIC_BULLSEYE_DOCKERS += $(DOCKER_SYNCD_MRVL_RPC)
29+
SONIC_BOOKWORM_DOCKERS += $(DOCKER_SYNCD_MRVL_RPC)
Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
FROM docker-syncd-mrvl-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}}
2+
{% from "dockers/dockerfile-macros.j2" import install_python_wheels, copy_files %}
23

34
## Make apt-get non-interactive
45
ENV DEBIAN_FRONTEND=noninteractive
@@ -20,37 +21,39 @@ RUN apt-get update \
2021
build-essential \
2122
libssl-dev \
2223
libffi-dev \
23-
python-dev \
24+
python3-dev \
2425
wget \
25-
cmake \
2626
libqt5core5a \
2727
libqt5network5 \
28-
libboost-atomic1.74.0
28+
libboost-atomic1.74.0 \
29+
libthrift-0.17.0 \
30+
libnanomsg5 \
31+
libnanomsg-dev
2932

3033
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; } ; \
3134
{% for deb in docker_syncd_mrvl_rpc_debs.split(' ') -%}
3235
dpkg_apt debs/{{ deb }}{{'; '}}
3336
{%- endfor %}
3437

35-
RUN wget https://github.com/nanomsg/nanomsg/archive/1.0.0.tar.gz \
36-
&& tar xvfz 1.0.0.tar.gz \
37-
&& cd nanomsg-1.0.0 \
38-
&& mkdir -p build \
39-
&& cmake . \
40-
&& make install \
41-
&& ldconfig \
42-
&& cd .. \
43-
&& rm -fr nanomsg-1.0.0 \
44-
&& rm -f 1.0.0.tar.gz \
45-
&& pip3 install cffi==1.7.0 \
46-
&& pip3 install --upgrade cffi==1.7.0 \
38+
RUN pip3 install cffi \
4739
&& pip3 install nnpy \
4840
&& mkdir -p /opt \
4941
&& cd /opt \
50-
&& wget https://raw.githubusercontent.com/p4lang/ptf/master/ptf_nn/ptf_nn_agent.py \
51-
&& apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y \
52-
&& rm -rf /root/deps
42+
&& wget https://raw.githubusercontent.com/p4lang/ptf/master/ptf_nn/ptf_nn_agent.py
5343

5444
COPY ["ptf_nn_agent.conf", "/etc/supervisor/conf.d/"]
5545

46+
{% if docker_syncd_mrvl_rpc_whls.strip() -%}
47+
# Copy locally-built Python wheel dependencies
48+
{{ copy_files("python-wheels/", docker_syncd_mrvl_rpc_whls.split(' '), "/python-wheels/") }}
49+
50+
# Install locally-built Python wheel dependencies
51+
{{ install_python_wheels(docker_syncd_mrvl_rpc_whls.split(' ')) }}
52+
{% endif %}
53+
54+
## Clean up
55+
RUN apt-get purge -y libyaml-dev python3-dev libffi-dev libssl-dev wget build-essential
56+
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
57+
RUN rm -rf /root/deps
58+
5659
ENTRYPOINT ["/usr/local/bin/supervisord"]

platform/marvell/docker-syncd-mrvl.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# docker image for mrvl syncd
22

33
DOCKER_SYNCD_PLATFORM_CODE = mrvl
4-
include $(PLATFORM_PATH)/../template/docker-syncd-bullseye.mk
4+
include $(PLATFORM_PATH)/../template/docker-syncd-bookworm.mk
55

66
$(DOCKER_SYNCD_BASE)_DEPENDS += $(SYNCD)
77
$(DOCKER_SYNCD_BASE)_DEPENDS += $(MRVL_SAI)

platform/marvell/docker-syncd-mrvl/Dockerfile.j2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{% from "dockers/dockerfile-macros.j2" import install_debian_packages %}
2-
FROM docker-config-engine-bullseye-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}}
2+
FROM docker-config-engine-bookworm-{{DOCKER_USERNAME}}:{{DOCKER_USERTAG}}
33

44
ARG docker_container_name
55

@@ -19,7 +19,7 @@ RUN apt-get update \
1919
net-tools \
2020
iputils-ping
2121

22-
RUN apt-get -y install libpcap-dev libxml2-dev python-dev swig libsensors4-dev nfs-common
22+
RUN apt-get -y install libpcap-dev libxml2-dev python3-dev swig
2323

2424
RUN dpkg -i \
2525
{% for deb in docker_syncd_mrvl_debs.split(' ') -%}

platform/marvell/libsaithrift-dev.mk

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,24 @@
22

33
SAI_VER = 0.9.4
44

5-
LIBSAITHRIFT_DEV = libsaithrift-dev_$(SAI_VER)_$(CONFIGURED_ARCH).deb
5+
LIBSAITHRIFT_DEV = libsaithrift$(SAITHRIFT_VER)-dev_$(SAI_VER)_$(CONFIGURED_ARCH).deb
66
$(LIBSAITHRIFT_DEV)_SRC_PATH = $(SRC_PATH)/sonic-sairedis/SAI
7-
$(LIBSAITHRIFT_DEV)_DEPENDS += $(LIBTHRIFT) $(LIBTHRIFT_DEV) $(PYTHON_THRIFT) $(THRIFT_COMPILER) $(MRVL_FPA) $(MRVL_SAI)
8-
$(LIBSAITHRIFT_DEV)_RDEPENDS += $(LIBTHRIFT) $(MRVL_SAI)
7+
8+
ifeq ($(SAITHRIFT_V2),y)
9+
$(LIBSAITHRIFT_DEV)_BUILD_ENV = SAITHRIFTV2=true SAITHRIFT_VER=v2
10+
endif
11+
12+
$(LIBSAITHRIFT_DEV)_DEPENDS += $(MRVL_SAI) $(LIBSAIMETADATA) $(LIBSAIMETADATA_DEV)
13+
$(LIBSAITHRIFT_DEV)_RDEPENDS += $(MRVL_SAI) $(LIBSAIMETADATA)
914
SONIC_DPKG_DEBS += $(LIBSAITHRIFT_DEV)
1015

11-
PYTHON_SAITHRIFT = python-saithrift_$(SAI_VER)_$(CONFIGURED_ARCH).deb
16+
PYTHON_SAITHRIFT = python-saithrift$(SAITHRIFT_VER)_$(SAI_VER)_$(CONFIGURED_ARCH).deb
1217
$(eval $(call add_extra_package,$(LIBSAITHRIFT_DEV),$(PYTHON_SAITHRIFT)))
1318

14-
SAISERVER = saiserver_$(SAI_VER)_$(CONFIGURED_ARCH).deb
15-
$(SAISERVER)_RDEPENDS += $(LIBTHRIFT) $(MRVL_SAI)
19+
SAISERVER = saiserver$(SAITHRIFT_VER)_$(SAI_VER)_$(CONFIGURED_ARCH).deb
20+
$(SAISERVER)_RDEPENDS += $(LIBSAITHRIFT_DEV)
1621
$(eval $(call add_extra_package,$(LIBSAITHRIFT_DEV),$(SAISERVER)))
1722

18-
SAISERVER_DBG = saiserver-dbg_$(SAI_VER)_$(CONFIGURED_ARCH).deb
23+
SAISERVER_DBG = saiserver$(SAITHRIFT_VER)-dbg_$(SAI_VER)_$(CONFIGURED_ARCH).deb
1924
$(SAISERVER_DBG)_RDEPENDS += $(SAISERVER)
2025
$(eval $(call add_extra_package,$(LIBSAITHRIFT_DEV),$(SAISERVER_DBG)))

platform/marvell/rules.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ $(SYNCD)_DEPENDS += $(MRVL_SAI)
1919
$(SYNCD)_UNINSTALLS += $(MRVL_SAI)
2020

2121
ifeq ($(ENABLE_SYNCD_RPC),y)
22+
$(SYNCD)_DEPENDS := $(filter-out $(LIBTHRIFT_DEV),$($(SYNCD)_DEPENDS))
2223
$(SYNCD)_DEPENDS += $(LIBSAITHRIFT_DEV)
2324
endif
2425

0 commit comments

Comments
 (0)