From 4853881312cacbae7d2e3ea23adb60fe11980467 Mon Sep 17 00:00:00 2001 From: Taras Keryk Date: Fri, 29 Jul 2022 13:00:51 +0300 Subject: [PATCH] [BFN] Provide unified approach to select P4 profile based on chip family (#1089) * Added check if SDE profile configured * put $PROFILE_DEFAULT into quotes, removed one extra space before $PROFILE_DEFAULT --- syncd/scripts/syncd_init_common.sh | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/syncd/scripts/syncd_init_common.sh b/syncd/scripts/syncd_init_common.sh index b4c9739fb..5e1d88982 100644 --- a/syncd/scripts/syncd_init_common.sh +++ b/syncd/scripts/syncd_init_common.sh @@ -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/