diff --git a/platform/barefoot/bfn-sai.mk b/platform/barefoot/bfn-sai.mk index c61abeb0ae5..0358f3d4a8a 100644 --- a/platform/barefoot/bfn-sai.mk +++ b/platform/barefoot/bfn-sai.mk @@ -3,7 +3,7 @@ $(BFN_SAI)_URL = "https://github.com/barefootnetworks/sonic-release-pkgs/raw/dev $(BFN_SAI)_DEPENDS += $(LIBNL_GENL3_DEV) $(eval $(call add_conflict_package,$(BFN_SAI),$(LIBSAIVS_DEV))) -$(BFN_SAI)_RDEPENDS += $(LIBNL_GENL3) +$(BFN_SAI)_RDEPENDS += $(LIBNL_GENL3) $(BFN_PLATFORM) SONIC_ONLINE_DEBS += $(BFN_SAI) $(BFN_SAI_DEV)_DEPENDS += $(BFN_SAI) diff --git a/platform/barefoot/docker-saiserver-bfn/Dockerfile.j2 b/platform/barefoot/docker-saiserver-bfn/Dockerfile.j2 index eff612acc6f..ff1c19bb6fc 100644 --- a/platform/barefoot/docker-saiserver-bfn/Dockerfile.j2 +++ b/platform/barefoot/docker-saiserver-bfn/Dockerfile.j2 @@ -11,6 +11,7 @@ ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update \ && apt-get -y install \ gdb \ + libedit2 \ libboost-atomic1.71.0 COPY \ @@ -23,6 +24,7 @@ debs/ {{ install_debian_packages(docker_saiserver_bfn_debs.split(' ')) }} COPY ["start.sh", "/usr/bin/"] +COPY ["start_saiserver.sh", "/usr/bin/"] COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] diff --git a/platform/barefoot/docker-saiserver-bfn/start_saiserver.sh b/platform/barefoot/docker-saiserver-bfn/start_saiserver.sh new file mode 100755 index 00000000000..5b8873cd6ae --- /dev/null +++ b/platform/barefoot/docker-saiserver-bfn/start_saiserver.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +# Check and load SDE profile +P4_PROFILE=$(sonic-cfggen -d -v 'DEVICE_METADATA["localhost"]["p4_profile"]') +if [[ -n "$P4_PROFILE" ]]; then + if [[ ( -d /opt/bfn/install_${P4_PROFILE} ) && ( -L /opt/bfn/install || ! -e /opt/bfn/install ) ]]; then + ln -srfn /opt/bfn/install_${P4_PROFILE} /opt/bfn/install + fi +fi +export PYTHONHOME=/opt/bfn/install/ +export PYTHONPATH=/opt/bfn/install/ +export ONIE_PLATFORM=`grep onie_platform /etc/machine.conf | awk 'BEGIN { FS = "=" } ; { print $2 }'` +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/bfn/install/lib:/opt/bfn/install/lib/platform/$ONIE_PLATFORM:/opt/bfn/install/lib:/opt/bfn/install/lib/tofinopd/switch +./opt/bfn/install/bin/dma_setup.sh +/usr/sbin/saiserver -p /etc/sai/profile.ini -f /etc/sai/portmap.ini \ No newline at end of file diff --git a/platform/barefoot/docker-saiserver-bfn/supervisord.conf b/platform/barefoot/docker-saiserver-bfn/supervisord.conf index 9866a1a1de0..6129d4f8fc4 100644 --- a/platform/barefoot/docker-saiserver-bfn/supervisord.conf +++ b/platform/barefoot/docker-saiserver-bfn/supervisord.conf @@ -20,7 +20,7 @@ stdout_logfile=syslog stderr_logfile=syslog [program:saiserver] -command=/usr/sbin/saiserver -p /etc/sai/profile.ini -f /etc/sai/portmap.ini +command=/usr/bin/start_saiserver.sh priority=3 autostart=false autorestart=false