Skip to content

Commit

Permalink
[BFN] Provide unified approach to select P4 profile based on chip fam…
Browse files Browse the repository at this point in the history
…ily (sonic-net#1089)

* Added check if SDE profile configured

* put $PROFILE_DEFAULT into quotes, removed one extra space before $PROFILE_DEFAULT
  • Loading branch information
Taras Keryk authored Jul 29, 2022
1 parent 71bfcda commit 0300a65
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions syncd/scripts/syncd_init_common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -248,13 +248,25 @@ config_syncd_barefoot()
echo "SAI_KEY_WARM_BOOT_READ_FILE=/var/warmboot/sai-warmboot.bin" >> $PROFILE_FILE
fi
CMD_ARGS+=" -l -p $PROFILE_FILE"

# Check and load SDE profile
# Check if SDE profile is configured
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
else
CHIP_FAMILY_INFO="$(cat $HWSKU_DIR/switch-tna-sai.conf | grep chip_family | awk -F : '{print $2}' | cut -d '"' -f 2)"
CHIP_FAMILY=${CHIP_FAMILY_INFO,,}
[[ "$CHIP_FAMILY" == "tofino" ]] && P4_PTYPE="x" || P4_PTYPE="y"
# Check if the current profile fits the ASIC family
PROFILE_DEFAULT=$(readlink /opt/bfn/install)
if [[ "$PROFILE_DEFAULT" != "install_$P4_PTYPE"*"_profile" && "$PROFILE_DEFAULT" != *"_$CHIP_FAMILY" ]]; then
# Find suitable profile
PROFILE=$(ls -d /opt/bfn/install_$P4_PTYPE*_profile -d /opt/bfn/install_*_$CHIP_FAMILY 2> /dev/null | head -1)
if [[ ! -z $PROFILE ]]; then
ln -srfn $PROFILE /opt/bfn/install
fi
fi
fi
export PYTHONHOME=/opt/bfn/install/
export PYTHONPATH=/opt/bfn/install/
Expand Down

0 comments on commit 0300a65

Please sign in to comment.