Hello,
I'm following the guidelines on the following page to build SONiC with PINS, aiming to deploy ithe build output as a soft switch with p4 enabled:
Here, "p4" is listed as a platform.
I'm following the above page along with the SONiC build documentation here:
When building, at the last two stages, I do:
make configure PLATFORM=p4
make build target/sonic-p4.bin
However, this does not produce the output files for SONiC containers in the "target" directory.
Alternatively, I also tried the following:
make configure PLATFORM=vs
make build target/sonic-vs.bin
Unfortunately, this does not produce a separate P4 container. However, the high level design of the PINS SONiC on this page shows that there should be a separate p4rt container:
Please note that in both cases I modified the rules/config file, and made the following changes, one of which is to include p4 runtime:
SONIC_CONFIG_BUILD_JOBS = 4
INCLUDE_P4RT = y
TELEMETRY_WRITABLE = y
SONIC_CONFIG_ENABLE_COLORS = y
ENABLE_ZTP = y
SHUTDOWN_BGP_ON_START = n
ENABLE_HOST_SERVICE_ON_START = y
SONIC_DPKG_CACHE_METHOD ?= rwcache
I'm building in Ubuntu 18.04, and made the following change in the Makefile:
NOJESSIE ?= 1
NOSTRETCH ?= 1
NOBUSTER ?= 0
NOBULLSEYE ?= 1
Here, NOBUSTER ?=0 allows for building for Buster (hence for 18.04).
(Note that enabling this for Bullseye also returned errors, and the PINS page notes that "Debian Buster is the currently supported version".)
I used these settings for both PLATFORM=vs and PLATFORM=p4 cases.
I can see container files only for the PLATFORM=vs case.
Here are the set of output in the "target" directory in the "vs" case:
docker-base-buster.gz
docker-config-engine-buster.gz
docker-fpm-frr.gz
docker-gbsyncd-vs.gz
docker-lldp.gz
docker-macsec.gz
docker-mux.gz
docker-nat.gz
docker-orchagent.gz
docker-platform-monitor.gz
docker-router-advertiser.gz
docker-sflow.gz
docker-snmp.gz
docker-sonic-mgmt-framework.gz
docker-swss-layer-buster.gz
docker-syncd-vs.gz
docker-teamd.gz
Can you help me identify any missing steps please? Did I follow the instructions as necessary?
Thanks in advance,
Serdar