Added rules to build syncd and orchagent containers for Cavium target (#152)
* Cavium support in the new build infrastructure * Added a file with a list of cavium debian packages * docker-syncd-cavm : Added SAI and XDK libraries * docker-syncd-cavm : Removed redis-tools from docker template
This commit is contained in:
parent
66aebb329c
commit
b8825498da
12
platform/cavium/cavm-sai.mk
Normal file
12
platform/cavium/cavm-sai.mk
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# Cavium SAI
|
||||||
|
|
||||||
|
CAVM_LIBSAI = libsai.deb
|
||||||
|
$(CAVM_LIBSAI)_PATH = $(PLATFORM_PATH)/cavm_sdk
|
||||||
|
CAVM_SAI = sai.deb
|
||||||
|
$(CAVM_SAI)_PATH = $(PLATFORM_PATH)/cavm_sdk
|
||||||
|
XP_TOOLS = xp-tools.deb
|
||||||
|
$(XP_TOOLS)_PATH = $(PLATFORM_PATH)/cavm_sdk
|
||||||
|
XPSHELL = xpshell.deb
|
||||||
|
$(XPSHELL)_PATH = $(PLATFORM_PATH)/cavm_sdk
|
||||||
|
|
||||||
|
SONIC_COPY_DEBS += $(CAVM_LIBSAI) $(CAVM_SAI) $(XP_TOOLS) $(XPSHELL)
|
7
platform/cavium/cavm_sdk/filelist.txt
Normal file
7
platform/cavium/cavm_sdk/filelist.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
## Get vendor SAI SDK
|
||||||
|
## https://github.com/Azure/sonic-buildimage/blob/master/README.md#3-get-vendor-sai-sdk
|
||||||
|
|
||||||
|
libsai.deb
|
||||||
|
sai.deb
|
||||||
|
xp-tools.deb
|
||||||
|
xpshell.deb
|
7
platform/cavium/docker-orchagent-cavm.mk
Normal file
7
platform/cavium/docker-orchagent-cavm.mk
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# docker image for orchagent
|
||||||
|
|
||||||
|
DOCKER_ORCHAGENT_CAVM = docker-orchagent-cavm.gz
|
||||||
|
$(DOCKER_ORCHAGENT_CAVM)_PATH = $(DOCKERS_PATH)/docker-orchagent
|
||||||
|
$(DOCKER_ORCHAGENT_CAVM)_DEPENDS += $(SWSS) $(REDIS_TOOLS)
|
||||||
|
$(DOCKER_ORCHAGENT_CAVM)_LOAD_DOCKERS += $(DOCKER_BASE)
|
||||||
|
SONIC_DOCKER_IMAGES += $(DOCKER_ORCHAGENT_CAVM)
|
7
platform/cavium/docker-syncd-cavm.mk
Normal file
7
platform/cavium/docker-syncd-cavm.mk
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# docker image for cavium syncd
|
||||||
|
|
||||||
|
DOCKER_SYNCD_CAVM = docker-syncd-cavm.gz
|
||||||
|
$(DOCKER_SYNCD_CAVM)_PATH = $(PLATFORM_PATH)/docker-syncd-cavm
|
||||||
|
$(DOCKER_SYNCD_CAVM)_DEPENDS += $(SYNCD) $(CAVM_LIBSAI) $(XP_TOOLS) $(XPSHELL) $(REDIS_TOOLS)
|
||||||
|
$(DOCKER_SYNCD_CAVM)_LOAD_DOCKERS += $(DOCKER_BASE)
|
||||||
|
SONIC_DOCKER_IMAGES += $(DOCKER_SYNCD_CAVM)
|
18
platform/cavium/docker-syncd-cavm/Dockerfile.template
Executable file
18
platform/cavium/docker-syncd-cavm/Dockerfile.template
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
FROM docker-base
|
||||||
|
|
||||||
|
RUN apt-get update
|
||||||
|
|
||||||
|
COPY deps /deps
|
||||||
|
|
||||||
|
RUN apt-get -y install libpcap-dev libxml2-dev python-dev swig libsensors4-dev
|
||||||
|
|
||||||
|
SED_DPKG
|
||||||
|
|
||||||
|
COPY ["start.sh", "/usr/bin/"]
|
||||||
|
|
||||||
|
## Clean up
|
||||||
|
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
||||||
|
RUN rm -rf /deps
|
||||||
|
|
||||||
|
ENTRYPOINT ["/bin/bash"]
|
||||||
|
CMD ["/usr/bin/start.sh"]
|
23
platform/cavium/docker-syncd-cavm/start.sh
Executable file
23
platform/cavium/docker-syncd-cavm/start.sh
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
export XP_ROOT=/usr/bin/
|
||||||
|
|
||||||
|
service rsyslog start
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
|
||||||
|
# Check if redis-server starts
|
||||||
|
|
||||||
|
result=$(redis-cli ping)
|
||||||
|
|
||||||
|
if [ "$result" == "PONG" ]; then
|
||||||
|
|
||||||
|
redis-cli FLUSHALL
|
||||||
|
syncd -p /etc/ssw/AS7512/profile.ini -N
|
||||||
|
break
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
done
|
@ -1,23 +1,15 @@
|
|||||||
include $(PLATFORM_GENERIC_PATH)/rules.mk
|
include $(PLATFORM_GENERIC_PATH)/rules.mk
|
||||||
|
|
||||||
CAVM_LIBSAI = libsai.deb
|
include $(PLATFORM_PATH)/cavm-sai.mk
|
||||||
$(CAVM_LIBSAI)_PATH = $(PLATFORM_PATH)/cavm_sdk
|
include $(PLATFORM_PATH)/docker-syncd-cavm.mk
|
||||||
CAVM_SAI = sai.deb
|
include $(PLATFORM_PATH)/docker-orchagent-cavm.mk
|
||||||
$(CAVM_SAI)_PATH = $(PLATFORM_PATH)/cavm_sdk
|
|
||||||
XP_TOOLS = xp-tools.deb
|
|
||||||
$(XP_TOOLS)_PATH = $(PLATFORM_PATH)/cavm_sdk
|
|
||||||
XPSHELL = xpshell.deb
|
|
||||||
$(XPSHELL)_PATH = $(PLATFORM_PATH)/cavm_sdk
|
|
||||||
|
|
||||||
SONIC_COPY_DEBS += $(CAVM_LIBSAI) $(CAVM_SAI) $(XP_TOOLS) $(XPSHELL)
|
SONIC_ALL += $(DOCKER_SYNCD_CAVM) \
|
||||||
|
$(DOCKER_ORCHAGENT_CAVM)
|
||||||
|
|
||||||
# TODO: Put dependencies for SDK packages
|
# Inject cavium sai into sairedis
|
||||||
|
$(LIBSAIREDIS)_DEPENDS += $(CAVM_SAI) $(CAVM_LIBSAI)
|
||||||
|
|
||||||
SONIC_ALL += $(SONIC_GENERIC) $(DOCKER_SYNCD_CAVM) $(DOCKER_ORCHAGENT) \
|
# Runtime dependency on cavium sai is set only for syncd
|
||||||
$(DOCKER_FPM)
|
$(SYNCD)_RDEPENDS += $(CAVM_SAI)
|
||||||
|
|
||||||
# Inject cavm sai into sairedis
|
|
||||||
$(LIBSAIREDIS)_DEPENDS += $(CAVM_LIBSAI)
|
|
||||||
|
|
||||||
# Runtime dependency on cavm sai is set only for syncd
|
|
||||||
$(SYNCD)_RDEPENDS += $(CAVM_LIBSAI)
|
|
||||||
|
Loading…
Reference in New Issue
Block a user