parent
7fca49e7df
commit
9c5988fa7c
17
platform/marvell/docker-orchagent-mrvl.mk
Normal file
17
platform/marvell/docker-orchagent-mrvl.mk
Normal file
@ -0,0 +1,17 @@
|
||||
# docker image for orchagent
|
||||
|
||||
DOCKER_ORCHAGENT_MRVL = docker-orchagent-mrvl.gz
|
||||
$(DOCKER_ORCHAGENT_MRVL)_PATH = $(DOCKERS_PATH)/docker-orchagent
|
||||
$(DOCKER_ORCHAGENT_MRVL)_DEPENDS += $(SWSS) $(REDIS_TOOLS)
|
||||
$(DOCKER_ORCHAGENT_MRVL)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_ORCHAGENT_MRVL)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_ORCHAGENT_MRVL)
|
||||
|
||||
$(DOCKER_ORCHAGENT_MRVL)_CONTAINER_NAME = swss
|
||||
$(DOCKER_ORCHAGENT_MRVL)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_ORCHAGENT_MRVL)_RUN_OPT += -v /etc/network/interfaces:/etc/network/interfaces:ro
|
||||
$(DOCKER_ORCHAGENT_MRVL)_RUN_OPT += -v /etc/network/interfaces.d/:/etc/network/interfaces.d/:ro
|
||||
$(DOCKER_ORCHAGENT_MRVL)_RUN_OPT += -v /host/machine.conf:/host/machine.conf
|
||||
$(DOCKER_ORCHAGENT_MRVL)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
||||
$(DOCKER_ORCHAGENT_MRVL)_BASE_IMAGE_FILES += swssloglevel:/usr/bin/swssloglevel
|
15
platform/marvell/docker-syncd-mrvl-rpc.mk
Normal file
15
platform/marvell/docker-syncd-mrvl-rpc.mk
Normal file
@ -0,0 +1,15 @@
|
||||
# docker image for mrvl syncd with rpc
|
||||
|
||||
DOCKER_SYNCD_MRVL_RPC = docker-syncd-mrvl-rpc.gz
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_PATH = $(PLATFORM_PATH)/docker-syncd-mrvl-rpc
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_DEPENDS += $(SYNCD_RPC) $(LIBTHRIFT)
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_LOAD_DOCKERS += $(DOCKER_SYNCD_MRVL)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_SYNCD_MRVL_RPC)
|
||||
ifeq ($(ENABLE_SYNCD_RPC),y)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_MRVL_RPC)
|
||||
endif
|
||||
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_CONTAINER_NAME = syncd
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SYNCD_MRVL_RPC)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
2
platform/marvell/docker-syncd-mrvl-rpc/99-syncd.conf
Normal file
2
platform/marvell/docker-syncd-mrvl-rpc/99-syncd.conf
Normal file
@ -0,0 +1,2 @@
|
||||
sysctl -w net.core.rmem_max=509430500
|
||||
|
51
platform/marvell/docker-syncd-mrvl-rpc/Dockerfile.j2
Normal file
51
platform/marvell/docker-syncd-mrvl-rpc/Dockerfile.j2
Normal file
@ -0,0 +1,51 @@
|
||||
FROM docker-syncd-mrvl
|
||||
|
||||
## Make apt-get non-interactive
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
COPY \
|
||||
{% for deb in docker_syncd_mrvl_rpc_debs.split(' ') -%}
|
||||
debs/{{ deb }}{{' '}}
|
||||
{%- endfor -%}
|
||||
debs/
|
||||
|
||||
RUN dpkg -P syncd
|
||||
|
||||
RUN dpkg_apt() { [ -f $1 ] && { dpkg -i $1 || apt-get -y install -f; } || return 1; } ; \
|
||||
{% for deb in docker_syncd_mrvl_rpc_debs.split(' ') -%}
|
||||
dpkg_apt debs/{{ deb }}{{'; '}}
|
||||
{%- endfor %}
|
||||
|
||||
## Pre-install the fundamental packages
|
||||
RUN apt-get update \
|
||||
&& apt-get -y install \
|
||||
net-tools \
|
||||
python-pip \
|
||||
build-essential \
|
||||
libssl-dev \
|
||||
libffi-dev \
|
||||
python-dev \
|
||||
wget \
|
||||
cmake \
|
||||
&& wget https://github.com/nanomsg/nanomsg/archive/1.0.0.tar.gz \
|
||||
&& tar xvfz 1.0.0.tar.gz \
|
||||
&& cd nanomsg-1.0.0 \
|
||||
&& mkdir -p build \
|
||||
&& cmake . \
|
||||
&& make install \
|
||||
&& ldconfig \
|
||||
&& cd .. \
|
||||
&& rm -fr nanomsg-1.0.0 \
|
||||
&& rm -f 1.0.0.tar.gz \
|
||||
&& pip install cffi==1.7.0 \
|
||||
&& pip install --upgrade cffi==1.7.0 \
|
||||
&& pip install nnpy \
|
||||
&& mkdir -p /opt \
|
||||
&& cd /opt \
|
||||
&& wget https://raw.githubusercontent.com/p4lang/ptf/master/ptf_nn/ptf_nn_agent.py \
|
||||
&& apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y \
|
||||
&& rm -rf /root/deps
|
||||
|
||||
COPY ["ptf_nn_agent.conf", "/etc/supervisor/conf.d/"]
|
||||
|
||||
ENTRYPOINT ["/usr/bin/supervisord"]
|
10
platform/marvell/docker-syncd-mrvl-rpc/ptf_nn_agent.conf
Normal file
10
platform/marvell/docker-syncd-mrvl-rpc/ptf_nn_agent.conf
Normal file
@ -0,0 +1,10 @@
|
||||
[program:ptf_nn_agent]
|
||||
command=/usr/bin/python /opt/ptf_nn_agent.py --device-socket 1@tcp://0.0.0.0:10900 -i 1-3@Ethernet12 --set-iface-rcv-buffer=109430400
|
||||
process_name=ptf_nn_agent
|
||||
stdout_logfile=/tmp/ptf_nn_agent.out.log
|
||||
stderr_logfile=/tmp/ptf_nn_agent.err.log
|
||||
redirect_stderr=false
|
||||
autostart=true
|
||||
autorestart=true
|
||||
startsecs=1
|
||||
numprocs=1
|
15
platform/marvell/docker-syncd-mrvl.mk
Normal file
15
platform/marvell/docker-syncd-mrvl.mk
Normal file
@ -0,0 +1,15 @@
|
||||
# docker image for mrvl syncd
|
||||
|
||||
DOCKER_SYNCD_MRVL = docker-syncd-mrvl.gz
|
||||
$(DOCKER_SYNCD_MRVL)_PATH = $(PLATFORM_PATH)/docker-syncd-mrvl
|
||||
$(DOCKER_SYNCD_MRVL)_DEPENDS += $(SYNCD) $(MRVL_FPA) $(REDIS_TOOLS)
|
||||
$(DOCKER_SYNCD_MRVL)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_SYNCD_MRVL)
|
||||
ifneq ($(ENABLE_SYNCD_RPC),y)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_MRVL)
|
||||
endif
|
||||
|
||||
$(DOCKER_SYNCD_MRVL)_CONTAINER_NAME = syncd
|
||||
$(DOCKER_SYNCD_MRVL)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_SYNCD_MRVL)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SYNCD_MRVL)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
29
platform/marvell/docker-syncd-mrvl/Dockerfile.j2
Executable file
29
platform/marvell/docker-syncd-mrvl/Dockerfile.j2
Executable file
@ -0,0 +1,29 @@
|
||||
FROM docker-config-engine
|
||||
|
||||
## Make apt-get non-interactive
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update
|
||||
|
||||
COPY \
|
||||
{% for deb in docker_syncd_mrvl_debs.split(' ') -%}
|
||||
debs/{{ deb }}{{' '}}
|
||||
{%- endfor -%}
|
||||
debs/
|
||||
|
||||
RUN apt-get -y install libpcap-dev libxml2-dev python-dev swig libsensors4-dev libjemalloc1 nfs-common
|
||||
|
||||
RUN dpkg -i \
|
||||
{% for deb in docker_syncd_mrvl_debs.split(' ') -%}
|
||||
debs/{{ deb }}{{' '}}
|
||||
{%- endfor %}
|
||||
|
||||
COPY ["start.sh", "syncd.sh", "/usr/bin/"]
|
||||
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
|
||||
|
||||
## Clean up
|
||||
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
||||
RUN rm -rf /debs
|
||||
|
||||
ENTRYPOINT ["/usr/bin/supervisord"]
|
||||
|
8
platform/marvell/docker-syncd-mrvl/start.sh
Executable file
8
platform/marvell/docker-syncd-mrvl/start.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
rm -f /var/run/rsyslogd.pid
|
||||
|
||||
supervisorctl start rsyslogd
|
||||
|
||||
supervisorctl start syncd
|
||||
|
29
platform/marvell/docker-syncd-mrvl/supervisord.conf
Normal file
29
platform/marvell/docker-syncd-mrvl/supervisord.conf
Normal file
@ -0,0 +1,29 @@
|
||||
[supervisord]
|
||||
logfile_maxbytes=1MB
|
||||
logfile_backups=2
|
||||
nodaemon=true
|
||||
|
||||
[program:start.sh]
|
||||
command=/usr/bin/start.sh
|
||||
priority=1
|
||||
autostart=true
|
||||
autorestart=false
|
||||
stdout_logfile=syslog
|
||||
stderr_logfile=syslog
|
||||
|
||||
[program:rsyslogd]
|
||||
command=/usr/sbin/rsyslogd -n
|
||||
priority=2
|
||||
autostart=false
|
||||
autorestart=false
|
||||
stdout_logfile=syslog
|
||||
stderr_logfile=syslog
|
||||
|
||||
[program:syncd]
|
||||
command=/usr/bin/syncd_start.sh
|
||||
priority=3
|
||||
autostart=false
|
||||
autorestart=false
|
||||
stdout_logfile=syslog
|
||||
stderr_logfile=syslog
|
||||
|
12
platform/marvell/docker-syncd-mrvl/syncd.sh
Executable file
12
platform/marvell/docker-syncd-mrvl/syncd.sh
Executable file
@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function clean_up {
|
||||
service syncd stop
|
||||
exit
|
||||
}
|
||||
|
||||
trap clean_up SIGTERM SIGKILL
|
||||
|
||||
service syncd start
|
||||
|
||||
read
|
7
platform/marvell/libsaithrift-dev.mk
Normal file
7
platform/marvell/libsaithrift-dev.mk
Normal file
@ -0,0 +1,7 @@
|
||||
# libsaithrift-dev package
|
||||
|
||||
LIBSAITHRIFT_DEV_MRVL = libsaithrift-dev_0.9.4_amd64.deb
|
||||
$(LIBSAITHRIFT_DEV_MRVL)_SRC_PATH = $(SRC_PATH)/SAI
|
||||
$(LIBSAITHRIFT_DEV_MRVL)_DEPENDS += $(LIBTHRIFT) $(LIBTHRIFT_DEV) $(THRIFT_COMPILER) $(MRVL_FPA) $(MRVL_SAI)
|
||||
$(LIBSAITHRIFT_DEV_MRVL)_RDEPENDS += $(LIBTHRIFT) $(MRVL_SAI)
|
||||
SONIC_DPKG_DEBS += $(LIBSAITHRIFT_DEV_MRVL)
|
7
platform/marvell/one-image.mk
Normal file
7
platform/marvell/one-image.mk
Normal file
@ -0,0 +1,7 @@
|
||||
# sonic marvell one image installer
|
||||
|
||||
SONIC_ONE_IMAGE = sonic-marvell.bin
|
||||
$(SONIC_ONE_IMAGE)_MACHINE = marvell
|
||||
$(SONIC_ONE_IMAGE)_IMAGE_TYPE = onie
|
||||
$(SONIC_ONE_IMAGE)_DOCKERS += $(SONIC_INSTALL_DOCKER_IMAGES)
|
||||
SONIC_INSTALLERS += $(SONIC_ONE_IMAGE)
|
0
platform/marvell/platform.conf
Normal file
0
platform/marvell/platform.conf
Normal file
6
platform/marvell/python-saithrift.mk
Normal file
6
platform/marvell/python-saithrift.mk
Normal file
@ -0,0 +1,6 @@
|
||||
# python-saithrift package
|
||||
|
||||
PYTHON_SAITHRIFT_MRVL = python-saithrift_0.9.4_amd64.deb
|
||||
$(PYTHON_SAITHRIFT_MRVL)_SRC_PATH = $(SRC_PATH)/SAI
|
||||
$(PYTHON_SAITHRIFT_MRVL)_DEPENDS += $(MRVL_FPA) $(MRVL_SAI) $(THRIFT_COMPILER) $(PYTHON_THRIFT) $(LIBTHRIFT_DEV)
|
||||
SONIC_DPKG_DEBS += $(PYTHON_SAITHRIFT_MRVL)
|
18
platform/marvell/rules.mk
Normal file
18
platform/marvell/rules.mk
Normal file
@ -0,0 +1,18 @@
|
||||
include $(PLATFORM_PATH)/sdk.mk
|
||||
include $(PLATFORM_PATH)/sai.mk
|
||||
include $(PLATFORM_PATH)/docker-syncd-mrvl.mk
|
||||
include $(PLATFORM_PATH)/docker-syncd-mrvl-rpc.mk
|
||||
include $(PLATFORM_PATH)/docker-orchagent-mrvl.mk
|
||||
include $(PLATFORM_PATH)/libsaithrift-dev.mk
|
||||
include $(PLATFORM_PATH)/python-saithrift.mk
|
||||
include $(PLATFORM_PATH)/one-image.mk
|
||||
|
||||
SONIC_ALL += $(SONIC_ONE_IMAGE) \
|
||||
$(DOCKER_FPM) \
|
||||
$(DOCKER_SYNCD_MRVL_RPC)
|
||||
|
||||
# Inject mrvl sai into sairedis
|
||||
$(LIBSAIREDIS)_DEPENDS += $(MRVL_FPA) $(MRVL_SAI) $(LIBSAITHRIFT_DEV_MRVL)
|
||||
|
||||
# Runtime dependency on mrvl sai is set only for syncd
|
||||
$(SYNCD)_RDEPENDS += $(MRVL_SAI)
|
9
platform/marvell/sai.mk
Normal file
9
platform/marvell/sai.mk
Normal file
@ -0,0 +1,9 @@
|
||||
# Marvell SAI
|
||||
|
||||
export MRVL_SAI_VERSION = 1.0.1
|
||||
export MRVL_SAI_TAG = SONiC.201705
|
||||
export MRVL_SAI = mrvllibsai_$(MRVL_SAI_VERSION).deb
|
||||
|
||||
$(MRVL_SAI)_SRC_PATH = $(PLATFORM_PATH)/sai
|
||||
$(MRVL_SAI)_DEPENDS += $(MRVL_FPA)
|
||||
SONIC_MAKE_DEBS += $(MRVL_SAI)
|
9
platform/marvell/sai/Makefile
Normal file
9
platform/marvell/sai/Makefile
Normal file
@ -0,0 +1,9 @@
|
||||
.ONESHELL:
|
||||
SHELL = /bin/bash
|
||||
.SHELLFLAGS += -e
|
||||
|
||||
MRVL_SAI_URL = https://github.com/Marvell-switching/SAI-plugin/raw/$(MRVL_SAI_TAG)/sai_deb/$(MRVL_SAI)
|
||||
|
||||
$(addprefix $(DEST)/, $(MRVL_SAI)): $(DEST)/% :
|
||||
# get deb package
|
||||
wget -O $(DEST)/$(MRVL_SAI) $(MRVL_SAI_URL)
|
8
platform/marvell/sdk.mk
Normal file
8
platform/marvell/sdk.mk
Normal file
@ -0,0 +1,8 @@
|
||||
# Marvell FPA
|
||||
|
||||
export MRVL_FPA_VERSION = 1.0.1
|
||||
export MRVL_FPA_TAG = SONiC.201705
|
||||
export MRVL_FPA = mrvllibfpa_$(MRVL_FPA_VERSION).deb
|
||||
|
||||
$(MRVL_FPA)_SRC_PATH = $(PLATFORM_PATH)/sdk
|
||||
SONIC_MAKE_DEBS += $(MRVL_FPA)
|
9
platform/marvell/sdk/Makefile
Normal file
9
platform/marvell/sdk/Makefile
Normal file
@ -0,0 +1,9 @@
|
||||
.ONESHELL:
|
||||
SHELL = /bin/bash
|
||||
.SHELLFLAGS += -e
|
||||
|
||||
MRVL_FPA_URL = https://github.com/Marvell-switching/SAI-plugin/raw/$(MRVL_FPA_TAG)/sdk_deb/$(MRVL_FPA)
|
||||
|
||||
$(addprefix $(DEST)/, $(MRVL_FPA)): $(DEST)/% :
|
||||
# get deb package
|
||||
wget -O $(DEST)/$(MRVL_FPA) $(MRVL_FPA_URL)
|
Loading…
Reference in New Issue
Block a user