Compare commits

..

1 Commits

Author SHA1 Message Date
StormLiangMS
7b0e38eec7
[202305]add branch info for gitmodules (#15213)
Why I did it
To add branch info for submodules of 202305 branch

Work item tracking
Microsoft ADO (21450860):
How I did it
To modify the .gitmodule file to have 202305 branch for repos

How to verify it
Pass PR build
2023-05-26 07:43:46 +08:00
3069 changed files with 72387 additions and 405149 deletions

View File

@ -33,14 +33,13 @@ parameters:
type: object type: object
default: default:
- vs - vs
- barefoot
- broadcom - broadcom
- centec - centec
- centec-arm64 - centec-arm64
- generic - generic
- marvell-armhf - marvell-armhf
- marvell-arm64
- mellanox - mellanox
- pensando
stages: stages:
- stage: Prepare - stage: Prepare
@ -74,7 +73,7 @@ stages:
- template: azure-pipelines-build.yml - template: azure-pipelines-build.yml
parameters: parameters:
jobFilters: ${{ parameters.jobFilters }} jobFilters: ${{ parameters.jobFilters }}
buildOptions: '${{ variables.VERSION_CONTROL_OPTIONS }} ENABLE_DOCKER_BASE_PULL=n SONIC_BUILD_JOBS=$(nproc) ENABLE_IMAGE_SIGNATURE=y' buildOptions: '${{ variables.VERSION_CONTROL_OPTIONS }} ENABLE_DOCKER_BASE_PULL=n SONIC_BUILD_JOBS=$(nproc) ENABLE_IMAGE_SIGNATURE=y $(OVERRIDE_BUILD_OPTIONS)'
preSteps: preSteps:
- template: .azure-pipelines/template-clean-sonic-slave.yml@buildimage - template: .azure-pipelines/template-clean-sonic-slave.yml@buildimage
- checkout: self - checkout: self
@ -162,8 +161,8 @@ stages:
git branch -u remote/$BRANCH_NAME git branch -u remote/$BRANCH_NAME
echo $GIT_PASSWORD | gh auth login --with-token echo $GIT_PASSWORD | gh auth login --with-token
TITLE="[${SOURCE_BRANCH#refs/heads/}] Upgrade SONiC package Versions" TITLE="Upgrade SONiC Versions"
BODY=$TITLE BODY="Upgrade SONiC Versions"
RET=0 RET=0
if ! gh pr create -t "$TITLE" -b "$BODY" -B $(Build.SourceBranch) -R $(Build.Repository.Name) > pr.log 2>&1; then if ! gh pr create -t "$TITLE" -b "$BODY" -B $(Build.SourceBranch) -R $(Build.Repository.Name) > pr.log 2>&1; then
if ! grep -q "already exists" pr.log; then if ! grep -q "already exists" pr.log; then

View File

@ -1,67 +0,0 @@
# C/C++ with GCC
# Build your C/C++ project with GCC using make.
# Add steps that publish test results, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/apps/c-cpp/gcc
pr: none
trigger:
batch: true
branches:
include:
- master
- 202???
schedules:
- cron: "0 0 * * *"
displayName: Daily build
branches:
include:
- master
- 202???
always: true
stages:
- stage: Build
jobs:
- job:
displayName: "amd64/ubuntu-20.04"
pool:
vmImage: 'ubuntu-20.04'
steps:
- checkout: self
submodules: true
- script: |
sudo apt-get update
sudo apt-get install -y make wget libtool m4 autoconf dh-exec libdebhelper-perl=13.6ubuntu1~bpo20.04.1 debhelper=13.6ubuntu1~bpo20.04.1 \
cmake pkg-config python3-pip python cmake libgtest-dev libgmock-dev libyang-dev \
debhelper-compat dh-elpa dh-sequence-python3 python3-all \
libpython3-all-dev python3-six xmlto unzip rake-compiler gem2deb pkg-php-tools \
ant default-jdk maven-repo-helper libguava-java \
libboost-all-dev libgtest-dev build-essential swig4.0 swig
sudo pip3 install pytest click
wget http://ftp.us.debian.org/debian/pool/main/libg/libgoogle-gson-java/libgoogle-gson-java_2.8.6-1+deb11u1_all.deb
sudo dpkg -i libgoogle-gson-java_2.8.6-1+deb11u1_all.deb
mkdir -p /tmp/artifacts
displayName: "Install dependencies"
- script: |
BLDENV=bullseye SONIC_CONFIG_MAKE_JOBS=$(nproc) CONFIGURED_ARCH=amd64 DEST=/tmp/artifacts make -f ../rules/protobuf.mk -f protobuf/Makefile
workingDirectory: src
displayName: "Build protobuf"
- script: |
sudo dpkg -i protobuf-compiler_3.21.12-3_amd64.deb libprotoc32_3.21.12-3_amd64.deb \
libprotobuf32_3.21.12-3_amd64.deb libprotobuf-dev_3.21.12-3_amd64.deb \
libprotobuf-lite32_3.21.12-3_amd64.deb
workingDirectory: /tmp/artifacts
displayName: "Install protobuf"
- script: |
dpkg-buildpackage -rfakeroot -b -us -uc
workingDirectory: src/sonic-dash-api
displayName: "Build sonic-dash-api"
- script: |
cp *.deb /tmp/artifacts
workingDirectory: src
- publish: /tmp/artifacts
artifact: sonic-buildimage.amd64.ubuntu20_04
displayName: "Archive sonic-buildimage debian packages for ubuntu20.04"

View File

@ -35,6 +35,7 @@ jobs:
dbg_image: no dbg_image: no
asan_image: no asan_image: no
swi_image: no swi_image: no
raw_image: no
docker_syncd_rpc_image: no docker_syncd_rpc_image: no
syncd_rpc_image: no syncd_rpc_image: no
platform_rpc: no platform_rpc: no
@ -61,6 +62,7 @@ jobs:
variables: variables:
dbg_image: yes dbg_image: yes
swi_image: yes swi_image: yes
raw_image: yes
docker_syncd_rpc_image: yes docker_syncd_rpc_image: yes
platform_rpc: brcm platform_rpc: brcm
@ -114,19 +116,12 @@ jobs:
docker_syncd_rpc_image: yes docker_syncd_rpc_image: yes
platform_rpc: nephos platform_rpc: nephos
- name: pensando
pool: sonicbld-arm64
variables:
PLATFORM_ARCH: arm64
buildSteps: buildSteps:
- template: .azure-pipelines/template-skipvstest.yml@buildimage - template: .azure-pipelines/template-skipvstest.yml@buildimage
- template: .azure-pipelines/template-daemon.yml@buildimage - template: .azure-pipelines/template-daemon.yml@buildimage
- bash: | - bash: |
set -ex set -ex
if [ $(GROUP_NAME) == pensando ]; then if [ $(GROUP_NAME) == vs ]; then
make $BUILD_OPTIONS target/sonic-pensando.tar
elif [ $(GROUP_NAME) == vs ]; then
if [ $(dbg_image) == yes ]; then if [ $(dbg_image) == yes ]; then
make $BUILD_OPTIONS INSTALL_DEBUG_TOOLS=y target/sonic-vs.img.gz make $BUILD_OPTIONS INSTALL_DEBUG_TOOLS=y target/sonic-vs.img.gz
mv target/sonic-vs.img.gz target/sonic-vs-dbg.img.gz mv target/sonic-vs.img.gz target/sonic-vs-dbg.img.gz
@ -135,14 +130,6 @@ jobs:
make $BUILD_OPTIONS ENABLE_ASAN=y target/docker-sonic-vs.gz make $BUILD_OPTIONS ENABLE_ASAN=y target/docker-sonic-vs.gz
mv target/docker-sonic-vs.gz target/docker-sonic-vs-asan.gz mv target/docker-sonic-vs.gz target/docker-sonic-vs-asan.gz
fi fi
if [ "$(K8S_MASTER_CHANGED)" == 'YES' ]; then
make $BUILD_OPTIONS INCLUDE_KUBERNETES_MASTER=y target/sonic-vs.img.gz
gzip -d target/sonic-vs.img.gz
SONIC_RUN_CMDS="qemu-img convert target/sonic-vs.img -O vhdx -o subformat=dynamic target/sonic-vs.vhdx" make $BUILD_OPTIONS sonic-slave-run
gzip target/sonic-vs.vhdx
mv target/sonic-vs.vhdx.gz target/sonic-vs-k8s.vhdx.gz
rm target/sonic-vs.img
fi
make $BUILD_OPTIONS target/docker-sonic-vs.gz target/sonic-vs.img.gz target/docker-ptf.gz make $BUILD_OPTIONS target/docker-sonic-vs.gz target/sonic-vs.img.gz target/docker-ptf.gz
make $BUILD_OPTIONS target/docker-ptf-sai.gz make $BUILD_OPTIONS target/docker-ptf-sai.gz
if [ $(Build.Reason) != 'PullRequest' ];then if [ $(Build.Reason) != 'PullRequest' ];then
@ -158,6 +145,9 @@ jobs:
if [ $(swi_image) == yes ]; then if [ $(swi_image) == yes ]; then
make $BUILD_OPTIONS ENABLE_IMAGE_SIGNATURE=y target/sonic-aboot-$(GROUP_NAME).swi make $BUILD_OPTIONS ENABLE_IMAGE_SIGNATURE=y target/sonic-aboot-$(GROUP_NAME).swi
fi fi
if [ $(raw_image) == yes ]; then
make $BUILD_OPTIONS target/sonic-$(GROUP_NAME).raw
fi
if [ $(docker_syncd_rpc_image) == yes ]; then if [ $(docker_syncd_rpc_image) == yes ]; then
# workaround for issue in rules/sairedis.dep, git ls-files will list un-exist files for cache # workaround for issue in rules/sairedis.dep, git ls-files will list un-exist files for cache
make $BUILD_OPTIONS ENABLE_SYNCD_RPC=y target/docker-syncd-$(platform_rpc)-rpc.gz make $BUILD_OPTIONS ENABLE_SYNCD_RPC=y target/docker-syncd-$(platform_rpc)-rpc.gz

View File

@ -28,13 +28,11 @@ jobs:
- template: .azure-pipelines/cleanup.yml@buildimage - template: .azure-pipelines/cleanup.yml@buildimage
- ${{ parameters.preSteps }} - ${{ parameters.preSteps }}
- script: | - script: |
[ -n "$OVERRIDE_BUILD_OPTIONS" ] && OVERRIDE_BUILD_OPTIONS=$(OVERRIDE_BUILD_OPTIONS) BUILD_OPTIONS="$(BUILD_OPTIONS)"
BUILD_OPTIONS="$(BUILD_OPTIONS) $OVERRIDE_BUILD_OPTIONS" if [ -n "$(CACHE_MODE)" ] && echo $(PLATFORM_AZP) | grep -E -q "^(vs|broadcom|mellanox|marvell-armhf)$"; then
if [ -n "$(CACHE_MODE)" ] && echo $(PLATFORM_AZP) | grep -E -q "^(vs|broadcom|mellanox|marvell-armhf|marvell-arm64)$"; then
CACHE_OPTIONS="SONIC_DPKG_CACHE_METHOD=$(CACHE_MODE) SONIC_DPKG_CACHE_SOURCE=/nfs/dpkg_cache/$(PLATFORM_AZP)" CACHE_OPTIONS="SONIC_DPKG_CACHE_METHOD=$(CACHE_MODE) SONIC_DPKG_CACHE_SOURCE=/nfs/dpkg_cache/$(PLATFORM_AZP)"
BUILD_OPTIONS="$BUILD_OPTIONS $CACHE_OPTIONS" BUILD_OPTIONS="$(BUILD_OPTIONS) $CACHE_OPTIONS"
fi fi
echo $BUILD_OPTIONS
echo "##vso[task.setvariable variable=BUILD_OPTIONS]$BUILD_OPTIONS" echo "##vso[task.setvariable variable=BUILD_OPTIONS]$BUILD_OPTIONS"
displayName: "Set cache options" displayName: "Set cache options"
- checkout: self - checkout: self

View File

@ -101,6 +101,9 @@ jobs:
if [ ${{ parameters.swi_image }} == true ]; then if [ ${{ parameters.swi_image }} == true ]; then
make USERNAME=admin $CACHE_OPTIONS SONIC_BUILD_JOBS=$(nproc) ENABLE_IMAGE_SIGNATURE=y target/sonic-aboot-${{ parameters.platform }}.swi make USERNAME=admin $CACHE_OPTIONS SONIC_BUILD_JOBS=$(nproc) ENABLE_IMAGE_SIGNATURE=y target/sonic-aboot-${{ parameters.platform }}.swi
fi fi
if [ ${{ parameters.raw_image }} == true ]; then
make USERNAME=admin $CACHE_OPTIONS SONIC_BUILD_JOBS=$(nproc) target/sonic-${{ parameters.platform }}.raw
fi
if [ ${{ parameters.sync_rpc_image }} == true ]; then if [ ${{ parameters.sync_rpc_image }} == true ]; then
make USERNAME=admin $CACHE_OPTIONS SONIC_BUILD_JOBS=$(nproc) ENABLE_SYNCD_RPC=y target/docker-syncd-${{ parameters.platform_short }}-rpc.gz make USERNAME=admin $CACHE_OPTIONS SONIC_BUILD_JOBS=$(nproc) ENABLE_SYNCD_RPC=y target/docker-syncd-${{ parameters.platform_short }}-rpc.gz
# workaround for issue in rules/sairedis.dep, git ls-files will list un-exist files for cache # workaround for issue in rules/sairedis.dep, git ls-files will list un-exist files for cache

View File

@ -1,63 +0,0 @@
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
# Build and push sonic-mgmt image
schedules:
- cron: "0 8 * * *"
branches:
include:
- master
always: true
trigger: none
pr:
branches:
include:
- master
paths:
include:
- dockers/docker-sonic-mgmt
parameters:
- name: registry_url
type: string
default: sonicdev-microsoft.azurecr.io
- name: registry_conn
type: string
default: sonicdev
stages:
- stage: Build
jobs:
- job: Build
pool: sonicbld
timeoutInMinutes: 360
steps:
- template: cleanup.yml
- checkout: self
clean: true
- bash: |
set -xe
git submodule update --init --recursive -- src/sonic-platform-daemons src/sonic-genl-packet src/sonic-sairedis src/ptf src/sonic-device-data
make SONIC_BUILD_JOBS=$(nproc) DEFAULT_CONTAINER_REGISTRY=publicmirror.azurecr.io ENABLE_DOCKER_BASE_PULL=y configure PLATFORM=generic
make -f Makefile.work BLDENV=bullseye SONIC_BUILD_JOBS=$(nproc) DEFAULT_CONTAINER_REGISTRY=publicmirror.azurecr.io ENABLE_DOCKER_BASE_PULL=y LEGACY_SONIC_MGMT_DOCKER=n target/docker-sonic-mgmt.gz
cp target -r $(Build.ArtifactStagingDirectory)/target
docker load -i target/docker-sonic-mgmt.gz
docker tag docker-sonic-mgmt $REGISTRY_SERVER/docker-sonic-mgmt:py3only
env:
REGISTRY_SERVER: ${{ parameters.registry_url }}
displayName: Build docker-sonic-mgmt.gz
- task: Docker@2
displayName: Upload image
inputs:
containerRegistry: ${{ parameters.registry_conn }}
repository: docker-sonic-mgmt
command: push
tags: py3only
- publish: $(Build.ArtifactStagingDirectory)
artifact: 'docker-sonic-mgmt'
displayName: "Archive docker image sonic-mgmt"

View File

@ -43,7 +43,7 @@ stages:
git submodule update --init --recursive -- src/sonic-platform-daemons src/sonic-genl-packet src/sonic-sairedis src/ptf src/sonic-device-data git submodule update --init --recursive -- src/sonic-platform-daemons src/sonic-genl-packet src/sonic-sairedis src/ptf src/sonic-device-data
make SONIC_BUILD_JOBS=$(nproc) DEFAULT_CONTAINER_REGISTRY=publicmirror.azurecr.io ENABLE_DOCKER_BASE_PULL=y configure PLATFORM=generic make SONIC_BUILD_JOBS=$(nproc) DEFAULT_CONTAINER_REGISTRY=publicmirror.azurecr.io ENABLE_DOCKER_BASE_PULL=y configure PLATFORM=generic
make -f Makefile.work BLDENV=bullseye SONIC_BUILD_JOBS=$(nproc) DEFAULT_CONTAINER_REGISTRY=publicmirror.azurecr.io ENABLE_DOCKER_BASE_PULL=y LEGACY_SONIC_MGMT_DOCKER=y target/docker-sonic-mgmt.gz make SONIC_BUILD_JOBS=$(nproc) DEFAULT_CONTAINER_REGISTRY=publicmirror.azurecr.io ENABLE_DOCKER_BASE_PULL=y target/docker-sonic-mgmt.gz
cp target -r $(Build.ArtifactStagingDirectory)/target cp target -r $(Build.ArtifactStagingDirectory)/target
docker load -i target/docker-sonic-mgmt.gz docker load -i target/docker-sonic-mgmt.gz
docker tag docker-sonic-mgmt $REGISTRY_SERVER/docker-sonic-mgmt:latest docker tag docker-sonic-mgmt $REGISTRY_SERVER/docker-sonic-mgmt:latest

View File

@ -16,7 +16,6 @@ parameters:
- name: dist - name: dist
type: string type: string
values: values:
- bookworm
- bullseye - bullseye
- buster - buster
- stretch - stretch

View File

@ -8,7 +8,7 @@ resources:
- repository: buildimage - repository: buildimage
type: github type: github
name: sonic-net/sonic-buildimage name: sonic-net/sonic-buildimage
ref: bookworm ref: master
endpoint: sonic-net endpoint: sonic-net
schedules: schedules:
@ -44,7 +44,6 @@ parameters:
- name: 'dists' - name: 'dists'
type: object type: object
default: default:
- bookworm
- bullseye - bullseye
- buster - buster
- stretch - stretch

View File

@ -15,34 +15,13 @@ trigger: none
pr: none pr: none
jobs: jobs:
- job: Amd - job: Build
pool: sonicbld pool: sonicbld
timeoutInMinutes: 5 timeoutInMinutes: 5
steps: steps:
- checkout: none - checkout: none
- script: | - script: |
df -h set -xe
sudo find /nfs/dpkg_cache/ -name *.tgz -mtime +30 -type f -delete sudo find /nfs/dpkg_cache/ -name *.tgz -mtime +30 -type f -delete
df -h
displayName: clean dpkg cache displayName: clean dpkg cache
- job: Armhf
pool: sonicbld-armhf
timeoutInMinutes: 5
steps:
- checkout: none
- script: |
df -h
sudo find /nfs/dpkg_cache/ -name *.tgz -mtime +30 -type f -delete
df -h
displayName: clean dpkg cache
- job: Arm64
pool: sonicbld-arm64
timeoutInMinutes: 5
steps:
- checkout: none
- script: |
df -h
sudo find /nfs/dpkg_cache/ -name *.tgz -mtime +30 -type f -delete
df -h
displayName: clean dpkg cache

View File

@ -39,6 +39,7 @@ stages:
- name: broadcom - name: broadcom
variables: variables:
swi_image: yes swi_image: yes
raw_image: yes
docker_syncd_rpc_image: yes docker_syncd_rpc_image: yes
platform_rpc: brcm platform_rpc: brcm
- name: mellanox - name: mellanox

View File

@ -18,10 +18,6 @@ parameters:
type: string type: string
default: 1 default: 1
- name: NUM_ASIC
type: number
default: 1
- name: TEST_SET - name: TEST_SET
type: string type: string
default: "" default: ""
@ -38,103 +34,39 @@ parameters:
type: string type: string
default: "ceos" default: "ceos"
- name: TESTBED_NAME - name: SPECIFIED_PARAMS
type: string type: string
default: "" default: "{}"
- name: IMAGE_URL
type: string
default: ""
- name: HWSKU
type: string
default: ""
- name: TEST_PLAN_TYPE
type: string
default: ""
- name: PLATFORM
type: string
default: ""
- name: SCRIPTS
type: string
default: ""
- name: FEATURES
type: string
default: ""
- name: SCRIPTS_EXCLUDE
type: string
default: ""
- name: FEATURES_EXCLUDE
type: string
default: ""
- name: REPO_NAME
type: string
default: ""
- name: MGMT_BRANCH - name: MGMT_BRANCH
type: string type: string
default: "" default: master
- name: STOP_ON_FAILURE - name: NUM_ASIC
type: string
default: ""
- name: RETRY_TIMES
type: string
default: ""
- name: DUMP_KVM_IF_FAIL
type: string
default: "True"
values:
- "True"
- "False"
- name: REQUESTER
type: string
default: ""
- name: MAX_RUN_TEST_MINUTES
type: number type: number
default: 480 default: 1
steps: steps:
- script: | - script: |
set -e set -e
wget -O ./.azure-pipelines/test_plan.py https://raw.githubusercontent.com/sonic-net/sonic-mgmt/master/.azure-pipelines/test_plan.py wget -O ./.azure-pipelines/test_plan.py https://raw.githubusercontent.com/sonic-net/sonic-mgmt/master/.azure-pipelines/test_plan.py
wget -O ./.azure-pipelines/pr_test_scripts.yaml https://raw.githubusercontent.com/sonic-net/sonic-mgmt/master/.azure-pipelines/pr_test_scripts.yaml wget -O ./.azure-pipelines/pr_test_scripts.yaml https://raw.githubusercontent.com/sonic-net/sonic-mgmt/master/.azure-pipelines/pr_test_scripts.yaml
displayName: Download test plan scripts displayName: Download TestbedV2 scripts
- script: | - script: |
set -e set -e
pip install PyYAML pip install PyYAML
rm -f new_test_plan_id.txt rm -f new_test_plan_id.txt
python ./.azure-pipelines/test_plan.py create -t ${{ parameters.TOPOLOGY }} -o new_test_plan_id.txt \
python ./.azure-pipelines/test_plan.py create \ --min-worker ${{ parameters.MIN_WORKER }} --max-worker ${{ parameters.MAX_WORKER }} \
-t ${{ parameters.TOPOLOGY }} \ --test-set ${{ parameters.TEST_SET }} --kvm-build-id $(KVM_BUILD_ID) \
-o new_test_plan_id.txt \ --deploy-mg-extra-params "${{ parameters.DEPLOY_MG_EXTRA_PARAMS }}" --common-extra-params "${{ parameters.COMMON_EXTRA_PARAMS }}" \
--min-worker ${{ parameters.MIN_WORKER }} \ --mgmt-branch ${{ parameters.MGMT_BRANCH }} --vm-type ${{ parameters.VM_TYPE }} --specified-params "${{ parameters.SPECIFIED_PARAMS }}" \
--max-worker ${{ parameters.MAX_WORKER }} \
--test-set ${{ parameters.TEST_SET }} \
--kvm-build-id $(KVM_BUILD_ID) \
--deploy-mg-extra-params "${{ parameters.DEPLOY_MG_EXTRA_PARAMS }}" \
--common-extra-params "${{ parameters.COMMON_EXTRA_PARAMS }}" \
--mgmt-branch ${{ parameters.MGMT_BRANCH }} \
--vm-type ${{ parameters.VM_TYPE }} \
--num-asic ${{ parameters.NUM_ASIC }} --num-asic ${{ parameters.NUM_ASIC }}
TEST_PLAN_ID=`cat new_test_plan_id.txt` TEST_PLAN_ID=`cat new_test_plan_id.txt`
echo "Created test plan $TEST_PLAN_ID" echo "Created test plan $TEST_PLAN_ID"
echo "Check $(FRONTEND_URL)/scheduler/testplan/$TEST_PLAN_ID for test plan status" echo "Check https://www.testbed-tools.org/scheduler/testplan/$TEST_PLAN_ID for test plan status"
echo "##vso[task.setvariable variable=TEST_PLAN_ID]$TEST_PLAN_ID" echo "##vso[task.setvariable variable=TEST_PLAN_ID]$TEST_PLAN_ID"
env: env:
TESTBED_TOOLS_URL: $(TESTBED_TOOLS_URL) TESTBED_TOOLS_URL: $(TESTBED_TOOLS_URL)
@ -146,8 +78,8 @@ steps:
- script: | - script: |
set -e set -e
echo "Lock testbed" echo "Lock testbed"
echo "SONiC PR system-level test is powered by SONiC Elastictest, for any issue, please send email to sonicelastictest@microsoft.com" echo "TestbedV2 is just online and might not be stable enough, for any issue, please send email to sonictestbedtools@microsoft.com"
echo "Runtime detailed progress at $(FRONTEND_URL)/scheduler/testplan/$TEST_PLAN_ID " echo "Runtime detailed progress at https://www.testbed-tools.org/scheduler/testplan/$TEST_PLAN_ID "
# When "LOCK_TESTBED" finish, it changes into "PREPARE_TESTBED" # When "LOCK_TESTBED" finish, it changes into "PREPARE_TESTBED"
python ./.azure-pipelines/test_plan.py poll -i "$(TEST_PLAN_ID)" --expected-state LOCK_TESTBED python ./.azure-pipelines/test_plan.py poll -i "$(TEST_PLAN_ID)" --expected-state LOCK_TESTBED
env: env:
@ -157,9 +89,10 @@ steps:
- script: | - script: |
set -e set -e
echo "Prepare testbed" echo "Prepare testbed"
echo "Preparing the testbed(add-topo, deploy-mg) may take 15-30 minutes. Before the testbed is ready, the progress of the test plan keeps displayed as 0, please be patient" echo "Preparing the testbed(add-topo, deploy-mg) may take 15-30 minutes. Before the testbed is ready, the progress of the test plan keeps displayed as 0, please be patient(We will improve the indication in a short time)"
echo "SONiC PR system-level test is powered by SONiC Elastictest, for any issue, please send email to sonicelastictest@microsoft.com" echo "If the progress keeps as 0 for more than 1 hour, please cancel and retry this pipeline"
echo "Runtime detailed progress at $(FRONTEND_URL)/scheduler/testplan/$TEST_PLAN_ID " echo "TestbedV2 is just online and might not be stable enough, for any issue, please send email to sonictestbedtools@microsoft.com"
echo "Runtime detailed progress at https://www.testbed-tools.org/scheduler/testplan/$TEST_PLAN_ID "
# When "PREPARE_TESTBED" finish, it changes into "EXECUTING" # When "PREPARE_TESTBED" finish, it changes into "EXECUTING"
python ./.azure-pipelines/test_plan.py poll -i "$(TEST_PLAN_ID)" --expected-state PREPARE_TESTBED python ./.azure-pipelines/test_plan.py poll -i "$(TEST_PLAN_ID)" --expected-state PREPARE_TESTBED
env: env:
@ -169,27 +102,25 @@ steps:
- script: | - script: |
set -e set -e
echo "Run test" echo "Run test"
echo "SONiC PR system-level test is powered by SONiC Elastictest, for any issue, please send email to sonicelastictest@microsoft.com" echo "TestbedV2 is just online and might not be stable enough, for any issue, please send email to sonictestbedtools@microsoft.com"
echo "Runtime detailed progress at $(FRONTEND_URL)/scheduler/testplan/$TEST_PLAN_ID " echo "Runtime detailed progress at https://www.testbed-tools.org/scheduler/testplan/$TEST_PLAN_ID "
# When "EXECUTING" finish, it changes into "KVMDUMP", "FAILED", "CANCELLED" or "FINISHED" # When "EXECUTING" finish, it changes into "KVMDUMP", "FAILED", "CANCELLED" or "FINISHED"
python ./.azure-pipelines/test_plan.py poll -i "$(TEST_PLAN_ID)" --expected-state EXECUTING python ./.azure-pipelines/test_plan.py poll -i "$(TEST_PLAN_ID)" --expected-state EXECUTING
env: env:
TESTBED_TOOLS_URL: $(TESTBED_TOOLS_URL) TESTBED_TOOLS_URL: $(TESTBED_TOOLS_URL)
displayName: Run test displayName: Run test
timeoutInMinutes: ${{ parameters.MAX_RUN_TEST_MINUTES }}
- ${{ if eq(parameters.DUMP_KVM_IF_FAIL, 'True') }}: - script: |
- script: | set -e
set -e echo "KVM dump"
echo "KVM dump" echo "TestbedV2 is just online and might not be stable enough, for any issue, please send email to sonictestbedtools@microsoft.com"
echo "SONiC PR system-level test is powered by SONiC Elastictest, for any issue, please send email to sonicelastictest@microsoft.com" echo "Runtime detailed progress at https://www.testbed-tools.org/scheduler/testplan/$TEST_PLAN_ID "
echo "Runtime detailed progress at $(FRONTEND_URL)/scheduler/testplan/$TEST_PLAN_ID " # When "KVMDUMP" finish, it changes into "FAILED", "CANCELLED" or "FINISHED"
# When "KVMDUMP" finish, it changes into "FAILED", "CANCELLED" or "FINISHED" python ./.azure-pipelines/test_plan.py poll -i "$(TEST_PLAN_ID)" --expected-state KVMDUMP
python ./.azure-pipelines/test_plan.py poll -i "$(TEST_PLAN_ID)" --expected-state KVMDUMP condition: succeededOrFailed()
condition: succeededOrFailed() env:
env: TESTBED_TOOLS_URL: $(TESTBED_TOOLS_URL)
TESTBED_TOOLS_URL: $(TESTBED_TOOLS_URL) displayName: KVM dump
displayName: KVM dump
- script: | - script: |
set -e set -e

View File

@ -2,18 +2,7 @@ steps:
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}: - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
- script: | - script: |
set -ex set -ex
tar_branch=origin/$(System.PullRequest.TargetBranchName) tar_branch=origin/$(System.PullRequest.TargetBranch)
# Check if k8s master entrance script is changed
K8S_MASTER_CHANGED=NO
if git diff $tar_branch..HEAD --name-only | grep -F files/image_config/kubernetes/kubernetes_master_entrance.sh; then
K8S_MASTER_CHANGED=YES
fi
set +x
echo "##vso[task.setvariable variable=K8S_MASTER_CHANGED;]$K8S_MASTER_CHANGED"
displayName: "Check if k8s master image build is needed."
- script: |
set -ex
tar_branch=origin/$(System.PullRequest.TargetBranchName)
git diff $tar_branch..HEAD --name-only | grep -v -f .azure-pipelines/vstest-exclude && exit 0 git diff $tar_branch..HEAD --name-only | grep -v -f .azure-pipelines/vstest-exclude && exit 0
git diff $tar_branch..HEAD --name-only | grep -f .azure-pipelines/vstest-include && exit 0 git diff $tar_branch..HEAD --name-only | grep -f .azure-pipelines/vstest-include && exit 0
set +x set +x

View File

@ -40,7 +40,6 @@ If PR needs to be backported, then the PR must be tested against the base branch
- [ ] 202111 - [ ] 202111
- [ ] 202205 - [ ] 202205
- [ ] 202211 - [ ] 202211
- [ ] 202305
#### Tested branch (Please provide the tested image version) #### Tested branch (Please provide the tested image version)

View File

@ -9,8 +9,7 @@ on:
jobs: jobs:
automerge: automerge:
# Disable workflow. Use automerge_scan instead to have the same behaviour. if: github.event.check_suite.app.name == 'Azure Pipelines' && github.event.check_suite.conclusion == 'success'
if: github.event.check_suite.app.name == 'Azure Pipelines' && github.event.check_suite.conclusion == 'success' && false
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: automerge - name: automerge

View File

@ -6,8 +6,7 @@ on:
jobs: jobs:
automerge_scan: automerge_scan:
# Disable workflow, and use pipeline instead to have same logic with other automation if: github.repository_owner == 'sonic-net'
if: github.repository_owner == 'sonic-net' && false
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Debug - name: Debug
@ -17,81 +16,58 @@ jobs:
set -e set -e
echo ${TOKEN} | gh auth login --with-token echo ${TOKEN} | gh auth login --with-token
gh pr list -R sonic-net/sonic-buildimage -A mssonicbld -L 100 -S "label:automerge" --json url,body,title,createdAt,labels,statusCheckRollup > prs.log gh pr list -R sonic-net/sonic-buildimage -A mssonicbld --json additions,assignees,author,baseRefName,body,changedFiles,closed,closedAt,comments,commits,createdAt,deletions,files,headRefName,headRepository,headRepositoryOwner,id,isCrossRepository,isDraft,labels,latestReviews,maintainerCanModify,mergeCommit,mergeStateStatus,mergeable,mergedAt,mergedBy,milestone,number,potentialMergeCommit,projectCards,reactionGroups,reviewDecision,reviewRequests,reviews,state,statusCheckRollup,title,updatedAt,url > prs.log
cat prs.log | jq cat prs.log | jq
- name: Main - name: Main
run: | run: |
set -e set -e
# PR merge run per 2 hours
# Other operation run per day.
# Cherry pick PR:
# more than 3 days, comment @author to check
# more than 10 days, stop comment.
# more than 28 days, comment @author PR will be closed
# more than 30 days, close PR
date_3d_ago=$(date --date "3 day ago" -u +"%FT%TZ")
date_10d_ago=$(date --date "10 day ago" -u +"%FT%TZ")
date_28d_ago=$(date --date "28 day ago" -u +"%FT%TZ")
date_30d_ago=$(date --date "30 day ago" -u +"%FT%TZ")
date_now=$(date -u +"%T")
operate=false
[[ "$date_now" < "02:00:00" ]] && operate=true
count=$(cat prs.log | jq 'length') count=$(cat prs.log | jq 'length')
for ((i=0;i<$count;i++)) for ((i=0;i<$count;i++))
do do
url=$(cat prs.log | jq -r ".[$i].url") url=$(cat prs.log | jq -r ".[$i].url")
body=$(cat prs.log | jq -r ".[$i].body")
title=$(cat prs.log | jq -r ".[$i].title")
origin_pr_id=$(echo $title | grep -Eo "\[action\] \[PR:[0-9]*\]" | grep -Eo [0-9]* || true)
created_at=$(cat prs.log | jq -r ".[$i].createdAt") created_at=$(cat prs.log | jq -r ".[$i].createdAt")
echo PR: $(($i+1))/$count, URL: $url, origin PR: $origin_pr_id, createdAt: $created_at, operate: $operate echo PR: $(($i+1))/$count, URL: $url, createdAt: $created_at, now: $(date -u +"%FT%TZ")
[[ "$url" == "" ]] && continue [[ "$url" == "" ]] && continue
[[ $created_at > $(date --date "1 hour ago" -u +"%FT%TZ") ]] && continue [[ $created_at > $(date --date "1 hour ago" -u +"%FT%TZ") ]] && continue
# only check automerge PR.
cat prs.log | jq -r ".[$i].labels[].name" | grep automerge || continue
checks=$(cat prs.log | jq ".[$i].statusCheckRollup") checks=$(cat prs.log | jq ".[$i].statusCheckRollup")
checks_count=$(echo $checks | jq 'length') checks_count=$(echo $checks | jq 'length')
pr_success=true echo Checks count: $checks_count
for ((j=0;j<$checks_count;j++)) for ((j=0;j<$checks_count;j++))
do do
check=$(echo $checks | jq ".[$j]") check=$(echo $checks | jq ".[$j]")
status=$(echo $check | jq -r '.status') state=$(echo $check | jq -r '.state')
conclusion=$(echo $check | jq -r '.conclusion') conclusion=$(echo $check | jq -r '.conclusion')
name=$(echo $check | jq -r '.name') name=$(echo $check | jq -r '.name')
# EasyCLA success flag: state=SUCCESS # EasyCLA success flag: state=SUCCESS
# Others success flag: conclusion in SUCCESS,NEUTRAL # Others success flag: conclusion in SUCCESS,NEUTRAL
# only check Azure.sonic-buildimage currently # Ignore Azure.sonic-buildimage stage check result. It may be set continueOnError
echo "$name" | grep -v "Azure.sonic-buildimage" > /dev/null && continue echo "$name" | grep "Azure.sonic-buildimage (" && continue
[[ "$status" != "COMPLETED" ]] && echo "$name: $status" && continue 2 # rerun Azure.sonic-buildimage per day
if [[ "$name" == "Azure.sonic-buildimage" ]] && [[ "$conclusion" == "FAILURE" ]];then
success=true completedAt=$(echo $check | jq -r '.completedAt')
( [[ "$conclusion" == "FAILURE" ]] || [[ "$conclusion" == "CANCELLED" ]] ) && success=false && pr_success=false [[ "$completedAt" < $(date --date "2 hour ago" -u +"%FT%TZ") ]] && [[ $(date -u +"%T") < "02:00:00" ]] && gh pr comment $url --body "/azp run Azure.sonic-buildimage"
! $success && echo "FAIL: $name" fi
# Ignore Semgrep, it has issues.
[[ "$name" == "Semgrep" ]] && continue
if [[ "$state" == "SUCCESS" ]];then
# check pass
continue
elif [[ "$conclusion" == "SUCCESS" ]] || [[ "$conclusion" == "NEUTRAL" ]];then
# check pass
continue
else
echo "$url Check failed!!!"
echo $check | jq
continue 2
fi
done done
# rerun Azure.sonic-buildimage per day
! $pr_success && $operate && gh pr comment $url --body "/azp run Azure.sonic-buildimage"
# If auto cherry pick PRs failed, comment in original PR and close cherry pick PR
if [ -n "$origin_pr_id" ] && [[ $created_at < $date_3d_ago ]] && ! $pr_success;then
origin_pr_url=https://github.com/sonic-net/sonic-buildimage/pull/$origin_pr_id
author=$(gh pr view $origin_pr_url --json author | jq .author.login -r)
echo "Original author will check."
$operate && [[ $created_at > $date_10d_ago ]] && gh pr comment $origin_pr_url --body "@$author cherry pick PR didn't pass PR checker. Please check!!!<br>$url"
$operate && [[ $created_at < $date_28d_ago ]] && gh pr comment $origin_pr_url --body "@$author cherry pick PR didn't pass PR checker. Please check!!! Auto cherry pick PR will be closed in 2 days.<br>$url"
$operate && [[ $created_at < $date_30d_ago ]] && echo "$url Closed" && gh pr close $url
fi
! $pr_success && continue
# merge the PR # merge the PR
echo ========Merging PR======== echo ========Merging PR========
if echo $title | grep "^\[submodule\]";then gh pr merge --rebase --admin -R sonic-net/sonic-buildimage $url || true
gh pr merge --squash --admin -R sonic-net/sonic-buildimage $url -b "$body" || true
else
gh pr merge --rebase --admin -R sonic-net/sonic-buildimage $url || true
fi
echo ========Finished PR======== echo ========Finished PR========
done done

View File

@ -1,26 +0,0 @@
name: Build broadcom ONEIMAGE
run-name: ${{ gitea.actor }} is building SONiC for broadcom
on:
push:
branches: [master]
jobs:
Configure-Build-Package-Action:
runs-on: ubuntu-latest
steps:
- run: echo "Triggered ${{ gitea.event_name }}"
- name: Checkout
uses: actions/checkout@v4
- run: pip install j2cli
- name: Init Package
run: make init
- name: Configure Package
run: make configure PLATFORM=broadcom
- name: Compile Image
run: make target/sonic-broadcom.bin
- name: Release
uses: softprops/action-gh-release@v1
with:
files: |
*

View File

@ -8,8 +8,7 @@ on:
jobs: jobs:
post_cherry_pick: post_cherry_pick:
# Use azpw instead to have stable performance if: github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'automerge') && github.event.pull_request.head.user.login == 'mssonicbld' && startsWith(github.event.pull_request.title, '[action]')
if: false && github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'automerge') && github.event.pull_request.head.user.login == 'mssonicbld' && startsWith(github.event.pull_request.title, '[action]')
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Debug - name: Debug

View File

@ -9,8 +9,7 @@ on:
jobs: jobs:
pre_cherry_pick: pre_cherry_pick:
# Use azpw instead of workflow to have stable performance. if: github.repository_owner == 'sonic-net' && github.event.pull_request.merged == true && ( (github.event.action == 'closed' && contains(join(github.event.pull_request.labels.*.name, ','), 'Approved for 20')) || (github.event.action == 'labeled' && startsWith(github.event.label.name, 'Approved for 20')) )
if: false && github.repository_owner == 'sonic-net' && github.event.pull_request.merged == true && ( (github.event.action == 'closed' && contains(join(github.event.pull_request.labels.*.name, ','), 'Approved for 20')) || (github.event.action == 'labeled' && startsWith(github.event.label.name, 'Approved for 20')) )
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout

6
.gitignore vendored
View File

@ -41,9 +41,6 @@ installer/x86_64/platforms/
# Misc. files # Misc. files
asic_config_checksum asic_config_checksum
files/Aboot/boot0 files/Aboot/boot0
files/dsc/MANIFEST
files/dsc/install_debian
files/dsc/fs.zip
files/initramfs-tools/arista-convertfs files/initramfs-tools/arista-convertfs
files/initramfs-tools/union-mount files/initramfs-tools/union-mount
@ -108,6 +105,3 @@ htmlcov/
# Debian mirror Sources # Debian mirror Sources
sources.list.* sources.list.*
!sources.list*.j2 !sources.list*.j2
# Generated mirror configs
apt-retries-count

24
.gitmodules vendored
View File

@ -1,15 +1,19 @@
[submodule "sonic-swss-common"] [submodule "sonic-swss-common"]
path = src/sonic-swss-common path = src/sonic-swss-common
url = https://github.com/sonic-net/sonic-swss-common url = https://github.com/sonic-net/sonic-swss-common
branch = 202305
[submodule "sonic-linux-kernel"] [submodule "sonic-linux-kernel"]
path = src/sonic-linux-kernel path = src/sonic-linux-kernel
url = https://github.com/sonic-net/sonic-linux-kernel url = https://github.com/sonic-net/sonic-linux-kernel
branch = 202305
[submodule "sonic-sairedis"] [submodule "sonic-sairedis"]
path = src/sonic-sairedis path = src/sonic-sairedis
url = https://github.com/sonic-net/sonic-sairedis url = https://github.com/sonic-net/sonic-sairedis
branch = 202305
[submodule "sonic-swss"] [submodule "sonic-swss"]
path = src/sonic-swss path = src/sonic-swss
url = https://github.com/sonic-net/sonic-swss url = https://github.com/sonic-net/sonic-swss
branch = 202305
[submodule "src/p4c-bm/p4c-bm"] [submodule "src/p4c-bm/p4c-bm"]
path = platform/p4/p4c-bm/p4c-bm path = platform/p4/p4c-bm/p4c-bm
url = https://github.com/krambn/p4c-bm url = https://github.com/krambn/p4c-bm
@ -31,22 +35,25 @@
[submodule "src/sonic-utilities"] [submodule "src/sonic-utilities"]
path = src/sonic-utilities path = src/sonic-utilities
url = https://github.com/sonic-net/sonic-utilities url = https://github.com/sonic-net/sonic-utilities
branch = 202305
[submodule "platform/broadcom/sonic-platform-modules-arista"] [submodule "platform/broadcom/sonic-platform-modules-arista"]
path = platform/broadcom/sonic-platform-modules-arista path = platform/broadcom/sonic-platform-modules-arista
url = https://github.com/aristanetworks/sonic url = https://github.com/aristanetworks/sonic
[submodule "src/sonic-platform-common"] [submodule "src/sonic-platform-common"]
path = src/sonic-platform-common path = src/sonic-platform-common
url = https://github.com/sonic-net/sonic-platform-common url = https://github.com/sonic-net/sonic-platform-common
branch = 202305
[submodule "src/sonic-platform-daemons"] [submodule "src/sonic-platform-daemons"]
path = src/sonic-platform-daemons path = src/sonic-platform-daemons
url = https://github.com/sonic-net/sonic-platform-daemons url = https://github.com/sonic-net/sonic-platform-daemons
branch = 202305
[submodule "src/sonic-platform-pde"] [submodule "src/sonic-platform-pde"]
path = src/sonic-platform-pde path = src/sonic-platform-pde
url = https://github.com/sonic-net/sonic-platform-pdk-pde url = https://github.com/sonic-net/sonic-platform-pdk-pde
[submodule "src/sonic-frr/frr"] [submodule "src/sonic-frr/frr"]
path = src/sonic-frr/frr path = src/sonic-frr/frr
url = https://github.com/sonic-net/sonic-frr.git url = https://github.com/sonic-net/sonic-frr.git
branch = frr/8.5 branch = frr/8.2
[submodule "platform/p4/p4-hlir/p4-hlir-v1.1"] [submodule "platform/p4/p4-hlir/p4-hlir-v1.1"]
path = platform/p4/p4-hlir/p4-hlir-v1.1 path = platform/p4/p4-hlir/p4-hlir-v1.1
url = https://github.com/p4lang/p4-hlir.git url = https://github.com/p4lang/p4-hlir.git
@ -65,6 +72,9 @@
[submodule "src/scapy"] [submodule "src/scapy"]
path = src/scapy path = src/scapy
url = https://github.com/secdev/scapy.git url = https://github.com/secdev/scapy.git
[submodule "platform/mellanox/mlnx-sai/SAI-Implementation"]
path = platform/mellanox/mlnx-sai/SAI-Implementation
url = https://github.com/Mellanox/SAI-Implementation
[submodule "src/sonic-mgmt-framework"] [submodule "src/sonic-mgmt-framework"]
path = src/sonic-mgmt-framework path = src/sonic-mgmt-framework
url = https://github.com/sonic-net/sonic-mgmt-framework url = https://github.com/sonic-net/sonic-mgmt-framework
@ -91,6 +101,7 @@
[submodule "src/linkmgrd"] [submodule "src/linkmgrd"]
path = src/linkmgrd path = src/linkmgrd
url = https://github.com/sonic-net/sonic-linkmgrd.git url = https://github.com/sonic-net/sonic-linkmgrd.git
branch = 202305
[submodule "src/sonic-p4rt/sonic-pins"] [submodule "src/sonic-p4rt/sonic-pins"]
path = src/sonic-p4rt/sonic-pins path = src/sonic-p4rt/sonic-pins
url = https://github.com/sonic-net/sonic-pins.git url = https://github.com/sonic-net/sonic-pins.git
@ -103,21 +114,14 @@
[submodule "src/sonic-host-services"] [submodule "src/sonic-host-services"]
path = src/sonic-host-services path = src/sonic-host-services
url = https://github.com/sonic-net/sonic-host-services url = https://github.com/sonic-net/sonic-host-services
branch = 202305
[submodule "src/sonic-gnmi"] [submodule "src/sonic-gnmi"]
path = src/sonic-gnmi path = src/sonic-gnmi
url = https://github.com/sonic-net/sonic-gnmi.git url = https://github.com/sonic-net/sonic-gnmi.git
branch = 202305
[submodule "src/sonic-genl-packet"] [submodule "src/sonic-genl-packet"]
path = src/sonic-genl-packet path = src/sonic-genl-packet
url = https://github.com/sonic-net/sonic-genl-packet url = https://github.com/sonic-net/sonic-genl-packet
[submodule "src/dhcpmon"] [submodule "src/dhcpmon"]
path = src/dhcpmon path = src/dhcpmon
url = https://github.com/sonic-net/sonic-dhcpmon.git url = https://github.com/sonic-net/sonic-dhcpmon.git
[submodule "src/sonic-dash-api"]
path = src/sonic-dash-api
url = https://github.com/sonic-net/sonic-dash-api.git
[submodule "platform/marvell-arm64/mrvl-prestera"]
path = platform/marvell-arm64/mrvl-prestera
url = https://github.com/Marvell-switching/mrvl-prestera.git
[submodule "platform/marvell-arm64/sonic-platform-marvell"]
path = platform/marvell-arm64/sonic-platform-marvell
url = https://github.com/Marvell-switching/sonic-platform-arm64.git

22
LICENSE
View File

@ -1,13 +1,15 @@
Copyright (C) 2023 Microsoft Copyright (C) 2016 Microsoft
Licensed under the Apache License, Version 2.0 (the "License"); This program is free software; you can redistribute it and/or
you may not use this file except in compliance with the License. modify it under the terms of the GNU General Public License
You may obtain a copy of the License at as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
http://www.apache.org/licenses/LICENSE-2.0 This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
Unless required by applicable law or agreed to in writing, software You should have received a copy of the GNU General Public License
distributed under the License is distributed on an "AS IS" BASIS, along with this program; if not, write to the Free Software
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
See the License for the specific language governing permissions and
limitations under the License.

View File

@ -4,7 +4,6 @@ NOJESSIE ?= 1
NOSTRETCH ?= 1 NOSTRETCH ?= 1
NOBUSTER ?= 0 NOBUSTER ?= 0
NOBULLSEYE ?= 0 NOBULLSEYE ?= 0
NOBOOKWORM ?= 0
override Q := @ override Q := @
ifeq ($(QUIET),n) ifeq ($(QUIET),n)
@ -30,10 +29,6 @@ ifeq ($(NOBULLSEYE),0)
BUILD_BULLSEYE=1 BUILD_BULLSEYE=1
endif endif
ifeq ($(NOBOOKWORM),0)
BUILD_BOOKWORM=1
endif
PLATFORM_PATH := platform/$(if $(PLATFORM),$(PLATFORM),$(CONFIGURED_PLATFORM)) PLATFORM_PATH := platform/$(if $(PLATFORM),$(PLATFORM),$(CONFIGURED_PLATFORM))
PLATFORM_CHECKOUT := platform/checkout PLATFORM_CHECKOUT := platform/checkout
PLATFORM_CHECKOUT_FILE := $(PLATFORM_CHECKOUT)/$(PLATFORM).ini PLATFORM_CHECKOUT_FILE := $(PLATFORM_CHECKOUT)/$(PLATFORM).ini
@ -52,12 +47,9 @@ ifeq ($(NOBUSTER), 0)
$(MAKE_WITH_RETRY) EXTRA_DOCKER_TARGETS=$(notdir $@) BLDENV=buster -f Makefile.work buster $(MAKE_WITH_RETRY) EXTRA_DOCKER_TARGETS=$(notdir $@) BLDENV=buster -f Makefile.work buster
endif endif
ifeq ($(NOBULLSEYE), 0) ifeq ($(NOBULLSEYE), 0)
$(MAKE_WITH_RETRY) EXTRA_DOCKER_TARGETS=$(notdir $@) BLDENV=bullseye -f Makefile.work bullseye $(MAKE_WITH_RETRY) BLDENV=bullseye -f Makefile.work $@
endif endif
ifeq ($(NOBOOKWORM), 0) BLDENV=bullseye $(MAKE) -f Makefile.work docker-cleanup
$(MAKE_WITH_RETRY) BLDENV=bookworm -f Makefile.work $@
endif
BLDENV=bookworm $(MAKE) -f Makefile.work docker-cleanup
jessie: jessie:
@echo "+++ Making $@ +++" @echo "+++ Making $@ +++"
@ -77,12 +69,6 @@ ifeq ($(NOBUSTER), 0)
$(MAKE) -f Makefile.work buster $(MAKE) -f Makefile.work buster
endif endif
bullseye:
@echo "+++ Making $@ +++"
ifeq ($(NOBUSTER), 0)
$(MAKE) -f Makefile.work bullseye
endif
init: init:
@echo "+++ Making $@ +++" @echo "+++ Making $@ +++"
$(MAKE) -f Makefile.work $@ $(MAKE) -f Makefile.work $@
@ -96,7 +82,6 @@ define make_work
$(if $(BUILD_STRETCH),BLDENV=stretch $(MAKE) -f Makefile.work $@,) $(if $(BUILD_STRETCH),BLDENV=stretch $(MAKE) -f Makefile.work $@,)
$(if $(BUILD_BUSTER),BLDENV=buster $(MAKE) -f Makefile.work $@,) $(if $(BUILD_BUSTER),BLDENV=buster $(MAKE) -f Makefile.work $@,)
$(if $(BUILD_BULLSEYE),BLDENV=bullseye $(MAKE) -f Makefile.work $@,) $(if $(BUILD_BULLSEYE),BLDENV=bullseye $(MAKE) -f Makefile.work $@,)
$(if $(BUILD_BOOKWORM),BLDENV=bookworm $(MAKE) -f Makefile.work $@,)
endef endef
.PHONY: $(PLATFORM_PATH) .PHONY: $(PLATFORM_PATH)

View File

@ -78,8 +78,7 @@ SONIC_COMMON_DPKG_LIST := debian/control debian/changelog debian/rules \
SONIC_COMMON_BASE_FILES_LIST := sonic-slave-jessie/Dockerfile.j2 sonic-slave-jessie/Dockerfile.user.j2 \ SONIC_COMMON_BASE_FILES_LIST := sonic-slave-jessie/Dockerfile.j2 sonic-slave-jessie/Dockerfile.user.j2 \
sonic-slave-stretch/Dockerfile.j2 sonic-slave-stretch/Dockerfile.user.j2 \ sonic-slave-stretch/Dockerfile.j2 sonic-slave-stretch/Dockerfile.user.j2 \
sonic-slave-buster/Dockerfile.j2 sonic-slave-buster/Dockerfile.user.j2 \ sonic-slave-buster/Dockerfile.j2 sonic-slave-buster/Dockerfile.user.j2 \
sonic-slave-bullseye/Dockerfile.j2 sonic-slave-bullseye/Dockerfile.user.j2 \ sonic-slave-bullseye/Dockerfile.j2 sonic-slave-bullseye/Dockerfile.user.j2
sonic-slave-bookworm/Dockerfile.j2 sonic-slave-bookworm/Dockerfile.user.j2
@ -295,12 +294,10 @@ define SAVE_INTO_CACHE
echo "Target $(1) dependencies are modifed - global save cache skipped" >> $($(1)_DST_PATH)/$(1).log echo "Target $(1) dependencies are modifed - global save cache skipped" >> $($(1)_DST_PATH)/$(1).log
$(eval $(1)_CACHE_DIR := $(SONIC_DPKG_LOCAL_CACHE_DIR)) $(eval $(1)_CACHE_DIR := $(SONIC_DPKG_LOCAL_CACHE_DIR))
) )
cp $($(1)_DST_PATH)/$(1).log $($(1)_DST_PATH)/$(1).cached.log $($(1)_CACHE_USER) tar -C $($(1)_BASE_PATH) -mczvf $($(1)_CACHE_DIR)/$(MOD_CACHE_FILE) $(2) $(addprefix $($(1)_DST_PATH)/,$($(1)_DERIVED_DEBS) $($(1)_EXTRA_DEBS) ) \
$($(1)_CACHE_USER) tar -C $($(1)_BASE_PATH) -mczvf $($(1)_CACHE_DIR)/$(MOD_CACHE_FILE) $(2) $(addprefix $($(1)_DST_PATH)/,$($(1)_DERIVED_DEBS) $($(1)_EXTRA_DEBS) $(1).cached.log) \
1>>$($(1)_DST_PATH)/$(1).log 1>>$($(1)_DST_PATH)/$(1).log
sudo chmod 777 $($(1)_CACHE_DIR)/$(MOD_CACHE_FILE) sudo chmod 777 $($(1)_CACHE_DIR)/$(MOD_CACHE_FILE)
rm -f $($(1)_DST_PATH)/$(1).cached.log
echo "File $($(1)_CACHE_DIR)/$(MOD_CACHE_FILE) saved in cache " >> $($(1)_DST_PATH)/$(1).log echo "File $($(1)_CACHE_DIR)/$(MOD_CACHE_FILE) saved in cache " >> $($(1)_DST_PATH)/$(1).log
echo "[ CACHE::SAVED ] $($(1)_CACHE_DIR)/$(MOD_CACHE_FILE)" >> $($(1)_DST_PATH)/$(1).log echo "[ CACHE::SAVED ] $($(1)_CACHE_DIR)/$(MOD_CACHE_FILE)" >> $($(1)_DST_PATH)/$(1).log
@ -360,22 +357,6 @@ define SAVE_CACHE
$(if $(call CHECK_WCACHE_ENABLED,$(1)), $(call SAVE_INTO_CACHE,$(1),$(2))) $(if $(call CHECK_WCACHE_ENABLED,$(1)), $(call SAVE_INTO_CACHE,$(1),$(2)))
endef endef
RFS_DEP_FILES := $(wildcard \
$(addprefix scripts/, build_debian_base_system.sh prepare_debian_image_buildinfo.sh build_mirror_config.sh) \
$(addprefix $(IMAGE_DISTRO_DEBS_PATH)/,$(INITRAMFS_TOOLS) $(LINUX_KERNEL)) \
$(shell git ls-files files/initramfs-tools) \
$(shell git ls-files files/image_config) \
$(shell git ls-files files/apparmor) \
$(shell git ls-files files/apt) \
$(shell git ls-files files/sshd) \
$(shell git ls-files files/dhcp) \
src/sonic-build-hooks/buildinfo/trusted.gpg.d \
platform/$(CONFIGURED_PLATFORM)/modules \
files/docker/docker.service.conf \
files/build_templates/default_users.json.j2 \
files/build_scripts/generate_asic_config_checksum.py \
files/scripts/core_cleanup.py \
build_debian.sh onie-image.conf)
# Set the target path for each target. # Set the target path for each target.
@ -403,17 +384,11 @@ $(foreach pkg, $(SONIC_INSTALL_PKGS), \
$(eval $(pkg)_DST_PATH := $(if $($(pkg)_DST_PATH), $($(pkg)_DST_PATH), $(FSROOT_PATH))) \ $(eval $(pkg)_DST_PATH := $(if $($(pkg)_DST_PATH), $($(pkg)_DST_PATH), $(FSROOT_PATH))) \
$(eval $(FSROOT_PATH)/$(pkg)_TARGET := $(pkg)) ) $(eval $(FSROOT_PATH)/$(pkg)_TARGET := $(pkg)) )
$(foreach pkg, $(SONIC_RFS_TARGETS), \
$(eval $(pkg)_DST_PATH := $(if $($(pkg)_DST_PATH), $($(pkg)_DST_PATH), $(TARGET_PATH))) \
$(eval $(pkg)_CACHE_MODE := GIT_CONTENT_SHA) \
$(eval $(pkg)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)) \
$(eval $(pkg)_DEP_FILES := $(SONIC_COMMON_BASE_FILES_LIST) $(RFS_DEP_FILES)) \
$(eval $(TARGET_PATH)/$(pkg)_TARGET := $(pkg)) )
# define the DEP files(.dep and .smdep) and SHA files (.sha and smsha) for each target # define the DEP files(.dep and .smdep) and SHA files (.sha and smsha) for each target
$(foreach pkg, $(SONIC_MAKE_DEBS) $(SONIC_DPKG_DEBS) $(SONIC_ONLINE_DEBS) $(SONIC_COPY_DEBS) \ $(foreach pkg, $(SONIC_MAKE_DEBS) $(SONIC_DPKG_DEBS) $(SONIC_ONLINE_DEBS) $(SONIC_COPY_DEBS) \
$(SONIC_MAKE_FILES) $(SONIC_PYTHON_STDEB_DEBS) $(SONIC_PYTHON_WHEELS) \ $(SONIC_MAKE_FILES) $(SONIC_PYTHON_STDEB_DEBS) $(SONIC_PYTHON_WHEELS) \
$(SONIC_DOCKER_IMAGES) $(SONIC_DOCKER_DBG_IMAGES) $(SONIC_INSTALL_PKGS) $(SONIC_RFS_TARGETS), \ $(SONIC_DOCKER_IMAGES) $(SONIC_DOCKER_DBG_IMAGES) $(SONIC_INSTALL_PKGS), \
$(eval $(pkg)_MOD_SRC_PATH:=$(if $($(pkg)_SRC_PATH),$($(pkg)_SRC_PATH),$($(pkg)_PATH))) \ $(eval $(pkg)_MOD_SRC_PATH:=$(if $($(pkg)_SRC_PATH),$($(pkg)_SRC_PATH),$($(pkg)_PATH))) \
$(eval $(pkg)_BASE_PATH:=$(if $($(pkg)_BASE_PATH),$($(pkg)_BASE_PATH),$(CURDIR))) \ $(eval $(pkg)_BASE_PATH:=$(if $($(pkg)_BASE_PATH),$($(pkg)_BASE_PATH),$(CURDIR))) \
$(eval $(pkg)_DEP_FLAGS_FILE:=$($(pkg)_DST_PATH)/$(pkg).flags) \ $(eval $(pkg)_DEP_FLAGS_FILE:=$($(pkg)_DST_PATH)/$(pkg).flags) \
@ -514,7 +489,6 @@ $(eval $(call FLAGS_DEP_RULES, $(SONIC_PYTHON_STDEB_DEBS), $(PYTHON_DEBS_PATH),f
$(eval $(call FLAGS_DEP_RULES, $(SONIC_PYTHON_WHEELS), $(PYTHON_WHEELS_PATH),flags)) $(eval $(call FLAGS_DEP_RULES, $(SONIC_PYTHON_WHEELS), $(PYTHON_WHEELS_PATH),flags))
$(eval $(call FLAGS_DEP_RULES, $(SONIC_DOCKER_IMAGES) $(SONIC_DOCKER_DBG_IMAGES), $(TARGET_PATH),flags)) $(eval $(call FLAGS_DEP_RULES, $(SONIC_DOCKER_IMAGES) $(SONIC_DOCKER_DBG_IMAGES), $(TARGET_PATH),flags))
$(eval $(call FLAGS_DEP_RULES, $(SONIC_INSTALL_PKGS), $(FSROOT_PATH),flags)) $(eval $(call FLAGS_DEP_RULES, $(SONIC_INSTALL_PKGS), $(FSROOT_PATH),flags))
$(eval $(call FLAGS_DEP_RULES, $(SONIC_RFS_TARGETS), $(TARGET_PATH),flags))
@ -590,12 +564,10 @@ ALL_DEP_FILES_LIST += $(foreach pkg,$(2), $($(filter none,$($(1)_CACHE_MODE)), \
$(addsuffix .$(3).sha,$(addprefix $(pkg)/, $(1))))) $(addsuffix .$(3).sha,$(addprefix $(pkg)/, $(1)))))
$(foreach docker, $(filter $(SONIC_DOCKER_IMAGES), $(1)), \ $(foreach docker, $(filter $(SONIC_DOCKER_IMAGES), $(1)), \
$(eval $(docker)_DEP_FILES+=$(wildcard files/build/versions/default/*) \ $(eval $(docker)_DEP_FILES+=$(wildcard files/build/versions/default/*) \
$(wildcard files/build/versions/dockers/$(basename $(docker))/*) \ $(wildcard files/build/versions/dockers/$(basename $(docker))/*)))
$(foreach docker_file, $($(docker)_FILES), $(addprefix $(if $($(docker_file)_PATH), $($(docker_file)_PATH), $(FILES_PATH))/, $(docker_file))) ))
$(foreach docker, $(filter $(SONIC_DOCKER_DBG_IMAGES), $(1)), \ $(foreach docker, $(filter $(SONIC_DOCKER_DBG_IMAGES), $(1)), \
$(eval $(docker)_DEP_FILES+=$(wildcard files/build/versions/default/*) \ $(eval $(docker)_DEP_FILES+=$(wildcard files/build/versions/default/*) \
$(wildcard files/build/versions/dockers/$(patsubst %-$(DBG_IMAGE_MARK).gz,%,$(docker))/*) \ $(wildcard files/build/versions/dockers/$(patsubst %-$(DBG_IMAGE_MARK).gz,%,$(docker))/*)))
$(foreach docker_file, $($(docker)_FILES), $(addprefix $(if $($(docker_file)_PATH), $($(docker_file)_PATH), $(FILES_PATH))/, $(docker_file))) ))
$(addsuffix .$(3),$(addprefix $(2)/, $(1))) : $(2)/%.$(3) : \ $(addsuffix .$(3),$(addprefix $(2)/, $(1))) : $(2)/%.$(3) : \
$(2)/%.flags $$$$($$$$*_DEP_FILES) $$$$(if $$$$($$$$*_SMDEP_FILES), $(2)/%.smdep) $(2)/%.flags $$$$($$$$*_DEP_FILES) $$$$(if $$$$($$$$*_SMDEP_FILES), $(2)/%.smdep)
@$$(eval $$*_DEP_FILES_MODIFIED := $$? ) @$$(eval $$*_DEP_FILES_MODIFIED := $$? )
@ -611,7 +583,6 @@ $(eval $(call SHA_DEP_RULES, $(SONIC_PYTHON_STDEB_DEBS), $(PYTHON_DEBS_PATH),dep
$(eval $(call SHA_DEP_RULES, $(SONIC_PYTHON_WHEELS), $(PYTHON_WHEELS_PATH),dep)) $(eval $(call SHA_DEP_RULES, $(SONIC_PYTHON_WHEELS), $(PYTHON_WHEELS_PATH),dep))
$(eval $(call SHA_DEP_RULES, $(SONIC_DOCKER_IMAGES) $(SONIC_DOCKER_DBG_IMAGES), $(TARGET_PATH),dep)) $(eval $(call SHA_DEP_RULES, $(SONIC_DOCKER_IMAGES) $(SONIC_DOCKER_DBG_IMAGES), $(TARGET_PATH),dep))
$(eval $(call SHA_DEP_RULES, $(SONIC_INSTALL_PKGS), $(FSROOT_PATH),dep)) $(eval $(call SHA_DEP_RULES, $(SONIC_INSTALL_PKGS), $(FSROOT_PATH),dep))
$(eval $(call SHA_DEP_RULES, $(SONIC_RFS_TARGETS), $(TARGET_PATH),dep))
@ -645,7 +616,6 @@ SONIC_CACHE_CLEAN_TARGETS = $(addsuffix -clean,$(addprefix $(TARGET_PATH)/, \
$(SONIC_DOCKER_IMAGES) \ $(SONIC_DOCKER_IMAGES) \
$(SONIC_DOCKER_DBG_IMAGES) \ $(SONIC_DOCKER_DBG_IMAGES) \
$(SONIC_SIMPLE_DOCKER_IMAGES) \ $(SONIC_SIMPLE_DOCKER_IMAGES) \
$(SONIC_RFS_TARGETS) \
$(SONIC_INSTALLERS))) $(SONIC_INSTALLERS)))
$(SONIC_CACHE_CLEAN_TARGETS) :: $(TARGET_PATH)/%-clean : .platform $(SONIC_CACHE_CLEAN_TARGETS) :: $(TARGET_PATH)/%-clean : .platform
@rm -f $($*_DEP_FLAGS_FILE) $($*_MOD_HASH_FILE) $($*_SMOD_HASH_FILE) \ @rm -f $($*_DEP_FLAGS_FILE) $($*_MOD_HASH_FILE) $($*_SMOD_HASH_FILE) \

View File

@ -5,6 +5,8 @@
# #
# * PLATFORM: Specific platform we wish to build images for. # * PLATFORM: Specific platform we wish to build images for.
# * BUILD_NUMBER: Desired version-number to pass to the building-system. # * BUILD_NUMBER: Desired version-number to pass to the building-system.
# * ENABLE_DHCP_GRAPH_SERVICE: Enables get-graph service to fetch minigraph files
# through http.
# * ENABLE_ZTP: Enables zero touch provisioning. # * ENABLE_ZTP: Enables zero touch provisioning.
# * SHUTDOWN_BGP_ON_START: Sets admin-down state for all bgp peerings after restart. # * SHUTDOWN_BGP_ON_START: Sets admin-down state for all bgp peerings after restart.
# * INCLUDE_KUBERNETES: Allows including Kubernetes # * INCLUDE_KUBERNETES: Allows including Kubernetes
@ -38,9 +40,6 @@
# * ENABLE_NATIVE_WRITE: Enable native write/config operations via the gNMI interface. # * ENABLE_NATIVE_WRITE: Enable native write/config operations via the gNMI interface.
# * Default: unset # * Default: unset
# * Values: y # * Values: y
# * ENABLE_DIALOUT: Enable dialout client in telemetry.
# * Default: unset
# * Values: y
# * SONIC_DPKG_CACHE_METHOD: Specifying method of obtaining the Debian packages from cache: none or cache # * SONIC_DPKG_CACHE_METHOD: Specifying method of obtaining the Debian packages from cache: none or cache
# * SONIC_DPKG_CACHE_SOURCE: Debian package cache location when cache enabled for debian packages # * SONIC_DPKG_CACHE_SOURCE: Debian package cache location when cache enabled for debian packages
# * BUILD_LOG_TIMESTAMP: Set timestamp in the build log (simple/none) # * BUILD_LOG_TIMESTAMP: Set timestamp in the build log (simple/none)
@ -70,7 +69,6 @@ USER := $(shell id -un)
PWD := $(shell pwd) PWD := $(shell pwd)
USER_LC := $(shell echo $(USER) | tr A-Z a-z) USER_LC := $(shell echo $(USER) | tr A-Z a-z)
DOCKER_MACHINE := $(shell docker run --rm debian:buster uname -m) DOCKER_MACHINE := $(shell docker run --rm debian:buster uname -m)
HOST_DOCKERD_GID := $(shell getent group docker | cut -d : -f3)
comma := , comma := ,
@ -123,9 +121,7 @@ else
TARGET_BOOTLOADER = uboot TARGET_BOOTLOADER = uboot
endif endif
ifeq ($(BLDENV), bookworm) ifeq ($(BLDENV), bullseye)
SLAVE_DIR = sonic-slave-bookworm
else ifeq ($(BLDENV), bullseye)
SLAVE_DIR = sonic-slave-bullseye SLAVE_DIR = sonic-slave-bullseye
else ifeq ($(BLDENV), buster) else ifeq ($(BLDENV), buster)
SLAVE_DIR = sonic-slave-buster SLAVE_DIR = sonic-slave-buster
@ -151,10 +147,6 @@ ifeq ($(ENABLE_DOCKER_BASE_PULL),)
override ENABLE_DOCKER_BASE_PULL = n override ENABLE_DOCKER_BASE_PULL = n
endif endif
ifeq ($(LEGACY_SONIC_MGMT_DOCKER),)
override LEGACY_SONIC_MGMT_DOCKER = y
endif
ifneq ($(GZ_COMPRESS_PROGRAM), pigz) ifneq ($(GZ_COMPRESS_PROGRAM), pigz)
override GZ_COMPRESS_PROGRAM = gzip override GZ_COMPRESS_PROGRAM = gzip
endif endif
@ -184,19 +176,13 @@ DOCKER_ROOT = $(PWD)/fsroot.docker.$(BLDENV)
# Support FIPS feature, armhf not supported yet # Support FIPS feature, armhf not supported yet
ifeq ($(PLATFORM_ARCH),armhf) ifeq ($(PLATFORM_ARCH),armhf)
INCLUDE_FIPS := n ENABLE_FIPS_FEATURE := n
ENABLE_FIPS := n ENABLE_FIPS := n
endif endif
# FIPS not yet available on Bookworm ifeq ($(ENABLE_FIPS_FEATURE), n)
ifeq ($(BLDENV),bookworm)
$(warning FIPS support not yet available on Bookworm)
INCLUDE_FIPS := n
endif
ifeq ($(INCLUDE_FIPS), n)
ifeq ($(ENABLE_FIPS), y) ifeq ($(ENABLE_FIPS), y)
$(error Cannot set fips config ENABLE_FIPS=y when INCLUDE_FIPS=n) $(error Cannot set fips config ENABLE_FIPS=y when ENABLE_FIPS_FEATURE=n)
endif endif
endif endif
@ -217,14 +203,13 @@ $(shell \
SONIC_VERSION_CACHE_SOURCE=$(SONIC_VERSION_CACHE_SOURCE) \ SONIC_VERSION_CACHE_SOURCE=$(SONIC_VERSION_CACHE_SOURCE) \
DBGOPT='$(DBGOPT)' \ DBGOPT='$(DBGOPT)' \
MIRROR_SNAPSHOT=$(MIRROR_SNAPSHOT) \ MIRROR_SNAPSHOT=$(MIRROR_SNAPSHOT) \
PIP_HTTP_TIMEOUT=$(PIP_HTTP_TIMEOUT) \
scripts/generate_buildinfo_config.sh) scripts/generate_buildinfo_config.sh)
# Generate the slave Dockerfile, and prepare build info for it # Generate the slave Dockerfile, and prepare build info for it
$(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) \ $(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) \
MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) \ MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) \
CROSS_BUILD_ENVIRON=$(CROSS_BUILD_ENVIRON) \ CROSS_BUILD_ENVIRON=$(CROSS_BUILD_ENVIRON) \
INCLUDE_FIPS=$(INCLUDE_FIPS) \ ENABLE_FIPS_FEATURE=$(ENABLE_FIPS_FEATURE) \
DOCKER_EXTRA_OPTS=$(DOCKER_EXTRA_OPTS) \ DOCKER_EXTRA_OPTS=$(DOCKER_EXTRA_OPTS) \
DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) \ DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) \
GZ_COMPRESS_PROGRAM=$(GZ_COMPRESS_PROGRAM) \ GZ_COMPRESS_PROGRAM=$(GZ_COMPRESS_PROGRAM) \
@ -236,11 +221,9 @@ $(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) \
j2 $(SLAVE_DIR)/Dockerfile.user.j2 > $(SLAVE_DIR)/Dockerfile.user) j2 $(SLAVE_DIR)/Dockerfile.user.j2 > $(SLAVE_DIR)/Dockerfile.user)
ifeq ($(CROSS_BUILD_ENVIRON), y) ifeq ($(CROSS_BUILD_ENVIRON), y)
$(shell SONIC_VERSION_CONTROL_COMPONENTS=$(SONIC_VERSION_CONTROL_COMPONENTS) \ $(shell MIRROR_SNAPSHOT=$(MIRROR_SNAPSHOT) scripts/build_mirror_config.sh $(SLAVE_DIR) amd64 $(BLDENV))
MIRROR_SNAPSHOT=$(MIRROR_SNAPSHOT) scripts/build_mirror_config.sh $(SLAVE_DIR) amd64 $(BLDENV))
endif endif
$(shell SONIC_VERSION_CONTROL_COMPONENTS=$(SONIC_VERSION_CONTROL_COMPONENTS) \ $(shell MIRROR_SNAPSHOT=$(MIRROR_SNAPSHOT) scripts/build_mirror_config.sh $(SLAVE_DIR) $(CONFIGURED_ARCH) $(BLDENV))
MIRROR_SNAPSHOT=$(MIRROR_SNAPSHOT) scripts/build_mirror_config.sh $(SLAVE_DIR) $(CONFIGURED_ARCH) $(BLDENV))
PREPARE_DOCKER=BUILD_SLAVE=y \ PREPARE_DOCKER=BUILD_SLAVE=y \
DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) \ DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) \
@ -391,7 +374,7 @@ endif
ifeq ($(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD), y) ifeq ($(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD), y)
ifneq ($(MULTIARCH_QEMU_ENVIRON), y) ifneq ($(MULTIARCH_QEMU_ENVIRON), y)
DOCKER_RUN += -v /var/run/docker.sock:/var/run/docker.sock --group-add $(HOST_DOCKERD_GID) DOCKER_RUN += -v /var/run/docker.sock:/var/run/docker.sock
endif endif
endif endif
@ -521,13 +504,13 @@ SONIC_BUILD_INSTRUCTION := $(MAKE) \
BUILD_TIMESTAMP=$(BUILD_TIMESTAMP) \ BUILD_TIMESTAMP=$(BUILD_TIMESTAMP) \
SONIC_IMAGE_VERSION=$(SONIC_IMAGE_VERSION) \ SONIC_IMAGE_VERSION=$(SONIC_IMAGE_VERSION) \
SLAVE_TAG=$(SLAVE_TAG) \ SLAVE_TAG=$(SLAVE_TAG) \
ENABLE_DHCP_GRAPH_SERVICE=$(ENABLE_DHCP_GRAPH_SERVICE) \
ENABLE_ZTP=$(ENABLE_ZTP) \ ENABLE_ZTP=$(ENABLE_ZTP) \
INCLUDE_PDE=$(INCLUDE_PDE) \ INCLUDE_PDE=$(INCLUDE_PDE) \
SHUTDOWN_BGP_ON_START=$(SHUTDOWN_BGP_ON_START) \ SHUTDOWN_BGP_ON_START=$(SHUTDOWN_BGP_ON_START) \
INCLUDE_KUBERNETES=$(INCLUDE_KUBERNETES) \ INCLUDE_KUBERNETES=$(INCLUDE_KUBERNETES) \
KUBERNETES_VERSION=$(KUBERNETES_VERSION) \ KUBERNETES_VERSION=$(KUBERNETES_VERSION) \
KUBERNETES_CNI_VERSION=$(KUBERNETES_CNI_VERSION) \ KUBERNETES_CNI_VERSION=$(KUBERNETES_CNI_VERSION) \
KUBERNETES_CRI_TOOLS_VERSION=$(KUBERNETES_CRI_TOOLS_VERSION) \
K8s_GCR_IO_PAUSE_VERSION=$(K8s_GCR_IO_PAUSE_VERSION) \ K8s_GCR_IO_PAUSE_VERSION=$(K8s_GCR_IO_PAUSE_VERSION) \
INCLUDE_KUBERNETES_MASTER=$(INCLUDE_KUBERNETES_MASTER) \ INCLUDE_KUBERNETES_MASTER=$(INCLUDE_KUBERNETES_MASTER) \
SONIC_ENABLE_PFCWD_ON_START=$(ENABLE_PFCWD_ON_START) \ SONIC_ENABLE_PFCWD_ON_START=$(ENABLE_PFCWD_ON_START) \
@ -553,16 +536,12 @@ SONIC_BUILD_INSTRUCTION := $(MAKE) \
DOCKER_LOCKFILE_SAVE=$(DOCKER_LOCKFILE_SAVE) \ DOCKER_LOCKFILE_SAVE=$(DOCKER_LOCKFILE_SAVE) \
SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD=$(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD) \ SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD=$(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD) \
SONIC_INCLUDE_SYSTEM_TELEMETRY=$(INCLUDE_SYSTEM_TELEMETRY) \ SONIC_INCLUDE_SYSTEM_TELEMETRY=$(INCLUDE_SYSTEM_TELEMETRY) \
SONIC_INCLUDE_SYSTEM_GNMI=$(INCLUDE_SYSTEM_GNMI) \
SONIC_INCLUDE_SYSTEM_EVENTD=$(INCLUDE_SYSTEM_EVENTD) \
INCLUDE_DHCP_RELAY=$(INCLUDE_DHCP_RELAY) \ INCLUDE_DHCP_RELAY=$(INCLUDE_DHCP_RELAY) \
INCLUDE_DHCP_SERVER=$(INCLUDE_DHCP_SERVER) \
INCLUDE_MACSEC=$(INCLUDE_MACSEC) \ INCLUDE_MACSEC=$(INCLUDE_MACSEC) \
SONIC_INCLUDE_RESTAPI=$(INCLUDE_RESTAPI) \ SONIC_INCLUDE_RESTAPI=$(INCLUDE_RESTAPI) \
SONIC_INCLUDE_MUX=$(INCLUDE_MUX) \ SONIC_INCLUDE_MUX=$(INCLUDE_MUX) \
ENABLE_TRANSLIB_WRITE=$(ENABLE_TRANSLIB_WRITE) \ ENABLE_TRANSLIB_WRITE=$(ENABLE_TRANSLIB_WRITE) \
ENABLE_NATIVE_WRITE=$(ENABLE_NATIVE_WRITE) \ ENABLE_NATIVE_WRITE=$(ENABLE_NATIVE_WRITE) \
ENABLE_DIALOUT=$(ENABLE_DIALOUT) \
EXTRA_DOCKER_TARGETS=$(EXTRA_DOCKER_TARGETS) \ EXTRA_DOCKER_TARGETS=$(EXTRA_DOCKER_TARGETS) \
BUILD_LOG_TIMESTAMP=$(BUILD_LOG_TIMESTAMP) \ BUILD_LOG_TIMESTAMP=$(BUILD_LOG_TIMESTAMP) \
SONIC_ENABLE_IMAGE_SIGNATURE=$(ENABLE_IMAGE_SIGNATURE) \ SONIC_ENABLE_IMAGE_SIGNATURE=$(ENABLE_IMAGE_SIGNATURE) \
@ -580,7 +559,7 @@ SONIC_BUILD_INSTRUCTION := $(MAKE) \
ENABLE_ASAN=$(ENABLE_ASAN) \ ENABLE_ASAN=$(ENABLE_ASAN) \
SONIC_INCLUDE_BOOTCHART=$(INCLUDE_BOOTCHART) \ SONIC_INCLUDE_BOOTCHART=$(INCLUDE_BOOTCHART) \
SONIC_ENABLE_BOOTCHART=$(ENABLE_BOOTCHART) \ SONIC_ENABLE_BOOTCHART=$(ENABLE_BOOTCHART) \
INCLUDE_FIPS=$(INCLUDE_FIPS) \ ENABLE_FIPS_FEATURE=$(ENABLE_FIPS_FEATURE) \
ENABLE_FIPS=$(ENABLE_FIPS) \ ENABLE_FIPS=$(ENABLE_FIPS) \
SONIC_SLAVE_DOCKER_DRIVER=$(SONIC_SLAVE_DOCKER_DRIVER) \ SONIC_SLAVE_DOCKER_DRIVER=$(SONIC_SLAVE_DOCKER_DRIVER) \
MIRROR_URLS=$(MIRROR_URLS) \ MIRROR_URLS=$(MIRROR_URLS) \
@ -588,10 +567,7 @@ SONIC_BUILD_INSTRUCTION := $(MAKE) \
GZ_COMPRESS_PROGRAM=$(GZ_COMPRESS_PROGRAM) \ GZ_COMPRESS_PROGRAM=$(GZ_COMPRESS_PROGRAM) \
MIRROR_SNAPSHOT=$(MIRROR_SNAPSHOT) \ MIRROR_SNAPSHOT=$(MIRROR_SNAPSHOT) \
SONIC_VERSION_CONTROL_COMPONENTS=$(SONIC_VERSION_CONTROL_COMPONENTS) \ SONIC_VERSION_CONTROL_COMPONENTS=$(SONIC_VERSION_CONTROL_COMPONENTS) \
ONIE_IMAGE_PART_SIZE=$(ONIE_IMAGE_PART_SIZE) \
SONIC_OS_VERSION=$(SONIC_OS_VERSION) \ SONIC_OS_VERSION=$(SONIC_OS_VERSION) \
PIP_HTTP_TIMEOUT=$(PIP_HTTP_TIMEOUT) \
LEGACY_SONIC_MGMT_DOCKER=$(LEGACY_SONIC_MGMT_DOCKER) \
$(SONIC_OVERRIDE_BUILD_VARS) $(SONIC_OVERRIDE_BUILD_VARS)
.PHONY: sonic-slave-build sonic-slave-bash init reset .PHONY: sonic-slave-build sonic-slave-bash init reset
@ -614,7 +590,6 @@ export MIRROR_URLS
export MIRROR_SECURITY_URLS export MIRROR_SECURITY_URLS
export MIRROR_SNAPSHOT export MIRROR_SNAPSHOT
export SONIC_VERSION_CONTROL_COMPONENTS export SONIC_VERSION_CONTROL_COMPONENTS
export PIP_HTTP_TIMEOUT
%:: | sonic-build-hooks %:: | sonic-build-hooks
ifneq ($(filter y, $(MULTIARCH_QEMU_ENVIRON) $(CROSS_BUILD_ENVIRON)),) ifneq ($(filter y, $(MULTIARCH_QEMU_ENVIRON) $(CROSS_BUILD_ENVIRON)),)

View File

@ -7,34 +7,9 @@
[![Innovium](https://dev.azure.com/mssonic/build/_apis/build/status/innovium/Azure.sonic-buildimage.official.innovium?branchName=master&label=Innovium)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=148&branchName=master) [![Innovium](https://dev.azure.com/mssonic/build/_apis/build/status/innovium/Azure.sonic-buildimage.official.innovium?branchName=master&label=Innovium)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=148&branchName=master)
[![Mellanox](https://dev.azure.com/mssonic/build/_apis/build/status/mellanox/Azure.sonic-buildimage.official.mellanox?branchName=master&label=Mellanox)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=139&branchName=master) [![Mellanox](https://dev.azure.com/mssonic/build/_apis/build/status/mellanox/Azure.sonic-buildimage.official.mellanox?branchName=master&label=Mellanox)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=139&branchName=master)
[![Marvell(armhf)](https://dev.azure.com/mssonic/build/_apis/build/status/marvell/Azure.sonic-buildimage.official.marvell-armhf?branchName=master&label=Marvell-armhf)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=141&branchName=master) [![Marvell(armhf)](https://dev.azure.com/mssonic/build/_apis/build/status/marvell/Azure.sonic-buildimage.official.marvell-armhf?branchName=master&label=Marvell-armhf)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=141&branchName=master)
[![Marvell(arm64)](https://dev.azure.com/mssonic/build/_apis/build/status/marvell/Azure.sonic-buildimage.official.marvell-arm64?branchName=master&label=Marvell-arm64)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=999&branchName=master)
[![Nephos](https://dev.azure.com/mssonic/build/_apis/build/status/nephos/Azure.sonic-buildimage.official.nephos?branchName=master&label=Nephos)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=149&branchName=master) [![Nephos](https://dev.azure.com/mssonic/build/_apis/build/status/nephos/Azure.sonic-buildimage.official.nephos?branchName=master&label=Nephos)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=149&branchName=master)
[![VS](https://dev.azure.com/mssonic/build/_apis/build/status/vs/Azure.sonic-buildimage.official.vs?branchName=master&label=VS)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=142&branchName=master) [![VS](https://dev.azure.com/mssonic/build/_apis/build/status/vs/Azure.sonic-buildimage.official.vs?branchName=master&label=VS)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=142&branchName=master)
*202305 builds*:
[![Barefoot](https://dev.azure.com/mssonic/build/_apis/build/status/barefoot/Azure.sonic-buildimage.official.barefoot?branchName=202205&label=Barefoot)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=146&branchName=202305)
[![Broadcom](https://dev.azure.com/mssonic/build/_apis/build/status/broadcom/Azure.sonic-buildimage.official.broadcom?branchName=202305&label=Broadcom)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=138&branchName=202305)
[![Centec](https://dev.azure.com/mssonic/build/_apis/build/status/centec/Azure.sonic-buildimage.official.centec?branchName=202305&label=Centec)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=143&branchName=202305)
[![Centec(arm64)](https://dev.azure.com/mssonic/build/_apis/build/status/centec/Azure.sonic-buildimage.official.centec-arm64?branchName=202305&label=Centec-arm64)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=140&branchName=202305)
[![Innovium](https://dev.azure.com/mssonic/build/_apis/build/status/innovium/Azure.sonic-buildimage.official.innovium?branchName=202305&label=Innovium)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=148&branchName=202305)
[![Mellanox](https://dev.azure.com/mssonic/build/_apis/build/status/mellanox/Azure.sonic-buildimage.official.mellanox?branchName=202305&label=Mellanox)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=139&branchName=202305)
[![Marvell(armhf)](https://dev.azure.com/mssonic/build/_apis/build/status/marvell/Azure.sonic-buildimage.official.marvell-armhf?branchName=202305&label=Marvell-armhf)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=141&branchName=202305)
[![Nephos](https://dev.azure.com/mssonic/build/_apis/build/status/nephos/Azure.sonic-buildimage.official.nephos?branchName=202305&label=Nephos)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=149&branchName=202305)
[![VS](https://dev.azure.com/mssonic/build/_apis/build/status/vs/Azure.sonic-buildimage.official.vs?branchName=202305&label=VS)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=142&branchName=202305)
*202211 builds*:
[![Barefoot](https://dev.azure.com/mssonic/build/_apis/build/status/barefoot/Azure.sonic-buildimage.official.barefoot?branchName=202205&label=Barefoot)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=146&branchName=202211)
[![Broadcom](https://dev.azure.com/mssonic/build/_apis/build/status/broadcom/Azure.sonic-buildimage.official.broadcom?branchName=202211&label=Broadcom)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=138&branchName=202211)
[![Centec](https://dev.azure.com/mssonic/build/_apis/build/status/centec/Azure.sonic-buildimage.official.centec?branchName=202211&label=Centec)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=143&branchName=202211)
[![Centec(arm64)](https://dev.azure.com/mssonic/build/_apis/build/status/centec/Azure.sonic-buildimage.official.centec-arm64?branchName=202211&label=Centec-arm64)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=140&branchName=202211)
[![Innovium](https://dev.azure.com/mssonic/build/_apis/build/status/innovium/Azure.sonic-buildimage.official.innovium?branchName=202211&label=Innovium)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=148&branchName=202211)
[![Mellanox](https://dev.azure.com/mssonic/build/_apis/build/status/mellanox/Azure.sonic-buildimage.official.mellanox?branchName=202211&label=Mellanox)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=139&branchName=202211)
[![Marvell(armhf)](https://dev.azure.com/mssonic/build/_apis/build/status/marvell/Azure.sonic-buildimage.official.marvell-armhf?branchName=202211&label=Marvell-armhf)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=141&branchName=202211)
[![Nephos](https://dev.azure.com/mssonic/build/_apis/build/status/nephos/Azure.sonic-buildimage.official.nephos?branchName=202211&label=Nephos)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=149&branchName=202211)
[![VS](https://dev.azure.com/mssonic/build/_apis/build/status/vs/Azure.sonic-buildimage.official.vs?branchName=202211&label=VS)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=142&branchName=202211)
*202205 builds*: *202205 builds*:
[![Barefoot](https://dev.azure.com/mssonic/build/_apis/build/status/barefoot/Azure.sonic-buildimage.official.barefoot?branchName=202205&label=Barefoot)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=146&branchName=202205) [![Barefoot](https://dev.azure.com/mssonic/build/_apis/build/status/barefoot/Azure.sonic-buildimage.official.barefoot?branchName=202205&label=Barefoot)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=146&branchName=202205)
@ -80,6 +55,14 @@
[![Nephos](https://dev.azure.com/mssonic/build/_apis/build/status/nephos/Azure.sonic-buildimage.official.nephos?branchName=201911&label=Nephos)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=149&branchName=201911) [![Nephos](https://dev.azure.com/mssonic/build/_apis/build/status/nephos/Azure.sonic-buildimage.official.nephos?branchName=201911&label=Nephos)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=149&branchName=201911)
[![VS](https://dev.azure.com/mssonic/build/_apis/build/status/vs/Azure.sonic-buildimage.official.vs?branchName=201911&label=VS)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=142&branchName=201911) [![VS](https://dev.azure.com/mssonic/build/_apis/build/status/vs/Azure.sonic-buildimage.official.vs?branchName=201911&label=VS)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=142&branchName=201911)
*201811 builds*:
[![Broadcom](https://dev.azure.com/mssonic/build/_apis/build/status/broadcom/Azure.sonic-buildimage.official.broadcom?branchName=201811&label=Broadcom)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=138&branchName=201811)
[![Mellanox](https://dev.azure.com/mssonic/build/_apis/build/status/mellanox/Azure.sonic-buildimage.official.mellanox?branchName=201811&label=Mellanox)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=139&branchName=201811)
[![Innovium](https://dev.azure.com/mssonic/build/_apis/build/status/innovium/Azure.sonic-buildimage.official.innovium?branchName=201811&label=Innovium)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=148&branchName=201811)
[![Nephos](https://dev.azure.com/mssonic/build/_apis/build/status/nephos/Azure.sonic-buildimage.official.nephos?branchName=201811&label=Nephos)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=149&branchName=201811)
[![VS](https://dev.azure.com/mssonic/build/_apis/build/status/vs/Azure.sonic-buildimage.official.vs?branchName=201811&label=VS)](https://dev.azure.com/mssonic/build/_build/latest?definitionId=142&branchName=201811)
# sonic-buildimage # sonic-buildimage
## Build SONiC Switch Images ## Build SONiC Switch Images
@ -123,7 +106,6 @@ pip3 install --user j2cli
system to allow running the 'docker' command without 'sudo': system to allow running the 'docker' command without 'sudo':
* Add current user to the docker group: `sudo gpasswd -a ${USER} docker` * Add current user to the docker group: `sudo gpasswd -a ${USER} docker`
* Log out and log back in so that your group membership is re-evaluated * Log out and log back in so that your group membership is re-evaluated
* If you are using Linux kernel 5.3 or newer, then you must use Docker 20.10.10 or newer. This is because older Docker versions did not allow the `clone3` syscall, which is now used in Bookworm.
> Note: If a previous installation of Docker using snap was present on the > Note: If a previous installation of Docker using snap was present on the
> system, remove it and also remove docker from snap before reinstallating docker. > system, remove it and also remove docker from snap before reinstallating docker.
@ -180,6 +162,9 @@ The supported ASIC vendors are:
## Usage for ARM Architecture ## Usage for ARM Architecture
ARM build has dependency in docker version 18.
If docker version is 19, downgrade to 18 with:
```shell ```shell
sudo apt-get install --allow-downgrades -y docker-ce=5:18.09.0~3-0~ubuntu-xenial sudo apt-get install --allow-downgrades -y docker-ce=5:18.09.0~3-0~ubuntu-xenial
sudo apt-get install --allow-downgrades -y docker-ce-cli=5:18.09.0~3-0~ubuntu-xenial sudo apt-get install --allow-downgrades -y docker-ce-cli=5:18.09.0~3-0~ubuntu-xenial
@ -343,10 +328,6 @@ on the SAI version for each SONiC release.
[managing, configuring and monitoring SONiC](https://github.com/sonic-net/sonic-mgmt) [managing, configuring and monitoring SONiC](https://github.com/sonic-net/sonic-mgmt)
(gzip tar archive) (gzip tar archive)
## SONiC Image Azure Pipelines
All SONiC project build pipeline could be found at [Download Portal for SONiC Images](https://sonic-build.azurewebsites.net)
## Contribution Guide ## Contribution Guide
All contributors must sign a contribution license agreement before contributions All contributors must sign a contribution license agreement before contributions

View File

@ -28,7 +28,6 @@ resources:
- repository: sonic-mgmt - repository: sonic-mgmt
type: github type: github
name: sonic-net/sonic-mgmt name: sonic-net/sonic-mgmt
ref: master
endpoint: sonic-net endpoint: sonic-net
- repository: buildimage - repository: buildimage
type: github type: github
@ -42,12 +41,7 @@ variables:
- name: CACHE_MODE - name: CACHE_MODE
value: rcache value: rcache
- name: ENABLE_FIPS - name: ENABLE_FIPS
value: n value: y
- name: BUILD_BRANCH
${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
value: $(System.PullRequest.TargetBranch)
${{ else }}:
value: $(Build.SourceBranchName)
stages: stages:
- stage: BuildVS - stage: BuildVS
@ -55,12 +49,14 @@ stages:
jobs: jobs:
- template: .azure-pipelines/azure-pipelines-build.yml - template: .azure-pipelines/azure-pipelines-build.yml
parameters: parameters:
buildOptions: 'USERNAME=admin SONIC_BUILD_JOBS=$(nproc) BUILD_MULTIASIC_KVM=y INCLUDE_DHCP_SERVER=y ${{ variables.VERSION_CONTROL_OPTIONS }}' buildOptions: 'USERNAME=admin SONIC_BUILD_JOBS=$(nproc) BUILD_MULTIASIC_KVM=y ${{ variables.VERSION_CONTROL_OPTIONS }}'
jobGroups: jobGroups:
- name: vs - name: vs
- stage: Build - stage: Build
pool: sonicbld pool: sonicbld
variables:
INSTALL_DEBUG_TOOLS: y
dependsOn: [] dependsOn: []
jobs: jobs:
- template: .azure-pipelines/azure-pipelines-build.yml - template: .azure-pipelines/azure-pipelines-build.yml
@ -70,28 +66,18 @@ stages:
- name: broadcom - name: broadcom
variables: variables:
swi_image: yes swi_image: yes
INCLUDE_RESTAPI: y
- name: mellanox - name: mellanox
variables:
dbg_image: yes
docker_syncd_rpc_image: yes
platform_rpc: mlnx
- name: marvell-arm64
pool: sonicbld-arm64
variables:
PLATFORM_ARCH: arm64
- name: marvell-armhf - name: marvell-armhf
pool: sonicbld-armhf pool: sonicbld-armhf
timeoutInMinutes: 1200 timeoutInMinutes: 1200
variables: variables:
PLATFORM_ARCH: armhf PLATFORM_ARCH: armhf
INCLUDE_RESTAPI: y
- stage: Test - stage: Test
dependsOn: BuildVS dependsOn: BuildVS
condition: and(succeeded(), and(ne(stageDependencies.BuildVS.outputs['vs.SetVar.SKIP_VSTEST'], 'YES'), in(dependencies.BuildVS.result, 'Succeeded', 'SucceededWithIssues'))) condition: and(succeeded(), and(ne(stageDependencies.BuildVS.outputs['vs.SetVar.SKIP_VSTEST'], 'YES'), in(dependencies.BuildVS.result, 'Succeeded', 'SucceededWithIssues')))
variables: variables:
- group: SONiC-Elastictest - group: Testbed-Tools
- name: inventory - name: inventory
value: veos_vtb value: veos_vtb
- name: testbed_file - name: testbed_file
@ -118,30 +104,27 @@ stages:
sudo rm -rf ../*.deb sudo rm -rf ../*.deb
displayName: "Cleanup" displayName: "Cleanup"
- task: DownloadPipelineArtifact@2
inputs:
source: specific
project: build
pipeline: 9
artifact: sonic-swss-common.amd64.ubuntu20_04
runVersion: 'latestFromBranch'
runBranch: 'refs/heads/master'
displayName: "Download sonic swss common deb packages"
- task: DownloadPipelineArtifact@2 - task: DownloadPipelineArtifact@2
inputs: inputs:
artifact: sonic-buildimage.vs artifact: sonic-buildimage.vs
displayName: "Download sonic-buildimage.vs artifact" displayName: "Download sonic-buildimage.vs artifact"
- script: | - script: |
sudo src/sonic-swss-common/.azure-pipelines/build_and_install_module.sh set -x
displayName: "Install kernel modules"
- script: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y make libtool m4 autoconf dh-exec debhelper cmake pkg-config \ sudo apt-get install libyang0.16 -y
libhiredis-dev libnl-3-dev libnl-genl-3-dev libnl-route-3-dev libnl-nf-3-dev swig \ sudo dpkg -i --force-confask,confnew ../libswsscommon_1.0.0_amd64.deb
libpython2.7-dev libboost-dev libboost-serialization-dev uuid-dev libzmq5 libzmq3-dev python3-pip \ sudo dpkg -i ../python3-swsscommon_1.0.0_amd64.deb
cmake libgtest-dev libgmock-dev libyang-dev nlohmann-json3-dev
sudo pip3 install pytest
cd src/sonic-swss-common
./autogen.sh
dpkg-buildpackage -rfakeroot -us -uc -b -j$(nproc)
sudo dpkg -i --force-confask,confnew ../libswsscommon_*.deb
sudo dpkg -i ../python3-swsscommon_*.deb
displayName: "Compile sonic swss common"
- script: |
sudo docker load -i ../target/docker-sonic-vs.gz sudo docker load -i ../target/docker-sonic-vs.gz
docker tag docker-sonic-vs:latest docker-sonic-vs:$(Build.BuildNumber) docker tag docker-sonic-vs:latest docker-sonic-vs:$(Build.BuildNumber)
username=$(id -un) username=$(id -un)
@ -160,115 +143,180 @@ stages:
testResultsFiles: '**/tr.xml' testResultsFiles: '**/tr.xml'
testRunTitle: vstest testRunTitle: vstest
- job: t0_elastictest - job: t0_part1
pool: ubuntu-20.04 pool: sonictest
displayName: "kvmtest-t0 by Elastictest" displayName: "kvmtest-t0-part1"
timeoutInMinutes: 240 timeoutInMinutes: 400
condition: and(succeeded(), eq(variables.BUILD_IMG_RUN_CLASSICAL_TEST, 'YES'))
continueOnError: false continueOnError: false
steps: steps:
- template: .azure-pipelines/run-test-elastictest-template.yml@sonic-mgmt - template: .azure-pipelines/run-test-template.yml
parameters:
dut: vlab-01
tbname: vms-kvm-t0
ptf_name: ptf_vms6-1
tbtype: t0
vmtype: ceos
section: part-1
- job: t0_part2
pool: sonictest
displayName: "kvmtest-t0-part2"
timeoutInMinutes: 400
condition: and(succeeded(), eq(variables.BUILD_IMG_RUN_CLASSICAL_TEST, 'YES'))
continueOnError: false
steps:
- template: .azure-pipelines/run-test-template.yml
parameters:
dut: vlab-01
tbname: vms-kvm-t0
ptf_name: ptf_vms6-1
tbtype: t0
vmtype: ceos
section: part-2
- job: t0_testbedv2
pool: ubuntu-20.04
displayName: "kvmtest-t0 by TestbedV2"
timeoutInMinutes: 240
condition: and(succeeded(), eq(variables.BUILD_IMG_RUN_TESTBEDV2_TEST, 'YES'))
continueOnError: false
steps:
- template: .azure-pipelines/run-test-scheduler-template.yml
parameters: parameters:
TOPOLOGY: t0 TOPOLOGY: t0
MIN_WORKER: $(T0_INSTANCE_NUM) MIN_WORKER: $(T0_INSTANCE_NUM)
MAX_WORKER: $(T0_INSTANCE_NUM) MAX_WORKER: $(T0_INSTANCE_NUM)
MGMT_BRANCH: $(BUILD_BRANCH)
- job: t0_2vlans_elastictest - job: t0_2vlans_testbedv2
pool: ubuntu-20.04 pool: ubuntu-20.04
displayName: "kvmtest-t0-2vlans by Elastictest" displayName: "kvmtest-t0-2vlans by TestbedV2"
timeoutInMinutes: 240 timeoutInMinutes: 240
condition: and(succeeded(), eq(variables.BUILD_IMG_RUN_TESTBEDV2_TEST, 'YES'))
continueOnError: false continueOnError: false
steps: steps:
- template: .azure-pipelines/run-test-elastictest-template.yml@sonic-mgmt - template: .azure-pipelines/run-test-scheduler-template.yml
parameters: parameters:
TOPOLOGY: t0 TOPOLOGY: t0
TEST_SET: t0-2vlans TEST_SET: t0-2vlans
MIN_WORKER: $(T0_2VLANS_INSTANCE_NUM) MIN_WORKER: $(T0_2VLANS_INSTANCE_NUM)
MAX_WORKER: $(T0_2VLANS_INSTANCE_NUM) MAX_WORKER: $(T0_2VLANS_INSTANCE_NUM)
MGMT_BRANCH: $(BUILD_BRANCH)
DEPLOY_MG_EXTRA_PARAMS: "-e vlan_config=two_vlan_a" DEPLOY_MG_EXTRA_PARAMS: "-e vlan_config=two_vlan_a"
- job: t1_lag_elastictest - job: t1_lag_classic
pool: ubuntu-20.04 pool: sonictest-t1-lag
displayName: "kvmtest-t1-lag by Elastictest" displayName: "kvmtest-t1-lag classic"
timeoutInMinutes: 240 timeoutInMinutes: 400
condition: and(succeeded(), eq(variables.BUILD_IMG_RUN_CLASSICAL_TEST, 'YES'))
continueOnError: false continueOnError: false
steps: steps:
- template: .azure-pipelines/run-test-elastictest-template.yml@sonic-mgmt - template: .azure-pipelines/run-test-template.yml
parameters:
dut: vlab-03
tbname: vms-kvm-t1-lag
ptf_name: ptf_vms6-2
tbtype: t1-lag
vmtype: ceos
- job: t1_lag_testbedv2
pool: ubuntu-20.04
displayName: "kvmtest-t1-lag by TestbedV2"
timeoutInMinutes: 240
condition: and(succeeded(), eq(variables.BUILD_IMG_RUN_TESTBEDV2_TEST, 'YES'))
continueOnError: false
steps:
- template: .azure-pipelines/run-test-scheduler-template.yml
parameters: parameters:
TOPOLOGY: t1-lag TOPOLOGY: t1-lag
MIN_WORKER: $(T1_LAG_INSTANCE_NUM) MIN_WORKER: $(T1_LAG_INSTANCE_NUM)
MAX_WORKER: $(T1_LAG_INSTANCE_NUM) MAX_WORKER: $(T1_LAG_INSTANCE_NUM)
MGMT_BRANCH: $(BUILD_BRANCH)
- job: multi_asic_elastictest - job:
displayName: "kvmtest-multi-asic-t1-lag by Elastictest" pool: sonictest-sonic-t0
pool: ubuntu-20.04 displayName: "kvmtest-t0-sonic"
timeoutInMinutes: 240 timeoutInMinutes: 360
condition: and(succeeded(), eq(variables.BUILD_IMG_RUN_CLASSICAL_TEST, 'YES'))
continueOnError: false continueOnError: false
steps: steps:
- template: .azure-pipelines/run-test-elastictest-template.yml@sonic-mgmt - template: .azure-pipelines/run-test-template.yml
parameters:
dut: vlab-02
tbname: vms-kvm-t0-64-32
ptf_name: ptf_vms6-1
tbtype: t0-sonic
vmtype: vsonic
- job:
pool: sonictest-ma
displayName: "kvmtest-multi-asic-t1-lag"
timeoutInMinutes: 240
condition: and(succeeded(), eq(variables.BUILD_IMG_RUN_CLASSICAL_TEST, 'YES'))
continueOnError: false
steps:
- template: .azure-pipelines/run-test-template.yml
parameters:
dut: vlab-08
tbname: vms-kvm-four-asic-t1-lag
ptf_name: ptf_vms6-4
tbtype: multi-asic-t1-lag-pr
image: sonic-4asic-vs.img.gz
- job: multi_asic_testbedv2
displayName: "kvmtest-multi-asic-t1-lag by TestbedV2"
pool: ubuntu-20.04
timeoutInMinutes: 240
condition: and(succeeded(), eq(variables.BUILD_IMG_RUN_TESTBEDV2_TEST, 'YES'))
continueOnError: false
steps:
- template: .azure-pipelines/run-test-scheduler-template.yml
parameters: parameters:
TOPOLOGY: t1-8-lag TOPOLOGY: t1-8-lag
TEST_SET: multi-asic-t1-lag TEST_SET: multi-asic-t1-lag
MIN_WORKER: $(MULTI_ASIC_INSTANCE_NUM) MIN_WORKER: $(MULTI_ASIC_INSTANCE_NUM)
MAX_WORKER: $(MULTI_ASIC_INSTANCE_NUM) MAX_WORKER: $(MULTI_ASIC_INSTANCE_NUM)
NUM_ASIC: 4 NUM_ASIC: 4
MGMT_BRANCH: $(BUILD_BRANCH)
- job: dualtor_elastictest - job: dualtor_testbedv2
pool: ubuntu-20.04 pool: ubuntu-20.04
displayName: "kvmtest-dualtor-t0 by Elastictest" displayName: "kvmtest-dualtor-t0 by TestbedV2"
timeoutInMinutes: 240 timeoutInMinutes: 240
condition: and(succeeded(), eq(variables.BUILD_IMG_RUN_TESTBEDV2_TEST, 'YES'))
continueOnError: false continueOnError: false
steps: steps:
- template: .azure-pipelines/run-test-elastictest-template.yml@sonic-mgmt - template: .azure-pipelines/run-test-scheduler-template.yml
parameters: parameters:
TOPOLOGY: dualtor TOPOLOGY: dualtor
MIN_WORKER: $(T0_DUALTOR_INSTANCE_NUM) MIN_WORKER: $(T0_DUALTOR_INSTANCE_NUM)
MAX_WORKER: $(T0_DUALTOR_INSTANCE_NUM) MAX_WORKER: $(T0_DUALTOR_INSTANCE_NUM)
MGMT_BRANCH: $(BUILD_BRANCH)
COMMON_EXTRA_PARAMS: "--disable_loganalyzer " COMMON_EXTRA_PARAMS: "--disable_loganalyzer "
- job: sonic_t0_elastictest - job: sonic_t0_testbedv2
displayName: "kvmtest-t0-sonic by Elastictest" displayName: "kvmtest-t0-sonic by TestbedV2"
pool: ubuntu-20.04 pool: ubuntu-20.04
timeoutInMinutes: 240 timeoutInMinutes: 240
condition: and(succeeded(), eq(variables.BUILD_IMG_RUN_TESTBEDV2_TEST, 'YES'))
continueOnError: false continueOnError: false
steps: steps:
- template: .azure-pipelines/run-test-elastictest-template.yml@sonic-mgmt - template: .azure-pipelines/run-test-scheduler-template.yml
parameters: parameters:
TOPOLOGY: t0-64-32 TOPOLOGY: t0-64-32
MIN_WORKER: $(T0_SONIC_INSTANCE_NUM) MIN_WORKER: $(T0_SONIC_INSTANCE_NUM)
MAX_WORKER: $(T0_SONIC_INSTANCE_NUM) MAX_WORKER: $(T0_SONIC_INSTANCE_NUM)
TEST_SET: t0-sonic TEST_SET: t0-sonic
MGMT_BRANCH: $(BUILD_BRANCH) COMMON_EXTRA_PARAMS: "--neighbor_type=sonic --enable_macsec --macsec_profile=128_SCI,256_XPN_SCI"
COMMON_EXTRA_PARAMS: "--neighbor_type=sonic "
VM_TYPE: vsonic VM_TYPE: vsonic
SPECIFIED_PARAMS: '{\"test_pretest.py\":[\"--completeness_level=confident\",\"--allow_recover\"],\"test_posttest.py\":[\"--completeness_level=confident\",\"--allow_recover\"]}'
- job: dpu_elastictest - job: wan_testbedv2
displayName: "kvmtest-dpu by Elastictest" displayName: "kvmtest-wan by TestbedV2"
timeoutInMinutes: 240
continueOnError: false
pool: ubuntu-20.04 pool: ubuntu-20.04
timeoutInMinutes: 240
condition: and(succeeded(), eq(variables.BUILD_IMG_RUN_TESTBEDV2_TEST, 'YES'))
continueOnError: false
steps: steps:
- template: .azure-pipelines/run-test-elastictest-template.yml@sonic-mgmt - template: .azure-pipelines/run-test-scheduler-template.yml
parameters: parameters:
TOPOLOGY: dpu TOPOLOGY: wan-pub
MIN_WORKER: $(T0_SONIC_INSTANCE_NUM) MIN_WORKER: $(WAN_INSTANCE_NUM)
MAX_WORKER: $(T0_SONIC_INSTANCE_NUM) MAX_WORKER: $(WAN_INSTANCE_NUM)
MGMT_BRANCH: $(BUILD_BRANCH) COMMON_EXTRA_PARAMS: "--skip_sanity "
# - job: wan_elastictest
# displayName: "kvmtest-wan by Elastictest"
# pool: ubuntu-20.04
# timeoutInMinutes: 240
# continueOnError: false
# steps:
# - template: .azure-pipelines/run-test-scheduler-template.yml
# parameters:
# TOPOLOGY: wan-pub
# MIN_WORKER: $(WAN_INSTANCE_NUM)
# MAX_WORKER: $(WAN_INSTANCE_NUM)
# COMMON_EXTRA_PARAMS: "--skip_sanity "

View File

@ -31,9 +31,9 @@ set -x -e
CONFIGURED_ARCH=$([ -f .arch ] && cat .arch || echo amd64) CONFIGURED_ARCH=$([ -f .arch ] && cat .arch || echo amd64)
## docker engine version (with platform) ## docker engine version (with platform)
DOCKER_VERSION=5:24.0.2-1~debian.12~$IMAGE_DISTRO DOCKER_VERSION=5:20.10.14~3-0~debian-$IMAGE_DISTRO
CONTAINERD_IO_VERSION=1.6.21-1 CONTAINERD_IO_VERSION=1.5.11-1
LINUX_KERNEL_VERSION=6.1.0-11-2 LINUX_KERNEL_VERSION=5.10.0-18-2
## Working directory to prepare the file system ## Working directory to prepare the file system
FILESYSTEM_ROOT=./fsroot FILESYSTEM_ROOT=./fsroot
@ -50,8 +50,8 @@ TRUSTED_GPG_DIR=$BUILD_TOOL_PATH/trusted.gpg.d
echo "Error: Invalid ONIE_IMAGE_PART_SIZE in onie image config file" echo "Error: Invalid ONIE_IMAGE_PART_SIZE in onie image config file"
exit 1 exit 1
} }
[ -n "$INSTALLER_PAYLOAD" ] || { [ -n "$ONIE_INSTALLER_PAYLOAD" ] || {
echo "Error: Invalid INSTALLER_PAYLOAD in onie image config file" echo "Error: Invalid ONIE_INSTALLER_PAYLOAD in onie image config file"
exit 1 exit 1
} }
[ -n "$FILESYSTEM_SQUASHFS" ] || { [ -n "$FILESYSTEM_SQUASHFS" ] || {
@ -59,30 +59,23 @@ TRUSTED_GPG_DIR=$BUILD_TOOL_PATH/trusted.gpg.d
exit 1 exit 1
} }
if [ "$IMAGE_TYPE" = "aboot" ]; then
TARGET_BOOTLOADER="aboot"
fi
## Check if not a last stage of RFS build
if [[ $RFS_SPLIT_LAST_STAGE != y ]]; then
## Prepare the file system directory ## Prepare the file system directory
if [[ -d $FILESYSTEM_ROOT ]]; then if [[ -d $FILESYSTEM_ROOT ]]; then
sudo rm -rf $FILESYSTEM_ROOT || die "Failed to clean chroot directory" sudo rm -rf $FILESYSTEM_ROOT || die "Failed to clean chroot directory"
fi fi
mkdir -p $FILESYSTEM_ROOT mkdir -p $FILESYSTEM_ROOT
mkdir -p $FILESYSTEM_ROOT/$PLATFORM_DIR mkdir -p $FILESYSTEM_ROOT/$PLATFORM_DIR
mkdir -p $FILESYSTEM_ROOT/$PLATFORM_DIR/grub
touch $FILESYSTEM_ROOT/$PLATFORM_DIR/firsttime touch $FILESYSTEM_ROOT/$PLATFORM_DIR/firsttime
bootloader_packages=""
if [ "$TARGET_BOOTLOADER" != "aboot" ]; then
mkdir -p $FILESYSTEM_ROOT/$PLATFORM_DIR/grub
bootloader_packages="grub2-common"
fi
## ensure proc is mounted ## ensure proc is mounted
sudo mount proc /proc -t proc || true sudo mount proc /proc -t proc || true
## make / as a mountpoint in chroot env, needed by dockerd
pushd $FILESYSTEM_ROOT
sudo mount --bind . .
popd
## Build the host debian base system ## Build the host debian base system
echo '[INFO] Build host debian base system...' echo '[INFO] Build host debian base system...'
TARGET_PATH=$TARGET_PATH scripts/build_debian_base_system.sh $CONFIGURED_ARCH $IMAGE_DISTRO $FILESYSTEM_ROOT TARGET_PATH=$TARGET_PATH scripts/build_debian_base_system.sh $CONFIGURED_ARCH $IMAGE_DISTRO $FILESYSTEM_ROOT
@ -118,10 +111,9 @@ sudo LANG=C chroot $FILESYSTEM_ROOT mount
[ -d $TRUSTED_GPG_DIR ] && [ ! -z "$(ls $TRUSTED_GPG_DIR)" ] && sudo cp $TRUSTED_GPG_DIR/* ${FILESYSTEM_ROOT}/etc/apt/trusted.gpg.d/ [ -d $TRUSTED_GPG_DIR ] && [ ! -z "$(ls $TRUSTED_GPG_DIR)" ] && sudo cp $TRUSTED_GPG_DIR/* ${FILESYSTEM_ROOT}/etc/apt/trusted.gpg.d/
## Pointing apt to public apt mirrors and getting latest packages, needed for latest security updates ## Pointing apt to public apt mirrors and getting latest packages, needed for latest security updates
scripts/build_mirror_config.sh files/apt $CONFIGURED_ARCH $IMAGE_DISTRO scripts/build_mirror_config.sh files/apt $CONFIGURED_ARCH $IMAGE_DISTRO
sudo cp files/apt/sources.list.$CONFIGURED_ARCH $FILESYSTEM_ROOT/etc/apt/sources.list sudo cp files/apt/sources.list.$CONFIGURED_ARCH $FILESYSTEM_ROOT/etc/apt/sources.list
sudo cp files/apt/apt-retries-count $FILESYSTEM_ROOT/etc/apt/apt.conf.d/ sudo cp files/apt/apt.conf.d/{81norecommends,apt-{clean,gzip-indexes,no-languages},no-check-valid-until,apt-multiple-retries} $FILESYSTEM_ROOT/etc/apt/apt.conf.d/
sudo cp files/apt/apt.conf.d/{81norecommends,apt-{clean,gzip-indexes,no-languages},no-check-valid-until} $FILESYSTEM_ROOT/etc/apt/apt.conf.d/
## Note: set lang to prevent locale warnings in your chroot ## Note: set lang to prevent locale warnings in your chroot
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y update sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y update
@ -256,40 +248,36 @@ sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install apparmor
sudo cp files/image_config/ntp/ntp-apparmor $FILESYSTEM_ROOT/etc/apparmor.d/local/usr.sbin.ntpd sudo cp files/image_config/ntp/ntp-apparmor $FILESYSTEM_ROOT/etc/apparmor.d/local/usr.sbin.ntpd
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install apt-transport-https \ sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install apt-transport-https \
ca-certificates \ ca-certificates \
curl curl \
gnupg2 \
software-properties-common
if [[ $CONFIGURED_ARCH == armhf ]]; then if [[ $CONFIGURED_ARCH == armhf ]]; then
# update ssl ca certificates for secure pem # update ssl ca certificates for secure pem
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT c_rehash sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT c_rehash
fi fi
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT curl -o /tmp/docker.asc -fsSL https://download.docker.com/linux/debian/gpg sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT curl -o /tmp/docker.asc -fsSL https://download.docker.com/linux/debian/gpg
sudo LANG=C chroot $FILESYSTEM_ROOT mv /tmp/docker.asc /etc/apt/trusted.gpg.d/ sudo LANG=C chroot $FILESYSTEM_ROOT mv /tmp/docker.asc /etc/apt/trusted.gpg.d/
sudo tee $FILESYSTEM_ROOT/etc/apt/sources.list.d/docker.list >/dev/null <<EOF sudo LANG=C chroot $FILESYSTEM_ROOT add-apt-repository \
deb [arch=$CONFIGURED_ARCH] https://download.docker.com/linux/debian $IMAGE_DISTRO stable "deb [arch=$CONFIGURED_ARCH] https://download.docker.com/linux/debian $IMAGE_DISTRO stable"
EOF
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get update sudo LANG=C chroot $FILESYSTEM_ROOT apt-get update
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install docker-ce=${DOCKER_VERSION} docker-ce-cli=${DOCKER_VERSION} containerd.io=${CONTAINERD_IO_VERSION} sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install docker-ce=${DOCKER_VERSION} docker-ce-cli=${DOCKER_VERSION} containerd.io=${CONTAINERD_IO_VERSION}
# Uninstall 'python3-gi' installed as part of 'software-properties-common' to remove debian version of 'PyGObject'
# pip version of 'PyGObject' will be installed during installation of 'sonic-host-services'
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y remove software-properties-common gnupg2 python3-gi
install_kubernetes () { install_kubernetes () {
local ver="$1" local ver="$1"
## Install k8s package from storage sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT curl -fsSL \
local storage_prefix="https://sonicstorage.blob.core.windows.net/public/kubernetes" https://packages.cloud.google.com/apt/doc/apt-key.gpg | \
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT curl -o /tmp/cri-tools.deb -fsSL \ sudo LANG=C chroot $FILESYSTEM_ROOT apt-key add -
${storage_prefix}/cri-tools_${KUBERNETES_CRI_TOOLS_VERSION}_${CONFIGURED_ARCH}.deb ## Check out the sources list update matches current Debian version
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT curl -o /tmp/kubernetes-cni.deb -fsSL \ sudo cp files/image_config/kubernetes/kubernetes.list $FILESYSTEM_ROOT/etc/apt/sources.list.d/
${storage_prefix}/kubernetes-cni_${KUBERNETES_CNI_VERSION}_${CONFIGURED_ARCH}.deb sudo LANG=C chroot $FILESYSTEM_ROOT apt-get update
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT curl -o /tmp/kubelet.deb -fsSL \ sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install kubernetes-cni=${KUBERNETES_CNI_VERSION}
${storage_prefix}/kubelet_${ver}_${CONFIGURED_ARCH}.deb sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install kubelet=${ver}
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT curl -o /tmp/kubectl.deb -fsSL \ sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install kubectl=${ver}
${storage_prefix}/kubectl_${ver}_${CONFIGURED_ARCH}.deb sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install kubeadm=${ver}
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT curl -o /tmp/kubeadm.deb -fsSL \
${storage_prefix}/kubeadm_${ver}_${CONFIGURED_ARCH}.deb
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install -f /tmp/cri-tools.deb
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install -f /tmp/kubernetes-cni.deb
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install -f /tmp/kubelet.deb
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install -f /tmp/kubectl.deb
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install -f /tmp/kubeadm.deb
sudo LANG=C chroot $FILESYSTEM_ROOT rm -f /tmp/{cri-tools,kubernetes-cni,kubelet,kubeadm,kubectl}.deb
} }
if [ "$INCLUDE_KUBERNETES" == "y" ] if [ "$INCLUDE_KUBERNETES" == "y" ]
@ -306,11 +294,22 @@ then
## Install Kubernetes master ## Install Kubernetes master
echo '[INFO] Install kubernetes master' echo '[INFO] Install kubernetes master'
install_kubernetes ${MASTER_KUBERNETES_VERSION} install_kubernetes ${MASTER_KUBERNETES_VERSION}
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install hyperv-daemons xmlstarlet parted netcat-openbsd sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT curl -fsSL \
https://packages.microsoft.com/keys/microsoft.asc | \
sudo LANG=C chroot $FILESYSTEM_ROOT apt-key add -
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT curl -fsSL \
https://packages.microsoft.com/keys/msopentech.asc | \
sudo LANG=C chroot $FILESYSTEM_ROOT apt-key add -
echo "deb [arch=amd64] https://packages.microsoft.com/repos/azurecore-debian $IMAGE_DISTRO main" | \
sudo tee $FILESYSTEM_ROOT/etc/apt/sources.list.d/azure.list
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get update
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install hyperv-daemons gnupg xmlstarlet
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install metricsext2
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y remove gnupg
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT curl -o /tmp/cri-dockerd.deb -fsSL \ sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT curl -o /tmp/cri-dockerd.deb -fsSL \
https://github.com/Mirantis/cri-dockerd/releases/download/v${MASTER_CRI_DOCKERD}/cri-dockerd_${MASTER_CRI_DOCKERD}.3-0.debian-${IMAGE_DISTRO}_amd64.deb https://github.com/Mirantis/cri-dockerd/releases/download/v${MASTER_CRI_DOCKERD}/cri-dockerd_${MASTER_CRI_DOCKERD}.3-0.debian-${IMAGE_DISTRO}_amd64.deb
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install -f /tmp/cri-dockerd.deb sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install -f /tmp/cri-dockerd.deb
sudo LANG=C chroot $FILESYSTEM_ROOT rm -f /tmp/cri-dockerd.deb sudo LANG=C chroot $FILESYSTEM_ROOT rm -f /tmp/cri-dockerd.deb
else else
echo '[INFO] Skipping Install kubernetes master' echo '[INFO] Skipping Install kubernetes master'
@ -376,14 +375,14 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
gdisk \ gdisk \
sysfsutils \ sysfsutils \
squashfs-tools \ squashfs-tools \
$bootloader_packages \ grub2-common \
rsyslog \
screen \ screen \
hping3 \ hping3 \
tcptraceroute \ tcptraceroute \
mtr-tiny \ mtr-tiny \
locales \ locales \
cgroup-tools \ cgroup-tools \
ipmitool \
ndisc6 \ ndisc6 \
makedumpfile \ makedumpfile \
conntrack \ conntrack \
@ -392,20 +391,21 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
python3-pip \ python3-pip \
python-is-python3 \ python-is-python3 \
cron \ cron \
libprotobuf32 \ libprotobuf23 \
libgrpc29 \ libgrpc++1 \
libgrpc++1.51 \ libgrpc10 \
haveged \ haveged \
fdisk \ fdisk \
gpg \ gpg \
jq \ jq \
auditd \ auditd \
linux-perf \ linux-perf \
resolvconf \
lsof \ lsof \
sysstat \ sysstat
xxd \
zstd # default rsyslog version is 8.2110.0 which has a bug on log rate limit,
# use backport version
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -t bullseye-backports -y install rsyslog
# Have systemd create the auditd log directory # Have systemd create the auditd log directory
sudo mkdir -p ${FILESYSTEM_ROOT}/etc/systemd/system/auditd.service.d sudo mkdir -p ${FILESYSTEM_ROOT}/etc/systemd/system/auditd.service.d
@ -415,10 +415,6 @@ LogsDirectory=audit
LogsDirectoryMode=0750 LogsDirectoryMode=0750
EOF EOF
# latest tcpdump control resource access with AppArmor.
# override tcpdump profile to allow tcpdump access TACACS config file.
sudo cp files/apparmor/usr.bin.tcpdump $FILESYSTEM_ROOT/etc/apparmor.d/local/usr.bin.tcpdump
if [[ $CONFIGURED_ARCH == amd64 ]]; then if [[ $CONFIGURED_ARCH == amd64 ]]; then
## Pre-install the fundamental packages for amd64 (x86) ## Pre-install the fundamental packages for amd64 (x86)
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install \ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install \
@ -467,10 +463,6 @@ fi
## Disable kexec supported reboot which was installed by default ## Disable kexec supported reboot which was installed by default
sudo sed -i 's/LOAD_KEXEC=true/LOAD_KEXEC=false/' $FILESYSTEM_ROOT/etc/default/kexec sudo sed -i 's/LOAD_KEXEC=true/LOAD_KEXEC=false/' $FILESYSTEM_ROOT/etc/default/kexec
# Ensure that 'logrotate-config.service' is set as a dependency to start before 'logrotate.service'.
sudo mkdir $FILESYSTEM_ROOT/etc/systemd/system/logrotate.service.d
sudo cp files/image_config/logrotate/logrotateOverride.conf $FILESYSTEM_ROOT/etc/systemd/system/logrotate.service.d/logrotateOverride.conf
## Remove sshd host keys, and will regenerate on first sshd start ## Remove sshd host keys, and will regenerate on first sshd start
sudo rm -f $FILESYSTEM_ROOT/etc/ssh/ssh_host_*_key* sudo rm -f $FILESYSTEM_ROOT/etc/ssh/ssh_host_*_key*
sudo cp files/sshd/host-ssh-keygen.sh $FILESYSTEM_ROOT/usr/local/bin/ sudo cp files/sshd/host-ssh-keygen.sh $FILESYSTEM_ROOT/usr/local/bin/
@ -490,14 +482,10 @@ rm /files/etc/ssh/sshd_config/ClientAliveInterval
rm /files/etc/ssh/sshd_config/ClientAliveCountMax rm /files/etc/ssh/sshd_config/ClientAliveCountMax
touch /files/etc/ssh/sshd_config/EmptyLineHack touch /files/etc/ssh/sshd_config/EmptyLineHack
rename /files/etc/ssh/sshd_config/EmptyLineHack "" rename /files/etc/ssh/sshd_config/EmptyLineHack ""
set /files/etc/ssh/sshd_config/ClientAliveInterval 300 set /files/etc/ssh/sshd_config/ClientAliveInterval 900
set /files/etc/ssh/sshd_config/ClientAliveCountMax 0 set /files/etc/ssh/sshd_config/ClientAliveCountMax 0
ins #comment before /files/etc/ssh/sshd_config/ClientAliveInterval ins #comment before /files/etc/ssh/sshd_config/ClientAliveInterval
set /files/etc/ssh/sshd_config/#comment[following-sibling::*[1][self::ClientAliveInterval]] "Close inactive client sessions after 5 minutes" set /files/etc/ssh/sshd_config/#comment[following-sibling::*[1][self::ClientAliveInterval]] "Close inactive client sessions after 15 minutes"
rm /files/etc/ssh/sshd_config/MaxAuthTries
set /files/etc/ssh/sshd_config/MaxAuthTries 3
rm /files/etc/ssh/sshd_config/Banner
set /files/etc/ssh/sshd_config/Banner /etc/issue
rm /files/etc/ssh/sshd_config/LogLevel rm /files/etc/ssh/sshd_config/LogLevel
set /files/etc/ssh/sshd_config/LogLevel VERBOSE set /files/etc/ssh/sshd_config/LogLevel VERBOSE
save save
@ -535,11 +523,13 @@ done < files/image_config/sysctl/sysctl-net.conf
sudo augtool --autosave "$sysctl_net_cmd_string" -r $FILESYSTEM_ROOT sudo augtool --autosave "$sysctl_net_cmd_string" -r $FILESYSTEM_ROOT
# Specify that we want to explicitly install Python packages into the system environment, and risk breakages # Upgrade pip via PyPI and uninstall the Debian version
sudo cp files/image_config/pip/pip.conf $FILESYSTEM_ROOT/etc/pip.conf sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install --upgrade pip
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get purge -y python3-pip
# For building Python packages # For building Python packages
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install python3-setuptools python3-wheel sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'setuptools==49.6.00'
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'wheel==0.35.1'
# docker Python API package is needed by Ansible docker module as well as some SONiC applications # docker Python API package is needed by Ansible docker module as well as some SONiC applications
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'docker==6.1.1' sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'docker==6.1.1'
@ -547,9 +537,6 @@ sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'docke
# Install scapy # Install scapy
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'scapy==2.4.4' sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'scapy==2.4.4'
# The option --no-build-isolation can be removed when upgrading PyYAML to 6.0.1
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'PyYAML==5.4.1' --no-build-isolation
## Note: keep pip installed for maintainance purpose ## Note: keep pip installed for maintainance purpose
# Install GCC, needed for building/installing some Python packages # Install GCC, needed for building/installing some Python packages
@ -572,80 +559,20 @@ sudo cp files/dhcp/sethostname6 $FILESYSTEM_ROOT/etc/dhcp/dhclient-exit-hooks.d/
sudo cp files/dhcp/graphserviceurl $FILESYSTEM_ROOT/etc/dhcp/dhclient-exit-hooks.d/ sudo cp files/dhcp/graphserviceurl $FILESYSTEM_ROOT/etc/dhcp/dhclient-exit-hooks.d/
sudo cp files/dhcp/snmpcommunity $FILESYSTEM_ROOT/etc/dhcp/dhclient-exit-hooks.d/ sudo cp files/dhcp/snmpcommunity $FILESYSTEM_ROOT/etc/dhcp/dhclient-exit-hooks.d/
sudo cp files/dhcp/vrf $FILESYSTEM_ROOT/etc/dhcp/dhclient-exit-hooks.d/ sudo cp files/dhcp/vrf $FILESYSTEM_ROOT/etc/dhcp/dhclient-exit-hooks.d/
if [ -f files/image_config/ntp/ntpsec ]; then if [ -f files/image_config/ntp/ntp ]; then
sudo cp ./files/image_config/ntp/ntpsec $FILESYSTEM_ROOT/etc/init.d/ sudo cp ./files/image_config/ntp/ntp $FILESYSTEM_ROOT/etc/init.d/
fi fi
if [ -f files/image_config/ntp/ntp-systemd-wrapper ]; then if [ -f files/image_config/ntp/ntp-systemd-wrapper ]; then
sudo cp ./files/image_config/ntp/ntp-systemd-wrapper $FILESYSTEM_ROOT/usr/libexec/ntpsec/ sudo mkdir -p $FILESYSTEM_ROOT/usr/lib/ntp/
sudo cp ./files/image_config/ntp/ntp-systemd-wrapper $FILESYSTEM_ROOT/usr/lib/ntp/
fi fi
## Version file part 1 ## Version file
sudo mkdir -p $FILESYSTEM_ROOT/etc/sonic sudo mkdir -p $FILESYSTEM_ROOT/etc/sonic
if [ -f files/image_config/sonic_release ]; then if [ -f files/image_config/sonic_release ]; then
sudo cp files/image_config/sonic_release $FILESYSTEM_ROOT/etc/sonic/ sudo cp files/image_config/sonic_release $FILESYSTEM_ROOT/etc/sonic/
fi fi
# Default users info
export password_expire="$( [[ "$CHANGE_DEFAULT_PASSWORD" == "y" ]] && echo true || echo false )"
export username="${USERNAME}"
export password="$(sudo grep ^${USERNAME} $FILESYSTEM_ROOT/etc/shadow | cut -d: -f2)"
j2 files/build_templates/default_users.json.j2 | sudo tee $FILESYSTEM_ROOT/etc/sonic/default_users.json
sudo LANG=c chroot $FILESYSTEM_ROOT chmod 600 /etc/sonic/default_users.json
sudo LANG=c chroot $FILESYSTEM_ROOT chown root:shadow /etc/sonic/default_users.json
## Copy over clean-up script
sudo cp ./files/scripts/core_cleanup.py $FILESYSTEM_ROOT/usr/bin/core_cleanup.py
## Copy ASIC config checksum
sudo chmod 755 files/build_scripts/generate_asic_config_checksum.py
./files/build_scripts/generate_asic_config_checksum.py
if [[ ! -f './asic_config_checksum' ]]; then
echo 'asic_config_checksum not found'
exit 1
fi
sudo cp ./asic_config_checksum $FILESYSTEM_ROOT/etc/sonic/asic_config_checksum
## Check if not a last stage of RFS build
fi
if [[ $RFS_SPLIT_FIRST_STAGE == y ]]; then
echo '[INFO] Finished with RFS first stage'
echo '[INFO] Umount all'
## Display all process details access /proc
sudo LANG=C chroot $FILESYSTEM_ROOT fuser -vm /proc
## Kill the processes
sudo LANG=C chroot $FILESYSTEM_ROOT fuser -km /proc || true
## Wait fuser fully kill the processes
sudo timeout 15s bash -c 'until LANG=C chroot $0 umount /proc; do sleep 1; done' $FILESYSTEM_ROOT || true
sudo rm -f $TARGET_PATH/$RFS_SQUASHFS_NAME
sudo mksquashfs $FILESYSTEM_ROOT $TARGET_PATH/$RFS_SQUASHFS_NAME -Xcompression-level 1
exit 0
fi
if [[ $RFS_SPLIT_LAST_STAGE == y ]]; then
echo '[INFO] RFS build: second stage'
## ensure proc is mounted
sudo mount proc /proc -t proc || true
sudo fuser -vm $FILESYSTEM_ROOT || true
sudo rm -rf $FILESYSTEM_ROOT
sudo unsquashfs -d $FILESYSTEM_ROOT $TARGET_PATH/$RFS_SQUASHFS_NAME
## make / as a mountpoint in chroot env, needed by dockerd
pushd $FILESYSTEM_ROOT
sudo mount --bind . .
popd
trap_push 'sudo LANG=C chroot $FILESYSTEM_ROOT umount /proc || true'
sudo LANG=C chroot $FILESYSTEM_ROOT mount proc /proc -t proc
fi
## Version file part 2
export build_version="${SONIC_IMAGE_VERSION}" export build_version="${SONIC_IMAGE_VERSION}"
export debian_version="$(cat $FILESYSTEM_ROOT/etc/debian_version)" export debian_version="$(cat $FILESYSTEM_ROOT/etc/debian_version)"
export kernel_version="${kversion}" export kernel_version="${kversion}"
@ -660,6 +587,18 @@ export built_by="$USER@$BUILD_HOSTNAME"
export sonic_os_version="${SONIC_OS_VERSION}" export sonic_os_version="${SONIC_OS_VERSION}"
j2 files/build_templates/sonic_version.yml.j2 | sudo tee $FILESYSTEM_ROOT/etc/sonic/sonic_version.yml j2 files/build_templates/sonic_version.yml.j2 | sudo tee $FILESYSTEM_ROOT/etc/sonic/sonic_version.yml
## Copy over clean-up script
sudo cp ./files/scripts/core_cleanup.py $FILESYSTEM_ROOT/usr/bin/core_cleanup.py
## Copy ASIC config checksum
sudo chmod 755 files/build_scripts/generate_asic_config_checksum.py
./files/build_scripts/generate_asic_config_checksum.py
if [[ ! -f './asic_config_checksum' ]]; then
echo 'asic_config_checksum not found'
exit 1
fi
sudo cp ./asic_config_checksum $FILESYSTEM_ROOT/etc/sonic/asic_config_checksum
if [ -f sonic_debian_extension.sh ]; then if [ -f sonic_debian_extension.sh ]; then
./sonic_debian_extension.sh $FILESYSTEM_ROOT $PLATFORM_DIR $IMAGE_DISTRO ./sonic_debian_extension.sh $FILESYSTEM_ROOT $PLATFORM_DIR $IMAGE_DISTRO
fi fi
@ -694,15 +633,11 @@ then
fi fi
## Set FIPS runtime default option
sudo LANG=C chroot $FILESYSTEM_ROOT /bin/bash -c "mkdir -p /etc/fips"
sudo LANG=C chroot $FILESYSTEM_ROOT /bin/bash -c "echo 0 > /etc/fips/fips_enable"
# ################# # #################
# secure boot # secure boot
# ################# # #################
if [[ $SECURE_UPGRADE_MODE == 'dev' || $SECURE_UPGRADE_MODE == "prod" && $SONIC_ENABLE_SECUREBOOT_SIGNATURE != 'y' ]]; then if [[ $SECURE_UPGRADE_MODE == 'dev' || $SECURE_UPGRADE_MODE == "prod" && $SONIC_ENABLE_SECUREBOOT_SIGNATURE != 'y' ]]; then
# note: SONIC_ENABLE_SECUREBOOT_SIGNATURE is a feature that signing just kernel, # note: SONIC_ENABLE_SECUREBOOT_SIGNATURE is a feature that signing just kernel,
# SECURE_UPGRADE_MODE is signing all the boot component including kernel. # SECURE_UPGRADE_MODE is signing all the boot component including kernel.
# its required to do not enable both features together to avoid conflicts. # its required to do not enable both features together to avoid conflicts.
echo "Secure Boot support build stage: Starting .." echo "Secure Boot support build stage: Starting .."
@ -711,14 +646,14 @@ if [[ $SECURE_UPGRADE_MODE == 'dev' || $SECURE_UPGRADE_MODE == "prod" && $SONIC_
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install \ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install \
shim-unsigned \ shim-unsigned \
grub-efi grub-efi
if [ ! -f $SECURE_UPGRADE_SIGNING_CERT ]; then if [ ! -f $SECURE_UPGRADE_SIGNING_CERT ]; then
echo "Error: SONiC SECURE_UPGRADE_SIGNING_CERT=$SECURE_UPGRADE_SIGNING_CERT key missing" echo "Error: SONiC SECURE_UPGRADE_SIGNING_CERT=$SECURE_UPGRADE_SIGNING_CERT key missing"
exit 1 exit 1
fi fi
if [[ $SECURE_UPGRADE_MODE == 'dev' ]]; then if [[ $SECURE_UPGRADE_MODE == 'dev' ]]; then
# development signing & verification # development signing & verification
if [ ! -f $SECURE_UPGRADE_DEV_SIGNING_KEY ]; then if [ ! -f $SECURE_UPGRADE_DEV_SIGNING_KEY ]; then
echo "Error: SONiC SECURE_UPGRADE_DEV_SIGNING_KEY=$SECURE_UPGRADE_DEV_SIGNING_KEY key missing" echo "Error: SONiC SECURE_UPGRADE_DEV_SIGNING_KEY=$SECURE_UPGRADE_DEV_SIGNING_KEY key missing"
@ -763,27 +698,14 @@ sudo chroot $FILESYSTEM_ROOT update-initramfs -u
## Convert initrd image to u-boot format ## Convert initrd image to u-boot format
if [[ $TARGET_BOOTLOADER == uboot ]]; then if [[ $TARGET_BOOTLOADER == uboot ]]; then
INITRD_FILE=initrd.img-${LINUX_KERNEL_VERSION}-${CONFIGURED_ARCH} INITRD_FILE=initrd.img-${LINUX_KERNEL_VERSION}-${CONFIGURED_ARCH}
KERNEL_FILE=vmlinuz-${LINUX_KERNEL_VERSION}-${CONFIGURED_ARCH}
if [[ $CONFIGURED_ARCH == armhf ]]; then if [[ $CONFIGURED_ARCH == armhf ]]; then
INITRD_FILE=initrd.img-${LINUX_KERNEL_VERSION}-armmp INITRD_FILE=initrd.img-${LINUX_KERNEL_VERSION}-armmp
sudo LANG=C chroot $FILESYSTEM_ROOT mkimage -A arm -O linux -T ramdisk -C gzip -d /boot/$INITRD_FILE /boot/u${INITRD_FILE} sudo LANG=C chroot $FILESYSTEM_ROOT mkimage -A arm -O linux -T ramdisk -C gzip -d /boot/$INITRD_FILE /boot/u${INITRD_FILE}
## Overwriting the initrd image with uInitrd ## Overwriting the initrd image with uInitrd
sudo LANG=C chroot $FILESYSTEM_ROOT mv /boot/u${INITRD_FILE} /boot/$INITRD_FILE sudo LANG=C chroot $FILESYSTEM_ROOT mv /boot/u${INITRD_FILE} /boot/$INITRD_FILE
elif [[ $CONFIGURED_ARCH == arm64 ]]; then elif [[ $CONFIGURED_ARCH == arm64 ]]; then
if [[ $CONFIGURED_PLATFORM == pensando ]]; then sudo cp -v $PLATFORM_DIR/${sonic_asic_platform}-${CONFIGURED_ARCH}/sonic_fit.its $FILESYSTEM_ROOT/boot/
## copy device tree file into boot (XXX: need to compile dtb from dts) sudo LANG=C chroot $FILESYSTEM_ROOT mkimage -f /boot/sonic_fit.its /boot/sonic_${CONFIGURED_ARCH}.fit
sudo cp -v $PLATFORM_DIR/pensando/elba-asic-psci.dtb $FILESYSTEM_ROOT/boot/
## make kernel as gzip file
sudo LANG=C chroot $FILESYSTEM_ROOT gzip /boot/${KERNEL_FILE}
sudo LANG=C chroot $FILESYSTEM_ROOT mv /boot/${KERNEL_FILE}.gz /boot/${KERNEL_FILE}
## Convert initrd image to u-boot format
sudo LANG=C chroot $FILESYSTEM_ROOT mkimage -A arm64 -O linux -T ramdisk -C gzip -d /boot/$INITRD_FILE /boot/u${INITRD_FILE}
## Overwriting the initrd image with uInitrd
sudo LANG=C chroot $FILESYSTEM_ROOT mv /boot/u${INITRD_FILE} /boot/$INITRD_FILE
else
sudo cp -v $PLATFORM_DIR/${sonic_asic_platform}-${CONFIGURED_ARCH}/sonic_fit.its $FILESYSTEM_ROOT/boot/
sudo LANG=C chroot $FILESYSTEM_ROOT mkimage -f /boot/sonic_fit.its /boot/sonic_${CONFIGURED_ARCH}.fit
fi
fi fi
fi fi
@ -818,7 +740,8 @@ sudo LANG=C chroot $FILESYSTEM_ROOT fuser -vm /proc
## Kill the processes ## Kill the processes
sudo LANG=C chroot $FILESYSTEM_ROOT fuser -km /proc || true sudo LANG=C chroot $FILESYSTEM_ROOT fuser -km /proc || true
## Wait fuser fully kill the processes ## Wait fuser fully kill the processes
sudo timeout 15s bash -c 'until LANG=C chroot $0 umount /proc; do sleep 1; done' $FILESYSTEM_ROOT || true sleep 15
sudo LANG=C chroot $FILESYSTEM_ROOT umount /proc || true
## Prepare empty directory to trigger mount move in initramfs-tools/mount_loop_root, implemented by patching ## Prepare empty directory to trigger mount move in initramfs-tools/mount_loop_root, implemented by patching
sudo mkdir $FILESYSTEM_ROOT/host sudo mkdir $FILESYSTEM_ROOT/host
@ -834,32 +757,14 @@ if [[ "$CHANGE_DEFAULT_PASSWORD" == "y" ]]; then
fi fi
## Compress most file system into squashfs file ## Compress most file system into squashfs file
sudo rm -f $INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS sudo rm -f $ONIE_INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS
## Output the file system total size for diag purpose ## Output the file system total size for diag purpose
## Note: -x to skip directories on different file systems, such as /proc ## Note: -x to skip directories on different file systems, such as /proc
sudo du -hsx $FILESYSTEM_ROOT sudo du -hsx $FILESYSTEM_ROOT
sudo mkdir -p $FILESYSTEM_ROOT/var/lib/docker sudo mkdir -p $FILESYSTEM_ROOT/var/lib/docker
sudo cp files/image_config/resolv-config/resolv.conf $FILESYSTEM_ROOT/etc/resolv.conf
## Clear DNS configuration inherited from the build server
sudo rm -f $FILESYSTEM_ROOT/etc/resolvconf/resolv.conf.d/original
sudo cp files/image_config/resolv-config/resolv.conf.head $FILESYSTEM_ROOT/etc/resolvconf/resolv.conf.d/head
## Optimize filesystem size
if [ "$BUILD_REDUCE_IMAGE_SIZE" = "y" ]; then
sudo scripts/build-optimize-fs-size.py "$FILESYSTEM_ROOT" \
--image-type "$IMAGE_TYPE" \
--hardlinks var/lib/docker \
--hardlinks usr/share/sonic/device \
--remove-docs \
--remove-mans \
--remove-licenses
fi
sudo mksquashfs $FILESYSTEM_ROOT $FILESYSTEM_SQUASHFS -comp zstd -b 1M -e boot -e var/lib/docker -e $PLATFORM_DIR sudo mksquashfs $FILESYSTEM_ROOT $FILESYSTEM_SQUASHFS -comp zstd -b 1M -e boot -e var/lib/docker -e $PLATFORM_DIR
## Reduce /boot permission
sudo chmod -R go-wx $FILESYSTEM_ROOT/boot
# Ensure admin gid is 1000 # Ensure admin gid is 1000
gid_user=$(sudo LANG=C chroot $FILESYSTEM_ROOT id -g $USERNAME) || gid_user="none" gid_user=$(sudo LANG=C chroot $FILESYSTEM_ROOT id -g $USERNAME) || gid_user="none"
if [ "${gid_user}" != "1000" ]; then if [ "${gid_user}" != "1000" ]; then
@ -879,5 +784,5 @@ fi
pushd $FILESYSTEM_ROOT && sudo tar -I $GZ_COMPRESS_PROGRAM -cf $OLDPWD/$FILESYSTEM_DOCKERFS -C ${DOCKERFS_PATH}var/lib/docker .; popd pushd $FILESYSTEM_ROOT && sudo tar -I $GZ_COMPRESS_PROGRAM -cf $OLDPWD/$FILESYSTEM_DOCKERFS -C ${DOCKERFS_PATH}var/lib/docker .; popd
## Compress together with /boot, /var/lib/docker and $PLATFORM_DIR as an installer payload zip file ## Compress together with /boot, /var/lib/docker and $PLATFORM_DIR as an installer payload zip file
pushd $FILESYSTEM_ROOT && sudo tar -I $GZ_COMPRESS_PROGRAM -cf platform.tar.gz -C $PLATFORM_DIR . && sudo zip -n .gz $OLDPWD/$INSTALLER_PAYLOAD -r boot/ platform.tar.gz; popd pushd $FILESYSTEM_ROOT && sudo tar -I $GZ_COMPRESS_PROGRAM -cf platform.tar.gz -C $PLATFORM_DIR . && sudo zip -n .gz $OLDPWD/$ONIE_INSTALLER_PAYLOAD -r boot/ platform.tar.gz; popd
sudo zip -g -n .squashfs:.gz $INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS $FILESYSTEM_DOCKERFS sudo zip -g -n .squashfs:.gz $ONIE_INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS $FILESYSTEM_DOCKERFS

View File

@ -18,8 +18,8 @@ fi
echo "Error: Invalid ONIE_IMAGE_PART_SIZE in onie image config file" echo "Error: Invalid ONIE_IMAGE_PART_SIZE in onie image config file"
exit 1 exit 1
} }
[ -n "$INSTALLER_PAYLOAD" ] || { [ -n "$ONIE_INSTALLER_PAYLOAD" ] || {
echo "Error: Invalid INSTALLER_PAYLOAD in onie image config file" echo "Error: Invalid ONIE_INSTALLER_PAYLOAD in onie image config file"
exit 1 exit 1
} }
@ -86,7 +86,7 @@ generate_onie_installer_image()
## Note: Don't leave blank between lines. It is single line command. ## Note: Don't leave blank between lines. It is single line command.
./onie-mk-demo.sh $CONFIGURED_ARCH $TARGET_MACHINE $TARGET_PLATFORM-$TARGET_MACHINE-$ONIEIMAGE_VERSION \ ./onie-mk-demo.sh $CONFIGURED_ARCH $TARGET_MACHINE $TARGET_PLATFORM-$TARGET_MACHINE-$ONIEIMAGE_VERSION \
installer platform/$TARGET_MACHINE/platform.conf $output_file OS $IMAGE_VERSION $ONIE_IMAGE_PART_SIZE \ installer platform/$TARGET_MACHINE/platform.conf $output_file OS $IMAGE_VERSION $ONIE_IMAGE_PART_SIZE \
$INSTALLER_PAYLOAD $SECURE_UPGRADE_SIGNING_CERT $SECURE_UPGRADE_DEV_SIGNING_KEY $ONIE_INSTALLER_PAYLOAD
} }
# Generate asic-specific device list # Generate asic-specific device list
@ -139,11 +139,7 @@ elif [ "$IMAGE_TYPE" = "raw" ]; then
## Run the installer ## Run the installer
## The 'build' install mode of the installer is used to generate this dump. ## The 'build' install mode of the installer is used to generate this dump.
sudo chmod a+x $tmp_output_onie_image sudo chmod a+x $tmp_output_onie_image
sudo ./$tmp_output_onie_image || { sudo ./$tmp_output_onie_image
## Failure during 'build' install mode of the installer results in an incomplete raw image.
## Delete the incomplete raw image.
sudo rm -f $OUTPUT_RAW_IMAGE
}
rm $tmp_output_onie_image rm $tmp_output_onie_image
[ -r $OUTPUT_RAW_IMAGE ] || { [ -r $OUTPUT_RAW_IMAGE ] || {
@ -151,7 +147,15 @@ elif [ "$IMAGE_TYPE" = "raw" ]; then
exit 1 exit 1
} }
echo "The raw image is in $OUTPUT_RAW_IMAGE" $GZ_COMPRESS_PROGRAM $OUTPUT_RAW_IMAGE
[ -r $OUTPUT_RAW_IMAGE.gz ] || {
echo "Error : $GZ_COMPRESS_PROGRAM $OUTPUT_RAW_IMAGE failed!"
exit 1
}
mv $OUTPUT_RAW_IMAGE.gz $OUTPUT_RAW_IMAGE
echo "The compressed raw image is in $OUTPUT_RAW_IMAGE"
elif [ "$IMAGE_TYPE" = "kvm" ]; then elif [ "$IMAGE_TYPE" = "kvm" ]; then
@ -175,7 +179,7 @@ elif [ "$IMAGE_TYPE" = "aboot" ]; then
sudo rm -f $OUTPUT_ABOOT_IMAGE sudo rm -f $OUTPUT_ABOOT_IMAGE
sudo rm -f $ABOOT_BOOT_IMAGE sudo rm -f $ABOOT_BOOT_IMAGE
## Add main payload ## Add main payload
cp $INSTALLER_PAYLOAD $OUTPUT_ABOOT_IMAGE cp $ONIE_INSTALLER_PAYLOAD $OUTPUT_ABOOT_IMAGE
## Add Aboot boot0 file ## Add Aboot boot0 file
j2 -f env files/Aboot/boot0.j2 ./onie-image.conf > files/Aboot/boot0 j2 -f env files/Aboot/boot0.j2 ./onie-image.conf > files/Aboot/boot0
sed -i -e "s/%%IMAGE_VERSION%%/$IMAGE_VERSION/g" files/Aboot/boot0 sed -i -e "s/%%IMAGE_VERSION%%/$IMAGE_VERSION/g" files/Aboot/boot0
@ -213,38 +217,6 @@ elif [ "$IMAGE_TYPE" = "aboot" ]; then
[ -f "$CA_CERT" ] && cp "$CA_CERT" "$TARGET_CA_CERT" [ -f "$CA_CERT" ] && cp "$CA_CERT" "$TARGET_CA_CERT"
./scripts/sign_image.sh -i "$OUTPUT_ABOOT_IMAGE" -k "$SIGNING_KEY" -c "$SIGNING_CERT" -a "$TARGET_CA_CERT" ./scripts/sign_image.sh -i "$OUTPUT_ABOOT_IMAGE" -k "$SIGNING_KEY" -c "$SIGNING_CERT" -a "$TARGET_CA_CERT"
fi fi
elif [ "$IMAGE_TYPE" = "dsc" ]; then
echo "Build DSC installer"
dsc_installer_dir=files/dsc
dsc_installer=$dsc_installer_dir/install_debian
dsc_installer_manifest=$dsc_installer_dir/MANIFEST
mkdir -p `dirname $OUTPUT_DSC_IMAGE`
sudo rm -f $OUTPUT_DSC_IMAGE
source ./onie-image.conf
j2 $dsc_installer.j2 > $dsc_installer
export installer_sha=$(sha512sum "$dsc_installer" | awk '{print $1}')
export build_date=$(date -u)
export build_user=$(id -un)
export installer_payload_sha=$(sha512sum "$INSTALLER_PAYLOAD" | awk '{print $1}')
j2 $dsc_installer_manifest.j2 > $dsc_installer_manifest
cp $INSTALLER_PAYLOAD $dsc_installer_dir
tar cf $OUTPUT_DSC_IMAGE -C files/dsc $(basename $dsc_installer_manifest) $INSTALLER_PAYLOAD $(basename $dsc_installer)
echo "Build ONIE installer"
mkdir -p `dirname $OUTPUT_ONIE_IMAGE`
sudo rm -f $OUTPUT_ONIE_IMAGE
generate_device_list "./installer/platforms_asic"
generate_onie_installer_image
else else
echo "Error: Non supported image type $IMAGE_TYPE" echo "Error: Non supported image type $IMAGE_TYPE"
exit 1 exit 1

View File

@ -1,17 +1,7 @@
{ {
"chassis": { "chassis": {
"name": "DCS-7050QX-32", "name": "DCS-7050QX-32",
"components": [ "components": [],
{
"name": "Scd(addr=0000:04:00.0)"
},
{
"name": "Ucd90120A(addr=6-004e)"
},
{
"name": "Ucd90160(addr=10-004e)"
}
],
"fans": [ "fans": [
{ {
"name": "fan1" "name": "fan1"
@ -63,43 +53,37 @@
"psus": [ "psus": [
{ {
"name": "psu1", "name": "psu1",
"fans": [ "fans": []
{
"name": "psu1/1",
"speed": {
"controllable": false
}
}
]
}, },
{ {
"name": "psu2", "name": "psu2",
"fans": [ "fans": []
{
"name": "psu2/1",
"speed": {
"controllable": false
}
}
]
} }
], ],
"thermals": [ "thermals": [
{ {
"name": "Cpu temp sensor", "name": "Cpu temp sensor"
"controllable": false
}, },
{ {
"name": "Board sensor", "name": "Board sensor"
"controllable": false
}, },
{ {
"name": "Front-panel temp sensor", "name": "Front-panel temp sensor"
"controllable": false
}, },
{ {
"name": "Rear temp sensor", "name": "Rear temp sensor"
"controllable": false },
{
"name": "Power supply 1 inlet temp sensor"
},
{
"name": "Power supply 1 internal sensor"
},
{
"name": "Power supply 2 inlet temp sensor"
},
{
"name": "Power supply 2 internal sensor"
} }
], ],
"sfps": [ "sfps": [

View File

@ -0,0 +1,144 @@
{
"interfaces": {
"Ethernet0": {
"default_brkout_mode": "1x10G",
"port_type": "RJ45"
},
"Ethernet1": {
"default_brkout_mode": "1x10G",
"port_type": "RJ45"
},
"Ethernet2": {
"default_brkout_mode": "1x10G",
"port_type": "RJ45"
},
"Ethernet3": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet4": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet8": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet12": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet16": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet20": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet24": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet28": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet32": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet36": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet40": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet44": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet48": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet52": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet56": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet60": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet64": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet68": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet72": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet76": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet80": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet84": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet88": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet92": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet96": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet100": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet104": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet108": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet112": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet116": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet120": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet124": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
}
}
}

View File

@ -1,36 +1,36 @@
# name lanes alias index speed # name lanes alias index
Ethernet0 9 Ethernet1 1 10000 Ethernet0 9 Ethernet1 1
Ethernet1 10 Ethernet2 2 10000 Ethernet1 10 Ethernet2 2
Ethernet2 11 Ethernet3 3 10000 Ethernet2 11 Ethernet3 3
Ethernet3 12 Ethernet4 4 1000 Ethernet3 12 Ethernet4 4
Ethernet4 13,14,15,16 Ethernet6/1 6 40000 Ethernet4 13,14,15,16 Ethernet6/1 6
Ethernet8 17,18,19,20 Ethernet7/1 7 40000 Ethernet8 17,18,19,20 Ethernet7/1 7
Ethernet12 21,22,23,24 Ethernet8/1 8 40000 Ethernet12 21,22,23,24 Ethernet8/1 8
Ethernet16 29,30,31,32 Ethernet9/1 9 40000 Ethernet16 29,30,31,32 Ethernet9/1 9
Ethernet20 25,26,27,28 Ethernet10/1 10 40000 Ethernet20 25,26,27,28 Ethernet10/1 10
Ethernet24 33,34,35,36 Ethernet11/1 11 40000 Ethernet24 33,34,35,36 Ethernet11/1 11
Ethernet28 37,38,39,40 Ethernet12/1 12 40000 Ethernet28 37,38,39,40 Ethernet12/1 12
Ethernet32 45,46,47,48 Ethernet13/1 13 40000 Ethernet32 45,46,47,48 Ethernet13/1 13
Ethernet36 41,42,43,44 Ethernet14/1 14 40000 Ethernet36 41,42,43,44 Ethernet14/1 14
Ethernet40 49,50,51,52 Ethernet15/1 15 40000 Ethernet40 49,50,51,52 Ethernet15/1 15
Ethernet44 53,54,55,56 Ethernet16/1 16 40000 Ethernet44 53,54,55,56 Ethernet16/1 16
Ethernet48 69,70,71,72 Ethernet17/1 17 40000 Ethernet48 69,70,71,72 Ethernet17/1 17
Ethernet52 65,66,67,68 Ethernet18/1 18 40000 Ethernet52 65,66,67,68 Ethernet18/1 18
Ethernet56 73,74,75,76 Ethernet19/1 19 40000 Ethernet56 73,74,75,76 Ethernet19/1 19
Ethernet60 77,78,79,80 Ethernet20/1 20 40000 Ethernet60 77,78,79,80 Ethernet20/1 20
Ethernet64 93,94,95,96 Ethernet21/1 21 40000 Ethernet64 93,94,95,96 Ethernet21/1 21
Ethernet68 89,90,91,92 Ethernet22/1 22 40000 Ethernet68 89,90,91,92 Ethernet22/1 22
Ethernet72 97,98,99,100 Ethernet23/1 23 40000 Ethernet72 97,98,99,100 Ethernet23/1 23
Ethernet76 101,102,103,104 Ethernet24/1 24 40000 Ethernet76 101,102,103,104 Ethernet24/1 24
Ethernet80 109,110,111,112 Ethernet25/1 25 40000 Ethernet80 109,110,111,112 Ethernet25/1 25
Ethernet84 105,106,107,108 Ethernet26/1 26 40000 Ethernet84 105,106,107,108 Ethernet26/1 26
Ethernet88 121,122,123,124 Ethernet27/1 27 40000 Ethernet88 121,122,123,124 Ethernet27/1 27
Ethernet92 125,126,127,128 Ethernet28/1 28 40000 Ethernet92 125,126,127,128 Ethernet28/1 28
Ethernet96 61,62,63,64 Ethernet29 29 40000 Ethernet96 61,62,63,64 Ethernet29 29
Ethernet100 57,58,59,60 Ethernet30 30 40000 Ethernet100 57,58,59,60 Ethernet30 30
Ethernet104 81,82,83,84 Ethernet31 31 40000 Ethernet104 81,82,83,84 Ethernet31 31
Ethernet108 85,86,87,88 Ethernet32 32 40000 Ethernet108 85,86,87,88 Ethernet32 32
Ethernet112 117,118,119,120 Ethernet33 33 40000 Ethernet112 117,118,119,120 Ethernet33 33
Ethernet116 113,114,115,116 Ethernet34 34 40000 Ethernet116 113,114,115,116 Ethernet34 34
Ethernet120 1,2,3,4 Ethernet35 35 40000 Ethernet120 1,2,3,4 Ethernet35 35
Ethernet124 5,6,7,8 Ethernet36 36 40000 Ethernet124 5,6,7,8 Ethernet36 36

View File

@ -1,23 +1,7 @@
{ {
"chassis": { "chassis": {
"name": "DCS-7050QX-32S", "name": "DCS-7050QX-32S",
"components": [ "components": [],
{
"name": "Aboot()"
},
{
"name": "Scd(addr=0000:02:00.0)"
},
{
"name": "Ucd90120A(addr=4-004e)"
},
{
"name": "Ucd90120A(addr=8-004e)"
},
{
"name": "CrowSysCpld(addr=2-0023)"
}
],
"fans": [], "fans": [],
"fan_drawers": [ "fan_drawers": [
{ {
@ -56,47 +40,46 @@
"psus": [ "psus": [
{ {
"name": "psu1", "name": "psu1",
"fans": [ "fans": []
{
"name": "psu1/1",
"speed": {
"controllable": false
}
}
]
}, },
{ {
"name": "psu2", "name": "psu2",
"fans": [ "fans": []
{
"name": "psu2/1",
"speed": {
"controllable": false
}
}
]
} }
], ],
"thermals": [ "thermals": [
{ {
"name": "Cpu temp sensor", "name": "Cpu temp sensor"
"controllable": false
}, },
{ {
"name": "Cpu board temp sensor", "name": "Cpu board temp sensor"
"controllable": false
}, },
{ {
"name": "Back-panel temp sensor", "name": "Back-panel temp sensor"
"controllable": false
}, },
{ {
"name": "Board Sensor", "name": "Board Sensor"
"controllable": false
}, },
{ {
"name": "Front-panel temp sensor", "name": "Front-panel temp sensor"
"controllable": false },
{
"name": "Power supply 1 hotspot sensor"
},
{
"name": "Power supply 1 inlet temp sensor"
},
{
"name": "Power supply 1 exhaust temp sensor"
},
{
"name": "Power supply 2 hotspot sensor"
},
{
"name": "Power supply 2 inlet temp sensor"
},
{
"name": "Power supply 2 exhaust temp sensor"
} }
], ],
"sfps": [ "sfps": [
@ -218,12 +201,6 @@
"1x40G[10G]": [ "1x40G[10G]": [
"Ethernet5/1" "Ethernet5/1"
], ],
"3x10G(3)+1x1G(1)": [
"Ethernet1",
"Ethernet2",
"Ethernet3",
"Ethernet4"
],
"2x20G[10G]": [ "2x20G[10G]": [
"Ethernet5/1", "Ethernet5/1",
"Ethernet5/3" "Ethernet5/3"

View File

@ -1,24 +1,16 @@
{# Construct config.bcm to include additional soc properties per specific device metadata requirement #} {# Construct config.bcm to include additional soc properties per specific device metadata requirement #}
{%- set map_prio = '' -%} {%- set map_prio = '' -%}
{%- set pfcwd_sock = '' -%}
{%- if DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined and DEVICE_METADATA['localhost']['subtype'] is defined -%} {%- if DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined and DEVICE_METADATA['localhost']['subtype'] is defined -%}
{%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%} {%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%}
{%- if 'dualtor' in switch_subtype.lower() %} {%- if 'dualtor' in switch_subtype.lower() %}
{%- set map_prio = 'sai_remap_prio_on_tnl_egress=1' -%} {%- set map_prio = 'sai_remap_prio_on_tnl_egress=1' -%}
{%- endif %} {%- endif %}
{%- endif %} {%- endif %}
{%- if SYSTEM_DEFAULTS is defined and 'tunnel_qos_remap' in SYSTEM_DEFAULTS and SYSTEM_DEFAULTS['tunnel_qos_remap']['status'] == 'enabled' -%}
{%- set pfcwd_sock =
'hybrid_pfc_deadlock_enable=1
pfc_deadlock_seq_control=1
sai_pfc_dlr_init_capability=1' -%}
{%- endif %}
sai_load_hw_config=/etc/bcm/flex/bcm56870_a0_premium_issu/b870.6.4.1/ sai_load_hw_config=/etc/bcm/flex/bcm56870_a0_premium_issu/b870.6.4.1/
l3_alpm_hit_skip=1 l3_alpm_hit_skip=1
sai_adjust_acl_drop_in_rx_drop=1 sai_adjust_acl_drop_in_rx_drop=1
sai_verify_incoming_chksum=0 sai_verify_incoming_chksum=0
{{ map_prio }} {{ map_prio }}
{{ pfcwd_sock }}
host_as_route_disable=1 host_as_route_disable=1
use_all_splithorizon_groups=1 use_all_splithorizon_groups=1
riot_enable=1 riot_enable=1

View File

@ -1,24 +1,16 @@
{# Construct config.bcm to include additional soc properties per specific device metadata requirement #} {# Construct config.bcm to include additional soc properties per specific device metadata requirement #}
{%- set map_prio = '' -%} {%- set map_prio = '' -%}
{%- set pfcwd_sock = '' -%}
{%- if DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined and DEVICE_METADATA['localhost']['subtype'] is defined -%} {%- if DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined and DEVICE_METADATA['localhost']['subtype'] is defined -%}
{%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%} {%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%}
{%- if 'dualtor' in switch_subtype.lower() %} {%- if 'dualtor' in switch_subtype.lower() %}
{%- set map_prio = 'sai_remap_prio_on_tnl_egress=1' -%} {%- set map_prio = 'sai_remap_prio_on_tnl_egress=1' -%}
{%- endif %} {%- endif %}
{%- endif %} {%- endif %}
{%- if SYSTEM_DEFAULTS is defined and 'tunnel_qos_remap' in SYSTEM_DEFAULTS and SYSTEM_DEFAULTS['tunnel_qos_remap']['status'] == 'enabled' -%}
{%- set pfcwd_sock =
'hybrid_pfc_deadlock_enable=1
pfc_deadlock_seq_control=1
sai_pfc_dlr_init_capability=1' -%}
{%- endif %}
sai_load_hw_config=/etc/bcm/flex/bcm56870_a0_premium_issu/b870.6.4.1/ sai_load_hw_config=/etc/bcm/flex/bcm56870_a0_premium_issu/b870.6.4.1/
l3_alpm_hit_skip=1 l3_alpm_hit_skip=1
sai_adjust_acl_drop_in_rx_drop=1 sai_adjust_acl_drop_in_rx_drop=1
sai_verify_incoming_chksum=0 sai_verify_incoming_chksum=0
{{ map_prio }} {{ map_prio }}
{{ pfcwd_sock }}
host_as_route_disable=1 host_as_route_disable=1
use_all_splithorizon_groups=1 use_all_splithorizon_groups=1
riot_enable=1 riot_enable=1

View File

@ -152,6 +152,11 @@
id: '1466' id: '1466'
name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh)
Data Fabric: Device 18h; Function 6' Data Fabric: Device 18h; Function 6'
- bus: '00'
dev: '18'
fn: '7'
id: '0001'
name: 'Host bridge: Arastra Inc. Device 0001'
- bus: '01' - bus: '01'
dev: '00' dev: '00'
fn: '0' fn: '0'

View File

@ -152,6 +152,11 @@
id: '1466' id: '1466'
name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh)
Data Fabric: Device 18h; Function 6' Data Fabric: Device 18h; Function 6'
- bus: '00'
dev: '18'
fn: '7'
id: '0001'
name: 'Host bridge: Arastra Inc. Device 0001'
- bus: '01' - bus: '01'
dev: '00' dev: '00'
fn: '0' fn: '0'

View File

@ -64,6 +64,11 @@
id: '1578' id: '1578'
name: 'Encryption controller: Advanced Micro Devices, Inc. [AMD] Carrizo Platform name: 'Encryption controller: Advanced Micro Devices, Inc. [AMD] Carrizo Platform
Security Processor' Security Processor'
- bus: '00'
dev: 09
fn: '0'
id: '0001'
name: 'Host bridge: Arastra Inc. Device 0001'
- bus: '00' - bus: '00'
dev: 09 dev: 09
fn: '2' fn: '2'

View File

@ -64,6 +64,11 @@
id: '1578' id: '1578'
name: 'Encryption controller: Advanced Micro Devices, Inc. [AMD] Carrizo Platform name: 'Encryption controller: Advanced Micro Devices, Inc. [AMD] Carrizo Platform
Security Processor' Security Processor'
- bus: '00'
dev: 09
fn: '0'
id: '0001'
name: 'Host bridge: Arastra Inc. Device 0001'
- bus: '00' - bus: '00'
dev: 09 dev: 09
fn: '2' fn: '2'

View File

@ -449,4 +449,3 @@ serdes_preemphasis_109=0x145c00
mmu_init_config="MSFT-TH-Tier1" mmu_init_config="MSFT-TH-Tier1"
phy_an_lt_msft=1 phy_an_lt_msft=1
phy_unlos_msft=1

View File

@ -1,6 +1,6 @@
{ {
"chassis": { "chassis": {
"DCS-7060CX-32S": { "DCS-7050CX3-32S": {
"component": { "component": {
"Aboot()": {}, "Aboot()": {},
"Scd(addr=0000:02:00.0)": {}, "Scd(addr=0000:02:00.0)": {},

View File

@ -16,8 +16,6 @@ miim_intr_enable.0=0
module_64ports.0=1 module_64ports.0=1
multicast_l2_range.0=511 multicast_l2_range.0=511
oversubscribe_mode=1 oversubscribe_mode=1
sai_tunnel_global_sip_mask_enable=1
bcm_tunnel_term_compatible_mode=1
parity_correction=1 parity_correction=1
parity_enable=1 parity_enable=1
pbmp_xport_xe.0=0x3ffffffffffffffffffffffffffffffffffffffe pbmp_xport_xe.0=0x3ffffffffffffffffffffffffffffffffffffffe

View File

@ -186,6 +186,11 @@
id: 6f37 id: 6f37
name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon
D R3 QPI Link 0/1 (rev 03)' D R3 QPI Link 0/1 (rev 03)'
- bus: ff
dev: 0b
fn: '3'
id: '0001'
name: 'System peripheral: Arastra Inc. Device 0001 (rev 03)'
- bus: ff - bus: ff
dev: 0c dev: 0c
fn: '0' fn: '0'

View File

@ -16,8 +16,6 @@ miim_intr_enable.0=0
module_64ports.0=1 module_64ports.0=1
multicast_l2_range.0=511 multicast_l2_range.0=511
oversubscribe_mode=1 oversubscribe_mode=1
sai_tunnel_global_sip_mask_enable=1
bcm_tunnel_term_compatible_mode=1
parity_correction=1 parity_correction=1
parity_enable=1 parity_enable=1
pbmp_xport_xe.0=0x3ffffffffffffffffffffffffffffffffffffffe pbmp_xport_xe.0=0x3ffffffffffffffffffffffffffffffffffffffe

View File

@ -1,104 +0,0 @@
{
"interfaces": {
"Ethernet0": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet8": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet16": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet24": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet32": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet40": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet48": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet56": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet64": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet72": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet80": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet88": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet96": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet104": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet112": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet120": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet128": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet136": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet144": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet152": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet160": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet168": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet176": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet184": {
"default_brkout_mode": "2x200G[100G,50G,40G,25G,10G]"
},
"Ethernet192": {
"default_brkout_mode": "4x100G[50G,40G,25G,10G]"
},
"Ethernet200": {
"default_brkout_mode": "4x100G[50G,40G,25G,10G]"
},
"Ethernet208": {
"default_brkout_mode": "4x100G[50G,40G,25G,10G]"
},
"Ethernet216": {
"default_brkout_mode": "4x100G[50G,40G,25G,10G]"
},
"Ethernet224": {
"default_brkout_mode": "4x100G[50G,40G,25G,10G]"
},
"Ethernet232": {
"default_brkout_mode": "4x100G[50G,40G,25G,10G]"
},
"Ethernet240": {
"default_brkout_mode": "4x100G[50G,40G,25G,10G]"
},
"Ethernet248": {
"default_brkout_mode": "4x100G[50G,40G,25G,10G]"
},
"Ethernet256": {
"default_brkout_mode": "1x10G",
"fec": "none"
}
}
}

View File

@ -1 +0,0 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/th4-a7060dx5-32-200Gx48-100Gx32.config.bcm

View File

@ -1,879 +0,0 @@
# configuration yaml file
# device:
# <unit>:
# <table>:
# ?
# <key_fld_1>: <value>
# <key_fld_2>: <value>
# ...
# <key_fld_n>: <value>
# :
# <data_fld_1>: <value>
# <data_fld_2>: <value>
# ...
# <data_fld_n>: <value>
#
---
bcm_device:
0:
global:
pktio_mode: 1
vlan_flooding_l2mc_num_reserved: 0
ipv6_lpm_128b_enable: 1
shared_block_mask_section: uc_bc
skip_protocol_default_entries: 1
# LTSW uses value 1 for ALPM combined mode
l3_alpm_template: 1
l3_alpm_hit_skip: 1
sai_feat_tail_timestamp : 1
sai_field_group_auto_prioritize: 1
#l3_intf_vlan_split_egress for MTU at L3IF
l3_intf_vlan_split_egress : 1
# vxlan
l3_alpm_template: 1
riot_overlay_l3_egress_mem_size: 16384
riot_overlay_l3_intf_mem_size: 4096
l3_ecmp_member_first_lkup_mem_size: 12288
bcm_tunnel_term_compatible_mode: 1
shared_l2_tunnel: 1
sai_tunnel_support: 10
sai_tunnel_underlay_route_mode: 2
sai_tunnel_ecmp_sharing_mode: 0 # change to 2 if SAI_NEXT_HOP_GROUP_ATTR_LEVEL_1 used
# bfd
#bfd_enable: 1
#bfd_sha1_keys: 5
#bfd_num_sessions: 2048
#bfd_simple_password_keys: 5
#num_queues_pci: 47
#num_queues_uc0: 1
#bfd_feature_enable: 1
#bfd_use_endpoint_id_as_discriminator: 1
#bfd_tx_raw_ingress_enable: 1
#sai_eapp_config_file: "/usr/share/sonic/device/x86_64-broadcom_common/eapps/eapp_config.json"
---
device:
0:
PC_SERDES_CONFIG:
PKG_SWAP_BYPASS: 1
PC_PM_CORE:
?
PC_PM_ID: 1
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x67235401
TX_LANE_MAP: 0x2731465
RX_POLARITY_FLIP: 0x00
TX_POLARITY_FLIP: 0x00
?
PC_PM_ID: 2
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x31752064
TX_LANE_MAP: 0x76025314
RX_POLARITY_FLIP: 0xff
TX_POLARITY_FLIP: 0xff
?
PC_PM_ID: 3
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x67241503
TX_LANE_MAP: 0x13650274
RX_POLARITY_FLIP: 0x00
TX_POLARITY_FLIP: 0x01
?
PC_PM_ID: 4
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x46025713
TX_LANE_MAP: 0x31650274
RX_POLARITY_FLIP: 0x00
TX_POLARITY_FLIP: 0x00
?
PC_PM_ID: 5
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x62713054
TX_LANE_MAP: 0x21703465
RX_POLARITY_FLIP: 0x00
TX_POLARITY_FLIP: 0xd8
?
PC_PM_ID: 6
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x13460257
TX_LANE_MAP: 0x64137502
RX_POLARITY_FLIP: 0xff
TX_POLARITY_FLIP: 0xff
?
PC_PM_ID: 7
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x43512670
TX_LANE_MAP: 0x2571364
RX_POLARITY_FLIP: 0x00
TX_POLARITY_FLIP: 0x00
?
PC_PM_ID: 8
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x14270356
TX_LANE_MAP: 0x64237501
RX_POLARITY_FLIP: 0xfb
TX_POLARITY_FLIP: 0xff
?
PC_PM_ID: 9
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x76140235
TX_LANE_MAP: 0x74036521
RX_POLARITY_FLIP: 0xc1
TX_POLARITY_FLIP: 0x00
?
PC_PM_ID: 10
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x47125603
TX_LANE_MAP: 0x30451276
RX_POLARITY_FLIP: 0xff
TX_POLARITY_FLIP: 0xff
?
PC_PM_ID: 11
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x76041235
TX_LANE_MAP: 0x74036512
RX_POLARITY_FLIP: 0x40
TX_POLARITY_FLIP: 0x00
?
PC_PM_ID: 12
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x27145603
TX_LANE_MAP: 0x21450376
RX_POLARITY_FLIP: 0xff
TX_POLARITY_FLIP: 0xff
?
PC_PM_ID: 13
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x2735146
TX_LANE_MAP: 0x3657421
RX_POLARITY_FLIP: 0x00
TX_POLARITY_FLIP: 0xc8
?
PC_PM_ID: 14
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x47306521
TX_LANE_MAP: 0x12643075
RX_POLARITY_FLIP: 0xff
TX_POLARITY_FLIP: 0x33
?
PC_PM_ID: 15
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x20157436
TX_LANE_MAP: 0x56237104
RX_POLARITY_FLIP: 0x08
TX_POLARITY_FLIP: 0x00
?
PC_PM_ID: 16
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x14270356
TX_LANE_MAP: 0x76325014
RX_POLARITY_FLIP: 0xff
TX_POLARITY_FLIP: 0xff
?
PC_PM_ID: 49
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x56704312
TX_LANE_MAP: 0x32641570
RX_POLARITY_FLIP: 0xff
TX_POLARITY_FLIP: 0xff
?
PC_PM_ID: 50
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x21564073
TX_LANE_MAP: 0x50314762
RX_POLARITY_FLIP: 0x00
TX_POLARITY_FLIP: 0x00
?
PC_PM_ID: 51
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x36715402
TX_LANE_MAP: 0x32641075
RX_POLARITY_FLIP: 0xff
TX_POLARITY_FLIP: 0xff
?
PC_PM_ID: 52
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x51462073
TX_LANE_MAP: 0x5127634
RX_POLARITY_FLIP: 0x69
TX_POLARITY_FLIP: 0x08
?
PC_PM_ID: 53
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x73204651
TX_LANE_MAP: 0x32640175
RX_POLARITY_FLIP: 0x69
TX_POLARITY_FLIP: 0xff
?
PC_PM_ID: 54
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x5134627
TX_LANE_MAP: 0x60137254
RX_POLARITY_FLIP: 0x00
TX_POLARITY_FLIP: 0x00
?
PC_PM_ID: 55
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x57420163
TX_LANE_MAP: 0x32651074
RX_POLARITY_FLIP: 0xff
TX_POLARITY_FLIP: 0xff
?
PC_PM_ID: 56
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x5134627
TX_LANE_MAP: 0x10524376
RX_POLARITY_FLIP: 0x05
TX_POLARITY_FLIP: 0x00
?
PC_PM_ID: 57
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x73520146
TX_LANE_MAP: 0x31650274
RX_POLARITY_FLIP: 0x3d
TX_POLARITY_FLIP: 0xff
?
PC_PM_ID: 58
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x16072354
TX_LANE_MAP: 0x51634270
RX_POLARITY_FLIP: 0x01
TX_POLARITY_FLIP: 0x00
?
PC_PM_ID: 59
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x72530164
TX_LANE_MAP: 0x32506147
RX_POLARITY_FLIP: 0xff
TX_POLARITY_FLIP: 0xff
?
PC_PM_ID: 60
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x4371256
TX_LANE_MAP: 0x21673054
RX_POLARITY_FLIP: 0x00
TX_POLARITY_FLIP: 0xcc
?
PC_PM_ID: 61
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x67241503
TX_LANE_MAP: 0x12730465
RX_POLARITY_FLIP: 0x20
TX_POLARITY_FLIP: 0x00
?
PC_PM_ID: 62
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x73625140
TX_LANE_MAP: 0x12640573
RX_POLARITY_FLIP: 0x00
TX_POLARITY_FLIP: 0x00
?
PC_PM_ID: 63
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x23674015
TX_LANE_MAP: 0x57206143
RX_POLARITY_FLIP: 0xff
TX_POLARITY_FLIP: 0xff
?
PC_PM_ID: 64
CORE_INDEX: 0
:
RX_LANE_MAP_AUTO: 0
TX_LANE_MAP_AUTO: 0
RX_POLARITY_FLIP_AUTO: 0
TX_POLARITY_FLIP_AUTO: 0
RX_LANE_MAP: 0x57314260
TX_LANE_MAP: 0x1735264
RX_POLARITY_FLIP: 0x10
TX_POLARITY_FLIP: 0x00
...
---
device:
0:
PC_PORT_PHYS_MAP:
?
PORT_ID: 0
:
PC_PHYS_PORT_ID: 0
?
PORT_ID: 1
:
PC_PHYS_PORT_ID: 1
?
PORT_ID: 2
:
PC_PHYS_PORT_ID: 3
?
PORT_ID: 5
:
PC_PHYS_PORT_ID: 5
?
PORT_ID: 6
:
PC_PHYS_PORT_ID: 7
?
PORT_ID: 9
:
PC_PHYS_PORT_ID: 9
?
PORT_ID: 10
:
PC_PHYS_PORT_ID: 11
?
PORT_ID: 13
:
PC_PHYS_PORT_ID: 13
?
PORT_ID: 14
:
PC_PHYS_PORT_ID: 15
?
PORT_ID: 17
:
PC_PHYS_PORT_ID: 17
?
PORT_ID: 18
:
PC_PHYS_PORT_ID: 19
?
PORT_ID: 21
:
PC_PHYS_PORT_ID: 21
?
PORT_ID: 22
:
PC_PHYS_PORT_ID: 23
?
PORT_ID: 25
:
PC_PHYS_PORT_ID: 25
?
PORT_ID: 26
:
PC_PHYS_PORT_ID: 27
?
PORT_ID: 29
:
PC_PHYS_PORT_ID: 29
?
PORT_ID: 30
:
PC_PHYS_PORT_ID: 31
?
PORT_ID: 33
:
PC_PHYS_PORT_ID: 259
?
PORT_ID: 34
:
PC_PHYS_PORT_ID: 33
?
PORT_ID: 35
:
PC_PHYS_PORT_ID: 35
?
PORT_ID: 38
:
PC_PHYS_PORT_ID: 37
?
PORT_ID: 39
:
PC_PHYS_PORT_ID: 39
?
PORT_ID: 42
:
PC_PHYS_PORT_ID: 41
?
PORT_ID: 43
:
PC_PHYS_PORT_ID: 43
?
PORT_ID: 46
:
PC_PHYS_PORT_ID: 45
?
PORT_ID: 47
:
PC_PHYS_PORT_ID: 47
?
PORT_ID: 50
:
PC_PHYS_PORT_ID: 258
?
PORT_ID: 51
:
PC_PHYS_PORT_ID: 49
?
PORT_ID: 52
:
PC_PHYS_PORT_ID: 51
?
PORT_ID: 55
:
PC_PHYS_PORT_ID: 53
?
PORT_ID: 56
:
PC_PHYS_PORT_ID: 55
?
PORT_ID: 59
:
PC_PHYS_PORT_ID: 57
?
PORT_ID: 60
:
PC_PHYS_PORT_ID: 59
?
PORT_ID: 63
:
PC_PHYS_PORT_ID: 61
?
PORT_ID: 64
:
PC_PHYS_PORT_ID: 63
?
PORT_ID: 67
:
PC_PHYS_PORT_ID: 260
?
PORT_ID: 204
:
PC_PHYS_PORT_ID: 193
?
PORT_ID: 205
:
PC_PHYS_PORT_ID: 195
?
PORT_ID: 208
:
PC_PHYS_PORT_ID: 197
?
PORT_ID: 209
:
PC_PHYS_PORT_ID: 199
?
PORT_ID: 212
:
PC_PHYS_PORT_ID: 201
?
PORT_ID: 213
:
PC_PHYS_PORT_ID: 203
?
PORT_ID: 216
:
PC_PHYS_PORT_ID: 205
?
PORT_ID: 217
:
PC_PHYS_PORT_ID: 207
?
PORT_ID: 221
:
PC_PHYS_PORT_ID: 209
?
PORT_ID: 222
:
PC_PHYS_PORT_ID: 211
?
PORT_ID: 225
:
PC_PHYS_PORT_ID: 213
?
PORT_ID: 226
:
PC_PHYS_PORT_ID: 215
?
PORT_ID: 229
:
PC_PHYS_PORT_ID: 217
?
PORT_ID: 230
:
PC_PHYS_PORT_ID: 219
?
PORT_ID: 233
:
PC_PHYS_PORT_ID: 221
?
PORT_ID: 234
:
PC_PHYS_PORT_ID: 223
?
PORT_ID: 237
:
PC_PHYS_PORT_ID: 265
?
PORT_ID: 238
:
PC_PHYS_PORT_ID: 225
?
PORT_ID: 239
:
PC_PHYS_PORT_ID: 226
?
PORT_ID: 240
:
PC_PHYS_PORT_ID: 227
?
PORT_ID: 241
:
PC_PHYS_PORT_ID: 228
?
PORT_ID: 242
:
PC_PHYS_PORT_ID: 229
?
PORT_ID: 243
:
PC_PHYS_PORT_ID: 230
?
PORT_ID: 244
:
PC_PHYS_PORT_ID: 231
?
PORT_ID: 245
:
PC_PHYS_PORT_ID: 232
?
PORT_ID: 246
:
PC_PHYS_PORT_ID: 233
?
PORT_ID: 247
:
PC_PHYS_PORT_ID: 234
?
PORT_ID: 248
:
PC_PHYS_PORT_ID: 235
?
PORT_ID: 249
:
PC_PHYS_PORT_ID: 236
?
PORT_ID: 250
:
PC_PHYS_PORT_ID: 237
?
PORT_ID: 251
:
PC_PHYS_PORT_ID: 238
?
PORT_ID: 252
:
PC_PHYS_PORT_ID: 239
?
PORT_ID: 253
:
PC_PHYS_PORT_ID: 240
?
PORT_ID: 255
:
PC_PHYS_PORT_ID: 241
?
PORT_ID: 256
:
PC_PHYS_PORT_ID: 242
?
PORT_ID: 257
:
PC_PHYS_PORT_ID: 243
?
PORT_ID: 258
:
PC_PHYS_PORT_ID: 244
?
PORT_ID: 259
:
PC_PHYS_PORT_ID: 245
?
PORT_ID: 260
:
PC_PHYS_PORT_ID: 246
?
PORT_ID: 261
:
PC_PHYS_PORT_ID: 247
?
PORT_ID: 262
:
PC_PHYS_PORT_ID: 248
?
PORT_ID: 263
:
PC_PHYS_PORT_ID: 249
?
PORT_ID: 264
:
PC_PHYS_PORT_ID: 250
?
PORT_ID: 265
:
PC_PHYS_PORT_ID: 251
?
PORT_ID: 266
:
PC_PHYS_PORT_ID: 252
?
PORT_ID: 267
:
PC_PHYS_PORT_ID: 253
?
PORT_ID: 268
:
PC_PHYS_PORT_ID: 254
?
PORT_ID: 269
:
PC_PHYS_PORT_ID: 255
?
PORT_ID: 270
:
PC_PHYS_PORT_ID: 256
...
---
device:
0:
PC_PORT:
?
PORT_ID: 0
:
&port_mode_10g
ENABLE: 1
SPEED: 10000
NUM_LANES: 1
?
PORT_ID: [[50, 50]]
:
ENABLE: 0
MAX_FRAME_SIZE: 9416
SPEED: 10000
NUM_LANES: 1
?
PORT_ID: [[1, 2],
[5, 6],
[9, 10],
[13, 14],
[17, 18],
[21, 22],
[25, 26],
[29, 30],
[34, 35],
[38, 39],
[42, 43],
[46, 47],
[51, 52],
[55, 56],
[59, 60],
[63, 64],
[204, 205],
[208, 209],
[212, 213],
[216, 217],
[221, 222],
[225, 226],
[229, 230],
[233, 234]]
:
ENABLE: 0
SPEED: 200000
NUM_LANES: 4
FEC_MODE: PC_FEC_RS544_2XN
MAX_FRAME_SIZE: 9416
?
PORT_ID: [[238, 241],
[242, 245],
[246, 249],
[250, 253],
[255, 258],
[259, 262],
[263, 266],
[267, 270]]
:
ENABLE: 0
SPEED: 100000
NUM_LANES: 2
FEC_MODE: PC_FEC_RS544
MAX_FRAME_SIZE: 9416
...
---
device:
0:
# Per pipe flex counter configuration
CTR_EFLEX_CONFIG:
CTR_ING_EFLEX_OPERMODE_PIPEUNIQUE: 0
CTR_EGR_EFLEX_OPERMODE_PIPEUNIQUE: 0
# Per pipe flex state configuration
#FLEX_STATE_CONFIG:
# FLEX_STATE_ING_OPERMODE_PIPEUNIQUE: 0
# FLEX_STATE_EGR_OPERMODE_PIPEUNIQUE: 1
# Lossy vs Lossless mode
TM_THD_CONFIG:
THRESHOLD_MODE: LOSSLESS
# IFP mode
FP_CONFIG:
FP_ING_OPERMODE: GLOBAL_PIPE_AWARE
...

View File

@ -1,114 +0,0 @@
#name lanes alias index speed fec
Ethernet0 1 Ethernet1/1 1 25000
Ethernet1 5 Ethernet1/2 1 25000
Ethernet2 3 Ethernet1/3 1 25000
Ethernet3 7 Ethernet1/4 1 25000
Ethernet8 9 Ethernet2/1 2 25000
Ethernet9 13 Ethernet2/2 2 25000
Ethernet10 11 Ethernet2/3 2 25000
Ethernet11 15 Ethernet2/4 2 25000
Ethernet16 17 Ethernet3/1 3 25000
Ethernet17 21 Ethernet3/2 3 25000
Ethernet18 19 Ethernet3/3 3 25000
Ethernet19 23 Ethernet3/4 3 25000
Ethernet24 25 Ethernet4/1 4 25000
Ethernet25 29 Ethernet4/2 4 25000
Ethernet26 27 Ethernet4/3 4 25000
Ethernet27 31 Ethernet4/4 4 25000
Ethernet32 33 Ethernet5/1 5 25000
Ethernet33 37 Ethernet5/2 5 25000
Ethernet34 35 Ethernet5/3 5 25000
Ethernet35 39 Ethernet5/4 5 25000
Ethernet40 41 Ethernet6/1 6 25000
Ethernet41 45 Ethernet6/2 6 25000
Ethernet42 43 Ethernet6/3 6 25000
Ethernet43 47 Ethernet6/4 6 25000
Ethernet48 49 Ethernet7/1 7 25000
Ethernet49 53 Ethernet7/2 7 25000
Ethernet50 51 Ethernet7/3 7 25000
Ethernet51 55 Ethernet7/4 7 25000
Ethernet56 57 Ethernet8/1 8 25000
Ethernet57 61 Ethernet8/2 8 25000
Ethernet58 59 Ethernet8/3 8 25000
Ethernet59 63 Ethernet8/4 8 25000
Ethernet64 65 Ethernet9/1 9 25000
Ethernet65 69 Ethernet9/2 9 25000
Ethernet66 67 Ethernet9/3 9 25000
Ethernet67 71 Ethernet9/4 9 25000
Ethernet72 73 Ethernet10/1 10 25000
Ethernet73 77 Ethernet10/2 10 25000
Ethernet74 75 Ethernet10/3 10 25000
Ethernet75 79 Ethernet10/4 10 25000
Ethernet80 81 Ethernet11/1 11 25000
Ethernet81 85 Ethernet11/2 11 25000
Ethernet82 83 Ethernet11/3 11 25000
Ethernet83 87 Ethernet11/4 11 25000
Ethernet88 89 Ethernet12/1 12 25000
Ethernet89 93 Ethernet12/2 12 25000
Ethernet90 91 Ethernet12/3 12 25000
Ethernet91 95 Ethernet12/4 12 25000
Ethernet96 97 Ethernet13/1 13 25000
Ethernet97 101 Ethernet13/2 13 25000
Ethernet98 99 Ethernet13/3 13 25000
Ethernet99 103 Ethernet13/4 13 25000
Ethernet104 105 Ethernet14/1 14 25000
Ethernet105 109 Ethernet14/2 14 25000
Ethernet106 107 Ethernet14/3 14 25000
Ethernet107 111 Ethernet14/4 14 25000
Ethernet112 113 Ethernet15/1 15 25000
Ethernet113 117 Ethernet15/2 15 25000
Ethernet114 115 Ethernet15/3 15 25000
Ethernet115 119 Ethernet15/4 15 25000
Ethernet120 121 Ethernet16/1 16 25000
Ethernet121 125 Ethernet16/2 16 25000
Ethernet122 123 Ethernet16/3 16 25000
Ethernet123 127 Ethernet16/4 16 25000
Ethernet128 385 Ethernet17/1 17 25000
Ethernet129 389 Ethernet17/2 17 25000
Ethernet130 387 Ethernet17/3 17 25000
Ethernet131 391 Ethernet17/4 17 25000
Ethernet136 393 Ethernet18/1 18 25000
Ethernet137 397 Ethernet18/2 18 25000
Ethernet138 395 Ethernet18/3 18 25000
Ethernet139 399 Ethernet18/4 18 25000
Ethernet144 401 Ethernet19/1 19 25000
Ethernet145 405 Ethernet19/2 19 25000
Ethernet146 403 Ethernet19/3 19 25000
Ethernet147 407 Ethernet19/4 19 25000
Ethernet152 409 Ethernet20/1 20 25000
Ethernet153 413 Ethernet20/2 20 25000
Ethernet154 411 Ethernet20/3 20 25000
Ethernet155 415 Ethernet20/4 20 25000
Ethernet160 417 Ethernet21/1 21 25000
Ethernet161 421 Ethernet21/2 21 25000
Ethernet162 419 Ethernet21/3 21 25000
Ethernet163 423 Ethernet21/4 21 25000
Ethernet168 425 Ethernet22/1 22 25000
Ethernet169 429 Ethernet22/2 22 25000
Ethernet170 427 Ethernet22/3 22 25000
Ethernet171 431 Ethernet22/4 22 25000
Ethernet176 433 Ethernet23/1 23 25000
Ethernet177 437 Ethernet23/2 23 25000
Ethernet178 435 Ethernet23/3 23 25000
Ethernet179 439 Ethernet23/4 23 25000
Ethernet184 441 Ethernet24/1 24 25000
Ethernet185 445 Ethernet24/2 24 25000
Ethernet186 443 Ethernet24/3 24 25000
Ethernet187 447 Ethernet24/4 24 25000
Ethernet192 449,450,451,452 Ethernet25/1 25 100000 rs
Ethernet196 453,454,455,456 Ethernet25/5 25 100000 rs
Ethernet200 457,458,459,460 Ethernet26/1 26 100000 rs
Ethernet204 461,462,463,464 Ethernet26/5 26 100000 rs
Ethernet208 465,466,467,468 Ethernet27/1 27 100000 rs
Ethernet212 469,470,471,472 Ethernet27/5 27 100000 rs
Ethernet216 473,474,475,476 Ethernet28/1 28 100000 rs
Ethernet220 477,478,479,480 Ethernet28/5 28 100000 rs
Ethernet224 481,482,483,484 Ethernet29/1 29 200000 rs
Ethernet228 485,486,487,488 Ethernet29/5 29 200000 rs
Ethernet232 489,490,491,492 Ethernet30/1 30 200000 rs
Ethernet236 493,494,495,496 Ethernet30/5 30 200000 rs
Ethernet240 497,498,499,500 Ethernet31/1 31 200000 rs
Ethernet244 501,502,503,504 Ethernet31/5 31 200000 rs
Ethernet248 505,506,507,508 Ethernet32/1 32 200000 rs
Ethernet252 509,510,511,512 Ethernet32/5 32 200000 rs
Ethernet256 513 Ethernet33 33 10000 none

View File

@ -1 +0,0 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/th4-a7060dx5-32-25Gx96-100Gx8-200Gx8.config.bcm

View File

@ -1 +0,0 @@
../../../common/profiles/th4/gen/BALANCED

View File

@ -1,2 +0,0 @@
{%- set default_topo = 't1' %}
{%- include 'buffers_config.j2' %}

View File

@ -1 +0,0 @@
BALANCED/buffers_defaults_t0.j2

View File

@ -1 +0,0 @@
BALANCED/buffers_defaults_t1.j2

View File

@ -1,104 +0,0 @@
{
"interfaces": {
"Ethernet0": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet8": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet16": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet24": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet32": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet40": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet48": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet56": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet64": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet72": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet80": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet88": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet96": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet104": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet112": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet120": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet128": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet136": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet144": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet152": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet160": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet168": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet176": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet184": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet192": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet200": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet208": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet216": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet224": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet232": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet240": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet248": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]"
},
"Ethernet256": {
"default_brkout_mode": "1x10G",
"fec": "none"
}
}
}

View File

@ -1 +0,0 @@
BALANCED/pg_profile_lookup.ini

View File

@ -1,34 +0,0 @@
# name lanes alias index speed fec
Ethernet0 1,2,3,4,5,6,7,8 Ethernet1/1 1 400000 rs
Ethernet8 9,10,11,12,13,14,15,16 Ethernet2/1 2 400000 rs
Ethernet16 17,18,19,20,21,22,23,24 Ethernet3/1 3 400000 rs
Ethernet24 25,26,27,28,29,30,31,32 Ethernet4/1 4 400000 rs
Ethernet32 33,34,35,36,37,38,39,40 Ethernet5/1 5 400000 rs
Ethernet40 41,42,43,44,45,46,47,48 Ethernet6/1 6 400000 rs
Ethernet48 49,50,51,52,53,54,55,56 Ethernet7/1 7 400000 rs
Ethernet56 57,58,59,60,61,62,63,64 Ethernet8/1 8 400000 rs
Ethernet64 65,66,67,68,69,70,71,72 Ethernet9/1 9 400000 rs
Ethernet72 73,74,75,76,77,78,79,80 Ethernet10/1 10 400000 rs
Ethernet80 81,82,83,84,85,86,87,88 Ethernet11/1 11 400000 rs
Ethernet88 89,90,91,92,93,94,95,96 Ethernet12/1 12 400000 rs
Ethernet96 97,98,99,100,101,102,103,104 Ethernet13/1 13 400000 rs
Ethernet104 105,106,107,108,109,110,111,112 Ethernet14/1 14 400000 rs
Ethernet112 113,114,115,116,117,118,119,120 Ethernet15/1 15 400000 rs
Ethernet120 121,122,123,124,125,126,127,128 Ethernet16/1 16 400000 rs
Ethernet128 385,386,387,388,389,390,391,392 Ethernet17/1 17 400000 rs
Ethernet136 393,394,395,396,397,398,399,400 Ethernet18/1 18 400000 rs
Ethernet144 401,402,403,404,405,406,407,408 Ethernet19/1 19 400000 rs
Ethernet152 409,410,411,412,413,414,415,416 Ethernet20/1 20 400000 rs
Ethernet160 417,418,419,420,421,422,423,424 Ethernet21/1 21 400000 rs
Ethernet168 425,426,427,428,429,430,431,432 Ethernet22/1 22 400000 rs
Ethernet176 433,434,435,436,437,438,439,440 Ethernet23/1 23 400000 rs
Ethernet184 441,442,443,444,445,446,447,448 Ethernet24/1 24 400000 rs
Ethernet192 449,450,451,452,453,454,455,456 Ethernet25/1 25 400000 rs
Ethernet200 457,458,459,460,461,462,463,464 Ethernet26/1 26 400000 rs
Ethernet208 465,466,467,468,469,470,471,472 Ethernet27/1 27 400000 rs
Ethernet216 473,474,475,476,477,478,479,480 Ethernet28/1 28 400000 rs
Ethernet224 481,482,483,484,485,486,487,488 Ethernet29/1 29 400000 rs
Ethernet232 489,490,491,492,493,494,495,496 Ethernet30/1 30 400000 rs
Ethernet240 497,498,499,500,501,502,503,504 Ethernet31/1 31 400000 rs
Ethernet248 505,506,507,508,509,510,511,512 Ethernet32/1 32 400000 rs
Ethernet256 513 Ethernet33 33 10000 none

View File

@ -1 +0,0 @@
{%- include 'qos_config.j2' %}

View File

@ -1 +0,0 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/th4-a7060dx5-32.config.bcm

View File

@ -1 +0,0 @@
Arista-7060DX5-32 t1

View File

@ -1 +0,0 @@
../x86_64-arista_common/pcie.yaml

File diff suppressed because it is too large Load Diff

View File

@ -1 +0,0 @@
broadcom

View File

@ -1,12 +0,0 @@
{
"chassis": {
"DCS-7060DX5-32": {
"component": {
"Aboot()": {},
"Scd(addr=0000:00:18.7)": {},
"Scd(addr=0000:01:00.0)": {},
"LorikeetSysCpld(addr=13-0023)": {}
}
}
}
}

View File

@ -1,2 +0,0 @@
SYNCD_SHM_SIZE=512m
is_ltsw_chip=1

View File

@ -1 +0,0 @@
../x86_64-arista_common/platform_reboot

View File

@ -1 +0,0 @@
../x86_64-arista_common/plugins/

View File

@ -1 +0,0 @@
../x86_64-arista_common/pmon_daemon_control.json

View File

@ -1,36 +0,0 @@
# libsensors configuration file for DCS-7060DX4-32
# ------------------------------------------------#
bus "i2c-9" "SCD 0000:00:18.7 SMBus master 0 bus 0"
bus "i2c-29" "SCD 0000:01:00.0 SMBus master 1 bus 0"
bus "i2c-32" "SCD 0000:01:00.0 SMBus master 1 bus 3"
bus "i2c-33" "SCD 0000:01:00.0 SMBus master 1 bus 4"
chip "max6658-i2c-9-4c"
label temp1 "CPU board temp sensor"
label temp2 "Back-panel temp sensor"
chip "max6581-i2c-29-4d"
label temp1 "Center Rear"
label temp2 "Switch board right sensor"
label temp3 "Switch board left sensor"
label temp4 "Front-panel temp sensor"
label temp5 "Switch chip diode 1 sensor"
label temp6 "Switch chip diode 2 sensor"
ignore temp7
ignore temp8
chip "pmbus-i2c-32-58"
label temp1 "Power supply 1 hotspot sensor"
label temp2 "Power supply 1 inlet temp sensor"
label temp3 "Power supply 1 exhaust temp sensor"
ignore fan2
ignore fan3
chip "pmbus-i2c-33-58"
label temp1 "Power supply 2 hotspot sensor"
label temp2 "Power supply 2 inlet temp sensor"
label temp3 "Power supply 2 exhaust temp sensor"
ignore fan2
ignore fan3

View File

@ -1 +0,0 @@
../x86_64-arista_common/system_health_monitoring_config.json

View File

@ -1 +0,0 @@
../x86_64-arista_common/thermal_policy.json

View File

@ -255,14 +255,6 @@
"Ethernet504": { "Ethernet504": {
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]", "default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]",
"fec": "rs" "fec": "rs"
},
"Ethernet512": {
"default_brkout_mode": "1x10G",
"fec": "none"
},
"Ethernet513": {
"default_brkout_mode": "1x10G",
"fec": "none"
} }
} }
} }

View File

@ -63,5 +63,3 @@ Ethernet480 237,238,239,240,241,242,243,244 Ethernet61/1 61 400000 rs
Ethernet488 229,230,231,232,233,234,235,236 Ethernet62/1 62 400000 rs Ethernet488 229,230,231,232,233,234,235,236 Ethernet62/1 62 400000 rs
Ethernet496 249,250,251,252,253,254,255,256 Ethernet63/1 63 400000 rs Ethernet496 249,250,251,252,253,254,255,256 Ethernet63/1 63 400000 rs
Ethernet504 245,246,247,248,249,250,251,252 Ethernet64/1 64 400000 rs Ethernet504 245,246,247,248,249,250,251,252 Ethernet64/1 64 400000 rs
Ethernet512 258 Ethernet65 65 10000 none
Ethernet513 257 Ethernet66 66 10000 none

View File

@ -34,7 +34,7 @@ bcm_device:
sai_field_group_auto_prioritize: 1 sai_field_group_auto_prioritize: 1
#l3_intf_vlan_split_egress for MTU at L3IF #l3_intf_vlan_split_egress for MTU at L3IF
l3_intf_vlan_split_egress : 1 l3_intf_vlan_split_egress : 1
bcm_tunnel_term_compatible_mode: 1
--- ---
device: device:
0: 0:
@ -1073,14 +1073,6 @@ device:
PORT_ID: 258 PORT_ID: 258
: :
PC_PHYS_PORT_ID: 253 PC_PHYS_PORT_ID: 253
?
PORT_ID: 152
:
PC_PHYS_PORT_ID: 257
?
PORT_ID: 50
:
PC_PHYS_PORT_ID: 258
... ...
--- ---
device: device:
@ -1093,13 +1085,6 @@ device:
ENABLE: 1 ENABLE: 1
SPEED: 10000 SPEED: 10000
NUM_LANES: 1 NUM_LANES: 1
?
PORT_ID: [[50, 50], [152, 152]]
:
ENABLE: 1
MAX_FRAME_SIZE: 9416
SPEED: 10000
NUM_LANES: 1
? ?
PORT_ID: [[1, 4], PORT_ID: [[1, 4],
[17, 20], [17, 20],
@ -1118,7 +1103,7 @@ device:
[238, 241], [238, 241],
[255, 258]] [255, 258]]
: :
ENABLE: 0 ENABLE: 1
SPEED: 400000 SPEED: 400000
NUM_LANES: 8 NUM_LANES: 8
FEC_MODE: PC_FEC_RS544_2XN FEC_MODE: PC_FEC_RS544_2XN

View File

@ -1 +0,0 @@
../x86_64-arista_common/pcie.yaml

View File

@ -49,52 +49,52 @@
], ],
"thermals": [ "thermals": [
{ {
"name": "Board sensor", "name": "Cpu temp sensor"
"controllable": false
}, },
{ {
"name": "TH4 exhaust temp sensor", "name": "CPU board temp sensor"
"controllable": false
}, },
{ {
"name": "Inlet temp sensor", "name": "Back-panel temp sensor"
"controllable": false
}, },
{ {
"name": "CPU board temp sensor", "name": "Board sensor"
"controllable": false
}, },
{ {
"name": "Back panel temp sensor", "name": "Switch board middle sensor"
"controllable": false
}, },
{ {
"name": "Front panel temp sensor", "name": "Switch board left sensor"
"controllable": false
}, },
{ {
"name": "Power supply 1 hotspot sensor", "name": "Front-panel temp sensor"
"controllable": false
}, },
{ {
"name": "Power supply 1 inlet temp sensor", "name": "Switch chip diode 1 sensor"
"controllable": false
}, },
{ {
"name": "Power supply 1 exhaust temp sensor", "name": "Switch chip diode 2 sensor"
"controllable": false
}, },
{ {
"name": "Power supply 2 hotspot sensor", "name": "Front-panel temp sensor"
"controllable": false
}, },
{ {
"name": "Power supply 2 inlet temp sensor", "name": "Power supply 1 inlet temp sensor"
"controllable": false
}, },
{ {
"name": "Power supply 2 exhaust temp sensor", "name": "Power supply 1 secondary hotspot sensor"
"controllable": false },
{
"name": "Power supply 1 primary hotspot sensor"
},
{
"name": "Power supply 2 inlet temp sensor"
},
{
"name": "Power supply 2 secondary hotspot sensor"
},
{
"name": "Power supply 2 primary hotspot sensor"
} }
], ],
"sfps": [ "sfps": [
@ -2154,24 +2154,6 @@
"Ethernet64/8" "Ethernet64/8"
] ]
} }
},
"Ethernet512": {
"index": "65",
"lanes": "258",
"breakout_modes": {
"1x10G": [
"Ethernet65"
]
}
},
"Ethernet513": {
"index": "66",
"lanes": "257",
"breakout_modes": {
"1x10G": [
"Ethernet66"
]
}
} }
} }
} }

View File

@ -20,8 +20,6 @@ miim_intr_enable.0=0
module_64ports.0=1 module_64ports.0=1
multicast_l2_range.0=511 multicast_l2_range.0=511
oversubscribe_mode=1 oversubscribe_mode=1
sai_tunnel_global_sip_mask_enable=1
bcm_tunnel_term_compatible_mode=1
parity_correction=1 parity_correction=1
parity_enable=1 parity_enable=1
pbmp_xport_xe.0=0x3ffffffffffffffffffffffffffffffffffffffe pbmp_xport_xe.0=0x3ffffffffffffffffffffffffffffffffffffffe

View File

@ -20,8 +20,6 @@ miim_intr_enable.0=0
module_64ports.0=1 module_64ports.0=1
multicast_l2_range.0=511 multicast_l2_range.0=511
oversubscribe_mode=1 oversubscribe_mode=1
sai_tunnel_global_sip_mask_enable=1
bcm_tunnel_term_compatible_mode=1
parity_correction=1 parity_correction=1
parity_enable=1 parity_enable=1
pbmp_xport_xe.0=0x3ffffffffffffffffffffffffffffffffffffffe pbmp_xport_xe.0=0x3ffffffffffffffffffffffffffffffffffffffe

View File

@ -186,6 +186,11 @@
id: 6f37 id: 6f37
name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon
D R3 QPI Link 0/1 (rev 03)' D R3 QPI Link 0/1 (rev 03)'
- bus: ff
dev: 0b
fn: '3'
id: '0001'
name: 'System peripheral: Arastra Inc. Device 0001 (rev 03)'
- bus: ff - bus: ff
dev: 0c dev: 0c
fn: '0' fn: '0'

View File

@ -16,8 +16,6 @@ miim_intr_enable.0=0
module_64ports.0=1 module_64ports.0=1
multicast_l2_range.0=511 multicast_l2_range.0=511
oversubscribe_mode=1 oversubscribe_mode=1
sai_tunnel_global_sip_mask_enable=1
bcm_tunnel_term_compatible_mode=1
parity_correction=1 parity_correction=1
parity_enable=1 parity_enable=1
pbmp_xport_xe.0=0x3ffffffffffffffffffffffffffffffffffffffe pbmp_xport_xe.0=0x3ffffffffffffffffffffffffffffffffffffffe

View File

@ -4,6 +4,12 @@
<phy_addr>0</phy_addr> <phy_addr>0</phy_addr>
<mode>retimer</mode> <mode>retimer</mode>
<topology>1</topology> <topology>1</topology>
<tx-taps>
<PAM4>2,-8,17,0,0</PAM4>
<NRZ>0,-8,17,0,0</NRZ>
</tx-taps>
<tx-taps-scale>0,0,1,0,0</tx-taps-scale>
<lane id="0" tx-polarity="0" rx-polarity="0" /> <lane id="0" tx-polarity="0" rx-polarity="0" />
<lane id="1" tx-polarity="0" rx-polarity="0" /> <lane id="1" tx-polarity="0" rx-polarity="0" />
<lane id="2" tx-polarity="0" rx-polarity="0" /> <lane id="2" tx-polarity="0" rx-polarity="0" />
@ -20,23 +26,4 @@
<lane id="13" tx-polarity="0" rx-polarity="0" /> <lane id="13" tx-polarity="0" rx-polarity="0" />
<lane id="14" tx-polarity="0" rx-polarity="0" /> <lane id="14" tx-polarity="0" rx-polarity="0" />
<lane id="15" tx-polarity="0" rx-polarity="0" /> <lane id="15" tx-polarity="0" rx-polarity="0" />
<PAM4>
<lane id="0" tx-taps="0,0,-8,117,-2,0,0"/>
<lane id="1" tx-taps="0,0,-8,117,-2,0,0"/>
<lane id="2" tx-taps="0,0,-8,117,-2,0,0"/>
<lane id="3" tx-taps="0,0,-8,117,-2,0,0"/>
<lane id="4" tx-taps="0,0,-8,117,-2,0,0"/>
<lane id="5" tx-taps="0,0,-8,117,-2,0,0"/>
<lane id="6" tx-taps="0,0,-8,117,-2,0,0"/>
<lane id="7" tx-taps="0,0,-8,117,-2,0,0"/>
<lane id="8" tx-taps="0,10,-22,93,-2,0,0"/>
<lane id="9" tx-taps="0,10,-22,93,-2,0,0"/>
<lane id="10" tx-taps="0,10,-22,93,-2,0,0"/>
<lane id="11" tx-taps="0,10,-22,93,-2,0,0"/>
<lane id="12" tx-taps="0,10,-22,93,-2,0,0"/>
<lane id="13" tx-taps="0,10,-22,93,-2,0,0"/>
<lane id="14" tx-taps="0,10,-22,93,-2,0,0"/>
<lane id="15" tx-taps="0,10,-22,93,-2,0,0"/>
</PAM4>
</root> </root>

View File

@ -1 +0,0 @@
../x86_64-arista_common/pcie.yaml

View File

@ -7,15 +7,20 @@ bus "i2c-23" "SCD 0000:01:00.0 SMBus master 1 bus 4"
bus "i2c-24" "SCD 0000:01:00.0 SMBus master 1 bus 5" bus "i2c-24" "SCD 0000:01:00.0 SMBus master 1 bus 5"
bus "i2c-107" "SCD 0000:00:18.7 SMBus master 0 bus 0" bus "i2c-107" "SCD 0000:00:18.7 SMBus master 0 bus 0"
chip "tmp464-i2c-19-48" chip "max6581-i2c-19-4d"
label temp1 "Board sensor" label temp1 "Board sensor"
label temp2 "TH4 exhaust temp sensor" label temp2 "TH4 exhaust temp sensor"
label temp3 "Inlet temp sensor" label temp3 "Left edge PCB rear temp sensor"
label temp4 "Inlet temp sensor"
ignore temp5
ignore temp6
label temp7 "Diode temp sensor 1"
label temp8 "Diode temp sensor 2"
chip "dps800-i2c-22-58" chip "dps800-i2c-22-58"
label temp1 "Power supply 1 hotspot sensor" label temp1 "Power supply 1 hotspot sensor"
label temp2 "Power supply 1 inlet temp sensor" label temp2 "Power supply 1 inlet temp sensor"
ignore temp3 "Power supply 1 exhaust temp sensor" label temp3 "Power supply 1 exhaust temp sensor"
chip "dps800-i2c-23-58" chip "dps800-i2c-23-58"
label temp1 "Power supply 2 hotspot sensor" label temp1 "Power supply 2 hotspot sensor"

View File

@ -186,6 +186,11 @@
id: 6f37 id: 6f37
name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon
D R3 QPI Link 0/1 (rev 03)' D R3 QPI Link 0/1 (rev 03)'
- bus: ff
dev: 0b
fn: '3'
id: '0001'
name: 'System peripheral: Arastra Inc. Device 0001 (rev 03)'
- bus: ff - bus: ff
dev: 0c dev: 0c
fn: '0' fn: '0'

View File

@ -174,6 +174,11 @@
id: 6f37 id: 6f37
name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon
D R3 QPI Link 0/1 (rev 03)' D R3 QPI Link 0/1 (rev 03)'
- bus: ff
dev: 0b
fn: '3'
id: '0001'
name: 'System peripheral: Arastra Inc. Device 0001 (rev 03)'
- bus: ff - bus: ff
dev: 0c dev: 0c
fn: '0' fn: '0'

View File

@ -90,6 +90,11 @@
id: 15ee id: 15ee
name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Device 24: Function name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Device 24: Function
6' 6'
- bus: '00'
dev: '18'
fn: '7'
id: '0001'
name: 'Host bridge: Arista Networks, Inc. Device 0001'
- bus: '01' - bus: '01'
dev: '00' dev: '00'
fn: '0' fn: '0'

View File

@ -2,7 +2,6 @@
{%- set mmu_sock = 'mmu_init_config="MSFT-TH2-Tier1"' -%} {%- set mmu_sock = 'mmu_init_config="MSFT-TH2-Tier1"' -%}
{%- set IPinIP_sock = '' -%} {%- set IPinIP_sock = '' -%}
{%- set map_prio = '' -%} {%- set map_prio = '' -%}
{%- set pfcwd_sock = '' -%}
{%- if DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined -%} {%- if DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined -%}
{%- if DEVICE_METADATA['localhost']['type'] is defined -%} {%- if DEVICE_METADATA['localhost']['type'] is defined -%}
{%- set switch_role = DEVICE_METADATA['localhost']['type'] -%} {%- set switch_role = DEVICE_METADATA['localhost']['type'] -%}
@ -13,26 +12,19 @@
{%- if DEVICE_METADATA['localhost']['subtype'] is defined -%} {%- if DEVICE_METADATA['localhost']['subtype'] is defined -%}
{%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%} {%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%}
{%- if 'dualtor' in switch_subtype.lower() %} {%- if 'dualtor' in switch_subtype.lower() %}
{%- set IPinIP_sock = {%- set IPinIP_sock = 'sai_tunnel_support=1
'sai_tunnel_underlay_route_mode=1 sai_tunnel_underlay_route_mode=1
host_as_route_disable=1 host_as_route_disable=1
l3_ecmp_levels=2' -%} l3_ecmp_levels=2' -%}
{%- set map_prio = 'sai_remap_prio_on_tnl_egress=1' -%} {%- set map_prio = 'sai_remap_prio_on_tnl_egress=1' -%}
{%- endif %} {%- endif %}
{%- endif %} {%- endif %}
{%- endif %} {%- endif %}
{%- if SYSTEM_DEFAULTS is defined and 'tunnel_qos_remap' in SYSTEM_DEFAULTS and SYSTEM_DEFAULTS['tunnel_qos_remap']['status'] == 'enabled' -%}
{%- set pfcwd_sock =
'hybrid_pfc_deadlock_enable=1
pfc_deadlock_seq_control=1
sai_pfc_dlr_init_capability=1' -%}
{%- endif %}
{# The following is the common soc properties that used to be named "th2-a7260cx3-64-64x100G-t1.config.bcm" #} {# The following is the common soc properties that used to be named "th2-a7260cx3-64-64x100G-t1.config.bcm" #}
l3_alpm_hit_skip=1 l3_alpm_hit_skip=1
sai_adjust_acl_drop_in_rx_drop=1 sai_adjust_acl_drop_in_rx_drop=1
{{ map_prio }} {{ map_prio }}
{{ pfcwd_sock }}
PHY_AN_ALLOW_PLL_CHANGE=1 PHY_AN_ALLOW_PLL_CHANGE=1
arl_clean_timeout_usec=15000000 arl_clean_timeout_usec=15000000
asf_mem_profile=2 asf_mem_profile=2
@ -1048,6 +1040,5 @@ serdes_preemphasis_116=0x103706
serdes_preemphasis_117=0x133c06 serdes_preemphasis_117=0x133c06
{{ mmu_sock }} {{ mmu_sock }}
sai_tunnel_support=1
{{ IPinIP_sock }} {{ IPinIP_sock }}
phy_an_lt_msft=1 phy_an_lt_msft=1

View File

@ -1,28 +1,20 @@
{# Construct config.bcm to include additional soc properties per specific device metadata requirement #} {# Construct config.bcm to include additional soc properties per specific device metadata requirement #}
{%- set IPinIP_sock = '' -%} {%- set IPinIP_sock = '' -%}
{%- set map_prio = '' -%} {%- set map_prio = '' -%}
{%- set pfcwd_sock = '' -%}
{%- if DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined and DEVICE_METADATA['localhost']['subtype'] is defined -%} {%- if DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined and DEVICE_METADATA['localhost']['subtype'] is defined -%}
{%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%} {%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%}
{%- if 'dualtor' in switch_subtype.lower() %} {%- if 'dualtor' in switch_subtype.lower() %}
{%- set IPinIP_sock = {%- set IPinIP_sock = 'sai_tunnel_support=1
'sai_tunnel_underlay_route_mode=1 sai_tunnel_underlay_route_mode=1
host_as_route_disable=1 host_as_route_disable=1
l3_ecmp_levels=2' -%} l3_ecmp_levels=2' -%}
{%- set map_prio = 'sai_remap_prio_on_tnl_egress=1' -%} {%- set map_prio = 'sai_remap_prio_on_tnl_egress=1' -%}
{%- endif %} {%- endif %}
{%- endif %} {%- endif %}
{%- if SYSTEM_DEFAULTS is defined and 'tunnel_qos_remap' in SYSTEM_DEFAULTS and SYSTEM_DEFAULTS['tunnel_qos_remap']['status'] == 'enabled' -%}
{%- set pfcwd_sock =
'hybrid_pfc_deadlock_enable=1
pfc_deadlock_seq_control=1
sai_pfc_dlr_init_capability=1' -%}
{%- endif %}
{# The following is the common soc properties that used to be named "th2-a7260cx3-64-112x50G+8x100G.config.bcm" #} {# The following is the common soc properties that used to be named "th2-a7260cx3-64-112x50G+8x100G.config.bcm" #}
l3_alpm_hit_skip=1 l3_alpm_hit_skip=1
sai_adjust_acl_drop_in_rx_drop=1 sai_adjust_acl_drop_in_rx_drop=1
{{ map_prio }} {{ map_prio }}
{{ pfcwd_sock }}
PHY_AN_ALLOW_PLL_CHANGE=1 PHY_AN_ALLOW_PLL_CHANGE=1
arl_clean_timeout_usec=15000000 arl_clean_timeout_usec=15000000
asf_mem_profile=2 asf_mem_profile=2
@ -955,6 +947,5 @@ serdes_preemphasis_130=0x580c
serdes_preemphasis_131=0x580c serdes_preemphasis_131=0x580c
mmu_init_config="MSFT-TH2-Tier0" mmu_init_config="MSFT-TH2-Tier0"
sai_tunnel_support=1
{{ IPinIP_sock }} {{ IPinIP_sock }}
phy_an_lt_msft=1 phy_an_lt_msft=1

View File

@ -1,28 +1,20 @@
{# Construct config.bcm to include additional soc properties per specific device metadata requirement #} {# Construct config.bcm to include additional soc properties per specific device metadata requirement #}
{%- set IPinIP_sock = '' -%} {%- set IPinIP_sock = '' -%}
{%- set map_prio = '' -%} {%- set map_prio = '' -%}
{%- set pfcwd_sock = '' -%}
{%- if DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined and DEVICE_METADATA['localhost']['subtype'] is defined -%} {%- if DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined and DEVICE_METADATA['localhost']['subtype'] is defined -%}
{%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%} {%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%}
{%- if 'dualtor' in switch_subtype.lower() %} {%- if 'dualtor' in switch_subtype.lower() %}
{%- set IPinIP_sock = {%- set IPinIP_sock = 'sai_tunnel_support=1
'sai_tunnel_underlay_route_mode=1 sai_tunnel_underlay_route_mode=1
host_as_route_disable=1 host_as_route_disable=1
l3_ecmp_levels=2' -%} l3_ecmp_levels=2' -%}
{%- set map_prio = 'sai_remap_prio_on_tnl_egress=1' -%} {%- set map_prio = 'sai_remap_prio_on_tnl_egress=1' -%}
{%- endif %} {%- endif %}
{%- endif %} {%- endif %}
{%- if SYSTEM_DEFAULTS is defined and 'tunnel_qos_remap' in SYSTEM_DEFAULTS and SYSTEM_DEFAULTS['tunnel_qos_remap']['status'] == 'enabled' -%}
{%- set pfcwd_sock =
'hybrid_pfc_deadlock_enable=1
pfc_deadlock_seq_control=1
sai_pfc_dlr_init_capability=1' -%}
{%- endif %}
{# The following is the common soc properties that used to be named "th2-a7260cx3-64-112x50G+8x100G.config.bcm" #} {# The following is the common soc properties that used to be named "th2-a7260cx3-64-112x50G+8x100G.config.bcm" #}
l3_alpm_hit_skip=1 l3_alpm_hit_skip=1
sai_adjust_acl_drop_in_rx_drop=1 sai_adjust_acl_drop_in_rx_drop=1
{{ map_prio }} {{ map_prio }}
{{ pfcwd_sock }}
PHY_AN_ALLOW_PLL_CHANGE=1 PHY_AN_ALLOW_PLL_CHANGE=1
arl_clean_timeout_usec=15000000 arl_clean_timeout_usec=15000000
asf_mem_profile=2 asf_mem_profile=2
@ -959,6 +951,5 @@ serdes_preemphasis_130=0x580c
serdes_preemphasis_131=0x580c serdes_preemphasis_131=0x580c
mmu_init_config="MSFT-TH2-Tier0" mmu_init_config="MSFT-TH2-Tier0"
sai_tunnel_support=1
{{ IPinIP_sock }} {{ IPinIP_sock }}
phy_an_lt_msft=1 phy_an_lt_msft=1

View File

@ -2,7 +2,6 @@
{%- set mmu_sock = 'mmu_init_config="MSFT-TH2-Tier1"' -%} {%- set mmu_sock = 'mmu_init_config="MSFT-TH2-Tier1"' -%}
{%- set IPinIP_sock = '' -%} {%- set IPinIP_sock = '' -%}
{%- set map_prio = '' -%} {%- set map_prio = '' -%}
{%- set pfcwd_sock = '' -%}
{%- if DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined -%} {%- if DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined -%}
{%- if DEVICE_METADATA['localhost']['type'] is defined -%} {%- if DEVICE_METADATA['localhost']['type'] is defined -%}
{%- set switch_role = DEVICE_METADATA['localhost']['type'] -%} {%- set switch_role = DEVICE_METADATA['localhost']['type'] -%}
@ -13,25 +12,18 @@
{%- if DEVICE_METADATA['localhost']['subtype'] is defined -%} {%- if DEVICE_METADATA['localhost']['subtype'] is defined -%}
{%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%} {%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%}
{%- if 'dualtor' in switch_subtype.lower() %} {%- if 'dualtor' in switch_subtype.lower() %}
{%- set IPinIP_sock = {%- set IPinIP_sock = 'sai_tunnel_support=1
'sai_tunnel_underlay_route_mode=1 sai_tunnel_underlay_route_mode=1
host_as_route_disable=1 host_as_route_disable=1
l3_ecmp_levels=2' -%} l3_ecmp_levels=2' -%}
{%- set map_prio = 'sai_remap_prio_on_tnl_egress=1' -%} {%- set map_prio = 'sai_remap_prio_on_tnl_egress=1' -%}
{%- endif %} {%- endif %}
{%- endif %} {%- endif %}
{%- endif %} {%- endif %}
{%- if SYSTEM_DEFAULTS is defined and 'tunnel_qos_remap' in SYSTEM_DEFAULTS and SYSTEM_DEFAULTS['tunnel_qos_remap']['status'] == 'enabled' -%}
{%- set pfcwd_sock =
'hybrid_pfc_deadlock_enable=1
pfc_deadlock_seq_control=1
sai_pfc_dlr_init_capability=1' -%}
{%- endif %}
{# The following is the common soc properties that used to be named "th2-a7260cx3-64-64x40G.config.bcm" #} {# The following is the common soc properties that used to be named "th2-a7260cx3-64-64x40G.config.bcm" #}
l3_alpm_hit_skip=1 l3_alpm_hit_skip=1
sai_adjust_acl_drop_in_rx_drop=1 sai_adjust_acl_drop_in_rx_drop=1
{{ map_prio }} {{ map_prio }}
{{ pfcwd_sock }}
PHY_AN_ALLOW_PLL_CHANGE=1 PHY_AN_ALLOW_PLL_CHANGE=1
arl_clean_timeout_usec=15000000 arl_clean_timeout_usec=15000000
asf_mem_profile=2 asf_mem_profile=2
@ -1047,6 +1039,5 @@ serdes_preemphasis_116=0x105004
serdes_preemphasis_117=0x105004 serdes_preemphasis_117=0x105004
{{ mmu_sock }} {{ mmu_sock }}
sai_tunnel_support=1
{{ IPinIP_sock }} {{ IPinIP_sock }}
phy_an_lt_msft=1 phy_an_lt_msft=1

View File

@ -100,6 +100,12 @@
id: 8c24 id: 8c24
name: 'Signal processing controller: Intel Corporation 8 Series Chipset Family Thermal name: 'Signal processing controller: Intel Corporation 8 Series Chipset Family Thermal
Management Controller (rev 05)' Management Controller (rev 05)'
- bus: '01'
dev: '00'
fn: '0'
id: '1682'
name: 'Ethernet controller: Broadcom Limited NetXtreme BCM57762 Gigabit Ethernet
PCIe (rev 20)'
- bus: '02' - bus: '02'
dev: '00' dev: '00'
fn: '0' fn: '0'
@ -173,6 +179,11 @@
id: 6f37 id: 6f37
name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon
D R3 QPI Link 0/1 (rev 03)' D R3 QPI Link 0/1 (rev 03)'
- bus: ff
dev: 0b
fn: '3'
id: '0001'
name: 'System peripheral: Arastra Inc. Device 0001 (rev 03)'
- bus: ff - bus: ff
dev: 0c dev: 0c
fn: '0' fn: '0'

View File

@ -64,6 +64,11 @@
id: '1578' id: '1578'
name: 'Encryption controller: Advanced Micro Devices, Inc. [AMD] Carrizo Platform name: 'Encryption controller: Advanced Micro Devices, Inc. [AMD] Carrizo Platform
Security Processor' Security Processor'
- bus: '00'
dev: 09
fn: '0'
id: '0001'
name: 'Host bridge: Arista Networks, Inc. Device 0001'
- bus: '00' - bus: '00'
dev: 09 dev: 09
fn: '2' fn: '2'

View File

@ -1,2 +1 @@
SYNCD_SHM_SIZE=1gb
usemsi=1 usemsi=1

View File

@ -1,8 +0,0 @@
{
"FABRIC_MONITOR_DATA": {
"monErrThreshCrcCells": 1,
"monErrThreshRxCells": 61035156,
"monPollThreshRecovery": 8,
"monPollThreshIsolation": 1
}
}

View File

@ -1,193 +0,0 @@
# name lanes isolateStatus
Fabric0 0 False
Fabric1 1 False
Fabric2 2 False
Fabric3 3 False
Fabric4 4 False
Fabric5 5 False
Fabric6 6 False
Fabric7 7 False
Fabric8 8 False
Fabric9 9 False
Fabric10 10 False
Fabric11 11 False
Fabric12 12 False
Fabric13 13 False
Fabric14 14 False
Fabric15 15 False
Fabric16 16 False
Fabric17 17 False
Fabric18 18 False
Fabric19 19 False
Fabric20 20 False
Fabric21 21 False
Fabric22 22 False
Fabric23 23 False
Fabric24 24 False
Fabric25 25 False
Fabric26 26 False
Fabric27 27 False
Fabric28 28 False
Fabric29 29 False
Fabric30 30 False
Fabric31 31 False
Fabric32 32 False
Fabric33 33 False
Fabric34 34 False
Fabric35 35 False
Fabric36 36 False
Fabric37 37 False
Fabric38 38 False
Fabric39 39 False
Fabric40 40 False
Fabric41 41 False
Fabric42 42 False
Fabric43 43 False
Fabric44 44 False
Fabric45 45 False
Fabric46 46 False
Fabric47 47 False
Fabric48 48 False
Fabric49 49 False
Fabric50 50 False
Fabric51 51 False
Fabric52 52 False
Fabric53 53 False
Fabric54 54 False
Fabric55 55 False
Fabric56 56 False
Fabric57 57 False
Fabric58 58 False
Fabric59 59 False
Fabric60 60 False
Fabric61 61 False
Fabric62 62 False
Fabric63 63 False
Fabric64 64 False
Fabric65 65 False
Fabric66 66 False
Fabric67 67 False
Fabric68 68 False
Fabric69 69 False
Fabric70 70 False
Fabric71 71 False
Fabric72 72 False
Fabric73 73 False
Fabric74 74 False
Fabric75 75 False
Fabric76 76 False
Fabric77 77 False
Fabric78 78 False
Fabric79 79 False
Fabric80 80 False
Fabric81 81 False
Fabric82 82 False
Fabric83 83 False
Fabric84 84 False
Fabric85 85 False
Fabric86 86 False
Fabric87 87 False
Fabric88 88 False
Fabric89 89 False
Fabric90 90 False
Fabric91 91 False
Fabric92 92 False
Fabric93 93 False
Fabric94 94 False
Fabric95 95 False
Fabric96 96 False
Fabric97 97 False
Fabric98 98 False
Fabric99 99 False
Fabric100 100 False
Fabric101 101 False
Fabric102 102 False
Fabric103 103 False
Fabric104 104 False
Fabric105 105 False
Fabric106 106 False
Fabric107 107 False
Fabric108 108 False
Fabric109 109 False
Fabric110 110 False
Fabric111 111 False
Fabric112 112 False
Fabric113 113 False
Fabric114 114 False
Fabric115 115 False
Fabric116 116 False
Fabric117 117 False
Fabric118 118 False
Fabric119 119 False
Fabric120 120 False
Fabric121 121 False
Fabric122 122 False
Fabric123 123 False
Fabric124 124 False
Fabric125 125 False
Fabric126 126 False
Fabric127 127 False
Fabric128 128 False
Fabric129 129 False
Fabric130 130 False
Fabric131 131 False
Fabric132 132 False
Fabric133 133 False
Fabric134 134 False
Fabric135 135 False
Fabric136 136 False
Fabric137 137 False
Fabric138 138 False
Fabric139 139 False
Fabric140 140 False
Fabric141 141 False
Fabric142 142 False
Fabric143 143 False
Fabric144 144 False
Fabric145 145 False
Fabric146 146 False
Fabric147 147 False
Fabric148 148 False
Fabric149 149 False
Fabric150 150 False
Fabric151 151 False
Fabric152 152 False
Fabric153 153 False
Fabric154 154 False
Fabric155 155 False
Fabric156 156 False
Fabric157 157 False
Fabric158 158 False
Fabric159 159 False
Fabric160 160 False
Fabric161 161 False
Fabric162 162 False
Fabric163 163 False
Fabric164 164 False
Fabric165 165 False
Fabric166 166 False
Fabric167 167 False
Fabric168 168 False
Fabric169 169 False
Fabric170 170 False
Fabric171 171 False
Fabric172 172 False
Fabric173 173 False
Fabric174 174 False
Fabric175 175 False
Fabric176 176 False
Fabric177 177 False
Fabric178 178 False
Fabric179 179 False
Fabric180 180 False
Fabric181 181 False
Fabric182 182 False
Fabric183 183 False
Fabric184 184 False
Fabric185 185 False
Fabric186 186 False
Fabric187 187 False
Fabric188 188 False
Fabric189 189 False
Fabric190 190 False
Fabric191 191 False

View File

@ -1,8 +0,0 @@
{
"FABRIC_MONITOR_DATA": {
"monErrThreshCrcCells": 1,
"monErrThreshRxCells": 61035156,
"monPollThreshRecovery": 8,
"monPollThreshIsolation": 1
}
}

View File

@ -1,193 +0,0 @@
# name lanes isolateStatus
Fabric0 0 False
Fabric1 1 False
Fabric2 2 False
Fabric3 3 False
Fabric4 4 False
Fabric5 5 False
Fabric6 6 False
Fabric7 7 False
Fabric8 8 False
Fabric9 9 False
Fabric10 10 False
Fabric11 11 False
Fabric12 12 False
Fabric13 13 False
Fabric14 14 False
Fabric15 15 False
Fabric16 16 False
Fabric17 17 False
Fabric18 18 False
Fabric19 19 False
Fabric20 20 False
Fabric21 21 False
Fabric22 22 False
Fabric23 23 False
Fabric24 24 False
Fabric25 25 False
Fabric26 26 False
Fabric27 27 False
Fabric28 28 False
Fabric29 29 False
Fabric30 30 False
Fabric31 31 False
Fabric32 32 False
Fabric33 33 False
Fabric34 34 False
Fabric35 35 False
Fabric36 36 False
Fabric37 37 False
Fabric38 38 False
Fabric39 39 False
Fabric40 40 False
Fabric41 41 False
Fabric42 42 False
Fabric43 43 False
Fabric44 44 False
Fabric45 45 False
Fabric46 46 False
Fabric47 47 False
Fabric48 48 False
Fabric49 49 False
Fabric50 50 False
Fabric51 51 False
Fabric52 52 False
Fabric53 53 False
Fabric54 54 False
Fabric55 55 False
Fabric56 56 False
Fabric57 57 False
Fabric58 58 False
Fabric59 59 False
Fabric60 60 False
Fabric61 61 False
Fabric62 62 False
Fabric63 63 False
Fabric64 64 False
Fabric65 65 False
Fabric66 66 False
Fabric67 67 False
Fabric68 68 False
Fabric69 69 False
Fabric70 70 False
Fabric71 71 False
Fabric72 72 False
Fabric73 73 False
Fabric74 74 False
Fabric75 75 False
Fabric76 76 False
Fabric77 77 False
Fabric78 78 False
Fabric79 79 False
Fabric80 80 False
Fabric81 81 False
Fabric82 82 False
Fabric83 83 False
Fabric84 84 False
Fabric85 85 False
Fabric86 86 False
Fabric87 87 False
Fabric88 88 False
Fabric89 89 False
Fabric90 90 False
Fabric91 91 False
Fabric92 92 False
Fabric93 93 False
Fabric94 94 False
Fabric95 95 False
Fabric96 96 False
Fabric97 97 False
Fabric98 98 False
Fabric99 99 False
Fabric100 100 False
Fabric101 101 False
Fabric102 102 False
Fabric103 103 False
Fabric104 104 False
Fabric105 105 False
Fabric106 106 False
Fabric107 107 False
Fabric108 108 False
Fabric109 109 False
Fabric110 110 False
Fabric111 111 False
Fabric112 112 False
Fabric113 113 False
Fabric114 114 False
Fabric115 115 False
Fabric116 116 False
Fabric117 117 False
Fabric118 118 False
Fabric119 119 False
Fabric120 120 False
Fabric121 121 False
Fabric122 122 False
Fabric123 123 False
Fabric124 124 False
Fabric125 125 False
Fabric126 126 False
Fabric127 127 False
Fabric128 128 False
Fabric129 129 False
Fabric130 130 False
Fabric131 131 False
Fabric132 132 False
Fabric133 133 False
Fabric134 134 False
Fabric135 135 False
Fabric136 136 False
Fabric137 137 False
Fabric138 138 False
Fabric139 139 False
Fabric140 140 False
Fabric141 141 False
Fabric142 142 False
Fabric143 143 False
Fabric144 144 False
Fabric145 145 False
Fabric146 146 False
Fabric147 147 False
Fabric148 148 False
Fabric149 149 False
Fabric150 150 False
Fabric151 151 False
Fabric152 152 False
Fabric153 153 False
Fabric154 154 False
Fabric155 155 False
Fabric156 156 False
Fabric157 157 False
Fabric158 158 False
Fabric159 159 False
Fabric160 160 False
Fabric161 161 False
Fabric162 162 False
Fabric163 163 False
Fabric164 164 False
Fabric165 165 False
Fabric166 166 False
Fabric167 167 False
Fabric168 168 False
Fabric169 169 False
Fabric170 170 False
Fabric171 171 False
Fabric172 172 False
Fabric173 173 False
Fabric174 174 False
Fabric175 175 False
Fabric176 176 False
Fabric177 177 False
Fabric178 178 False
Fabric179 179 False
Fabric180 180 False
Fabric181 181 False
Fabric182 182 False
Fabric183 183 False
Fabric184 184 False
Fabric185 185 False
Fabric186 186 False
Fabric187 187 False
Fabric188 188 False
Fabric189 189 False
Fabric190 190 False
Fabric191 191 False

View File

@ -1,8 +0,0 @@
{
"FABRIC_MONITOR_DATA": {
"monErrThreshCrcCells": 1,
"monErrThreshRxCells": 61035156,
"monPollThreshRecovery": 8,
"monPollThreshIsolation": 1
}
}

View File

@ -1,193 +0,0 @@
# name lanes isolateStatus
Fabric0 0 False
Fabric1 1 False
Fabric2 2 False
Fabric3 3 False
Fabric4 4 False
Fabric5 5 False
Fabric6 6 False
Fabric7 7 False
Fabric8 8 False
Fabric9 9 False
Fabric10 10 False
Fabric11 11 False
Fabric12 12 False
Fabric13 13 False
Fabric14 14 False
Fabric15 15 False
Fabric16 16 False
Fabric17 17 False
Fabric18 18 False
Fabric19 19 False
Fabric20 20 False
Fabric21 21 False
Fabric22 22 False
Fabric23 23 False
Fabric24 24 False
Fabric25 25 False
Fabric26 26 False
Fabric27 27 False
Fabric28 28 False
Fabric29 29 False
Fabric30 30 False
Fabric31 31 False
Fabric32 32 False
Fabric33 33 False
Fabric34 34 False
Fabric35 35 False
Fabric36 36 False
Fabric37 37 False
Fabric38 38 False
Fabric39 39 False
Fabric40 40 False
Fabric41 41 False
Fabric42 42 False
Fabric43 43 False
Fabric44 44 False
Fabric45 45 False
Fabric46 46 False
Fabric47 47 False
Fabric48 48 False
Fabric49 49 False
Fabric50 50 False
Fabric51 51 False
Fabric52 52 False
Fabric53 53 False
Fabric54 54 False
Fabric55 55 False
Fabric56 56 False
Fabric57 57 False
Fabric58 58 False
Fabric59 59 False
Fabric60 60 False
Fabric61 61 False
Fabric62 62 False
Fabric63 63 False
Fabric64 64 False
Fabric65 65 False
Fabric66 66 False
Fabric67 67 False
Fabric68 68 False
Fabric69 69 False
Fabric70 70 False
Fabric71 71 False
Fabric72 72 False
Fabric73 73 False
Fabric74 74 False
Fabric75 75 False
Fabric76 76 False
Fabric77 77 False
Fabric78 78 False
Fabric79 79 False
Fabric80 80 False
Fabric81 81 False
Fabric82 82 False
Fabric83 83 False
Fabric84 84 False
Fabric85 85 False
Fabric86 86 False
Fabric87 87 False
Fabric88 88 False
Fabric89 89 False
Fabric90 90 False
Fabric91 91 False
Fabric92 92 False
Fabric93 93 False
Fabric94 94 False
Fabric95 95 False
Fabric96 96 False
Fabric97 97 False
Fabric98 98 False
Fabric99 99 False
Fabric100 100 False
Fabric101 101 False
Fabric102 102 False
Fabric103 103 False
Fabric104 104 False
Fabric105 105 False
Fabric106 106 False
Fabric107 107 False
Fabric108 108 False
Fabric109 109 False
Fabric110 110 False
Fabric111 111 False
Fabric112 112 False
Fabric113 113 False
Fabric114 114 False
Fabric115 115 False
Fabric116 116 False
Fabric117 117 False
Fabric118 118 False
Fabric119 119 False
Fabric120 120 False
Fabric121 121 False
Fabric122 122 False
Fabric123 123 False
Fabric124 124 False
Fabric125 125 False
Fabric126 126 False
Fabric127 127 False
Fabric128 128 False
Fabric129 129 False
Fabric130 130 False
Fabric131 131 False
Fabric132 132 False
Fabric133 133 False
Fabric134 134 False
Fabric135 135 False
Fabric136 136 False
Fabric137 137 False
Fabric138 138 False
Fabric139 139 False
Fabric140 140 False
Fabric141 141 False
Fabric142 142 False
Fabric143 143 False
Fabric144 144 False
Fabric145 145 False
Fabric146 146 False
Fabric147 147 False
Fabric148 148 False
Fabric149 149 False
Fabric150 150 False
Fabric151 151 False
Fabric152 152 False
Fabric153 153 False
Fabric154 154 False
Fabric155 155 False
Fabric156 156 False
Fabric157 157 False
Fabric158 158 False
Fabric159 159 False
Fabric160 160 False
Fabric161 161 False
Fabric162 162 False
Fabric163 163 False
Fabric164 164 False
Fabric165 165 False
Fabric166 166 False
Fabric167 167 False
Fabric168 168 False
Fabric169 169 False
Fabric170 170 False
Fabric171 171 False
Fabric172 172 False
Fabric173 173 False
Fabric174 174 False
Fabric175 175 False
Fabric176 176 False
Fabric177 177 False
Fabric178 178 False
Fabric179 179 False
Fabric180 180 False
Fabric181 181 False
Fabric182 182 False
Fabric183 183 False
Fabric184 184 False
Fabric185 185 False
Fabric186 186 False
Fabric187 187 False
Fabric188 188 False
Fabric189 189 False
Fabric190 190 False
Fabric191 191 False

Some files were not shown because too many files have changed in this diff Show More