Merge branch 'master' into as4630-54pe_20230321_pytest
This commit is contained in:
commit
4fa9bf129c
@ -161,8 +161,8 @@ stages:
|
||||
git branch -u remote/$BRANCH_NAME
|
||||
|
||||
echo $GIT_PASSWORD | gh auth login --with-token
|
||||
TITLE="Upgrade SONiC Versions"
|
||||
BODY="Upgrade SONiC Versions"
|
||||
TITLE="[${SOURCE_BRANCH#refs/heads/}] Upgrade SONiC package Versions"
|
||||
BODY=$TITLE
|
||||
RET=0
|
||||
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
|
||||
|
56
.azure-pipelines/azure-pipelines-build-ubuntu-2004.yml
Normal file
56
.azure-pipelines/azure-pipelines-build-ubuntu-2004.yml
Normal file
@ -0,0 +1,56 @@
|
||||
# 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
|
||||
|
||||
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
|
||||
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"
|
@ -35,7 +35,6 @@ jobs:
|
||||
dbg_image: no
|
||||
asan_image: no
|
||||
swi_image: no
|
||||
raw_image: no
|
||||
docker_syncd_rpc_image: no
|
||||
syncd_rpc_image: no
|
||||
platform_rpc: no
|
||||
@ -62,7 +61,6 @@ jobs:
|
||||
variables:
|
||||
dbg_image: yes
|
||||
swi_image: yes
|
||||
raw_image: yes
|
||||
docker_syncd_rpc_image: yes
|
||||
platform_rpc: brcm
|
||||
|
||||
@ -94,6 +92,15 @@ jobs:
|
||||
variables:
|
||||
PLATFORM_ARCH: armhf
|
||||
|
||||
- name: marvell-arm64
|
||||
${{ if not(parameters.qemuOrCrossBuild) }}:
|
||||
pool: sonicbld-arm64
|
||||
timeoutInMinutes: 2880
|
||||
variables:
|
||||
PLATFORM_ARCH: arm64
|
||||
|
||||
- name: marvell
|
||||
|
||||
- name: mellanox
|
||||
variables:
|
||||
dbg_image: yes
|
||||
@ -107,12 +114,19 @@ jobs:
|
||||
docker_syncd_rpc_image: yes
|
||||
platform_rpc: nephos
|
||||
|
||||
- name: pensando
|
||||
pool: sonicbld-arm64
|
||||
variables:
|
||||
PLATFORM_ARCH: arm64
|
||||
|
||||
buildSteps:
|
||||
- template: .azure-pipelines/template-skipvstest.yml@buildimage
|
||||
- template: .azure-pipelines/template-daemon.yml@buildimage
|
||||
- bash: |
|
||||
set -ex
|
||||
if [ $(GROUP_NAME) == vs ]; then
|
||||
if [ $(GROUP_NAME) == pensando ]; then
|
||||
make $BUILD_OPTIONS target/sonic-pensando.tar
|
||||
elif [ $(GROUP_NAME) == vs ]; then
|
||||
if [ $(dbg_image) == yes ]; then
|
||||
make $BUILD_OPTIONS INSTALL_DEBUG_TOOLS=y target/sonic-vs.img.gz
|
||||
mv target/sonic-vs.img.gz target/sonic-vs-dbg.img.gz
|
||||
@ -121,11 +135,15 @@ jobs:
|
||||
make $BUILD_OPTIONS ENABLE_ASAN=y target/docker-sonic-vs.gz
|
||||
mv target/docker-sonic-vs.gz target/docker-sonic-vs-asan.gz
|
||||
fi
|
||||
if [ "$(K8S_OPTIONS)" == 'INCLUDE_KUBERNETES_MASTER=y' ]; then
|
||||
make $BUILD_OPTIONS $(K8S_OPTIONS) target/sonic-vs.img.gz
|
||||
mv target/sonic-vs.img.gz target/sonic-vs-k8s.img.gz
|
||||
fi
|
||||
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
|
||||
if [ $(Build.Reason) != 'PullRequest' ];then
|
||||
gzip -kd 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 sonic-slave-run
|
||||
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
|
||||
rm target/sonic-vs.img
|
||||
fi
|
||||
else
|
||||
@ -136,9 +154,6 @@ jobs:
|
||||
if [ $(swi_image) == yes ]; then
|
||||
make $BUILD_OPTIONS ENABLE_IMAGE_SIGNATURE=y target/sonic-aboot-$(GROUP_NAME).swi
|
||||
fi
|
||||
if [ $(raw_image) == yes ]; then
|
||||
make $BUILD_OPTIONS target/sonic-$(GROUP_NAME).raw
|
||||
fi
|
||||
if [ $(docker_syncd_rpc_image) == yes ]; then
|
||||
# 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
|
||||
@ -150,16 +165,6 @@ jobs:
|
||||
pushd ./src/sonic-sairedis/SAI
|
||||
git stash
|
||||
popd
|
||||
make $BUILD_OPTIONS ENABLE_SYNCD_RPC=y SAITHRIFT_V2=y target/docker-saiserverv2-brcm.gz
|
||||
pushd ./src/sonic-sairedis/SAI
|
||||
git stash
|
||||
popd
|
||||
fi
|
||||
if [ $(GROUP_NAME) == barefoot ]; then
|
||||
make $BUILD_OPTIONS SAITHRIFT_V2=y ENABLE_SYNCD_RPC=y target/docker-saiserverv2-bfn.gz
|
||||
pushd ./src/sonic-sairedis/SAI
|
||||
git stash
|
||||
popd
|
||||
fi
|
||||
fi
|
||||
if [ $(syncd_rpc_image) == yes ]; then
|
||||
|
@ -28,11 +28,14 @@ jobs:
|
||||
- template: .azure-pipelines/cleanup.yml@buildimage
|
||||
- ${{ parameters.preSteps }}
|
||||
- script: |
|
||||
if [ -n "$(CACHE_MODE)" ] && echo $(PLATFORM_AZP) | grep -E -q "^(vs|broadcom|mellanox|marvell-armhf)$"; then
|
||||
[ -n "$OVERRIDE_BUILD_OPTIONS" ] && OVERRIDE_BUILD_OPTIONS=$(OVERRIDE_BUILD_OPTIONS)
|
||||
BUILD_OPTIONS="$(BUILD_OPTIONS) $OVERRIDE_BUILD_OPTIONS"
|
||||
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)"
|
||||
BUILD_OPTIONS="$(BUILD_OPTIONS) $CACHE_OPTIONS"
|
||||
echo "##vso[task.setvariable variable=BUILD_OPTIONS]$BUILD_OPTIONS"
|
||||
BUILD_OPTIONS="$BUILD_OPTIONS $CACHE_OPTIONS"
|
||||
fi
|
||||
echo $BUILD_OPTIONS
|
||||
echo "##vso[task.setvariable variable=BUILD_OPTIONS]$BUILD_OPTIONS"
|
||||
displayName: "Set cache options"
|
||||
- checkout: self
|
||||
submodules: recursive
|
||||
|
@ -1,5 +1,2 @@
|
||||
variables:
|
||||
${{ if eq(variables['Build.Reason'],'PullRequest') }}:
|
||||
VERSION_CONTROL_OPTIONS: 'SONIC_VERSION_CONTROL_COMPONENTS=$([[ "$(System.PullRequest.TargetBranch)" =~ ^20[2-9][0-9]{3}$ ]] && echo deb,py2,py3,web,git,docker)'
|
||||
${{ else }}:
|
||||
VERSION_CONTROL_OPTIONS: 'SONIC_VERSION_CONTROL_COMPONENTS=deb,py2,py3,web,git,docker'
|
||||
VERSION_CONTROL_OPTIONS: 'SONIC_VERSION_CONTROL_COMPONENTS=deb,py2,py3,web,git,docker'
|
||||
|
@ -101,9 +101,6 @@ jobs:
|
||||
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
|
||||
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
|
||||
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
|
||||
|
63
.azure-pipelines/docker-sonic-mgmt-py3-only.yml
Normal file
63
.azure-pipelines/docker-sonic-mgmt-py3-only.yml
Normal file
@ -0,0 +1,63 @@
|
||||
# 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"
|
||||
|
@ -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
|
||||
|
||||
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 target/docker-sonic-mgmt.gz
|
||||
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
|
||||
cp target -r $(Build.ArtifactStagingDirectory)/target
|
||||
docker load -i target/docker-sonic-mgmt.gz
|
||||
docker tag docker-sonic-mgmt $REGISTRY_SERVER/docker-sonic-mgmt:latest
|
||||
|
@ -16,6 +16,7 @@ parameters:
|
||||
- name: dist
|
||||
type: string
|
||||
values:
|
||||
- bookworm
|
||||
- bullseye
|
||||
- buster
|
||||
- stretch
|
||||
|
@ -8,7 +8,7 @@ resources:
|
||||
- repository: buildimage
|
||||
type: github
|
||||
name: sonic-net/sonic-buildimage
|
||||
ref: master
|
||||
ref: bookworm
|
||||
endpoint: sonic-net
|
||||
|
||||
schedules:
|
||||
@ -44,6 +44,7 @@ parameters:
|
||||
- name: 'dists'
|
||||
type: object
|
||||
default:
|
||||
- bookworm
|
||||
- bullseye
|
||||
- buster
|
||||
- stretch
|
||||
|
@ -15,13 +15,34 @@ trigger: none
|
||||
pr: none
|
||||
|
||||
jobs:
|
||||
- job: Build
|
||||
- job: Amd
|
||||
pool: sonicbld
|
||||
timeoutInMinutes: 5
|
||||
steps:
|
||||
- checkout: none
|
||||
- script: |
|
||||
set -xe
|
||||
df -h
|
||||
sudo find /nfs/dpkg_cache/ -name *.tgz -mtime +30 -type f -delete
|
||||
df -h
|
||||
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
|
||||
|
||||
|
@ -39,7 +39,6 @@ stages:
|
||||
- name: broadcom
|
||||
variables:
|
||||
swi_image: yes
|
||||
raw_image: yes
|
||||
docker_syncd_rpc_image: yes
|
||||
platform_rpc: brcm
|
||||
- name: mellanox
|
||||
|
@ -18,6 +18,10 @@ parameters:
|
||||
type: string
|
||||
default: 1
|
||||
|
||||
- name: NUM_ASIC
|
||||
type: number
|
||||
default: 1
|
||||
|
||||
- name: TEST_SET
|
||||
type: string
|
||||
default: ""
|
||||
@ -34,39 +38,103 @@ parameters:
|
||||
type: string
|
||||
default: "ceos"
|
||||
|
||||
- name: SPECIFIED_PARAMS
|
||||
- name: TESTBED_NAME
|
||||
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
|
||||
type: string
|
||||
default: master
|
||||
default: ""
|
||||
|
||||
- name: NUM_ASIC
|
||||
- name: STOP_ON_FAILURE
|
||||
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
|
||||
default: 1
|
||||
default: 480
|
||||
|
||||
|
||||
steps:
|
||||
- script: |
|
||||
set -ex
|
||||
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/pr_test_scripts.yaml https://raw.githubusercontent.com/sonic-net/sonic-mgmt/master/.azure-pipelines/pr_test_scripts.yaml
|
||||
displayName: Download TestbedV2 scripts
|
||||
displayName: Download test plan scripts
|
||||
|
||||
- script: |
|
||||
set -ex
|
||||
set -e
|
||||
pip install PyYAML
|
||||
rm -f new_test_plan_id.txt
|
||||
python ./.azure-pipelines/test_plan.py create -t ${{ parameters.TOPOLOGY }} -o new_test_plan_id.txt \
|
||||
--min-worker ${{ parameters.MIN_WORKER }} --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 }} --specified-params "${{ parameters.SPECIFIED_PARAMS }}" \
|
||||
|
||||
python ./.azure-pipelines/test_plan.py create \
|
||||
-t ${{ parameters.TOPOLOGY }} \
|
||||
-o new_test_plan_id.txt \
|
||||
--min-worker ${{ parameters.MIN_WORKER }} \
|
||||
--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 }}
|
||||
|
||||
TEST_PLAN_ID=`cat new_test_plan_id.txt`
|
||||
|
||||
echo "Created test plan $TEST_PLAN_ID"
|
||||
echo "Check https://www.testbed-tools.org/scheduler/testplan/$TEST_PLAN_ID for test plan status"
|
||||
echo "Check $(FRONTEND_URL)/scheduler/testplan/$TEST_PLAN_ID for test plan status"
|
||||
echo "##vso[task.setvariable variable=TEST_PLAN_ID]$TEST_PLAN_ID"
|
||||
env:
|
||||
TESTBED_TOOLS_URL: $(TESTBED_TOOLS_URL)
|
||||
@ -76,10 +144,10 @@ steps:
|
||||
displayName: Trigger test
|
||||
|
||||
- script: |
|
||||
set -ex
|
||||
set -e
|
||||
echo "Lock testbed"
|
||||
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"
|
||||
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 $(FRONTEND_URL)/scheduler/testplan/$TEST_PLAN_ID "
|
||||
# When "LOCK_TESTBED" finish, it changes into "PREPARE_TESTBED"
|
||||
python ./.azure-pipelines/test_plan.py poll -i "$(TEST_PLAN_ID)" --expected-state LOCK_TESTBED
|
||||
env:
|
||||
@ -87,12 +155,11 @@ steps:
|
||||
displayName: Lock testbed
|
||||
|
||||
- script: |
|
||||
set -ex
|
||||
set -e
|
||||
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(We will improve the indication in a short time)"
|
||||
echo "If the progress keeps as 0 for more than 1 hour, please cancel and retry this pipeline"
|
||||
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"
|
||||
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 "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 $(FRONTEND_URL)/scheduler/testplan/$TEST_PLAN_ID "
|
||||
# When "PREPARE_TESTBED" finish, it changes into "EXECUTING"
|
||||
python ./.azure-pipelines/test_plan.py poll -i "$(TEST_PLAN_ID)" --expected-state PREPARE_TESTBED
|
||||
env:
|
||||
@ -100,30 +167,32 @@ steps:
|
||||
displayName: Prepare testbed
|
||||
|
||||
- script: |
|
||||
set -ex
|
||||
set -e
|
||||
echo "Run test"
|
||||
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"
|
||||
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 $(FRONTEND_URL)/scheduler/testplan/$TEST_PLAN_ID "
|
||||
# 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
|
||||
env:
|
||||
TESTBED_TOOLS_URL: $(TESTBED_TOOLS_URL)
|
||||
displayName: Run test
|
||||
timeoutInMinutes: ${{ parameters.MAX_RUN_TEST_MINUTES }}
|
||||
|
||||
- ${{ if eq(parameters.DUMP_KVM_IF_FAIL, 'True') }}:
|
||||
- script: |
|
||||
set -e
|
||||
echo "KVM dump"
|
||||
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 $(FRONTEND_URL)/scheduler/testplan/$TEST_PLAN_ID "
|
||||
# When "KVMDUMP" finish, it changes into "FAILED", "CANCELLED" or "FINISHED"
|
||||
python ./.azure-pipelines/test_plan.py poll -i "$(TEST_PLAN_ID)" --expected-state KVMDUMP
|
||||
condition: succeededOrFailed()
|
||||
env:
|
||||
TESTBED_TOOLS_URL: $(TESTBED_TOOLS_URL)
|
||||
displayName: KVM dump
|
||||
|
||||
- script: |
|
||||
set -ex
|
||||
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 "Runtime detailed progress at https://www.testbed-tools.org/scheduler/testplan/$TEST_PLAN_ID"
|
||||
# When "KVMDUMP" finish, it changes into "FAILED", "CANCELLED" or "FINISHED"
|
||||
python ./.azure-pipelines/test_plan.py poll -i "$(TEST_PLAN_ID)" --expected-state KVMDUMP
|
||||
condition: succeededOrFailed()
|
||||
env:
|
||||
TESTBED_TOOLS_URL: $(TESTBED_TOOLS_URL)
|
||||
displayName: KVM dump
|
||||
|
||||
- script: |
|
||||
set -ex
|
||||
set -e
|
||||
echo "Try to cancel test plan $TEST_PLAN_ID, cancelling finished test plan has no effect."
|
||||
python ./.azure-pipelines/test_plan.py cancel -i "$(TEST_PLAN_ID)"
|
||||
condition: always()
|
||||
|
@ -2,7 +2,13 @@ steps:
|
||||
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
|
||||
- script: |
|
||||
set -ex
|
||||
tar_branch=origin/$(System.PullRequest.TargetBranch)
|
||||
tar_branch=origin/$(System.PullRequest.TargetBranchName)
|
||||
# Check if k8s master entrance script is changed
|
||||
if ! git diff $tar_branch..HEAD --name-only | grep -F files/image_config/kubernetes/kubernetes_master_entrance.sh; then
|
||||
echo "##vso[task.setvariable variable=K8S_OPTIONS;]INCLUDE_KUBERNETES_MASTER=n"
|
||||
else
|
||||
echo "##vso[task.setvariable variable=K8S_OPTIONS;]INCLUDE_KUBERNETES_MASTER=y"
|
||||
fi
|
||||
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
|
||||
set +x
|
||||
|
@ -1,4 +1,3 @@
|
||||
^platform
|
||||
^.azure-pipelines
|
||||
^files/build/versions
|
||||
^sonic-slave-
|
||||
|
23
.github/pull_request_template.md
vendored
23
.github/pull_request_template.md
vendored
@ -12,10 +12,17 @@
|
||||
|
||||
#### Why I did it
|
||||
|
||||
##### Work item tracking
|
||||
- Microsoft ADO **(number only)**:
|
||||
|
||||
#### How I did it
|
||||
|
||||
#### How to verify it
|
||||
|
||||
<!--
|
||||
If PR needs to be backported, then the PR must be tested against the base branch and the earliest backport release branch and provide tested image version on these two branches. For example, if the PR is requested for master, 202211 and 202012, then the requester needs to provide test results on master and 202012.
|
||||
-->
|
||||
|
||||
#### Which release branch to backport (provide reason below if selected)
|
||||
|
||||
<!--
|
||||
@ -33,6 +40,18 @@
|
||||
- [ ] 202111
|
||||
- [ ] 202205
|
||||
- [ ] 202211
|
||||
- [ ] 202305
|
||||
|
||||
#### Tested branch (Please provide the tested image version)
|
||||
|
||||
<!--
|
||||
- Please provide tested image version
|
||||
- e.g.
|
||||
- [x] 20201231.100
|
||||
-->
|
||||
|
||||
- [ ] <!-- image version 1 -->
|
||||
- [ ] <!-- image version 2 -->
|
||||
|
||||
#### Description for the changelog
|
||||
<!--
|
||||
@ -40,7 +59,9 @@ Write a short (one line) summary that describes the changes in this
|
||||
pull request for inclusion in the changelog:
|
||||
-->
|
||||
|
||||
#### Ensure to add label/tag for the feature raised. example - PR#2174 under sonic-utilities repo. where, Generic Config and Update feature has been labelled as GCU.
|
||||
<!--
|
||||
Ensure to add label/tag for the feature raised. example - PR#2174 under sonic-utilities repo. where, Generic Config and Update feature has been labelled as GCU.
|
||||
-->
|
||||
|
||||
#### Link to config_db schema for YANG module changes
|
||||
<!--
|
||||
|
3
.github/workflows/automerge.yml
vendored
3
.github/workflows/automerge.yml
vendored
@ -9,7 +9,8 @@ on:
|
||||
|
||||
jobs:
|
||||
automerge:
|
||||
if: github.event.check_suite.app.name == 'Azure Pipelines' && github.event.check_suite.conclusion == 'success'
|
||||
# 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' && false
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: automerge
|
||||
|
72
.github/workflows/automerge_scan.yml
vendored
72
.github/workflows/automerge_scan.yml
vendored
@ -16,53 +16,81 @@ jobs:
|
||||
set -e
|
||||
|
||||
echo ${TOKEN} | gh auth login --with-token
|
||||
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
|
||||
gh pr list -R sonic-net/sonic-buildimage -A mssonicbld -L 100 -S "label:automerge" --json url,body,title,createdAt,labels,statusCheckRollup > prs.log
|
||||
cat prs.log | jq
|
||||
- name: Main
|
||||
run: |
|
||||
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')
|
||||
for ((i=0;i<$count;i++))
|
||||
do
|
||||
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")
|
||||
echo PR: $(($i+1))/$count, URL: $url, createdAt: $created_at, now: $(date -u +"%FT%TZ")
|
||||
echo PR: $(($i+1))/$count, URL: $url, origin PR: $origin_pr_id, createdAt: $created_at, operate: $operate
|
||||
[[ "$url" == "" ]] && 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_count=$(echo $checks | jq 'length')
|
||||
echo Checks count: $checks_count
|
||||
pr_success=true
|
||||
for ((j=0;j<$checks_count;j++))
|
||||
do
|
||||
check=$(echo $checks | jq ".[$j]")
|
||||
state=$(echo $check | jq -r '.state')
|
||||
status=$(echo $check | jq -r '.status')
|
||||
conclusion=$(echo $check | jq -r '.conclusion')
|
||||
name=$(echo $check | jq -r '.name')
|
||||
|
||||
# EasyCLA success flag: state=SUCCESS
|
||||
# Others success flag: conclusion in SUCCESS,NEUTRAL
|
||||
# Ignore Azure.sonic-buildimage stage check result. It may be set continueOnError
|
||||
echo "$name" | grep "Azure.sonic-buildimage (" && continue
|
||||
# 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
|
||||
# only check Azure.sonic-buildimage currently
|
||||
echo "$name" | grep -v "Azure.sonic-buildimage" > /dev/null && continue
|
||||
[[ "$status" != "COMPLETED" ]] && echo "$name: $status" && continue 2
|
||||
|
||||
success=true
|
||||
( [[ "$conclusion" == "FAILURE" ]] || [[ "$conclusion" == "CANCELLED" ]] ) && success=false && pr_success=false
|
||||
! $success && echo "FAIL: $name"
|
||||
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
|
||||
echo ========Merging PR========
|
||||
gh pr merge --rebase --admin -R sonic-net/sonic-buildimage $url || true
|
||||
if echo $title | grep "^\[submodule\]";then
|
||||
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========
|
||||
done
|
||||
|
||||
|
3
.github/workflows/label.yml
vendored
3
.github/workflows/label.yml
vendored
@ -13,9 +13,6 @@ on:
|
||||
- reopened
|
||||
branches:
|
||||
- master
|
||||
- '202012'
|
||||
- '202[1-9][0-9][0-9]'
|
||||
- '20[3-9][0-9][0-9][0-9]'
|
||||
paths:
|
||||
- 'files/build/versions/**'
|
||||
|
||||
|
6
.github/workflows/pr_cherrypick_prestep.yml
vendored
6
.github/workflows/pr_cherrypick_prestep.yml
vendored
@ -9,7 +9,7 @@ on:
|
||||
|
||||
jobs:
|
||||
pre_cherry_pick:
|
||||
if: 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: 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
|
||||
steps:
|
||||
- name: Checkout
|
||||
@ -39,6 +39,7 @@ jobs:
|
||||
labels=$(echo $GITHUB_CONTEXT | jq -r ".event.label.name")
|
||||
fi
|
||||
title=$(echo $GITHUB_CONTEXT | jq -r ".event.pull_request.title")
|
||||
body=$(echo $GITHUB_CONTEXT | jq -r ".event.pull_request.body")
|
||||
echo =============================
|
||||
echo SHA: $sha
|
||||
echo PRID: $pr_id
|
||||
@ -50,6 +51,7 @@ jobs:
|
||||
echo ${TOKEN} | gh auth login --with-token
|
||||
echo author: $author
|
||||
echo title: $title
|
||||
echo body: "$body"
|
||||
echo =============================
|
||||
|
||||
git config user.name mssonicbld
|
||||
@ -105,7 +107,7 @@ jobs:
|
||||
else
|
||||
# Create PR to release branch
|
||||
git push mssonicbld HEAD:cherry/$branch/${pr_id} -f
|
||||
result=$(gh pr create -R ${repository} -H mssonicbld:cherry/$branch/${pr_id} -B $branch -t "[action] [PR:$pr_id] $title" -b '' 2>&1)
|
||||
result=$(gh pr create -R ${repository} -H mssonicbld:cherry/$branch/${pr_id} -B $branch -t "[action] [PR:$pr_id] $title" -b "$body" 2>&1)
|
||||
echo $result | grep "already exists" && { echo $result; return 0; }
|
||||
echo $result | grep github.com || { echo $result; return 1; }
|
||||
new_pr_rul=$(echo $result | grep github.com)
|
||||
|
12
.gitignore
vendored
12
.gitignore
vendored
@ -41,6 +41,9 @@ installer/x86_64/platforms/
|
||||
# Misc. files
|
||||
asic_config_checksum
|
||||
files/Aboot/boot0
|
||||
files/dsc/MANIFEST
|
||||
files/dsc/install_debian
|
||||
files/dsc/fs.zip
|
||||
files/initramfs-tools/arista-convertfs
|
||||
files/initramfs-tools/union-mount
|
||||
|
||||
@ -63,6 +66,12 @@ platform/**/*.egg-info
|
||||
platform/**/*-none-any.whl
|
||||
platform/**/.pybuild
|
||||
platform/**/debian/*
|
||||
!platform/**/debian/control
|
||||
!platform/**/debian/rules
|
||||
!platform/**/debian/changelog
|
||||
!platform/**/debian/compat
|
||||
!platform/**/debian/*.postinst
|
||||
!platform/**/debian/*.install
|
||||
platform/**/build
|
||||
platform/**/*.ko
|
||||
platform/**/*.mod.c
|
||||
@ -99,3 +108,6 @@ htmlcov/
|
||||
# Debian mirror Sources
|
||||
sources.list.*
|
||||
!sources.list*.j2
|
||||
|
||||
# Generated mirror configs
|
||||
apt-retries-count
|
||||
|
17
.gitmodules
vendored
17
.gitmodules
vendored
@ -46,7 +46,7 @@
|
||||
[submodule "src/sonic-frr/frr"]
|
||||
path = src/sonic-frr/frr
|
||||
url = https://github.com/sonic-net/sonic-frr.git
|
||||
branch = frr/8.2
|
||||
branch = frr/8.5
|
||||
[submodule "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
|
||||
@ -65,9 +65,6 @@
|
||||
[submodule "src/scapy"]
|
||||
path = src/scapy
|
||||
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"]
|
||||
path = src/sonic-mgmt-framework
|
||||
url = https://github.com/sonic-net/sonic-mgmt-framework
|
||||
@ -112,3 +109,15 @@
|
||||
[submodule "src/sonic-genl-packet"]
|
||||
path = src/sonic-genl-packet
|
||||
url = https://github.com/sonic-net/sonic-genl-packet
|
||||
[submodule "src/dhcpmon"]
|
||||
path = src/dhcpmon
|
||||
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
22
LICENSE
@ -1,15 +1,13 @@
|
||||
Copyright (C) 2016 Microsoft
|
||||
Copyright (C) 2023 Microsoft
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
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.
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
19
Makefile
19
Makefile
@ -4,6 +4,7 @@ NOJESSIE ?= 1
|
||||
NOSTRETCH ?= 1
|
||||
NOBUSTER ?= 0
|
||||
NOBULLSEYE ?= 0
|
||||
NOBOOKWORM ?= 0
|
||||
|
||||
override Q := @
|
||||
ifeq ($(QUIET),n)
|
||||
@ -29,6 +30,10 @@ ifeq ($(NOBULLSEYE),0)
|
||||
BUILD_BULLSEYE=1
|
||||
endif
|
||||
|
||||
ifeq ($(NOBOOKWORM),0)
|
||||
BUILD_BOOKWORM=1
|
||||
endif
|
||||
|
||||
PLATFORM_PATH := platform/$(if $(PLATFORM),$(PLATFORM),$(CONFIGURED_PLATFORM))
|
||||
PLATFORM_CHECKOUT := platform/checkout
|
||||
PLATFORM_CHECKOUT_FILE := $(PLATFORM_CHECKOUT)/$(PLATFORM).ini
|
||||
@ -47,9 +52,12 @@ ifeq ($(NOBUSTER), 0)
|
||||
$(MAKE_WITH_RETRY) EXTRA_DOCKER_TARGETS=$(notdir $@) BLDENV=buster -f Makefile.work buster
|
||||
endif
|
||||
ifeq ($(NOBULLSEYE), 0)
|
||||
$(MAKE_WITH_RETRY) BLDENV=bullseye -f Makefile.work $@
|
||||
$(MAKE_WITH_RETRY) EXTRA_DOCKER_TARGETS=$(notdir $@) BLDENV=bullseye -f Makefile.work bullseye
|
||||
endif
|
||||
BLDENV=bullseye $(MAKE) -f Makefile.work docker-cleanup
|
||||
ifeq ($(NOBOOKWORM), 0)
|
||||
$(MAKE_WITH_RETRY) BLDENV=bookworm -f Makefile.work $@
|
||||
endif
|
||||
BLDENV=bookworm $(MAKE) -f Makefile.work docker-cleanup
|
||||
|
||||
jessie:
|
||||
@echo "+++ Making $@ +++"
|
||||
@ -69,6 +77,12 @@ ifeq ($(NOBUSTER), 0)
|
||||
$(MAKE) -f Makefile.work buster
|
||||
endif
|
||||
|
||||
bullseye:
|
||||
@echo "+++ Making $@ +++"
|
||||
ifeq ($(NOBUSTER), 0)
|
||||
$(MAKE) -f Makefile.work bullseye
|
||||
endif
|
||||
|
||||
init:
|
||||
@echo "+++ Making $@ +++"
|
||||
$(MAKE) -f Makefile.work $@
|
||||
@ -82,6 +96,7 @@ define make_work
|
||||
$(if $(BUILD_STRETCH),BLDENV=stretch $(MAKE) -f Makefile.work $@,)
|
||||
$(if $(BUILD_BUSTER),BLDENV=buster $(MAKE) -f Makefile.work $@,)
|
||||
$(if $(BUILD_BULLSEYE),BLDENV=bullseye $(MAKE) -f Makefile.work $@,)
|
||||
$(if $(BUILD_BOOKWORM),BLDENV=bookworm $(MAKE) -f Makefile.work $@,)
|
||||
endef
|
||||
|
||||
.PHONY: $(PLATFORM_PATH)
|
||||
|
@ -78,7 +78,8 @@ 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-slave-stretch/Dockerfile.j2 sonic-slave-stretch/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
|
||||
|
||||
|
||||
|
||||
@ -357,6 +358,22 @@ define SAVE_CACHE
|
||||
$(if $(call CHECK_WCACHE_ENABLED,$(1)), $(call SAVE_INTO_CACHE,$(1),$(2)))
|
||||
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.
|
||||
@ -384,11 +401,17 @@ $(foreach pkg, $(SONIC_INSTALL_PKGS), \
|
||||
$(eval $(pkg)_DST_PATH := $(if $($(pkg)_DST_PATH), $($(pkg)_DST_PATH), $(FSROOT_PATH))) \
|
||||
$(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
|
||||
$(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_DOCKER_IMAGES) $(SONIC_DOCKER_DBG_IMAGES) $(SONIC_INSTALL_PKGS), \
|
||||
$(SONIC_DOCKER_IMAGES) $(SONIC_DOCKER_DBG_IMAGES) $(SONIC_INSTALL_PKGS) $(SONIC_RFS_TARGETS), \
|
||||
$(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)_DEP_FLAGS_FILE:=$($(pkg)_DST_PATH)/$(pkg).flags) \
|
||||
@ -489,6 +512,7 @@ $(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_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_RFS_TARGETS), $(TARGET_PATH),flags))
|
||||
|
||||
|
||||
|
||||
@ -564,10 +588,12 @@ ALL_DEP_FILES_LIST += $(foreach pkg,$(2), $($(filter none,$($(1)_CACHE_MODE)), \
|
||||
$(addsuffix .$(3).sha,$(addprefix $(pkg)/, $(1)))))
|
||||
$(foreach docker, $(filter $(SONIC_DOCKER_IMAGES), $(1)), \
|
||||
$(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)), \
|
||||
$(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) : \
|
||||
$(2)/%.flags $$$$($$$$*_DEP_FILES) $$$$(if $$$$($$$$*_SMDEP_FILES), $(2)/%.smdep)
|
||||
@$$(eval $$*_DEP_FILES_MODIFIED := $$? )
|
||||
@ -583,6 +609,7 @@ $(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_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_RFS_TARGETS), $(TARGET_PATH),dep))
|
||||
|
||||
|
||||
|
||||
@ -616,6 +643,7 @@ SONIC_CACHE_CLEAN_TARGETS = $(addsuffix -clean,$(addprefix $(TARGET_PATH)/, \
|
||||
$(SONIC_DOCKER_IMAGES) \
|
||||
$(SONIC_DOCKER_DBG_IMAGES) \
|
||||
$(SONIC_SIMPLE_DOCKER_IMAGES) \
|
||||
$(SONIC_RFS_TARGETS) \
|
||||
$(SONIC_INSTALLERS)))
|
||||
$(SONIC_CACHE_CLEAN_TARGETS) :: $(TARGET_PATH)/%-clean : .platform
|
||||
@rm -f $($*_DEP_FLAGS_FILE) $($*_MOD_HASH_FILE) $($*_SMOD_HASH_FILE) \
|
||||
|
@ -40,6 +40,9 @@
|
||||
# * ENABLE_NATIVE_WRITE: Enable native write/config operations via the gNMI interface.
|
||||
# * Default: unset
|
||||
# * 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_SOURCE: Debian package cache location when cache enabled for debian packages
|
||||
# * BUILD_LOG_TIMESTAMP: Set timestamp in the build log (simple/none)
|
||||
@ -69,6 +72,7 @@ USER := $(shell id -un)
|
||||
PWD := $(shell pwd)
|
||||
USER_LC := $(shell echo $(USER) | tr A-Z a-z)
|
||||
DOCKER_MACHINE := $(shell docker run --rm debian:buster uname -m)
|
||||
HOST_DOCKERD_GID := $(shell getent group docker | cut -d : -f3)
|
||||
|
||||
comma := ,
|
||||
|
||||
@ -121,7 +125,9 @@ else
|
||||
TARGET_BOOTLOADER = uboot
|
||||
endif
|
||||
|
||||
ifeq ($(BLDENV), bullseye)
|
||||
ifeq ($(BLDENV), bookworm)
|
||||
SLAVE_DIR = sonic-slave-bookworm
|
||||
else ifeq ($(BLDENV), bullseye)
|
||||
SLAVE_DIR = sonic-slave-bullseye
|
||||
else ifeq ($(BLDENV), buster)
|
||||
SLAVE_DIR = sonic-slave-buster
|
||||
@ -147,6 +153,10 @@ ifeq ($(ENABLE_DOCKER_BASE_PULL),)
|
||||
override ENABLE_DOCKER_BASE_PULL = n
|
||||
endif
|
||||
|
||||
ifeq ($(LEGACY_SONIC_MGMT_DOCKER),)
|
||||
override LEGACY_SONIC_MGMT_DOCKER = y
|
||||
endif
|
||||
|
||||
ifneq ($(GZ_COMPRESS_PROGRAM), pigz)
|
||||
override GZ_COMPRESS_PROGRAM = gzip
|
||||
endif
|
||||
@ -176,13 +186,19 @@ DOCKER_ROOT = $(PWD)/fsroot.docker.$(BLDENV)
|
||||
|
||||
# Support FIPS feature, armhf not supported yet
|
||||
ifeq ($(PLATFORM_ARCH),armhf)
|
||||
ENABLE_FIPS_FEATURE := n
|
||||
INCLUDE_FIPS := n
|
||||
ENABLE_FIPS := n
|
||||
endif
|
||||
|
||||
ifeq ($(ENABLE_FIPS_FEATURE), n)
|
||||
# FIPS not yet available on Bookworm
|
||||
ifeq ($(BLDENV),bookworm)
|
||||
$(warning FIPS support not yet available on Bookworm)
|
||||
INCLUDE_FIPS := n
|
||||
endif
|
||||
|
||||
ifeq ($(INCLUDE_FIPS), n)
|
||||
ifeq ($(ENABLE_FIPS), y)
|
||||
$(error Cannot set fips config ENABLE_FIPS=y when ENABLE_FIPS_FEATURE=n)
|
||||
$(error Cannot set fips config ENABLE_FIPS=y when INCLUDE_FIPS=n)
|
||||
endif
|
||||
endif
|
||||
|
||||
@ -203,13 +219,14 @@ $(shell \
|
||||
SONIC_VERSION_CACHE_SOURCE=$(SONIC_VERSION_CACHE_SOURCE) \
|
||||
DBGOPT='$(DBGOPT)' \
|
||||
MIRROR_SNAPSHOT=$(MIRROR_SNAPSHOT) \
|
||||
PIP_HTTP_TIMEOUT=$(PIP_HTTP_TIMEOUT) \
|
||||
scripts/generate_buildinfo_config.sh)
|
||||
|
||||
# Generate the slave Dockerfile, and prepare build info for it
|
||||
$(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) \
|
||||
MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) \
|
||||
CROSS_BUILD_ENVIRON=$(CROSS_BUILD_ENVIRON) \
|
||||
ENABLE_FIPS_FEATURE=$(ENABLE_FIPS_FEATURE) \
|
||||
INCLUDE_FIPS=$(INCLUDE_FIPS) \
|
||||
DOCKER_EXTRA_OPTS=$(DOCKER_EXTRA_OPTS) \
|
||||
DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) \
|
||||
GZ_COMPRESS_PROGRAM=$(GZ_COMPRESS_PROGRAM) \
|
||||
@ -220,10 +237,18 @@ $(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) \
|
||||
CROSS_BUILD_ENVIRON=$(CROSS_BUILD_ENVIRON) \
|
||||
j2 $(SLAVE_DIR)/Dockerfile.user.j2 > $(SLAVE_DIR)/Dockerfile.user)
|
||||
|
||||
ifeq ($(CROSS_BUILD_ENVIRON), y)
|
||||
$(shell SONIC_VERSION_CONTROL_COMPONENTS=$(SONIC_VERSION_CONTROL_COMPONENTS) \
|
||||
MIRROR_SNAPSHOT=$(MIRROR_SNAPSHOT) scripts/build_mirror_config.sh $(SLAVE_DIR) amd64 $(BLDENV))
|
||||
endif
|
||||
$(shell SONIC_VERSION_CONTROL_COMPONENTS=$(SONIC_VERSION_CONTROL_COMPONENTS) \
|
||||
MIRROR_SNAPSHOT=$(MIRROR_SNAPSHOT) scripts/build_mirror_config.sh $(SLAVE_DIR) $(CONFIGURED_ARCH) $(BLDENV))
|
||||
|
||||
PREPARE_DOCKER=BUILD_SLAVE=y \
|
||||
DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) \
|
||||
SONIC_VERSION_CACHE=$(SONIC_VERSION_CACHE) \
|
||||
DBGOPT='$(DBGOPT)' \
|
||||
MIRROR_SNAPSHOT=$(MIRROR_SNAPSHOT) \
|
||||
scripts/prepare_docker_buildinfo.sh \
|
||||
$(SLAVE_BASE_IMAGE) \
|
||||
$(SLAVE_DIR)/Dockerfile \
|
||||
@ -245,6 +270,7 @@ SLAVE_BASE_TAG = $(shell \
|
||||
SLAVE_TAG = $(shell \
|
||||
(cat $(SLAVE_DIR)/Dockerfile.user \
|
||||
$(SLAVE_DIR)/Dockerfile \
|
||||
$(SLAVE_DIR)/sources.list.* \
|
||||
$(SLAVE_DIR)/buildinfo/versions/versions-* \
|
||||
&& echo $(USER)/$(PWD)/$(CONFIGURED_PLATFORM)) \
|
||||
| sha1sum \
|
||||
@ -275,7 +301,7 @@ endif
|
||||
DOCKER_LOCKFILE_SAVE := $(DOCKER_LOCKDIR)/docker_save.lock
|
||||
$(shell mkdir -m 0777 -p $(DOCKER_LOCKDIR))
|
||||
$(shell [ -f $(DOCKER_LOCKFILE_SAVE) ] || (touch $(DOCKER_LOCKFILE_SAVE) && chmod 0777 $(DOCKER_LOCKFILE_SAVE)))
|
||||
$(docker run --rm -v $(DOCKER_ROOT)\:/mount alpine sh -c 'rm -rf /mount/')
|
||||
$(shell [ -d $(DOCKER_ROOT) ] && docker run --rm -v $(DOCKER_ROOT)\:/mount debian sh -c 'rm -rf /mount/*')
|
||||
$(mkdir -p $(DOCKER_ROOT))
|
||||
|
||||
ifeq ($(DOCKER_BUILDER_MOUNT),)
|
||||
@ -313,15 +339,13 @@ endif
|
||||
ifneq ($(SECURE_UPGRADE_DEV_SIGNING_KEY),)
|
||||
DOCKER_RUN += -v $(SECURE_UPGRADE_DEV_SIGNING_KEY):$(SECURE_UPGRADE_DEV_SIGNING_KEY):ro
|
||||
endif
|
||||
ifneq ($(SECURE_UPGRADE_DEV_SIGNING_CERT),)
|
||||
DOCKER_RUN += -v $(SECURE_UPGRADE_DEV_SIGNING_CERT):$(SECURE_UPGRADE_DEV_SIGNING_CERT):ro
|
||||
ifneq ($(SECURE_UPGRADE_SIGNING_CERT),)
|
||||
DOCKER_RUN += -v $(SECURE_UPGRADE_SIGNING_CERT):$(SECURE_UPGRADE_SIGNING_CERT):ro
|
||||
endif
|
||||
# Mount the Signing prod tool in the slave container
|
||||
$(info "SECURE_UPGRADE_PROD_SIGNING_TOOL": "$(SECURE_UPGRADE_PROD_SIGNING_TOOL)")
|
||||
ifneq ($(SECURE_UPGRADE_PROD_SIGNING_TOOL),)
|
||||
SECURE_UPGRADE_PROD_SIGNING_TOOL_DST = /sonic/scripts/$(shell basename -- $(SECURE_UPGRADE_PROD_SIGNING_TOOL))
|
||||
DOCKER_RUN += -v $(SECURE_UPGRADE_PROD_SIGNING_TOOL):$(SECURE_UPGRADE_PROD_SIGNING_TOOL_DST):ro
|
||||
SECURE_UPGRADE_PROD_SIGNING_TOOL := $(SECURE_UPGRADE_PROD_SIGNING_TOOL_DST)
|
||||
DOCKER_RUN += -v $(SECURE_UPGRADE_PROD_SIGNING_TOOL):/sonic/scripts/$(shell basename -- $(SECURE_UPGRADE_PROD_SIGNING_TOOL)):ro
|
||||
endif
|
||||
|
||||
ifneq ($(SONIC_DPKG_CACHE_SOURCE),)
|
||||
@ -369,7 +393,7 @@ endif
|
||||
|
||||
ifeq ($(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD), y)
|
||||
ifneq ($(MULTIARCH_QEMU_ENVIRON), y)
|
||||
DOCKER_RUN += -v /var/run/docker.sock:/var/run/docker.sock
|
||||
DOCKER_RUN += -v /var/run/docker.sock:/var/run/docker.sock --group-add $(HOST_DOCKERD_GID)
|
||||
endif
|
||||
endif
|
||||
|
||||
@ -414,7 +438,7 @@ endif
|
||||
|
||||
endif
|
||||
|
||||
SPLIT_LOG = | tee
|
||||
SPLIT_LOG = 2>&1 | tee
|
||||
|
||||
DOCKER_BASE_LOG = $(SLAVE_DIR)/$(SLAVE_BASE_IMAGE)_$(SLAVE_BASE_TAG).log
|
||||
DOCKER_LOG = $(SLAVE_DIR)/$(SLAVE_IMAGE)_$(SLAVE_TAG).log
|
||||
@ -431,7 +455,7 @@ DOCKER_SLAVE_BASE_BUILD = docker build --no-cache \
|
||||
$(SPLIT_LOG) $(DOCKER_BASE_LOG)
|
||||
|
||||
DOCKER_BASE_PULL = docker pull \
|
||||
$(REGISTRY_SERVER):$(REGISTRY_PORT)/$(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG)
|
||||
$(REGISTRY_SERVER):$(REGISTRY_PORT)$(REGISTRY_SERVER_PATH)/$(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG)
|
||||
|
||||
DOCKER_USER_BUILD = docker build --no-cache \
|
||||
--build-arg user=$(USER) \
|
||||
@ -457,7 +481,7 @@ DOCKER_SLAVE_BASE_PULL_REGISTRY = \
|
||||
$(DOCKER_BASE_PULL); \
|
||||
} && \
|
||||
{ \
|
||||
docker tag $(REGISTRY_SERVER):$(REGISTRY_PORT)/$(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) && \
|
||||
docker tag $(REGISTRY_SERVER):$(REGISTRY_PORT)$(REGISTRY_SERVER_PATH)/$(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) && \
|
||||
$(COLLECT_DOCKER); \
|
||||
}\
|
||||
|
||||
@ -531,20 +555,24 @@ SONIC_BUILD_INSTRUCTION := $(MAKE) \
|
||||
DOCKER_LOCKFILE_SAVE=$(DOCKER_LOCKFILE_SAVE) \
|
||||
SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD=$(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD) \
|
||||
SONIC_INCLUDE_SYSTEM_TELEMETRY=$(INCLUDE_SYSTEM_TELEMETRY) \
|
||||
SONIC_INCLUDE_SYSTEM_GNMI=$(INCLUDE_SYSTEM_GNMI) \
|
||||
INCLUDE_DHCP_RELAY=$(INCLUDE_DHCP_RELAY) \
|
||||
INCLUDE_DHCP_SERVER=$(INCLUDE_DHCP_SERVER) \
|
||||
INCLUDE_MACSEC=$(INCLUDE_MACSEC) \
|
||||
SONIC_INCLUDE_RESTAPI=$(INCLUDE_RESTAPI) \
|
||||
SONIC_INCLUDE_MUX=$(INCLUDE_MUX) \
|
||||
ENABLE_TRANSLIB_WRITE=$(ENABLE_TRANSLIB_WRITE) \
|
||||
ENABLE_NATIVE_WRITE=$(ENABLE_NATIVE_WRITE) \
|
||||
ENABLE_DIALOUT=$(ENABLE_DIALOUT) \
|
||||
EXTRA_DOCKER_TARGETS=$(EXTRA_DOCKER_TARGETS) \
|
||||
BUILD_LOG_TIMESTAMP=$(BUILD_LOG_TIMESTAMP) \
|
||||
SONIC_ENABLE_IMAGE_SIGNATURE=$(ENABLE_IMAGE_SIGNATURE) \
|
||||
SONIC_ENABLE_SECUREBOOT_SIGNATURE=$(SONIC_ENABLE_SECUREBOOT_SIGNATURE) \
|
||||
SECURE_UPGRADE_MODE=$(SECURE_UPGRADE_MODE) \
|
||||
SECURE_UPGRADE_DEV_SIGNING_KEY=$(SECURE_UPGRADE_DEV_SIGNING_KEY) \
|
||||
SECURE_UPGRADE_DEV_SIGNING_CERT=$(SECURE_UPGRADE_DEV_SIGNING_CERT) \
|
||||
SECURE_UPGRADE_SIGNING_CERT=$(SECURE_UPGRADE_SIGNING_CERT) \
|
||||
SECURE_UPGRADE_PROD_SIGNING_TOOL=$(SECURE_UPGRADE_PROD_SIGNING_TOOL) \
|
||||
SECURE_UPGRADE_PROD_TOOL_ARGS=$(SECURE_UPGRADE_PROD_TOOL_ARGS) \
|
||||
SONIC_DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) \
|
||||
ENABLE_HOST_SERVICE_ON_START=$(ENABLE_HOST_SERVICE_ON_START) \
|
||||
SLAVE_DIR=$(SLAVE_DIR) \
|
||||
@ -553,13 +581,18 @@ SONIC_BUILD_INSTRUCTION := $(MAKE) \
|
||||
ENABLE_ASAN=$(ENABLE_ASAN) \
|
||||
SONIC_INCLUDE_BOOTCHART=$(INCLUDE_BOOTCHART) \
|
||||
SONIC_ENABLE_BOOTCHART=$(ENABLE_BOOTCHART) \
|
||||
ENABLE_FIPS_FEATURE=$(ENABLE_FIPS_FEATURE) \
|
||||
INCLUDE_FIPS=$(INCLUDE_FIPS) \
|
||||
ENABLE_FIPS=$(ENABLE_FIPS) \
|
||||
SONIC_SLAVE_DOCKER_DRIVER=$(SONIC_SLAVE_DOCKER_DRIVER) \
|
||||
MIRROR_URLS=$(MIRROR_URLS) \
|
||||
MIRROR_SECURITY_URLS=$(MIRROR_SECURITY_URLS) \
|
||||
GZ_COMPRESS_PROGRAM=$(GZ_COMPRESS_PROGRAM) \
|
||||
MIRROR_SNAPSHOT=$(MIRROR_SNAPSHOT) \
|
||||
SONIC_VERSION_CONTROL_COMPONENTS=$(SONIC_VERSION_CONTROL_COMPONENTS) \
|
||||
ONIE_IMAGE_PART_SIZE=$(ONIE_IMAGE_PART_SIZE) \
|
||||
SONIC_OS_VERSION=$(SONIC_OS_VERSION) \
|
||||
PIP_HTTP_TIMEOUT=$(PIP_HTTP_TIMEOUT) \
|
||||
LEGACY_SONIC_MGMT_DOCKER=$(LEGACY_SONIC_MGMT_DOCKER) \
|
||||
$(SONIC_OVERRIDE_BUILD_VARS)
|
||||
|
||||
.PHONY: sonic-slave-build sonic-slave-bash init reset
|
||||
@ -580,7 +613,9 @@ endif
|
||||
|
||||
export MIRROR_URLS
|
||||
export MIRROR_SECURITY_URLS
|
||||
export MIRROR_SNAPSHOT
|
||||
export SONIC_VERSION_CONTROL_COMPONENTS
|
||||
export PIP_HTTP_TIMEOUT
|
||||
|
||||
%:: | sonic-build-hooks
|
||||
ifneq ($(filter y, $(MULTIARCH_QEMU_ENVIRON) $(CROSS_BUILD_ENVIRON)),)
|
||||
@ -607,8 +642,6 @@ sonic-build-hooks:
|
||||
$(Q)pushd src/sonic-build-hooks; TRUSTED_GPG_URLS=$(TRUSTED_GPG_URLS) $(MAKE) all; popd
|
||||
$(Q)mkdir -p $(SLAVE_DIR)/buildinfo
|
||||
$(Q)cp src/sonic-build-hooks/buildinfo/sonic-build-hooks* $(SLAVE_DIR)/buildinfo
|
||||
$(Q)if [ "$(MULTIARCH_QEMU_ENVIRON)" == y ]; then scripts/build_mirror_config.sh $(SLAVE_DIR) amd64 $(BLDENV); fi
|
||||
$(Q)scripts/build_mirror_config.sh $(SLAVE_DIR) $(CONFIGURED_ARCH) $(BLDENV)
|
||||
|
||||
sonic-slave-base-build : | sonic-build-hooks
|
||||
ifeq ($(MULTIARCH_QEMU_ENVIRON), y)
|
||||
|
35
README.md
35
README.md
@ -7,9 +7,34 @@
|
||||
[![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)
|
||||
[![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)
|
||||
[![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*:
|
||||
|
||||
[![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)
|
||||
@ -106,6 +131,7 @@ pip3 install --user j2cli
|
||||
system to allow running the 'docker' command without 'sudo':
|
||||
* 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
|
||||
* 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
|
||||
> system, remove it and also remove docker from snap before reinstallating docker.
|
||||
@ -162,9 +188,6 @@ The supported ASIC vendors are:
|
||||
|
||||
## Usage for ARM Architecture
|
||||
|
||||
ARM build has dependency in docker version 18.
|
||||
If docker version is 19, downgrade to 18 with:
|
||||
|
||||
```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-cli=5:18.09.0~3-0~ubuntu-xenial
|
||||
@ -227,7 +250,7 @@ make configure PLATFORM=marvell-arm64 PLATFORM_ARCH=arm64
|
||||
`/usr/bin/tar: /path/to/sonic-buildimage/<some_file>:
|
||||
Cannot write: No space left on device`
|
||||
|
||||
The solution is to [move the directory](https://linuxconfig.org/how-to-move-docker-s-default-var-lib-docker-to-another-directory-on-ubuntu-debian-linux)
|
||||
The solution is to [move the directory](https://www.ibm.com/docs/en/z-logdata-analytics/5.1.0?topic=compose-relocating-docker-root-directory)
|
||||
to a partition with more free space.
|
||||
* Use
|
||||
`http_proxy=[your_proxy] https_proxy=[your_proxy] no_proxy=[your_no_proxy] make`
|
||||
@ -328,6 +351,10 @@ on the SAI version for each SONiC release.
|
||||
[managing, configuring and monitoring SONiC](https://github.com/sonic-net/sonic-mgmt)
|
||||
(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
|
||||
|
||||
All contributors must sign a contribution license agreement before contributions
|
||||
|
@ -28,6 +28,7 @@ resources:
|
||||
- repository: sonic-mgmt
|
||||
type: github
|
||||
name: sonic-net/sonic-mgmt
|
||||
ref: master
|
||||
endpoint: sonic-net
|
||||
- repository: buildimage
|
||||
type: github
|
||||
@ -41,7 +42,7 @@ variables:
|
||||
- name: CACHE_MODE
|
||||
value: rcache
|
||||
- name: ENABLE_FIPS
|
||||
value: y
|
||||
value: n
|
||||
|
||||
stages:
|
||||
- stage: BuildVS
|
||||
@ -49,14 +50,12 @@ stages:
|
||||
jobs:
|
||||
- template: .azure-pipelines/azure-pipelines-build.yml
|
||||
parameters:
|
||||
buildOptions: 'USERNAME=admin SONIC_BUILD_JOBS=$(nproc) BUILD_MULTIASIC_KVM=y ${{ variables.VERSION_CONTROL_OPTIONS }}'
|
||||
buildOptions: 'USERNAME=admin SONIC_BUILD_JOBS=$(nproc) BUILD_MULTIASIC_KVM=y INCLUDE_DHCP_SERVER=y ${{ variables.VERSION_CONTROL_OPTIONS }}'
|
||||
jobGroups:
|
||||
- name: vs
|
||||
|
||||
- stage: Build
|
||||
pool: sonicbld
|
||||
variables:
|
||||
INSTALL_DEBUG_TOOLS: y
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: .azure-pipelines/azure-pipelines-build.yml
|
||||
@ -66,18 +65,28 @@ stages:
|
||||
- name: broadcom
|
||||
variables:
|
||||
swi_image: yes
|
||||
INCLUDE_RESTAPI: y
|
||||
- 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
|
||||
pool: sonicbld-armhf
|
||||
timeoutInMinutes: 1200
|
||||
variables:
|
||||
PLATFORM_ARCH: armhf
|
||||
INCLUDE_RESTAPI: y
|
||||
|
||||
- stage: Test
|
||||
dependsOn: BuildVS
|
||||
condition: and(succeeded(), and(ne(stageDependencies.BuildVS.outputs['vs.SetVar.SKIP_VSTEST'], 'YES'), in(dependencies.BuildVS.result, 'Succeeded', 'SucceededWithIssues')))
|
||||
variables:
|
||||
- group: Testbed-Tools
|
||||
- group: SONiC-Elastictest
|
||||
- name: inventory
|
||||
value: veos_vtb
|
||||
- name: testbed_file
|
||||
@ -104,27 +113,30 @@ stages:
|
||||
sudo rm -rf ../*.deb
|
||||
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
|
||||
inputs:
|
||||
artifact: sonic-buildimage.vs
|
||||
displayName: "Download sonic-buildimage.vs artifact"
|
||||
|
||||
- script: |
|
||||
set -x
|
||||
sudo src/sonic-swss-common/.azure-pipelines/build_and_install_module.sh
|
||||
displayName: "Install kernel modules"
|
||||
|
||||
- script: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libyang0.16 -y
|
||||
sudo dpkg -i --force-confask,confnew ../libswsscommon_1.0.0_amd64.deb
|
||||
sudo dpkg -i ../python3-swsscommon_1.0.0_amd64.deb
|
||||
sudo apt-get install -y make libtool m4 autoconf dh-exec debhelper cmake pkg-config \
|
||||
libhiredis-dev libnl-3-dev libnl-genl-3-dev libnl-route-3-dev libnl-nf-3-dev swig \
|
||||
libpython2.7-dev libboost-dev libboost-serialization-dev uuid-dev libzmq5 libzmq3-dev python3-pip \
|
||||
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
|
||||
docker tag docker-sonic-vs:latest docker-sonic-vs:$(Build.BuildNumber)
|
||||
username=$(id -un)
|
||||
@ -143,235 +155,116 @@ stages:
|
||||
testResultsFiles: '**/tr.xml'
|
||||
testRunTitle: vstest
|
||||
|
||||
- job: t0_part1
|
||||
pool: sonictest
|
||||
displayName: "kvmtest-t0-part1"
|
||||
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-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
|
||||
- job: t0_elastictest
|
||||
pool: ubuntu-20.04
|
||||
displayName: "kvmtest-t0 by TestbedV2"
|
||||
displayName: "kvmtest-t0 by Elastictest"
|
||||
timeoutInMinutes: 240
|
||||
condition: and(succeeded(), eq(variables.BUILD_IMG_RUN_TESTBEDV2_TEST, 'YES'))
|
||||
continueOnError: false
|
||||
steps:
|
||||
- template: .azure-pipelines/run-test-scheduler-template.yml
|
||||
- template: .azure-pipelines/run-test-elastictest-template.yml@sonic-mgmt
|
||||
parameters:
|
||||
TOPOLOGY: t0
|
||||
MIN_WORKER: $(T0_INSTANCE_NUM)
|
||||
MAX_WORKER: $(T0_INSTANCE_NUM)
|
||||
MGMT_BRANCH: "master"
|
||||
|
||||
- job: t0_2vlans_testbedv2
|
||||
- job: t0_2vlans_elastictest
|
||||
pool: ubuntu-20.04
|
||||
displayName: "kvmtest-t0-2vlans by TestbedV2"
|
||||
displayName: "kvmtest-t0-2vlans by Elastictest"
|
||||
timeoutInMinutes: 240
|
||||
condition: and(succeeded(), eq(variables.BUILD_IMG_RUN_TESTBEDV2_TEST, 'YES'))
|
||||
continueOnError: false
|
||||
steps:
|
||||
- template: .azure-pipelines/run-test-scheduler-template.yml
|
||||
- template: .azure-pipelines/run-test-elastictest-template.yml@sonic-mgmt
|
||||
parameters:
|
||||
TOPOLOGY: t0
|
||||
TEST_SET: t0-2vlans
|
||||
MIN_WORKER: $(T0_2VLANS_INSTANCE_NUM)
|
||||
MAX_WORKER: $(T0_2VLANS_INSTANCE_NUM)
|
||||
MGMT_BRANCH: "master"
|
||||
DEPLOY_MG_EXTRA_PARAMS: "-e vlan_config=two_vlan_a"
|
||||
|
||||
- job:
|
||||
pool:
|
||||
vmImage: 'ubuntu-20.04'
|
||||
displayName: "kvmtest-t0"
|
||||
dependsOn:
|
||||
- t0_part1
|
||||
- t0_part2
|
||||
- t0_testbedv2
|
||||
- t0_2vlans_testbedv2
|
||||
condition: always()
|
||||
continueOnError: false
|
||||
variables:
|
||||
resultOfPart1: $[ dependencies.t0_part1.result ]
|
||||
resultOfPart2: $[ dependencies.t0_part2.result ]
|
||||
resultOfT0TestbedV2: $[ dependencies.t0_testbedv2.result ]
|
||||
resultOfT02VlansTestbedV2: $[ dependencies.t0_2vlans_testbedv2.result ]
|
||||
|
||||
steps:
|
||||
- script: |
|
||||
if [ $(resultOfT0TestbedV2) == "Succeeded" ] && [ $(resultOfT02VlansTestbedV2) == "Succeeded" ]; then
|
||||
echo "TestbedV2 t0 passed."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ $(resultOfPart1) == "Succeeded" ] && [ $(resultOfPart2) == "Succeeded" ]; then
|
||||
echo "Classic t0 jobs(both part1 and part2) passed."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Both classic and TestbedV2 t0 jobs failed! Please check the detailed information. (Any of them passed, t0 will be considered as passed)"
|
||||
exit 1
|
||||
|
||||
|
||||
- job: t1_lag_classic
|
||||
pool: sonictest-t1-lag
|
||||
displayName: "kvmtest-t1-lag classic"
|
||||
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-03
|
||||
tbname: vms-kvm-t1-lag
|
||||
ptf_name: ptf_vms6-2
|
||||
tbtype: t1-lag
|
||||
vmtype: ceos
|
||||
|
||||
- job: t1_lag_testbedv2
|
||||
- job: t1_lag_elastictest
|
||||
pool: ubuntu-20.04
|
||||
displayName: "kvmtest-t1-lag by TestbedV2"
|
||||
displayName: "kvmtest-t1-lag by Elastictest"
|
||||
timeoutInMinutes: 240
|
||||
condition: and(succeeded(), eq(variables.BUILD_IMG_RUN_TESTBEDV2_TEST, 'YES'))
|
||||
continueOnError: false
|
||||
steps:
|
||||
- template: .azure-pipelines/run-test-scheduler-template.yml
|
||||
- template: .azure-pipelines/run-test-elastictest-template.yml@sonic-mgmt
|
||||
parameters:
|
||||
TOPOLOGY: t1-lag
|
||||
MIN_WORKER: $(T1_LAG_INSTANCE_NUM)
|
||||
MAX_WORKER: $(T1_LAG_INSTANCE_NUM)
|
||||
MGMT_BRANCH: "master"
|
||||
|
||||
- job:
|
||||
pool:
|
||||
vmImage: 'ubuntu-20.04'
|
||||
displayName: "kvmtest-t1-lag"
|
||||
dependsOn:
|
||||
- t1_lag_classic
|
||||
- t1_lag_testbedv2
|
||||
condition: always()
|
||||
continueOnError: false
|
||||
variables:
|
||||
resultOfClassic: $[ dependencies.t1_lag_classic.result ]
|
||||
resultOfTestbedV2: $[ dependencies.t1_lag_testbedv2.result ]
|
||||
steps:
|
||||
- script: |
|
||||
if [ $(resultOfClassic) == "Succeeded" ] || [ $(resultOfTestbedV2) == "Succeeded" ]; then
|
||||
echo "One or both of t1_lag_classic and t1_lag_testbedv2 passed."
|
||||
exit 0
|
||||
else
|
||||
echo "Both t1_lag_classic and t1_lag_testbedv2 failed! Please check the detailed information."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- job:
|
||||
pool: sonictest-sonic-t0
|
||||
displayName: "kvmtest-t0-sonic"
|
||||
timeoutInMinutes: 360
|
||||
condition: and(succeeded(), eq(variables.BUILD_IMG_RUN_CLASSICAL_TEST, 'YES'))
|
||||
continueOnError: true
|
||||
steps:
|
||||
- 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: true
|
||||
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"
|
||||
- job: multi_asic_elastictest
|
||||
displayName: "kvmtest-multi-asic-t1-lag by Elastictest"
|
||||
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
|
||||
- template: .azure-pipelines/run-test-elastictest-template.yml@sonic-mgmt
|
||||
parameters:
|
||||
TOPOLOGY: t1-8-lag
|
||||
TEST_SET: multi-asic-t1-lag
|
||||
MIN_WORKER: $(MULTI_ASIC_INSTANCE_NUM)
|
||||
MAX_WORKER: $(MULTI_ASIC_INSTANCE_NUM)
|
||||
NUM_ASIC: 4
|
||||
MGMT_BRANCH: "master"
|
||||
|
||||
- job: dualtor_testbedv2
|
||||
- job: dualtor_elastictest
|
||||
pool: ubuntu-20.04
|
||||
displayName: "kvmtest-dualtor-t0 by TestbedV2"
|
||||
displayName: "kvmtest-dualtor-t0 by Elastictest"
|
||||
timeoutInMinutes: 240
|
||||
condition: and(succeeded(), eq(variables.BUILD_IMG_RUN_TESTBEDV2_TEST, 'YES'))
|
||||
continueOnError: false
|
||||
steps:
|
||||
- template: .azure-pipelines/run-test-scheduler-template.yml
|
||||
- template: .azure-pipelines/run-test-elastictest-template.yml@sonic-mgmt
|
||||
parameters:
|
||||
TOPOLOGY: dualtor
|
||||
MIN_WORKER: $(T0_DUALTOR_INSTANCE_NUM)
|
||||
MAX_WORKER: $(T0_DUALTOR_INSTANCE_NUM)
|
||||
MGMT_BRANCH: "master"
|
||||
COMMON_EXTRA_PARAMS: "--disable_loganalyzer "
|
||||
|
||||
- job: sonic_t0_testbedv2
|
||||
displayName: "kvmtest-t0-sonic by TestbedV2"
|
||||
- job: sonic_t0_elastictest
|
||||
displayName: "kvmtest-t0-sonic by Elastictest"
|
||||
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
|
||||
- template: .azure-pipelines/run-test-elastictest-template.yml@sonic-mgmt
|
||||
parameters:
|
||||
TOPOLOGY: t0-64-32
|
||||
MIN_WORKER: $(T0_SONIC_INSTANCE_NUM)
|
||||
MAX_WORKER: $(T0_SONIC_INSTANCE_NUM)
|
||||
TEST_SET: t0-sonic
|
||||
COMMON_EXTRA_PARAMS: "--neighbor_type=sonic --enable_macsec --macsec_profile=128_SCI,256_XPN_SCI"
|
||||
MGMT_BRANCH: "master"
|
||||
COMMON_EXTRA_PARAMS: "--neighbor_type=sonic "
|
||||
VM_TYPE: vsonic
|
||||
SPECIFIED_PARAMS: '{\"test_pretest.py\":[\"--completeness_level=confident\",\"--allow_recover\"],\"test_posttest.py\":[\"--completeness_level=confident\",\"--allow_recover\"]}'
|
||||
|
||||
- job: wan_testbedv2
|
||||
displayName: "kvmtest-wan by TestbedV2"
|
||||
pool: ubuntu-20.04
|
||||
- job: dpu_elastictest
|
||||
displayName: "kvmtest-dpu by Elastictest"
|
||||
timeoutInMinutes: 240
|
||||
condition: and(succeeded(), eq(variables.BUILD_IMG_RUN_TESTBEDV2_TEST, 'YES'))
|
||||
continueOnError: false
|
||||
pool: ubuntu-20.04
|
||||
steps:
|
||||
- template: .azure-pipelines/run-test-scheduler-template.yml
|
||||
- template: .azure-pipelines/run-test-elastictest-template.yml@sonic-mgmt
|
||||
parameters:
|
||||
TOPOLOGY: wan-pub
|
||||
MIN_WORKER: $(WAN_INSTANCE_NUM)
|
||||
MAX_WORKER: $(WAN_INSTANCE_NUM)
|
||||
COMMON_EXTRA_PARAMS: "--skip_sanity "
|
||||
TOPOLOGY: dpu
|
||||
MIN_WORKER: $(T0_SONIC_INSTANCE_NUM)
|
||||
MAX_WORKER: $(T0_SONIC_INSTANCE_NUM)
|
||||
KVM_IMAGE_BRANCH: "master"
|
||||
MGMT_BRANCH: "master"
|
||||
|
||||
|
||||
# - 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 "
|
||||
|
263
build_debian.sh
263
build_debian.sh
@ -31,9 +31,9 @@ set -x -e
|
||||
CONFIGURED_ARCH=$([ -f .arch ] && cat .arch || echo amd64)
|
||||
|
||||
## docker engine version (with platform)
|
||||
DOCKER_VERSION=5:20.10.14~3-0~debian-$IMAGE_DISTRO
|
||||
CONTAINERD_IO_VERSION=1.5.11-1
|
||||
LINUX_KERNEL_VERSION=5.10.0-18-2
|
||||
DOCKER_VERSION=5:24.0.2-1~debian.12~$IMAGE_DISTRO
|
||||
CONTAINERD_IO_VERSION=1.6.21-1
|
||||
LINUX_KERNEL_VERSION=6.1.0-11-2
|
||||
|
||||
## Working directory to prepare the file system
|
||||
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"
|
||||
exit 1
|
||||
}
|
||||
[ -n "$ONIE_INSTALLER_PAYLOAD" ] || {
|
||||
echo "Error: Invalid ONIE_INSTALLER_PAYLOAD in onie image config file"
|
||||
[ -n "$INSTALLER_PAYLOAD" ] || {
|
||||
echo "Error: Invalid INSTALLER_PAYLOAD in onie image config file"
|
||||
exit 1
|
||||
}
|
||||
[ -n "$FILESYSTEM_SQUASHFS" ] || {
|
||||
@ -59,23 +59,30 @@ TRUSTED_GPG_DIR=$BUILD_TOOL_PATH/trusted.gpg.d
|
||||
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
|
||||
if [[ -d $FILESYSTEM_ROOT ]]; then
|
||||
sudo rm -rf $FILESYSTEM_ROOT || die "Failed to clean chroot directory"
|
||||
fi
|
||||
mkdir -p $FILESYSTEM_ROOT
|
||||
mkdir -p $FILESYSTEM_ROOT/$PLATFORM_DIR
|
||||
mkdir -p $FILESYSTEM_ROOT/$PLATFORM_DIR/grub
|
||||
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
|
||||
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
|
||||
echo '[INFO] Build host debian base system...'
|
||||
TARGET_PATH=$TARGET_PATH scripts/build_debian_base_system.sh $CONFIGURED_ARCH $IMAGE_DISTRO $FILESYSTEM_ROOT
|
||||
@ -111,9 +118,10 @@ 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/
|
||||
|
||||
## 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/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-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} $FILESYSTEM_ROOT/etc/apt/apt.conf.d/
|
||||
|
||||
## Note: set lang to prevent locale warnings in your chroot
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y update
|
||||
@ -248,24 +256,19 @@ 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 LANG=C chroot $FILESYSTEM_ROOT apt-get -y install apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
gnupg2 \
|
||||
software-properties-common
|
||||
curl
|
||||
if [[ $CONFIGURED_ARCH == armhf ]]; then
|
||||
# update ssl ca certificates for secure pem
|
||||
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT c_rehash
|
||||
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 LANG=C chroot $FILESYSTEM_ROOT mv /tmp/docker.asc /etc/apt/trusted.gpg.d/
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT add-apt-repository \
|
||||
"deb [arch=$CONFIGURED_ARCH] https://download.docker.com/linux/debian $IMAGE_DISTRO stable"
|
||||
sudo tee $FILESYSTEM_ROOT/etc/apt/sources.list.d/docker.list >/dev/null <<EOF
|
||||
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 -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 () {
|
||||
local ver="$1"
|
||||
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT curl -fsSL \
|
||||
@ -294,22 +297,13 @@ then
|
||||
## Install Kubernetes master
|
||||
echo '[INFO] Install kubernetes master'
|
||||
install_kubernetes ${MASTER_KUBERNETES_VERSION}
|
||||
|
||||
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 install hyperv-daemons gnupg xmlstarlet parted netcat
|
||||
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 \
|
||||
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
|
||||
else
|
||||
echo '[INFO] Skipping Install kubernetes master'
|
||||
@ -375,7 +369,8 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
|
||||
gdisk \
|
||||
sysfsutils \
|
||||
squashfs-tools \
|
||||
grub2-common \
|
||||
$bootloader_packages \
|
||||
rsyslog \
|
||||
screen \
|
||||
hping3 \
|
||||
tcptraceroute \
|
||||
@ -391,9 +386,9 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
|
||||
python3-pip \
|
||||
python-is-python3 \
|
||||
cron \
|
||||
libprotobuf23 \
|
||||
libprotobuf32 \
|
||||
libgrpc++1 \
|
||||
libgrpc10 \
|
||||
libgrpc29 \
|
||||
haveged \
|
||||
fdisk \
|
||||
gpg \
|
||||
@ -402,11 +397,9 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
|
||||
linux-perf \
|
||||
resolvconf \
|
||||
lsof \
|
||||
sysstat
|
||||
|
||||
# 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
|
||||
sysstat \
|
||||
xxd \
|
||||
zstd
|
||||
|
||||
# Have systemd create the auditd log directory
|
||||
sudo mkdir -p ${FILESYSTEM_ROOT}/etc/systemd/system/auditd.service.d
|
||||
@ -416,6 +409,10 @@ LogsDirectory=audit
|
||||
LogsDirectoryMode=0750
|
||||
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
|
||||
## Pre-install the fundamental packages for amd64 (x86)
|
||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install \
|
||||
@ -464,6 +461,10 @@ fi
|
||||
## Disable kexec supported reboot which was installed by default
|
||||
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
|
||||
sudo rm -f $FILESYSTEM_ROOT/etc/ssh/ssh_host_*_key*
|
||||
sudo cp files/sshd/host-ssh-keygen.sh $FILESYSTEM_ROOT/usr/local/bin/
|
||||
@ -483,10 +484,14 @@ rm /files/etc/ssh/sshd_config/ClientAliveInterval
|
||||
rm /files/etc/ssh/sshd_config/ClientAliveCountMax
|
||||
touch /files/etc/ssh/sshd_config/EmptyLineHack
|
||||
rename /files/etc/ssh/sshd_config/EmptyLineHack ""
|
||||
set /files/etc/ssh/sshd_config/ClientAliveInterval 900
|
||||
set /files/etc/ssh/sshd_config/ClientAliveInterval 300
|
||||
set /files/etc/ssh/sshd_config/ClientAliveCountMax 0
|
||||
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 15 minutes"
|
||||
set /files/etc/ssh/sshd_config/#comment[following-sibling::*[1][self::ClientAliveInterval]] "Close inactive client sessions after 5 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
|
||||
set /files/etc/ssh/sshd_config/LogLevel VERBOSE
|
||||
save
|
||||
@ -524,20 +529,21 @@ done < files/image_config/sysctl/sysctl-net.conf
|
||||
|
||||
sudo augtool --autosave "$sysctl_net_cmd_string" -r $FILESYSTEM_ROOT
|
||||
|
||||
# Upgrade pip via PyPI and uninstall the Debian version
|
||||
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
|
||||
# Specify that we want to explicitly install Python packages into the system environment, and risk breakages
|
||||
sudo cp files/image_config/pip/pip.conf $FILESYSTEM_ROOT/etc/pip.conf
|
||||
|
||||
# For building Python packages
|
||||
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'
|
||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install python3-setuptools python3-wheel
|
||||
|
||||
# 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==5.0.3'
|
||||
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'docker==6.1.1'
|
||||
|
||||
# Install scapy
|
||||
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
|
||||
|
||||
# Install GCC, needed for building/installing some Python packages
|
||||
@ -560,32 +566,27 @@ 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/snmpcommunity $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/ntp ]; then
|
||||
sudo cp ./files/image_config/ntp/ntp $FILESYSTEM_ROOT/etc/init.d/
|
||||
if [ -f files/image_config/ntp/ntpsec ]; then
|
||||
sudo cp ./files/image_config/ntp/ntpsec $FILESYSTEM_ROOT/etc/init.d/
|
||||
fi
|
||||
|
||||
if [ -f files/image_config/ntp/ntp-systemd-wrapper ]; then
|
||||
sudo mkdir -p $FILESYSTEM_ROOT/usr/lib/ntp/
|
||||
sudo cp ./files/image_config/ntp/ntp-systemd-wrapper $FILESYSTEM_ROOT/usr/lib/ntp/
|
||||
sudo cp ./files/image_config/ntp/ntp-systemd-wrapper $FILESYSTEM_ROOT/usr/libexec/ntpsec/
|
||||
fi
|
||||
|
||||
## Version file
|
||||
## Version file part 1
|
||||
sudo mkdir -p $FILESYSTEM_ROOT/etc/sonic
|
||||
if [ -f files/image_config/sonic_release ]; then
|
||||
sudo cp files/image_config/sonic_release $FILESYSTEM_ROOT/etc/sonic/
|
||||
fi
|
||||
export build_version="${SONIC_IMAGE_VERSION}"
|
||||
export debian_version="$(cat $FILESYSTEM_ROOT/etc/debian_version)"
|
||||
export kernel_version="${kversion}"
|
||||
export asic_type="${sonic_asic_platform}"
|
||||
export asic_subtype="${TARGET_MACHINE}"
|
||||
export commit_id="$(git rev-parse --short HEAD)"
|
||||
export branch="$(git rev-parse --abbrev-ref HEAD)"
|
||||
export release="$(if [ -f $FILESYSTEM_ROOT/etc/sonic/sonic_release ]; then cat $FILESYSTEM_ROOT/etc/sonic/sonic_release; fi)"
|
||||
export build_date="$(date -u)"
|
||||
export build_number="${BUILD_NUMBER:-0}"
|
||||
export built_by="$USER@$BUILD_HOSTNAME"
|
||||
j2 files/build_templates/sonic_version.yml.j2 | sudo tee $FILESYSTEM_ROOT/etc/sonic/sonic_version.yml
|
||||
|
||||
# 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
|
||||
@ -599,6 +600,60 @@ if [[ ! -f './asic_config_checksum' ]]; then
|
||||
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 debian_version="$(cat $FILESYSTEM_ROOT/etc/debian_version)"
|
||||
export kernel_version="${kversion}"
|
||||
export asic_type="${sonic_asic_platform}"
|
||||
export asic_subtype="${TARGET_MACHINE}"
|
||||
export commit_id="$(git rev-parse --short HEAD)"
|
||||
export branch="$(git rev-parse --abbrev-ref HEAD)"
|
||||
export release="$(if [ -f $FILESYSTEM_ROOT/etc/sonic/sonic_release ]; then cat $FILESYSTEM_ROOT/etc/sonic/sonic_release; fi)"
|
||||
export build_date="$(date -u)"
|
||||
export build_number="${BUILD_NUMBER:-0}"
|
||||
export built_by="$USER@$BUILD_HOSTNAME"
|
||||
export sonic_os_version="${SONIC_OS_VERSION}"
|
||||
j2 files/build_templates/sonic_version.yml.j2 | sudo tee $FILESYSTEM_ROOT/etc/sonic/sonic_version.yml
|
||||
|
||||
if [ -f sonic_debian_extension.sh ]; then
|
||||
./sonic_debian_extension.sh $FILESYSTEM_ROOT $PLATFORM_DIR $IMAGE_DISTRO
|
||||
fi
|
||||
@ -633,11 +688,15 @@ then
|
||||
|
||||
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
|
||||
# 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.
|
||||
# its required to do not enable both features together to avoid conflicts.
|
||||
echo "Secure Boot support build stage: Starting .."
|
||||
@ -646,14 +705,14 @@ if [[ $SECURE_UPGRADE_MODE == 'dev' || $SECURE_UPGRADE_MODE == "prod" && $SONIC_
|
||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install \
|
||||
shim-unsigned \
|
||||
grub-efi
|
||||
|
||||
if [ ! -f $SECURE_UPGRADE_DEV_SIGNING_CERT ]; then
|
||||
echo "Error: SONiC SECURE_UPGRADE_DEV_SIGNING_CERT=$SECURE_UPGRADE_DEV_SIGNING_CERT key missing"
|
||||
|
||||
if [ ! -f $SECURE_UPGRADE_SIGNING_CERT ]; then
|
||||
echo "Error: SONiC SECURE_UPGRADE_SIGNING_CERT=$SECURE_UPGRADE_SIGNING_CERT key missing"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $SECURE_UPGRADE_MODE == 'dev' ]]; then
|
||||
# development signing & verification
|
||||
# development signing & verification
|
||||
|
||||
if [ ! -f $SECURE_UPGRADE_DEV_SIGNING_KEY ]; then
|
||||
echo "Error: SONiC SECURE_UPGRADE_DEV_SIGNING_KEY=$SECURE_UPGRADE_DEV_SIGNING_KEY key missing"
|
||||
@ -663,27 +722,31 @@ if [[ $SECURE_UPGRADE_MODE == 'dev' || $SECURE_UPGRADE_MODE == "prod" && $SONIC_
|
||||
sudo ./scripts/signing_secure_boot_dev.sh -a $CONFIGURED_ARCH \
|
||||
-r $FILESYSTEM_ROOT \
|
||||
-l $LINUX_KERNEL_VERSION \
|
||||
-c $SECURE_UPGRADE_DEV_SIGNING_CERT \
|
||||
-c $SECURE_UPGRADE_SIGNING_CERT \
|
||||
-p $SECURE_UPGRADE_DEV_SIGNING_KEY
|
||||
elif [[ $SECURE_UPGRADE_MODE == "prod" ]]; then
|
||||
# Here Vendor signing should be implemented
|
||||
OUTPUT_SEC_BOOT_DIR=$FILESYSTEM_ROOT/boot
|
||||
|
||||
if [ ! -f $SECURE_UPGRADE_PROD_SIGNING_TOOL ]; then
|
||||
echo "Error: SONiC SECURE_UPGRADE_PROD_SIGNING_TOOL=$SECURE_UPGRADE_PROD_SIGNING_TOOL script missing"
|
||||
if [ ! -f $sonic_su_prod_signing_tool ]; then
|
||||
echo "Error: SONiC sonic_su_prod_signing_tool=$sonic_su_prod_signing_tool script missing"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sudo $SECURE_UPGRADE_PROD_SIGNING_TOOL $CONFIGURED_ARCH $FILESYSTEM_ROOT $LINUX_KERNEL_VERSION $OUTPUT_SEC_BOOT_DIR
|
||||
|
||||
sudo $sonic_su_prod_signing_tool -a $CONFIGURED_ARCH \
|
||||
-r $FILESYSTEM_ROOT \
|
||||
-l $LINUX_KERNEL_VERSION \
|
||||
-o $OUTPUT_SEC_BOOT_DIR \
|
||||
$SECURE_UPGRADE_PROD_TOOL_ARGS
|
||||
|
||||
# verifying all EFI files and kernel modules in $OUTPUT_SEC_BOOT_DIR
|
||||
sudo ./scripts/secure_boot_signature_verification.sh -e $OUTPUT_SEC_BOOT_DIR \
|
||||
-c $SECURE_UPGRADE_DEV_SIGNING_CERT \
|
||||
-c $SECURE_UPGRADE_SIGNING_CERT \
|
||||
-k $FILESYSTEM_ROOT
|
||||
|
||||
# verifying vmlinuz file.
|
||||
sudo ./scripts/secure_boot_signature_verification.sh -e $FILESYSTEM_ROOT/boot/vmlinuz-${LINUX_KERNEL_VERSION}-${CONFIGURED_ARCH} \
|
||||
-c $SECURE_UPGRADE_DEV_SIGNING_CERT \
|
||||
-c $SECURE_UPGRADE_SIGNING_CERT \
|
||||
-k $FILESYSTEM_ROOT
|
||||
fi
|
||||
echo "Secure Boot support build stage: END."
|
||||
@ -694,14 +757,27 @@ sudo chroot $FILESYSTEM_ROOT update-initramfs -u
|
||||
## Convert initrd image to u-boot format
|
||||
if [[ $TARGET_BOOTLOADER == uboot ]]; then
|
||||
INITRD_FILE=initrd.img-${LINUX_KERNEL_VERSION}-${CONFIGURED_ARCH}
|
||||
KERNEL_FILE=vmlinuz-${LINUX_KERNEL_VERSION}-${CONFIGURED_ARCH}
|
||||
if [[ $CONFIGURED_ARCH == armhf ]]; then
|
||||
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}
|
||||
## Overwriting the initrd image with uInitrd
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT mv /boot/u${INITRD_FILE} /boot/$INITRD_FILE
|
||||
elif [[ $CONFIGURED_ARCH == arm64 ]]; then
|
||||
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
|
||||
if [[ $CONFIGURED_PLATFORM == pensando ]]; then
|
||||
## copy device tree file into boot (XXX: need to compile dtb from dts)
|
||||
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
|
||||
|
||||
@ -736,8 +812,7 @@ 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
|
||||
sleep 15
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT umount /proc || true
|
||||
sudo timeout 15s bash -c 'until LANG=C chroot $0 umount /proc; do sleep 1; done' $FILESYSTEM_ROOT || true
|
||||
|
||||
## Prepare empty directory to trigger mount move in initramfs-tools/mount_loop_root, implemented by patching
|
||||
sudo mkdir $FILESYSTEM_ROOT/host
|
||||
@ -753,7 +828,7 @@ if [[ "$CHANGE_DEFAULT_PASSWORD" == "y" ]]; then
|
||||
fi
|
||||
|
||||
## Compress most file system into squashfs file
|
||||
sudo rm -f $ONIE_INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS
|
||||
sudo rm -f $INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS
|
||||
## Output the file system total size for diag purpose
|
||||
## Note: -x to skip directories on different file systems, such as /proc
|
||||
sudo du -hsx $FILESYSTEM_ROOT
|
||||
@ -763,8 +838,22 @@ sudo mkdir -p $FILESYSTEM_ROOT/var/lib/docker
|
||||
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
|
||||
|
||||
## Reduce /boot permission
|
||||
sudo chmod -R go-wx $FILESYSTEM_ROOT/boot
|
||||
|
||||
# Ensure admin gid is 1000
|
||||
gid_user=$(sudo LANG=C chroot $FILESYSTEM_ROOT id -g $USERNAME) || gid_user="none"
|
||||
if [ "${gid_user}" != "1000" ]; then
|
||||
@ -784,5 +873,5 @@ fi
|
||||
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
|
||||
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 $ONIE_INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS $FILESYSTEM_DOCKERFS
|
||||
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
|
||||
sudo zip -g -n .squashfs:.gz $INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS $FILESYSTEM_DOCKERFS
|
||||
|
@ -18,8 +18,8 @@ fi
|
||||
echo "Error: Invalid ONIE_IMAGE_PART_SIZE in onie image config file"
|
||||
exit 1
|
||||
}
|
||||
[ -n "$ONIE_INSTALLER_PAYLOAD" ] || {
|
||||
echo "Error: Invalid ONIE_INSTALLER_PAYLOAD in onie image config file"
|
||||
[ -n "$INSTALLER_PAYLOAD" ] || {
|
||||
echo "Error: Invalid INSTALLER_PAYLOAD in onie image config file"
|
||||
exit 1
|
||||
}
|
||||
|
||||
@ -86,7 +86,7 @@ generate_onie_installer_image()
|
||||
## 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 \
|
||||
installer platform/$TARGET_MACHINE/platform.conf $output_file OS $IMAGE_VERSION $ONIE_IMAGE_PART_SIZE \
|
||||
$ONIE_INSTALLER_PAYLOAD
|
||||
$INSTALLER_PAYLOAD $SECURE_UPGRADE_SIGNING_CERT $SECURE_UPGRADE_DEV_SIGNING_KEY
|
||||
}
|
||||
|
||||
# Generate asic-specific device list
|
||||
@ -139,7 +139,11 @@ elif [ "$IMAGE_TYPE" = "raw" ]; then
|
||||
## Run the installer
|
||||
## The 'build' install mode of the installer is used to generate this dump.
|
||||
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
|
||||
|
||||
[ -r $OUTPUT_RAW_IMAGE ] || {
|
||||
@ -147,15 +151,7 @@ elif [ "$IMAGE_TYPE" = "raw" ]; then
|
||||
exit 1
|
||||
}
|
||||
|
||||
$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"
|
||||
echo "The raw image is in $OUTPUT_RAW_IMAGE"
|
||||
|
||||
elif [ "$IMAGE_TYPE" = "kvm" ]; then
|
||||
|
||||
@ -179,7 +175,7 @@ elif [ "$IMAGE_TYPE" = "aboot" ]; then
|
||||
sudo rm -f $OUTPUT_ABOOT_IMAGE
|
||||
sudo rm -f $ABOOT_BOOT_IMAGE
|
||||
## Add main payload
|
||||
cp $ONIE_INSTALLER_PAYLOAD $OUTPUT_ABOOT_IMAGE
|
||||
cp $INSTALLER_PAYLOAD $OUTPUT_ABOOT_IMAGE
|
||||
## Add Aboot boot0 file
|
||||
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
|
||||
@ -202,12 +198,12 @@ elif [ "$IMAGE_TYPE" = "aboot" ]; then
|
||||
zip -g $OUTPUT_ABOOT_IMAGE .platforms_asic
|
||||
|
||||
if [ "$ENABLE_FIPS" = "y" ]; then
|
||||
echo "sonic_fips=1" > kernel-cmdline
|
||||
echo "sonic_fips=1" >> kernel-cmdline-append
|
||||
else
|
||||
echo "sonic_fips=0" > kernel-cmdline
|
||||
echo "sonic_fips=0" >> kernel-cmdline-append
|
||||
fi
|
||||
zip -g $OUTPUT_ABOOT_IMAGE kernel-cmdline
|
||||
rm kernel-cmdline
|
||||
zip -g $OUTPUT_ABOOT_IMAGE kernel-cmdline-append
|
||||
rm kernel-cmdline-append
|
||||
|
||||
zip -g $OUTPUT_ABOOT_IMAGE $ABOOT_BOOT_IMAGE
|
||||
rm $ABOOT_BOOT_IMAGE
|
||||
@ -217,6 +213,38 @@ elif [ "$IMAGE_TYPE" = "aboot" ]; then
|
||||
[ -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"
|
||||
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
|
||||
echo "Error: Non supported image type $IMAGE_TYPE"
|
||||
exit 1
|
||||
|
@ -1,7 +1,17 @@
|
||||
{
|
||||
"chassis": {
|
||||
"name": "DCS-7050QX-32",
|
||||
"components": [],
|
||||
"components": [
|
||||
{
|
||||
"name": "Scd(addr=0000:04:00.0)"
|
||||
},
|
||||
{
|
||||
"name": "Ucd90120A(addr=6-004e)"
|
||||
},
|
||||
{
|
||||
"name": "Ucd90160(addr=10-004e)"
|
||||
}
|
||||
],
|
||||
"fans": [
|
||||
{
|
||||
"name": "fan1"
|
||||
@ -53,37 +63,43 @@
|
||||
"psus": [
|
||||
{
|
||||
"name": "psu1",
|
||||
"fans": []
|
||||
"fans": [
|
||||
{
|
||||
"name": "psu1/1",
|
||||
"speed": {
|
||||
"controllable": false
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "psu2",
|
||||
"fans": []
|
||||
"fans": [
|
||||
{
|
||||
"name": "psu2/1",
|
||||
"speed": {
|
||||
"controllable": false
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"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": "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"
|
||||
"name": "Rear temp sensor",
|
||||
"controllable": false
|
||||
}
|
||||
],
|
||||
"sfps": [
|
||||
|
@ -1,144 +0,0 @@
|
||||
{
|
||||
"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+"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,36 +1,36 @@
|
||||
# name lanes alias index
|
||||
Ethernet0 9 Ethernet1 1
|
||||
Ethernet1 10 Ethernet2 2
|
||||
Ethernet2 11 Ethernet3 3
|
||||
Ethernet3 12 Ethernet4 4
|
||||
Ethernet4 13,14,15,16 Ethernet6/1 6
|
||||
Ethernet8 17,18,19,20 Ethernet7/1 7
|
||||
Ethernet12 21,22,23,24 Ethernet8/1 8
|
||||
Ethernet16 29,30,31,32 Ethernet9/1 9
|
||||
Ethernet20 25,26,27,28 Ethernet10/1 10
|
||||
Ethernet24 33,34,35,36 Ethernet11/1 11
|
||||
Ethernet28 37,38,39,40 Ethernet12/1 12
|
||||
Ethernet32 45,46,47,48 Ethernet13/1 13
|
||||
Ethernet36 41,42,43,44 Ethernet14/1 14
|
||||
Ethernet40 49,50,51,52 Ethernet15/1 15
|
||||
Ethernet44 53,54,55,56 Ethernet16/1 16
|
||||
Ethernet48 69,70,71,72 Ethernet17/1 17
|
||||
Ethernet52 65,66,67,68 Ethernet18/1 18
|
||||
Ethernet56 73,74,75,76 Ethernet19/1 19
|
||||
Ethernet60 77,78,79,80 Ethernet20/1 20
|
||||
Ethernet64 93,94,95,96 Ethernet21/1 21
|
||||
Ethernet68 89,90,91,92 Ethernet22/1 22
|
||||
Ethernet72 97,98,99,100 Ethernet23/1 23
|
||||
Ethernet76 101,102,103,104 Ethernet24/1 24
|
||||
Ethernet80 109,110,111,112 Ethernet25/1 25
|
||||
Ethernet84 105,106,107,108 Ethernet26/1 26
|
||||
Ethernet88 121,122,123,124 Ethernet27/1 27
|
||||
Ethernet92 125,126,127,128 Ethernet28/1 28
|
||||
Ethernet96 61,62,63,64 Ethernet29 29
|
||||
Ethernet100 57,58,59,60 Ethernet30 30
|
||||
Ethernet104 81,82,83,84 Ethernet31 31
|
||||
Ethernet108 85,86,87,88 Ethernet32 32
|
||||
Ethernet112 117,118,119,120 Ethernet33 33
|
||||
Ethernet116 113,114,115,116 Ethernet34 34
|
||||
Ethernet120 1,2,3,4 Ethernet35 35
|
||||
Ethernet124 5,6,7,8 Ethernet36 36
|
||||
# name lanes alias index speed
|
||||
Ethernet0 9 Ethernet1 1 10000
|
||||
Ethernet1 10 Ethernet2 2 10000
|
||||
Ethernet2 11 Ethernet3 3 10000
|
||||
Ethernet3 12 Ethernet4 4 1000
|
||||
Ethernet4 13,14,15,16 Ethernet6/1 6 40000
|
||||
Ethernet8 17,18,19,20 Ethernet7/1 7 40000
|
||||
Ethernet12 21,22,23,24 Ethernet8/1 8 40000
|
||||
Ethernet16 29,30,31,32 Ethernet9/1 9 40000
|
||||
Ethernet20 25,26,27,28 Ethernet10/1 10 40000
|
||||
Ethernet24 33,34,35,36 Ethernet11/1 11 40000
|
||||
Ethernet28 37,38,39,40 Ethernet12/1 12 40000
|
||||
Ethernet32 45,46,47,48 Ethernet13/1 13 40000
|
||||
Ethernet36 41,42,43,44 Ethernet14/1 14 40000
|
||||
Ethernet40 49,50,51,52 Ethernet15/1 15 40000
|
||||
Ethernet44 53,54,55,56 Ethernet16/1 16 40000
|
||||
Ethernet48 69,70,71,72 Ethernet17/1 17 40000
|
||||
Ethernet52 65,66,67,68 Ethernet18/1 18 40000
|
||||
Ethernet56 73,74,75,76 Ethernet19/1 19 40000
|
||||
Ethernet60 77,78,79,80 Ethernet20/1 20 40000
|
||||
Ethernet64 93,94,95,96 Ethernet21/1 21 40000
|
||||
Ethernet68 89,90,91,92 Ethernet22/1 22 40000
|
||||
Ethernet72 97,98,99,100 Ethernet23/1 23 40000
|
||||
Ethernet76 101,102,103,104 Ethernet24/1 24 40000
|
||||
Ethernet80 109,110,111,112 Ethernet25/1 25 40000
|
||||
Ethernet84 105,106,107,108 Ethernet26/1 26 40000
|
||||
Ethernet88 121,122,123,124 Ethernet27/1 27 40000
|
||||
Ethernet92 125,126,127,128 Ethernet28/1 28 40000
|
||||
Ethernet96 61,62,63,64 Ethernet29 29 40000
|
||||
Ethernet100 57,58,59,60 Ethernet30 30 40000
|
||||
Ethernet104 81,82,83,84 Ethernet31 31 40000
|
||||
Ethernet108 85,86,87,88 Ethernet32 32 40000
|
||||
Ethernet112 117,118,119,120 Ethernet33 33 40000
|
||||
Ethernet116 113,114,115,116 Ethernet34 34 40000
|
||||
Ethernet120 1,2,3,4 Ethernet35 35 40000
|
||||
Ethernet124 5,6,7,8 Ethernet36 36 40000
|
||||
|
@ -1,7 +1,23 @@
|
||||
{
|
||||
"chassis": {
|
||||
"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": [],
|
||||
"fan_drawers": [
|
||||
{
|
||||
@ -40,46 +56,47 @@
|
||||
"psus": [
|
||||
{
|
||||
"name": "psu1",
|
||||
"fans": []
|
||||
"fans": [
|
||||
{
|
||||
"name": "psu1/1",
|
||||
"speed": {
|
||||
"controllable": false
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "psu2",
|
||||
"fans": []
|
||||
"fans": [
|
||||
{
|
||||
"name": "psu2/1",
|
||||
"speed": {
|
||||
"controllable": false
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"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": "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"
|
||||
"name": "Front-panel temp sensor",
|
||||
"controllable": false
|
||||
}
|
||||
],
|
||||
"sfps": [
|
||||
@ -201,6 +218,12 @@
|
||||
"1x40G[10G]": [
|
||||
"Ethernet5/1"
|
||||
],
|
||||
"3x10G(3)+1x1G(1)": [
|
||||
"Ethernet1",
|
||||
"Ethernet2",
|
||||
"Ethernet3",
|
||||
"Ethernet4"
|
||||
],
|
||||
"2x20G[10G]": [
|
||||
"Ethernet5/1",
|
||||
"Ethernet5/3"
|
||||
|
@ -1,16 +1,24 @@
|
||||
{# Construct config.bcm to include additional soc properties per specific device metadata requirement #}
|
||||
{%- set map_prio = '' -%}
|
||||
{%- set pfcwd_sock = '' -%}
|
||||
{%- 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'] -%}
|
||||
{%- if 'dualtor' in switch_subtype.lower() %}
|
||||
{%- set map_prio = 'sai_remap_prio_on_tnl_egress=1' -%}
|
||||
{%- 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/
|
||||
l3_alpm_hit_skip=1
|
||||
sai_adjust_acl_drop_in_rx_drop=1
|
||||
sai_verify_incoming_chksum=0
|
||||
{{ map_prio }}
|
||||
{{ pfcwd_sock }}
|
||||
host_as_route_disable=1
|
||||
use_all_splithorizon_groups=1
|
||||
riot_enable=1
|
||||
|
@ -1,16 +1,24 @@
|
||||
{# Construct config.bcm to include additional soc properties per specific device metadata requirement #}
|
||||
{%- set map_prio = '' -%}
|
||||
{%- set pfcwd_sock = '' -%}
|
||||
{%- 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'] -%}
|
||||
{%- if 'dualtor' in switch_subtype.lower() %}
|
||||
{%- set map_prio = 'sai_remap_prio_on_tnl_egress=1' -%}
|
||||
{%- 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/
|
||||
l3_alpm_hit_skip=1
|
||||
sai_adjust_acl_drop_in_rx_drop=1
|
||||
sai_verify_incoming_chksum=0
|
||||
{{ map_prio }}
|
||||
{{ pfcwd_sock }}
|
||||
host_as_route_disable=1
|
||||
use_all_splithorizon_groups=1
|
||||
riot_enable=1
|
||||
|
@ -152,11 +152,6 @@
|
||||
id: '1466'
|
||||
name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh)
|
||||
Data Fabric: Device 18h; Function 6'
|
||||
- bus: '00'
|
||||
dev: '18'
|
||||
fn: '7'
|
||||
id: '0001'
|
||||
name: 'Host bridge: Arastra Inc. Device 0001'
|
||||
- bus: '01'
|
||||
dev: '00'
|
||||
fn: '0'
|
||||
|
@ -152,11 +152,6 @@
|
||||
id: '1466'
|
||||
name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh)
|
||||
Data Fabric: Device 18h; Function 6'
|
||||
- bus: '00'
|
||||
dev: '18'
|
||||
fn: '7'
|
||||
id: '0001'
|
||||
name: 'Host bridge: Arastra Inc. Device 0001'
|
||||
- bus: '01'
|
||||
dev: '00'
|
||||
fn: '0'
|
||||
|
@ -64,11 +64,6 @@
|
||||
id: '1578'
|
||||
name: 'Encryption controller: Advanced Micro Devices, Inc. [AMD] Carrizo Platform
|
||||
Security Processor'
|
||||
- bus: '00'
|
||||
dev: 09
|
||||
fn: '0'
|
||||
id: '0001'
|
||||
name: 'Host bridge: Arastra Inc. Device 0001'
|
||||
- bus: '00'
|
||||
dev: 09
|
||||
fn: '2'
|
||||
|
@ -64,11 +64,6 @@
|
||||
id: '1578'
|
||||
name: 'Encryption controller: Advanced Micro Devices, Inc. [AMD] Carrizo Platform
|
||||
Security Processor'
|
||||
- bus: '00'
|
||||
dev: 09
|
||||
fn: '0'
|
||||
id: '0001'
|
||||
name: 'Host bridge: Arastra Inc. Device 0001'
|
||||
- bus: '00'
|
||||
dev: 09
|
||||
fn: '2'
|
||||
|
@ -449,3 +449,4 @@ serdes_preemphasis_109=0x145c00
|
||||
|
||||
mmu_init_config="MSFT-TH-Tier1"
|
||||
phy_an_lt_msft=1
|
||||
phy_unlos_msft=1
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"chassis": {
|
||||
"DCS-7050CX3-32S": {
|
||||
"DCS-7060CX-32S": {
|
||||
"component": {
|
||||
"Aboot()": {},
|
||||
"Scd(addr=0000:02:00.0)": {},
|
||||
|
@ -16,6 +16,8 @@ miim_intr_enable.0=0
|
||||
module_64ports.0=1
|
||||
multicast_l2_range.0=511
|
||||
oversubscribe_mode=1
|
||||
sai_tunnel_global_sip_mask_enable=1
|
||||
bcm_tunnel_term_compatible_mode=1
|
||||
parity_correction=1
|
||||
parity_enable=1
|
||||
pbmp_xport_xe.0=0x3ffffffffffffffffffffffffffffffffffffffe
|
||||
|
@ -186,11 +186,6 @@
|
||||
id: 6f37
|
||||
name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon
|
||||
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
|
||||
dev: 0c
|
||||
fn: '0'
|
||||
|
@ -16,6 +16,8 @@ miim_intr_enable.0=0
|
||||
module_64ports.0=1
|
||||
multicast_l2_range.0=511
|
||||
oversubscribe_mode=1
|
||||
sai_tunnel_global_sip_mask_enable=1
|
||||
bcm_tunnel_term_compatible_mode=1
|
||||
parity_correction=1
|
||||
parity_enable=1
|
||||
pbmp_xport_xe.0=0x3ffffffffffffffffffffffffffffffffffffffe
|
||||
|
@ -0,0 +1,104 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1 @@
|
||||
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/th4-a7060dx5-32-200Gx48-100Gx32.config.bcm
|
@ -0,0 +1,879 @@
|
||||
# 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
|
||||
...
|
@ -0,0 +1,114 @@
|
||||
#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
|
@ -0,0 +1 @@
|
||||
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/th4-a7060dx5-32-25Gx96-100Gx8-200Gx8.config.bcm
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1 @@
|
||||
../../../common/profiles/th4/gen/BALANCED
|
@ -0,0 +1,2 @@
|
||||
{%- set default_topo = 't1' %}
|
||||
{%- include 'buffers_config.j2' %}
|
@ -0,0 +1 @@
|
||||
BALANCED/buffers_defaults_t0.j2
|
@ -0,0 +1 @@
|
||||
BALANCED/buffers_defaults_t1.j2
|
@ -0,0 +1,104 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1 @@
|
||||
BALANCED/pg_profile_lookup.ini
|
@ -0,0 +1,34 @@
|
||||
# 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
|
@ -0,0 +1 @@
|
||||
{%- include 'qos_config.j2' %}
|
@ -0,0 +1 @@
|
||||
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/th4-a7060dx5-32.config.bcm
|
File diff suppressed because it is too large
Load Diff
1
device/arista/x86_64-arista_7060dx5_32/default_sku
Normal file
1
device/arista/x86_64-arista_7060dx5_32/default_sku
Normal file
@ -0,0 +1 @@
|
||||
Arista-7060DX5-32 t1
|
1
device/arista/x86_64-arista_7060dx5_32/pcie.yaml
Symbolic link
1
device/arista/x86_64-arista_7060dx5_32/pcie.yaml
Symbolic link
@ -0,0 +1 @@
|
||||
../x86_64-arista_common/pcie.yaml
|
1061
device/arista/x86_64-arista_7060dx5_32/platform.json
Normal file
1061
device/arista/x86_64-arista_7060dx5_32/platform.json
Normal file
File diff suppressed because it is too large
Load Diff
1
device/arista/x86_64-arista_7060dx5_32/platform_asic
Normal file
1
device/arista/x86_64-arista_7060dx5_32/platform_asic
Normal file
@ -0,0 +1 @@
|
||||
broadcom
|
@ -0,0 +1,12 @@
|
||||
{
|
||||
"chassis": {
|
||||
"DCS-7060DX5-32": {
|
||||
"component": {
|
||||
"Aboot()": {},
|
||||
"Scd(addr=0000:00:18.7)": {},
|
||||
"Scd(addr=0000:01:00.0)": {},
|
||||
"LorikeetSysCpld(addr=13-0023)": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
2
device/arista/x86_64-arista_7060dx5_32/platform_env.conf
Normal file
2
device/arista/x86_64-arista_7060dx5_32/platform_env.conf
Normal file
@ -0,0 +1,2 @@
|
||||
SYNCD_SHM_SIZE=512m
|
||||
is_ltsw_chip=1
|
1
device/arista/x86_64-arista_7060dx5_32/platform_reboot
Symbolic link
1
device/arista/x86_64-arista_7060dx5_32/platform_reboot
Symbolic link
@ -0,0 +1 @@
|
||||
../x86_64-arista_common/platform_reboot
|
1
device/arista/x86_64-arista_7060dx5_32/plugins
Symbolic link
1
device/arista/x86_64-arista_7060dx5_32/plugins
Symbolic link
@ -0,0 +1 @@
|
||||
../x86_64-arista_common/plugins/
|
1
device/arista/x86_64-arista_7060dx5_32/pmon_daemon_control.json
Symbolic link
1
device/arista/x86_64-arista_7060dx5_32/pmon_daemon_control.json
Symbolic link
@ -0,0 +1 @@
|
||||
../x86_64-arista_common/pmon_daemon_control.json
|
36
device/arista/x86_64-arista_7060dx5_32/sensors.conf
Normal file
36
device/arista/x86_64-arista_7060dx5_32/sensors.conf
Normal file
@ -0,0 +1,36 @@
|
||||
# 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
|
||||
|
@ -0,0 +1 @@
|
||||
../x86_64-arista_common/system_health_monitoring_config.json
|
1
device/arista/x86_64-arista_7060dx5_32/thermal_policy.json
Symbolic link
1
device/arista/x86_64-arista_7060dx5_32/thermal_policy.json
Symbolic link
@ -0,0 +1 @@
|
||||
../x86_64-arista_common/thermal_policy.json
|
@ -255,6 +255,14 @@
|
||||
"Ethernet504": {
|
||||
"default_brkout_mode": "1x400G[200G,100G,50G,40G,25G,10G]",
|
||||
"fec": "rs"
|
||||
},
|
||||
"Ethernet512": {
|
||||
"default_brkout_mode": "1x10G",
|
||||
"fec": "none"
|
||||
},
|
||||
"Ethernet513": {
|
||||
"default_brkout_mode": "1x10G",
|
||||
"fec": "none"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -63,3 +63,5 @@ 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
|
||||
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
|
||||
Ethernet512 258 Ethernet65 65 10000 none
|
||||
Ethernet513 257 Ethernet66 66 10000 none
|
||||
|
@ -34,7 +34,7 @@ bcm_device:
|
||||
sai_field_group_auto_prioritize: 1
|
||||
#l3_intf_vlan_split_egress for MTU at L3IF
|
||||
l3_intf_vlan_split_egress : 1
|
||||
|
||||
bcm_tunnel_term_compatible_mode: 1
|
||||
---
|
||||
device:
|
||||
0:
|
||||
@ -1073,6 +1073,14 @@ device:
|
||||
PORT_ID: 258
|
||||
:
|
||||
PC_PHYS_PORT_ID: 253
|
||||
?
|
||||
PORT_ID: 152
|
||||
:
|
||||
PC_PHYS_PORT_ID: 257
|
||||
?
|
||||
PORT_ID: 50
|
||||
:
|
||||
PC_PHYS_PORT_ID: 258
|
||||
...
|
||||
---
|
||||
device:
|
||||
@ -1085,6 +1093,13 @@ device:
|
||||
ENABLE: 1
|
||||
SPEED: 10000
|
||||
NUM_LANES: 1
|
||||
?
|
||||
PORT_ID: [[50, 50], [152, 152]]
|
||||
:
|
||||
ENABLE: 1
|
||||
MAX_FRAME_SIZE: 9416
|
||||
SPEED: 10000
|
||||
NUM_LANES: 1
|
||||
?
|
||||
PORT_ID: [[1, 4],
|
||||
[17, 20],
|
||||
@ -1103,7 +1118,7 @@ device:
|
||||
[238, 241],
|
||||
[255, 258]]
|
||||
:
|
||||
ENABLE: 1
|
||||
ENABLE: 0
|
||||
SPEED: 400000
|
||||
NUM_LANES: 8
|
||||
FEC_MODE: PC_FEC_RS544_2XN
|
||||
|
1
device/arista/x86_64-arista_7060dx5_64s/pcie.yaml
Symbolic link
1
device/arista/x86_64-arista_7060dx5_64s/pcie.yaml
Symbolic link
@ -0,0 +1 @@
|
||||
../x86_64-arista_common/pcie.yaml
|
@ -49,52 +49,52 @@
|
||||
],
|
||||
"thermals": [
|
||||
{
|
||||
"name": "Cpu temp sensor"
|
||||
"name": "Board sensor",
|
||||
"controllable": false
|
||||
},
|
||||
{
|
||||
"name": "CPU board temp sensor"
|
||||
"name": "TH4 exhaust temp sensor",
|
||||
"controllable": false
|
||||
},
|
||||
{
|
||||
"name": "Back-panel temp sensor"
|
||||
"name": "Inlet temp sensor",
|
||||
"controllable": false
|
||||
},
|
||||
{
|
||||
"name": "Board sensor"
|
||||
"name": "CPU board temp sensor",
|
||||
"controllable": false
|
||||
},
|
||||
{
|
||||
"name": "Switch board middle sensor"
|
||||
"name": "Back panel temp sensor",
|
||||
"controllable": false
|
||||
},
|
||||
{
|
||||
"name": "Switch board left sensor"
|
||||
"name": "Front panel temp sensor",
|
||||
"controllable": false
|
||||
},
|
||||
{
|
||||
"name": "Front-panel temp sensor"
|
||||
"name": "Power supply 1 hotspot sensor",
|
||||
"controllable": false
|
||||
},
|
||||
{
|
||||
"name": "Switch chip diode 1 sensor"
|
||||
"name": "Power supply 1 inlet temp sensor",
|
||||
"controllable": false
|
||||
},
|
||||
{
|
||||
"name": "Switch chip diode 2 sensor"
|
||||
"name": "Power supply 1 exhaust temp sensor",
|
||||
"controllable": false
|
||||
},
|
||||
{
|
||||
"name": "Front-panel temp sensor"
|
||||
"name": "Power supply 2 hotspot sensor",
|
||||
"controllable": false
|
||||
},
|
||||
{
|
||||
"name": "Power supply 1 inlet temp sensor"
|
||||
"name": "Power supply 2 inlet temp sensor",
|
||||
"controllable": false
|
||||
},
|
||||
{
|
||||
"name": "Power supply 1 secondary hotspot sensor"
|
||||
},
|
||||
{
|
||||
"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"
|
||||
"name": "Power supply 2 exhaust temp sensor",
|
||||
"controllable": false
|
||||
}
|
||||
],
|
||||
"sfps": [
|
||||
@ -2154,6 +2154,24 @@
|
||||
"Ethernet64/8"
|
||||
]
|
||||
}
|
||||
},
|
||||
"Ethernet512": {
|
||||
"index": "65",
|
||||
"lanes": "258",
|
||||
"breakout_modes": {
|
||||
"1x10G": [
|
||||
"Ethernet65"
|
||||
]
|
||||
}
|
||||
},
|
||||
"Ethernet513": {
|
||||
"index": "66",
|
||||
"lanes": "257",
|
||||
"breakout_modes": {
|
||||
"1x10G": [
|
||||
"Ethernet66"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20,6 +20,8 @@ miim_intr_enable.0=0
|
||||
module_64ports.0=1
|
||||
multicast_l2_range.0=511
|
||||
oversubscribe_mode=1
|
||||
sai_tunnel_global_sip_mask_enable=1
|
||||
bcm_tunnel_term_compatible_mode=1
|
||||
parity_correction=1
|
||||
parity_enable=1
|
||||
pbmp_xport_xe.0=0x3ffffffffffffffffffffffffffffffffffffffe
|
||||
|
@ -20,6 +20,8 @@ miim_intr_enable.0=0
|
||||
module_64ports.0=1
|
||||
multicast_l2_range.0=511
|
||||
oversubscribe_mode=1
|
||||
sai_tunnel_global_sip_mask_enable=1
|
||||
bcm_tunnel_term_compatible_mode=1
|
||||
parity_correction=1
|
||||
parity_enable=1
|
||||
pbmp_xport_xe.0=0x3ffffffffffffffffffffffffffffffffffffffe
|
||||
|
@ -186,11 +186,6 @@
|
||||
id: 6f37
|
||||
name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon
|
||||
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
|
||||
dev: 0c
|
||||
fn: '0'
|
||||
|
@ -16,6 +16,8 @@ miim_intr_enable.0=0
|
||||
module_64ports.0=1
|
||||
multicast_l2_range.0=511
|
||||
oversubscribe_mode=1
|
||||
sai_tunnel_global_sip_mask_enable=1
|
||||
bcm_tunnel_term_compatible_mode=1
|
||||
parity_correction=1
|
||||
parity_enable=1
|
||||
pbmp_xport_xe.0=0x3ffffffffffffffffffffffffffffffffffffffe
|
||||
|
@ -4,12 +4,6 @@
|
||||
<phy_addr>0</phy_addr>
|
||||
<mode>retimer</mode>
|
||||
<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="1" tx-polarity="0" rx-polarity="0" />
|
||||
<lane id="2" tx-polarity="0" rx-polarity="0" />
|
||||
@ -26,4 +20,23 @@
|
||||
<lane id="13" tx-polarity="0" rx-polarity="0" />
|
||||
<lane id="14" 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>
|
||||
|
1
device/arista/x86_64-arista_7060px5_64s/pcie.yaml
Symbolic link
1
device/arista/x86_64-arista_7060px5_64s/pcie.yaml
Symbolic link
@ -0,0 +1 @@
|
||||
../x86_64-arista_common/pcie.yaml
|
@ -7,20 +7,15 @@ 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-107" "SCD 0000:00:18.7 SMBus master 0 bus 0"
|
||||
|
||||
chip "max6581-i2c-19-4d"
|
||||
chip "tmp464-i2c-19-48"
|
||||
label temp1 "Board sensor"
|
||||
label temp2 "TH4 exhaust 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"
|
||||
label temp3 "Inlet temp sensor"
|
||||
|
||||
chip "dps800-i2c-22-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 temp3 "Power supply 1 exhaust temp sensor"
|
||||
|
||||
chip "dps800-i2c-23-58"
|
||||
label temp1 "Power supply 2 hotspot sensor"
|
||||
|
@ -186,11 +186,6 @@
|
||||
id: 6f37
|
||||
name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon
|
||||
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
|
||||
dev: 0c
|
||||
fn: '0'
|
||||
|
@ -174,11 +174,6 @@
|
||||
id: 6f37
|
||||
name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon
|
||||
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
|
||||
dev: 0c
|
||||
fn: '0'
|
||||
|
@ -90,11 +90,6 @@
|
||||
id: 15ee
|
||||
name: 'Host bridge: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Device 24: Function
|
||||
6'
|
||||
- bus: '00'
|
||||
dev: '18'
|
||||
fn: '7'
|
||||
id: '0001'
|
||||
name: 'Host bridge: Arista Networks, Inc. Device 0001'
|
||||
- bus: '01'
|
||||
dev: '00'
|
||||
fn: '0'
|
||||
|
@ -2,6 +2,7 @@
|
||||
{%- set mmu_sock = 'mmu_init_config="MSFT-TH2-Tier1"' -%}
|
||||
{%- set IPinIP_sock = '' -%}
|
||||
{%- set map_prio = '' -%}
|
||||
{%- set pfcwd_sock = '' -%}
|
||||
{%- if DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined -%}
|
||||
{%- if DEVICE_METADATA['localhost']['type'] is defined -%}
|
||||
{%- set switch_role = DEVICE_METADATA['localhost']['type'] -%}
|
||||
@ -12,19 +13,26 @@
|
||||
{%- if DEVICE_METADATA['localhost']['subtype'] is defined -%}
|
||||
{%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%}
|
||||
{%- if 'dualtor' in switch_subtype.lower() %}
|
||||
{%- set IPinIP_sock = 'sai_tunnel_support=1
|
||||
sai_tunnel_underlay_route_mode=1
|
||||
host_as_route_disable=1
|
||||
l3_ecmp_levels=2' -%}
|
||||
{%- set IPinIP_sock =
|
||||
'sai_tunnel_underlay_route_mode=1
|
||||
host_as_route_disable=1
|
||||
l3_ecmp_levels=2' -%}
|
||||
{%- set map_prio = 'sai_remap_prio_on_tnl_egress=1' -%}
|
||||
{%- 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" #}
|
||||
|
||||
l3_alpm_hit_skip=1
|
||||
sai_adjust_acl_drop_in_rx_drop=1
|
||||
{{ map_prio }}
|
||||
{{ pfcwd_sock }}
|
||||
PHY_AN_ALLOW_PLL_CHANGE=1
|
||||
arl_clean_timeout_usec=15000000
|
||||
asf_mem_profile=2
|
||||
@ -1040,5 +1048,6 @@ serdes_preemphasis_116=0x103706
|
||||
serdes_preemphasis_117=0x133c06
|
||||
|
||||
{{ mmu_sock }}
|
||||
sai_tunnel_support=1
|
||||
{{ IPinIP_sock }}
|
||||
phy_an_lt_msft=1
|
||||
|
@ -1,20 +1,28 @@
|
||||
{# Construct config.bcm to include additional soc properties per specific device metadata requirement #}
|
||||
{%- set IPinIP_sock = '' -%}
|
||||
{%- set map_prio = '' -%}
|
||||
{%- set pfcwd_sock = '' -%}
|
||||
{%- 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'] -%}
|
||||
{%- if 'dualtor' in switch_subtype.lower() %}
|
||||
{%- set IPinIP_sock = 'sai_tunnel_support=1
|
||||
sai_tunnel_underlay_route_mode=1
|
||||
host_as_route_disable=1
|
||||
l3_ecmp_levels=2' -%}
|
||||
{%- set IPinIP_sock =
|
||||
'sai_tunnel_underlay_route_mode=1
|
||||
host_as_route_disable=1
|
||||
l3_ecmp_levels=2' -%}
|
||||
{%- set map_prio = 'sai_remap_prio_on_tnl_egress=1' -%}
|
||||
{%- 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" #}
|
||||
l3_alpm_hit_skip=1
|
||||
sai_adjust_acl_drop_in_rx_drop=1
|
||||
{{ map_prio }}
|
||||
{{ pfcwd_sock }}
|
||||
PHY_AN_ALLOW_PLL_CHANGE=1
|
||||
arl_clean_timeout_usec=15000000
|
||||
asf_mem_profile=2
|
||||
@ -947,5 +955,6 @@ serdes_preemphasis_130=0x580c
|
||||
serdes_preemphasis_131=0x580c
|
||||
|
||||
mmu_init_config="MSFT-TH2-Tier0"
|
||||
sai_tunnel_support=1
|
||||
{{ IPinIP_sock }}
|
||||
phy_an_lt_msft=1
|
||||
|
@ -1,20 +1,28 @@
|
||||
{# Construct config.bcm to include additional soc properties per specific device metadata requirement #}
|
||||
{%- set IPinIP_sock = '' -%}
|
||||
{%- set map_prio = '' -%}
|
||||
{%- set pfcwd_sock = '' -%}
|
||||
{%- 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'] -%}
|
||||
{%- if 'dualtor' in switch_subtype.lower() %}
|
||||
{%- set IPinIP_sock = 'sai_tunnel_support=1
|
||||
sai_tunnel_underlay_route_mode=1
|
||||
host_as_route_disable=1
|
||||
l3_ecmp_levels=2' -%}
|
||||
{%- set IPinIP_sock =
|
||||
'sai_tunnel_underlay_route_mode=1
|
||||
host_as_route_disable=1
|
||||
l3_ecmp_levels=2' -%}
|
||||
{%- set map_prio = 'sai_remap_prio_on_tnl_egress=1' -%}
|
||||
{%- 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" #}
|
||||
l3_alpm_hit_skip=1
|
||||
sai_adjust_acl_drop_in_rx_drop=1
|
||||
{{ map_prio }}
|
||||
{{ pfcwd_sock }}
|
||||
PHY_AN_ALLOW_PLL_CHANGE=1
|
||||
arl_clean_timeout_usec=15000000
|
||||
asf_mem_profile=2
|
||||
@ -951,5 +959,6 @@ serdes_preemphasis_130=0x580c
|
||||
serdes_preemphasis_131=0x580c
|
||||
|
||||
mmu_init_config="MSFT-TH2-Tier0"
|
||||
sai_tunnel_support=1
|
||||
{{ IPinIP_sock }}
|
||||
phy_an_lt_msft=1
|
||||
|
@ -2,6 +2,7 @@
|
||||
{%- set mmu_sock = 'mmu_init_config="MSFT-TH2-Tier1"' -%}
|
||||
{%- set IPinIP_sock = '' -%}
|
||||
{%- set map_prio = '' -%}
|
||||
{%- set pfcwd_sock = '' -%}
|
||||
{%- if DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined -%}
|
||||
{%- if DEVICE_METADATA['localhost']['type'] is defined -%}
|
||||
{%- set switch_role = DEVICE_METADATA['localhost']['type'] -%}
|
||||
@ -12,18 +13,25 @@
|
||||
{%- if DEVICE_METADATA['localhost']['subtype'] is defined -%}
|
||||
{%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%}
|
||||
{%- if 'dualtor' in switch_subtype.lower() %}
|
||||
{%- set IPinIP_sock = 'sai_tunnel_support=1
|
||||
sai_tunnel_underlay_route_mode=1
|
||||
host_as_route_disable=1
|
||||
l3_ecmp_levels=2' -%}
|
||||
{%- set IPinIP_sock =
|
||||
'sai_tunnel_underlay_route_mode=1
|
||||
host_as_route_disable=1
|
||||
l3_ecmp_levels=2' -%}
|
||||
{%- set map_prio = 'sai_remap_prio_on_tnl_egress=1' -%}
|
||||
{%- 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" #}
|
||||
l3_alpm_hit_skip=1
|
||||
sai_adjust_acl_drop_in_rx_drop=1
|
||||
{{ map_prio }}
|
||||
{{ pfcwd_sock }}
|
||||
PHY_AN_ALLOW_PLL_CHANGE=1
|
||||
arl_clean_timeout_usec=15000000
|
||||
asf_mem_profile=2
|
||||
@ -1039,5 +1047,6 @@ serdes_preemphasis_116=0x105004
|
||||
serdes_preemphasis_117=0x105004
|
||||
|
||||
{{ mmu_sock }}
|
||||
sai_tunnel_support=1
|
||||
{{ IPinIP_sock }}
|
||||
phy_an_lt_msft=1
|
||||
|
@ -100,12 +100,6 @@
|
||||
id: 8c24
|
||||
name: 'Signal processing controller: Intel Corporation 8 Series Chipset Family Thermal
|
||||
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'
|
||||
dev: '00'
|
||||
fn: '0'
|
||||
@ -179,11 +173,6 @@
|
||||
id: 6f37
|
||||
name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon
|
||||
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
|
||||
dev: 0c
|
||||
fn: '0'
|
||||
|
@ -64,11 +64,6 @@
|
||||
id: '1578'
|
||||
name: 'Encryption controller: Advanced Micro Devices, Inc. [AMD] Carrizo Platform
|
||||
Security Processor'
|
||||
- bus: '00'
|
||||
dev: 09
|
||||
fn: '0'
|
||||
id: '0001'
|
||||
name: 'Host bridge: Arista Networks, Inc. Device 0001'
|
||||
- bus: '00'
|
||||
dev: 09
|
||||
fn: '2'
|
||||
|
@ -1 +1,2 @@
|
||||
SYNCD_SHM_SIZE=1gb
|
||||
usemsi=1
|
||||
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"FABRIC_MONITOR_DATA": {
|
||||
"monErrThreshCrcCells": 1,
|
||||
"monErrThreshRxCells": 61035156,
|
||||
"monPollThreshRecovery": 8,
|
||||
"monPollThreshIsolation": 1
|
||||
}
|
||||
}
|
@ -0,0 +1,193 @@
|
||||
# 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
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"FABRIC_MONITOR_DATA": {
|
||||
"monErrThreshCrcCells": 1,
|
||||
"monErrThreshRxCells": 61035156,
|
||||
"monPollThreshRecovery": 8,
|
||||
"monPollThreshIsolation": 1
|
||||
}
|
||||
}
|
@ -0,0 +1,193 @@
|
||||
# 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
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"FABRIC_MONITOR_DATA": {
|
||||
"monErrThreshCrcCells": 1,
|
||||
"monErrThreshRxCells": 61035156,
|
||||
"monPollThreshRecovery": 8,
|
||||
"monPollThreshIsolation": 1
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user