Skip to content

Commit 66b6c21

Browse files
authored
[Innovium] Backport platform fixes from master (#12526)
Syncd container restart for Innovium: #11497 Innovium platform shell #11845 Signed-off-by: rck-innovium [email protected]
1 parent 10c12e1 commit 66b6c21

File tree

7 files changed

+36
-10
lines changed

7 files changed

+36
-10
lines changed

platform/innovium/docker-syncd-invm-rpc.mk

+4-2
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,17 @@
22

33
DOCKER_SYNCD_INVM_RPC = docker-syncd-invm-rpc.gz
44
$(DOCKER_SYNCD_INVM_RPC)_PATH = $(PLATFORM_PATH)/docker-syncd-invm-rpc
5-
$(DOCKER_SYNCD_INVM_RPC)_DEPENDS += $(SYNCD_RPC) $(LIBTHRIFT) $(INVM_LIBSAI) $(PTF)
5+
$(DOCKER_SYNCD_INVM_RPC)_DEPENDS += $(SYNCD_RPC) $(LIBTHRIFT) $(INVM_LIBSAI) $(PTF) $(INVM_SHELL)
6+
$(DOCKER_SYNCD_INVM_RPC)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT)
67
$(DOCKER_SYNCD_INVM_RPC)_LOAD_DOCKERS += $(DOCKER_SYNCD_BASE)
78
SONIC_DOCKER_IMAGES += $(DOCKER_SYNCD_INVM_RPC)
9+
SONIC_BUSTER_DOCKERS += $(DOCKER_SYNCD_INVM_RPC)
810
ifeq ($(ENABLE_SYNCD_RPC),y)
911
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_INVM_RPC)
1012
endif
1113

1214
$(DOCKER_SYNCD_INVM_RPC)_CONTAINER_NAME = syncd
13-
$(DOCKER_SYNCD_INVM_RPC)_VERSION = 1.0.0+rpc
15+
$(DOCKER_SYNCD_INVM_RPC)_VERSION = 1.0.0-rpc
1416
$(DOCKER_SYNCD_INVM_RPC)_PACKAGE_NAME = syncd
1517
$(DOCKER_SYNCD_INVM_RPC)_RUN_OPT += --privileged -t
1618
$(DOCKER_SYNCD_INVM_RPC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf

platform/innovium/docker-syncd-invm-rpc/Dockerfile.j2

+1
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ RUN wget https://github.com/nanomsg/nanomsg/archive/1.0.0.tar.gz \
4646
&& rm -f 1.0.0.tar.gz \
4747
&& pip install numpy \
4848
&& pip install scipy \
49+
&& pip install setuptools \
4950
&& mkdir -p /opt \
5051
&& cd /opt \
5152
&& wget https://raw.githubusercontent.com/p4lang/ptf/master/ptf_nn/ptf_nn_agent.py \

platform/innovium/docker-syncd-invm.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
DOCKER_SYNCD_PLATFORM_CODE = invm
44
include $(PLATFORM_PATH)/../template/docker-syncd-base.mk
55

6-
$(DOCKER_SYNCD_BASE)_DEPENDS += $(SYNCD) $(PYTHON_SDK_API) $(INVM_LIBSAI)
6+
$(DOCKER_SYNCD_BASE)_DEPENDS += $(SYNCD) $(PYTHON_SDK_API) $(INVM_LIBSAI) $(INVM_SHELL)
77

88
$(DOCKER_SYNCD_BASE)_DBG_DEPENDS += $(SYNCD_DBG) \
99
$(LIBSWSSCOMMON_DBG) \

platform/innovium/docker-syncd-invm/Dockerfile.j2

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
FROM docker-config-engine-buster
22

33
ARG docker_container_name
4-
54
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
65

76
## Make apt-get non-interactive
@@ -25,7 +24,11 @@ RUN dpkg -i \
2524
debs/{{ deb }}{{' '}}
2625
{%- endfor %}
2726

27+
COPY ["start.sh", "/usr/bin/"]
28+
COPY ["ivm_start.sh", "/usr/bin/"]
2829
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
30+
COPY ["files/supervisor-proc-exit-listener", "/usr/bin"]
31+
COPY ["critical_processes", "/etc/supervisor/"]
2932

3033
## Clean up
3134
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y

platform/innovium/docker-syncd-invm/supervisord.conf

+21-3
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,47 @@ logfile_backups=2
44
nodaemon=true
55

66
[eventlistener:dependent-startup]
7-
command=python2 -m supervisord_dependent_startup
7+
command=python3 -m supervisord_dependent_startup
88
autostart=true
99
autorestart=unexpected
1010
startretries=0
1111
exitcodes=0,3
1212
events=PROCESS_STATE
13+
buffer_size=25
14+
15+
[eventlistener:supervisor-proc-exit-listener]
16+
command=/usr/bin/supervisor-proc-exit-listener --container-name syncd
17+
events=PROCESS_STATE_EXITED,PROCESS_STATE_RUNNING
18+
autostart=true
19+
autorestart=unexpected
1320
buffer_size=1024
1421

1522
[program:rsyslogd]
1623
command=/usr/sbin/rsyslogd -n -iNONE
1724
priority=1
1825
autostart=false
26+
autorestart=unexpected
27+
stdout_logfile=syslog
28+
stderr_logfile=syslog
29+
dependent_startup=true
30+
31+
[program:start]
32+
command=/usr/bin/start.sh
33+
priority=2
34+
autostart=false
1935
autorestart=false
36+
startsecs=0
2037
stdout_logfile=syslog
2138
stderr_logfile=syslog
2239
dependent_startup=true
40+
dependent_startup_wait_for=rsyslogd:running
2341

2442
[program:syncd]
2543
command=/usr/bin/syncd_start.sh
26-
priority=2
44+
priority=3
2745
autostart=false
2846
autorestart=false
2947
stdout_logfile=syslog
3048
stderr_logfile=syslog
3149
dependent_startup=true
32-
dependent_startup_wait_for=rsyslogd:running
50+
dependent_startup_wait_for=start:exited

platform/innovium/invm-sai.mk

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
# INVM SAI
22

3-
INVM_SAI_ONLINE = https://github.com/Innovium/SONiC/raw/master/debian/master
3+
INVM_SAI_ONLINE = https://github.com/Innovium/SONiC/raw/master/debian/202111
44

55
INVM_LIBSAI = isai.deb
66
INVM_HSAI = saihdr.deb
77
INVM_DRV = ipd.deb
8+
INVM_SHELL = ishell.deb
89

910
$(INVM_LIBSAI)_URL = $(INVM_SAI_ONLINE)/$(INVM_LIBSAI)
1011
$(INVM_HSAI)_URL = $(INVM_SAI_ONLINE)/$(INVM_HSAI)
1112
$(INVM_DRV)_URL = $(INVM_SAI_ONLINE)/$(INVM_DRV)
13+
$(INVM_SHELL)_URL = $(INVM_SAI_ONLINE)/$(INVM_SHELL)
1214

1315
$(eval $(call add_conflict_package,$(INVM_HSAI),$(LIBSAIVS_DEV)))
1416

15-
SONIC_ONLINE_DEBS += $(INVM_LIBSAI) $(INVM_HSAI) $(INVM_DRV)
17+
SONIC_ONLINE_DEBS += $(INVM_LIBSAI) $(INVM_HSAI) $(INVM_DRV) $(INVM_SHELL)

platform/innovium/rules.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ SONIC_ALL += $(SONIC_INVM_ONE_IMAGE) \
1313
$(DOCKER_SYNCD_INVM_RPC)
1414

1515
# Inject invm sai into syncd
16-
$(SYNCD)_DEPENDS += $(INVM_HSAI) $(INVM_LIBSAI) $(LIBSAITHRIFT_DEV_INVM)
16+
$(SYNCD)_DEPENDS += $(INVM_HSAI) $(INVM_LIBSAI) $(LIBSAITHRIFT_DEV_INVM) $(INVM_SHELL)
1717
$(SYNCD)_UNINSTALLS += $(INVM_HSAI)
1818

1919
# Runtime dependency on invm sai is set only for syncd

0 commit comments

Comments
 (0)