Skip to content

Commit

Permalink
Added rules to build syncd and orchagent containers for Cavium target (
Browse files Browse the repository at this point in the history
…#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
  • Loading branch information
garyachy authored and lguohan committed Dec 23, 2016
1 parent 66aebb3 commit b882549
Show file tree
Hide file tree
Showing 7 changed files with 83 additions and 17 deletions.
12 changes: 12 additions & 0 deletions platform/cavium/cavm-sai.mk
Original file line number Diff line number Diff line change
@@ -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 changes: 7 additions & 0 deletions platform/cavium/cavm_sdk/filelist.txt
Original file line number Diff line number Diff line change
@@ -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 changes: 7 additions & 0 deletions platform/cavium/docker-orchagent-cavm.mk
Original file line number Diff line number Diff line change
@@ -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 changes: 7 additions & 0 deletions platform/cavium/docker-syncd-cavm.mk
Original file line number Diff line number Diff line change
@@ -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 changes: 18 additions & 0 deletions platform/cavium/docker-syncd-cavm/Dockerfile.template
Original file line number Diff line number Diff line change
@@ -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 changes: 23 additions & 0 deletions platform/cavium/docker-syncd-cavm/start.sh
Original file line number Diff line number Diff line change
@@ -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
26 changes: 9 additions & 17 deletions platform/cavium/rules.mk
Original file line number Diff line number Diff line change
@@ -1,23 +1,15 @@
include $(PLATFORM_GENERIC_PATH)/rules.mk

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
include $(PLATFORM_PATH)/cavm-sai.mk
include $(PLATFORM_PATH)/docker-syncd-cavm.mk
include $(PLATFORM_PATH)/docker-orchagent-cavm.mk

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) \
$(DOCKER_FPM)
# Runtime dependency on cavium sai is set only for syncd
$(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)

0 comments on commit b882549

Please sign in to comment.